:root{color-scheme:light;--bg: #f5f7fb;--surface: #ffffff;--border: #e6ebf2;--text: #101d3c;--muted: #67748e;--primary: #2a5bff;font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--bg)}#root{min-height:100vh}.app-layout{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:18px 16px}.brand{display:flex;align-items:center;gap:10px;padding:4px 6px 18px}.brand-mark{width:30px;height:30px;border-radius:9px;background:#ff8a00;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}.brand-text{display:grid;gap:1px}.brand-name{font-size:20px;font-weight:700;line-height:1;letter-spacing:.01em}.brand-subtitle-top{font-size:12px;font-weight:700;color:#1f2f52;line-height:1.2}.brand-subtitle{font-size:11px;font-weight:700;color:#6f7e9a;line-height:1.2}.menu{display:grid;gap:10px}.menu-item{border-radius:14px;display:flex;align-items:center;gap:14px;text-align:left;padding:14px 18px;font-size:15px;font-weight:500;letter-spacing:.005em;color:#243559;text-decoration:none;line-height:1.1}.menu-item.active{background:var(--primary);color:#fff}.menu-item.utility{cursor:default}.menu-icon{width:26px;height:26px;flex:0 0 26px;display:inline-flex;align-items:center;justify-content:center}.menu-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dashboard{padding:12px 16px 16px}.page-title{margin:0 0 2px;font-size:22px;line-height:1.1}.page-subtitle{margin:0 0 6px;color:#6c7c96;font-size:11px}.topbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.time-filters{display:flex;gap:8px}.chip{border:1px solid var(--border);border-radius:10px;background:var(--surface);color:#2c3d62;padding:6px 10px;font-size:12px;font-weight:600;cursor:pointer}.chip.active{box-shadow:inset 0 0 0 1px var(--primary)}.top-actions{display:flex;align-items:center;gap:10px}.search{border:1px solid var(--border);border-radius:12px;background:var(--surface);color:#516280;font-size:12px;padding:6px 10px}.search.read-only{min-width:220px}.icon-btn{border:1px solid var(--border);border-radius:12px;background:var(--surface);color:#2d3f64;font-size:12px;font-weight:600;padding:6px 9px}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin-bottom:10px}.kpi-card{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:8px 10px;min-height:92px;box-shadow:0 2px 8px #101d3c0d}.kpi-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.kpi-card h3{margin:0;font-size:11px;font-weight:600;color:#346}.kpi-delta{font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid transparent}.kpi-delta.positive{color:#1f9c67;background:#ecfaf3;border-color:#cdeede}.kpi-delta.negative{color:#d14949;background:#fff2f2;border-color:#f4d4d4}.metric{margin:8px 0 2px;font-size:24px;font-weight:700;line-height:1}.meta{margin:0;color:var(--muted);font-size:10px}.panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.panel{border:1px solid var(--border);border-radius:12px;background:var(--surface);min-height:240px;padding:10px}.panel.panel-full{min-height:280px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 4px}.panel h2{margin:0;font-size:15px}.section-menu{color:#9aacbf;font-size:16px;line-height:1}.chart-wrap{height:195px}.chart-wrap.tall{height:220px}.pie-chart-wrap{height:240px}.pie-legend{margin-top:4px;display:flex;flex-wrap:wrap;gap:6px 12px}.pie-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#425575}.pie-legend-item strong{color:#1b2a47;font-weight:700}.pie-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.matrix-grid{display:grid;gap:10px}.section-subtitle{margin:0 0 8px;color:#6f7f99;font-size:10px}.table-wrap{overflow-x:auto}.matrix-table{width:100%;border-collapse:collapse;font-size:11px}.matrix-table th,.matrix-table td{border-bottom:1px solid #eef2f8;text-align:left;padding:5px;white-space:nowrap}.matrix-table th{color:#4f6180;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.matrix-table td{color:#1b2a47}.matrix-table .danger{color:#d33f3f;font-weight:600}.incident-list,.security-list{display:grid;gap:10px}.incident-row,.security-row{border:1px solid #e8edf6;background:#f9fbff;border-radius:10px;padding:6px 8px;display:grid;grid-template-columns:70px 1fr auto;gap:10px;align-items:center;font-size:11px}.incident-time{color:#5e6f8d;font-weight:600}.incident-title{color:#1b2a47}.incident-state{color:#2c9f6e;font-weight:600;text-transform:capitalize;padding:2px 8px;border-radius:999px;border:1px solid #d3ede1;background:#f1fbf5}.incident-state.investigating{color:#cb4f4f;border-color:#f1d2d2;background:#fff3f3}.incident-state.mitigated{color:#c2851c;border-color:#f2dfbe;background:#fff7e9}.mini-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px}.mini-kpi{border:1px solid #e8edf6;border-radius:10px;padding:6px;background:#f9fbff;display:grid;gap:4px}.mini-kpi strong{color:#163057;font-size:18px;line-height:1}.mini-kpi span{color:#5e6f8d;font-size:10px}.security-row strong{color:#163057;text-align:right}.security-row em{color:#2c9f6e;font-style:normal;text-transform:capitalize;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid #d3ede1;background:#f1fbf5}.security-row em.monitor{color:#c2851c;border-color:#f2dfbe;background:#fff7e9}.security-row em.normal{color:#4a63d8;border-color:#d7dff8;background:#f1f4ff}.status-card{margin:0 0 8px;background:var(--surface);border:1px solid var(--border);padding:8px 10px;border-radius:10px;color:#233252}.status-card.error{color:#a0282d;border-color:#f2ced2;background:#fff7f8}@media (max-width: 1500px){.kpi-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.app-layout{grid-template-columns:220px 1fr}}@media (max-width: 980px){.app-layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border)}.topbar{flex-direction:column;align-items:stretch}.panel-grid{grid-template-columns:1fr}}
