:root{--n0:#0c1a2b;--n1:#112337;--n2:#162940;--n3:#1a3550;--ac:#527EFF;--cy:#00d4ff;--mu:#9fb0c8;--bd:rgba(82,126,255,.22);--yes:#3ddc97;--no:#ff6b7a;--tu:#ffc857;--op:#b9a3ff;--fg:#eaf1fb}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#081320;overflow:hidden;height:100%}
body{font-family:'Source Sans Pro',system-ui,sans-serif;color:var(--fg)}
#stage{width:1920px;height:1080px;position:fixed;left:0;top:0;transform-origin:0 0;padding:16px 26px 10px;display:flex;flex-direction:column;gap:10px;
 background:radial-gradient(1200px 600px at 85% -10%,rgba(82,126,255,.18),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(0,212,255,.10),transparent 60%),linear-gradient(160deg,#0c1a2b,#0e1f33,#112337)}
.mono,.num{font-family:'Source Code Pro',monospace}.mu{color:var(--mu)}
.kick{color:var(--cy);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:15px;margin-right:10px}
header{display:flex;align-items:center;gap:20px;height:78px}header .logo{height:46px}
header h1{font-size:28px;font-weight:700;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}header .sub{font-size:18px}header .ttl{flex:0 0 640px;min-width:0}
header .clock{text-align:right;white-space:nowrap;flex:none;font-family:'Source Code Pro',monospace;font-size:24px;margin-left:auto}header .clock .mu{font-size:13px}
nav{display:flex;flex-wrap:nowrap;gap:5px;min-width:0;overflow:hidden}
nav a{color:var(--fg);text-decoration:none;font-size:14px;font-weight:600;padding:5px 8px;white-space:nowrap;border:1px solid var(--bd);border-radius:999px;background:rgba(17,35,55,.6)}
nav a.on{background:var(--ac);border-color:var(--ac)}nav a:hover{border-color:var(--cy)}
main{display:flex;gap:14px;flex:1;min-height:0}
.panel{background:rgba(17,35,55,.72);border:1px solid var(--bd);border-radius:14px;padding:12px 16px}
#mapcol{flex:0 0 800px;position:relative;display:flex;align-items:center;justify-content:center}
#mapcol svg{position:absolute;left:0;top:0;width:100%;height:100%}#swbox,#empty{z-index:2}
#mapcol path{stroke:#081320;stroke-width:.9;vector-effect:non-scaling-stroke;transition:fill .4s}
#mapcol path:hover{stroke:#fff;stroke-width:2.2}
#empty{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:560px;text-align:center;background:rgba(8,19,32,.88);border:1px dashed var(--tu);border-radius:14px;padding:18px 22px;display:none}
#empty b{display:block;font-size:30px;color:var(--tu);margin-bottom:6px}#empty div{font-size:18px;color:var(--mu)}
#swbox{position:absolute;left:8px;bottom:40px;font-size:16px;max-width:330px}
#swbox .big{font-size:40px;font-weight:700;font-family:'Source Code Pro',monospace}
#lcol{flex:0 0 470px;display:flex;flex-direction:column;gap:10px;min-height:0}
#pcol{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}
h3{font-size:14px;text-transform:uppercase;letter-spacing:.12em;color:var(--cy);margin-bottom:6px}
.grp{margin-bottom:6px}.grp .gl{font-size:13px;color:var(--mu);text-transform:uppercase;letter-spacing:.1em;margin:6px 0 3px}
.lb{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;color:var(--fg);border:1px solid transparent;border-radius:8px;padding:4px 8px;font:inherit;font-size:17px;cursor:pointer}
.lb:hover{border-color:var(--bd)}.lb.on{background:rgba(82,126,255,.25);border-color:var(--ac)}.lb.emp{color:var(--mu)}
.lb .nm{flex:1}
.flag{font-family:'Source Code Pro',monospace;font-size:11px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:5px;white-space:nowrap}
.f-ACTUAL{background:rgba(61,220,151,.18);color:var(--yes);border:1px solid rgba(61,220,151,.5)}
.f-MODELED{background:rgba(185,163,255,.18);color:var(--op);border:1px solid rgba(185,163,255,.5)}
.f-UNVERIFIED{background:rgba(255,200,87,.16);color:var(--tu);border:1px solid rgba(255,200,87,.5)}
.f-EMPTY{background:rgba(159,176,200,.12);color:var(--mu);border:1px solid rgba(159,176,200,.4)}
#ldet .lname{font-size:21px;font-weight:700;margin:2px 0 6px}#ldet .row{font-size:15px;margin:3px 0;line-height:1.3}#ldet .row b{color:var(--mu);font-weight:600}
#ldet a{color:var(--cy);text-decoration:none;word-break:break-all}
#legend{display:flex;align-items:center;gap:10px;font-size:15px;margin-top:8px}#legend .bar{flex:1;height:14px;border-radius:7px}
.pi{font-size:16px;margin:5px 0;line-height:1.3}.pi .who{color:var(--mu);font-size:14px}.pi .res{font-weight:600}
.why{font-size:17px;line-height:1.35}
.note{font-size:15px;color:var(--tu);border-left:3px solid var(--tu);padding-left:10px;line-height:1.3}
footer{display:flex;justify-content:space-between;font-size:14px;color:var(--mu);height:20px}
#tip{position:fixed;pointer-events:none;background:rgba(8,19,32,.96);border:1px solid var(--ac);border-radius:10px;padding:10px 14px;font-size:15px;color:var(--fg);display:none;min-width:260px;z-index:9}
#tip b{font-size:18px}#tip .r{display:flex;justify-content:space-between;gap:14px}#tip .r span:first-child{color:var(--mu)}
.grid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px}.grid.g8,.grid.g7{grid-template-columns:repeat(10,1fr)}
.sech{font-size:14px;text-transform:uppercase;letter-spacing:.12em;color:var(--cy);font-weight:700;margin-top:2px}
.card{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--fg);padding:8px 10px}
.card:hover{border-color:var(--cy)}.card svg{height:168px;width:100%}.card svg path{stroke:#081320;stroke-width:.6;vector-effect:non-scaling-stroke}
.card{padding:5px 6px;border-radius:10px}.card .t{font-size:17px;font-weight:700;white-space:nowrap}.card .s{font-size:12px;color:var(--mu);text-align:center;height:30px;overflow:hidden;line-height:1.2}.card .v{font-size:12px;margin-top:2px;text-align:center;line-height:1.25}.card .v b{font-size:14px}
.nm2{font-size:12px;color:var(--mu);line-height:1.3;max-height:62px;overflow:hidden}
nav a.grpl{color:var(--cy);border-style:dashed}
#mapcol path.ctx,.card svg path.ctx{fill:#121f2e;stroke:#0a1522;pointer-events:none}
#mapcol path.ol,.card svg path.ol{fill:none;stroke:#eaf1fb;stroke-width:2.4;pointer-events:none;stroke-dasharray:6 3}
.card svg path.ol{stroke-width:1.2}
.pi.gap{font-size:13px;color:var(--tu);line-height:1.25;margin:3px 0}
#polls{overflow-y:auto!important}
.pi a{color:var(--cy);text-decoration:none;word-break:break-all}
.f-RATING{background:rgba(0,212,255,.14);color:var(--cy);border:1px solid rgba(0,212,255,.5)}
.f-MARKET{background:rgba(82,126,255,.18);color:#9db6ff;border:1px solid rgba(82,126,255,.6)}
.f-LIVE{background:rgba(61,220,151,.18);color:var(--yes);border:1px solid rgba(61,220,151,.5)}
.f-MANUAL,.f-PENDING{background:rgba(159,176,200,.12);color:var(--mu);border:1px solid rgba(159,176,200,.4)}
.f-BLOCKED{background:rgba(255,107,122,.14);color:var(--no);border:1px solid rgba(255,107,122,.5)}
/* tooltips (tips.js): hover on desktop, tap on touch */
.ii{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--mu);color:var(--mu);font-size:12px;font-weight:700;font-style:normal;cursor:help;margin-left:5px;flex:0 0 auto;line-height:1;user-select:none;vertical-align:middle;font-family:'Source Sans Pro',system-ui,sans-serif}
.ii:hover,.ii.on{border-color:var(--cy);color:var(--cy)}
/* 16:9 tooltip boxes: hover preview (.prev) and pinned draggable panels (.pin) */
.itip{position:fixed;z-index:30;display:flex;flex-direction:column;width:min(max(480px,25vw),calc(100vw - 16px));aspect-ratio:16/9;font-size:max(15px,.78vw);line-height:1.38;color:var(--fg);background:rgba(8,19,32,.98);border:1px solid var(--cy);border-radius:.67em;box-shadow:0 .55em 2em rgba(0,0,0,.55);overflow:hidden;font-family:'Source Sans Pro',system-ui,sans-serif}
@supports not (aspect-ratio:16/9){.itip{height:calc(min(max(480px,25vw),calc(100vw - 16px)) * .5625)}}
.itip.prev{pointer-events:none;z-index:35;opacity:.97}
.itip.pin{border-color:var(--ac)}.itip.pin.top{border-color:var(--cy);box-shadow:0 .7em 2.6em rgba(0,0,0,.65),0 0 0 1px rgba(0,212,255,.25)}
.itip .itb{flex:0 0 auto;display:flex;align-items:center;gap:.5em;padding:.38em .5em .38em .7em;background:linear-gradient(90deg,rgba(82,126,255,.30),rgba(0,212,255,.08));border-bottom:1px solid var(--bd);user-select:none;-webkit-user-select:none;touch-action:none}
.itip.pin .itb{cursor:grab}.itip.drag .itb{cursor:grabbing}.itip.drag{opacity:.94}
.itip .itg{color:var(--mu);font-size:.8em;letter-spacing:-.12em;flex:0 0 auto}
.itip .itt{flex:1 1 auto;min-width:0;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.itip .flag{font-size:.72em;flex:0 0 auto}
.itip .ith{flex:0 0 auto;color:var(--mu);font-size:.75em;white-space:nowrap}
.itip .itx{flex:0 0 auto;width:1.9em;height:1.9em;border:0;border-radius:50%;background:rgba(82,126,255,.35);color:#fff;font:700 1.15em/1 'Source Sans Pro',system-ui,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center}
.itip .itx:hover{background:var(--ac)}
.itip .itc{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:.55em .95em .7em}
.itip .itc::-webkit-scrollbar{width:.45em}.itip .itc::-webkit-scrollbar-thumb{background:rgba(82,126,255,.45);border-radius:1em}
.itip .k{display:block;color:var(--cy);font-size:.8em;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-top:.35em}
.itip .k:first-child{margin-top:0}
.usban{display:flex;align-items:center;gap:22px;padding:12px 18px;text-decoration:none;color:var(--fg);border-color:var(--ac);background:linear-gradient(90deg,rgba(82,126,255,.22),rgba(0,212,255,.06))}
.usban b{font-size:22px;color:#fff;white-space:nowrap}.usban span{color:var(--mu);font-size:16px}
.usban:hover{border-color:var(--cy)}

nav a.bk{background:rgba(0,212,255,.14);border-color:var(--cy);color:#fff}
