.button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease-default), box-shadow var(--duration-fast) var(--ease-default), transform var(--duration-fast) var(--ease-default);border:none;font-weight:500;display:inline-flex}.button--sm{font-size:var(--text-xs);padding:6px 12px}.button--md{font-size:var(--text-sm);padding:10px 20px}.button--lg{font-size:var(--text-base);padding:14px 28px}.button--primary{background:var(--color-brand-primary);color:#fff}.button--primary:hover:not(:disabled){background:var(--blue-600);box-shadow:var(--shadow-md)}.button--primary:focus-visible{box-shadow:var(--shadow-focus);outline:none}.button--secondary{color:var(--color-brand-primary);border:1.5px solid var(--color-brand-primary);background:0 0}.button--secondary:hover:not(:disabled){background:var(--blue-50);border-color:var(--blue-600)}.button--secondary:focus-visible{box-shadow:var(--shadow-focus);outline:none}.button--cta{background:var(--color-brand-cta);color:#3c2000;border:none}.button--cta:hover:not(:disabled){background:var(--orange-600);box-shadow:var(--shadow-cta)}.button--cta:focus-visible{box-shadow:var(--shadow-focus);outline:none}.button--ghost{color:var(--neutral-500);background:0 0;border:none}.button--ghost:hover:not(:disabled){background:var(--neutral-100);color:var(--neutral-900)}.button--ghost:focus-visible{box-shadow:var(--shadow-focus);outline:none}.button--danger{background:var(--color-error);color:#fff;border:none}.button--danger:hover:not(:disabled){background:#c53030}.button--danger:focus-visible{outline:none;box-shadow:0 0 0 3px #e53e3e4d}.button--success{color:#fff;background:#059669;border:none}.button--success:hover:not(:disabled){box-shadow:var(--shadow-md);background:#047857}.button--success:focus-visible{outline:none;box-shadow:0 0 0 3px #0596694d}[data-theme=dark] .button--success{color:#022c22;background:#10b981}[data-theme=dark] .button--success:hover:not(:disabled){background:#34d399}.button:disabled,.button--loading{background:var(--neutral-300);color:var(--neutral-500);cursor:not-allowed;opacity:1;box-shadow:none;border-color:#0000}.button__spinner{border-radius:var(--radius-full);border:2px solid;border-top-color:#0000;flex-shrink:0;width:13px;height:13px;animation:.6s linear infinite button-spin;display:inline-block}@keyframes button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.button__spinner{animation:none}}
