*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg-base);color:var(--text-primary);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}:root,[data-theme=dark]{--bg-base:#0B0F14;--bg-surface:#11161C;--bg-card:#151B23;--bg-elevated:#1A2230;--bg-hover:#1E2838;--bg-input:#0F141A;--bg-sidebar:#090C11;--border-subtle:#1F2630;--border-default:#252E3A;--border-strong:#2E3A4A;--border-focus:rgba(59,130,246,.5);--text-primary:#E6EDF3;--text-secondary:#9DA7B3;--text-muted:#6B7785;--text-disabled:#3A4455;--text-inverse:#0B0F14;--primary:#3B82F6;--primary-hover:#2563EB;--primary-bg:rgba(59,130,246,.08);--primary-bg-hover:rgba(59,130,246,.14);--primary-glow:rgba(59,130,246,.15);--success:#22C55E;--success-bg:rgba(34,197,94,.08);--warning:#F59E0B;--warning-bg:rgba(245,158,11,.08);--danger:#EF4444;--danger-bg:rgba(239,68,68,.08);--info:#3B82F6;--info-bg:rgba(59,130,246,.08);--accent:var(--primary);--accent-bright:#60A5FA;--accent-dim:var(--primary-hover);--accent-bg:var(--primary-bg);--accent-bg-hover:var(--primary-bg-hover);--color-green:var(--success);--color-green-bg:var(--success-bg);--color-red:var(--danger);--color-red-bg:var(--danger-bg);--color-orange:var(--warning);--color-orange-bg:var(--warning-bg);--color-blue:var(--primary);--color-blue-bg:var(--primary-bg);--color-purple:var(--primary);--color-purple-bg:var(--primary-bg);--shadow-sm:0 1px 3px rgba(0,0,0,.5);--shadow-md:0 4px 16px rgba(0,0,0,.55);--shadow-lg:0 8px 32px rgba(0,0,0,.65);--shadow-xl:0 16px 48px rgba(0,0,0,.75)}[data-theme=light]{--bg-base:#F4F6F9;--bg-surface:#FFFFFF;--bg-card:#FFFFFF;--bg-elevated:#F8FAFC;--bg-hover:#EEF2F7;--bg-input:#FFFFFF;--bg-sidebar:#090C11;--border-subtle:#EDF0F4;--border-default:#E2E6EC;--border-strong:#CDD2DB;--border-focus:rgba(37,99,235,.4);--text-primary:#0F1825;--text-secondary:#475569;--text-muted:#94A3B8;--text-disabled:#CBD5E1;--text-inverse:#FFFFFF;--primary:#2563EB;--primary-hover:#1D4ED8;--primary-bg:rgba(37,99,235,.06);--primary-bg-hover:rgba(37,99,235,.1);--primary-glow:rgba(37,99,235,.12);--success:#16A34A;--success-bg:rgba(22,163,74,.07);--warning:#D97706;--warning-bg:rgba(217,119,6,.07);--danger:#DC2626;--danger-bg:rgba(220,38,38,.07);--info:#2563EB;--info-bg:rgba(37,99,235,.07);--accent:var(--primary);--accent-bright:#3B82F6;--accent-dim:var(--primary-hover);--accent-bg:var(--primary-bg);--accent-bg-hover:var(--primary-bg-hover);--color-green:var(--success);--color-green-bg:var(--success-bg);--color-red:var(--danger);--color-red-bg:var(--danger-bg);--color-orange:var(--warning);--color-orange-bg:var(--warning-bg);--color-blue:var(--primary);--color-blue-bg:var(--primary-bg);--color-purple:var(--primary);--color-purple-bg:var(--primary-bg);--shadow-sm:0 1px 3px rgba(0,0,0,.06);--shadow-md:0 4px 16px rgba(0,0,0,.08);--shadow-lg:0 8px 32px rgba(0,0,0,.1);--shadow-xl:0 16px 48px rgba(0,0,0,.12)}[data-theme=light] aside{background:#090c11!important;border-right-color:#1f2630!important}:root{--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--font-mono:"JetBrains Mono","Fira Code",monospace;--transition:.15s ease}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--primary);opacity:.5}[data-theme=dark] input[type=date]{color-scheme:dark}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.5;filter:invert(1) brightness(1.2)}[data-theme=light] input[type=date]{color-scheme:light}[data-theme=light] input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55}.mono{font-family:var(--font-mono)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes fadeIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade{animation:fadeIn .16s ease-out}
