:root{--bg:#0b1116;--panel:#111b23;--panel2:#15222c;--text:#e1e9ed;--muted:#94a9b6;--line:#2b3d49;--cyan:#7de0db;--amber:#efc269;--red:#ff7b82;--green:#73d8ab;--grey:#91a1b0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,sans-serif}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}header{display:flex;justify-content:space-between;align-items:center;padding:22px 3vw;border-bottom:1px solid var(--line);gap:20px;background:#0d171e}.brand{font:700 24px/1.2 ui-monospace,monospace;display:flex;gap:15px;color:var(--text);letter-spacing:.04em}.brand small{display:block;font-size:10px;letter-spacing:.14em;color:var(--muted);margin-top:8px}.header-right{display:flex;gap:20px;align-items:center;font-size:12px}#connection{color:var(--cyan);font:11px ui-monospace,monospace}main{max-width:1700px;margin:auto;padding:20px 3vw 50px}nav{min-height:30px;display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:12px}.heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:12px 0 24px}h1{font-size:clamp(26px,3vw,38px);font-weight:600;line-height:1.2;letter-spacing:-.03em;margin:8px 0}h2{font-size:19px;font-weight:600;margin:8px 0}h3{font-size:15px;margin:0 0 10px}.eyebrow{font:11px ui-monospace,monospace;letter-spacing:.14em;color:var(--cyan)}p{margin:6px 0 12px}.muted,small{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid var(--line);background:var(--line);margin-bottom:22px}.stat{background:var(--panel);padding:16px 20px}.stat b{font:28px ui-monospace,monospace;display:block;color:var(--text)}.stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.notice{border:1px solid var(--line);border-left:3px solid var(--cyan);padding:12px 16px;color:var(--muted);background:#101c24;margin:16px 0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.card{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--grey);border-radius:3px;padding:18px;display:block;color:var(--text);transition:background .15s,border-color .15s;min-width:0}.card:hover{background:var(--panel2);border-right-color:var(--cyan);text-decoration:none}.card h2{margin:13px 0 7px}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font:11px ui-monospace,monospace}.card.red{border-top-color:var(--red)}.card.amber{border-top-color:var(--amber)}.card.green{border-top-color:var(--green)}.badge{font:10px ui-monospace,monospace;letter-spacing:.03em;white-space:nowrap;border:1px solid currentColor;border-radius:3px;padding:3px 6px;color:var(--grey)}.badge.red{color:var(--red)}.badge.amber{color:var(--amber)}.badge.green{color:var(--green)}.metric{display:flex;justify-content:space-between;align-items:center;margin:15px 0}.metric strong{font:25px ui-monospace,monospace}.spark{width:105px;height:30px;fill:none;stroke:var(--cyan);stroke-width:2}.health{display:flex;gap:6px;align-items:center;margin:8px 0;font-size:12px;color:var(--muted)}.dot{width:7px;height:7px;border-radius:50%;background:var(--grey);flex:none}.dot.ok{background:var(--green)}.dot.error{background:var(--red)}.dot.stale{background:var(--amber)}.healthbar{display:flex;height:3px;gap:2px;margin-top:12px}.healthbar i{flex:1;background:var(--line)}.healthbar i.ok{background:var(--green)}.healthbar i.error{background:var(--red)}.healthbar i.stale{background:var(--amber)}.latest{font-size:12px;border-top:1px solid var(--line);padding-top:10px;margin-top:12px;min-height:54px;overflow-wrap:anywhere}.latest time{display:block;color:var(--muted);font-size:10px}.latest p{margin:5px 0}.card .reason{font-size:12px;color:var(--muted);min-height:52px}.toolbar{display:flex;gap:10px;margin:20px 0;align-items:center;flex-wrap:wrap}input,select,button{background:#17242e;border:1px solid #415763;border-radius:3px;padding:10px;color:var(--text);font:inherit}input{min-width:240px}button{cursor:pointer}button:hover{border-color:var(--cyan)}button:disabled{opacity:.4;cursor:default}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{border:1px solid var(--line);background:var(--panel);padding:20px;margin-bottom:18px;min-width:0}.metadata{display:grid;grid-template-columns:150px 1fr;gap:8px;font-size:13px;overflow-wrap:anywhere}.metadata dt{color:var(--muted)}.metadata dd{margin:0}.chart{width:100%;height:200px;overflow:visible}.chart polyline{fill:none;stroke:var(--cyan);stroke-width:2}.chart text{fill:var(--muted);font-size:11px}.chart line{stroke:var(--line)}.map{width:100%;height:350px;background:#0b1821}.map path{fill:#1c303c;stroke:#38515e;stroke-width:.3}.map circle{fill:var(--cyan);opacity:.7;stroke:#0b1116;stroke-width:.4}.map circle:hover{fill:var(--amber);opacity:1}.map text{fill:var(--muted);font-size:9px}.records{display:grid;gap:10px}.record{background:var(--panel);border:1px solid var(--line);padding:15px}.record .meta{font-size:11px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap;margin:7px 0}.record summary{cursor:pointer;color:var(--cyan);font-size:12px}pre{max-height:420px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.6 ui-monospace,monospace;color:#bfd1dd}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;padding:9px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:400}.table-wrap{overflow:auto}.errorbox{border:1px solid var(--red);color:var(--red);padding:14px}footer{display:flex;justify-content:space-between;gap:20px;padding:18px 3vw;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.textblock{max-width:850px}.textblock h2{margin-top:26px}.scope{color:var(--muted);font-size:11px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;margin:15px 0}.pagination{margin:18px 0}.cardnum{color:var(--cyan)}@media(min-width:1450px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1050px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header-right{flex-wrap:wrap;justify-content:end}}@media(max-width:650px){header{align-items:start;flex-direction:column}.header-right{justify-content:start;gap:12px}.grid,.two{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.brand{font-size:20px}.heading{align-items:start;flex-direction:column}.metadata{grid-template-columns:110px 1fr}footer{flex-direction:column}input{min-width:0;width:100%}.card{padding:15px}.map{height:260px}}
