.btn{--btn-bg:var(--brand);--btn-fg:var(--on-brand);--btn-border:transparent;justify-content:center;align-items:center;gap:var(--sp-2);min-width:var(--tap);min-height:var(--btn-h);padding:var(--sp-2) var(--sp-5);border:2px solid var(--btn-border);border-radius:var(--r-pill);background:var(--btn-bg);color:var(--btn-fg);font:var(--fw-bold) var(--fs-body) / 1.2 var(--font);text-align:center;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), scale var(--dur-tap) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);text-decoration:none;display:inline-flex;position:relative}.btn--primary{box-shadow:0 2px 0 var(--brand-strong), var(--sh-1)}.btn--secondary{--btn-bg:var(--surface);--btn-fg:var(--ink);--btn-border:var(--line-control)}.btn--ghost{--btn-bg:transparent;--btn-fg:var(--brand-ink);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:2px}.btn--sm{min-height:var(--btn-h-sm);padding-inline:var(--sp-4);font-size:var(--fs-small)}.btn--block{width:100%;display:flex}.btn__icon{flex:none;font-size:1.25em;display:inline-flex}.btn__label{overflow-wrap:anywhere;min-width:0}@media (hover:hover){.btn--primary:hover:not(:disabled){--btn-bg:var(--brand-strong)}.btn--secondary:hover:not(:disabled){--btn-border:var(--ink-3);--btn-bg:var(--bg-soft)}.btn--ghost:hover:not(:disabled){--btn-fg:var(--ink)}}.btn:active:not(:disabled){scale:.97}.btn:disabled,.btn[aria-disabled=true]{cursor:default;opacity:.45}[data-tone=dark] .btn--primary{--btn-bg:#fff;--btn-fg:var(--ink);box-shadow:none}[data-tone=dark] .btn--secondary{--btn-bg:transparent;--btn-fg:var(--on-stage);--btn-border:#ffffff80}[data-tone=dark] .btn--ghost{--btn-fg:var(--on-stage)}@media (hover:hover){[data-tone=dark] .btn--primary:hover:not(:disabled){--btn-bg:var(--brand-soft)}[data-tone=dark] .btn--secondary:hover:not(:disabled){--btn-bg:#ffffff1a;--btn-border:#fff}}.btn-row{gap:var(--sp-2);display:flex}.btn-row>.btn{min-width:0;padding-inline:var(--sp-3);flex:1 1 0}@media (forced-colors:active){.btn{border-color:buttontext}}
