*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-app:#0f1117;--bg-sidebar:#151820;--bg-card:#1a1e2a;--bg-card-alt:#1f2436;--bg-input:#232838;--bg-hover:#252a3a;--border:#2a3045;--border-light:#323856;--text-primary:#e8ecf4;--text-secondary:#8891aa;--text-muted:#525c78;--accent:#f5a623;--accent-hover:#f7b84b;--accent-dim:#f5a6231f;--accent-border:#f5a6234d;--green:#3dd68c;--green-dim:#3dd68c1a;--red:#f06a6a;--red-dim:#f06a6a1a;--blue:#5b8ef0;--blue-dim:#5b8ef01a;--yellow:#f5cc5b;--yellow-dim:#f5cc5b1a;--font:"DM Sans",system-ui,sans-serif;--font-mono:"DM Mono",monospace;--radius-sm:6px;--radius:10px;--radius-lg:16px;--shadow:0 2px 12px #0006;--shadow-lg:0 8px 32px #00000080;--sidebar-w:220px}[data-theme=light]{--bg-app:#f4f5f7;--bg-sidebar:#fff;--bg-card:#fff;--bg-card-alt:#f8f9fb;--bg-input:#f0f1f5;--bg-hover:#eef0f5;--border:#e0e3ec;--border-light:#cdd1de;--text-primary:#1a1e2a;--text-secondary:#4a5068;--text-muted:#8891aa;--accent:#e8920a;--accent-hover:#d4830a;--accent-dim:#e8920a1a;--accent-border:#e8920a4d;--green:#1a9e5c;--green-dim:#1a9e5c1a;--red:#d94040;--red-dim:#d940401a;--blue:#2e6fd4;--blue-dim:#2e6fd41a;--yellow:#c89a00;--yellow-dim:#c89a001a;--shadow:0 2px 12px #00000014;--shadow-lg:0 8px 32px #0000001f}html,body,#root{height:100%;font-family:var(--font);background:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5;transition:background .2s,color .2s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}button{font-family:var(--font);cursor:pointer;border:none;outline:none;transition:all .15s}input,select,textarea{font-family:var(--font);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;width:100%;padding:8px 12px;font-size:14px;transition:border-color .15s,background .2s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input::placeholder{color:var(--text-muted)}select option{background:var(--bg-card);color:var(--text-primary)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.2s ease-out fadeUp}
