.cn-btn{align-items:center;border:1px solid transparent;border-radius:var(--radius-full);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-weight:600;gap:8px;justify-content:center;line-height:1;text-decoration:none;transition:background var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard);white-space:nowrap}.cn-btn:active:not(:disabled):not(.is-disabled){transform:scale(var(--press-scale))}.cn-btn.is-disabled,.cn-btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.cn-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.cn-ico{display:inline-flex}.cn-btn.sm{font-size:.8125rem;padding:8px 18px}.cn-btn.md{font-size:.9375rem;padding:12px 28px}.cn-btn.lg{font-size:1.0625rem;padding:14px 36px}.cn-btn.primary{background:var(--accent);color:var(--text-on-accent)}.cn-btn.primary:hover:not(:disabled):not(.is-disabled){background:var(--accent-hover)}.cn-btn.secondary{background:var(--surface-card);border-color:var(--border-input);color:var(--text-strong)}.cn-btn.secondary:hover:not(:disabled):not(.is-disabled){background:var(--surface-sunken)}.cn-btn.danger{background:var(--danger);color:#fff}.cn-btn.danger:hover:not(:disabled):not(.is-disabled){filter:brightness(.88)}.cn-btn.success{background:var(--success);color:#fff}.cn-btn.success:hover:not(:disabled):not(.is-disabled){filter:brightness(.92)}.cn-btn.ghost{background:transparent;color:var(--accent)}.cn-btn.ghost:hover:not(:disabled):not(.is-disabled){background:var(--accent-soft)}.cn-btn.outline{background:transparent;border-color:var(--accent);color:var(--accent)}.cn-btn.outline:hover:not(:disabled):not(.is-disabled){background:var(--accent-soft)}.cn-spinner{animation:cn-spin .6s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid transparent;display:inline-block;height:1em;width:1em}@keyframes cn-spin{to{transform:rotate(1turn)}}.cn-spinner.svelte-vbh21m{align-items:center;display:flex;flex-direction:column;font-family:var(--font-sans);gap:1rem;justify-content:center;padding:2rem}.cn-spinner.full-height.svelte-vbh21m{flex:1 1 auto;min-height:100%}.cn-spinner.svelte-vbh21m .cn-spinner-icon{animation:svelte-vbh21m-cn-spin .8s linear infinite;color:var(--accent)}.cn-spinner-label.svelte-vbh21m{color:var(--text-muted);font-size:.875rem;font-weight:500}@keyframes svelte-vbh21m-cn-spin{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.cn-spinner.svelte-vbh21m .cn-spinner-icon{animation-duration:1.8s}}
