.btn{min-height:var(--control-height);padding:0 var(--space-6);border-radius:var(--radius-md);font:inherit;font-size:var(--text-base);font-weight:var(--font-weight-semibold);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.btn--block{width:100%;display:flex}.btn__content{align-items:center;gap:var(--space-2);transition:opacity var(--duration-fast) var(--ease-out);display:inline-flex}.btn--primary{background:var(--color-action);color:var(--color-text-on-brand)}.btn--primary:hover{background:var(--color-action-hover);color:var(--color-text-on-brand);box-shadow:var(--shadow-button-hover)}.btn--primary:active{background:var(--color-action-active);box-shadow:none;transform:translateY(1px)}.btn--secondary{background:var(--color-bg-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn--secondary:hover{background:var(--color-bg-subtle);color:var(--color-text)}.btn--ghost{color:var(--color-text-link);padding:0 var(--space-3);background:0 0}.btn--ghost:hover{background:var(--color-bg-brand-subtle);color:var(--color-text-link-hover)}.btn:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-md)}.btn:disabled,.btn[aria-disabled=true]:not(.is-loading){background:var(--color-action-disabled-bg);color:var(--color-action-disabled-text);box-shadow:none;cursor:not-allowed;border-color:#0000;transform:none}.btn.is-loading{cursor:progress}.btn.is-loading .btn__content{opacity:0}.btn__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1.25rem;height:1.25rem;animation:.8s linear infinite btn-spin;position:absolute}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn__spinner{animation-duration:2.4s}}
