:root{color-scheme:dark;--bg:#0b0e18;--panel:#131827;--line:#293047;--muted:#a0abc1;--text:#edf0f8;--purple:#b6a0ff;--green:#6ae1b5;--red:#fa8794;--amber:#efca7c;--body-size:clamp(12px,.85vw,16px);--world-size:clamp(12px,.83vw,16px);--small-size:clamp(10px,.7vw,13px);--page-width:1800px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:var(--body-size)/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:var(--purple);text-decoration:none}a:hover{text-decoration:underline}
button{font:inherit;cursor:pointer;border:1px solid var(--line);background:#1b2132;color:var(--text);border-radius:6px;padding:5px 10px}button:hover{border-color:var(--purple)}button:disabled{opacity:.6;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.site-header{height:clamp(48px,4vw,66px);padding:0 max(18px,calc((100% - var(--page-width))/2 + 18px));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;color:white;font-size:clamp(13px,.9vw,17px);letter-spacing:1.4px;font-weight:700}.brand img{display:block;object-fit:contain;flex-shrink:0;width:clamp(34px,2.4vw,46px);height:auto}
.site-header nav{display:flex;align-items:center;gap:20px;font-size:var(--small-size)}.site-header nav a{color:var(--muted)}.site-header nav button{background:transparent;border:0;padding:5px;color:var(--muted)}
main{max-width:var(--page-width);padding:14px 18px 12px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
h1{font-size:clamp(24px,1.7vw,34px);line-height:1.2;letter-spacing:-.7px;font-weight:650;margin:0}h2{font-size:clamp(15px,1vw,20px);letter-spacing:-.2px;font-weight:600;margin:0}
.refresh{display:flex;align-items:center;gap:12px}.refresh span{color:var(--muted);font-size:var(--small-size)}.refresh button{font-size:var(--small-size)}
.status-summary{display:grid;grid-template-columns:1.1fr 2fr;gap:10px;margin-bottom:10px}.overview{display:flex;align-items:center;gap:10px;min-height:56px;padding:9px 13px;background:#191d30;border:1px solid #39364e;border-radius:8px}.overview p{font-size:var(--small-size);color:var(--muted);margin:1px 0 0}
.status-orb{width:32px;height:32px;flex-shrink:0;border:1px solid #77839d77;border-radius:50%;display:grid;place-items:center;color:var(--muted);font-size:18px}.status-orb.online{color:var(--green);border-color:#6ae1b566;background:#6ae1b508}.status-orb.maintenance{color:var(--amber);border-color:#efca7c66}
.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.service{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 11px;display:flex;align-items:center;justify-content:space-between;gap:7px}.service>span:first-child{font-size:var(--small-size);color:var(--muted)}.service strong{font-size:var(--body-size);font-weight:600;white-space:nowrap}.warning{padding:7px 12px;margin:0 0 8px;border:1px solid #efca7c55;border-radius:6px;color:var(--amber);font-size:var(--small-size)}
.badge{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:var(--small-size);color:var(--muted);line-height:1.3}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.online,.reachable{color:var(--green)}.offline,.unreachable{color:var(--red)}.maintenance{color:var(--amber)}.restricted{color:var(--purple)}.unknown,.stale{color:var(--muted)}
.dashboard{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.panel-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line)}.panel-toolbar h2{font-size:var(--body-size)}
.world-legend{display:flex;align-items:center;gap:14px;font-size:var(--small-size);flex-wrap:wrap}.world-legend span{white-space:nowrap}
.regions-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,4fr) minmax(0,1fr);gap:14px;padding:9px 12px 11px}.world-region,.ping-region{min-width:0}
.region-heading{display:flex;align-items:baseline;gap:8px;margin:0 0 6px;padding:0 0 5px;border-bottom:1px solid #6d57855c;font-weight:500}.region-code{font-weight:750;color:var(--purple);font-size:var(--body-size);letter-spacing:.6px}.region-name{color:var(--muted);font-size:var(--small-size);white-space:nowrap}.region-centers{display:grid;grid-template-columns:repeat(var(--center-count),minmax(0,1fr));gap:10px}.dc-card,.ping-card{min-width:0}.dc-heading{font-size:var(--body-size);font-weight:650;margin:0 0 4px;padding-bottom:4px;border-bottom:1px solid var(--line);line-height:1.4;overflow-wrap:anywhere}
.dc-worlds{list-style:none;padding:0;margin:0}.world-row{position:relative;display:flex;align-items:center;min-width:0;font-size:var(--world-size);line-height:1.5;padding:0}.world-name{min-width:0;overflow-wrap:anywhere}
.world-name[data-state="online"]{color:var(--green)}.world-name[data-state="offline"]{color:var(--red)}.world-name[data-state="maintenance"]{color:var(--amber)}.world-name[data-state="restricted"]{color:var(--purple)}.world-name[data-state="unknown"],.world-name[data-state="stale"]{color:var(--muted)}
.empty{grid-column:1/-1;margin:0;text-align:center;color:var(--muted);padding:20px 6px;font-size:var(--small-size)}.dc-card .empty{padding:12px 2px}
#history-panel{margin-top:11px}.history-controls{display:flex;align-items:center;gap:12px}.history-controls>span{color:var(--muted);font-size:var(--small-size)}.range-buttons{display:flex;gap:5px}.range-buttons button{padding:3px 10px;font-size:var(--small-size)}.range-buttons button[aria-pressed=true]{color:#dfd2ff;background:#a38ae820;border-color:#8b6dc65e}
.ping-region .region-heading{display:none}.ping-status{font-size:var(--small-size);margin:0 0 6px}.ping-metrics{display:grid;grid-template-columns:auto auto;gap:2px 5px;margin:0;font-size:var(--small-size);line-height:1.5}.ping-metrics dt{color:var(--muted)}.ping-metrics dd{margin:0;text-align:right;white-space:nowrap;color:var(--text);font-variant-numeric:tabular-nums}
.chart{height:clamp(100px,14vh,190px);margin-top:8px}.chart svg{display:block;width:100%;height:100%}.chart text{fill:var(--muted);font:10px system-ui}.chart .empty{padding:26px 0;font-size:var(--small-size)}.chart-summary{font-size:var(--small-size);line-height:1.4;color:var(--muted);margin:6px 0 0;min-height:28px}.chart-summary span,.chart-summary time{display:block}.chart-summary time{font-size:clamp(9px,.63vw,12px);white-space:nowrap}.ping-note{font-size:var(--small-size);color:var(--muted);margin:0;padding:0 12px 9px}
.page-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:9px}.snapshot-meta{display:flex;gap:16px;font-size:var(--small-size);color:var(--muted)}.snapshot-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}footer{display:flex;align-items:center;gap:16px;color:#8d99b1;font-size:var(--small-size)}footer a{color:var(--muted)}
dialog{width:min(500px,calc(100% - 32px));max-height:85dvh;background:var(--panel);color:var(--text);border:1px solid #4b4169;border-radius:12px;padding:26px;box-shadow:0 20px 70px #0008}dialog::backdrop{background:#050710c9}dialog form{float:right;margin:-10px -10px 0 12px}dialog form button{font-size:22px;padding:0 9px;background:transparent;border:0}dialog p{color:var(--muted);font-size:13px}dialog small{display:block;color:var(--muted);font-size:11px}
@media(min-width:1200px) and (max-height:800px){.site-header{height:48px}main{padding-top:8px;padding-bottom:6px}.page-heading{margin-bottom:5px}.status-summary{margin-bottom:7px}.overview{min-height:51px;padding-top:7px;padding-bottom:7px}.panel-toolbar{padding-top:4px;padding-bottom:4px}.regions-grid{padding-top:7px;padding-bottom:6px;gap:10px}.region-centers{gap:7px}.region-heading{margin-bottom:5px;padding-bottom:4px}.dc-heading{padding-bottom:2px}.chart{height:72px;margin-top:5px}.ping-status{margin-bottom:4px}.ping-metrics{gap:1px 4px}.chart-summary{margin-top:4px;min-height:26px}.ping-note{padding-bottom:7px}#history-panel{margin-top:6px}.page-footer{margin-top:5px}.warning{padding:3px 9px;margin-bottom:5px}}
@media(max-width:1199px){.regions-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px}.status-summary{grid-template-columns:1fr 1.3fr}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-region,.ping-region{padding:5px}.ping-region .region-heading{display:flex}.world-row{font-size:13px;line-height:1.55}}
@media(max-width:850px){.regions-grid{grid-template-columns:1fr 1fr}.region-centers{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.panel-toolbar{flex-wrap:wrap}.region-heading{margin-bottom:8px}.ping-metrics{font-size:12px}}
@media(max-width:650px){.site-header{height:52px;padding:0 12px}.brand{font-size:12px;gap:8px;letter-spacing:1px}.brand img{width:32px}.site-header nav{gap:10px;font-size:11px}main{padding:12px 12px 14px}h1{font-size:24px}.refresh{gap:7px}.refresh span{font-size:9px}.refresh button{font-size:11px;padding:5px 8px}.status-summary{display:block}.overview{padding:10px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.service{padding:7px 10px}.service>span:first-child{font-size:11px}.panel-toolbar{padding:8px 10px;gap:8px}.world-legend{font-size:10px;gap:4px 11px}.regions-grid{grid-template-columns:1fr;gap:14px;padding:9px}.world-region,.ping-region{padding:3px}.region-centers{gap:10px 14px}.region-code,.dc-heading{font-size:14px}.region-name{font-size:11px}.world-row{font-size:14px;line-height:1.5}.ping-metrics{font-size:12px}.ping-status{font-size:11px}.chart{height:110px}.chart-summary{font-size:11px}.chart-summary time{font-size:10px}.history-controls{gap:9px}.history-controls>span{font-size:10px}.range-buttons button{padding:3px 8px}.ping-note{font-size:10px}.page-footer{display:block}.page-footer footer{margin-top:8px;justify-content:space-between}.snapshot-meta,footer{font-size:10px}.snapshot-meta{justify-content:space-between}.snapshot-meta span{max-width:55%}}
@media(max-width:390px){.refresh span{font-size:8px}.history-controls{gap:6px}.range-buttons button{padding:3px 7px}.site-header nav{font-size:10px}}
