:root{
  --bg:#05080d;--panel:#0b1119;--line:#1a2532;--fg:#e8eef5;--muted:#7f8ea0;--gold:#f5b301;
  --bad:#ff4d4f;--warn:#f59e0b;--or:#38bdf8;--eq:#c084fc;--ok:#22c55e;
  --mono:ui-monospace,"SF Mono","Cascadia Mono",Consolas,monospace;--font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font-family:var(--font)}
a{color:inherit}
.gc{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:100vh;height:100dvh;min-height:560px;overflow:hidden} /* exactly one screen tall; side panels scroll inside */

.gc-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;padding:12px 20px 12px 18px;position:relative;background:radial-gradient(600px 160px at 0% 0%,rgba(245,179,1,.10),transparent 70%),linear-gradient(180deg,#0b121b,#060a10)}
.gc-top::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,rgba(245,179,1,.55),rgba(96,165,250,.35) 45%,rgba(96,165,250,.05))}
.gc-brand{display:flex;align-items:center;gap:10px;min-width:180px}
.gc-logo{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe58a,var(--gold) 45%,#7a5200 100%);box-shadow:0 0 18px rgba(245,179,1,.45)}
.gc-brand h1{margin:0;font-size:18px;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
.gc-brand small{color:var(--muted);font-size:11px;letter-spacing:.06em}
.gc-clocks{display:flex;gap:6px;flex:1;justify-content:center;flex-wrap:wrap}
.clk{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px 12px;text-align:center;min-width:86px}
.clk b{display:block;font-family:var(--mono);font-size:19px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.clk small{color:var(--muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.clk.main{border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}
.clk.main b{font-size:26px;color:var(--gold)}
.clk .night{color:#8aa4ff}
.gc-actions{display:flex;gap:6px}
.gc-btn{font:inherit;font-size:12px;color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer;text-decoration:none}
.gc-btn:hover{border-color:var(--muted)}

.gc-main{display:grid;grid-template-columns:minmax(0,1fr) 330px;min-height:0}
@media (max-width:1000px){.gc-main{grid-template-columns:1fr;grid-template-rows:62vh auto}.gc{height:auto;overflow:visible}}
.gc-world{position:relative;min-height:0}
#world{position:absolute;inset:0;background:#10202f}
.leaflet-container{background:#10202f;font-family:var(--font)}
.gc-sunbox{position:absolute;left:12px;top:12px;z-index:500;background:rgba(5,8,13,.78);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:11.5px;color:var(--muted);font-family:var(--mono);backdrop-filter:blur(4px)}
.gc-sunbox b{color:var(--gold);font-weight:500}
.gc-legend{position:absolute;left:12px;bottom:12px;z-index:500;display:flex;gap:12px;flex-wrap:wrap;background:rgba(5,8,13,.78);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:11px;color:var(--muted)}
.gc-legend span{display:inline-flex;gap:6px;align-items:center}
.gc-legend i{width:11px;height:11px;border-radius:2px;display:inline-block}
.lg-sev{background:var(--bad);border:1.5px solid #fff;border-radius:50%!important}
.lg-or{background:color-mix(in srgb,var(--or) 45%,transparent);border:1px solid var(--or)}
.lg-eq{border-radius:50%!important;border:2px solid var(--eq)}
.lg-night{background:linear-gradient(90deg,rgba(0,4,20,.15),rgba(0,4,20,.7))}
.sun-icon{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,#fff6c8,var(--gold) 55%,rgba(245,179,1,0) 72%);box-shadow:0 0 22px 8px rgba(245,179,1,.35)}
.eq-pulse{border-radius:50%;border:2px solid var(--eq);animation:eqp 1.8s ease-out infinite}
@keyframes eqp{0%{transform:scale(.4);opacity:1}100%{transform:scale(2.4);opacity:0}}
@media (prefers-reduced-motion:reduce){.eq-pulse{animation:none}.gc-tick-track{animation:none!important}}
.leaflet-popup-content{font-size:12.5px;line-height:1.4;margin:9px 11px}
.leaflet-popup-content h4{margin:0 0 3px;font-size:13px}
.leaflet-popup-content .m{color:#5d6b7a}

.gc-side{border-left:1px solid var(--line);display:flex;flex-direction:column;gap:10px;padding:10px;overflow:auto;min-height:0;background:var(--bg)}
.gc-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px}
.gc-grow{flex:1;min-height:200px;display:flex;flex-direction:column}
.gc-card-h{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
#oregon{height:190px;border-radius:6px;overflow:hidden;background:#0b1622}
.gc-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px}
.st{background:#070c12;border:1px solid var(--line);border-radius:7px;padding:6px 8px}
.st b{display:block;font-family:var(--mono);font-size:20px;font-weight:500;font-variant-numeric:tabular-nums}
.st small{color:var(--muted);font-size:10px;line-height:1.2;display:block}
.st.bad b{color:var(--bad)}.st.warn b{color:var(--warn)}.st.eq b{color:var(--eq)}
.gc-sun{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;font-size:12px}
.gc-sun div{background:#070c12;border:1px solid var(--line);border-radius:7px;padding:6px 8px}
.gc-sun b{display:block;font-family:var(--mono);font-size:16px;font-weight:500}
.gc-sun small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.gc-list{margin-top:8px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:6px;min-height:0}
.gl{border-left:3px solid var(--line);padding:4px 8px;font-size:12px;cursor:pointer;border-radius:3px;background:#070c12}
.gl:hover{background:#0e1620}
.gl.sev{border-left-color:var(--bad)}.gl.eq{border-left-color:var(--eq)}
.gl b{font-weight:500;display:block}
.gl small{color:var(--muted);font-size:11px}
.gc-sources{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--muted)}
.gc-sources span{display:flex;align-items:center;gap:6px}
.gc-sources i{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}
.gc-sources .fail i{background:var(--bad)}.gc-sources .wait i{background:var(--warn)}
.gc-sources em{font-style:normal;margin-left:auto;font-family:var(--mono);font-size:10.5px}

.gc-ticker{display:flex;align-items:center;border-top:1px solid var(--line);background:#070b10;height:38px;overflow:hidden}
.gc-tick-label{flex:none;align-self:stretch;box-sizing:border-box;background:var(--gold);color:#1a1200;font-weight:700;font-size:11px;letter-spacing:.16em;padding:0 12px;display:flex;align-items:center;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .25s,color .25s,box-shadow .25s}
.gc-tick-label:hover{filter:brightness(1.08)}
/* ticker off: the bar stays put but goes see-through, with just a faint outlined LATEST button to turn it back on */
.gc-ticker.off{background:transparent;border-top-color:transparent}
.gc-ticker.off .gc-tick-viewport{visibility:hidden}
.gc-ticker.off .gc-tick-label{background:transparent;color:rgba(232,241,251,.45);box-shadow:inset 0 0 0 1px rgba(232,241,251,.22);align-self:center;height:28px;margin-left:6px;border-radius:5px}
.gc-ticker.off .gc-tick-label:hover{color:rgba(232,241,251,.8);box-shadow:inset 0 0 0 1px rgba(232,241,251,.45)}
.gc-tick-viewport{overflow:hidden;flex:1;height:100%;position:relative}
.gc-tick-track{display:inline-flex;gap:38px;white-space:nowrap;height:100%;align-items:center;padding-left:100%;animation:tick linear infinite}
.gc-tick-viewport:hover .gc-tick-track{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-100%)}}
.tk{font-size:13.5px;text-decoration:none;display:inline-flex;gap:8px;align-items:center}
.tk:hover{text-decoration:underline}
.tk i{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.08em;padding:2px 6px;border-radius:4px;background:#132031;color:var(--or)}
.tk i.infra{color:var(--warn)}.tk i.le{color:var(--eq)}
.tk small{color:var(--muted);font-size:11.5px}

/* ham-clock panel */
.hx-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.hx{background:#070c12;border:1px solid var(--line);border-radius:7px;padding:5px 6px}
.hx b{display:block;font-family:var(--mono);font-size:16px;font-weight:500;font-variant-numeric:tabular-nums}
.hx small{color:var(--muted);font-size:9.5px;line-height:1.15;display:block}
.hx.wide b{font-size:13px;white-space:nowrap}
.hx.good b{color:var(--ok)}.hx.warn b{color:var(--warn)}.hx.bad b{color:var(--bad)}
.bands{width:100%;border-collapse:collapse;margin-top:8px;font-size:12px;font-family:var(--mono)}
.bands th{color:var(--muted);font-weight:500;font-size:10px;letter-spacing:.1em;text-transform:uppercase;text-align:left;padding:3px 6px;border-bottom:1px solid var(--line)}
.bands td{padding:4px 6px;border-bottom:1px solid var(--line)}
.c-Good{color:var(--ok)}.c-Fair{color:var(--warn)}.c-Poor{color:var(--bad)}
.gc-note{color:var(--muted);font-size:10.5px;line-height:1.4;margin:6px 0 0}
.gc-note a{color:var(--or)}
.muted{color:var(--muted);font-size:12px}
.cablebox{margin-top:8px}
.cablebox input{font-size:11px;color:var(--muted);margin-top:4px;max-width:100%}
.iss-icon{filter:drop-shadow(0 0 6px rgba(96,165,250,.8))}
.lg-iss{background:#60a5fa;border-radius:50%!important}
.lg-aur{background:rgba(80,255,120,.6)}
.leaflet-control-layers{background:#0b1119;color:var(--fg);border:1px solid var(--line)!important;font-size:12px}
.leaflet-control-layers-expanded{padding:8px 12px}
.leaflet-control-layers label{margin:3px 0}
/* wide screens: two-column side panel */


/* ---------- header: primary clock ---------- */
.gc-primary{display:flex;align-items:center;gap:16px;padding-right:22px;border-right:1px solid var(--line)}
.pt-orb{width:46px;height:46px;border-radius:50%;flex:none;transition:all 1s}
.gc-primary[data-phase=day] .pt-orb{background:radial-gradient(circle at 38% 36%,#fff7cf,#ffd23f 40%,#f59e0b 70%,#9a5b00);box-shadow:0 0 26px 6px rgba(245,179,1,.45)}
.gc-primary[data-phase=twilight] .pt-orb{background:radial-gradient(circle at 38% 36%,#ffe2b8,#fb923c 45%,#9a3412 80%);box-shadow:0 0 22px 4px rgba(251,146,60,.4)}
.gc-primary[data-phase=night] .pt-orb{background:radial-gradient(circle at 40% 38%,#f4f7ff,#c9d4ee 55%,#8794b4);box-shadow:inset -12px -4px 0 0 #0a1018,0 0 22px 2px rgba(170,190,255,.25)}
.pt-time{font-family:var(--mono);font-weight:500;line-height:1;display:flex;align-items:baseline;gap:6px;color:var(--gold);text-shadow:0 0 18px rgba(245,179,1,.25)}
#ptHM{font-size:46px;letter-spacing:-.01em}
.pt-s{font-size:22px;opacity:.7}
.pt-ap{font-size:13px;letter-spacing:.12em;color:var(--fg);opacity:.75}
.pt-date{font-size:13.5px;margin-top:5px;color:var(--fg)}
.pt-meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.06em;margin-top:2px}

/* ---------- header: world clocks ---------- */
.gc-clockrows{display:flex;flex-direction:column;gap:6px;min-width:0}
.clk-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.chip{position:relative;border-radius:8px;padding:5px 9px 5px 12px;border:1px solid var(--line);background:#0a1018;overflow:hidden;min-width:0;transition:background 1s}
.chip::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#9aa7b6}
.chip[data-phase=day]{background:linear-gradient(135deg,rgba(245,179,1,.18),rgba(245,179,1,.03) 70%)}
.chip[data-phase=day]::before{background:var(--gold)}
.chip[data-phase=twilight]{background:linear-gradient(135deg,rgba(251,146,60,.18),rgba(168,85,247,.06) 70%)}
.chip[data-phase=twilight]::before{background:#fb923c}
.chip[data-phase=night]{background:linear-gradient(135deg,rgba(80,110,255,.16),rgba(80,110,255,.02) 70%)}
.chip[data-phase=night]::before{background:#6d8cff}
.chip-top{display:flex;justify-content:space-between;align-items:center;gap:4px}
.chip-name{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip-ic{width:8px;height:8px;border-radius:50%;flex:none;background:#9aa7b6}
.chip[data-phase=day] .chip-ic{background:var(--gold);box-shadow:0 0 6px var(--gold)}
.chip[data-phase=twilight] .chip-ic{background:#fb923c}
.chip[data-phase=night] .chip-ic{background:transparent;box-shadow:inset -2.5px -1px 0 0 #b9c7ff}
.chip-time{display:block;font-family:var(--mono);font-size:20px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.15;margin-top:1px}
.chip-sub{display:block;font-family:var(--mono);font-size:9.5px;color:var(--muted);white-space:nowrap}
.gc-actions{display:flex;flex-direction:column;gap:6px}
.gc-btn{white-space:nowrap}
@media (max-width:1350px){
  .gc-top{grid-template-columns:1fr auto}
  .gc-clockrows{grid-column:1/-1;order:3}
  .clk-row{grid-template-columns:repeat(8,minmax(0,1fr))}
  .gc-actions{flex-direction:row}
}
@media (max-width:1000px){.chip{padding:5px 6px 5px 9px}.chip-name{letter-spacing:.04em;font-size:9px}.chip-ic{display:none}.chip-time{font-size:18px}}
@media (max-width:760px){.clk-row{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ---------- city clocks on the map ---------- */
.city{display:inline-flex;align-items:center;gap:5px;transform:translate(-5px,-50%);font:500 10.5px var(--font);white-space:nowrap;color:#dbe4ef;text-shadow:0 0 3px #000,0 0 6px #000;pointer-events:none}
.city i{width:6px;height:6px;border-radius:50%;background:#8aa4ff;box-shadow:0 0 6px #8aa4ff;flex:none}
.city em{font-style:normal;font-family:var(--mono);font-size:10px;opacity:.75}
.city.day{color:#ffeab0}.city.day i{background:var(--gold);box-shadow:0 0 8px var(--gold)}
.city.twilight{color:#ffd0a6}.city.twilight i{background:#fb923c;box-shadow:0 0 8px #fb923c}
.city.night{color:#c9d5ff}
.city.home{font-size:12px;font-weight:600}.city.home i{width:8px;height:8px;outline:2px solid rgba(255,255,255,.35);outline-offset:2px}

/* ---------- clickable severe-weather markers ---------- */
.sev-mark{position:relative;width:26px;height:26px;cursor:pointer}
.sev-mark i{position:absolute;left:8px;top:8px;width:10px;height:10px;border-radius:50%;background:var(--bad);border:1.5px solid #fff;box-shadow:0 0 8px var(--bad)}
.sev-mark::after{content:'';position:absolute;inset:3px;border-radius:50%;border:2px solid var(--bad);animation:sevp 2s ease-out infinite}
.sev-mark.x i{background:#ff2bd6;box-shadow:0 0 10px #ff2bd6}.sev-mark.x::after{border-color:#ff2bd6;animation-duration:1.2s}
@keyframes sevp{0%{transform:scale(.5);opacity:1}100%{transform:scale(1.6);opacity:0}}
@media (prefers-reduced-motion:reduce){.sev-mark::after{animation:none}}
.city.l{flex-direction:row-reverse;transform:translate(calc(-100% + 5px),-50%)}
.city.u{transform:translate(-5px,-135%)}
.city.d{transform:translate(-5px,35%)}

/* ---------- command-center polish ---------- */
.gc-world{background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.35))}
.gc-world::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:450;background:repeating-linear-gradient(0deg,rgba(120,170,255,.025) 0 1px,transparent 1px 3px);mix-blend-mode:screen}
.hud{position:absolute;width:22px;height:22px;z-index:460;pointer-events:none;border-color:rgba(96,165,250,.55);border-style:solid;border-width:0}
.hud-tl{left:8px;top:8px;border-left-width:2px;border-top-width:2px}
.hud-tr{right:8px;top:8px;border-right-width:2px;border-top-width:2px}
.hud-bl{left:8px;bottom:8px;border-left-width:2px;border-bottom-width:2px}
.hud-br{right:8px;bottom:8px;border-right-width:2px;border-bottom-width:2px}
.gc-sunbox{left:38px;top:14px}
.gc-legend{left:38px;bottom:14px}
.gc-card{position:relative;background:linear-gradient(180deg,rgba(14,22,32,.95),rgba(9,14,21,.95));border-color:#1b2735}
.gc-card::before{content:'';position:absolute;left:10px;right:10px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(96,165,250,.55),transparent)}
.gc-card-h{display:flex;align-items:center;gap:7px}
.gc-card-h::before{content:'';width:5px;height:5px;background:var(--gold);box-shadow:0 0 6px var(--gold);transform:rotate(45deg)}
.st.fire b{color:#ff8a3d}.st.water b{color:#60a5fa}
.gc-stats{grid-template-columns:repeat(2,1fr)}
#logcard.flash{animation:cardFlash 1.2s ease-out 3}
@keyframes cardFlash{0%{box-shadow:0 0 0 0 rgba(245,179,1,.7)}100%{box-shadow:0 0 0 14px rgba(245,179,1,0)}}

/* toast */
.gc-toast{position:absolute;left:40px;bottom:34px;z-index:700;display:flex;align-items:center;gap:9px;max-width:min(46%,420px);padding:6px 6px 6px 8px;border-radius:8px;background:rgba(10,14,20,.86);border:1px solid #f5b301;box-shadow:0 6px 24px rgba(0,0,0,.45),0 0 16px rgba(245,179,1,.2);cursor:pointer;backdrop-filter:blur(6px);animation:toastIn .45s cubic-bezier(.2,.9,.3,1.2)}
.gc-toast.sev-crit{border-color:#ff4d4f;box-shadow:0 6px 24px rgba(0,0,0,.45),0 0 18px rgba(255,77,79,.3)}
.gc-toast .tt-k{flex:none;font:700 9px var(--mono);letter-spacing:.14em;padding:2px 6px;border-radius:4px;background:#f5b301;color:#1a1200}
.gc-toast.sev-crit .tt-k{background:#ff4d4f;color:#fff}
.gc-toast .tt-txt{min-width:0;display:flex;flex-direction:column;line-height:1.25}
.gc-toast b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc-toast small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc-toast .tt-x{flex:none;width:24px;height:24px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:17px;line-height:1;cursor:pointer}
.gc-toast .tt-x:hover{background:rgba(255,255,255,.08);color:#fff}
@media (max-width:700px){.gc-toast{left:10px;right:10px;bottom:10px;max-width:none}}
@keyframes toastIn{from{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}

/* volcanoes */
.volc-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:5px}
.vchip{display:flex;align-items:center;gap:6px;padding:5px 7px;border-radius:6px;background:#070c12;border:1px solid var(--line);cursor:pointer;min-width:0}
.vchip:hover{border-color:#2a3a4c}
.vchip i{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid #22c55e;flex:none}
.vchip span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.vchip b{font-family:var(--mono);font-size:9.5px;font-weight:500;color:#22c55e;text-transform:uppercase;letter-spacing:.04em}
.vchip.lvl-advisory i{border-bottom-color:#facc15}.vchip.lvl-advisory b{color:#facc15}
.vchip.lvl-watch i{border-bottom-color:#fb923c}.vchip.lvl-watch b{color:#fb923c}.vchip.lvl-watch{border-color:rgba(251,146,60,.5)}
.vchip.lvl-warning i{border-bottom-color:#ff4d4f}.vchip.lvl-warning b{color:#ff4d4f}.vchip.lvl-warning{border-color:rgba(255,77,79,.6);animation:opsBlink 1.6s infinite}
.volc{width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:14px solid #22c55e;filter:drop-shadow(0 0 4px rgba(34,197,94,.7));opacity:.9}
.volc.lvl-advisory{border-bottom-color:#facc15;filter:drop-shadow(0 0 5px #facc15)}
.volc.lvl-watch{border-bottom-color:#fb923c;filter:drop-shadow(0 0 6px #fb923c)}
.volc.lvl-warning{border-bottom-color:#ff4d4f;filter:drop-shadow(0 0 8px #ff4d4f)}

/* wildfires */
.fire-dot{border-radius:50%;background:radial-gradient(circle,#ffe08a 0%,#ff8a1f 40%,rgba(255,60,20,.55) 70%,rgba(255,40,10,0) 72%);box-shadow:0 0 10px rgba(255,100,30,.6);animation:fireFlicker 2.8s ease-in-out infinite}
.fire-dot.or{outline:1.5px solid rgba(255,220,150,.8);outline-offset:2px}
@keyframes fireFlicker{50%{filter:brightness(1.25);transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){.fire-dot{animation:none}}
.lg-fire{background:radial-gradient(circle,#ffe08a,#ff8a1f 60%,transparent 70%);border-radius:50%!important}
.lg-volc{width:0!important;height:0!important;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid #22c55e;border-radius:0!important;background:none!important}

/* graticule labels */
.grat-label{font:9px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(217,164,65,.6);transform:translate(0,-130%);white-space:nowrap;pointer-events:none}
.grat-label.eq{color:rgba(143,179,217,.6)}

/* side panel order: single column */
.c-oregon{order:1}.c-log{order:2}.c-press{order:2}.c-volc{order:3}.c-sec{order:3}.c-space{order:4}.c-iss{order:5}.c-sun{order:6}.c-src{order:7}
.c-log{min-height:260px}
/* wide screens: two columns, log runs down the right */
@media (min-width:1900px){
  .gc-main{grid-template-columns:minmax(0,1fr) 640px}
  .gc-side{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto 1fr auto auto;align-content:stretch;
    grid-template-areas:"oregon log" "volc log" "sec log" "space log" "sats log" "iss sun" "src src"}
  .c-press{grid-area:press}.c-oregon{grid-area:oregon}.c-volc{grid-area:volc}.c-sec{grid-area:sec}.c-space{grid-area:space}.c-iss{grid-area:iss}.c-sun{grid-area:sun}.c-log{grid-area:log;min-height:0}.c-src{grid-area:src}
  .c-src .gc-sources{display:grid;grid-template-columns:repeat(3,1fr);column-gap:16px}
}

/* satellite clouds: infrared shows cold cloud tops bright; screen blending lets only the clouds glow over the map */
.cloud-pane{mix-blend-mode:screen}
.cloud-tiles{filter:grayscale(1) contrast(2.6) brightness(.75)}

/* ---------- live HF paths (WSPR) ---------- */
.hf-head{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:9px;border-top:1px solid var(--line)}
.hf-head span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hf-head em{font-style:normal;font:10px var(--mono);color:var(--muted)}
.hf-bands{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:5px;margin-top:7px}
.hf-b{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:4px 7px 5px 9px;border-radius:6px;border:1px solid var(--line);background:#0a1018;cursor:pointer;position:relative;font-family:var(--mono);color:inherit;text-align:left}
.hf-b::before{content:'';position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:2px;background:var(--c)}
.hf-b b{font-size:12px;font-weight:600;color:var(--c)}
.hf-b small{font-size:9.5px;color:var(--muted);white-space:nowrap}
.hf-b.off{opacity:.35}
.hf-b.dead b{color:var(--muted)}
.hf-b.dead::before{background:#2a3440}
.hf-b[data-open=wide] small{color:#cfe0ef}
.hf-tip b{color:var(--c)}
.lg-hf{width:16px!important;height:3px!important;border-radius:2px;background:linear-gradient(90deg,#60a5fa,#34d399,#facc15,#f87171)!important}
.hf-modes{display:flex;gap:4px;margin-top:7px}
.hf-m{flex:1;padding:4px 6px;border-radius:6px;border:1px solid var(--line);background:#0a1018;color:var(--muted);font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.hf-m.on{color:#e8f1fb;border-color:#3b82f6;background:rgba(59,130,246,.15)}

/* ---------- world security (GDELT news) ---------- */
.sec-list{display:flex;flex-direction:column;gap:4px}
.sec-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;background:#0a1018;border:1px solid var(--line);cursor:pointer;color:inherit;text-align:left;font:inherit}
.sec-row:hover{border-color:#3b4b5e}
.sec-row i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}
.sec-row span{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sec-row em{font-style:normal;font:10.5px var(--mono);color:var(--muted)}
.sec-dot{border-radius:50%;background:radial-gradient(circle,var(--c) 0 30%,transparent 72%);border:1.5px solid var(--c);box-shadow:0 0 10px var(--c);opacity:.9}
.sec-pop{max-width:300px}
.sec-pop h4{margin:0 0 2px;font-size:13px}
.sec-pop small{color:#8fa0b3}
.sec-pop ul{margin:6px 0 0;padding-left:16px}
.sec-pop li{margin:3px 0;font-size:12px;line-height:1.3}
.sec-pop a{color:#93c5fd}
.lg-mil{background:#ff7a3d!important;border-radius:50%}
.lg-ter{background:#e5487a!important;border-radius:50%}
.lg-mil-ac{background:#fbbf24!important;clip-path:polygon(50% 0,62% 38%,100% 60%,100% 72%,60% 62%,60% 85%,72% 95%,28% 95%,40% 85%,40% 62%,0 72%,0 60%,38% 38%)}
.sec-hl{text-decoration:none}
.gc-ticker.off .gc-tick-track{animation-play-state:paused}
.lg-traffic{background:radial-gradient(circle,#7dd3fc 0 1.5px,transparent 2px) 0 0/5px 5px!important;border-radius:2px}
.gc-toast[hidden]{display:none!important}
/* No browser focus outline around the whole map or the LATEST button after a click (it showed as a
   blue frame over the map edges). Keyboard users still get a subtle ring on LATEST. */
.leaflet-container:focus,.leaflet-container:focus-visible{outline:none}
.gc-tick-label:focus{outline:none}
.gc-tick-label:focus-visible{outline:none;box-shadow:inset 0 0 0 2px rgba(10,14,20,.55)}
.gc-ticker.off .gc-tick-label:focus-visible{box-shadow:inset 0 0 0 1px rgba(232,241,251,.6)}
#natstats{grid-template-columns:repeat(3,1fr)}

/* ---------- map-only (expanded) view ---------- */
.gc.map-only{grid-template-rows:minmax(0,1fr)}
.gc.map-only .gc-top,.gc.map-only .ops-strip,.gc.map-only .gc-side,.gc.map-only .gc-ticker{display:none}
.gc.map-only .gc-main{grid-template-columns:minmax(0,1fr)}
.mo-btn{display:flex!important;align-items:center;justify-content:center;width:34px;height:34px;background:rgba(10,14,20,.86)!important;color:#cfe0ef!important;border:1px solid var(--line)!important;border-radius:8px!important;cursor:pointer}
.mo-btn:hover{color:#fff!important;border-color:#3b82f6!important}
.mo-clock{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:650;display:flex;align-items:baseline;gap:8px;padding:5px 12px;border-radius:8px;background:rgba(5,8,13,.72);border:1px solid var(--line);backdrop-filter:blur(6px);pointer-events:none}
.mo-clock[hidden]{display:none}
.mo-clock b{font:600 20px var(--mono);color:var(--gold);letter-spacing:.02em}
.mo-clock span{font-size:10px;letter-spacing:.14em;color:var(--muted)}
.mo-clock em{font-style:normal;font:12px var(--mono);color:#cfe0ef}

/* ---------- satellite view ---------- */
.sat-tiles{filter:brightness(.82) saturate(.92) contrast(1.05)}
.lights-canvas{opacity:.95} /* tiles are cut out to lights-only in geochron-imagery.js */
.lights-canvas.raw{mix-blend-mode:screen;filter:brightness(.9) contrast(2.2) saturate(1.1)} /* fallback if tiles can't be cut out */
.gc.sat-mode .leaflet-container{background:#020611}
.tz-l{display:flex;flex-direction:column;align-items:center;line-height:1;color:rgba(232,241,251,.55);text-shadow:0 0 3px #000,0 0 6px #000;pointer-events:none}
.tz-l b{font:700 15px var(--mono)}
.tz-l small{font:9px var(--mono);margin-top:2px;opacity:.8}
.tz-l.cur{color:var(--gold)}
.gc.map-only .gc-legend{display:none}
/* map-only: controls and pointer fade out when idle, back on any movement or touch */
.gc.map-only .leaflet-control-container .leaflet-top,.gc.map-only .leaflet-control-container .leaflet-bottom{opacity:0;pointer-events:none;transition:opacity .6s ease}
.gc.map-only.ui-awake .leaflet-control-container .leaflet-top,.gc.map-only.ui-awake .leaflet-control-container .leaflet-bottom{opacity:1;pointer-events:auto;transition:opacity .2s ease}
.gc.map-only:not(.ui-awake),.gc.map-only:not(.ui-awake) .leaflet-container{cursor:none}

/* ---------- satellites card ---------- */
.c-sats{grid-area:sats}
.gc-card-meta{float:right;font-style:normal;font:10px var(--mono);color:var(--muted);letter-spacing:.04em;text-transform:none}
.sat-cats{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:6px}
.sat-cat{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:5px 8px 5px 10px;border-radius:6px;border:1px solid var(--line);background:#0a1018;color:inherit;cursor:pointer;position:relative;font-size:12px;opacity:.45}
.sat-cat::before{content:'';position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:2px;background:var(--c)}
.sat-cat.on{opacity:1}
.sat-cat b{font-weight:500}
.sat-cat small{font:10px var(--mono);color:var(--muted)}
.globe-toggle{width:100%;justify-content:center;margin-top:8px}
.globe-toggle.on{border-color:#3b82f6;background:rgba(59,130,246,.15)}
.sat-tip b{font-size:12.5px}
/* ---------- 3D globe ---------- */
.globe-holder{position:absolute;inset:0;z-index:1050;background:radial-gradient(ellipse at 50% 45%,#08162a 0%,#02050b 70%)}
.globe-holder[hidden]{display:none}
.globe-holder canvas{display:block;cursor:grab;touch-action:none}
.globe-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.glabel{position:absolute;left:0;top:0;font:600 11px var(--mono);color:#cfe0ef;text-shadow:0 0 4px #000,0 0 8px #000;white-space:nowrap;margin:-18px 0 0 8px}
.glabel.hq{color:var(--gold)}
.glabel.iss{color:#93c5fd}
.globe-info{position:absolute;left:14px;bottom:14px;display:flex;flex-direction:column;gap:2px;padding:7px 11px;border-radius:8px;background:rgba(5,8,13,.8);border:1px solid var(--line);max-width:60%}
.globe-info[hidden]{display:none}
.globe-info b{font-size:13px}
.globe-info small{font:11px var(--mono);color:var(--muted)}
.globe-back{position:absolute;top:12px;right:12px;z-index:1060;display:none;padding:7px 12px;border-radius:8px;border:1px solid var(--line);background:rgba(10,14,20,.86);color:#cfe0ef;font:600 11px var(--mono);letter-spacing:.06em;cursor:pointer}
.globe-back:hover{border-color:#3b82f6;color:#fff}
.gc.globe-on .globe-back{display:block}
.gc.globe-on .gc-legend,.gc.globe-on .gc-hud{display:none}
.globe-btn.on{color:#93c5fd!important;border-color:#3b82f6!important}
.gc.map-only:not(.ui-awake) .globe-back{opacity:0;pointer-events:none;transition:opacity .6s}

/* full-screen 'art' view: pop-ups are larger so they read from across the room */
.gc.map-only .gc-toast{left:48px;bottom:44px;max-width:min(60%,720px);padding:12px 12px 12px 14px;gap:14px;border-radius:12px}
.gc.map-only .gc-toast .tt-k{font-size:13px;padding:4px 9px}
.gc.map-only .gc-toast b{font-size:20px}
.gc.map-only .gc-toast small{font-size:15px}
.sat-cat{text-align:left}.sat-cat b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* infra layers (geochron-infra.js) */
.eo-pin span{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:rgba(6,10,18,.75);border:1px solid rgba(201,212,222,.55);color:#c9d4de;font-size:9px;line-height:1}
.nga-tip{max-width:320px;white-space:normal}

/* ---------- Cameras, receivers, live streams ---------- */
.gc-btn.on{border-color:#7fd3e6;color:#7fd3e6}
.lg-cam{border-radius:50%!important;border:1.5px solid #7fd3e6;background:#0b1119}
.cam-bubble{display:grid;place-items:center;border-radius:50%;background:rgba(9,16,24,.86);border:1px solid #7fd3e6;color:#d6f1f7;font:600 11px var(--mono);cursor:pointer;box-shadow:0 0 0 3px rgba(127,211,230,.12)}
.cam-bubble span{line-height:1}
.cam-bubble:hover{background:#12202c}
.cam-tipwrap{padding:0!important;background:#0b1119!important;border:1px solid var(--line)!important;border-radius:8px!important;color:var(--fg)!important;box-shadow:0 8px 24px rgba(0,0,0,.5)!important}
.cam-tipwrap::before{display:none}
.cam-tip{width:200px;display:grid;gap:2px;padding:6px}
.cam-tip img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:5px;background:#05080d}
.cam-tip b{font-size:12px;font-weight:600;white-space:normal;line-height:1.25}
.cam-tip span{font-size:10.5px;color:var(--muted)}
.cam-panel{position:absolute;left:38px;top:14px;z-index:820;width:min(320px,calc(100% - 76px));max-height:calc(100% - 28px);display:flex;flex-direction:column;background:rgba(9,14,21,.96);border:1px solid #1b2735;border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.5);backdrop-filter:blur(6px)}
.cam-panel[hidden],.cam-view[hidden]{display:none}
.cam-tabs{display:flex;align-items:center;gap:2px;padding:6px 6px 0;border-bottom:1px solid var(--line)}
.cam-tab{font:inherit;font-size:12px;color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;padding:6px 8px;cursor:pointer;white-space:nowrap}
.cam-tab:hover{color:var(--fg)}
.cam-tab.on{color:var(--fg);border-bottom-color:#7fd3e6}
.cam-x{margin-left:auto;font:inherit;font-size:18px;line-height:1;color:var(--muted);background:none;border:0;padding:2px 8px;cursor:pointer}
.cam-x:hover{color:var(--fg)}
.cam-body{overflow:auto;padding:8px;min-height:60px}
.cam-search{width:100%;box-sizing:border-box;font:inherit;font-size:12.5px;color:var(--fg);background:#05080d;border:1px solid var(--line);border-radius:6px;padding:6px 8px;margin-bottom:6px}
.cam-search:focus{outline:none;border-color:#7fd3e6}
.cam-h{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:10px 2px 4px}
.cam-h:first-child{margin-top:2px}
.cam-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;box-sizing:border-box;text-align:left;font:inherit;font-size:12.5px;color:var(--fg);background:none;border:0;border-radius:5px;padding:5px 6px;cursor:pointer;text-decoration:none}
button.cam-row:hover,a.kiwi-row:hover{background:rgba(127,211,230,.08)}
.cam-row b{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cam-row span{flex:none;font:11px var(--mono);color:var(--muted)}
.cam-row.off{cursor:default}.cam-row.off b{color:var(--muted)}
.cam-none{font-size:12px;color:var(--muted);padding:10px 4px;line-height:1.45}
.cam-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.cam-thumb{position:relative;padding:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#05080d;aspect-ratio:16/10;cursor:pointer;font:inherit}
.cam-thumb:hover{border-color:#7fd3e6}
.cam-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.cam-thumb span{position:absolute;left:0;right:0;bottom:0;padding:10px 5px 3px;font-size:10px;color:#e8eef5;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(transparent,rgba(0,0,0,.8))}
.cam-thumb.dead::before{content:'no picture';position:absolute;inset:0;display:grid;place-items:center;font-size:10.5px;color:var(--muted)}
.cam-view{position:absolute;right:58px;top:14px;z-index:830;width:min(560px,calc(100% - 420px));min-width:300px;background:rgba(9,14,21,.97);border:1px solid #1b2735;border-radius:10px;box-shadow:0 14px 40px rgba(0,0,0,.55);overflow:hidden}
.cam-view-h{display:flex;align-items:center;gap:8px;padding:8px 6px 8px 12px}
.cam-view-t{min-width:0;display:grid}
.cam-view-t b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cam-view-t span{font-size:11px;color:var(--muted)}
.cam-view-a{margin-left:auto;display:flex;gap:4px;flex:none}
.cam-act{font:inherit;font-size:11.5px;color:var(--fg);background:none;border:1px solid var(--line);border-radius:999px;padding:4px 10px;cursor:pointer;text-decoration:none;white-space:nowrap}
.cam-act:hover{border-color:#7fd3e6}
.cam-view .cam-x{margin-left:0}
.cam-view-b{background:#05080d;aspect-ratio:16/9;display:grid;place-items:center}
.cam-view-b img,.cam-view-b iframe{width:100%;height:100%;object-fit:contain;border:0;display:block}
.cam-view-b img[hidden]{display:none}
.cam-play{font:inherit;font-size:13px;color:var(--fg);background:none;border:1px solid var(--line);border-radius:999px;padding:10px 18px;cursor:pointer}
.cam-play:hover{border-color:#7fd3e6}
.cam-view-f{display:flex;justify-content:space-between;gap:10px;padding:6px 12px;font-size:10.5px;color:var(--muted)}
.live-pin{display:grid;place-items:center;border-radius:50%;background:rgba(9,16,24,.86);border:1px solid #f5b301;color:#f5b301;font-size:8px;cursor:pointer}
.live-pin span{line-height:1;margin-left:1px}
.kiwi-pop{font-size:12px;line-height:1.45;display:grid;gap:2px}
.kiwi-pop .m{color:#7f8ea0;font-size:11px}
.kiwi-near{margin-top:8px}
.kiwi-row{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--fg);text-decoration:none;padding:3px 4px;border-radius:4px}
.kiwi-row b{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kiwi-row span{flex:none;font:10.5px var(--mono);color:var(--muted)}
.iss-live{margin-top:8px;font-size:11.5px;padding:4px 10px}
/* Narrow screens: the viewer sits along the bottom of the map instead of beside the panel. */
@media (max-width:1180px){.cam-view{left:14px;right:58px;top:auto;bottom:14px;width:auto;min-width:0;max-width:560px;margin-left:auto}.cam-view-b{max-height:42vh}}
@media (max-width:900px){.cam-panel{left:14px}}
