:root{--bg: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e8f0;--text: #1e293b;--text-muted: #64748b;--primary: #4f46e5;--primary-dark: #4338ca;--secondary: #f59e0b;--success: #10b981;--success-bg: #d1fae5;--success-text: #065f46;--danger: #ef4444;--danger-bg: #fee2e2;--danger-text: #991b1b;--warning: #f59e0b;--warning-bg: #fef3c7;--warning-text: #92400e;--info-bg: #dbeafe;--info-text: #1e40af;--muted-bg: #e2e8f0;--muted-text: #475569;--primary-bg: #e0e7ff;--primary-text: #3730a3;--accent-orange-bg: #fff7ed;--accent-orange-text: #c2410c;--accent-pink-bg: #fdf2f8;--accent-pink-text: #9d174d;--accent-violet-bg: #ede9fe;--accent-violet-text: #5b21b6;--radius: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 4px 12px rgba(0, 0, 0, .05);--focus-ring: rgba(79, 70, 229, .15);--sidebar-bg: #ffffff;--sidebar-surface: #f8fafc;--sidebar-text: #1e293b;--sidebar-text-muted: #64748b;--sidebar-border: #e2e8f0;--sidebar-hover: rgba(15, 23, 42, .05);--sidebar-active-bg: rgba(79, 70, 229, .1);--sidebar-active-text: #4f46e5;--chart-grid: #e2e8f0;--chart-axis: #64748b;--chart-tooltip-bg: #ffffff}:root[data-theme=dark]{--bg: #0f172a;--surface: #1e293b;--surface-2: #172033;--border: #334155;--text: #e2e8f0;--text-muted: #94a3b8;--success-bg: rgba(16, 185, 129, .18);--success-text: #6ee7b7;--danger-bg: rgba(239, 68, 68, .18);--danger-text: #fca5a5;--warning-bg: rgba(245, 158, 11, .18);--warning-text: #fcd34d;--info-bg: rgba(59, 130, 246, .18);--info-text: #93c5fd;--muted-bg: #334155;--muted-text: #94a3b8;--primary-bg: rgba(99, 102, 241, .18);--primary-text: #a5b4fc;--accent-orange-bg: rgba(234, 88, 12, .18);--accent-orange-text: #fdba74;--accent-pink-bg: rgba(219, 39, 119, .18);--accent-pink-text: #f9a8d4;--accent-violet-bg: rgba(139, 92, 246, .18);--accent-violet-text: #c4b5fd;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 4px 12px rgba(0, 0, 0, .3);--focus-ring: rgba(99, 102, 241, .25);--sidebar-bg: #0f172a;--sidebar-surface: #172033;--sidebar-text: #e2e8f0;--sidebar-text-muted: #94a3b8;--sidebar-border: rgba(255, 255, 255, .08);--sidebar-hover: rgba(255, 255, 255, .08);--sidebar-active-bg: rgba(99, 102, 241, .2);--sidebar-active-text: #a5b4fc;--chart-grid: #334155;--chart-axis: #94a3b8;--chart-tooltip-bg: #1e293b}*{box-sizing:border-box}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{margin:0;font-weight:600}a{color:var(--primary)}.page{margin:0 auto;padding:1.5rem}.page-title{font-size:1.4rem;margin-bottom:.25rem}.page-subtitle{color:var(--text-muted);font-size:.9rem;margin-bottom:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s,transform .05s}.btn:active{transform:scale(.98)}.btn.btn-primary{background:var(--primary);color:#fff}.btn.btn-primary:hover{background:var(--primary-dark)}.btn.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.btn.btn-outline:hover{background:var(--surface-2)}.form-control{width:100%;padding:.5rem .7rem;border:1px solid var(--border);border-radius:8px;font-size:.88rem;background:var(--surface);color:var(--text)}.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge.badge-success{background:var(--success-bg);color:var(--success-text)}.badge.badge-danger{background:var(--danger-bg);color:var(--danger-text)}.badge.badge-warning{background:var(--warning-bg);color:var(--warning-text)}.badge.badge-info{background:var(--info-bg);color:var(--info-text)}.badge.badge-muted{background:var(--muted-bg);color:var(--muted-text)}.state{padding:2rem;text-align:center;color:var(--text-muted)}.state.error{color:var(--danger)}.spinner{display:inline-block;width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.page{padding:1rem}}
