.ds-btn{border-radius:var(--radius-md);font-family:var(--font-ui);font-weight:var(--fw-bold);letter-spacing:.002em;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:1px solid #0000;outline:none;justify-content:center;align-items:center;display:inline-flex}.ds-btn:disabled{cursor:not-allowed;opacity:.45}.ds-btn[data-full-width=true]{width:100%}.ds-btn[data-size=sm]{height:var(--tap-min);padding:0 var(--space-4);font-size:var(--fs-sm);gap:var(--space-2)}.ds-btn[data-size=md]{height:48px;padding:0 var(--space-5);font-size:var(--fs-body);gap:9px}.ds-btn[data-size=session]{height:var(--tap-comfortable);font-size:var(--fs-body-lg);gap:10px;padding:0 26px}.ds-btn[data-size=stage]{height:var(--tap-stage);padding:0 var(--space-8);font-size:var(--fs-h3);gap:var(--space-3)}.ds-btn:not(:disabled):active{transform:scale(.98)}.ds-btn[data-variant=primary]{background:var(--accent);color:var(--accent-ink);border-color:#0000}.ds-btn[data-variant=primary]:not(:disabled):hover{background:var(--accent-hover)}.ds-btn[data-variant=primary]:not(:disabled):active{background:var(--accent-active)}.ds-btn[data-variant=secondary]{background:var(--bg-2);color:var(--text-1);border-color:var(--border-1)}.ds-btn[data-variant=secondary]:not(:disabled):hover,.ds-btn[data-variant=secondary]:not(:disabled):active{background:var(--bg-3);border-color:var(--border-2)}.ds-btn[data-variant=ghost]{color:var(--accent-text);background:0 0;border-color:#0000}.ds-btn[data-variant=ghost]:not(:disabled):hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.ds-btn[data-variant=ghost]:not(:disabled):active{background:var(--accent-bg)}.ds-btn[data-variant=danger]{background:var(--error-bg);color:var(--error);border-color:var(--error-border)}.ds-btn[data-variant=danger]:not(:disabled):hover,.ds-btn[data-variant=danger]:not(:disabled):active{background:var(--error);color:var(--error-bg)}.ds-btn[data-variant=google]{background:var(--accent);min-height:56px;color:var(--accent-ink);border-color:#0000;gap:12px;font-size:17px}.ds-btn[data-variant=google]:not(:disabled):hover{background:var(--accent-hover)}.ds-btn[data-variant=google]:not(:disabled):active{background:var(--accent-active)}.ds-google-logo{border-radius:var(--radius-full);background:#fff;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.ds-spinner{border-radius:var(--radius-full);width:1em;height:1em;animation:ds-spin var(--dur-slow) linear infinite;border:2px solid;border-right-color:#0000;display:inline-block}@keyframes ds-spin{to{transform:rotate(360deg)}}.ds-icon-btn{border-radius:var(--radius-md);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:1px solid #0000;outline:none;justify-content:center;align-items:center;display:inline-flex}.ds-icon-btn:disabled{cursor:not-allowed;opacity:.45}.ds-icon-btn:not(:disabled):active{transform:scale(.96)}.ds-icon-btn[data-size=sm]{width:var(--tap-min);height:var(--tap-min)}.ds-icon-btn[data-size=md]{width:48px;height:48px}.ds-icon-btn[data-size=session]{width:var(--tap-comfortable);height:var(--tap-comfortable)}.ds-icon-btn[data-size=stage]{width:var(--tap-stage);height:var(--tap-stage)}.ds-icon-btn[data-variant=primary]{background:var(--accent);color:var(--accent-ink);border-color:#0000}.ds-icon-btn[data-variant=primary]:not(:disabled):hover{background:var(--accent-hover)}.ds-icon-btn[data-variant=primary]:not(:disabled):active{background:var(--accent-active)}.ds-icon-btn[data-variant=secondary]{background:var(--bg-2);color:var(--text-1);border-color:var(--border-1)}.ds-icon-btn[data-variant=secondary]:not(:disabled):not([data-active=true]):hover,.ds-icon-btn[data-variant=secondary]:not(:disabled):not([data-active=true]):active{background:var(--bg-3);border-color:var(--border-2)}.ds-icon-btn[data-variant=secondary][data-active=true]{background:var(--accent-bg);color:var(--accent-text);border-color:var(--accent-border)}.ds-icon-btn[data-variant=ghost]{color:var(--text-2);background:0 0;border-color:#0000}.ds-icon-btn[data-variant=ghost]:not(:disabled):not([data-active=true]):hover,.ds-icon-btn[data-variant=ghost]:not(:disabled):not([data-active=true]):active{background:var(--bg-3)}.ds-icon-btn[data-variant=ghost][data-active=true]{background:var(--accent-bg);color:var(--accent-text)}
