:root{color-scheme:dark;font-family:system-ui,sans-serif;background:#0b1020;color:#e6edf7}body{margin:0}.app{min-height:100vh;padding:16px 20px}.alarm-bg{background:linear-gradient(#2a0d12,#0b1020 240px)}header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;align-items:center}h1{margin:0;font-size:1.4rem;letter-spacing:.08em}h1 small{font-weight:400;color:#8b9bb8;font-size:.75rem;letter-spacing:0;margin-left:8px}h2{font-size:.95rem;margin:0 0 10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}h3{font-size:.85rem;margin:14px 0 4px}.controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap}label{display:grid;font-size:.7rem;color:#8b9bb8;gap:2px}select,button{background:#16203a;color:inherit;border:1px solid #2c3b63;border-radius:6px;padding:6px 10px;font:inherit}button{cursor:pointer}.strip{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin:12px 0 4px;padding:8px 12px;background:#111936;border-radius:8px;font-size:.85rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;margin-top:10px}.panel{background:#111936;border:1px solid #22305a;border-radius:10px;padding:14px}.panel.wide{grid-column:span 2}@media(max-width:800px){.panel.wide{grid-column:auto}}.charts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.chart{margin:0}.chart figcaption{display:flex;justify-content:space-between;font-size:.75rem;color:#8b9bb8}.chart b{color:#e6edf7}.chart svg{width:100%;background:#0b1020;border-radius:6px}.thr{stroke:#ff6b6b;stroke-dasharray:3 3;opacity:.6}.heat{width:100%;max-width:360px;image-rendering:pixelated;border-radius:6px}.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:.85rem}.kv dt{color:#8b9bb8}.kv dd{margin:0}.status{font-size:1.3rem;font-weight:700;padding:10px 14px;border-radius:8px;letter-spacing:.05em}.status.ok{background:#0e3a26;color:#7ff0b0}.status.alarm{background:#5a1420;color:#ff9aa8;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.7}}.evidence{padding-left:18px;font-size:.85rem}.evidence .hit{color:#ff9aa8}.refs{padding-left:18px;font-size:.85rem}a{color:#7cc4ff}.tag{font-size:.65rem;padding:2px 8px;border-radius:99px;font-weight:600}.tag.warn{background:#4a3b10;color:#ffd166}.tag.info{background:#12335a;color:#7cc4ff}.muted{color:#8b9bb8}.small{font-size:.75rem}.err{color:#ff9aa8}.stale{color:#ffd166;font-weight:700}.warn-line{font-weight:700;color:#ffd166}
