.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 16px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,transform .15s;display:inline-flex}.btn:focus-visible{outline:3px solid color-mix(in srgb, var(--color-primary) 35%, transparent);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-primary-strong)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-muted)}.btn-ghost{color:var(--color-primary);background:0 0}.btn-ghost:hover:not(:disabled){background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.btn-danger{background:var(--color-danger);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){filter:brightness(.95)}.btn-sm{min-height:36px;font-size:var(--text-sm);padding:0 12px}.btn-md{min-height:44px;padding:0 16px}.btn-lg{min-height:52px;font-size:var(--text-base);padding:0 20px}.btn-full{width:100%}.btn-spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite btn-spin}.btn-label-loading{opacity:.85}@keyframes btn-spin{to{transform:rotate(360deg)}}
