:root{--bg:#0b1020;--panel:#131a2e;--border:#26304d;--text:#dbe2f4;--dim:#8b96b5;--accent:#4da3ff;--cq:#38d178;--on-accent:#04122b;--row-tint:rgba(255,255,255,0.02);--gold:#ffce47;--frame:#54679f;--clash:#ff6b6b;--land:#222e52;--land-line:#46538a;--gold-line:#d4a017;--cs-font:Consolas,"Cascadia Mono",Menlo,"DejaVu Sans Mono","Liberation Mono",monospace;--cs-scale:1;--call:var(--cq)}:root[data-theme=light]{--bg:#f6f7fa;--panel:#ffffff;--border:#dce2ec;--text:#16202f;--dim:#57667f;--accent:#2c6fd1;--cq:#17824a;--on-accent:#ffffff;--row-tint:rgba(20,32,50,0.03);--gold:#8a6300;--frame:#7d8ba3;--clash:#b3261e;--land:#dde3ec;--land-line:#afbacb;--gold-line:#6b4d00;--call:#0f6b3c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif}main{max-width:1080px;margin:0 auto;padding:1.5rem 1rem 3rem}h1{font-size:1.4rem;margin:0}h1 span{color:var(--accent)}.sub{color:var(--dim);font-size:.85rem;margin:.25rem 0 1.25rem}.tablewrap{overflow-x:auto;background:var(--panel);border:1px solid var(--border);border-radius:8px}table{border-collapse:collapse;width:100%;font-size:calc(.85rem * var(--cs-scale));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td,th{padding:.45rem .7rem;text-align:left;white-space:nowrap}thead th{color:var(--dim);font-weight:600;border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;background:var(--panel)}tbody tr:nth-child(2n){background:var(--row-tint)}.bmcall,.callform input,.peercall,.stn text,td.call{font-family:var(--cs-font)}td.call{color:var(--call-picked,var(--call));font-weight:600;font-size:calc(1rem * var(--cs-scale));letter-spacing:.02em}.empty,td.age,td.dim{color:var(--dim)}.empty{padding:2rem;text-align:center}.status{font-size:.75rem;color:var(--dim);margin-top:.6rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.callform{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.callform input,.callform select{background:var(--panel);border:1px solid var(--frame);border-radius:6px;color:var(--text);padding:.45rem .7rem;font-size:.95rem;text-transform:uppercase}.callform input::placeholder{color:var(--dim);opacity:1}.callform button{background:var(--accent);border:none;border-radius:6px;color:var(--on-accent);font-weight:700;padding:.45rem 1rem;cursor:pointer}.callform button:disabled{background:var(--border);color:var(--dim);cursor:default}.callform button.ghost{background:transparent;border:1px solid var(--border);color:var(--dim);font-weight:500}.callform button.ghost:hover{border-color:var(--accent);color:var(--text)}button.linkish{background:none;border:none;padding:0;font:inherit;color:var(--accent);cursor:pointer}button.linkish:hover{text-decoration:underline}.bucket{margin-bottom:1.1rem}.bucket h2{font-size:.95rem;margin:0 0 .4rem}.bucket .count{color:var(--dim);font-weight:400;font-size:.8rem}.bucket.b0 h2{color:var(--cq)}.empty.small{padding:.6rem .8rem;text-align:left;border:1px dashed var(--border);border-radius:8px;font-size:.8rem}.beta{font-size:.55em;vertical-align:middle;color:var(--dim);border:1px solid var(--border);border-radius:4px;padding:.1em .4em;text-transform:uppercase;letter-spacing:.06em}.status.warn{color:#ffb454}.pileup{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.2rem;gap:1.2rem;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.8rem;margin-bottom:.5rem;align-items:start}.side{min-width:0}.sidehead{font-size:calc(.75rem * var(--cs-scale));text-transform:uppercase;letter-spacing:.06em;color:var(--dim);padding-bottom:.3rem;margin-bottom:.3rem;border-bottom:1px solid var(--border)}.playhead{display:flex;align-items:baseline;justify-content:center;gap:.7rem;font-size:calc(.8rem * var(--cs-scale));color:var(--dim);margin-bottom:.35rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.playhead .clock{font-weight:700;color:var(--text)}.playhead .dir.out{color:var(--accent)}.playhead .dir.in{color:var(--cq)}.side.active .sidehead{color:var(--text)}.side.active .sidehead,.side.outbound.active .sidehead{border-bottom-color:var(--accent)}.side.inbound.active .sidehead{border-bottom-color:var(--cq)}.peer{display:grid;align-items:center;grid-gap:.4rem;gap:.4rem;padding:1px 0}.lane{opacity:var(--fade,.4);transition:opacity .14s}.peer.in,.peer.out{grid-template-columns:minmax(104px,auto) 1fr minmax(24px,auto)}.peer.live .lane{opacity:1}.lane{position:relative;height:19px;border-bottom:1px dashed var(--border);min-width:40px}.peercall{font-size:calc(.875rem * var(--cs-scale));font-weight:600;letter-spacing:.02em;color:var(--call-picked,var(--text));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.peercall .db{color:var(--cq);font-weight:400}.peercall .db,.peerstat{font-size:calc(.85rem * var(--cs-scale))}.peerstat{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.shot{position:absolute;top:50%;width:11px;height:11px;margin-top:-6px;border-radius:50%}.shot.right{animation:fly-right linear forwards}.shot.left{animation:fly-left linear forwards}@keyframes fly-right{0%{left:0;opacity:.3;transform:scale(.6)}60%{opacity:1;transform:scale(1)}to{left:96%;opacity:1;transform:scale(1)}}@keyframes fly-left{0%{left:96%;opacity:.3;transform:scale(.6)}60%{opacity:1;transform:scale(1)}to{left:0;opacity:1;transform:scale(1)}}.scrub{width:100%;margin:.2rem 0 .4rem}.progress{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress .bar{height:100%;background:var(--accent);transition:width .12s linear}@media (max-width:720px){.pileup{grid-template-columns:1fr;gap:.8rem}}.peer.in,.peer.out{grid-template-columns:minmax(88px,auto) 1fr minmax(28px,auto) minmax(42px,auto)}.peerage{font-size:calc(.8rem * var(--cs-scale));color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.nav{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;max-width:1080px;margin:0 auto;padding:.7rem 1rem 0}.brand{font-weight:700;font-size:1.05rem;color:var(--text);text-decoration:none;letter-spacing:-.01em}.brand span{color:var(--accent)}.tabs{display:flex;gap:.25rem;flex-wrap:wrap}.tab{color:var(--dim);text-decoration:none;font-size:.85rem;padding:.35rem .7rem;border-radius:6px;border:1px solid transparent;white-space:nowrap}.tab:hover{text-decoration:none}.tab.on,.tab:hover{color:var(--text);background:var(--panel)}.tab.on{border-color:var(--accent);font-weight:700}.tab.demo{margin-left:auto;font-size:.78rem;border-style:dashed;border-color:var(--border)}.tab.demo.on{border-style:solid;border-color:var(--accent)}main{padding-top:1rem}@media (max-width:620px){.nav{gap:.5rem}.tab.demo{margin-left:0}}.finchip{display:inline-block;margin-left:.4rem;padding:0 .35em;border:1px solid var(--gold-line);border-radius:4px;color:var(--gold);font-size:calc(.8rem * var(--cs-scale));font-weight:700;vertical-align:middle;white-space:nowrap}.slottag{margin-left:.4rem;color:var(--dim);font-weight:400}.bandchip,.slottag{font-size:calc(.75rem * var(--cs-scale))}.bandchip{display:inline-block;margin-right:.25rem;padding:0 .35em;border:1px solid var(--frame);border-radius:4px;white-space:nowrap}th button.sort{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}th button.sort.on{color:var(--text)}.callform label.check{display:flex;align-items:center;gap:.35rem;color:var(--dim);font-size:.9rem}.shot.fin{box-shadow:0 0 0 2px var(--gold),0 0 8px 2px rgba(255,206,71,.55)}.ladder{display:inline-flex;gap:2px;margin-left:.45rem;vertical-align:middle}.rung{width:7px;height:9px;border-radius:2px;background:var(--border)}.rung.seen{background:var(--accent)}.rung.seen.fin{background:var(--gold)}.rung.wit{background:transparent;border:1px solid var(--accent)}.rung.wit.finw{border-color:var(--gold);background:transparent}.finchip.wit{background:transparent;border-style:dashed;opacity:.85}.shot.wit{background:transparent!important;border:2px solid var(--cq)}.sidehead.wit{margin-top:.6rem;border-bottom-style:dashed}.peer.witnessed .peercall{color:var(--dim)}.mapwrap{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.mapwrap svg{display:block;width:100%;height:auto;touch-action:none}.mapwrap svg.zoomed{cursor:-webkit-grab;cursor:grab}.mapwrap svg.zoomed:active{cursor:-webkit-grabbing;cursor:grabbing}.mapzoom{position:absolute;top:.5rem;right:.5rem;display:flex;flex-direction:column;gap:.25rem;z-index:1}.mapzoom button{width:1.7rem;height:1.7rem;background:var(--panel);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:1rem;line-height:1;cursor:pointer}.mapzoom button:hover{border-color:var(--accent)}.mapzoom button:disabled{color:var(--dim);cursor:default}.mapwrap .ocean{fill:var(--bg)}.mapwrap .land{fill:var(--land);stroke:var(--land-line);stroke-width:.7}.arc,.mapwrap .land{vector-effect:non-scaling-stroke}.arc{fill:none;stroke-width:1.1;stroke-linecap:round;stroke-dasharray:7 9;animation:arcflow 1.6s linear infinite}@keyframes arcflow{to{stroke-dashoffset:-16}}.arc.terr{stroke:var(--accent)}.arc.eme{stroke:var(--gold)}.arc.fresh{stroke-width:2;filter:drop-shadow(0 0 2.5px currentColor)}.arc.fresh.terr{color:var(--accent)}.arc.fresh.eme{color:var(--gold)}.stn circle{stroke:var(--bg);stroke-width:.8}.stn.tx circle{fill:var(--cq)}.stn.rx circle{fill:var(--accent)}.stn text{fill:var(--dim);paint-order:stroke;stroke:var(--bg)}.stn.tx text{fill:var(--call-picked,var(--text))}.mapempty{fill:var(--dim);font-size:16px;text-anchor:middle}.stn.mon circle{fill:none;stroke:var(--cq);stroke-width:1.2}.stn.mon .pulse{animation:monpulse 2.4s ease-out infinite;transform-box:fill-box;transform-origin:center}@keyframes monpulse{0%{transform:scale(.6);opacity:.9}70%{transform:scale(1.9);opacity:0}to{transform:scale(1.9);opacity:0}}.stn.mon text{fill:var(--cq)}.moonshade{fill:#000;opacity:.32;pointer-events:none}.moonline{fill:none;stroke:#ffe9a8;stroke-width:.9;stroke-dasharray:3 5;vector-effect:non-scaling-stroke;opacity:.55;pointer-events:none}.moonglyph{fill:#ffe9a8;stroke:var(--gold-line);stroke-width:1;filter:drop-shadow(0 0 4px rgba(255,233,168,.8))}.tab.toggle{background:transparent;border:1px dashed var(--border);color:var(--dim);font:inherit;font-size:.78rem;cursor:pointer}.tab.toggle.on{border-style:solid;border-color:var(--gold);color:var(--gold);font-weight:700}.display{position:relative}.display>summary{list-style:none;display:inline-block}.display>summary::-webkit-details-marker{display:none}.display[open]>summary{color:var(--text);background:var(--panel)}.menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:15rem;padding:.7rem .8rem;background:var(--panel);border:1px solid var(--frame);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.25);display:grid;grid-gap:.6rem;gap:.6rem;font-size:.8rem}.menurow{display:grid;grid-template-columns:5.5rem 1fr;align-items:center;grid-gap:.5rem;gap:.5rem}.menu{min-width:23rem}.menurow>span{color:var(--dim)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.seg button{background:transparent;border:none;color:var(--dim);font:inherit;padding:.3rem .65rem;cursor:pointer}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--accent);color:var(--on-accent);font-weight:700}.menunote{margin:0;color:var(--dim);font-size:.72rem;line-height:1.4}.menurow>.menusample{font-family:var(--cs-font);font-weight:600;letter-spacing:.02em;color:var(--call-picked,var(--call));font-size:calc(1rem * var(--cs-scale))}.sizectl{display:flex;align-items:center;gap:.35rem}.sizectl input[type=range]{flex:1 1 auto;min-width:6rem;accent-color:var(--accent);margin:0}.sizectl button{width:1.5rem;height:1.5rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text);font:inherit;line-height:1;cursor:pointer}.sizectl button:disabled{opacity:.35;cursor:default}.sizectl .pct{min-width:2.8rem;text-align:right;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.colorctl{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.swatches{display:inline-flex;gap:.35rem}.swatch{width:1.4rem;height:1.4rem;border-radius:50%;border:2px solid var(--border);padding:0;cursor:pointer}.swatch.on{border-color:var(--text);box-shadow:0 0 0 2px var(--panel),0 0 0 3px var(--accent)}.colorctl input[type=color]{width:1.7rem;height:1.5rem;padding:0;border:1px solid var(--border);border-radius:4px;background:transparent;cursor:pointer}.ratio{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.72rem}.ratio.ok{color:var(--cq)}.ratio.weak{color:var(--gold)}.ratio.low{color:var(--clash);font-weight:700}.menufoot{display:flex;align-items:flex-start;gap:.6rem}.menufoot .menunote{flex:1 1 auto}.reset{background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--dim);font:inherit;font-size:.72rem;padding:.2rem .5rem;cursor:pointer;white-space:nowrap}.reset:hover{color:var(--text);border-color:var(--frame)}.atlas{width:100%;height:auto;background:var(--bg);border:1px solid var(--border);border-radius:6px}.atlas .land{fill:var(--land);stroke:var(--land-line);stroke-width:.7}.atlas circle.stale{fill:var(--dim);fill-opacity:.45}.atlas circle.live{fill:var(--cq);stroke:var(--bg);stroke-width:1}.bandmap{margin:1rem 0 2rem}.bmscale{position:relative;height:1.1rem;margin-left:3.4rem;font-size:.68rem;color:var(--dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bmtick{position:absolute;transform:translateX(-50%);white-space:nowrap}.bmrow{display:flex;align-items:stretch;gap:.4rem;margin-bottom:3px}.bmtime{width:3rem;flex:0 0 3rem;font-size:.7rem;color:var(--text);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.2}.bmutc{display:block;font-size:calc(.72rem * var(--cs-scale));color:var(--dim)}.bmstrip{position:relative;flex:1 1 auto;height:34px;background:var(--panel);border:1px solid var(--frame);border-radius:4px;overflow:hidden}.bmgrid{top:0;bottom:0;width:1px;background:var(--border);opacity:.55}.bmgrid,.bmsig{position:absolute}.bmsig{top:3px;bottom:3px;min-width:3px;border-radius:3px;background:color-mix(in srgb,var(--accent) 38%,transparent);border:1px solid var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;overflow:visible}.bmsig.clash{background:color-mix(in srgb,var(--clash) 42%,transparent);border-color:var(--clash)}.bmcall{font-size:calc(.72rem * var(--cs-scale));line-height:1;color:var(--call-picked,var(--text));white-space:nowrap;pointer-events:none;text-shadow:0 0 3px var(--panel),0 0 3px var(--panel)}.demoband{margin:.6rem 0 1rem}.demoband .bandmap{margin:.4rem 0 0}.demoband .bmscale{margin-left:3.4rem}.legend{margin:.4rem 0 1rem}.legendtoggle{background:none;border:none;padding:0;color:var(--accent);font:inherit;font-size:.8rem;cursor:pointer}.legendtoggle:hover{text-decoration:underline}.legendbody{display:grid;grid-gap:1rem 1.6rem;gap:1rem 1.6rem;grid-template-columns:1fr;margin-top:.6rem;padding:.9rem 1rem;background:var(--panel);border:1px solid var(--frame);border-radius:6px}@media (min-width:56rem){.legendbody{grid-template-columns:repeat(3,1fr)}}.lgroup h4{margin:0 0 .4rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-weight:600}.lgroup ul{margin:0;padding:0;list-style:none}.lgroup li{display:flex;align-items:baseline;gap:.5rem;margin:.35rem 0;font-size:.78rem;line-height:1.45}.lnote{margin:0 0 .5rem}.lfoot,.lnote{font-size:.74rem;color:var(--dim)}.lfoot{grid-column:1/-1;margin:0}.lswatch{position:relative;flex:0 0 auto;width:34px;height:14px;display:inline-block}.lswatch .shot{position:absolute;left:10px;top:1px;margin-top:0}.lswatch .rung{display:inline-block;margin-top:3px;margin-left:13px}.lswatch .finchip,.lswatch .slottag{margin-left:0}.lswatch.lband{width:46px}.lswatch.lband .bmempty,.lswatch.lband .bmsig{position:absolute;left:0;top:0;width:42px;height:14px;border-radius:3px}.lswatch.lband .bmempty{background:var(--panel);border:1px solid var(--frame)}.lgroup li .ltext{flex:1 1 auto}.bmdb{font-size:.58rem;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;text-shadow:0 0 3px var(--panel),0 0 3px var(--panel)}.bmdb,.bmdial{color:var(--text)}.bmdial{margin-left:3.4rem;font-size:1.05rem;font-weight:600;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.bmdialunit{font-size:.72rem;font-weight:400;color:var(--dim);margin-left:.15rem}