:root{
  --bg:#0b1020; --ink:#eaf0ff; --dim:#9aa7c7;
  --glass:rgba(12,16,32,.72); --edge:rgba(255,255,255,.12);
  --accent:#ff5a3c; --accent2:#ffd166;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
#map{position:fixed;inset:0}
.maplibregl-canvas{cursor:grab}
.maplibregl-canvas.camera-orbiting{cursor:grabbing}
.hidden{opacity:0;pointer-events:none}
.topbar,.landmarks,.card,.hint,.credits{transition:opacity .6s ease}

/* intro */
.intro{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 120% at 50% 20%, #141b36 0%, #0b1020 60%, #060a16 100%);
  transition:opacity 1.1s ease}
.intro.done{opacity:0;pointer-events:none}
.intro-inner{text-align:center;padding:24px;max-width:520px}
.intro h1{font-size:clamp(56px,14vw,104px);font-weight:800;letter-spacing:-.03em;
  background:linear-gradient(135deg,#fff 30%,var(--accent2) 70%,var(--accent));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.intro .sub{font-size:clamp(16px,4vw,22px);color:var(--dim);margin-top:6px}
.intro .fine{font-size:13px;color:#6b7694;margin:18px 0 26px;line-height:1.5}
.btn-primary{font:inherit;font-weight:700;font-size:17px;color:#0b1020;background:linear-gradient(135deg,var(--accent2),var(--accent));
  border:0;border-radius:999px;padding:14px 42px;cursor:pointer;box-shadow:0 8px 30px rgba(255,90,60,.35)}
.btn-primary:active{transform:scale(.97)}

/* topbar */
.topbar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:10px;
  padding:calc(10px + env(safe-area-inset-top)) 14px 10px;
  background:linear-gradient(180deg,rgba(6,10,22,.85),transparent)}
.brand{font-weight:800;letter-spacing:-.02em;font-size:18px}
.wx{margin-left:auto;display:flex;gap:8px;align-items:baseline;font-size:13px;color:var(--dim);
  background:var(--glass);border:1px solid var(--edge);border-radius:999px;padding:6px 12px;backdrop-filter:blur(8px)}
.wx #wxTemp{color:var(--ink);font-weight:700}
.modes{display:flex;gap:6px}
.chip{font:inherit;font-size:14px;color:var(--dim);background:var(--glass);border:1px solid var(--edge);
  border-radius:999px;width:36px;height:36px;cursor:pointer;backdrop-filter:blur(8px)}
.chip.wide{width:auto;padding:0 14px;font-weight:600}
.chip.active{color:#0b1020;background:var(--accent2);border-color:transparent}

/* landmark strip */
/* places picker sheet (was the clipped horizontal strip) */
.placesheet{position:fixed;right:12px;top:calc(58px + env(safe-area-inset-top));z-index:42;
  width:min(320px,calc(100vw - 24px));background:rgba(10,14,30,.94);border:1px solid var(--edge);
  border-radius:14px;padding:12px;backdrop-filter:blur(14px);box-shadow:0 8px 40px rgba(0,0,0,.5);
  max-height:min(60vh,520px);overflow-y:auto;scrollbar-width:none}
.placesheet::-webkit-scrollbar{display:none}
.placesheet.hidden{display:none}
.placesheet .phead{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;opacity:.5;padding:2px 4px 9px}
.lmgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.lm{font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left;
  background:rgba(255,255,255,.05);border:1px solid var(--edge);border-radius:10px;padding:10px 11px;
  min-height:44px;white-space:normal;line-height:1.25}
.lm.active{background:rgba(125,211,252,.18);border-color:rgba(125,211,252,.4);color:#fff}
.lm:active{background:rgba(255,255,255,.1)}

/* info card */
.card{position:fixed;z-index:21;left:14px;right:14px;bottom:calc(86px + env(safe-area-inset-bottom));
  max-width:420px;margin:0 auto;background:linear-gradient(145deg,rgba(12,16,32,.9),rgba(24,29,49,.8));
  border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:16px 40px 16px 18px;
  backdrop-filter:blur(12px);box-shadow:0 14px 42px rgba(4,8,20,.34);overflow:hidden}
.card:before{content:'';position:absolute;inset:0 auto 0 0;width:3px;
  background:linear-gradient(180deg,var(--accent2),var(--accent))}
.card h2{font-size:17px;margin-bottom:6px}
.card p{font-size:13.5px;line-height:1.55;color:var(--dim)}
.card-x{position:absolute;top:8px;right:8px;width:28px;height:28px;border:0;border-radius:8px;
  background:transparent;color:var(--dim);font-size:18px;cursor:pointer}

/* hint + credits */
.hint{cursor:pointer;pointer-events:auto;position:fixed;top:calc(60px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:19;
  font-size:12px;color:var(--dim);background:var(--glass);border:1px solid var(--edge);border-radius:999px;padding:6px 14px;backdrop-filter:blur(8px)}
.hint-touch{display:none}
.credits{position:fixed;left:0;right:0;bottom:0;z-index:16;text-align:center;font-size:9.5px;color:#4a5470;opacity:.7;
  padding:4px 8px calc(4px + env(safe-area-inset-bottom));background:linear-gradient(0deg,rgba(6,10,22,.8),transparent)}
.credits a{color:#7c89ab;text-decoration:none}

/* night mode canvas treatment */
body.night .maplibregl-canvas{filter:brightness(.62) contrast(1.12) saturate(.75)}
body.night{--glass:rgba(6,9,20,.8)}

@media (min-width:720px){
  .landmarks{left:50%;right:auto;transform:translateX(-50%);max-width:92vw}
  .card{left:auto;right:20px;bottom:auto;top:calc(70px + env(safe-area-inset-top));margin:0}
}
.maplibregl-ctrl-top-left{top:62px;left:12px}
.maplibregl-ctrl-top-left .maplibregl-ctrl-group{margin:0;background:rgba(12,16,32,.9);
  border:1px solid rgba(255,255,255,.16);border-radius:12px;overflow:hidden;
  box-shadow:0 8px 24px rgba(4,8,20,.28)}
.maplibregl-ctrl-top-left .maplibregl-ctrl-group button{width:44px;height:44px}
.maplibregl-ctrl-top-left .maplibregl-ctrl-icon{filter:invert(1);opacity:.82}
.maplibregl-ctrl-top-left .maplibregl-ctrl-group button:hover{background-color:rgba(255,255,255,.1)}
.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{display:none}

/* ---- v2: Cities rebrand + living-city UI ---- */
.kicker{font-size:12px;letter-spacing:.35em;color:#6b7694;font-weight:700;margin-bottom:6px}
.brand-city{color:var(--dim);font-weight:600;margin-left:6px;font-size:14px}
/* ---- unified bottom dock: LIVE bar (carries the scale inline), centered ---- */
.legend{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(34px + env(safe-area-inset-bottom));z-index:22;
  font-size:11.5px;font-weight:600;color:var(--ink);background:var(--glass);border:1px solid var(--edge);
  border-radius:999px;min-height:44px;box-sizing:border-box;line-height:28px;padding:7px 14px;
  backdrop-filter:blur(8px);white-space:nowrap;cursor:pointer;
  max-width:calc(100vw - 24px);overflow:hidden;text-overflow:ellipsis}
.legend .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22c55e;
  margin-right:2px;vertical-align:1px;animation:pulse 2.2s ease-in-out infinite}
.legend .sc{opacity:.55;font-weight:500}
.legend .sc b{color:var(--accent2);font-weight:700;opacity:1}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
/* subtle real-rain overlay when NEA reports rain anywhere on the island */
body.raining::after{content:'';position:fixed;inset:0;z-index:15;pointer-events:none;opacity:.16;
  background:repeating-linear-gradient(105deg, transparent 0 7px, rgba(160,190,255,.5) 7px 8px);
  animation:rainfall .5s linear infinite}
@keyframes rainfall{to{transform:translateY(28px)}}
/* v2: proper night restyle is programmatic — the old canvas filter is retired */
body.night .maplibregl-canvas{filter:none}

/* ---- v2.2: popups were unreadable (white default bg + inherited near-white body text) ---- */
.maplibregl-popup-content{background:rgba(12,16,32,.88);color:var(--ink);border:1px solid var(--edge);
  border-radius:12px;padding:10px 14px 10px;font:13px/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  backdrop-filter:blur(10px);box-shadow:0 8px 28px rgba(0,0,0,.45)}
.maplibregl-popup-content strong{color:#fff}
.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,
.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,
.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:rgba(12,16,32,.88)}
.maplibregl-popup-anchor-top .maplibregl-popup-tip,
.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,
.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:rgba(12,16,32,.88)}
.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:rgba(12,16,32,.88)}
.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:rgba(12,16,32,.88)}
.follow-link{color:var(--accent2);text-decoration:none;font-weight:600;display:inline-block;margin-top:3px}

/* ---- v2.5: powers of ten ---- */
/* scale is now folded into the LIVE bar (.legend .sc) — the standalone pill is retired */
.scale{display:none !important}
@media (max-width:719px){
  .wx #wxDesc{display:none}
  .chip{width:44px;min-width:44px;height:44px;font-size:13px}
  .chip.wide{padding:0 9px}
  .topbar{gap:6px;padding-left:10px;padding-right:10px}
  .wx{min-width:44px;min-height:44px}
  .brand{font-size:16px}
  .maplibregl-ctrl-top-left{display:none}
  .hint-desktop{display:none}.hint-touch{display:inline}
}
.legend,.scale{contain:content}
.intro .pulse{font-size:12.5px;color:#8fa0c9;margin-top:14px;min-height:18px;letter-spacing:.02em}
.intro .pulse .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#22c55e;margin-right:6px;vertical-align:1px;animation:pulse 2.2s ease-in-out infinite}

/* ---- v2.10.2: portrait topbar — chips wrap to their own row, nothing cropped ---- */
@media (max-width:520px){
  .topbar{flex-wrap:wrap;row-gap:7px}
  .modes{width:100%;justify-content:flex-end;gap:5px}
  .chip.wide{padding:0 8px;font-size:12.5px}
  .hint{top:calc(104px + env(safe-area-inset-top))}
}
button.wx{font:inherit;cursor:pointer}

/* ---- v2.15: the "right now" panel — the honesty, visible ---- */
.rightnow{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translateX(-50%);
  z-index:40;width:min(340px,calc(100vw - 28px));background:rgba(10,14,30,.92);border:1px solid var(--edge);
  border-radius:14px;padding:14px 16px;backdrop-filter:blur(14px);font-size:12.5px;color:var(--fg);
  box-shadow:0 8px 40px rgba(0,0,0,.5)}
.rightnow.hidden{display:none}
.rightnow h3{margin:0 0 8px;font-size:13px;letter-spacing:.04em;color:var(--accent2)}
.rightnow .row{display:grid;grid-template-columns:9px 1fr auto;align-items:baseline;gap:3px 9px;padding:7px 0}
.rightnow .row .st{width:7px;height:7px;border-radius:50%;flex:none;align-self:baseline;margin-top:5px}
.rightnow .st.live{background:#22c55e}.rightnow .st.stale{background:#eab308}.rightnow .st.reference{background:#60a5fa}.rightnow .st.down{background:#6b7280}
.rightnow .row b{font-weight:600}
.rightnow .row .val{opacity:.7;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.rightnow .row .src{grid-column:2/-1;opacity:.42;font-size:10.5px;letter-spacing:.01em;text-align:left;margin:0}
.rightnow .amb{margin-top:8px;padding-top:8px;border-top:1px solid var(--edge);opacity:.65;font-size:11.5px;line-height:1.45}
.rightnow .act{margin-top:9px;display:flex;gap:8px}
.rightnow .act button{flex:1;font:inherit;font-size:12px;padding:7px 0;border-radius:9px;border:1px solid var(--edge);
  background:rgba(255,255,255,.06);color:var(--fg);cursor:pointer}

/* ---- v2.16: ask the city ---- */
.modes{flex-wrap:wrap}
.asksheet{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translateX(-50%);
  z-index:41;width:min(360px,calc(100vw - 24px));background:rgba(10,14,30,.94);border:1px solid var(--edge);
  border-radius:14px;padding:12px;backdrop-filter:blur(14px);box-shadow:0 8px 40px rgba(0,0,0,.5)}
.asksheet.hidden{display:none}
.asksheet .msgs{max-height:38vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:2px 2px 8px}
.asksheet .m{font-size:13px;line-height:1.45;padding:8px 11px;border-radius:11px;max-width:88%}
.asksheet .m.bot{background:rgba(255,255,255,.07);align-self:flex-start;border-bottom-left-radius:4px}
.asksheet .m.you{background:rgba(125,211,252,.16);align-self:flex-end;border-bottom-right-radius:4px}
.asksheet .m.sys{opacity:.6;font-size:11.5px;align-self:center;background:none;padding:2px}
.asksheet .askrow{display:flex;gap:7px}
.asksheet input{flex:1;font:inherit;font-size:13px;padding:9px 12px;border-radius:10px;border:1px solid var(--edge);
  background:rgba(255,255,255,.06);color:var(--fg);outline:none}
.asksheet input::placeholder{color:#7484ab}
.asksheet #askSend{width:42px;font-size:16px;border-radius:10px;border:1px solid var(--edge);
  background:rgba(125,211,252,.18);color:var(--fg);cursor:pointer}
.asksheet .askfine{margin-top:7px;font-size:10.5px;opacity:.5;text-align:center}

/* ---- v2.16.1: suggestion chips + shuffle ---- */
.asksheet .sugg{display:flex;align-items:flex-start;gap:7px;padding:2px 0 9px}
.asksheet .sugg .chips{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.asksheet .sugg .chips button{font:inherit;font-size:11.5px;padding:5px 10px;border-radius:999px;
  border:1px solid var(--edge);background:rgba(255,255,255,.05);color:#aebbdd;cursor:pointer;
  transition:background .15s ease}
.asksheet .sugg .chips button:active{background:rgba(125,211,252,.18)}
.asksheet #suggShuffle{flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--edge);
  background:rgba(255,255,255,.05);color:#aebbdd;font-size:14px;cursor:pointer;transition:transform .45s ease}
.asksheet #suggShuffle.spun{transform:rotate(360deg)}

/* ---- v2.18 UX: one clear row on top, words in the sheet ---- */
.moresheet{position:fixed;right:12px;top:calc(58px + env(safe-area-inset-top));z-index:42;
  width:min(300px,calc(100vw - 24px));background:rgba(10,14,30,.94);border:1px solid var(--edge);
  border-radius:14px;padding:8px;backdrop-filter:blur(14px);box-shadow:0 8px 40px rgba(0,0,0,.5);
  max-height:calc(100dvh - 70px - env(safe-area-inset-top));overflow-y:auto;overscroll-behavior:contain}
.moresheet.hidden{display:none}
.moresheet .mrow{display:flex;align-items:center;gap:11px;width:100%;text-align:left;font:inherit;
  padding:10px 11px;border:none;border-radius:10px;background:none;color:var(--fg);cursor:pointer}
.moresheet .mrow:active{background:rgba(255,255,255,.07)}
.moresheet .mi{font-size:16px;width:22px;text-align:center;flex:none}
.moresheet .mrow b{display:block;font-size:13.5px;font-weight:600}
.moresheet .mrow small{display:block;font-size:11px;opacity:.55;margin-top:1px}
.moresheet .seg{cursor:default;gap:8px}
.moresheet .seg:active{background:none}
.moresheet .mlabel{font-size:12px;opacity:.6;flex:1}
.moresheet .seg button{font:inherit;font-size:12.5px;padding:7px 12px;border-radius:9px;
  min-height:44px;border:1px solid var(--edge);background:rgba(255,255,255,.05);color:var(--fg);cursor:pointer}
.moresheet .seg button.active{background:rgba(125,211,252,.2);border-color:rgba(125,211,252,.4)}
@media (max-width:520px){
  .topbar{flex-wrap:nowrap}
  .modes{width:auto;flex-wrap:nowrap}
  .hint{top:calc(72px + env(safe-area-inset-top))}
  /* Blur over a moving WebGL canvas is expensive on phones. Dense glass is clearer and cheaper. */
  .wx,.chip,.hint,.legend,.card,.placesheet,.moresheet,.asksheet,.rightnow,.keybar,.conbar{
    backdrop-filter:none;background-color:rgba(12,16,32,.92)}
  .card{box-shadow:0 10px 30px rgba(4,8,20,.28)}
}
.moresheet .mrow.active{background:rgba(125,211,252,.12)}

/* ---- v2.18.2: construction browse bar ---- */
.conbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(96px + env(safe-area-inset-bottom));
  z-index:39;display:flex;gap:6px;align-items:center;max-width:calc(100vw - 20px);overflow-x:auto;
  background:rgba(10,14,30,.92);border:1px solid var(--edge);border-radius:999px;padding:6px 8px;
  backdrop-filter:blur(12px);scrollbar-width:none}
.conbar::-webkit-scrollbar{display:none}
.conbar.hidden{display:none}
.conbar button{flex:none;font:inherit;font-size:11.5px;padding:5px 10px;border-radius:999px;
  border:1px solid var(--edge);background:rgba(255,255,255,.05);color:#c8d3ee;cursor:pointer;white-space:nowrap}
.conbar button.active{background:rgba(245,158,11,.22);border-color:rgba(245,158,11,.5);color:#ffd9a0}
.conbar .connext{background:rgba(245,158,11,.28);border-color:rgba(245,158,11,.55);color:#ffe3b8;font-weight:600}
.conbar .conclose{width:26px;padding:5px 0;text-align:center}

/* ---- v2.21: layer toggles ---- */
.moresheet .mhead{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;opacity:.45;
  padding:8px 11px 5px}
.moresheet .layers{display:flex;flex-wrap:wrap;gap:6px;padding:0 8px 6px}
.moresheet .layers button{font:inherit;font-size:11.5px;padding:5px 9px;border-radius:999px;
  min-height:44px;border:1px solid var(--edge);background:rgba(255,255,255,.04);color:#7f8db0;cursor:pointer}
.moresheet .layers button.on{background:rgba(125,211,252,.16);border-color:rgba(125,211,252,.4);color:#dbeafe}

/* ---- v2.23: the KEY — colour-coded layers explain themselves, but only when they're on ---- */
.keybar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom));z-index:21;
  background:rgba(10,14,30,.82);border:1px solid var(--edge);border-radius:12px;
  padding:8px 13px;backdrop-filter:blur(12px);max-width:calc(100vw - 24px);
  display:flex;gap:0;align-items:stretch;
  font-size:10.5px;color:var(--fg);box-shadow:0 6px 26px rgba(0,0,0,.4)}
.keybar.hidden{display:none}
.keybar .kgrp{min-width:0}
.keybar .kgrp + .kgrp{padding-left:14px;border-left:1px solid var(--edge)}
.keybar .kname{font-size:9px;letter-spacing:.05em;text-transform:uppercase;opacity:.5;margin-bottom:3px}
.keybar .kramp{display:flex;height:5px;border-radius:3px;overflow:hidden;margin-bottom:2px;min-width:92px}
.keybar .kramp i{flex:1}
.keybar .kends{display:flex;justify-content:space-between;opacity:.65;font-size:10px}
.keybar .kdots{display:flex;flex-direction:column;gap:3px}
.keybar .kdot{display:flex;align-items:center;gap:6px;opacity:.85}
.keybar .kdot i{width:8px;height:8px;border-radius:50%;flex:none}

/* ---- v2.23.2: the key is dismissible ---- */
.keybar{padding-right:26px}
.keybar .kx{position:absolute;top:4px;right:5px;width:20px;height:20px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  font:inherit;font-size:15px;color:#7f8db0;background:none;border:none;cursor:pointer;
  border-radius:50%;padding:0}
.keybar .kx:active{background:rgba(255,255,255,.08);color:var(--fg)}

/* ---- v2.24: purposeful discovery, display modes and honest data detail ---- */
:where(button,input,summary):focus-visible{outline:2px solid #ffd166;outline-offset:2px}
.sheethead{display:flex;align-items:flex-start;gap:10px;padding:3px 3px 10px}
.sheethead>div{min-width:0;flex:1}.sheethead b{display:block;font-size:15px}.sheethead small{display:block;margin-top:2px;font-size:11px;line-height:1.35;color:#8998bb}
.sheetclose{flex:none;width:44px;height:44px;border-radius:10px;border:1px solid var(--edge);background:rgba(255,255,255,.05);color:var(--fg);font:inherit;font-size:18px;cursor:pointer}
.askclose{position:absolute;right:8px;top:8px;z-index:2}.asksheet .msgs{padding-right:35px}
.placesheet{width:min(390px,calc(100vw - 24px));max-height:calc(100dvh - 70px - env(safe-area-inset-top));padding:10px}
.searchbox{display:flex;gap:6px;margin:0 3px 8px}
.searchbox input{min-width:0;flex:1;height:44px;border:1px solid var(--edge);border-radius:10px;padding:0 12px;background:rgba(255,255,255,.06);color:var(--ink);font:inherit;font-size:14px}
.searchbox button{min-width:44px;padding:0 10px;border:1px solid var(--edge);border-radius:10px;background:rgba(255,255,255,.05);color:var(--dim);font:inherit;font-size:12px;cursor:pointer}.searchbox #searchClear{width:44px;padding:0;font-size:18px}
.findactions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 3px 9px}
.findactions button,.presets button{min-height:44px;padding:7px 9px;border:1px solid var(--edge);border-radius:10px;background:rgba(255,255,255,.05);color:#cbd6f1;font:inherit;font-size:12px;cursor:pointer}
.findstatus{min-height:0;padding:0 4px 7px;color:#92a1c4;font-size:11.5px;line-height:1.4}
.findresults,.savedplaces{display:flex;flex-direction:column;gap:6px;margin:0 3px 10px}
.find-result,.saved-place{display:grid;grid-template-columns:1fr 44px;gap:6px}
.find-result .open-result,.saved-place .open-saved{min-width:0;text-align:left;padding:9px 10px;border:1px solid var(--edge);border-radius:10px;background:rgba(255,255,255,.05);color:var(--ink);font:inherit;cursor:pointer}
.find-result b,.saved-place b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}.find-result small,.saved-place small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8290b1;font-size:10.5px}
.find-result .save-result,.saved-place .remove-saved{width:44px;border:1px solid var(--edge);border-radius:10px;background:rgba(255,255,255,.04);color:#aab8d9;font:inherit;cursor:pointer}
.near-summary{margin:0 3px 10px;padding:10px 11px;border:1px solid rgba(125,211,252,.25);border-radius:10px;background:rgba(125,211,252,.07);font-size:11.5px;line-height:1.5;color:#becae4}
.near-summary.hidden,.saved-section.hidden{display:none}.near-summary b{color:#fff}.near-summary button{margin-top:7px;min-height:38px;padding:6px 9px;border:1px solid var(--edge);border-radius:8px;background:rgba(255,255,255,.05);color:var(--fg);font:inherit;cursor:pointer}
.moresheet{width:min(340px,calc(100vw - 24px));padding:8px}
.presets{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 8px 8px}.presets button.active{background:rgba(255,209,102,.18);border-color:rgba(255,209,102,.45);color:#ffe9ad}
.advanced{margin:0 2px 4px;border:1px solid var(--edge);border-radius:10px;overflow:hidden}.advanced summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:9px 10px;font-size:12.5px;font-weight:600;cursor:pointer}.advanced summary::-webkit-details-marker{display:none}.advanced summary:after{content:'+';font-size:17px;color:var(--dim)}.advanced[open] summary:after{content:'−'}.advanced summary span{margin-left:auto;margin-right:9px;font-size:10.5px;font-weight:400;color:#7684a5}
.rightnow{max-height:calc(100dvh - 150px);overflow-y:auto}.rightnow button.row{width:100%;border:0;border-radius:8px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.rightnow button.row:hover,.rightnow button.row:focus-visible{background:rgba(255,255,255,.06)}.rightnow .row{min-height:34px}.rightnow .row .meta{font-size:10px;color:#8492b3;margin-left:3px}
body.accessible{--dim:#c4cde3;--edge:rgba(255,255,255,.25);--glass:rgba(5,8,18,.92)}
body.accessible .legend,body.accessible .rightnow,body.accessible .moresheet,body.accessible .placesheet,body.accessible .asksheet{font-size:15px;background:#080d1d;border-color:rgba(255,255,255,.35);backdrop-filter:none}
body.accessible .rightnow .row{min-height:46px;padding:6px 2px}.accessible .rightnow .row .src,.accessible .findstatus,.accessible .sheethead small{font-size:12.5px;opacity:1;color:#b8c5e3}.accessible .moresheet .mrow b,.accessible .find-result b{font-size:15px}.accessible .moresheet .mrow small{font-size:12.5px;opacity:.85}
body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
body.data-view #map{opacity:.12;pointer-events:none;filter:grayscale(.6)}body.data-view .rightnow{top:calc(64px + env(safe-area-inset-top));bottom:calc(36px + env(safe-area-inset-bottom));width:min(620px,calc(100vw - 24px));max-height:none;transform:translateX(-50%);border-color:rgba(125,211,252,.35)}body.data-view .rightnow h3{font-size:16px}
@media (max-width:520px){
  .placesheet,.moresheet{right:8px;width:calc(100vw - 16px);top:calc(66px + env(safe-area-inset-top));max-height:calc(100dvh - 72px - env(safe-area-inset-top))}
  .topbar .brand-city{display:none}.topbar .wx{padding:6px 8px}.topbar .wx #wxDesc{display:none}
  .rightnow{bottom:calc(82px + env(safe-area-inset-bottom))}
}
.moresheet{scrollbar-width:thin;scrollbar-color:#657298 transparent}
.moresheet::-webkit-scrollbar{width:6px}.moresheet::-webkit-scrollbar-thumb{background:#657298;border-radius:999px}

/* ---- v2.26: interactive provenance — the "how do we know this?" ⓘ ---- */
.rowwrap{display:flex;align-items:flex-start;gap:2px}
.rowwrap .row{flex:1;min-width:0}
.prov-i{flex:none;width:30px;height:30px;margin-top:3px;border:none;background:none;color:#4a5578;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  border-radius:8px;transition:color .15s,background .15s}
.prov-i:hover,.prov-i[aria-expanded="true"]{color:var(--accent2,#7dd3fc);background:rgba(125,211,252,.1)}
.prov{margin:2px 0 8px;padding:10px 12px;background:rgba(125,211,252,.06);border-left:2px solid rgba(125,211,252,.4);
  border-radius:0 8px 8px 0;font-size:12px;line-height:1.5}
.prov-q{font-size:10px;letter-spacing:.05em;text-transform:uppercase;opacity:.5;margin-top:7px}
.prov-q:first-child{margin-top:0}
.prov-a{opacity:.9;margin-top:2px}
