@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-main:#f4f6f9;--bg-panel:#fff;--bg-sidebar:#0d1117;--text-primary:#111827;--text-secondary:#6b7280;--text-muted:#9ca3af;--border:#e5e7eb;--border-dark:#d1d5db;--accent-green:#0d9488;--accent-green-light:#ccfbf1;--accent-blue:#3b5bdb;--accent-blue-light:#dbeafe;--accent-red:#dc2626;--accent-red-light:#fee2e2;--accent-amber:#d97706;--accent-amber-light:#fef3c7;--accent-purple:#7c3aed;--accent-purple-light:#ede9fe;--sidebar-text:#9ca3af;--sidebar-text-active:#fff;--sidebar-active-bg:#1d2432}html,body,#root{background-color:var(--bg-main);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:20px}.badge{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-green{background:var(--accent-green-light);color:var(--accent-green)}.badge-red{background:var(--accent-red-light);color:var(--accent-red)}.badge-amber{background:var(--accent-amber-light);color:var(--accent-amber)}.badge-blue{background:var(--accent-blue-light);color:var(--accent-blue)}.badge-purple{background:var(--accent-purple-light);color:var(--accent-purple)}.progress-track{background:#e5e7eb;border-radius:2px;width:100%;height:4px;overflow:hidden}.progress-fill{border-radius:2px;height:100%;transition:width 1s}.stat-value{letter-spacing:-.02em;color:var(--text-primary);font-size:28px;font-weight:700}.stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:600}.mono{font-family:JetBrains Mono,monospace}.btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent-blue);color:#fff}.btn-primary:hover{background:#2d4dcc}.btn-dark{background:var(--bg-sidebar);color:#fff}.btn-dark:hover{background:#1d2432}.btn-outline{color:var(--text-primary);border:1px solid var(--border-dark);background:#fff}.btn-outline:hover{background:var(--bg-main)}.btn-green{background:var(--accent-green);color:#fff}.btn-green:hover{background:#0f766e}.heatmap-cell{aspect-ratio:1;cursor:default;border-radius:4px;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;transition:transform .15s;display:flex}.heatmap-cell:hover{z-index:1;transform:scale(1.1)}.audit-table{border-collapse:collapse;width:100%}.audit-table th{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border);padding:10px 12px;font-size:10px;font-weight:600}.audit-table td{color:var(--text-primary);border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 12px;font-size:13px}.audit-table tr:last-child td{border-bottom:none}.audit-table tr:hover td{background:var(--bg-main)}.range-slider{background:var(--border);-webkit-appearance:none;cursor:pointer;border-radius:2px;outline:none;width:100%;height:4px}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-blue);cursor:pointer;border:2px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0003}.toggle{width:38px;height:20px;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-slider{background:var(--border-dark);cursor:pointer;border-radius:20px;transition:all .3s;position:absolute;inset:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:all .3s;position:absolute;top:3px;left:3px}input:checked+.toggle-slider{background:var(--accent-green)}input:checked+.toggle-slider:before{transform:translate(18px)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-fadeup{animation:.35s forwards fadeUp}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.pulse{animation:2s infinite pulse-dot}
