.ds-btn{font-family:var(--font-body);cursor:pointer;border-radius:var(--radius,.5rem);transition:all .15s var(--spring);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;font-weight:700;line-height:1;display:inline-flex}.ds-btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.ds-btn:not(:disabled):hover{transform:translateY(-1px)}.ds-btn:not(:disabled):active{transform:translateY(0)}.ds-btn-primary{background:var(--primary-hex);color:var(--c-bg-mid)}.ds-btn-primary:not(:disabled):hover{box-shadow:0 4px 16px color-mix(in srgb, var(--primary-hex) 35%, transparent)}.ds-btn-secondary{color:var(--primary-hex);background:0 0;border:1px solid #f2b8724d}.ds-btn-secondary:not(:disabled):hover{background:#f2b87214}.ds-btn-ghost{color:var(--c-text-2);background:0 0;border:1px solid #0000}.ds-btn-ghost:not(:disabled):hover{color:var(--c-text);background:#ffffff0a}.ds-btn-destructive{color:#f55;background:#ff50501a;border:1px solid #ff505033}.ds-btn-destructive:not(:disabled):hover{background:#ff50502e}.ds-btn-outline{color:var(--c-text-2);border:1px solid var(--c-border-2);background:0 0}.ds-btn-outline:not(:disabled):hover{color:var(--c-text);border-color:var(--c-border-3)}.ds-btn-sm{padding:5px 12px;font-size:11px}.ds-btn-md{padding:8px 18px;font-size:13px}.ds-btn-lg{padding:10px 22px;font-size:14px}.ds-btn-xl{padding:13px 28px;font-size:16px}.ds-btn-icon{aspect-ratio:1;padding:8px}.ds-btn-pill{border-radius:9999px}.ds-btn-full{width:100%}.ds-btn-spinner{opacity:.7;border:2px solid;border-top-color:#0000;border-radius:50%;width:13px;height:13px;animation:.6s linear infinite spin;display:inline-block}.ds-card{transition:border-color .18s, transform .2s var(--spring), box-shadow .2s;border-radius:14px;padding:22px}.ds-card-flat{background:var(--c-bg-card);border:1px solid var(--c-border-1)}.ds-card-raised{background:var(--c-bg-card);box-shadow:var(--neu-raise-sm)}.ds-card-elevated{background:var(--c-bg-card);box-shadow:var(--neu-raise)}.ds-card-inset{background:var(--c-bg-mid);box-shadow:var(--neu-inset)}.ds-card-interactive:hover{border-color:var(--c-border-3);transform:translateY(-2px)}.ds-card-header{margin-bottom:12px}.ds-card-title{font-family:var(--font-display);color:var(--c-text);margin-bottom:4px;font-size:17px;font-weight:700}.ds-card-desc{color:var(--c-text-3);font-size:13px;line-height:1.6}.ds-card-content{margin-bottom:12px}.ds-card-footer{border-top:1px solid var(--c-border-1);align-items:center;gap:8px;padding-top:12px;display:flex}.ds-badge{letter-spacing:.02em;border-radius:9999px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;line-height:1.4;display:inline-flex}.ds-badge-neutral{color:var(--c-text-2);border:1px solid var(--c-border-2);background:#ffffff0f}.ds-badge-gold{color:#f2b872;background:#f2b8721f;border:1px solid #f2b87238}.ds-badge-success{color:#3db468;background:#3cb4641f;border:1px solid #3cb46438}.ds-badge-error{color:#f55;background:#ff50501f;border:1px solid #ff505038}.ds-badge-info{color:#60a5fa;background:#60a5fa1f;border:1px solid #60a5fa38}.ds-badge-warning{color:#f2b872;background:#f2b8721f;border:1px solid #f2b87238}.ds-input-wrap{flex-direction:column;gap:6px;display:flex}.ds-full{width:100%}.ds-input-label{color:var(--c-text-3);font-size:12px;font-weight:600}.ds-input-flat{border-radius:var(--radius,.5rem);width:100%;height:44px;font-family:var(--font-body);color:var(--c-text);background:var(--c-bg-card);border:1.5px solid var(--c-border-2);outline:none;padding:0 14px;font-size:14px;transition:border-color .18s,box-shadow .18s}.ds-input-flat:focus{border-color:var(--primary-hex);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary-hex) 15%, transparent)}.ds-input-flat::placeholder{color:var(--c-text-3)}.ds-input-float-wrap{position:relative}.ds-input-float-label{color:var(--c-text-3);pointer-events:none;transition:all .18s var(--ease-out);z-index:1;font-size:14px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.ds-input-float-wrap.focused .ds-input-float-label,.ds-input-float-wrap.has-val .ds-input-float-label{letter-spacing:.04em;font-size:10px;font-weight:600;top:8px;transform:none}.ds-input-float-wrap.focused .ds-input-float-label{color:var(--primary-hex)}.ds-input-float{border-radius:var(--radius,.5rem);width:100%;height:52px;font-family:var(--font-body);color:var(--c-text);background:var(--c-bg-card);border:1.5px solid var(--c-border-2);outline:none;padding:20px 14px 6px;font-size:14px;transition:border-color .18s,box-shadow .18s}.ds-input-float:focus{border-color:var(--primary-hex);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary-hex) 15%, transparent)}.ds-input-float::placeholder{color:#0000}.ds-input-error{border-color:#ff505080!important}.ds-input-error-text{color:#ff5050;margin-top:5px;font-size:11px}.ds-switch-row{justify-content:space-between;align-items:center;display:flex}.ds-switch-label{color:var(--c-text-2);font-size:14px}.ds-switch-track{background:var(--c-bg-mid);width:44px;height:26px;box-shadow:var(--neu-inset);cursor:pointer;border-radius:13px;flex-shrink:0;transition:background .2s;position:relative}.ds-switch-track.on{background:var(--primary-hex);box-shadow:none}.ds-switch-thumb{width:20px;height:20px;transition:transform .25s var(--spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #00000040}.ds-switch-track.on .ds-switch-thumb{transform:translate(18px)}.ds-switch-disabled{opacity:.5;cursor:not-allowed}.ds-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;justify-content:center;align-items:center;padding:24px;animation:.2s ease-out ds-fade-in;display:flex;position:fixed;inset:0}.ds-modal{background:var(--c-bg-card);border:1px solid var(--c-border-2);max-height:85vh;animation:ds-scale-in .25s var(--spring);border-radius:16px;overflow-y:auto;box-shadow:0 24px 64px #0006}.ds-modal-sm{width:380px}.ds-modal-md{width:520px}.ds-modal-lg{width:720px}.ds-modal-header{border-bottom:1px solid var(--c-border-1);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.ds-modal-title{font-family:var(--font-display);color:var(--c-text);font-size:18px;font-weight:700}.ds-modal-close{cursor:pointer;width:28px;height:28px;color:var(--c-text-3);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.ds-modal-close:hover{color:var(--c-text);background:#ffffff0f}.ds-modal-body{padding:24px}@keyframes ds-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ds-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.ds-tabs-pill{background:var(--c-bg-mid);border-radius:10px;gap:4px;width:fit-content;margin-bottom:24px;padding:4px;display:flex}.ds-tab-pill{color:var(--c-text-2);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-body);z-index:1;background:0 0;border:none;border-radius:8px;padding:6px 16px;transition:color .2s;position:relative}.ds-tab-pill:hover{color:var(--c-text)}.ds-tab-pill:active{transform:scale(.95)}.ds-tab-pill.active{color:var(--c-text);box-shadow:none;background:0 0}.ds-tab-slide-pill{background:var(--c-bg-card);height:calc(100% - 8px);transition:transform .3s var(--spring), width .3s var(--spring);z-index:0;pointer-events:none;border-radius:8px;position:absolute;top:4px;left:0;box-shadow:0 1px 4px #00000026}.ds-toast-container{z-index:2000;flex-direction:column;gap:10px;max-width:380px;display:flex;position:fixed;bottom:24px;right:24px}.ds-toast{background:var(--c-bg-card);animation:ds-slide-in .3s var(--spring);border:1.5px solid;border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex;box-shadow:0 8px 32px #00000040,0 2px 8px #0000001a}.ds-toast-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex;box-shadow:0 2px 6px #00000026}.ds-toast-content{flex:1;min-width:0}.ds-toast-title{color:var(--c-text);margin-bottom:2px;font-size:13px;font-weight:600}.ds-toast-msg{color:var(--c-text-3);font-size:12px;line-height:1.5}.ds-toast-close{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;font-size:12px;transition:opacity .15s}.ds-toast-close:hover{opacity:1!important}@keyframes ds-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.ds-progress{flex-direction:column;gap:6px;display:flex}.ds-progress-header{justify-content:space-between;align-items:center;display:flex}.ds-progress-label{color:var(--c-text-2);font-size:12px;font-weight:600}.ds-progress-value{font-family:var(--font-code);color:var(--primary-hex);font-size:11px}.ds-progress-track{background:var(--c-bg-mid);height:6px;box-shadow:var(--neu-inset);border-radius:9999px;overflow:hidden}.ds-progress-bar{height:100%;transition:width .6s var(--ease-out);border-radius:9999px}.ds-avatar{object-fit:cover;border:2px solid var(--c-border-2);border-radius:50%}.ds-avatar-fallback{color:var(--primary-hex);font-weight:700;font-family:var(--font-display);border:2px solid var(--c-border-2);background:#f2b8721f;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.ds-tooltip-wrap{display:inline-flex;position:relative}.ds-tooltip{z-index:100;background:var(--c-bg-card);border:1px solid var(--c-border-2);color:var(--c-text);white-space:nowrap;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:500;animation:.15s ease-out ds-fade-in;position:absolute;box-shadow:0 4px 12px #00000040}.ds-tooltip-top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.ds-tooltip-bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.ds-tooltip-left{top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.ds-tooltip-right{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.ds-skeleton{background:linear-gradient(90deg, var(--c-bg-lift) 25%, var(--c-bg-mid) 50%, var(--c-bg-lift) 75%);border-radius:var(--radius,.5rem);background-size:200% 100%;animation:1.5s ease-in-out infinite ds-shimmer}.ds-skeleton-round{border-radius:50%}@keyframes ds-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ds-separator-v{background:var(--c-border-2);align-self:stretch;width:1px}
