.spinner{border-style:solid;border-color:currentColor #0000 currentColor currentColor;border-radius:50%;flex-shrink:0;animation:1s linear infinite spinner-rotate;display:inline-block}.spinner--sizeSm{border-width:2px;width:16px;height:16px}.spinner--sizeMd{border-width:2px;width:20px;height:20px}.spinner--sizeLg{border-width:3px;width:40px;height:40px}@keyframes spinner-rotate{to{transform:rotate(360deg)}}
.btn{gap:var(--inline-gap-xs);width:max-content;font-family:var(--font-body);font-weight:var(--font-weight-semibold);text-align:center;touch-action:manipulation;cursor:pointer;transition:box-shadow var(--dur-hover) var(--ease),color var(--dur-press) var(--ease),scale var(--dur-press) cubic-bezier(.2, 0, 0, 1);border:none;justify-content:center;align-items:center;text-decoration:none;display:flex;position:relative}.btn:active:not(:disabled,[aria-disabled=true]){box-shadow:var(--shadow-pressed)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;box-shadow:var(--shadow-inset);opacity:.5}.btn--loading:disabled,.btn--loading[aria-disabled=true]{cursor:wait;opacity:1}.btn--primary{color:var(--surface-accent-foreground);background:var(--surface-accent);box-shadow:var(--shadow-raised)}.btn--secondary{color:var(--surface-foreground);background:var(--surface);box-shadow:var(--shadow-raised)}.btn--surface{color:var(--foreground-muted);background:var(--surface);box-shadow:var(--shadow-raised)}.btn--sizeSm{min-height:var(--control-40);padding:var(--spacing-8) var(--spacing-20);font-size:var(--text-caption);border-radius:var(--radius-buttons);line-height:1.4}.btn--sizeMd{min-height:var(--control-48);padding:var(--spacing-12) var(--spacing-24);font-size:var(--text-ui);border-radius:var(--radius-buttons);line-height:1.4}.btn--left{margin-right:auto}.btn--center{margin-left:auto;margin-right:auto}.btn--right{margin-left:auto}.btn--fullWidth{width:100%;max-width:100%}@media (hover:hover){.btn--primary:hover:not(:disabled,[aria-disabled=true]),.btn--secondary:hover:not(:disabled,[aria-disabled=true]){box-shadow:var(--shadow-raised-hover)}.btn--surface:hover:not(:disabled,[aria-disabled=true]){color:var(--foreground-strong);box-shadow:var(--shadow-raised-hover)}}@media (prefers-reduced-motion:no-preference){.btn:not(.btn--static):active:not(:disabled,[aria-disabled=true]){scale:.96}}@media (max-width:768px){.btn--sizeSm{min-height:var(--control-44)}}
