.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-4);border-radius:var(--radius-pill);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:var(--lh-sm);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);border:1px solid #0000;text-decoration:none;display:inline-flex}.button[data-size=sm]{padding:0 var(--space-3);font-size:var(--fs-xs);line-height:var(--lh-xs)}.button[data-full-width=true]{width:100%}.button[data-variant=primary]{background:var(--color-action);color:var(--color-text-on-action)}.button[data-variant=primary]:hover:not(:disabled){background:var(--color-action-hover);box-shadow:var(--shadow-action-hover);transform:translateY(-1px)}.button[data-variant=secondary]{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text)}.button[data-variant=secondary]:hover:not(:disabled){background:var(--color-bg-subtle)}.button[data-variant=ghost]{color:var(--color-text);background:0 0}.button[data-variant=ghost]:hover:not(:disabled){background:var(--color-bg-subtle)}.button[data-variant=danger]{background:var(--color-danger);color:var(--color-text-on-danger)}.button[data-variant=danger]:hover:not(:disabled){background:var(--color-danger-hover)}.button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.button[data-variant=primary]:focus-visible{outline-color:var(--color-focus-ring-on-action)}@media (prefers-reduced-motion:reduce){.button[data-variant=primary]:hover:not(:disabled){box-shadow:none;transform:none}}.button:disabled{opacity:.5;cursor:not-allowed}.button__spinner{animation:button-spin calc(var(--dur-base) * 4) linear infinite;flex:none}@keyframes button-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
