:root{
  --bg:#070b14; --bg2:#0b1120; --panel:#0e1626; --panel2:#121c30; --line:#1c2a44;
  --ink:#eef3ff; --dim:#b6c5dc; --faint:#7d93b0;
  --gold:#f5b942; --gold2:#ffd166; --cyan:#3fd8e8; --green:#3ddc97; --red:#ff5d73;
  --violet:#8f7dff; --orange:#ff9f4a;
  --mono:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{background:radial-gradient(1200px 800px at 70% -10%,#101b33 0%,var(--bg) 55%);color:var(--ink);font-family:var(--sans);overflow:hidden}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#22304e;border-radius:4px}
#app{display:flex;flex-direction:column;height:100vh}
#release-update-banner[hidden]{display:none}
#release-update-banner{position:fixed;top:max(10px,env(safe-area-inset-top));left:50%;z-index:420;
  transform:translateX(-50%);display:flex;align-items:center;gap:14px;width:min(720px,calc(100vw - 24px));
  padding:10px 12px;border:1px solid rgba(245,185,66,.72);border-left:4px solid var(--gold);
  border-radius:10px;background:rgba(10,16,30,.98);box-shadow:0 14px 44px rgba(0,0,0,.62);
  color:var(--dim);font-size:11px;line-height:1.45}
#release-update-banner>span{flex:1;min-width:0}#release-update-banner b{color:var(--ink)}
#release-update-banner>div{display:flex;gap:6px;flex:0 0 auto}
#release-update-banner button{min-height:32px;padding:5px 10px;border:1px solid var(--line);border-radius:7px;
  background:var(--panel2);color:var(--dim);cursor:pointer;font:700 9px var(--mono);letter-spacing:.04em}
#release-update-banner #release-update-refresh{border-color:var(--gold);background:var(--gold);color:#15120a}
#release-update-banner button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

/* ---------- header ---------- */
header{display:flex;align-items:center;gap:18px;padding:10px 18px;border-bottom:1px solid var(--line);background:rgba(9,14,26,.85);backdrop-filter:blur(8px);z-index:20}
/* The wordmark is the way home — every site works this way, so ours must too. */
.logo{display:flex;align-items:baseline;gap:8px;white-space:nowrap;text-decoration:none;color:inherit;cursor:pointer;border-radius:6px;transition:opacity .15s}
.logo:hover{opacity:.82}
.logo:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.logo .eye{width:26px;height:26px;border-radius:50%;background:conic-gradient(from 210deg,var(--gold),#7a4de8,var(--cyan),var(--gold));display:inline-block;position:relative;top:5px;box-shadow:0 0 18px rgba(245,185,66,.45)}
.logo .eye::after{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--bg)}
.logo b{font-size:19px;letter-spacing:2.5px}
.logo b span{color:var(--gold)}
.logo small{color:var(--faint);font-size:10px;letter-spacing:2px;text-transform:uppercase}
.logo .official-logo{display:none;height:38px;width:auto;max-width:230px;object-fit:contain}
.search{flex:1;max-width:520px;position:relative}
.search input{width:100%;padding:9px 74px 9px 36px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:13px;outline:none;transition:border .2s}
.search input:focus{border-color:var(--gold)}
.search .ico{position:absolute;left:12px;top:9px;color:var(--faint);font-size:13px}
.search #ask{position:absolute;right:5px;top:5px;bottom:5px;padding:0 11px;border-radius:6px;border:1px solid var(--line);background:var(--panel2);color:var(--gold);font-size:10px;letter-spacing:1px;font-family:var(--mono);cursor:pointer}
.search #ask:hover{border-color:var(--gold)}
#interp{display:none;margin:0 12px 10px;padding:9px 12px;border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:9px;font-size:11px;font-family:var(--sans);color:var(--dim);line-height:1.7}
#interp b{color:var(--cyan)}
.qchip{background:var(--panel2);border:1px solid var(--line);color:var(--gold);border-radius:12px;font:600 10px ui-monospace,monospace;padding:3px 8px;cursor:pointer;max-width:170px}
.qchip:hover{border-color:var(--gold)}
.pcard.gen{border-color:rgba(63,216,232,.55);box-shadow:0 0 18px rgba(63,216,232,.10)}
.pcard.gen .ondemand{font-size:9px;letter-spacing:1.4px;color:var(--cyan);font-family:var(--mono);margin-bottom:6px}
.answer-feedback button{margin-left:5px;padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--dim);font:600 8.5px var(--mono);cursor:pointer}
.answer-feedback button:hover,.answer-feedback button:focus-visible{color:var(--ink);border-color:var(--cyan);outline:0}
.answer-feedback button:disabled{opacity:.45;cursor:default}
.hstats{display:flex;gap:10px;margin-left:auto;align-items:center}
.hstat{padding:5px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:11px;color:var(--dim);white-space:nowrap}
.hstat b{color:var(--ink);font-family:var(--mono);font-size:12px}
.hstat .up{color:var(--green)} .hstat .gold{color:var(--gold)}
.dot-live{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px;animation:blink 1.6s infinite}
@keyframes blink{50%{opacity:.35}}
#clock{font-family:var(--mono);font-size:12px;color:var(--dim)}
#ui-switcher{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);
  border-radius:9px;background:rgba(14,22,38,.86);white-space:nowrap;font:600 9px var(--mono)}
#ui-switcher>span{padding:0 5px;color:var(--faint);text-transform:uppercase;letter-spacing:.08em}
#ui-switcher a{color:var(--dim);text-decoration:none;padding:5px 7px;border-radius:6px}
#ui-switcher a:hover,#ui-switcher a:focus-visible{color:var(--ink);outline:1px solid var(--cyan)}
#ui-switcher a[aria-current="page"]{color:#10131a;background:var(--gold)}
#ui-switcher .ui-membership-link{color:var(--gold)}

/* ---------- nav ---------- */
nav{display:flex;gap:4px;padding:8px 18px;border-bottom:1px solid var(--line);background:rgba(9,14,26,.7)}
.nav-btn{padding:7px 16px;border-radius:8px;border:1px solid transparent;background:none;color:var(--dim);font-size:12.5px;letter-spacing:.4px;cursor:pointer;font-family:var(--sans)}
.nav-btn:hover{color:var(--ink)}
.nav-btn.active{background:var(--panel2);border-color:var(--line);color:var(--gold)}
.nav-note{margin-left:auto;align-self:center;font-size:11px;color:var(--faint)}

/* ---------- layout ---------- */
main{flex:1;min-height:0;position:relative}
.view{position:absolute;inset:0;display:none}
.view.active{display:flex}

/* map view */
#view-map{flex-direction:row}
.side{width:270px;min-width:270px;border-right:1px solid var(--line);background:rgba(10,16,30,.72);display:flex;flex-direction:column;overflow-y:auto}
.side.right{width:330px;min-width:330px;border-right:none;border-left:1px solid var(--line)}
.sec{padding:14px 16px;border-bottom:1px solid var(--line)}
.sec h4{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
.layer{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;cursor:pointer;transition:background .15s}
.layer:hover{background:var(--panel2)}
.layer .sw{width:26px;height:15px;border-radius:8px;background:#22304e;position:relative;transition:background .2s;flex-shrink:0}
.layer .sw::after{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:#5d7194;top:2px;left:2px;transition:all .2s}
.layer.on .sw{background:rgba(245,185,66,.3)}
.layer.on .sw::after{left:13px;background:var(--gold)}
.layer .nm{font-size:12.5px;flex:1}
.layer .ct{font-family:var(--mono);font-size:10.5px;color:var(--faint)}
.risk-row{margin-bottom:11px;cursor:default}
.risk-row .t{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}
.risk-row .t b{font-family:var(--mono)}
.risk-bar{height:5px;border-radius:3px;background:#1a2740;overflow:hidden}
.risk-bar i{display:block;height:100%;border-radius:3px}
.trend{font-size:10px;font-family:var(--mono)}
.map-wrap{flex:1;position:relative;min-width:0}
#map{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}
#map.map-zoomed{cursor:grab}#map.map-zoomed.map-dragging{cursor:grabbing}#map.map-zoomed.clickable:not(.map-dragging){cursor:pointer}
#tooltip{position:absolute;pointer-events:none;background:rgba(10,16,30,.95);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:8px;padding:10px 12px;font-size:11.5px;max-width:280px;display:none;z-index:30;box-shadow:0 8px 30px rgba(0,0,0,.5)}
#tooltip .tq{font-weight:600;margin-bottom:5px;line-height:1.35}
#tooltip .tm{color:var(--dim);font-family:var(--sans);font-size:11px}
.legend{position:absolute;left:14px;bottom:14px;display:flex;gap:6px;flex-wrap:wrap;z-index:10}
.lg{padding:3px 9px;border-radius:6px;font-size:9.5px;letter-spacing:1.2px;font-family:var(--mono);border:1px solid var(--line);background:rgba(10,16,30,.85)}
.lg.live{color:var(--green)} .lg.fore{color:var(--gold)} .lg.inf{color:var(--violet)}
.lg.off{color:var(--cyan)} .lg.del{color:var(--dim)} .lg.stale{color:var(--red)}
.map-title{position:absolute;top:12px;left:16px;z-index:10;font-size:11px;letter-spacing:2.5px;color:var(--dim);text-transform:uppercase;text-shadow:0 1px 6px rgba(0,0,0,.8)}
/* cinematic intro + live counters + replay scrubber (map view) */
#map-intro{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;pointer-events:auto;transition:opacity 1s}
#map-intro-txt{font:600 12px var(--mono);letter-spacing:4px;color:var(--gold);text-shadow:0 0 18px rgba(245,185,66,.35)}
#map-counters{position:absolute;top:34px;left:16px;z-index:22;display:flex;flex-direction:column;gap:6px}
.mc{background:rgba(9,14,26,.85);border:1px solid var(--line);border-radius:9px;padding:7px 12px;min-width:176px}
.mc-l{font:600 8.5px var(--mono);letter-spacing:1.2px;color:var(--faint)}
.mc-v{font:600 20px var(--mono);line-height:1.3}
.mc-s{font:600 9px var(--sans);letter-spacing:.2px;color:var(--faint)}
#replaybar{position:absolute;left:50%;transform:translateX(-50%);bottom:52px;z-index:23;display:flex;align-items:center;gap:9px;background:rgba(9,14,26,.88);border:1px solid var(--line);border-radius:9px;padding:6px 12px;width:min(480px,72%)}
#rp-slider{flex:1;accent-color:var(--gold);min-width:0}
#rp-live{font:700 9.5px var(--mono);letter-spacing:1px;color:var(--dim);background:none;border:1px solid var(--line);border-radius:6px;padding:4px 8px;cursor:pointer;white-space:nowrap}
#rp-live.on{color:var(--green);border-color:var(--green)}
#rp-label{font:600 9.5px var(--mono);color:var(--dim);min-width:78px;text-align:right}
.lgt{font:700 8.5px var(--mono);letter-spacing:1.5px;color:var(--gold);align-self:center}
.lgsep{width:1px;align-self:stretch;background:var(--line)}
.legend .lg.live,.legend .lg.inf,.legend .lg.fore{font-size:10.5px;border-width:1.5px;font-weight:700}
.legend .lg.live{border-color:rgba(61,220,151,.55)}
.legend .lg.inf{border-color:rgba(143,125,255,.55)}
.legend .lg.fore{border-color:rgba(245,185,66,.55)}
@media(max-width:900px){#map-counters{top:30px;left:10px}.mc{min-width:130px;padding:5px 9px}.mc-v{font-size:15px}}
@media(max-width:700px){#map-counters{flex-direction:row;gap:4px;right:10px}.mc{min-width:0;flex:1}#replaybar{width:92%;bottom:78px}}
#abanner{display:none;position:absolute;top:14px;right:14px;width:330px;max-height:calc(100% - 28px);overflow-y:auto;background:rgba(10,16,30,.97);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px;padding:16px;z-index:25;box-shadow:0 12px 40px rgba(0,0,0,.6)}
#ab-close{position:absolute;top:10px;right:10px;background:none;border:1px solid var(--line);color:var(--dim);border-radius:6px;width:24px;height:24px;cursor:pointer;font-size:11px}
#abanner h3{font-size:15px;margin-bottom:4px}
#abanner .row{display:flex;justify-content:space-between;font-size:11.5px;padding:4px 0;border-bottom:1px solid rgba(28,42,68,.5)}
#abanner .row b{font-family:var(--mono)}
#abanner canvas{width:100%;height:120px;display:block;margin:8px 0}
#abanner .src{font-size:9px;color:var(--faint);margin-top:8px;line-height:1.6}
/* Traffic Vision pilot panel — same shell as the atlas banner, orange rule to
   match the "under development" chip so the state is legible at a glance. */
#tvbanner{display:none;position:absolute;top:14px;right:14px;width:330px;max-height:calc(100% - 28px);overflow-y:auto;background:rgba(10,16,30,.97);border:1px solid var(--line);border-left:3px solid var(--orange,#ff9f4a);border-radius:12px;padding:16px;z-index:25;box-shadow:0 12px 40px rgba(0,0,0,.6)}
#tv-close{position:absolute;top:10px;right:10px;background:none;border:1px solid var(--line);color:var(--dim);border-radius:6px;width:24px;height:24px;cursor:pointer;font-size:11px}
#tvbanner h3{font-size:15px;margin-bottom:4px}
#tvbanner .row{display:flex;justify-content:space-between;gap:10px;font-size:11.5px;padding:4px 0;border-bottom:1px solid rgba(28,42,68,.5)}
#tvbanner .row b{font-family:var(--mono);text-align:right}
#tvbanner .src{font-size:9px;color:var(--faint);margin-top:8px;line-height:1.6}
#view-traffic canvas{display:block;width:100%;height:100%}

/* Global Real Estate and Traffic camera slippy maps. Property tiles load only
   after its explicit button. Traffic tiles load after the explicit Traffic-tab
   selection; operator camera images still load only after a marker click. */
.property-workspace{position:relative;overflow:auto;background:var(--bg2)}
.property-summary{padding:20px 22px;min-height:100%}
.property-country-label{display:block;font:700 9px var(--mono);letter-spacing:.12em;color:var(--faint);margin:8px 0 5px}
.property-country-select{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--ink);font-size:11px}
.property-map-open,.traffic-camera-open,.traffic-camera-random-open{width:100%;margin-top:9px}
.traffic-camera-random-open{color:var(--green);border-color:rgba(50,211,153,.5)}
.traffic-camera-sources{display:grid;gap:5px;margin:8px 0 2px}
.traffic-camera-sources p{margin:0;font-size:9px;line-height:1.45;color:var(--faint)}
.traffic-camera-source{display:flex;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:6px;background:rgba(10,16,30,.62);padding:6px 7px;font-size:9px;color:var(--dim)}
.traffic-camera-source b{color:var(--ink)}.traffic-camera-source .current{color:var(--green)}.traffic-camera-source .stale{color:var(--orange)}.traffic-camera-source .missing{color:var(--red)}
.property-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.property-head h2{font-size:18px;margin:0 0 5px}.property-head p{font-size:11px;color:var(--dim);margin:0;max-width:760px;line-height:1.55}
.property-badge{font:700 9px var(--mono);letter-spacing:.08em;padding:4px 7px;border:1px solid var(--line);border-radius:5px;color:var(--gold)}
.property-badges{display:flex;gap:6px;flex-wrap:wrap}.property-badge.current{color:var(--green);border-color:var(--green)}.property-badge.due{color:var(--orange);border-color:var(--orange)}
.property-price-grid{display:grid;grid-template-columns:repeat(4,minmax(165px,1fr));gap:10px;margin:12px 0 22px}
.property-price-card{border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,var(--panel2),var(--panel));padding:12px;min-width:0}
.property-price-card h3{font-size:10px;letter-spacing:.08em;color:var(--faint);margin:0 0 8px}.property-price-card .property-value{font:700 20px var(--mono);color:var(--gold);overflow-wrap:anywhere}.property-price-card .property-value.missing{font-size:12px;color:var(--orange)}
.property-price-card p{font-size:9.5px;line-height:1.45;color:var(--dim);margin:6px 0 0}.property-price-card a,.property-source a{color:var(--cyan)}
.property-owner-table{width:100%;font-size:11px}.property-owner-table th{position:static;background:transparent}.property-owner-table td{padding:8px 7px}.property-owner-table .owner-area{font-family:var(--mono);text-align:right;white-space:nowrap}
.property-warning{border-left:3px solid var(--orange);background:rgba(255,159,74,.06);padding:10px 12px;border-radius:7px;color:var(--dim);font-size:10.5px;line-height:1.5;margin:10px 0}
.slippy-panel{position:absolute;inset:0;z-index:30;background:var(--bg2);display:flex;flex-direction:column;min-height:360px}
.slippy-panel[hidden]{display:none!important}
.slippy-toolbar{height:46px;min-height:46px;display:flex;align-items:center;gap:10px;padding:0 12px;border-bottom:1px solid var(--line);background:var(--panel)}
.slippy-toolbar strong{font-size:12px;color:var(--ink)}.slippy-toolbar span{font:9px var(--mono);color:var(--dim)}
.traffic-camera-country{min-width:170px;max-width:280px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--ink);padding:6px 8px;font-size:10px}
.slippy-toolbar button{margin-left:auto;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--ink);width:30px;height:30px;cursor:pointer}
.slippy-toolbar .traffic-camera-random{margin-left:0;width:auto;min-width:166px;padding:0 10px;color:var(--green);border-color:rgba(50,211,153,.5);font:700 9px var(--mono);white-space:nowrap}
.slippy-toolbar .traffic-camera-random:disabled{cursor:not-allowed;color:var(--faint);border-color:var(--line);opacity:.72}
.slippy-map{position:relative;flex:1;min-height:320px;overflow:hidden;background:#09111c;touch-action:none;cursor:grab;user-select:none}
.slippy-map.dragging{cursor:grabbing}
.slippy-tiles,.slippy-markers{position:absolute;inset:0;overflow:hidden}.slippy-tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none;pointer-events:none}
.slippy-marker{position:absolute;transform:translate(-50%,-50%);border:2px solid #07111c;border-radius:50%;background:var(--gold);color:#07111c;min-width:22px;height:22px;padding:0 5px;font:800 8px var(--mono);box-shadow:0 2px 8px rgba(0,0,0,.65);cursor:pointer;z-index:3}
.slippy-marker.region{background:var(--cyan)}.slippy-marker.property-uncovered{background:#334055;color:#dce6f1;border-color:#758398}.slippy-marker.property-covered{background:var(--gold);color:#111827}.slippy-marker.camera{background:var(--green);width:13px;height:13px;min-width:13px;padding:0}
.slippy-zoom{position:absolute;left:10px;top:10px;z-index:8;display:flex;flex-direction:column}.slippy-zoom button{width:32px;height:32px;border:1px solid var(--line);background:rgba(7,11,20,.92);color:var(--ink);font-size:18px;cursor:pointer}.slippy-zoom button:first-child{border-radius:6px 6px 0 0}.slippy-zoom button:last-child{border-radius:0 0 6px 6px}
.slippy-attribution{position:absolute;right:4px;bottom:3px;z-index:7;background:rgba(7,11,20,.86);padding:2px 5px;font:8px var(--sans);color:var(--dim)}.slippy-attribution a{color:var(--cyan)}
.slippy-popup{position:absolute;z-index:10;width:min(310px,calc(100% - 24px));max-height:70%;overflow:auto;background:rgba(9,16,28,.98);border:1px solid var(--line);border-radius:9px;padding:11px;box-shadow:0 10px 32px rgba(0,0,0,.65);color:var(--ink)}
.slippy-popup button{float:right;background:none;border:0;color:var(--dim);cursor:pointer}.slippy-popup h3{font-size:12px;margin:0 24px 5px 0}.slippy-popup p{font-size:9.5px;color:var(--dim);line-height:1.45;margin:5px 0}.slippy-popup img{display:block;width:100%;height:auto;max-height:220px;object-fit:contain;background:#000;margin:8px 0;border-radius:5px}.slippy-popup a{color:var(--cyan)}
.slippy-popup img.camera-source-logo{width:auto;max-width:132px;max-height:50px;object-fit:contain;background:#fff;padding:4px}
.slippy-status{min-height:28px;padding:7px 10px;border-top:1px solid var(--line);background:var(--panel);font:9px var(--mono);color:var(--dim)}
@media(max-width:1100px){.property-price-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:650px){.property-price-grid{grid-template-columns:1fr}.property-summary{padding:14px}.slippy-panel{position:fixed;inset:0;z-index:200}.slippy-map{min-height:0}.slippy-toolbar{height:auto;min-height:46px;flex-wrap:wrap;padding:7px}.slippy-toolbar span{display:none}.traffic-camera-country{min-width:0;flex:1}.slippy-toolbar .traffic-camera-random{order:4;width:100%;min-width:0}.slippy-toolbar #traffic-camera-close{margin-left:0}}
.tv-devchip{display:inline-block;padding:2px 7px;border-radius:999px;font-size:9px;font-family:var(--mono);letter-spacing:.06em;background:rgba(255,159,74,.14);border:1px solid rgba(255,159,74,.45);color:#ff9f4a}
@media(max-width:700px){#tvbanner{left:12px;right:12px;top:12px;width:auto;max-height:calc(100% - 24px)}}
#cbanner{display:none;position:absolute;top:14px;right:14px;width:340px;max-height:calc(100% - 28px);overflow-y:auto;background:rgba(10,16,30,.97);border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:12px;padding:16px;z-index:25;box-shadow:0 12px 40px rgba(0,0,0,.6)}
/* Map-first controls sit at z-index 28. The open corridor dialog must win the
   overlapping top-right hit target in both the normal and full-map layouts. */
body.corridor-detail-open #view-map #cbanner.corridor-dialog-open{z-index:92}
#cbanner[data-kind="reference"]{border-left-color:var(--gold)}
#cbanner:focus-visible{outline:2px solid var(--cyan);outline-offset:-4px}
#cb-close{position:absolute;z-index:3;top:10px;right:10px;background:none;border:1px solid var(--line);color:var(--dim);border-radius:6px;width:24px;height:24px;cursor:pointer;font-size:11px}
#cb-close:hover{color:var(--ink);border-color:var(--cyan)}
#cbanner h3{font-size:15px;margin-bottom:2px}
#cbanner .cb-share{font-size:11.5px;color:var(--cyan);font-family:var(--sans);margin-bottom:10px}
#cbanner .cb-note{font-size:11px;color:var(--dim);line-height:1.5;margin-bottom:10px}
#cbanner table{width:100%;font-size:11px;border-collapse:collapse;margin-bottom:10px}
#cbanner th{font-size:9px;letter-spacing:1px;color:var(--faint);text-align:right;padding:4px 6px;border-bottom:1px solid var(--line);text-transform:uppercase}
#cbanner th:first-child{text-align:left}
#cbanner td{padding:4px 6px;border-bottom:1px solid rgba(28,42,68,.5);text-align:right;font-family:var(--mono);font-size:10.5px}
#cbanner td:first-child{text-align:left;font-family:var(--sans);color:var(--ink)}
#cbanner .cb-live{font-size:11px;font-family:var(--mono);color:var(--green);margin:8px 0}
#cbanner .cb-src{font-size:9px;color:var(--faint);line-height:1.6;margin-top:8px}
#cbanner canvas{width:100%;height:110px;display:block;margin:4px 0 8px}
.corridor-directory{font-size:10px;color:var(--dim)}
.corridor-directory summary{cursor:pointer;color:var(--ink);font:700 10px var(--mono);letter-spacing:.04em;line-height:1.5;min-height:32px;display:flex;align-items:center}
.corridor-directory summary:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:4px}
.corridor-directory>p{display:grid;gap:3px;margin:4px 0 8px;font:600 9px/1.35 var(--mono)}
.corridor-key.metric{color:var(--cyan)}.corridor-key.reference{color:var(--gold)}
#corridor-directory-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:250px;overflow:auto;overscroll-behavior:contain}
#corridor-directory-list button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;border:1px solid var(--line);border-radius:6px;background:rgba(255,255,255,.015);color:var(--dim);padding:6px 7px;cursor:pointer;font:600 9px/1.35 var(--mono)}
#corridor-directory-list button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#corridor-directory-list button small{flex:0 0 auto;font:700 8px var(--mono);letter-spacing:.04em}
#corridor-directory-list button[data-kind="metric"] small{color:var(--cyan)}
#corridor-directory-list button[data-kind="reference"] small{color:var(--gold)}
#corridor-directory-list button:hover,#corridor-directory-list button[aria-current="true"]{border-color:var(--cyan);color:var(--ink);background:rgba(63,216,232,.07)}
#corridor-directory-list button[data-kind="reference"][aria-current="true"]{border-color:var(--gold);background:rgba(245,185,66,.07)}
#corridor-directory-list button:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}
.corridor-status-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:8px}
.corridor-status-summary span{display:grid;gap:2px;padding:6px 4px;border:1px solid var(--line);border-radius:6px;
  text-align:center;color:var(--faint);font:700 7.5px var(--mono);letter-spacing:.04em}
.corridor-status-summary b{font-size:15px;color:var(--ink)}
.corridor-status-summary .gated b{color:var(--cyan)}.corridor-status-summary .partial b{color:var(--gold)}
.corridor-state-note{margin:0;color:var(--faint);font:600 9px/1.5 var(--mono)}
.watch-center-summary{margin-bottom:7px;color:var(--faint);font:600 9px/1.45 var(--mono)}
.watch-center-open{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:36px;padding:6px 9px;
  border:1px solid rgba(245,185,66,.45);border-radius:7px;background:rgba(245,185,66,.06);color:var(--gold);font:700 9px var(--mono);cursor:pointer}
.watch-center-open span{display:grid;place-items:center;min-width:24px;height:20px;border-radius:999px;background:rgba(245,185,66,.13);color:var(--ink)}
.watch-center-open:focus-visible,#watch-center-close:focus-visible,.watch-center-form :focus-visible,#watch-center-ack:focus-visible,#watch-center-more:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#watch-center-sheet[hidden]{display:none}
#watch-center-sheet{display:block;position:absolute;top:14px;right:14px;z-index:86;width:min(690px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;
  padding:16px;border:1px solid rgba(245,185,66,.5);border-left:3px solid var(--gold);border-radius:12px;background:rgba(7,13,25,.985);box-shadow:0 18px 60px rgba(0,0,0,.68)}
.watch-center-head,.watch-center-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.watch-center-head>div{display:grid;gap:3px}.watch-center-head b{font-size:16px}.watch-center-head span{color:var(--faint);font:8.5px var(--mono)}
#watch-center-close{width:36px;height:36px;flex:0 0 36px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink);cursor:pointer}
.watch-center-note{margin:8px 0;color:var(--faint);font:600 9px/1.5 var(--mono)}
.watch-center-form{display:grid;grid-template-columns:120px 1fr 1.25fr auto;gap:7px;align-items:end;margin:12px 0;padding:10px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.018)}
.watch-center-form label{display:grid;gap:4px;color:var(--faint);font:700 8px var(--mono);letter-spacing:.05em;text-transform:uppercase}
.watch-center-form input,.watch-center-form select{width:100%;min-width:0;height:34px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font:10px var(--mono)}
.watch-center-form button,#watch-center-ack,#watch-center-more{min-height:34px;padding:6px 10px;border:1px solid rgba(245,185,66,.55);border-radius:6px;background:rgba(245,185,66,.09);color:var(--gold);font:700 9px var(--mono);cursor:pointer}
.watch-center-actions{display:flex;align-items:center;gap:6px}.watch-item[data-active="false"]{opacity:.62}.watch-paused{color:var(--gold)}
.watch-center-columns{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(260px,1.4fr);gap:10px}.watch-center-columns>section{min-width:0}
.watch-center-section-head{align-items:center;margin:6px 0}.watch-center-section-head h5{margin:0;color:var(--dim);font:700 9px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.watch-item,.watch-change{display:grid;gap:4px;margin-bottom:6px;padding:8px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.018)}
.watch-item-head,.watch-change-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.watch-item b,.watch-change b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.watch-item small,.watch-change small{color:var(--faint);font:8px var(--mono)}.watch-remove{border:0;background:none;color:var(--red);cursor:pointer;font:700 9px var(--mono)}
.watch-change .watch-class{color:var(--cyan);font:700 8px var(--mono)}.watch-change[data-class="FORECAST"] .watch-class{color:var(--gold)}.watch-change[data-class="INFERRED"] .watch-class{color:var(--violet)}
.watch-change p{margin:0;color:var(--dim);font:9.5px/1.45 var(--mono)}.watch-empty{padding:10px;border:1px dashed var(--line);border-radius:7px;color:var(--faint);font:9px/1.5 var(--mono)}
#corridor-directory-list button.watched,#corridor-mobile-list button.watched{box-shadow:inset 0 0 0 1px rgba(245,185,66,.7)}
.watch-inline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:7px 0}.watch-inline button{padding:5px 8px;border:1px solid rgba(245,185,66,.55);border-radius:6px;background:rgba(245,185,66,.08);color:var(--gold);font:700 8px var(--mono);cursor:pointer}
.vessel-provider-creditline{display:block;margin-top:4px;color:var(--faint);font:600 7.5px/1.4 var(--mono)}
.vessel-provider-details{margin:5px 0 3px;border:1px solid rgba(28,42,68,.82);border-radius:6px;background:rgba(255,255,255,.018);color:var(--faint);font:600 8.5px/1.45 var(--mono)}
.vessel-provider-details summary{padding:6px 8px;color:var(--dim);font:700 8px var(--mono);letter-spacing:.04em;cursor:pointer;list-style-position:inside;user-select:none}
.vessel-provider-details summary:hover,.vessel-provider-details summary:focus-visible{color:var(--cyan);outline:none}
.vessel-provider-details[open] summary{border-bottom:1px solid rgba(28,42,68,.82)}
.vessel-provider-details-body{padding:2px 8px 6px}.vessel-provider-details-body p{margin:6px 0}
.corridor-activity{display:grid;gap:4px;margin:5px 0 9px}
.corridor-activity-row{display:grid;grid-template-columns:minmax(72px,1fr) minmax(112px,1.35fr);gap:6px;
  align-items:center;padding:5px 6px;border:1px solid rgba(28,42,68,.72);border-radius:6px;background:rgba(255,255,255,.015)}
.corridor-activity-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font:700 8.5px var(--mono)}
.corridor-activity-row span{text-align:right;color:var(--faint);font:700 7.5px/1.35 var(--mono);letter-spacing:.025em}
.corridor-activity-row.partial{border-left:3px solid var(--gold)}.corridor-activity-row.partial span{color:var(--gold)}
.corridor-activity-row.gated{border-left:3px solid var(--cyan)}.corridor-activity-row.gated span{color:var(--cyan)}
.corridor-delayed-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:7px}
.corridor-delayed-badge{display:inline-flex;padding:2px 5px;border:1px solid rgba(63,216,232,.52);border-radius:4px;
  color:var(--cyan);font:700 7.5px var(--mono);letter-spacing:.05em}
.corridor-delayed-head time{color:var(--faint);font:600 8px var(--mono)}
.corridor-delayed-list{display:grid;gap:4px;list-style:none}
.corridor-delayed-list button{display:grid;grid-template-columns:minmax(72px,1fr) auto 56px;gap:6px;align-items:center;
  width:100%;min-height:34px;padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:rgba(255,255,255,.015);
  color:var(--dim);text-align:left;cursor:pointer}
.corridor-delayed-list button:hover{border-color:var(--cyan)}.corridor-delayed-list button:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}
.corridor-delayed-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.5px}
.corridor-delayed-value{color:var(--cyan);font:700 9px var(--mono)}
.corridor-spark{width:56px;height:20px;overflow:visible}.corridor-spark polyline{fill:none;stroke:var(--cyan);stroke-width:1.6;vector-effect:non-scaling-stroke}
.corridor-delayed-source{margin-top:7px;color:var(--faint);font:8px/1.45 var(--mono)}
.corridor-delayed-source a{color:var(--cyan)}
.cb-delayed{margin:8px 0;padding:8px 9px;border:1px solid rgba(63,216,232,.35);border-left:3px solid var(--cyan);
  border-radius:7px;background:rgba(63,216,232,.045)}
.cb-delayed-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--cyan);font:700 8px var(--mono);letter-spacing:.05em}
.cb-delayed-value{margin-top:5px;color:var(--ink);font:700 11px var(--mono)}
.cb-delayed-note{margin-top:3px;color:var(--faint);font:8.5px/1.45 var(--mono)}
#corridor-mobile-trigger,#corridor-mobile-sheet{display:none}
.tmode{padding:4px 10px !important;font-size:10.5px !important}

/* prediction cards */
.pcard{margin:0 12px 12px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(180deg,var(--panel2),var(--panel));cursor:pointer;transition:border .2s,transform .15s}
.pcard:hover{border-color:var(--gold);transform:translateY(-1px)}
.pcard .top{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px}
.pcard .dom{font-size:9px;letter-spacing:1.5px;font-family:var(--mono);padding:2px 7px;border-radius:5px;text-transform:uppercase}
.pcard .cd{font-size:9.5px;color:var(--faint);font-family:var(--mono)}
.pcard .q{font-size:12.5px;line-height:1.42;margin-bottom:9px}
.prow{display:flex;align-items:center;gap:9px}
.pnum{font-family:var(--mono);font-size:19px;font-weight:700}
.pbar{flex:1;height:6px;border-radius:3px;background:#1a2740;overflow:hidden}
.pbar i{display:block;height:100%;border-radius:3px;transition:width .6s}
.pdelta{font-family:var(--mono);font-size:10.5px}
.pmeta{display:flex;gap:12px;margin-top:8px;font-size:10.5px;color:var(--faint);font-family:var(--sans)}
.drivers{margin-top:9px;display:none}
.pcard.open .drivers{display:block}
.drv{display:flex;align-items:center;gap:7px;font-size:10.5px;color:var(--dim);padding:3px 0}
.drv .w{font-family:var(--mono);width:34px;color:var(--faint)}
.drv .d-up{color:var(--red)} .drv .d-dn{color:var(--green)}

/* publisher footer + disclaimer modal */
#pubfoot{display:flex;align-items:center;gap:10px;padding:5px 16px;border-top:1px solid var(--line);background:rgba(9,14,26,.95);font-size:10px;color:var(--faint)}
#pubfoot a{color:var(--dim);text-decoration:none}
#pubfoot a:hover{color:var(--gold)}
#login-modal{display:none;position:fixed;inset:0;background:rgba(4,7,14,.88);z-index:120;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
#login-box{width:min(390px,calc(100vw - 24px));max-height:92dvh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px;box-shadow:0 20px 60px rgba(0,0,0,.7)}
#login-box h3{font-size:16px;margin-bottom:4px}
#login-box input{width:100%;margin:6px 0;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font-size:13px;outline:none}
#login-box input:focus{border-color:var(--gold)}
.li-copy{font-size:11px;color:var(--dim);margin:6px 0 14px;line-height:1.5}
.li-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:12px 0 8px;padding:4px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.02)}
.li-mode-tabs button,.li-mode-tabs a{padding:8px 7px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--dim);font-size:11px;font-weight:700;text-align:center;text-decoration:none;cursor:pointer}
.li-mode-tabs button[aria-selected="true"]{border-color:rgba(255,190,61,.5);background:rgba(255,190,61,.12);color:var(--gold)}
.li-mode-tabs a:hover,.li-mode-tabs a:focus-visible{border-color:rgba(255,190,61,.5);color:var(--gold);outline:0}
.li-register-note,.li-recovery-note{margin:1px 0 7px;color:var(--faint);font-size:9.5px;line-height:1.4}
.li-recovery-note{padding:7px 8px;border:1px solid var(--line);border-radius:7px}
.li-remember{display:flex;align-items:center;gap:7px;margin-top:5px;color:var(--dim);font-size:10.5px;cursor:pointer}
#login-box .li-remember input{width:auto;margin:0;padding:0;accent-color:var(--gold)}
.li-password-note{margin:5px 0 0;color:var(--faint);font-size:9.5px;line-height:1.4}
.li-link{padding:5px 0;border:0;background:none;color:var(--cyan);font-size:10.5px;text-decoration:underline;cursor:pointer}
.li-auth-view[hidden]{display:none}
.li-btn{width:100%;margin-top:8px;padding:10px;border-radius:8px;border:none;background:var(--gold);color:#141414;font-weight:700;font-size:13px;cursor:pointer}
.li-btn.ghost{background:none;border:1px solid var(--line);color:var(--dim);font-weight:400}
.li-btn:hover{filter:brightness(1.1)}
#li-err{font-size:11px;color:var(--red);min-height:14px;margin-top:4px}
#li-err.ok{color:var(--green)}
#li-legal{margin:8px 0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.02)}
#li-legal p{margin:0 0 5px;color:var(--faint);font-size:9px;line-height:1.45}
#li-legal p:last-child{margin:5px 0 0}
#li-legal label{display:flex;align-items:flex-start;gap:7px;padding:3px 0;color:var(--dim);font-size:10px;line-height:1.35;cursor:pointer}
#login-box #li-legal input{width:auto;flex:0 0 auto;margin:1px 0 0;padding:0;accent-color:var(--gold)}
#li-legal-open{padding:0;border:0;background:none;color:var(--cyan);font:inherit;text-decoration:underline;cursor:pointer}
#li-test-drive{margin:8px 0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:rgba(57,213,232,.035)}
#li-test-drive legend{padding:0 4px;color:var(--ink);font-size:10.5px;font-weight:700}
#li-test-drive p{margin:0 0 5px;color:var(--faint);font-size:9px;line-height:1.45}
#li-test-drive label{display:inline-flex;align-items:center;gap:6px;margin-right:18px;color:var(--dim);font-size:10.5px;cursor:pointer}
#login-box #li-test-drive input{width:auto;margin:0;padding:0;accent-color:var(--gold)}
#userchip{display:none;align-items:center;gap:7px;padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:11px;color:var(--dim)}
#userchip button{background:none;border:none;color:var(--faint);cursor:pointer;font-size:10px}
#userchip button:hover{color:var(--red)}
#disc-modal{display:none;position:fixed;inset:0;background:rgba(4,7,14,.75);z-index:100;align-items:center;justify-content:center}
#disc-box{position:relative;max-width:640px;max-height:80vh;overflow-y:auto;margin:20px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 28px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
#disc-box h3{font-size:15px;margin-bottom:12px}
#disc-box p{font-size:11.5px;color:var(--dim);line-height:1.65;margin-bottom:10px}
#disc-box p b{color:var(--ink)}
#disc-box a{color:var(--cyan)}
#disc-close{position:absolute;top:12px;right:12px;background:none;border:1px solid var(--line);color:var(--dim);border-radius:6px;width:26px;height:26px;cursor:pointer}
/* ticker */
#ticker{border-top:1px solid var(--line);background:rgba(9,14,26,.9);overflow:hidden;height:34px;position:relative}
#tick-inner{display:flex;gap:34px;align-items:center;height:100%;white-space:nowrap;will-change:transform}
.tk{font-family:var(--sans);font-size:11.5px;color:var(--dim)}
.tk b{color:var(--ink)} .tk .up{color:var(--green)} .tk .dn{color:var(--red)} .tk .fc{color:var(--gold)}

/* Oracle of Delphi: the supplied Plato animation appears only while a source
   consultation is active. The idle emblem stays still; internal billing and
   provider metadata remain outside the public card. */
.oracle-plato-shell{display:grid;width:66px;height:66px;flex:0 0 66px;place-items:center;border:1px solid rgba(245,185,66,.65);border-radius:50%;overflow:hidden;background:radial-gradient(circle at 35% 30%,rgba(245,185,66,.3),rgba(122,77,232,.15) 48%,rgba(6,12,24,.95) 72%);box-shadow:inset 0 0 0 5px rgba(6,12,24,.55),0 0 20px rgba(122,77,232,.18)}
.oracle-emblem,.oracle-plato-thinking{grid-area:1/1;width:100%;height:100%}
.oracle-emblem{display:grid;place-items:center;color:var(--gold);font:800 29px Georgia,serif}
.oracle-plato-thinking{display:none;object-fit:cover;border-radius:50%}
.oracle-plato-shell.searching .oracle-emblem{display:none}
.oracle-plato-shell.searching .oracle-plato-thinking{display:block}
.oracle-plato-shell.ready .oracle-emblem{animation:oracle-plato-ready .62s ease-out 1}
@keyframes oracle-plato-ready{0%{transform:rotate(0) scale(1)}45%{transform:rotate(0) scale(1.18);filter:drop-shadow(0 0 12px rgba(245,185,66,.8))}100%{transform:rotate(0) scale(1)}}
.oracle-search-panel{margin-top:10px;padding:10px 12px;border:1px solid rgba(122,77,232,.65);border-left:3px solid var(--violet);border-radius:9px;background:rgba(122,77,232,.05)}
.oracle-search-action{align-self:flex-start;margin-top:8px;padding:7px 10px;border:1px solid var(--violet);border-radius:7px;background:rgba(122,77,232,.14);color:var(--ink);font:700 9px var(--mono);cursor:pointer}.oracle-search-action:disabled{cursor:wait;opacity:.58}
.oracle-search-head,.oracle-editorial-head{display:flex;align-items:center;gap:11px}.oracle-search-head>div,.oracle-editorial-head>div{display:flex;min-width:0;flex-direction:column;gap:3px}.oracle-search-head b{color:var(--violet);font:800 9px var(--mono);letter-spacing:.08em}.oracle-search-head span,.oracle-editorial-head small{color:var(--dim);font-size:10px;line-height:1.45}
.oracle-search-result{margin-top:8px}.oracle-research-label{color:var(--orange);font:700 8.5px var(--mono);letter-spacing:.07em}.oracle-research-answer{margin-top:5px;white-space:pre-wrap;color:var(--dim);font-size:10.5px;line-height:1.6}.oracle-search-result ol{margin:7px 0;padding-left:19px}.oracle-search-result li{padding:2px 0;font-size:9.5px}.oracle-search-result a{color:var(--cyan)}.oracle-search-result small{display:block;color:var(--faint);font-size:8.5px;line-height:1.4}.oracle-research-error{color:var(--orange);font-size:10px}
.oracle-editorial-head{margin-bottom:10px}.oracle-editorial .oracle-plato-shell{width:78px;height:78px;flex-basis:78px}
.learning-stage-notice{display:flex;align-items:flex-start;gap:9px;margin:10px 0;padding:9px 11px;border:1px solid rgba(245,185,66,.5);border-left:3px solid var(--gold);border-radius:8px;background:rgba(245,185,66,.06);color:var(--dim);font-size:10px;line-height:1.45}.learning-stage-notice strong{flex:0 0 auto;color:var(--gold);font:800 8.5px var(--mono);letter-spacing:.08em}.oracle-learning-stage{border-color:rgba(122,77,232,.55);border-left-color:var(--violet);background:rgba(122,77,232,.07)}.oracle-learning-stage strong{color:var(--violet)}
@media(prefers-reduced-motion:reduce){.oracle-plato-shell.searching .oracle-plato-thinking{display:none}.oracle-plato-shell.searching .oracle-emblem{display:grid;animation:oracle-plato-reduced 1.2s ease-in-out infinite}.oracle-plato-shell.ready .oracle-emblem{animation:none}@keyframes oracle-plato-reduced{50%{opacity:.55}}}

/* ledger */
#view-ledger{flex-direction:column;overflow:hidden}
.ledger-head{padding:16px 22px 10px}
.ledger-head h2, .track-head h2{font-size:16px;letter-spacing:.5px;margin-bottom:4px}
.ledger-head p, .track-head p{font-size:12px;color:var(--dim)}
.ledger-head .forecast-learning-stage{max-width:880px;margin-bottom:2px}
.forecast-history-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:8px}
.forecast-history-head>div{display:flex;flex-direction:column;gap:2px}.forecast-history-head b{font-size:12px;color:var(--ink)}
.forecast-history-head span,.forecast-history-head small{color:var(--faint);font:9px var(--mono)}
.forecast-history-head>small{max-width:540px;line-height:1.45;text-align:right}
.forecast-history-grid{display:grid;grid-template-columns:repeat(3,minmax(210px,1fr));gap:8px}
.forecast-history-card{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.02)}
.forecast-history-card>div{display:flex;justify-content:space-between;gap:7px}.forecast-history-card>div b{font-size:11px}.forecast-history-card>div span{color:var(--cyan);font:8px var(--mono);text-align:right}
.forecast-history-card p{margin:4px 0;color:var(--dim);font-size:9.5px}.forecast-history-card p>b{color:var(--gold);font:700 13px var(--mono)}.forecast-history-card p span{color:var(--faint)}
.forecast-history-card small{display:block;margin-top:3px;color:var(--faint);font-size:8.5px;line-height:1.35}.forecast-history-card.unavailable{opacity:.75}
.forecast-history-spark{display:block;width:100%;height:34px;margin:5px 0 1px}.forecast-history-spark polyline{fill:none;stroke:var(--cyan);stroke-width:1.7;vector-effect:non-scaling-stroke}
@media(max-width:800px){.forecast-history-grid{grid-template-columns:1fr}.forecast-history-head{align-items:flex-start;flex-direction:column}.forecast-history-head>small{text-align:left}}
.filters{display:flex;gap:8px;padding:0 22px 12px}
.chip{padding:5px 13px;border-radius:16px;border:1px solid var(--line);background:none;color:var(--dim);font-size:11.5px;cursor:pointer;font-family:var(--sans)}
.chip.active{border-color:var(--gold);color:var(--gold);background:rgba(245,185,66,.08)}
.tbl-wrap{flex:1;overflow:auto;padding:0 22px 22px}
table{width:100%;border-collapse:collapse;font-size:12px}
th{text-align:left;padding:9px 10px;color:var(--faint);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg2);z-index:2}
td{padding:10px;border-bottom:1px solid rgba(28,42,68,.5);vertical-align:middle}
tr:hover td{background:rgba(18,28,48,.5)}
.st{font-family:var(--mono);font-size:9.5px;letter-spacing:1px;padding:2px 8px;border-radius:5px}
.st.open{color:var(--gold);background:rgba(245,185,66,.1)}
.st.hit{color:var(--green);background:rgba(61,220,151,.1)}
.st.miss{color:var(--red);background:rgba(255,93,115,.1)}
.mono{font-family:var(--mono)}
.spk{vertical-align:middle}

/* track record */
#view-track{flex-direction:column;overflow:auto}
.track-head{padding:16px 22px 6px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;padding:12px 22px}
.stat-card{padding:16px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--panel2),var(--panel))}
.stat-card .v{font-family:var(--mono);font-size:24px;font-weight:700;margin-bottom:3px}
.stat-card .l{font-size:10.5px;color:var(--faint);letter-spacing:1px;text-transform:uppercase}
.stat-card .s{font-size:10.5px;color:var(--dim);margin-top:5px}
.charts{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:6px 22px 26px}
.chart-box{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:14px}
.chart-box h4{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);margin-bottom:10px}
.chart-box canvas{width:100%;height:230px;display:block}
.track-note{margin:0 22px 26px;padding:13px 16px;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:9px;font-size:12px;color:var(--dim);line-height:1.55}

/* architecture */
#view-arch{flex-direction:column;overflow:auto;padding:22px}
.arch-flow{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.arch-card{flex:1;min-width:180px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--panel2),var(--panel));padding:15px}
.arch-card h3{font-size:12.5px;margin-bottom:8px;color:var(--gold)}
.arch-card p{font-size:11px;color:var(--dim);line-height:1.55}
.arch-card.hero{border-color:rgba(245,185,66,.5);box-shadow:0 0 24px rgba(245,185,66,.08)}
.arr{align-self:center;color:var(--faint);font-size:18px}
.arch-row-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--faint);margin:20px 0 10px}
/* ── compact desktop: keep the live status header inside narrower laptops ── */
@media(max-width:1360px){
  header{gap:10px;padding:9px 12px}
  .logo small{display:none}
  .search{max-width:460px}
  .hstats{gap:7px}
  .hstats .hstat:not(#feeds-stat):not(#ask-quota-stat){display:none}
  #clock{font-size:10px}
  #ui-switcher>span{display:none}
}

/* ── compact desktop / tablet landscape ── */
@media(max-width:1180px){
  nav{overflow-x:auto;padding:7px 10px;scrollbar-width:none;overscroll-behavior-x:contain}
  nav::-webkit-scrollbar{display:none}
  .nav-btn{white-space:nowrap;flex:0 0 auto}
  .nav-note{display:none}
  .side:not(.right){display:none}
  .side.right{display:flex;width:300px;min-width:300px}
  .charts{grid-template-columns:1fr}
}

/* ── tablet portrait / unfolded Fold ── */
@media(max-width:900px){
  #watch-center-sheet{inset:8px 8px 70px;width:auto;max-height:none}
  .watch-center-form{grid-template-columns:1fr 1fr}.watch-center-form label:nth-child(3){grid-column:1/-1}.watch-center-form button{grid-column:1/-1}
  .watch-center-columns{grid-template-columns:1fr}
  #app{height:100svh;min-height:100svh}
  header{
    flex-wrap:wrap;gap:8px;
    padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left))
  }
  .search{order:3;flex:1 0 100%;max-width:none}
  .hstats{margin-left:auto}
  #clock{font-size:10px}
  #ui-switcher{margin-left:auto}
  nav{scroll-snap-type:x proximity}
  .nav-btn{min-height:38px;padding:7px 13px;scroll-snap-align:start}

  #view-map.view.active,
  #view-atlas.view.active,
  #view-food.view.active,
  #view-land.view.active{
    flex-direction:column;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  #view-map>.map-wrap,
  #view-atlas>.map-wrap{
    order:1;
    flex:0 0 auto;
    width:100%;
    height:clamp(320px,52vw,420px);
    min-height:320px;
  }
  #view-map>.side:not(.right),
  #view-atlas>.side,
  #view-food>.side,
  #view-land>.side{
    order:2;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    min-width:0;
    max-height:none;
    overflow:visible;
    border-right:none;
    border-left:none;
    border-top:1px solid var(--line);
  }
  #view-map>.side.right{
    order:3;
    display:flex !important;
    width:100%;
    min-width:0;
    max-height:none;
    overflow:visible;
    border-right:none;
    border-left:none;
    border-top:1px solid var(--line);
  }
  #view-food>.map-wrap,
  #view-land>.map-wrap{
    order:1;
    flex:0 0 auto;
    width:100%;
    height:auto;
    min-height:0;
    overflow:visible !important;
  }
  #view-food .map-wrap>div,
  #view-land .map-wrap>div{padding:16px !important}
  #cbanner,#abanner{left:12px;right:12px;top:12px;width:auto;max-height:calc(100% - 24px)}
  .cards{padding:10px 14px}
  .charts{padding:6px 14px 20px}
  .ledger-head,.track-head{padding:14px 16px 8px}
  .filters{padding:0 16px 12px;flex-wrap:wrap}
  .tbl-wrap{padding:0 10px 16px}
  #view-arch{padding:16px}
  .arch-flow{flex-direction:column}
  .arr{transform:rotate(90deg);align-self:center}
  #view-map #corridor-mobile-trigger{display:flex;position:absolute;top:98px;right:10px;z-index:56;align-items:center;gap:6px;
    min-height:38px;padding:7px 10px;border:1px solid rgba(63,216,232,.62);border-radius:8px;
    background:rgba(9,14,26,.94);box-shadow:0 6px 20px rgba(0,0,0,.4);color:var(--cyan);
    cursor:pointer;font:700 9px var(--mono);letter-spacing:.05em}
  #view-map #corridor-mobile-trigger span{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:rgba(63,216,232,.12);color:var(--ink)}
  #view-map #corridor-mobile-trigger:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
  #view-map #corridor-mobile-sheet[hidden]{display:none}
  #view-map #corridor-mobile-sheet{display:block;position:absolute;inset:8px 8px 70px;z-index:82;overflow:auto;
    padding:14px;border:1px solid rgba(63,216,232,.62);border-left:3px solid var(--cyan);border-radius:12px;
    background:rgba(8,14,26,.985);box-shadow:0 16px 48px rgba(0,0,0,.72)}
  .corridor-mobile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px;padding-right:2px}
  .corridor-mobile-head>div{display:grid;gap:3px}.corridor-mobile-head b{font-size:15px}.corridor-mobile-head span{color:var(--faint);font:8px var(--mono)}
  #corridor-mobile-close{flex:0 0 36px;width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink);cursor:pointer}
  #corridor-mobile-sheet>p{max-width:520px;margin:0 0 10px;color:var(--dim);font:9.5px/1.5 var(--mono)}
  #corridor-mobile-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;list-style:none}
  #corridor-mobile-list button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;width:100%;min-height:44px;
    padding:8px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.02);color:var(--dim);text-align:left;cursor:pointer}
  #corridor-mobile-list button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
  #corridor-mobile-list button small{color:var(--faint);font:700 7px var(--mono);letter-spacing:.04em}
  #corridor-mobile-list button[data-kind="metric"]{border-left:3px solid var(--cyan)}
  #corridor-mobile-list button[data-kind="reference"]{border-left:3px solid var(--gold)}
  #corridor-mobile-list button[aria-current="true"]{background:rgba(63,216,232,.1);border-color:var(--cyan);color:var(--ink)}
  #corridor-mobile-list button:focus-visible,#corridor-mobile-close:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
  body.corridor-detail-open .mf-map-zoom,body.corridor-detail-open .mf-map-focus-button,
  body.corridor-detail-open #corridor-mobile-trigger{visibility:hidden;pointer-events:none}
}
@media(max-width:600px){.watch-center-form{grid-template-columns:1fr}.watch-center-form label:nth-child(3),.watch-center-form button{grid-column:auto}}

/* ── phones / folded devices ── */
@media(max-width:600px){
  header{padding-top:max(8px,env(safe-area-inset-top))}
  .logo{gap:7px}
  .logo .eye{width:24px;height:24px;top:4px}
  .logo .eye::after{inset:6px}
  .logo b{font-size:17px;letter-spacing:2px}
  .hstats{display:none}
  #ui-switcher{order:2}
  #ui-switcher .ui-membership-link{display:none}
  .search input{min-height:40px;padding:9px 68px 9px 34px;font-size:16px;text-overflow:ellipsis}
  .search .ico{top:12px}
  .search #ask{right:4px;top:4px;bottom:4px;padding:0 9px}
  nav{padding:5px 8px}
  .nav-btn{min-height:38px;padding:7px 11px;font-size:11px}
  /* Keep the guided demo out of the phone rail, but never hide Evidence or
     Sources: health and market users need the trust trail on every viewport. */
  nav .nav-btn[data-v="forecasts"],nav #briefing-btn{display:none}

  #view-map>.map-wrap,
  #view-atlas>.map-wrap{
    height:clamp(180px,62vw,300px);
    min-height:180px;
  }
  #view-map>.side:not(.right),
  #view-atlas>.side,
  #view-food>.side,
  #view-land>.side{
    grid-template-columns:1fr;
  }
  .side .sec{padding:13px 14px}
  .side.right .sec h4{line-height:1.45}
  .map-title{top:10px;left:12px;right:12px;font-size:9px;line-height:1.35;letter-spacing:1.4px}
  .legend{left:8px;right:8px;bottom:8px;gap:4px;max-height:none;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;overscroll-behavior-x:contain;scrollbar-width:none}
  .legend::-webkit-scrollbar{display:none}
  .legend .lgt,.legend .lgsep{display:none}
  .legend .lg{display:inline-flex;flex:0 0 auto;font-size:8px;padding:3px 6px}
  #cbanner,#abanner{left:8px;right:8px;top:8px;max-height:calc(100% - 16px);padding:14px}
  body.corridor-detail-open #view-map #cbanner.corridor-dialog-open{left:6px;right:6px;top:6px;max-height:calc(100% - 12px);padding:14px 14px 18px}
  body.corridor-detail-open #cb-close{top:8px;right:8px;width:38px;height:38px;background:var(--panel2);border-color:var(--cyan);font-size:14px}
  #view-map #corridor-mobile-trigger{top:92px;right:8px}
  #view-map #corridor-mobile-sheet{inset:6px 6px 66px;padding:12px}
  #corridor-mobile-list{grid-template-columns:1fr}
  #release-update-banner{top:max(6px,env(safe-area-inset-top));align-items:stretch;flex-direction:column;gap:8px;padding:10px}
  #release-update-banner>div{justify-content:flex-end}
  #tooltip{max-width:calc(100vw - 24px)}

  .cards{grid-template-columns:1fr;padding:10px 12px}
  #food-grid{grid-template-columns:1fr !important}
  .charts{padding:6px 12px 18px}
  .chart-box{padding:12px}
  .chart-box canvas{height:190px}
  .track-note{margin:0 12px 18px}
  .ledger-head,.track-head{padding:12px 14px 7px}
  .filters{padding:0 14px 10px}
  .tbl-wrap{padding:0 8px 14px}
  #ledger-tbl{min-width:720px}
  table{font-size:11px}
  #view-entity{padding:14px !important}
  #view-entity>div[style*="display:flex"]{flex-direction:column;max-width:none !important}
  #ent-q{width:100%;min-width:0;font-size:16px !important}
  #ent-go{width:100%;min-height:40px}
  #ent-results{grid-template-columns:1fr !important}
  #view-today{padding:14px !important}
  #today-products{grid-template-columns:minmax(0,1fr) !important;min-width:0}
  #today-products>div,#today-products>div *{min-width:0}
  #today-body{grid-template-columns:minmax(0,1fr) !important;min-width:0}
  #today-body>div,#today-body>div *{min-width:0}
  #today-body a{overflow-wrap:anywhere}
  #view-arch{padding:12px}
  .arch-card{min-width:0}
  #arch-health{grid-template-columns:1fr !important}
  #tr-mode{display:inline-block;margin-top:6px}

  #login-box{width:calc(100vw - 24px);padding:20px}
  #disc-box{max-height:calc(100svh - 24px);margin:12px;padding:22px 18px}
  .li-btn,.chip,.layer{min-height:40px}
  #ticker{height:28px}
  #pubfoot{
    display:block;
    padding:5px max(10px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));
    font-size:8.5px;line-height:1.45
  }
  #pubfoot span{display:block;margin-left:0 !important}
}

/* Surface Watch · weekly measurement room */
.surface-watch-view{display:none;flex-direction:column;overflow:auto;padding:24px;background:
  radial-gradient(circle at 8% 0,rgba(61,216,232,.08),transparent 28%),var(--bg,#070b14)}
.surface-watch-view.active{display:flex}
/* This view is the scroll container. Its direct children must keep their
   intrinsic height; otherwise a populated weekly grid makes flexbox shrink the
   navigation and heading until their text overlaps and intercepts the Ocean
   Floor link. The explicit stacking order also protects the tabs while an
   older cached shell is being replaced. */
.surface-watch-view>*{flex-shrink:0}
.surface-watch-view>.planet-earth-tabs-surface{position:relative;z-index:30;isolation:isolate}
.surface-watch-view>.surface-watch-head{position:relative;z-index:1}
.surface-watch-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:1500px;width:100%;margin:0 auto 17px}
.surface-watch-kicker{font:700 9px var(--mono);letter-spacing:.2em;color:var(--cyan,#3fd8e8)}
.surface-mobile-about,.surface-card-toggle{display:none}
.surface-watch-head h2{font-size:32px;margin:5px 0;color:var(--ink,#e8edf6)}
.surface-watch-head p{max-width:820px;margin:0;color:var(--dim,#9aa7bd);font-size:12px;line-height:1.65}
.surface-week-form{min-width:250px;border:1px solid var(--line,#26304a);background:var(--panel,#0d1526);border-radius:10px;padding:11px}
.surface-week-form label{display:block;font:700 9px var(--mono);letter-spacing:.12em;color:var(--dim,#9aa7bd);margin-bottom:6px}
.surface-week-form div{display:flex;gap:6px}.surface-week-form input,.surface-week-form button,.surface-track-tabs button{background:#091221;color:var(--ink,#e8edf6);border:1px solid var(--line,#26304a);border-radius:6px;padding:8px 10px;font:600 10px var(--mono)}
.surface-week-form button,.surface-track-tabs button{cursor:pointer}.surface-week-form button:hover,.surface-track-tabs button:hover,.surface-track-tabs button.active{border-color:var(--cyan,#3fd8e8);color:var(--cyan,#3fd8e8)}
.surface-track-tabs{display:flex;gap:7px;flex-wrap:wrap;max-width:1500px;width:100%;margin:0 auto 10px}
.surface-watch-status{max-width:1500px;width:100%;box-sizing:border-box;margin:0 auto 13px;border:1px solid var(--line,#26304a);border-left:3px solid var(--gold,#f5b942);border-radius:7px;padding:9px 12px;font:700 10px var(--mono);color:var(--dim,#9aa7bd)}
.surface-watch-status.observed{border-left-color:var(--green,#3ddc97)}.surface-watch-status.unknown{border-left-color:var(--orange,#ff9f4a)}
.surface-watch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(410px,1fr));gap:12px;max-width:1500px;width:100%;margin:0 auto}
.surface-track-card{border:1px solid var(--line,#26304a);background:rgba(13,21,38,.92);border-radius:11px;padding:13px;min-width:0}
.surface-track-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.surface-track-card>header span{font:700 8px var(--mono);letter-spacing:.12em;color:var(--cyan,#3fd8e8)}.surface-track-card h3{margin:3px 0 0;font-size:17px}
.surface-state{font:700 9px var(--mono);border:1px solid var(--line,#26304a);border-radius:12px;padding:4px 8px;color:var(--gold,#f5b942)}.surface-track-card.observed .surface-state{color:var(--green,#3ddc97)}
.surface-rule{font-size:10px;line-height:1.5;color:var(--dim,#9aa7bd);min-height:30px}
.surface-records{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px}
.surface-record{border:1px solid rgba(38,48,74,.9);border-top:2px solid var(--green,#3ddc97);border-radius:8px;padding:11px;background:#09111f}.surface-record.unknown{border-top-color:var(--orange,#ff9f4a)}
.surface-record-title{display:flex;justify-content:space-between;gap:8px;font-size:10px}.surface-record-title span{font:700 8px var(--mono);color:var(--violet,#9c7cff)}
.surface-record h4{font:600 10px var(--mono);color:var(--dim,#9aa7bd);margin:10px 0 3px}.surface-record>strong{display:block;font:750 20px var(--mono);color:var(--ink,#e8edf6)}.surface-record.unknown>strong{color:var(--orange,#ff9f4a)}
.surface-comparisons{display:flex;flex-direction:column;gap:2px;margin:8px 0;font:600 9px var(--mono);color:var(--dim,#9aa7bd)}
.surface-climatology{font:600 9px var(--mono);color:var(--cyan,#3fd8e8);margin:6px 0}
.surface-record dl{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.surface-record dl div{border-top:1px solid var(--line,#26304a);padding-top:6px}.surface-record dt{font:700 8px var(--mono);color:var(--faint,#647089);text-transform:uppercase}.surface-record dd{margin:2px 0 0;font-size:9px;overflow-wrap:anywhere}.surface-record p{font-size:9px;line-height:1.5;color:var(--dim,#9aa7bd)}.surface-record a{font:600 9px var(--mono);color:var(--cyan,#3fd8e8)}
.surface-latest{border-left:2px solid var(--gold,#f5b942);padding-left:7px}.surface-empty{border:1px dashed var(--line,#26304a);padding:22px;color:var(--dim,#9aa7bd);border-radius:8px}
.surface-watch-honesty{max-width:1500px;width:100%;box-sizing:border-box;margin:14px auto 0;border:1px solid rgba(245,185,66,.35);border-radius:9px;padding:13px;color:var(--dim,#9aa7bd);font-size:10px;line-height:1.55}.surface-watch-honesty>div{display:flex;gap:14px}.surface-watch-honesty b{color:var(--gold,#f5b942);white-space:nowrap}.surface-watch-honesty ul{display:flex;gap:6px 24px;flex-wrap:wrap;margin:9px 0 0;padding-left:18px}
@media(max-width:700px){.surface-watch-view{padding:10px}.surface-watch-head{align-items:stretch;flex-direction:column;flex-wrap:nowrap;gap:10px;margin-bottom:10px}.surface-watch-head h2{font-size:24px}.surface-watch-head>div>p{display:none}.surface-mobile-about{display:block;margin-top:7px;color:var(--dim,#9aa7bd);font-size:9px}.surface-mobile-about summary{width:max-content;color:var(--cyan,#3fd8e8);cursor:pointer;font:700 9px var(--mono)}.surface-mobile-about p{margin-top:7px!important;font-size:9px!important;line-height:1.5!important}.surface-week-form{min-width:0;margin-left:0;width:100%;max-width:none;box-sizing:border-box}.surface-week-form div{display:grid;grid-template-columns:minmax(0,1fr) auto}.surface-week-form input{min-width:0;width:100%}.surface-week-form button{min-height:44px}.surface-track-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}.surface-track-tabs button{flex:0 0 auto;min-height:44px}.surface-watch-grid{grid-template-columns:1fr}.surface-track-card{padding:10px}.surface-track-card>header{align-items:center}.surface-card-toggle{display:block;margin-left:auto;min-height:44px;padding:6px 8px;border:1px solid var(--line,#26304a);border-radius:6px;background:#091221;color:var(--cyan,#3fd8e8);font:700 8px var(--mono)}.surface-track-card>header .surface-state{margin-left:auto}.surface-track-body{display:none}.surface-track-card.mobile-open .surface-track-body{display:block}.surface-records{grid-template-columns:1fr}.surface-watch-honesty>div{display:block}.surface-watch-honesty b{display:block;margin-bottom:4px}}

/* Public Affairs: calm editorial surface inside the operations interface. */
.public-affairs-view{flex-direction:column;overflow:auto;padding:22px;gap:13px}
.pa-hub-head,.pa-hub-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.pa-hub-head h1,.pa-hub-section-head h2{margin:5px 0 4px;font-size:clamp(19px,2.2vw,29px)}
.pa-hub-head p,.pa-hub-section-head p{margin:0;color:var(--dim);font-size:11.5px;line-height:1.6;max-width:780px}
.pa-hub-scope{color:var(--cyan)}
.pa-hub-tabs{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:8px;max-width:1180px;flex:0 0 auto}
.pa-hub-tabs button{min-width:0;min-height:58px;display:grid;align-content:center;gap:4px;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--dim);cursor:pointer}
.pa-hub-tabs button b{color:var(--ink);font-size:11.5px}.pa-hub-tabs button span{font:600 9px/1.4 var(--mono);color:var(--faint)}
.pa-hub-tabs button[aria-selected="true"]{border-color:var(--gold);background:linear-gradient(145deg,rgba(245,185,66,.11),rgba(63,216,232,.035));box-shadow:inset 0 0 0 1px rgba(245,185,66,.08)}
.pa-hub-tabs button[aria-selected="true"] b{color:var(--gold)}
.pa-hub-tabs button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.pa-hub-panel{display:flex;flex-direction:column;gap:13px;min-width:0}
.pa-hub-panel[hidden]{display:none}
.pa-hub-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pa-hub-controls span{margin-left:auto;color:var(--faint);font:600 10px var(--mono)}
.pa-hub-rights{display:flex;gap:8px 16px;flex-wrap:wrap;color:var(--dim);font-size:10px;line-height:1.5}
.pa-hub-rights span{max-width:760px}.pa-hub-rights b{color:var(--faint);font:700 9px var(--mono);letter-spacing:.04em;text-transform:uppercase}
.pa-record-legend{display:flex;gap:6px;flex-wrap:wrap}
.pa-record-legend span,.pa-record-state{border:1px solid currentColor;border-radius:999px;padding:4px 8px;font:800 9px/1.3 var(--mono);letter-spacing:.05em}
.pa-record-legend [data-pa-state="SHORTAGE"],.pa-record-state[data-pa-state="SHORTAGE"]{color:var(--red)}
.pa-record-legend [data-pa-state="LIMITED"],.pa-record-state[data-pa-state="LIMITED"]{color:var(--orange)}
.pa-record-legend [data-pa-state="AVAILABLE"],.pa-record-state[data-pa-state="AVAILABLE"]{color:var(--green)}
.pa-record-legend [data-pa-state="UNKNOWN"],.pa-record-state[data-pa-state="UNKNOWN"]{color:var(--dim)}
.pa-record-legend [data-pa-record="RASFF"],.pa-record-state[data-pa-record="RASFF"]{color:var(--gold)}
.pa-record-legend [data-pa-record="FDA"],.pa-record-state[data-pa-record="FDA"]{color:var(--cyan)}
.pa-record-grid,.pa-alert-catalogue{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:10px;min-width:0}
.pa-record-card,.pa-alert-source{min-width:0;border:1px solid var(--line);border-radius:11px;background:linear-gradient(145deg,var(--panel),var(--panel2));padding:13px;color:var(--ink);overflow-wrap:anywhere}
.pa-record-card{display:grid;grid-template-rows:auto auto 1fr auto;gap:9px}
.pa-record-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;flex-wrap:wrap}
.pa-record-card h3{margin:0;font-size:13px;line-height:1.35}.pa-record-card p{margin:0;color:var(--dim);font-size:10.5px;line-height:1.55}
.pa-record-meta{display:grid;grid-template-columns:minmax(88px,.65fr) minmax(0,1.4fr);gap:5px 9px;margin:0;font-size:10px;line-height:1.45}
.pa-record-meta dt{color:var(--faint);font:700 9px var(--mono);text-transform:uppercase;letter-spacing:.04em}.pa-record-meta dd{margin:0;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.pa-record-links{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding-top:2px}.pa-record-links a{color:var(--cyan);font:700 9px var(--mono)}.pa-record-links span{color:var(--faint);font:600 9px var(--mono)}
.pa-record-freshness{color:var(--faint);font:700 8.5px var(--mono);letter-spacing:.04em}.pa-record-freshness[data-freshness="STALE"]{color:var(--red)}.pa-record-freshness[data-freshness="CURRENT"]{color:var(--green)}
.pa-alert-source{display:grid;gap:6px;text-decoration:none}.pa-alert-source:hover{border-color:var(--cyan)}.pa-alert-source:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.pa-alert-source b{font-size:12px}.pa-alert-source span{color:var(--dim);font-size:10.5px;line-height:1.5}.pa-alert-source em{color:var(--orange);font:700 8.5px var(--mono);font-style:normal}
.pa-catalogue-status{color:var(--orange)}.pa-catalogue-note{margin:0;color:var(--faint);font-size:10px;line-height:1.55}
.pa-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.pa-head h2{margin:5px 0 4px;font-size:clamp(18px,2vw,27px)}
.pa-head p{margin:0;color:var(--dim);font-size:11.5px;line-height:1.6;max-width:760px}
.pa-kicker,.pa-panel-head span{font:700 9px var(--mono);letter-spacing:.13em;color:var(--gold);text-transform:uppercase}
.pa-status{font:700 10px var(--mono);letter-spacing:.08em;border:1px solid var(--line);border-radius:7px;padding:6px 9px;color:var(--dim)}
.pa-truth{border-left:3px solid var(--cyan);background:rgba(63,216,232,.06);padding:10px 12px;border-radius:0 8px 8px 0;color:var(--ink);font-size:11px;line-height:1.55}
.pa-attribution{border:1px solid var(--line);border-radius:8px;padding:8px 11px;color:var(--dim);font-size:10.5px;line-height:1.55}.pa-attribution a{color:var(--cyan)}
.pa-view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,320px));gap:8px}
.pa-view-tabs button{display:grid;gap:3px;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--dim);cursor:pointer}
.pa-view-tabs button b{color:var(--ink);font-size:12px}.pa-view-tabs button span{font:600 10px/1.4 var(--mono);color:var(--faint)}
.pa-view-tabs button[aria-selected="true"]{border-color:var(--gold);background:rgba(245,185,66,.08)}
.pa-view-tabs button[aria-selected="true"] b{color:var(--gold)}
.pa-view-tabs button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.pa-controls{display:flex;align-items:end;gap:9px;flex-wrap:wrap}
.pa-controls label{display:grid;gap:4px;font:700 10px var(--mono);letter-spacing:.08em;color:var(--faint)}
.pa-controls select{min-width:190px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--ink)}
.pa-controls select:disabled{opacity:.55;cursor:not-allowed}
.pa-control-note{max-width:230px;color:var(--faint);font:500 9px/1.4 var(--sans);letter-spacing:0;text-transform:none}
#pa-updated{margin-left:auto;color:var(--faint);font:600 10px var(--mono)}
.pa-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:12px}
.pa-grid-bottom{grid-template-columns:1fr 1fr}
.pa-panel{border:1px solid var(--line);border-radius:11px;background:linear-gradient(145deg,var(--panel),var(--panel2));padding:14px;min-width:0}
.pa-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}
.pa-panel-head h3{margin:3px 0 0;font-size:13px}
.pa-panel-head>b{font:700 8px var(--mono);color:var(--green);border:1px solid var(--line);padding:3px 6px;border-radius:5px}
.pa-chart{position:relative;min-height:245px;overflow:visible}
.pa-chart-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;padding-bottom:2px}
.pa-chart-scroll:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px;border-radius:6px}
.pa-chart-scroll-inner{width:767px;margin-inline:auto}
.pa-chart-plot{display:grid;grid-template-columns:42px 720px;width:767px;height:210px;gap:5px}
.pa-chart-plot svg{display:block;width:720px;height:210px;overflow:visible}
.pa-y-scale{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;color:var(--faint);font:600 10px var(--mono);padding-block:1px}
.pa-x-scale{display:flex;justify-content:space-between;gap:8px;width:720px;margin:5px 0 0 47px;color:var(--faint);font:600 10px var(--mono)}
.pa-chart-legend{display:flex;gap:8px 12px;flex-wrap:wrap;margin:9px 0 0 47px;font:600 10px/1.4 var(--mono)}
.pa-gridline{stroke:rgba(128,151,185,.16);stroke-width:1}
.pa-axis-label{fill:var(--faint);font:8px var(--mono)}
.pa-line{fill:none;stroke:var(--cyan);stroke-width:2.2;vector-effect:non-scaling-stroke}
.pa-area{fill:url(#pa-gradient)}
.pa-empty{display:grid;place-items:center;min-height:190px;color:var(--dim);font:600 10px var(--mono);text-align:center;padding:18px}
.pa-detection-summary{display:grid;gap:10px;min-height:220px}
.pa-detection-state{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-left:3px solid var(--faint);border-radius:9px;background:rgba(255,255,255,.018)}
.pa-detection-state[data-state="DETECTED"]{border-left-color:var(--red);background:rgba(255,93,115,.045)}
.pa-detection-state[data-state="NO_DETECTION"]{border-left-color:var(--green);background:rgba(61,220,151,.035)}
.pa-detection-state[data-state="NO_DATA"]{border-left-color:var(--orange);background:rgba(255,159,74,.035)}
.pa-detection-state h4{margin:0 0 4px;font-size:13px;color:var(--ink)}
.pa-detection-state p{margin:0;color:var(--dim);font-size:10.5px;line-height:1.55}
.pa-detection-chip{flex:0 1 auto;max-width:100%;border:1px solid currentColor;border-radius:999px;padding:4px 8px;font:800 10px/1.3 var(--mono);letter-spacing:.04em;white-space:normal;text-align:center}
[data-state="DETECTED"] .pa-detection-chip{color:var(--red)}[data-state="NO_DETECTION"] .pa-detection-chip{color:var(--green)}[data-state="NO_DATA"] .pa-detection-chip{color:var(--orange)}
.pa-detection-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.pa-detection-metric{border:1px solid var(--line);border-radius:8px;padding:9px;background:rgba(255,255,255,.012)}
.pa-detection-metric b{display:block;color:var(--ink);font:800 16px var(--mono)}.pa-detection-metric span{display:block;margin-top:3px;color:var(--faint);font:600 9.5px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.04em}
.pa-detection-history{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.pa-detection-history li{display:grid;grid-template-columns:minmax(84px,.7fr) minmax(105px,1fr) minmax(0,1.6fr);align-items:center;gap:8px;padding:7px 9px;border-top:1px solid rgba(128,151,185,.14);color:var(--dim);font:600 9.5px/1.4 var(--mono)}
.pa-detection-history time{color:var(--ink)}.pa-detection-history strong{font-size:9px}.pa-detection-history [data-state="DETECTED"]{color:var(--red)}.pa-detection-history [data-state="NO_DETECTION"]{color:var(--green)}.pa-detection-history [data-state="NO_DATA"]{color:var(--orange)}
.pa-mpox-tests{display:grid;gap:7px}.pa-mpox-test{padding:10px}
.pa-jurisdictions{border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.012)}
.pa-jurisdictions summary{cursor:pointer;padding:9px 10px;color:var(--ink);font:700 9.5px var(--mono)}
.pa-jurisdictions summary:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:7px}
.pa-detection-table-wrap{overflow:auto;max-height:300px;border-top:1px solid var(--line)}
.pa-detection-table-wrap:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}
.pa-detection-table-wrap table{width:100%;min-width:700px;border-collapse:collapse;font:600 10px/1.4 var(--mono)}
.pa-detection-table-wrap th,.pa-detection-table-wrap td{padding:7px 8px;border-bottom:1px solid rgba(128,151,185,.12);text-align:right;white-space:nowrap}
.pa-detection-table-wrap thead th{position:sticky;top:0;background:var(--panel2);color:var(--faint);z-index:1}
.pa-detection-table-wrap tbody th{text-align:left;color:var(--ink)}
.pa-detection-table-wrap [data-state="DETECTED"]{color:var(--red)}.pa-detection-table-wrap [data-state="NO_DETECTION"]{color:var(--green)}.pa-detection-table-wrap [data-state="NO_DATA"]{color:var(--orange)}
.pa-detection-caveat{border-left:2px solid var(--gold);padding-left:9px;color:var(--faint);font-size:9.5px;line-height:1.55}
.pa-note{color:var(--faint);font-size:9.5px;line-height:1.55;margin:8px 0 0}
.pa-bars{display:grid;gap:8px}.pa-bar-row{display:grid;grid-template-columns:90px 1fr 28px;align-items:center;gap:8px;font:600 9px var(--mono)}
.pa-bar-track{height:7px;border-radius:9px;background:rgba(128,151,185,.12);overflow:hidden}.pa-bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--green))}
.pa-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;max-height:340px;overflow:auto}
.pa-link{display:block;border:1px solid var(--line);border-radius:8px;padding:8px;text-decoration:none;background:rgba(255,255,255,.015)}
.pa-link:hover{border-color:var(--cyan)}.pa-link b{display:block;color:var(--ink);font-size:10px}.pa-link span{color:var(--faint);font-size:10px}
.pa-guidance{margin:0;padding-left:18px;color:var(--dim);font-size:10.5px;line-height:1.65}.pa-guidance b{color:var(--ink)}
.pa-source-links{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.pa-source-links a{font:700 8.5px var(--mono);color:var(--cyan)}
@media(max-width:850px){.pa-grid,.pa-grid-bottom{grid-template-columns:1fr}.pa-hub-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.public-affairs-view{padding:14px 12px}.pa-hub-tabs{display:flex;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:2px 2px 5px}.pa-hub-tabs button{flex:0 0 min(78vw,245px);scroll-snap-align:start;min-height:62px}.pa-view-tabs{grid-template-columns:1fr 1fr}.pa-view-tabs button{padding:9px}.pa-view-tabs button span{font-size:10px}.pa-controls>*{width:100%}.pa-controls select{width:100%}.pa-control-note{max-width:none}#pa-updated{margin-left:0}.pa-hub-controls>*{width:100%}.pa-hub-controls span{margin-left:0}.pa-record-grid,.pa-alert-catalogue{grid-template-columns:minmax(0,1fr)}.pa-record-meta{grid-template-columns:1fr}.pa-record-meta dd{padding-bottom:3px}.pa-chart{min-height:220px}.pa-chart-legend{margin-left:0}.pa-detection-state{display:grid}.pa-detection-chip{justify-self:start}.pa-detection-metrics{grid-template-columns:1fr 1fr}.pa-detection-history li{grid-template-columns:1fr}.pa-kicker,.pa-status,.pa-controls label,.pa-panel-head span,.pa-panel-head>b,.pa-source-links a{font-size:10.5px}.pa-note,.pa-detection-caveat{font-size:11px}.pa-axis-label{font-size:9px}}

/* ── narrow Fold cover screens ── */
@media(max-width:380px){
  .logo b{font-size:15.5px;letter-spacing:1.5px}
  .logo .eye{width:22px;height:22px}
  .nav-btn{padding-inline:10px;font-size:10.5px}
  .search input{padding-left:30px;padding-right:62px}
  .search #ask{padding-inline:7px}
  .pa-view-tabs{grid-template-columns:1fr}
}

/* ── phones and Fold in landscape ── */
@media(max-width:900px) and (max-height:520px) and (orientation:landscape){
  header{flex-wrap:nowrap;padding-top:6px;padding-bottom:6px}
  .search{order:initial;flex:1 1 auto;max-width:none}
  .hstats{display:none}
  nav{padding-block:4px}
  .nav-btn{min-height:34px}
  #view-map>.map-wrap,
  #view-atlas>.map-wrap{height:calc(100svh - 126px);min-height:250px}
  #ticker,#pubfoot{display:none}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important
  }
}

/* Source Transparency: compact public summary first, technical registry only
   after an explicit request. Cards remain readable on narrow screens. */
.source-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;max-width:1000px}.source-metric{padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.source-metric b{display:block;color:var(--ink);font:700 20px var(--mono)}.source-metric span{display:block;margin-top:3px;color:var(--dim);font-size:10.5px}.source-update{margin:11px 0 16px;color:var(--faint);font:10px/1.55 var(--mono)}.source-registry{max-width:1100px;border:1px solid var(--line);border-radius:11px;background:var(--panel);overflow:hidden}.source-registry>summary{padding:12px 14px;cursor:pointer;color:var(--gold);font:700 11px var(--mono);list-style:none}.source-filters{display:flex;flex-wrap:wrap;gap:8px;padding:11px 13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.source-filters input,.source-filters select{min-height:36px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--ink);font-size:11px}.source-filters input{flex:1;min-width:220px}.source-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px;padding:12px}.source-card{min-width:0;padding:11px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}.source-card h3{margin:0 0 2px;font-size:12px}.source-card p{margin:5px 0 0;color:var(--faint);font-size:9.5px;line-height:1.5;overflow-wrap:anywhere}.source-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.source-empty{padding:15px;color:var(--orange);font:11px var(--mono)}

/* V1.10.1 water report disclosure — secondary by design */
summary::-webkit-details-marker{display:none}
summary::marker{content:""}
details[open] summary{border-bottom:1px solid rgba(28,42,68,.5)}

/* Skip control on the intro veil: the map is one click away, always. */
#map-intro{cursor:pointer}
/* Affordance: pointer only over things that actually respond to a click.
   Declared here so it wins over the base #map{cursor:crosshair}. */
#map.clickable{cursor:pointer}
#map-intro-skip{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
  background:rgba(12,18,29,.9);border:1px solid #2b3a4a;color:var(--dim);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;padding:7px 14px;
  border-radius:16px;cursor:pointer;transition:color .15s,border-color .15s}
#map-intro-skip:hover{color:var(--gold);border-color:var(--gold)}
#map-intro-skip:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  /* Hold still for people who asked their system for that. */
  #map-intro{display:none !important}
  #ticker-inner,.pulse,.mc-v{animation:none !important;transition:none !important}
}

/* v1.11.2 — typography split: sentences read in the sans face, numbers, codes,
   IDs and timestamps stay monospace so columns still align digit for digit.
   --faint was lifted from #69809f (4.47:1 on panels — below AA) to #7d93b0. */
.num,.mono{font-family:var(--mono)}

/* V1.12 — the demo can never be mistaken for the product: a fixed, repeating
   watermark sits behind every demo view. Absent entirely in production. */
#demo-watermark{position:fixed;inset:-50%;z-index:5;pointer-events:none;
  transform:rotate(-24deg);font:700 22px var(--mono);letter-spacing:3px;
  color:rgba(245,185,66,.055);line-height:88px;white-space:pre-wrap;
  word-break:break-all;user-select:none}
.arch-status{display:block;font:600 9px var(--mono);letter-spacing:.8px;margin-top:4px;text-transform:uppercase}
.cap-chip{display:inline-block;margin:0 6px 6px 0;padding:5px 11px;border:1px solid var(--line);
  border-radius:14px;background:var(--panel);font-size:11px;color:var(--dim);font-family:var(--sans)}

/* ===== V1.15: text equivalent for the map canvases, and answer permalinks =====
   The maps were four <canvas> elements with no tabindex and no text anywhere in
   the app. A canvas is a picture of the data. These styles are for the data. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.canvas-fallback{margin:8px 0 0;font-family:var(--sans)}
.canvas-fallback .cf-empty{font-size:10px;color:var(--faint);margin:6px 2px}
.canvas-fallback summary{font:600 10px/1.6 var(--mono);letter-spacing:.06em;
  color:var(--dim);cursor:pointer;padding:6px 2px;list-style:none}
.canvas-fallback summary::-webkit-details-marker{display:none}
.canvas-fallback summary::before{content:"▸ ";color:var(--faint)}
.canvas-fallback details[open]>summary::before{content:"▾ "}
.canvas-fallback summary:hover{color:var(--cyan)}
.canvas-fallback table{width:100%;border-collapse:collapse;font-size:10.5px;
  max-height:340px;display:block;overflow:auto}
.canvas-fallback th,.canvas-fallback td{text-align:left;padding:3px 8px 3px 0;
  border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap}
.canvas-fallback thead th{color:var(--faint);font:600 9px/1.6 var(--mono);
  letter-spacing:.07em;text-transform:uppercase;position:sticky;top:0;
  background:var(--bg)}
.canvas-fallback tbody th{font-weight:600;color:var(--fg)}
.canvas-fallback td{color:var(--dim)}

.perma{margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.07);
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--sans)}
.perma-link,.perma-public-link{font-size:10.5px;color:var(--cyan);text-decoration:none}
.perma-link:hover{text-decoration:underline}
.perma-share,.perma-unshare,.perma-contribute,.perma-delete{font:600 9.5px var(--mono);letter-spacing:.05em;cursor:pointer;
  color:var(--dim);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:3px;padding:3px 7px}
.perma-share:hover{color:var(--fg);border-color:var(--cyan)}
.perma-unshare:hover{color:var(--gold);border-color:var(--gold)}
.perma-contribute:hover{color:var(--fg);border-color:var(--green)}
.perma-delete:hover{color:var(--red);border-color:var(--red)}
.perma-note{font-size:9.5px;color:var(--faint)}
.perma-quality-note{flex-basis:100%;line-height:1.45}

/* A canvas that carries meaning is now in the tab order; make that visible. */
canvas:focus-visible,.perma-share:focus-visible,.perma-unshare:focus-visible,.perma-contribute:focus-visible,.perma-delete:focus-visible,.canvas-fallback summary:focus-visible{
  outline:2px solid var(--cyan);outline-offset:2px}

/* ===== Briefing mode (v1.29.0) ===== */
#briefing{position:fixed;inset:0;z-index:200;pointer-events:none}
#briefing[hidden]{display:none}
#brf-stage{position:absolute;inset:0;pointer-events:none}
#brf-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:14px;
  padding:14px 22px;background:rgba(7,11,20,.94);border-top:1px solid var(--gold,#f5b942);
  pointer-events:auto;flex-wrap:wrap}
#brf-chip{font:700 11px var(--mono);letter-spacing:.14em;color:#070b14;background:var(--gold,#f5b942);
  border-radius:4px;padding:3px 9px;white-space:nowrap}
#brf-caption{flex:1;min-width:240px;font-size:15px;line-height:1.5;color:var(--ink,#e8edf6)}
#brf-controls button{background:var(--panel2,#101726);color:var(--ink,#e8edf6);
  border:1px solid var(--line,#26304a);border-radius:6px;padding:6px 11px;font-size:13px;cursor:pointer}
#brf-controls button:focus-visible{outline:2px solid var(--gold,#f5b942);outline-offset:2px}
#brf-progress{font:600 10px var(--mono);color:var(--dim,#7a889c);white-space:nowrap}
.brf-card{position:absolute;top:8%;left:50%;transform:translateX(-50%);max-width:680px;width:88%;
  background:rgba(10,15,26,.96);border:1px solid var(--line,#26304a);border-radius:12px;
  padding:22px 26px;pointer-events:auto;box-shadow:0 12px 48px rgba(0,0,0,.55)}
.brf-card h3{margin:0 0 8px;font-size:18px}
.brf-card p{margin:0;font-size:13.5px;line-height:1.65;color:var(--dim,#9aa7bd)}
.brf-sim{position:absolute;top:14px;left:50%;transform:translateX(-50%);
  font:700 13px var(--mono);letter-spacing:.18em;color:#070b14;background:var(--orange,#ff9f43);
  border-radius:6px;padding:6px 16px;pointer-events:none;z-index:5}
.brf-sim-frame{outline:3px dashed var(--orange,#ff9f43);outline-offset:-3px}
@media (prefers-reduced-motion:reduce){
  #briefing *{animation:none !important;transition:none !important}
}

/* v1.29.1 briefing: visible time bar, seekable sections, motion between beats */
#brf-bar{flex-wrap:wrap}
#brf-timeline{width:100%;display:flex;gap:4px;pointer-events:auto;margin-bottom:2px}
.brf-seg{position:relative;height:7px;flex-basis:0;border:0;padding:0;cursor:pointer;overflow:hidden;
  background:rgba(232,237,246,.16);border-radius:4px}
.brf-seg:hover{background:rgba(232,237,246,.32)}
.brf-seg.sim{box-shadow:inset 0 0 0 1px var(--orange,#ff9f43)}
.brf-seg i{display:block;height:100%;width:0;background:var(--gold,#f5b942);transition:width .18s linear}
.brf-seg.sim i{background:var(--orange,#ff9f43)}
.brf-seg:focus-visible{outline:2px solid var(--gold,#f5b942);outline-offset:2px}
#brf-controls button{font-size:16px;padding:7px 13px}
#brf-voicename{font:600 10px var(--mono);color:var(--gold,#f5b942);white-space:nowrap;
  opacity:0;transition:opacity .3s}
#brf-voicename.show{opacity:1}
#brf-chip::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;
  background:#a11d1d;margin-right:7px;vertical-align:1px;animation:brfBlink 1.8s infinite}
@keyframes brfBlink{50%{opacity:.25}}
.brf-card{animation:brfCardIn .6s ease-out both}
@keyframes brfCardIn{from{opacity:0;transform:translateX(-50%) translateY(16px)}
                     to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* v1.29.2 briefing: controls live in their own box, bottom-right, big enough
   to hit from across a conference table */
#brf-controls{position:absolute;right:16px;bottom:118px;display:flex;gap:10px;pointer-events:auto;
  background:rgba(11,18,32,.95);border:1px solid rgba(245,185,66,.5);border-radius:12px;
  padding:12px 14px;box-shadow:0 8px 30px rgba(0,0,0,.55)}
#brf-controls button{font-size:22px;line-height:1;padding:12px 18px;border-radius:9px;
  background:var(--panel2,#101726);color:var(--ink,#e8edf6);border:1px solid var(--line,#26304a);cursor:pointer}
#brf-controls button:hover{border-color:var(--gold,#f5b942)}
#brf-exit{font-size:14px !important;font-weight:700;letter-spacing:.06em}
@media (max-width:820px){#brf-controls{right:8px;bottom:132px;padding:8px 10px;gap:6px}
  #brf-controls button{font-size:18px;padding:9px 13px}}

/* v1.30.0 ops-room dressing + wall-mode type scale */
.brf-open{position:absolute;top:14px;left:14px;font:700 10px var(--mono);letter-spacing:.12em;
  color:var(--green,#3fd8a0);border:1px solid var(--green,#3fd8a0);border-radius:5px;
  padding:4px 10px;background:rgba(7,11,20,.85)}
body.brf-on #brf-caption{font-size:19px;line-height:1.55}
body.brf-on .brf-card{max-width:780px}
body.brf-on .brf-card h3{font-size:26px}
body.brf-on .brf-card p{font-size:16.5px;line-height:1.7}
body.brf-on .brf-sim{font-size:14px;padding:8px 20px}
body.brf-on #brf-chip{font-size:13px}
body.brf-on .brf-open{font-size:12px;padding:5px 12px}

/* v1.31.0 showmanship: cold-open titles, presenter ping, end slate */
#brf-titles{position:absolute;inset:0;z-index:30;background:#050810;display:flex;flex-direction:column;
  justify-content:center;align-items:flex-start;padding-left:12vw;gap:14px;pointer-events:auto;
  font-family:var(--mono);letter-spacing:.14em;transition:opacity .6s}
#brf-titles.out{opacity:0}
#brf-titles div{color:var(--gold,#f5b942);font-size:20px;font-weight:700;min-height:26px;white-space:pre}
#brf-titles div:first-child{font-size:44px;color:var(--ink,#e8edf6)}
#brf-titles div:last-child{color:var(--green,#3fd8a0)}
@media(max-width:600px){
  #brf-titles{padding:24px;gap:10px}
  #brf-titles div{max-width:100%;min-height:18px;font-size:12px;line-height:1.45;
    white-space:normal;overflow-wrap:anywhere}
  #brf-titles div:first-child{font-size:32px;line-height:1.15}
}
.brf-ping{position:fixed;width:16px;height:16px;margin:-8px 0 0 -8px;border:2.5px solid var(--gold,#f5b942);
  border-radius:50%;pointer-events:none;z-index:40;animation:brfPing .9s ease-out forwards}
@keyframes brfPing{to{transform:scale(6.5);opacity:0}}
#brf-slate{position:absolute;inset:0;background:#050810;display:flex;flex-direction:column;
  justify-content:center;align-items:center;gap:18px;animation:brfSlateIn 1.1s ease-out both}
@keyframes brfSlateIn{from{opacity:0}to{opacity:1}}
.slate-eye{width:74px;height:74px;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,#070b14 0 34%,transparent 35%),
  conic-gradient(from 0deg,#f5b942,#7a4de8,#3fd8e8,#f5b942)}
.slate-name{font-family:var(--mono);font-size:46px;font-weight:800;letter-spacing:.1em;color:var(--ink,#e8edf6)}
.slate-name span{color:var(--gold,#f5b942)}
.slate-line{font-size:16px;color:var(--dim,#9aa7bd);letter-spacing:.08em}
.slate-url{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--gold,#f5b942);
  border:1px solid rgba(245,185,66,.5);border-radius:8px;padding:8px 22px;margin-top:10px}

/* v1.32.0: lower-thirds, NEXT hint, telemetry rail, QR slate */
.brf-lower{position:absolute;left:20px;bottom:150px;font:700 15px var(--mono);letter-spacing:.12em;
  color:var(--ink,#e8edf6);background:rgba(11,18,32,.92);border-left:4px solid var(--gold,#f5b942);
  padding:10px 18px;border-radius:0 8px 8px 0;animation:brfLowerIn .5s ease-out both}
.brf-lower .brf-num{color:var(--gold,#f5b942)}
@keyframes brfLowerIn{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}
body.brf-on .brf-lower{font-size:18px}
#brf-next-hint{position:absolute;right:16px;bottom:190px;font:600 11px var(--mono);letter-spacing:.1em;
  color:var(--dim,#7a889c);background:rgba(7,11,20,.85);border:1px solid var(--line,#26304a);
  border-radius:6px;padding:5px 12px;animation:brfLowerIn .4s ease-out both}
#brf-rail{position:absolute;right:16px;top:64px;width:220px;pointer-events:none;
  font-family:var(--mono);background:rgba(7,11,20,.72);border:1px solid rgba(38,48,74,.8);
  border-radius:8px;padding:10px 12px}
#brf-rail .rail-h{font:700 9px var(--mono);letter-spacing:.14em;color:var(--cyan,#3fd8e8);margin-bottom:6px}
#brf-rail .rail-ln{font-size:11px;color:var(--gold,#f5b942);line-height:1.8;white-space:pre;
  animation:brfRailIn .35s ease-out both}
@keyframes brfRailIn{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
@media (max-width:900px){#brf-rail{display:none}}
#brf-qr{margin-top:14px;border-radius:8px}
.slate-scan{font:600 10px var(--mono);letter-spacing:.12em;color:var(--dim,#7a889c)}

/* Keep the transport below the captions on phones. The extra bar padding is
   deliberate: the fixed controls occupy that reserved strip. */
@media(max-width:600px){
  #brf-bar{gap:9px;padding:10px 14px calc(80px + env(safe-area-inset-bottom))}
  #brf-caption{flex-basis:100%;min-width:0}
  body.brf-on #brf-caption{font-size:16px;line-height:1.45}
  #brf-controls{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));justify-content:center}
  #brf-controls button{flex:1;min-width:0;padding:9px 8px}
  #brf-exit{font-size:12px !important;letter-spacing:.02em}
}

/* Planet Earth is one subject with three evidence rooms. Earth Orbit stays
   separate from the LIVE map because GP/TLE locations are propagated. */
.planet-earth-tabs{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));align-items:stretch;gap:6px;padding:0;border:0;background:none;overflow:visible}
.planet-earth-tabs-label{display:flex;align-items:center;padding:0 11px;border:1px solid rgba(63,216,232,.35);border-radius:9px;
  background:rgba(5,15,29,.72);color:var(--cyan)!important;font:700 8px/1.35 var(--mono)!important;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.planet-earth-tabs a{min-width:0;display:grid;gap:2px;padding:9px 11px;border:1px solid rgba(99,130,180,.32);
  border-radius:9px;background:rgba(5,15,29,.88);color:var(--dim);text-decoration:none;backdrop-filter:blur(10px)}
.planet-earth-tabs a:hover,.planet-earth-tabs a:focus-visible{border-color:var(--cyan);color:var(--ink);outline:none}
.planet-earth-tabs a[aria-current="page"]{border-color:var(--cyan);background:linear-gradient(135deg,rgba(63,216,232,.16),rgba(143,125,255,.10));box-shadow:0 0 20px rgba(63,216,232,.08)}
.planet-earth-tabs b{font-size:10px;color:var(--ink)}.planet-earth-tabs span{font:8px/1.35 var(--mono);color:var(--dim)}
.planet-earth-tabs-ocean{position:absolute;z-index:8;left:22px;top:18px;width:min(590px,calc(100% - 390px))}
.planet-earth-tabs-surface{max-width:1500px;width:100%;margin:0 auto 17px}
.planet-earth-tabs-ocean~.ocean-heading{top:82px}
.planet-earth-tabs a[data-earth-view="orbit"] b{color:var(--cyan)}
.orbit-modal[hidden]{display:none}.orbit-modal{position:fixed;inset:0;z-index:1000;padding:22px;
  display:grid;place-items:center;background:rgba(2,5,12,.88);backdrop-filter:blur(8px)}
.orbit-shell{width:min(1180px,96vw);height:min(760px,92vh);display:flex;flex-direction:column;overflow:hidden;
  border:1px solid rgba(63,216,232,.35);border-radius:16px;background:#050914;
  box-shadow:0 28px 100px rgba(0,0,0,.75),0 0 80px rgba(38,100,160,.12)}
.orbit-head{height:72px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 22px;
  border-bottom:1px solid rgba(99,130,180,.22);background:linear-gradient(90deg,rgba(63,216,232,.06),transparent)}
.orbit-head h2{margin:2px 0 0;font-size:20px;letter-spacing:.03em}.orbit-kicker{font:700 9px var(--mono);color:var(--cyan);letter-spacing:.18em}
.orbit-close{width:42px;height:42px;border:1px solid rgba(232,237,246,.24);border-radius:50%;cursor:pointer;
  color:var(--ink);background:rgba(255,255,255,.04);font:300 29px/35px sans-serif}.orbit-close:hover{border-color:var(--red);color:var(--red)}
.orbit-body{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 310px}
.orbit-stage{position:relative;min-width:0;overflow:hidden;touch-action:none;background:
  radial-gradient(ellipse at 45% 46%,rgba(25,73,110,.18),transparent 42%),
  radial-gradient(circle at 18% 23%,rgba(255,255,255,.5) 0 1px,transparent 1.5px),
  radial-gradient(circle at 78% 66%,rgba(255,255,255,.35) 0 1px,transparent 1.5px),#02050c;background-size:auto,137px 137px,191px 191px}
#orbit-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}#orbit-canvas.dragging{cursor:grabbing}
.orbit-help{position:absolute;left:18px;bottom:16px;font:9px var(--mono);letter-spacing:.12em;color:rgba(205,220,240,.55);pointer-events:none}
.orbit-zoom{position:absolute;right:16px;top:16px;display:flex;border:1px solid rgba(99,130,180,.35);border-radius:8px;overflow:hidden}
.orbit-zoom button{border:0;border-right:1px solid rgba(99,130,180,.28);padding:8px 12px;cursor:pointer;background:rgba(5,9,20,.82);color:var(--dim);font:700 11px var(--mono)}
.orbit-zoom button:last-child{border-right:0}.orbit-zoom button.active{background:rgba(63,216,232,.18);color:var(--cyan)}
.orbit-status{position:absolute;left:18px;top:16px;max-width:55%;padding:7px 10px;border-radius:6px;
  background:rgba(5,9,20,.78);color:var(--dim);font:9px/1.45 var(--mono);letter-spacing:.06em}
.orbit-specs{overflow:auto;padding:20px;border-left:1px solid rgba(99,130,180,.22);background:rgba(9,15,28,.88)}
.orbit-spec-empty{margin-top:35%;text-align:center;color:var(--dim)}.orbit-spec-empty span{font:700 10px var(--mono);letter-spacing:.14em;color:var(--cyan)}
.orbit-spec-empty p{font-size:11px;line-height:1.6}.orbit-object-tag{font:700 9px var(--mono);letter-spacing:.12em;color:var(--cyan)}
.orbit-spec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.orbit-spec-head>div{min-width:0}
.orbit-spec-close{flex:none;width:29px;height:29px;border:1px solid rgba(232,237,246,.22);border-radius:50%;cursor:pointer;background:rgba(255,255,255,.035);color:var(--dim);font:20px/24px sans-serif}
.orbit-spec-close:hover,.orbit-spec-close:focus-visible{border-color:var(--red);color:var(--red);outline:none}
.orbit-specs h3{font-size:20px;line-height:1.2;margin:7px 0 4px}.orbit-id{font:10px var(--mono);color:var(--dim);margin-bottom:18px}
.orbit-quality{display:inline-block;margin-bottom:15px;padding:4px 7px;border-radius:4px;font:700 8px var(--mono);letter-spacing:.08em;color:#071018;background:var(--cyan)}
.orbit-quality.approx{background:var(--gold)}.orbit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.orbit-metric{padding:10px;border:1px solid rgba(99,130,180,.18);border-radius:7px;background:rgba(255,255,255,.025)}
.orbit-metric span{display:block;font:8px var(--mono);letter-spacing:.08em;color:var(--dim);margin-bottom:4px}.orbit-metric b{font:600 13px var(--mono)}
.orbit-note{margin-top:15px;padding-top:13px;border-top:1px solid rgba(99,130,180,.18);font:10px/1.55 var(--mono);color:var(--dim)}
.orbit-iss{margin-top:16px;padding-top:14px;border-top:1px solid rgba(99,130,180,.22)}
.orbit-iss-kicker{font:700 8px var(--mono);letter-spacing:.12em;color:var(--gold)}
.orbit-iss-position{display:grid;gap:4px;margin:8px 0 12px;padding:9px;border:1px solid rgba(245,185,66,.22);border-radius:7px;background:rgba(245,185,66,.04)}
.orbit-iss-position b{font:700 13px var(--mono);color:var(--ink)}.orbit-iss-position span{font:8px/1.5 var(--mono);color:var(--dim)}
.orbit-iss-form{display:grid;gap:6px}.orbit-iss-form label{font:700 8px var(--mono);letter-spacing:.08em;color:var(--dim)}
.orbit-iss-form>div{display:grid;grid-template-columns:1fr 1fr auto;gap:4px}.orbit-iss-form input{min-width:0;padding:7px;border:1px solid rgba(99,130,180,.3);border-radius:5px;background:#050914;color:var(--ink);font:9px var(--mono)}
.orbit-iss-form button{padding:7px 9px;border:1px solid var(--cyan);border-radius:5px;background:rgba(63,216,232,.1);color:var(--cyan);font:700 9px var(--mono);cursor:pointer}
.orbit-iss-form output{display:grid;gap:5px;font:8px/1.45 var(--mono);color:var(--dim)}.orbit-iss-form output div{display:grid;gap:1px}.orbit-iss-form output b{color:var(--ink)}
.orbit-foot{min-height:38px;flex:none;display:flex;align-items:center;gap:18px;padding:0 18px;border-top:1px solid rgba(99,130,180,.22);font:8px var(--mono);letter-spacing:.07em;color:var(--dim)}
.orbit-foot span:last-child{margin-left:auto}.orb-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}.orb-dot.fresh{background:var(--cyan)}.orb-dot.approx{background:var(--gold)}
body.orbit-opened{overflow:hidden}
@media(max-width:760px){.orbit-modal{padding:0}.orbit-shell{width:100vw;height:100dvh;border-radius:0}.orbit-body{grid-template-columns:1fr;grid-template-rows:minmax(330px,58vh) 1fr}.orbit-specs{border-left:0;border-top:1px solid rgba(99,130,180,.22);padding:14px}.orbit-spec-empty{margin-top:18px}.orbit-foot{display:none}.orbit-help{display:none}}
@media(max-width:900px){.planet-earth-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.planet-earth-tabs-label{display:none}.planet-earth-tabs a span{display:none}.orbit-status{top:58px;max-width:calc(100% - 36px)}}
@media(max-width:600px){.planet-earth-tabs-ocean{left:12px;right:12px;top:12px;width:auto}.planet-earth-tabs-ocean~.ocean-heading{top:62px}}
