.ui-btn{justify-content:center;align-items:center;gap:var(--spacing-sm);font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius);cursor:pointer;white-space:nowrap;transition:background var(--ease-normal), border-color var(--ease-normal), color var(--ease-normal), box-shadow var(--ease-normal), transform var(--ease-fast);border:1px solid #0000;font-weight:600;display:inline-flex}.ui-btn:active:not(:disabled){transform:translateY(1px)}.ui-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.ui-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ui-btn-full{width:100%}.ui-btn-icon-lead{flex-shrink:0;width:17px;height:17px}.ui-btn-sm{height:36px;padding:0 var(--spacing-md);font-size:.75rem}.ui-btn-md{height:48px;padding:0 var(--spacing-lg);font-size:var(--font-size-small)}.ui-btn-lg{height:56px;padding:0 var(--spacing-32);font-size:var(--font-size-body)}.ui-btn-icon{border-radius:var(--radius-full);width:44px;height:44px;padding:0}.ui-btn-primary{background:var(--color-primary);color:var(--color-primary-ink);box-shadow:var(--shadow-soft)}.ui-btn-primary:hover:not(:disabled){background:#2c3c60}.ui-btn-accent{background:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 94%, var(--color-ink));color:var(--color-primary-ink);box-shadow:var(--shadow-soft)}.ui-btn-accent:hover:not(:disabled){background:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 85%, var(--color-ink))}.ui-btn-outline{color:var(--color-ink);background:0 0;border-color:#1b17124d}.ui-btn-outline:hover:not(:disabled){border-color:var(--color-ink);background:#1b17120d}.ui-btn-ghost{color:var(--color-ink-soft);background:0 0}.ui-btn-ghost:hover:not(:disabled){color:var(--color-ink)}.ui-btn-danger{background:var(--color-danger);color:var(--color-primary-ink);box-shadow:var(--shadow-soft)}.ui-btn-danger:hover:not(:disabled){filter:brightness(.92)}.ui-btn-spinner{border:2px solid #f1e7d266;border-top-color:var(--color-primary-ink);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.6s linear infinite ui-btn-spin}.ui-btn-outline .ui-btn-spinner,.ui-btn-ghost .ui-btn-spinner{border-color:#1b171240;border-top-color:var(--color-ink)}@keyframes ui-btn-spin{to{transform:rotate(360deg)}}
