@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter-v20-latin.woff2) format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/space-grotesk-v22-latin.woff2) format('woff2')}
:root{
  --bg:#0b0f1a;--bg2:#111829;--card:#141b2d;--card2:#1a2238;--ink:#eef1fb;--muted:#a9b2cc;--dim:#7d86a3;
  --line:rgba(160,180,255,.14);--cyan:#00f9ff;--pink:#ff4fb4;--violet:#a78bfa;--green:#34d399;--amber:#fbbf24;--red:#f87171;--orange:#fb923c;--blue:#60a5fa;
  --rainbow:linear-gradient(90deg,#ff4fb4,#fb923c,#facc15,#4ade80,#22d3ee,#818cf8,#c084fc);
  --radius:14px;--mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;background:radial-gradient(1200px 600px at 50% -200px,#18213a 0%,var(--bg) 60%) fixed,var(--bg);color:var(--ink);font:15px/1.55 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100vh}
a{color:var(--cyan)}a:hover{color:#fff}
.wrap{max-width:1040px;margin:0 auto;padding:18px 16px 40px}
.srOnly{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}
.bsNav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;font:12px/1 var(--mono);letter-spacing:1.5px;text-transform:uppercase}
.bsNav a{color:var(--muted);text-decoration:none}.bsNav a:hover{color:var(--cyan)}
.crumbs a+a::before{content:"/";margin:0 8px;color:var(--dim)}
.hero{text-align:center}
.banner{display:block;width:100%;height:auto;border-radius:18px;border:1px solid var(--line);box-shadow:0 0 0 1px rgba(255,255,255,.03),0 18px 50px rgba(0,0,0,.55),0 0 40px rgba(129,140,248,.12)}
.kicker{margin:16px 0 6px;font:11px/1.4 var(--mono);letter-spacing:3px;text-transform:uppercase;color:var(--dim)}
.lede{max-width:760px;margin:0 auto;color:var(--muted)}
.lede b{color:var(--ink)}
.rainbar{height:3px;border-radius:3px;background:var(--rainbow);opacity:.85;margin:18px auto 0;max-width:260px}
.tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:22px 0 6px}
.tab{appearance:none;border:1px solid var(--line);background:var(--card);color:var(--muted);padding:11px 16px;border-radius:999px;font:600 14px/1 Inter,system-ui,sans-serif;cursor:pointer;min-height:44px}
.tab[aria-selected="true"]{color:#fff;border-color:transparent;background:linear-gradient(var(--card2),var(--card2)) padding-box,var(--rainbow) border-box;border:1px solid transparent;box-shadow:0 0 18px rgba(129,140,248,.25)}
.tab:focus-visible,.btn:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.panel{margin-top:16px}
.srcBar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 14px;font:12px/1.4 var(--mono);color:var(--dim)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);font:600 11px/1.2 var(--mono);letter-spacing:.6px;text-transform:uppercase}
.pill.owned{border-color:rgba(0,249,255,.35);color:var(--cyan)}
.pill.local{border-color:rgba(255,79,180,.4);color:#ff8fd0}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.card{background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:var(--radius);padding:14px 14px 12px;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--dim)}
.card.ok::before{background:var(--green)}.card.warn::before{background:var(--amber)}.card.bad::before{background:var(--red)}.card.info::before{background:var(--violet)}
.card .lbl{font:600 10.5px/1.3 var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--dim)}
.card .val{font:600 28px/1.15 "Space Grotesk",Inter,sans-serif;margin:6px 0 2px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.card.ok .val{color:var(--green)}.card.warn .val{color:var(--amber)}.card.bad .val{color:var(--red)}
.card .sub{font-size:12.5px;color:var(--muted)}
.box{background:rgba(20,27,45,.82);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-top:14px}
.box h2{margin:0 0 4px;font:600 18px/1.3 "Space Grotesk",Inter,sans-serif}
.box h3{margin:16px 0 6px;font:600 12px/1.3 var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}
.box .note{margin:2px 0 10px;color:var(--dim);font-size:13px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.chart{display:flex;align-items:flex-end;gap:4px;height:170px;padding:8px 2px 0;border-bottom:1px solid var(--line);overflow-x:auto}
.col{flex:1 0 22px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;height:100%;position:relative;min-width:22px}
.seg{display:block;width:100%}
.seg.s2{background:#34d399}.seg.s3{background:#60a5fa}.seg.s4{background:#fbbf24}.seg.s5{background:#f87171}.seg.so{background:#64748b}
.seg.real{background:#c084fc}.seg.test{background:#475569}
.col .n{display:block;text-align:center;font:10px/1 var(--mono);color:var(--dim);margin-bottom:3px;white-space:nowrap}
.col.spike{outline:1px dashed rgba(248,113,113,.7);outline-offset:2px;border-radius:2px}
.xlab{display:flex;gap:4px;padding:4px 2px 0;overflow:hidden}
.xlab span{flex:1 0 22px;min-width:22px;text-align:center;font:9.5px/1.2 var(--mono);color:var(--dim);white-space:nowrap}
.legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;font:11.5px/1.2 var(--mono);color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font:600 10.5px/1.3 var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--dim)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td code{font:12.5px/1.4 var(--mono);color:#dbe3ff;word-break:break-all}
.empty{color:var(--dim);font-style:italic;padding:8px 0}
.bar{height:6px;border-radius:3px;background:rgba(255,255,255,.06);overflow:hidden;margin-top:4px}
.bar>span{display:block;height:100%;background:var(--rainbow)}
.callout{border:1px solid rgba(251,191,36,.3);background:rgba(251,191,36,.06);border-radius:12px;padding:12px 14px;color:#f5e3b5;font-size:13.5px;margin-top:14px}
.callout.good{border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.07);color:#c9f5e4}
.callout.err{border-color:rgba(248,113,113,.4);background:rgba(248,113,113,.08);color:#ffd2d2}
.callout ul{margin:6px 0 0;padding-left:18px}
textarea{width:100%;min-height:220px;resize:vertical;background:#0a0e18;color:#dbe3ff;border:1px solid var(--line);border-radius:12px;padding:12px;font:12.5px/1.5 var(--mono)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}
.btn{appearance:none;border:1px solid rgba(0,249,255,.5);background:rgba(0,249,255,.08);color:var(--cyan);border-radius:10px;padding:11px 18px;min-height:44px;font:600 13px/1 var(--mono);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer}
.btn:hover{color:#fff;border-color:var(--cyan);box-shadow:0 0 18px rgba(0,249,255,.2)}
.btn.ghost{border-color:var(--line);background:transparent;color:var(--muted)}
.meta{font:12px/1.5 var(--mono);color:var(--dim)}
.loading{color:var(--muted);font:13px/1.5 var(--mono);padding:24px 0;text-align:center}
.about{color:var(--muted);font-size:14px}
.about li{margin:4px 0}
.bsFoot{text-align:center;margin:30px 0 6px;font-size:13px;color:var(--dim);line-height:1.9}
.bsFoot a{color:var(--muted);text-decoration:none}.bsFoot a:hover{color:var(--cyan)}
.bsFoot .sig{font:10px/1 var(--mono);letter-spacing:2px;color:rgba(255,255,255,.3);margin-top:8px}
@media (max-width:520px){.card .val{font-size:24px}.chart{height:140px}.box{padding:13px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.inp{flex:1 1 260px;min-width:0;background:#0a0e18;color:#eef1fb;border:1px solid var(--line);border-radius:10px;padding:11px 12px;min-height:44px;font:14px/1.3 var(--mono)}
.inp:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.hops{list-style:none;margin:0;padding:0;counter-reset:hop}
.hops li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line)}
.hops .st{font:700 13px/1 var(--mono);padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.06);min-width:48px;text-align:center}
.st.c2{color:var(--green)}.st.c3{color:var(--blue)}.st.c4{color:var(--amber)}.st.c5,.st.c0{color:var(--red)}
.hops .u{font:12.5px/1.45 var(--mono);word-break:break-all;color:#dbe3ff}
.hops .loc{font:12px/1.45 var(--mono);color:var(--dim);word-break:break-all}
.hops .ms{font:12px/1.3 var(--mono);color:var(--muted);text-align:right;white-space:nowrap}
.grade{display:inline-block;font:700 10.5px/1 var(--mono);letter-spacing:1px;text-transform:uppercase;padding:4px 7px;border-radius:6px}
.grade.pass{color:#062b1d;background:var(--green)}.grade.warn{color:#2b1d02;background:var(--amber)}.grade.fail{color:#2b0606;background:var(--red)}.grade.info{color:#e9e5ff;background:rgba(167,139,250,.35)}
.verdict{font:600 26px/1.2 "Space Grotesk",Inter,sans-serif;margin:4px 0 8px}
.verdict.yes{color:var(--green)}.verdict.partial{color:var(--amber)}.verdict.no{color:var(--red)}
.spark{width:100%;height:70px;display:block}
.kv{display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:4px 12px;font-size:13.5px}
.kv dt{color:var(--dim);font:600 11px/1.6 var(--mono);letter-spacing:1px;text-transform:uppercase}
.kv dd{margin:0;word-break:break-word}

/* Owner lock (2026-11-05): Pulse + Uptime are private Byteslip owner dashboards */
.lockBox{border-color:rgba(251,191,36,.35);background:linear-gradient(180deg,rgba(251,191,36,.06),rgba(20,27,45,.85) 60%)}
.lockBox h2{color:#fde68a}
.lockBox .row{max-width:560px}
.lockMsg{min-height:1.4em;margin:8px 0 0;font:12.5px/1.4 var(--mono);color:var(--dim)}
.lockMsg.bad{color:#fca5a5}
.lockPublic{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:13.5px}
.lockPublic a{color:var(--cyan)}
.btn:disabled{opacity:.6;cursor:wait}
.ownerBar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:0 0 4px;font:12px/1.4 var(--mono);color:#86efac}
.lockBtn{min-height:34px;padding:7px 12px;font-size:11px}
