:root{
  --slate-900:#101B24;--slate-800:#16242F;--slate-700:#1E313E;--slate-600:#2A4453;--slate-500:#3D5D6F;
  --haze:#8AA4B2;--paper:#E8EEF1;--mersey:#14313F;
  --confirmed:#3FB6C4;--corroborated:#E0A032;--unconfirmed:#7C8FA0;--retracted:#B4574F;--resolved:#5A7482;--pass:#4FA88A;
  --rail:1px solid rgba(138,164,178,.18);--rail-strong:1px solid rgba(138,164,178,.34);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{background:var(--slate-900);color:var(--paper);font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:14.5px;line-height:1.45;-webkit-font-smoothing:antialiased}
.mono{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
a{color:var(--confirmed)}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
:focus-visible{outline:2px solid var(--confirmed);outline-offset:2px;border-radius:2px}

.bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:11px 20px;border-bottom:var(--rail-strong);background:var(--slate-800)}
.pulse{width:9px;height:9px;border-radius:50%;background:var(--confirmed);flex:none;animation:beat 2.6s ease-out infinite}
@keyframes beat{0%{box-shadow:0 0 0 0 rgba(63,182,196,.45)}70%{box-shadow:0 0 0 9px rgba(63,182,196,0)}100%{box-shadow:0 0 0 0 rgba(63,182,196,0)}}
@media (prefers-reduced-motion:reduce){.pulse{animation:none}}
.wm{display:flex;align-items:baseline;gap:9px;text-decoration:none;color:inherit}
.wm h1{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}
.wm span{color:var(--haze);font-size:13px}
.stats{margin-left:auto;display:flex;gap:16px;font-size:12.5px;color:var(--haze);flex-wrap:wrap;align-items:center}
.stats b{color:var(--paper);font-weight:500}
.stats .warn b{color:var(--corroborated)}
.navlink{color:var(--haze);text-decoration:none;font-size:12.5px;padding-left:16px;border-left:var(--rail)}
.navlink:hover{color:var(--paper)}

.shell{display:grid;grid-template-columns:420px minmax(0,1fr) 290px;height:calc(100vh - 49px)}
@media (max-width:1200px){.shell{grid-template-columns:1fr;height:auto}.stage{height:55vh}.side,.log{border:none!important;border-top:var(--rail-strong)!important}}

.side{border-left:var(--rail-strong);background:var(--slate-800);overflow-y:auto;padding:15px}
.side h2{margin:0 0 11px;font-size:13.5px;font-weight:600}
.side h2:not(:first-child){margin-top:20px}
.feed{border:var(--rail);padding:10px 11px;margin-bottom:8px}
.feed.live{border-color:rgba(63,182,196,.4)}
.feed.block{border-color:rgba(180,87,79,.4)}
.ftop{display:flex;align-items:center;gap:7px;margin-bottom:4px}
.led{width:7px;height:7px;border-radius:50%;flex:none;background:var(--slate-500)}
.led.live{background:var(--pass)}.led.slow{background:var(--corroborated)}.led.block{background:var(--retracted)}
.feed h3{margin:0;font-size:12.5px;font-weight:500}
.hz{margin-left:auto;font-size:10.5px;color:var(--slate-500)}
.frow{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--haze);padding:1.5px 0}
.frow span:last-child{color:var(--paper);text-align:right}
.fnote{margin:5px 0 0;font-size:11px;color:var(--haze);line-height:1.45}
.line-row{display:flex;justify-content:space-between;font-size:11.5px;padding:2px 0;color:var(--haze)}
.line-row b{font-weight:500;color:var(--pass)}.line-row b.bad{color:var(--corroborated)}

.stage{position:relative;background:var(--mersey);min-height:320px}
#map{position:absolute;inset:0}
.legend{position:absolute;left:12px;bottom:28px;background:rgba(16,27,36,.92);border:var(--rail);padding:9px 11px;display:flex;flex-direction:column;gap:5px;z-index:2}
.legend div{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--haze)}
.legend i{width:9px;height:9px;border-radius:50%;display:block}
.maplibregl-popup-content{background:var(--slate-800);color:var(--paper);border:var(--rail-strong);border-radius:2px;font-size:12.5px;padding:8px 10px}
.maplibregl-popup-tip{border-top-color:var(--slate-800)!important;border-bottom-color:var(--slate-800)!important}
.maplibregl-ctrl-attrib{background:rgba(16,27,36,.8)!important;color:var(--haze)}
.maplibregl-ctrl-attrib a{color:var(--haze)}

.log{border-right:var(--rail-strong);display:flex;flex-direction:column;background:var(--slate-800);min-height:0}
.lhead{padding:13px 18px 0}
.lhead h2{margin:0 0 2px;font-size:14px;font-weight:600}
.lhead p{margin:0 0 10px;font-size:12px;color:var(--haze)}
.cats{display:flex;gap:6px;padding:0 18px 10px}
.cat{padding:4px 11px;font-size:12px;color:var(--haze);border:var(--rail);border-radius:999px}
.cat.on{color:var(--paper);border-color:rgba(63,182,196,.55);background:rgba(63,182,196,.1)}
.cat .n{font-size:10.5px;color:var(--slate-500);margin-left:5px}
.tabs{display:flex;gap:2px;padding:0 14px;border-bottom:var(--rail)}
.tab{padding:7px 11px;font-size:12.5px;color:var(--haze);border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none}
.tab.on{color:var(--paper);border-bottom-color:var(--confirmed)}
.tab .n{font-size:10.5px;color:var(--slate-500);margin-left:5px}
.lbody{overflow-y:auto;flex:1;min-height:0}
.empty{padding:28px 18px;color:var(--haze);font-size:13px}

.entry{display:grid;grid-template-columns:14px 1fr;gap:12px;padding:14px 18px;border-bottom:var(--rail);cursor:pointer;width:100%;text-align:left}
.entry:hover{background:rgba(138,164,178,.05)}
.entry.sel{background:rgba(63,182,196,.07)}
.railcol{position:relative;padding-top:4px}
.railcol::before{content:"";position:absolute;left:6px;top:16px;bottom:-18px;width:1px;background:rgba(138,164,178,.2)}
.entry:last-child .railcol::before{display:none}
.dot{width:13px;height:13px;border-radius:50%;display:block}
.dot.confirmed{background:var(--confirmed)}.dot.corroborated{background:var(--corroborated)}
.dot.unconfirmed{border:1.5px dashed var(--unconfirmed)}.dot.resolved{border:1.5px solid var(--resolved)}.dot.retracted{background:var(--retracted)}
.meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}
.time{font-size:11.5px;color:var(--haze)}
.state{font-size:10.5px;padding:1.5px 7px;border-radius:2px}
.state.confirmed{background:rgba(63,182,196,.16);color:var(--confirmed)}
.state.corroborated{background:rgba(224,160,50,.16);color:var(--corroborated)}
.state.unconfirmed,.state.pending,.state.held{background:rgba(124,143,160,.16);color:#A7B8C4}
.state.resolved{background:rgba(90,116,130,.16);color:#93A9B4}
.state.retracted{background:rgba(180,87,79,.16);color:#D98880}
.entry h3{margin:0 0 4px;font-size:14px;font-weight:500;line-height:1.32}
.entry.retracted h3{text-decoration:line-through;text-decoration-color:rgba(180,87,79,.7);color:var(--haze)}
.where{margin:0 0 7px;font-size:12px;color:var(--haze)}
.sources{display:flex;gap:5px;flex-wrap:wrap}
.src{font-size:10.5px;padding:1.5px 6px;border:var(--rail);color:var(--haze);border-radius:2px}
.src.official{border-color:rgba(63,182,196,.4);color:var(--confirmed)}
.detail{margin-top:11px;padding-top:11px;border-top:var(--rail);display:none}
.entry.sel .detail{display:block}
.detail p{margin:0 0 9px;font-size:12.5px;color:#C3D2DA;line-height:1.5}
.chain{list-style:none;margin:0 0 8px;padding:0}
.chain li{display:flex;gap:9px;font-size:11.5px;color:var(--haze);padding:3px 0}
.chain .stamp{color:var(--slate-500);flex:none;min-width:84px}
.foot{padding:10px 18px;border-top:var(--rail);font-size:10.5px;color:var(--slate-500);line-height:1.5}

/* triage */
.tshell{display:grid;grid-template-columns:330px minmax(0,1fr) 316px;height:calc(100vh - 49px)}
@media (max-width:1200px){.tshell{grid-template-columns:1fr;height:auto}}
.queue{border-right:var(--rail-strong);background:var(--slate-800);display:flex;flex-direction:column;min-height:0}
.qbody{overflow-y:auto;flex:1;min-height:0}
.sig{display:grid;grid-template-columns:3px 1fr;gap:11px;padding:12px 16px 12px 13px;border-bottom:var(--rail);text-decoration:none;color:inherit}
.sig:hover{background:rgba(138,164,178,.05)}.sig.sel{background:rgba(63,182,196,.08)}
.tier{border-radius:2px}.tier.t1{background:var(--confirmed)}.tier.t2{background:var(--corroborated)}.tier.t3,.tier.t4{background:var(--unconfirmed)}
.sig .top{display:flex;gap:8px;font-size:11.5px;color:var(--haze);margin-bottom:3px}
.sig .top .srcname{margin-left:auto}
.sig h3{margin:0 0 3px;font-size:13.5px;font-weight:500;line-height:1.35}
.sig .loc{margin:0;font-size:12px;color:var(--haze)}
.flagrow{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap}
.flag{font-size:10.5px;padding:1px 6px;border-radius:2px;border:var(--rail);color:var(--haze)}
.flag.block{border-color:rgba(180,87,79,.5);color:#D98880}
.work{overflow-y:auto;padding:22px 26px;min-width:0}
.crumb{font-size:12px;color:var(--haze);margin:0 0 12px}
.work h2{margin:0 0 6px;font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.25}
.sub{margin:0 0 18px;font-size:13px;color:var(--haze)}
.card{border:var(--rail);background:var(--slate-800);padding:15px 17px;margin-bottom:15px}
.card h3{margin:0 0 11px;font-size:13px;font-weight:600}
.raw{font-size:13px;color:#C3D2DA;line-height:1.55;margin:0 0 10px;padding-left:12px;border-left:2px solid var(--slate-600);white-space:pre-line}
.rawmeta{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--slate-500)}
.check{display:grid;grid-template-columns:16px 1fr auto;gap:11px;align-items:start;padding:8px 0;border-bottom:var(--rail);font-size:13px}
.check:last-child{border-bottom:none}
.tick{width:15px;height:15px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;margin-top:1px}
.tick.ok{background:rgba(79,168,138,.18);color:var(--pass)}.tick.no{background:rgba(180,87,79,.2);color:#D98880}.tick.warn{background:rgba(224,160,50,.18);color:var(--corroborated)}
.check .why{font-size:11.5px;color:var(--haze);display:block;margin-top:2px}
.verdict{font-size:11.5px;color:var(--haze);white-space:nowrap}
.strike{color:var(--retracted);text-decoration:line-through;text-decoration-color:rgba(180,87,79,.6)}
.fld{display:block;margin-bottom:11px}
.fld span{display:block;font-size:12px;color:var(--haze);margin-bottom:4px}
.fld input,.fld textarea{width:100%;background:var(--slate-900);border:var(--rail-strong);color:var(--paper);font:inherit;font-size:13.5px;padding:8px 10px;border-radius:2px}
.fld textarea{min-height:92px;resize:vertical}
.acts{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.btn{padding:8px 15px;border:var(--rail-strong);font-size:13px;font-weight:500;border-radius:2px;background:none;color:var(--paper);cursor:pointer}
.btn:hover{background:rgba(138,164,178,.08)}
.btn.pri{background:var(--confirmed);color:#0B1B20;border-color:var(--confirmed)}
.btn.warn{border-color:rgba(224,160,50,.5);color:var(--corroborated)}
.btn.kill{border-color:rgba(180,87,79,.45);color:#D98880}
.btn[disabled]{opacity:.35;cursor:not-allowed}
.actnote{font-size:11.5px;color:var(--slate-500);margin:9px 0 0}
.flash{margin:0 0 14px;padding:9px 12px;font-size:12.5px;border:var(--rail)}
.flash.ok{border-color:rgba(79,168,138,.45);color:#9FD3BF}.flash.err{border-color:rgba(180,87,79,.45);color:#E0A9A3}
.match{border-left:var(--rail-strong);background:var(--slate-800);overflow-y:auto;padding:16px}
.match h2{margin:0 0 4px;font-size:13.5px;font-weight:600}
.lede{margin:0 0 14px;font-size:12px;color:var(--haze);line-height:1.45}
.cand{border:var(--rail);padding:11px 12px;margin-bottom:10px}
.cand.hot{border-color:rgba(224,160,50,.45)}
.cand .ctop{display:flex;gap:8px;align-items:center;margin-bottom:5px;font-size:11.5px;color:var(--corroborated)}
.cand h4{margin:0 0 4px;font-size:13px;font-weight:500}
.cand p{margin:0 0 9px;font-size:11.5px;color:var(--haze)}
.mini{padding:5px 10px;border:var(--rail);font-size:12px;border-radius:2px;width:100%;color:var(--paper);background:none;cursor:pointer}
.mini:hover{background:rgba(138,164,178,.08)}

/* account & plans */
.page{max-width:980px;margin:0 auto;padding:36px 20px 60px}
.page h1{margin:0 0 6px;font-size:22px;font-weight:600;letter-spacing:-.01em}
.page .lede{margin:0 0 26px;color:var(--haze);font-size:14px;max-width:60ch}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:28px}
.plan{border:var(--rail);background:var(--slate-800);padding:20px 22px;display:flex;flex-direction:column}
.plan.cur{border-color:rgba(63,182,196,.55)}
.plan h2{margin:0;font-size:15px;font-weight:600}
.plan .price{font-size:26px;font-weight:600;margin:6px 0 2px;letter-spacing:-.02em}
.plan .per{font-size:12px;color:var(--haze);margin-bottom:14px}
.plan ul{list-style:none;margin:0 0 18px;padding:0;flex:1}
.plan li{padding:6px 0;border-top:var(--rail);font-size:13px;color:#C3D2DA}
.plan li.off{color:var(--slate-500)}
.plan .btn{width:100%;text-align:center}
.notrule{border:1px solid rgba(180,87,79,.35);background:rgba(180,87,79,.07);padding:14px 16px;font-size:13px;color:#D9B4AF;line-height:1.5;max-width:70ch}
.sect{border:var(--rail);background:var(--slate-800);padding:18px 20px;margin-bottom:14px}
.sect h2{margin:0 0 4px;font-size:14px;font-weight:600}
.sect .sub{margin:0 0 14px;font-size:12.5px;color:var(--haze)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media(max-width:600px){.row2{grid-template-columns:1fr}}
.area{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:var(--rail);font-size:13.5px}
.area small{display:block;color:var(--haze);font-size:12px}
.chip{display:inline-block;font-size:10.5px;padding:1.5px 7px;border-radius:2px;background:rgba(63,182,196,.16);color:var(--confirmed);margin-left:6px}
.authbox{max-width:420px;margin:60px auto;padding:0 20px}
.keybox{background:var(--slate-900);border:var(--rail-strong);padding:10px 12px;font-family:"IBM Plex Mono",monospace;font-size:13px;word-break:break-all;margin:8px 0 4px}
.early .dot{border:1.5px dashed var(--corroborated)}
.early .state.early{background:rgba(224,160,50,.16);color:var(--corroborated)}
.feed.off{opacity:.55}

/* live log: inbox behaviour */
.lhead-row{display:flex;align-items:center;gap:10px}
.unread-pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--confirmed);color:#0B1B20}
.linkbtn{margin-left:auto;font-size:12px;color:var(--haze);text-decoration:underline;text-underline-offset:2px}
.linkbtn:hover{color:var(--paper)}
.lbody{position:relative}
.newpill{position:sticky;top:8px;z-index:3;display:block;margin:8px auto -36px;padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;
  background:var(--confirmed);color:#0B1B20;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.entry.unread{background:rgba(63,182,196,.045)}
.entry.unread h3{font-weight:600;color:#fff}
.entry.unread .railcol::after{content:"";position:absolute;left:-13px;top:2px;bottom:2px;width:3px;border-radius:2px;background:var(--confirmed)}
.tag{font-size:10px;font-weight:600;padding:1px 6px;border-radius:2px;letter-spacing:.02em}
.tag.new{background:var(--confirmed);color:#0B1B20}
.tag.upd{background:rgba(224,160,50,.2);color:var(--corroborated)}
.entry.arrive{animation:arrive .5s ease-out}
@keyframes arrive{from{opacity:0;transform:translateY(-10px);background:rgba(63,182,196,.18)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.entry.arrive{animation:none}}
/* staff-only air layer */
.airdot{background:#C7A6FF!important}
.legend-staff{color:#C7A6FF!important;border-top:var(--rail);padding-top:6px}
.airmk{display:flex;align-items:center;gap:5px;font:600 10.5px "IBM Plex Mono",monospace;color:#101B24;white-space:nowrap;cursor:pointer}
.airmk i{width:11px;height:11px;border-radius:50%;border:2px solid #101B24;display:block}
.airmk span{background:rgba(232,238,241,.92);padding:1px 5px;border-radius:2px}
.newpill[hidden]{display:none}
