:root{--color-bg:#f6f5f7;--color-surface:#fff;--color-surface-muted:#faf9fb;--color-border:#e6e2e8;--color-text:#1e1a21;--color-text-muted:#6b6470;--color-brand:#5b2a4e;--color-brand-strong:#44203b;--color-brand-soft:#f3e9f0;--color-on-brand:#fff;--color-success:#1f7a4d;--color-success-soft:#e5f4ec;--color-warning:#9a6200;--color-warning-soft:#fdf2dc;--color-danger:#b42318;--color-danger-soft:#fdeceb;--color-info:#285ea8;--color-info-soft:#e8f0fb;--color-focus:#8b4a7b;--chart-1:#5b2a4e;--chart-2:#c27ba0;--chart-3:#285ea8;--chart-4:#1f7a4d;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-card:0 1px 2px #1e1a210d, 0 1px 1px #1e1a2108;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--sidebar-width:268px;--topbar-height:60px}@media (prefers-color-scheme:dark){:root{--color-bg:#141116;--color-surface:#1d1920;--color-surface-muted:#231f27;--color-border:#342d38;--color-text:#f1edf3;--color-text-muted:#a69ead;--color-brand:#c98bb8;--color-brand-strong:#dca7cd;--color-brand-soft:#34232f;--color-on-brand:#1d1920;--color-success:#5cc995;--color-success-soft:#18301f;--color-warning:#e7b25a;--color-warning-soft:#33280f;--color-danger:#f0857c;--color-danger-soft:#3a1b19;--color-info:#85adea;--color-info-soft:#1a2638;--color-focus:#dca7cd;--chart-1:#c98bb8;--chart-2:#8a5c7c;--chart-3:#85adea;--chart-4:#5cc995;--shadow-card:none}}*,:before,:after{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}h1,h2,h3{margin:0;line-height:1.25}a{color:var(--color-brand)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;font-weight:500;display:inline-flex}.btn:hover{background:var(--color-surface-muted)}.btn-primary{background:var(--color-brand);border-color:var(--color-brand);color:var(--color-on-brand)}.btn-primary:hover{background:var(--color-brand-strong)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-danger:hover{filter:brightness(.92);background:var(--color-danger)}.btn-danger-outline{color:var(--color-danger);border-color:var(--color-danger)}a.btn{color:inherit;text-decoration:none}a.btn-primary,a.btn-primary:hover{color:var(--color-on-brand)}.btn:disabled{opacity:.6;cursor:not-allowed}.field{gap:var(--space-1);flex-direction:column;display:flex}.field label{font-size:13px;font-weight:500}.input{min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.muted{color:var(--color-text-muted)}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge-info{background:var(--color-info-soft);color:var(--color-info)}.badge-neutral{background:var(--color-surface-muted);color:var(--color-text-muted);border:1px solid var(--color-border)}.alert-box{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid #0000}.alert-danger{background:var(--color-danger-soft);color:var(--color-danger)}.alert-warning{background:var(--color-warning-soft);color:var(--color-warning)}.alert-info{background:var(--color-info-soft);color:var(--color-info)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
