:root{--plane: #0b0c0e;--surface: #141619;--surface-2: #1b1e23;--inset: #0e1013;--hover: rgba(255, 255, 255, .035);--ink: #eef0f3;--ink2: #b4b8c1;--muted: #7d828c;--faint: #50555e;--line: rgba(255, 255, 255, .075);--line-2: rgba(255, 255, 255, .045);--blue: #3987e5;--blue-dim: #2a6fc4;--good: #0ca30c;--warn: #fab219;--serious: #ec835a;--crit: #d03b3b;--good-ink: #52c952;--warn-ink: #fab219;--crit-ink: #f07878;--radius: 14px;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, monospace;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{margin:0;background:var(--plane);color:var(--ink);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#2a2d33;border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#3a3e46;background-clip:content-box}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.mono{font-family:var(--mono)}.tnum{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12.5px}.nowrap{white-space:nowrap}svg.i{width:16px;height:16px;flex:none}.app{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}aside.side{background:#0f1113;border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 18px}.mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;background:linear-gradient(140deg,#3987e5,#1c5cab);color:#fff;box-shadow:inset 0 1px #ffffff2e}.mark svg{width:17px;height:17px}.brand b{font-size:14px;letter-spacing:.1px;display:block}.brand small{display:block;color:var(--muted);font-size:11.5px}nav.tabs{display:flex;flex-direction:column;gap:2px}nav.tabs a{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:9px;color:var(--ink2);font-size:13.5px;text-decoration:none;transition:background .12s,color .12s}nav.tabs a svg{width:17px;height:17px;opacity:.75}nav.tabs a:hover{background:var(--hover);color:var(--ink)}nav.tabs a.active{background:color-mix(in srgb,var(--blue) 15%,transparent);color:#fff}nav.tabs a.active svg{opacity:1;color:var(--blue)}nav.tabs .badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--crit);color:#fff}nav.tabs .badge.warn{background:var(--warn);color:#1d1500}aside .foot{margin-top:auto;padding:10px 8px 2px;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:10px}aside .foot .host{font-size:12px;color:var(--muted);line-height:1.45}aside .foot .host b{color:var(--ink2);font-weight:600}main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:14px 28px;min-height:60px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--plane) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar h1{margin:0;font-size:17px;font-weight:650}.topbar .sub{color:var(--muted);font-size:12.5px}.topbar .mark{display:none;width:28px;height:28px}.spacer{flex:1}.conn{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px;white-space:nowrap}.conn .dot{width:7px;height:7px;border-radius:50%;background:var(--good)}.conn.live .dot{animation:pulse 2.4s infinite}.conn.lost{color:var(--warn-ink)}.conn.lost .dot{background:var(--warn)}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--good) 65%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.content{padding:22px 28px 64px;max-width:1240px;width:100%}.stackv>*+*{margin-top:16px}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);color:var(--ink2);border:1px solid var(--line);border-radius:9px;padding:6px 12px;cursor:pointer;font-size:13px;transition:.12s;white-space:nowrap}.btn:hover{border-color:color-mix(in srgb,var(--blue) 55%,var(--line));color:var(--ink)}.btn.on{background:var(--blue);border-color:var(--blue);color:#fff}.btn.ghost{background:transparent}.btn.icon{padding:6px 8px}.btn .n{color:var(--muted);font-size:11.5px;font-weight:600}.btn.on .n{color:#fffc}.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}input.in,select.in{background:var(--inset);border:1px solid var(--line);border-radius:9px;color:var(--ink);padding:7px 11px;font-size:13px;font-family:inherit;outline:none;transition:border-color .12s}input.in:focus,select.in:focus{border-color:var(--blue)}.grid{display:grid;gap:14px}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tiles{grid-template-columns:repeat(auto-fit,minmax(168px,1fr))}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;min-width:0}.tile .k{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:650}.tile .k svg{width:14px;height:14px}.tile .v{font-size:26px;font-weight:700;line-height:1.15;margin-top:6px;letter-spacing:-.4px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile .v small{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0;margin-left:2px}.tile .s{color:var(--muted);font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.tile .viz{margin-top:10px}.tile.good .v{color:var(--good-ink)}.tile.warn .v{color:var(--warn-ink)}.tile.bad .v{color:var(--crit-ink)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0}.panel>.head{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:50px}.panel>.head h3{margin:0;font-size:13.5px;font-weight:650}.panel>.head .note{color:var(--muted);font-size:12px}.panel>.body{padding:14px 16px}.scroll{overflow-x:auto}.empty{padding:36px 20px;text-align:center;color:var(--muted)}.errbox{padding:28px 20px;text-align:center;color:var(--ink2)}.errbox b{color:var(--crit-ink);display:block;margin-bottom:4px}.foot-note{color:var(--muted);font-size:12.5px;margin:12px 2px 0}.meter{height:6px;border-radius:3px;background:var(--inset);overflow:hidden}.meter>span{display:block;height:100%;border-radius:3px;background:var(--blue)}.meter.warn>span{background:var(--warn)}.meter.bad>span{background:var(--crit)}svg.spark{display:block;width:100%;height:30px;overflow:visible}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;padding:9px 14px;color:var(--muted);font-weight:650;font-size:11px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);white-space:nowrap}tbody td{padding:10px 14px;border-bottom:1px solid var(--line-2);white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--hover)}tr.click{cursor:pointer}tr.dim td{opacity:.55}td.name{font-weight:600}th.r,td.r{text-align:right}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.5}.pill svg{width:12px;height:12px}.pill.good{background:color-mix(in srgb,var(--good) 17%,transparent);color:var(--good-ink)}.pill.warn{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn-ink)}.pill.bad{background:color-mix(in srgb,var(--crit) 20%,transparent);color:var(--crit-ink)}.pill.blue{background:color-mix(in srgb,var(--blue) 18%,transparent);color:#7fb2f0}.pill.dim{background:#ffffff0f;color:var(--muted)}.tag{display:inline-block;padding:0 6px;border-radius:5px;font-size:10.5px;font-weight:650;color:var(--muted);border:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em;vertical-align:1px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.dot.up{background:var(--good)}.dot.warn{background:var(--warn)}.dot.down{background:var(--crit);box-shadow:0 0 0 3px color-mix(in srgb,var(--crit) 25%,transparent)}.dot.dormant{background:transparent;border:1.5px solid var(--faint)}.banner{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden;flex-wrap:wrap}.banner:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--good)}.banner.warn:before{background:var(--warn)}.banner.bad:before{background:var(--crit)}.banner .big{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--good) 18%,transparent);color:var(--good-ink)}.banner.warn .big{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn-ink)}.banner.bad .big{background:color-mix(in srgb,var(--crit) 20%,transparent);color:var(--crit-ink)}.banner .big svg{width:22px;height:22px}.banner h2{margin:0;font-size:18px;font-weight:700;letter-spacing:-.2px}.banner .txt{min-width:0;flex:1 1 260px}.banner .txt p{margin:2px 0 0;color:var(--muted);font-size:13px}.banner .counts{display:flex;gap:18px;flex-wrap:wrap}.banner .counts div{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink2)}.banner .counts .dot.down{box-shadow:none}.banner .counts b{font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums}.issues{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px;flex-basis:100%}.issues li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:var(--inset);border:1px solid var(--line-2);cursor:pointer;font-size:13px;flex-wrap:wrap}.issues li:hover{border-color:var(--line)}.issues li .why{color:var(--ink2)}.issues li .when{margin-left:auto;color:var(--muted);font-size:12px}.sites{display:flex;flex-direction:column}.srow{display:grid;grid-template-columns:minmax(180px,1.3fr) 70px minmax(160px,1.6fr) 62px 62px 18px;align-items:center;gap:16px;padding:10px 16px;border-bottom:1px solid var(--line-2);cursor:pointer;transition:background .1s}.srow:last-child{border-bottom:0}.srow:hover{background:var(--hover)}.srow .who{display:flex;align-items:center;gap:11px;min-width:0}.srow .who>div{min-width:0}.srow .nm{font-weight:650;font-size:13.5px}.srow .dm{font:12px var(--mono);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srow .why{font-size:12px;color:var(--warn-ink);margin-top:1px}.srow .why.bad{color:var(--crit-ink)}.srow .why.known{color:var(--muted)}.srow .stack{font-size:12px;color:var(--muted)}.srow .pct{text-align:right;font-size:12.5px;color:var(--ink2);font-variant-numeric:tabular-nums}.srow .chev{color:var(--faint)}.srow.dormant .nm,.srow.dormant .dm{opacity:.6}.group-h{padding:8px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:650;background:var(--inset);border-bottom:1px solid var(--line-2);border-top:1px solid var(--line-2)}.sites .group-h:first-child{border-top:0}.ubar{display:flex;gap:2px;height:22px;align-items:stretch;min-width:0}.ubar i{flex:1;border-radius:2px;background:#22252b;min-width:1px}.ubar i.u{background:var(--good)}.ubar i.w{background:var(--warn)}.ubar i.x{background:var(--crit)}.ubar i.d{background:#2c3037}.ubar.tall{height:34px}.axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:5px}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--ink2);align-items:center}.rec{font-size:12px;color:var(--muted)}.legend .sw{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:-1px}.finds{list-style:none;margin:0;padding:0}.finds li{display:flex;gap:10px;align-items:flex-start;padding:10px 16px;border-bottom:1px solid var(--line-2);font-size:13px}.finds li:last-child{border-bottom:0}.finds li svg{margin-top:2px}.finds li.warn svg{color:var(--crit-ink)}.finds li.note svg{color:var(--warn-ink)}.finds li .site{font-weight:650;color:var(--ink);cursor:pointer}.finds li .msg{color:var(--ink2)}details.more>summary{cursor:pointer;padding:10px 16px;color:var(--muted);font-size:12.5px;list-style:none}details.more>summary::-webkit-details-marker{display:none}details.more>summary:hover{color:var(--ink2)}.hchart{display:flex;align-items:flex-end;gap:2px;height:150px;padding-top:6px;position:relative}.hchart .col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;min-width:2px}.hchart .stk{display:flex;flex-direction:column-reverse;gap:1px;border-radius:3px 3px 0 0;overflow:hidden}.hchart .stk span{flex-basis:0;min-height:1px}.hchart .col:hover .stk{filter:brightness(1.25)}.hchart .grid-line{position:absolute;left:0;right:0;border-top:1px dashed var(--line);pointer-events:none}.hchart .ymax{position:absolute;right:0;top:-14px;font-size:11px;color:var(--muted)}.stackbar{display:flex;height:12px;border-radius:6px;overflow:hidden;gap:2px}.rank{display:grid;gap:3px}.rank .r{position:relative;display:flex;align-items:center;gap:12px;padding:6px 10px;border-radius:8px;overflow:hidden;min-width:0}.rank .r .fill{position:absolute;left:0;top:0;bottom:0;background:color-mix(in srgb,var(--blue) 14%,transparent);border-radius:8px}.rank.bad .r .fill{background:color-mix(in srgb,var(--crit) 16%,transparent)}.rank.dim .r .fill{background:#ffffff0d}.rank .r .c{position:relative;width:44px;flex:none;text-align:right;font-weight:650;font-variant-numeric:tabular-nums}.rank .r .key{position:relative;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:12.5px var(--mono)}.logbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.logbar .grow{flex:1;min-width:160px}.chips.scrollx{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.chips .btn .dot{width:7px;height:7px}pre.logs{margin-bottom:0;background:var(--inset);border:1px solid var(--line);border-radius:var(--radius);padding:6px 0;overflow:auto;max-height:calc(100vh - 250px);min-height:200px;font:12.2px/1.65 var(--mono)}pre.logs.short{max-height:320px;min-height:0;margin-top:0}pre.logs .ln{display:block;padding:1px 16px;border-left:2px solid transparent;white-space:pre}pre.logs.wrap .ln{white-space:pre-wrap;word-break:break-word}pre.logs .ln:hover{background:#ffffff08}pre.logs .ln.err{border-left-color:var(--crit);background:color-mix(in srgb,var(--crit) 9%,transparent)}pre.logs .ln.warn{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn) 7%,transparent)}pre.logs .ln.boot{color:var(--muted);border-left-color:var(--blue)}pre.logs .ts{color:var(--muted)}pre.logs mark{background:color-mix(in srgb,var(--warn) 45%,transparent);color:#fff;border-radius:3px}.count{color:var(--muted);font-size:12px;white-space:nowrap}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40;opacity:0;transition:opacity .18s}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);z-index:41;background:var(--surface);border-left:1px solid var(--line);box-shadow:-24px 0 60px #00000073;display:flex;flex-direction:column;transform:translate(24px);opacity:0;transition:transform .18s ease,opacity .18s ease}.drawer:focus{outline:none}.drawer.open{transform:none;opacity:1}.scrim.open{opacity:1}.drawer .dhead{padding:18px 20px 14px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}.drawer .dhead h2{margin:0;font-size:18px;display:flex;align-items:center;gap:10px}.drawer .dhead .links{margin-top:4px;display:flex;gap:12px;flex-wrap:wrap;font:12.5px var(--mono)}.drawer .dhead .links a{display:inline-flex;align-items:center;gap:4px}.drawer .dhead .links svg{width:12px;height:12px}.drawer .dbody{overflow-y:auto;padding:16px 20px 40px;flex:1}.drawer .dbody>*+*{margin-top:18px}.drawer h4{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:650}.kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:7px 14px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.notes{background:var(--inset);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;font-size:13px;color:var(--ink2)}.reasons{display:flex;flex-wrap:wrap;gap:6px}.unitcard{border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;background:var(--inset)}.unitcard+.unitcard{margin-top:8px}.unitcard .top{display:flex;align-items:center;gap:8px;font:12.5px var(--mono)}.unitcard .facts{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--muted)}.unitcard .facts b{color:var(--ink2);font-weight:600;font-variant-numeric:tabular-nums}.login-wrap{display:grid;place-items:center;min-height:100vh;padding:20px;background:radial-gradient(600px 400px at 50% 30%,rgba(57,135,229,.08),transparent 70%)}.login{width:360px;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 24px 60px #00000080}.login .mark{width:42px;height:42px;border-radius:12px;margin-bottom:16px}.login .mark svg{width:22px;height:22px}.login h2{margin:0 0 3px;font-size:19px}.login p{margin:0 0 20px;color:var(--muted);font-size:13px}.login input{width:100%;padding:11px 13px;font-size:15px;margin-bottom:12px}.login button{width:100%;background:var(--blue);border:0;color:#fff;padding:11px;border-radius:10px;font-size:14px;font-weight:650;cursor:pointer}.login button:hover{background:var(--blue-dim)}.login button:disabled{opacity:.6;cursor:wait}.err{color:var(--crit-ink);font-size:13px;min-height:1.3em;margin-bottom:6px}.center-note{display:grid;place-items:center;min-height:100vh;text-align:center;padding:20px;color:var(--ink2)}.skel{height:92px;border-radius:var(--radius);background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:sk 1.4s infinite linear;border:1px solid var(--line-2)}@keyframes sk{to{background-position:-200% 0}}nav.bottom{display:none}@media(max-width:1080px){.srow{grid-template-columns:minmax(160px,1.3fr) minmax(120px,1.4fr) 56px 62px 14px}.srow .stack{display:none}}@media(max-width:820px){.app{grid-template-columns:minmax(0,1fr)}aside.side{display:none}.topbar{padding:10px 16px;min-height:54px}.topbar .mark{display:grid}.topbar .sub{display:none}.content{padding:14px 16px 96px}.cols-2{grid-template-columns:minmax(0,1fr)}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile{padding:12px 13px}.tile .v{font-size:22px}.banner{padding:16px}.banner .counts{gap:12px}.srow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who http" "bar pct";gap:8px 12px;padding:12px 14px}.srow .who{grid-area:who}.srow .ubar{grid-area:bar;height:14px}.srow .pct{grid-area:pct}.srow .http{grid-area:http;justify-self:end}.srow .chev,.hide-sm{display:none}nav.bottom{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:color-mix(in srgb,#0f1113 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}nav.bottom a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 0;color:var(--muted);font-size:10.5px;text-decoration:none;position:relative}nav.bottom a svg{width:20px;height:20px}nav.bottom a.active{color:#fff}nav.bottom a.active svg{color:var(--blue)}nav.bottom .badge{position:absolute;top:1px;left:calc(50% + 6px);min-width:16px;height:16px;border-radius:8px;font-size:10px;font-weight:700;display:grid;place-items:center;background:var(--crit);color:#fff;padding:0 4px}nav.bottom .badge.warn{background:var(--warn);color:#1d1500}.drawer{width:100vw;border-left:0}.kv{grid-template-columns:96px minmax(0,1fr)}pre.logs{max-height:calc(100vh - 300px)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
