.btn{min-height:48px;padding:0 var(--s-5);border-radius:var(--r-button);text-align:center;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;font-size:16px;font-weight:600;line-height:20px;text-decoration:none;display:inline-flex;position:relative}.btn--56{min-height:56px;padding:0 var(--s-6);font-size:17px}.btn--block{width:100%;display:flex}.btn:active:not(:disabled){transform:scale(.98)}.btn--filled{background:var(--accent);color:var(--on-accent)}.btn--filled:active:not(:disabled){background:var(--accent-pressed)}.btn--tonal{background:var(--accent-soft);color:var(--on-accent-soft)}.btn--outlined{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:0 0}.btn--text,.btn--danger-text{padding:0 var(--s-3);color:var(--accent);background:0 0}.btn--danger-text{color:var(--danger)}.btn--tonal:active:not(:disabled),.btn--outlined:active:not(:disabled),.btn--text:active:not(:disabled),.btn--danger-text:active:not(:disabled){background:var(--surface-2)}@media (hover:hover){.btn--filled:hover:not(:disabled){background:var(--accent-pressed)}.btn--outlined:hover:not(:disabled),.btn--text:hover:not(:disabled),.btn--danger-text:hover:not(:disabled){background:var(--surface-2)}}.btn:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed;border-color:#0000}.btn--text:disabled,.btn--danger-text:disabled{background:0 0}.btn__stack{display:grid}.btn__label,.btn__done{justify-content:center;align-items:center;gap:var(--s-2);grid-area:1/1;display:inline-flex}.btn__label svg,.btn__done svg{flex:none}.btn__done,.btn--loading .btn__label,.btn--done .btn__label{visibility:hidden}.btn--done .btn__done{visibility:visible}.btn--loading,.btn--done{cursor:default}.btn__spinner{border:2.5px solid;border-right-color:#0000;border-radius:50%;width:22px;height:22px;margin:auto;animation:.8s linear infinite btn-spin;position:absolute;inset:0}@keyframes btn-spin{to{transform:rotate(360deg)}}@keyframes btn-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.btn__spinner{border-style:dotted;border-right-color:currentColor;animation:1.6s ease-in-out infinite btn-pulse}.btn:active:not(:disabled){transform:none}}
