:root{color-scheme:dark;--bg:#0d1015;--surface:#191e27;--surface2:#222a34;--line:#313945;--ink:#f6f8fb;--muted:#a0aab8;--good:#66dbbb;--warn:#f1bb71;--bad:#fa838a;--vpn:#54d5bf;--direct:#edb269;--shadow:0 10px 30px #05070b18;--safe-bottom:env(safe-area-inset-bottom,0px);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:default}
.shell{max-width:700px;margin:auto;min-height:100vh;padding-bottom:calc(90px + var(--safe-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:20px 17px 10px}.identity{display:flex;align-items:center;gap:11px}.mark{width:43px;height:43px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(140deg,#227969,#183b46);font-size:29px;color:#c6fff3}.brand{font-size:17px;letter-spacing:-.45px;font-weight:780}.brandnote{font-size:11px;color:var(--muted);margin-top:4px}.version{font-size:10px;color:var(--muted);font-weight:550;vertical-align:middle}.refresh{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:13px;width:41px;height:41px;font-size:25px;line-height:1}.refresh:active{transform:scale(.97)}.livebar{display:flex;align-items:center;gap:10px;padding:5px 18px 9px;min-height:40px}.updated{font-size:11px;color:var(--muted)}.status{border-radius:100px;padding:6px 9px;font-size:11px;font-weight:720;white-space:nowrap}.status-ok{background:#173d35;color:#a0f1d3}.status-bad{background:#4a292c;color:#ffb7b7}.status-warn{background:#453927;color:#f7cd8b}.status-muted{background:#2a323c;color:#c2cbd5}
.page{display:none;padding:6px 14px 30px}.page.visible{display:block}.section-heading{padding:4px 3px 0;margin:5px 0 18px}h1{font-size:31px;line-height:1.05;letter-spacing:-1.15px;font-weight:790;margin:5px 0 8px}h2{font-size:14px;font-weight:740;margin:0}.eyebrow{color:var(--good);letter-spacing:1.65px;font-weight:770;font-size:10px;margin:0}.lede{font-size:13px;color:var(--muted);line-height:1.5;margin:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:19px;padding:17px;margin-bottom:12px;box-shadow:var(--shadow)}.card-heading,.between{display:flex;align-items:center;justify-content:space-between;gap:8px}.subtle,.role{font-size:11px;color:var(--muted)}.role{padding:5px 8px;background:var(--surface2);border-radius:9px;white-space:nowrap}.duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}.duo .card{margin-bottom:12px}
.route-card{padding:17px 11px}.route-topology{display:grid;grid-template-columns:minmax(0,1fr) 10px minmax(0,1fr) 10px minmax(0,1fr) 10px minmax(0,1fr);align-items:center;padding:6px 2px 18px}.route-node{display:grid;text-align:center;justify-items:center;min-width:0;gap:3px}.route-node b{font-size:11px;font-weight:730}.route-node small{font-size:10px;color:var(--muted)}.route-symbol{display:grid;place-items:center;width:38px;height:38px;border-radius:14px;background:#27363a;font-size:22px;margin-bottom:5px}.route-link{height:2px;background:linear-gradient(90deg,var(--good),#314f52);position:relative}.route-link:after{content:'';position:absolute;right:0;top:-3px;border-left:5px solid var(--good);border-top:4px solid transparent;border-bottom:4px solid transparent}.route-states{display:grid;gap:0;border-top:1px solid var(--line)}.route-states>div{display:flex;align-items:center;justify-content:space-between;padding:12px 7px;border-bottom:1px solid var(--line);gap:12px;font-size:12px}.route-states>div:last-child{border-bottom:0}.route-states small{color:var(--muted)}.state-text{font-size:12px;font-weight:730}.state-text.ok{color:var(--good)}.state-text.bad{color:var(--bad)}
.compact-metric{padding:16px 13px;min-width:0}.compact-metric span{font-size:11px;color:var(--muted);display:block;min-height:29px;line-height:1.4}.compact-metric strong{display:block;font-size:25px;font-variant-numeric:tabular-nums;letter-spacing:-.8px;margin-top:12px}.compact-metric small{display:block;font-size:10px;line-height:1.4;color:var(--muted);margin-top:6px}.observation{background:linear-gradient(135deg,var(--surface),var(--surface2))}.analysis-pill{color:var(--good);border:1px solid #42937f65;border-radius:30px;padding:6px 9px;font-size:11px;font-weight:700;white-space:nowrap}.analysis-pill.warn{color:var(--warn);border-color:#f1bb7166}.analysis-pill.bad{color:var(--bad);border-color:#fa838a66}.body-copy{font-size:13px;color:var(--ink);line-height:1.6}.brief-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0 7px}.brief-grid>div{min-width:0}.brief-grid small{display:block;color:var(--muted);font-size:10px;line-height:1.4;min-height:29px}.brief-grid strong{display:block;font-size:17px;font-variant-numeric:tabular-nums;margin-top:8px}.text-action{margin-top:17px;padding:12px 0 0;background:none;color:var(--good);border:0;border-top:1px solid var(--line);width:100%;display:flex;justify-content:space-between;text-align:left;font-size:12px;font-weight:720}.text-action span{font-size:18px;line-height:12px}.fineprint{font-size:11px;color:var(--muted);line-height:1.55;margin:13px 0 0}.resource-grid{margin-top:15px;display:grid;gap:15px}.resource .between{font-size:12px}.resource b{font-variant-numeric:tabular-nums}progress{appearance:none;-webkit-appearance:none;display:block;width:100%;height:7px;background:#303b46;border:0;border-radius:20px;overflow:hidden;margin-top:8px}progress::-webkit-progress-bar{background:#303b46}progress::-webkit-progress-value{background:var(--good)}progress::-moz-progress-bar{background:var(--good)}progress.warn::-webkit-progress-value{background:var(--warn)}progress.bad::-webkit-progress-value{background:var(--bad)}
.chart-card{padding:17px 12px 13px}.chart-card>.card-heading{padding:0 4px}select{color:var(--ink);background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:12px}.legend{display:flex;gap:16px;flex-wrap:wrap;margin:15px 4px 3px;font-size:11px;color:var(--muted)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}.dot.vpn{background:var(--vpn)}.dot.direct{background:var(--direct)}.chart-shell{margin:3px -1px;position:relative}.chart-shell svg{width:100%;overflow:visible;display:block;touch-action:pan-y}.chart-shell svg .gridline{stroke:var(--line);stroke-width:1}.chart-shell svg text{fill:var(--muted);font-size:10px;font-family:inherit}.chart-shell svg .chart-empty{font-size:14px}.chart-shell svg .crosshair{stroke:var(--muted);stroke-dasharray:3 5;stroke-width:1}.chart-tooltip{text-align:center;min-height:18px;color:var(--muted);font-size:11px;margin-bottom:4px}.chart-card .fineprint{margin:12px 4px 0}.triple-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.metric-small{padding:14px 10px;min-width:0}.metric-small span{display:block;font-size:10px;color:var(--muted);min-height:27px}.metric-small strong{display:block;font-size:20px;font-weight:770;font-variant-numeric:tabular-nums;margin-top:7px}.metric-small small{display:block;color:var(--muted);font-size:10px;line-height:1.35;margin-top:6px}.block-title{margin-bottom:8px}.statline{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-bottom:1px solid var(--line);padding:13px 0;font-size:13px}.statline:last-of-type{border:0}.statline>span{color:var(--muted)}.statline strong{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}.explanation summary{font-size:13px;font-weight:720;cursor:pointer}.explanation p{color:var(--muted);font-size:12px;line-height:1.6}.limited-source{display:flex;align-items:flex-start;gap:10px;background:var(--surface2);padding:14px;border-radius:14px;margin-top:12px}.limited-source strong{font-size:12px}.limited-source p{font-size:11px;line-height:1.55;color:var(--muted);margin:6px 0 0}.source-dot{display:block;width:9px;height:9px;border:2px solid var(--warn);border-radius:50%;flex-shrink:0;margin-top:3px}.upcoming{font-size:11px;color:var(--muted);margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.risk-list{display:grid;gap:10px;margin-top:16px}.risk{padding:12px;border-radius:12px;background:var(--surface2);font-size:12px;line-height:1.5}.risk strong{display:block;margin-bottom:3px}.risk small{color:var(--muted)}.risk.bad{border-left:3px solid var(--bad)}.risk.warn{border-left:3px solid var(--warn)}.risk.good{border-left:3px solid var(--good)}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;max-width:700px;margin:auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:8px 8px calc(9px + var(--safe-bottom));z-index:10}.tab{display:grid;place-items:center;gap:3px;min-width:0;padding:5px 1px;border:0;border-radius:12px;color:var(--muted);background:none}.tab span{font-size:21px;line-height:1.3}.tab small{font-size:10px}.tab.selected{color:var(--good);background:#1d3936}.tab:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--good);outline-offset:2px}
@media(min-width:600px){.page{padding:12px 27px 30px}.topbar{padding:22px 30px 12px}.livebar{padding-left:30px}.card{padding:22px}.route-card{padding:22px}.route-node b{font-size:13px}.route-symbol{width:49px;height:49px}.compact-metric strong{font-size:30px}}
:root[data-theme='light']{color-scheme:light;--bg:#f3f5f8;--surface:#fff;--surface2:#edf2f4;--line:#dbe4e8;--ink:#172331;--muted:#5c6977;--good:#137b65;--warn:#976017;--bad:#b93644;--vpn:#169481;--direct:#bb7c25;--shadow:0 10px 25px #53636c0d}
:root[data-theme='light'] .status-ok{background:#e0f5e9;color:#116d50}:root[data-theme='light'] .status-bad{background:#ffe9e9;color:#ad3945}:root[data-theme='light'] .status-warn{background:#fff0d8;color:#8c5a1d}:root[data-theme='light'] .status-muted{background:#e8eef2;color:#4e6171}:root[data-theme='light'] .route-symbol{background:#e0f0ec}:root[data-theme='light'] .bottom-nav{background:#f8fafaeF}:root[data-theme='light'] .tab.selected{background:#e0f2ec}:root[data-theme='light'] progress,:root[data-theme='light'] progress::-webkit-progress-bar{background:#e6ebef}
