/* Contors — extracted from index.html at build time (tools/build-split.js).
   Blocks are concatenated in DOCUMENT ORDER, so the cascade is unchanged. */

/* ---- style block 1 of 6 ---- */
  :root{
    --bg:#0f0f10; --panel:#161a1f; --panel-2:#1e2126; --line:#2a3038; --line-2:#363e48;
    --ink:#f5f6f6; --ink-dim:#a8a8a0; --ink-dim2:#858b95;
    --blaze:#f26722; --blaze-2:#f7885a; --accent:#f26722; --accent-dim:#cc7000;
    --panelW:350px; /* one shared width for every right-docked panel */
    --barsafe:calc(env(safe-area-inset-bottom) * .28);
  --barinner:63px;                                    /* .mbar-inner height */
  --barpad:7px;                                       /* .mbar-inner padding-top (INSIDE --barinner: box-sizing is border-box) */
  --barbord:1px;                                      /* #mobileBar border-top */
  --barh:calc(var(--barinner) + var(--barbord) + var(--barsafe));
  /* Right-hand control rail geometry. Anything that must not sit under the rail should
     use --railclear rather than hardcoding a number. */
  --railw:42px; --railr:12px; --railclear:calc(var(--railr) + var(--railw) + 10px);
  /* Basemap chip, bottom-left. --chipclear is the left edge anything must start past. */
  --uigap:12px;
  --chipl:var(--uigap); --chipw:60px;
  /* Sits one gap above the toolbar, the same gap it keeps from the left edge. */
  --chipb:calc(var(--barh) + var(--uigap));
  --chipclear:calc(var(--chipl) + var(--chipw) + 10px);  /* the bar's TRUE height */ /* trimmed bottom inset so the mobile bar hugs the home indicator a bit closer */
    --app-vh:100vh; /* live-measured visible viewport height (JS overwrites with exact px); 100vh fallback before JS runs */
    --bed:#d8a06a; --feed:#e0c08a; --water:#cdbba0; --sign:#e0a84a; --cam:#c9b59a; --press:#ff4d4f; --access:#e08a44;
    --good:#8fb56a; --marg:#e0a84a; --busted:#ff4d4f;
    --forest:#2e3d2a; --stone:#d6d2c4;
    --mono:'JetBrains Mono',ui-monospace,monospace; --disp:'Sora',system-ui,sans-serif; --body:'Inter',system-ui,sans-serif;
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  #authScreen{position:fixed;inset:0;z-index:99999;background:#0a0a0b;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden}
  #authScreen:before{content:"";position:absolute;inset:0;opacity:.6;pointer-events:none;
    background-image:url(assets/topo.webp);background-size:cover;background-position:center;background-repeat:no-repeat}
  #authScreen.hidden{display:none}
  .authcard{position:relative;width:100%;max-width:370px;background:rgba(20,19,18,.92);backdrop-filter:blur(8px);border:1px solid var(--line-2);border-radius:20px;padding:34px 28px;box-shadow:0 24px 70px rgba(0,0,0,.7);text-align:center}
  .authlogo{display:flex;justify-content:center;margin-bottom:10px}
  .authbrand{font-family:var(--disp);font-weight:800;font-size:30px;color:var(--ink);letter-spacing:-.5px;margin-bottom:6px}
  .authsub{color:var(--ink-dim);font-size:13.5px;margin-bottom:22px}
  .authcard input{width:100%;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:8px;padding:12px 14px;font-family:var(--body);font-size:15px;margin-bottom:11px;outline:none;text-align:left}
  .authcard input:focus{border-color:var(--accent)}
  /* password reveal. The wrapper owns the spacing the bare input used to own, and the
     input gets right padding so long passwords never run under the eye. */
  .pwwrap{position:relative;margin-bottom:11px}
  .pwwrap input{margin-bottom:0 !important;padding-right:44px}
  .pweye{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:34px;height:34px;
    display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;
    color:var(--ink-dim);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .pweye:active{color:var(--accent)}
  .pweye svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;
    stroke-linecap:round;stroke-linejoin:round}
  .brandmark{margin-right:7px;vertical-align:-5px}
  .acctsection{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
  .acctinput{width:100%;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:9px;padding:10px 12px;font-family:var(--body);font-size:14px;margin-bottom:8px;outline:none}
  .acctinput:focus{border-color:var(--accent)}
  .acctmsg{font-size:12.5px;min-height:16px;margin-top:8px;color:var(--good)}
  .acctmsg.err{color:#ff7a5c}
  .autherr{color:#ff7a5c;font-size:12.5px;min-height:16px;margin-bottom:6px}
  .authbtn{width:100%;background:var(--accent);color:#1a0f06;border:none;border-radius:8px;padding:13px;font-family:var(--body);font-weight:700;font-size:15px;cursor:pointer;transition:.15s}
  .authbtn:hover{background:var(--blaze-2)}
  .authbtn:disabled{opacity:.6;cursor:default}
  .authdiv{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--ink-dim2);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-family:var(--mono)}
  .authdiv::before,.authdiv::after{content:"";flex:1;height:1px;background:var(--line-2)}
  .authgoogle{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#1f1f1f;border:none;border-radius:8px;padding:12px;font-family:var(--body);font-weight:600;font-size:14.5px;cursor:pointer;transition:.15s}
  .authgoogle:hover{background:#f1f1f1}
  .authgoogle:disabled{opacity:.6;cursor:default}
  .authtoggle{text-align:center;margin-top:18px;font-size:13px;color:var(--ink-dim)}
  .authtoggle a{color:var(--accent);cursor:pointer;text-decoration:none;margin-left:5px}
  .authtoggle a:hover{text-decoration:underline}
  .authtag{font-family:var(--mono);font-size:10px;letter-spacing:2.5px;color:var(--ink-dim2);text-transform:uppercase;margin-bottom:18px;text-align:center}
  html,body{margin:0;height:100%;height:var(--app-vh);position:relative;background:var(--bg);color:var(--ink);font-family:var(--body);overflow:hidden;overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
  /* Safe-area guard: paint the physical bottom inset in the panel color so a short measured viewport never shows a black bar under the nav. Fixed = anchored to the real viewport, not the (possibly short) body. */
  body::after{content:"";position:fixed;left:0;right:0;bottom:0;height:calc(env(safe-area-inset-bottom) + 1px);background:var(--panel);z-index:9998;pointer-events:none}
  html{background:var(--panel)} /* canvas/gap color = nav color; a short-measured viewport on rotate never shows a black bar */
  #map{position:absolute;inset:0;background:#070809;isolation:isolate}
  .leaflet-container{font-family:var(--body);background:#070809}
  .leaflet-bar a{background:var(--panel);color:var(--ink);border-color:var(--line)}

  /* topbar */
  #topbar{position:absolute;top:0;left:0;right:0;height:56px;z-index:1500;display:flex;align-items:center;gap:8px;padding:0 12px;padding-top:env(safe-area-inset-top);
    background:transparent;pointer-events:none}
  #topbar::before{content:"";position:absolute;left:0;right:0;top:0;height:calc(env(safe-area-inset-top) + 92px);background:linear-gradient(180deg,rgba(8,10,13,.5),transparent);pointer-events:none;z-index:-1}
  #topbar>*{pointer-events:auto}
  #fbBtn{position:absolute;left:50%;top:calc(env(safe-area-inset-top) + 10px);transform:translateX(-50%);z-index:1501;display:flex;align-items:center;gap:7px;background:rgba(16,19,24,.85);color:#fff;border:1px solid var(--line-2);border-radius:999px;padding:8px 18px;font-size:13px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.6px;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.45);pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
  #fbBtn:hover{color:#fff;border-color:var(--accent)}
  .dense-lbl>span{display:inline-block;transform:translate(-50%,-50%)}
.terr-chip{position:absolute;top:calc(env(safe-area-inset-top,0px) + 66px);left:50%;transform:translateX(-50%);z-index:600;display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--blaze);border-radius:11px;padding:8px 11px;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent;max-width:88vw}
.terr-chip .tc-t{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}
.terr-chip .tc-n{font-family:var(--disp);font-size:14px;font-weight:800;color:var(--blaze-2);line-height:1}
.terr-chip .tc-x{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:2px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim);font-size:10px;line-height:1}
.terr-chip .tc-x::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px}
.terr-chip:active{transform:translateX(-50%) scale(.97)}
.terr-lbl{font-family:var(--mono);font-size:12px;font-weight:800;letter-spacing:.3px;color:#fff;white-space:nowrap;transform:translate(-50%,-50%);text-shadow:-1px -1px 0 rgba(0,0,0,.92),1px -1px 0 rgba(0,0,0,.92),-1px 1px 0 rgba(0,0,0,.92),1px 1px 0 rgba(0,0,0,.92),0 0 5px rgba(0,0,0,.85);pointer-events:none}
  .fb-chip{background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim);border-radius:999px;padding:5px 13px;font-size:12.5px;cursor:pointer;font-family:inherit}
  .fb-chip.on{background:rgba(255,138,0,.14);border-color:var(--accent);color:var(--accent)}
  .brand{font-family:var(--disp);font-weight:700;font-size:22px;letter-spacing:-.6px;color:var(--ink);line-height:1;white-space:nowrap;display:flex;align-items:center}
  .brand .logo{display:none}
  .brand small{display:none}

  .brand b{color:var(--ink)}
  #brandHome{flex:0 0 auto;display:flex;align-items:center}
  #brandHome .brandicon{width:27px;height:27px;display:block;color:var(--ink)}
  .mapswitch{flex:0 1 auto;display:flex;align-items:center;gap:4px;background:none;border:none;border-radius:0;padding:4px 2px;margin-left:8px;color:var(--ink);font-family:var(--disp);font-weight:600;font-size:15px;line-height:1;cursor:pointer;max-width:44vw;transition:color .12s}
  .mapswitch:hover,.mapswitch:hover .mapcaret{color:var(--accent)}
  .mapswitch:active{opacity:.75}
  .mapswitch #mapSwitchName{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .mapswitch .mapcaret{flex:0 0 auto;color:var(--ink-dim2);transition:color .12s}
  @media(max-width:600px){ #brandHome .brandicon{width:24px;height:24px} .mapswitch{font-size:14px;margin-left:6px;max-width:42vw} }
  .spacer{flex:1}
  .gobox{display:flex;gap:6px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:5px 8px}
  .gobox input{background:transparent;border:none;color:var(--ink);font-family:var(--mono);font-size:12px;width:220px;outline:none}
  .gobox input::placeholder{color:var(--ink-dim2)}
  .iconbtn{width:44px;height:44px;display:grid;place-items:center;font-size:16px;background:var(--panel);border:1px solid var(--line);border-radius:9px;cursor:pointer;color:var(--ink);flex:0 0 auto;transition:.12s}
  #mapctl .ctlsep{margin-top:0;position:relative}
  #mapctl .ctlsep:before{display:none}
  #mapctl .iconbtn.active,.iconbtn.active{border-color:var(--accent);color:var(--accent)}
  #aiFab .pulse-sq{position:absolute;inset:-2px;border-radius:12px;border:2px solid var(--accent);animation:aiRingGlow 2.2s ease-in-out infinite;pointer-events:none}
  /* "you are here" blue location dot (clears on next action) */
  .myloc-dot{position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#1a73e8;border:3px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.35),0 1px 5px rgba(0,0,0,.5)}
  .myloc-arrow{width:30px;height:30px;display:grid;place-items:center;transition:transform .35s ease;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55))}
  #locBtn.on{color:var(--blaze);border-color:var(--blaze);background:var(--panel);box-shadow:0 0 0 1px var(--blaze),0 0 10px rgba(255,138,0,.35)}
  .myloc-pulse{position:absolute;left:-4px;top:-4px;width:30px;height:30px;border-radius:50%;background:rgba(26,115,232,.4);animation:mylocPulse 2.1s ease-out infinite;pointer-events:none}
  @keyframes mylocPulse{0%{transform:scale(.45);opacity:.85}100%{transform:scale(2.3);opacity:0}}
  .leaflet-lineOvl-pane{}
  .leaflet-div-icon.meas-lbl{background:transparent;border:none;width:auto;height:auto}
  .meas-lbl span{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;background:rgba(18,20,24,.92);color:#5fd0e0;border:1px solid rgba(54,197,216,.55);border-radius:6px;padding:1px 6px;font-family:var(--mono);font-size:10px;font-weight:700;box-shadow:0 1px 4px rgba(0,0,0,.55)}
  /* As you zoom out, segment labels shrink fast so a dense shape doesn't turn into an unreadable pile (and they hide entirely below the tier threshold). */
  .meas-lbl.meas-sm span{font-size:8px;padding:0 4px;border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,.5)}
  .meas-lbl.meas-xs span{font-size:6.5px;padding:0 2.5px;border-radius:4px;border-color:rgba(54,197,216,.4);box-shadow:none}
  .cw{font-family:var(--disp);font-weight:800;letter-spacing:.2px;text-transform:uppercase;white-space:nowrap;display:inline-flex;align-items:baseline}
  .cw svg{height:.74em;width:.95em;align-self:center;margin:0 .01em;flex-shrink:0}
  @keyframes aiRingGlow{0%,100%{opacity:.55;box-shadow:0 0 5px 1px rgba(255,106,31,.5)}50%{opacity:1;box-shadow:0 0 16px 4px rgba(255,106,31,.85)}}
  .iconbtn:hover{border-color:var(--accent);color:var(--accent)}
  .iconbtn.on{border-color:var(--accent);color:var(--accent);background:rgba(255,106,31,.14)}
  button.btn{font-family:var(--disp);text-transform:uppercase;letter-spacing:1px;font-weight:600;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:13px;cursor:pointer;transition:.15s}
  button.btn:hover{border-color:var(--accent);color:var(--accent)}
  button.btn.tiny{padding:6px 9px;font-size:11px}
  button.btn.go{background:var(--accent);border-color:var(--accent);color:#fff}
  button.btn.wide{width:100%}
  button.btn.rec::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--busted);margin-right:6px;vertical-align:middle}
  button.btn.rec.on{background:var(--busted);color:#fff;border-color:var(--busted)}
  button.btn.rec.on::before{background:#fff}

  /* panels */
  .panel{position:absolute;top:60px;bottom:12px;width:var(--panelW);z-index:1200;background:var(--panel);background-image:linear-gradient(rgba(22,26,31,.9),rgba(22,26,31,.9)),url(assets/topo.webp);background-size:cover;background-position:center;background-repeat:no-repeat;z-index:1200;border:1px solid var(--line);border-radius:15px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.55);transition:transform .25s ease}
  #left{right:12px}
  #journalPanel{right:12px}
  #bucksPanel{right:12px}
  #right{right:12px;width:var(--panelW)}
  #left.collapsed{transform:translateX(376px)}
  #right.collapsed{transform:translateX(376px)}
  #addPanel.collapsed{transform:translateX(376px)}
  #journalPanel.collapsed{transform:translateX(376px)}
  #bucksPanel.collapsed{transform:translateX(376px)}
  .ptab{position:absolute;top:50%;transform:translateY(-50%);width:23px;height:70px;background:var(--panel);border:1px solid var(--line);display:grid;place-items:center;cursor:pointer;color:var(--blaze-2);font-size:14px;z-index:1201}
  #left .ptab,#right .ptab,#addPanel .ptab,#bucksPanel .ptab,#journalPanel .ptab{left:-24px;border-radius:11px 0 0 11px;border-right:none}
  .phead{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--line);flex:0 0 auto}
  .phead .t{font-family:var(--disp);text-transform:uppercase;letter-spacing:.3px;font-weight:800;font-size:22px}
  .phead .t b{color:var(--blaze-2)}
  .phead-min{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink-dim);cursor:pointer;transition:.13s}
  .phead-min:hover{color:var(--ink);border-color:var(--accent)}
  .pscroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:10px 12px;display:flex;flex-direction:column;gap:9px}
  .pscroll::-webkit-scrollbar{width:8px}
  .pscroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
  .card{background:var(--panel-2);border:none;border-radius:14px;padding:12px}
  #toolsCard{background:transparent;border:none;padding:0}
  .lbl{font-family:var(--disp);text-transform:uppercase;letter-spacing:.5px;font-size:14px;color:var(--ink);font-weight:600;margin:0 0 11px;display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}
  .lbl .hint{font-family:var(--mono);font-size:9px;color:var(--ink-dim2);letter-spacing:0;text-transform:none}

  .tools{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
  .tool-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .tool-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:13px;padding:11px 8px;min-height:60px;color:var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.4px;cursor:pointer;transition:.13s}
  .tool-tile{aspect-ratio:1/1;min-height:0} /* square tiles, consistent on desktop + mobile */
  .tk-sec-lbl{font-family:var(--mono);font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-dim);margin:0 2px 6px}
  .tk-sec-lbl:nth-of-type(2){margin-top:16px}
  .tool-tile svg{color:var(--blaze)} /* orange icons + white text, matches Map Layers */
  .tool-tile svg{width:28px;height:28px}
  .tool-tile span{font-size:13px;letter-spacing:.3px;text-align:center;line-height:1.15}
  .tool-tile:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
  .tool-tile.active{border-color:var(--blaze);color:var(--blaze);background:rgba(255,122,42,.1)}
  .tool-tile.rec.active{border-color:var(--busted);color:var(--busted);background:rgba(255,84,84,.1)}
.tool-tile.wide{grid-column:1 / -1;flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 15px;min-height:0}
.tool-tile.wide svg{width:20px;height:20px}
.tool-tile.wide span{font-size:12px;letter-spacing:.4px}
.tool-tile.wide:hover{border-color:var(--accent);color:var(--accent);transform:none}
.tool-tile.analysis svg{color:var(--blaze)}
.tool-tile.rec.active svg{color:var(--busted)}
/* tier locks */
.tier-locked{position:relative}
.tier-locked > *{opacity:.5}
.tier-locked .lockbadge{opacity:1 !important;position:absolute;top:6px;right:8px;width:16px;height:16px;color:var(--blaze);pointer-events:none;z-index:2}
.tier-locked .lockbadge svg{width:16px;height:16px;display:block}
/* ---- Parcel line colour --------------------------------------------------
   Regrid serves parcels in their default green (#649d8d), which fights every
   basemap we ship. Their raster tiles can only be restyled by creating a custom
   layer through their API — and that layer id is tied to the API token, so it
   would need recreating every time the token changes.

   Since parcels render in their own Leaflet pane, a CSS filter does the same job
   locally: desaturate the green, then lift it to white. Measured against the old
   parcel lines (ridge-sampled from a screenshot: 38% of line pixels #FFFFFF, with
   #A8A8A0 anti-aliased falloff), grayscale + brightness 1.9 reproduces that —
   a white core with soft grey edges, rather than a hard white stroke.

   To go softer: drop brightness toward 1.5 for light grey (#D7D7D7).

   NOTE the dedicated pane: BLM PLSS section lines also draw into parcelPane, and
   they must NOT be recoloured, so Regrid tiles get regridPane to themselves. */
/* Applies to the RASTER fallback only. Vector parcels are styled directly in
   _parcelStyle(), so the filter is scoped to the tile <img> elements the raster layer
   creates — a vector grid renders <canvas>/SVG and is untouched. */
.regrid-tiles img.leaflet-tile{ filter:grayscale(1) brightness(1.9); }
/* Owner labels. White with a dark halo, so they hold up over bright fields and dark
   timber alike — the same contrast problem the parcel lines had. */
.leaflet-pcLabelPane-pane{ pointer-events:none }
.pc-label{ pointer-events:none; white-space:nowrap; transform:translate(-50%,-50%) }

/* ---- Wind / temp / heading chip ------------------------------------------
   Sits directly above the basemap chip and derives its position from the same
   tokens, so the bottom-left stack stays together on any device.

   Three readings in one glance, kept apart by SHAPE and COLOUR rather than by
   labels: an orange arrow for airflow, a pale cone for which way you're facing,
   and the temperature in the middle. Wind is the single most consequential
   variable in a whitetail hunt, so it gets the accent colour. */
#cmpChip{position:fixed;left:var(--chipl);bottom:calc(var(--chipb) + var(--chipw) + var(--uigap));
  z-index:781;width:var(--chipw);height:var(--chipw);
  display:block;padding:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.22);
  background:rgba(16,19,24,.88);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  cursor:pointer;overflow:hidden}
#cmpChip:active{transform:scale(.96)}
#cmpSvg{width:100%;height:100%;display:block}
#cmpSvg .cmp-north{fill:rgba(255,255,255,.45);font:700 11px var(--mono,monospace);text-anchor:middle;letter-spacing:.4px}
#cmpSvg .cmp-temp{fill:#fff;font:700 20px var(--disp,sans-serif);text-anchor:middle}
/* airflow — tail upwind, head downwind, so it reads as "your scent goes this way" */
#cmpSvg .cmp-wline{stroke:var(--blaze,#f26722);stroke-width:4.6;stroke-linecap:round;opacity:.95}
#cmpSvg .cmp-whead{fill:var(--blaze,#f26722)}
/* facing — a soft wedge, deliberately unlike the arrow so the two never read as one */
#cmpSvg #cmpCone{fill:rgba(255,255,255,.16)}
/* Wind label lives inside the dial now — a caption bar would be clipped by the curve
   at both ends, and the middle of a circle is the only full-width line it has. */
/* Direction carries the accent so it and the arrow read as the same fact; speed is
   secondary, so it sits quieter underneath. */
#cmpSvg .cmp-dir{fill:var(--blaze,#f26722);font:800 16px var(--mono,monospace);
  text-anchor:middle;letter-spacing:.2px}
/* Brighter as well as bigger — at this size contrast does as much for legibility as
   point size, and dim grey on a dark dial was the real problem. */
#cmpSvg .cmp-spd{fill:#e6e9ec;font:700 15.5px var(--mono,monospace);
  text-anchor:middle;letter-spacing:.1px}
#cmpChip.stale .cmp-wind{opacity:.55}
/* Buck Refuge primary action. The panel used to be a title and a lone switch on an
   otherwise empty sheet; this gives the screen an obvious thing to do, and the
   explainer below gives it a reason. */
#brCta{display:flex;flex-direction:column;gap:2px;width:100%;margin:12px 0 4px;padding:13px 15px;
  text-align:left;border-radius:13px;border:1px solid var(--line);background:var(--panel-2,#191d23);
  color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s}
#brCta:active{transform:scale(.995)}
#brCta .br-cta-t{font-family:'Sora',var(--disp);font-weight:700;font-size:14px;letter-spacing:.2px}
#brCta .br-cta-s{font-size:11.5px;color:var(--ink-dim2);font-weight:500}
#brCta.on{background:rgba(242,103,34,.13);border-color:rgba(242,103,34,.55)}
#brCta.on .br-cta-t{color:var(--blaze,#f26722)}
.pc-label span{ display:inline-block; text-align:center; transform:translate(-50%,-50%);
  font:600 10.5px/1.15 -apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  letter-spacing:.02em; color:#fff;
  text-shadow:0 0 3px rgba(0,0,0,.95), 0 0 6px rgba(0,0,0,.75), 0 1px 2px rgba(0,0,0,.9) }
/* ---- Parcel owner card --------------------------------------------------- */
#parcelCard{position:fixed;bottom:calc(var(--barh) + 12px);
  /* Both edges derive from real geometry rather than per-device guesses: it starts past
     the basemap chip on the left and stops before the control rail on the right, so
     changing either one moves this automatically. */
  left:var(--chipclear);right:var(--railclear);max-width:420px;
  z-index:1200;background:var(--panel,#14171c);border:1px solid var(--line);border-radius:14px;
  padding:11px 12px;box-shadow:0 10px 30px rgba(0,0,0,.5);display:none}
#parcelCard.show{display:block}
#parcelCard .pcx{position:absolute;top:8px;right:10px;background:none;border:0;color:var(--ink-dim);
  font-size:20px;line-height:1;padding:4px 6px;cursor:pointer}
#parcelCard .pcown{font-size:14.5px;font-weight:700;color:var(--ink);padding-right:22px;line-height:1.3;
  overflow-wrap:anywhere}
#parcelCard .pcaddr{font-size:12px;color:var(--ink-dim);margin-top:3px;line-height:1.3}
#parcelCard .pcmeta{display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:8px;font-size:11px;color:var(--ink-dim2)}
#parcelCard .pcmeta b{color:var(--ink-dim);font-weight:600}
#parcelCard .pcsave{display:block;width:100%;margin-top:10px;padding:9px;border-radius:10px;
  border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--ink);
  font:700 12px var(--disp,sans-serif);letter-spacing:.2px;cursor:pointer}
#parcelCard .pcsave:active{transform:scale(.99)}
#parcelCard .pcsave.done{border-color:rgba(74,222,128,.5);color:#4ade80;background:rgba(74,222,128,.10)}
#parcelCard .pcsave[disabled]{opacity:.5}
#parcelCard .pcupsell{margin-top:8px;font-size:10.5px;color:var(--blaze,#f26722);font-weight:600}
#parcelCard .pcnote{font-size:9.5px;color:var(--ink-dim2);margin-top:7px;padding-top:6px;border-top:1px solid var(--line);line-height:1.35}
#parcelCard.busy .pcown{opacity:.5}

/* ---- Signup: 6-digit confirmation ---------------------------------------- */
#authOtpWrap{display:none;text-align:center}
#authOtpWrap.show{display:block}
/* Set-a-new-password panel. Deliberately the same shape as the OTP panel so a reset
   reads as one continuous task instead of a different screen. */
#authNewPw{display:none;text-align:center}
#authNewPw.show{display:block}
#authNewPw h3{margin:0 0 6px;font-size:19px;font-weight:700;color:var(--ink);letter-spacing:-.2px}
#authNewPwErr{min-height:18px;font-size:12.5px;margin:10px 0 2px;color:#ff6b52}
#authForgotWrap{text-align:center;margin-top:14px;font-size:12.5px}
#authForgot{color:var(--ink-dim);cursor:pointer;text-decoration:none;border-bottom:1px solid transparent}
#authForgot:hover{color:var(--ink);border-bottom-color:var(--line)}
#authForgot.dim{opacity:.5;pointer-events:none}
#authOtpWrap h3{margin:0 0 6px;font-size:19px;font-weight:700;color:var(--ink);letter-spacing:-.2px}
#authOtpWrap .otpsub{font-size:13.5px;color:var(--ink-dim);line-height:1.6;margin-bottom:22px}
#authOtpWrap .otpsub b{color:var(--ink);font-weight:600;word-break:break-all}
/* Individual cells, the convention for this input everywhere it's done well. A single
   field with a placeholder reads as a form control; discrete cells read as a code. */
#authOtpBoxes{display:flex;gap:8px;justify-content:center;margin-bottom:4px}
#authOtpBoxes input{width:46px;height:56px;padding:0;text-align:center;
  font-family:var(--mono,monospace);font-size:23px;font-weight:700;color:var(--ink);
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.13);border-radius:10px;
  caret-color:var(--accent);transition:border-color .12s,background .12s,box-shadow .12s;
  -moz-appearance:textfield}
#authOtpBoxes input::-webkit-outer-spin-button,#authOtpBoxes input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
#authOtpBoxes input:focus{outline:none;border-color:var(--accent);
  background:rgba(242,103,34,.07);box-shadow:0 0 0 3px rgba(242,103,34,.16)}
#authOtpBoxes input.filled{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.06)}
#authOtpBoxes.err input{border-color:rgba(255,107,82,.6)}
@media (max-width:380px){ #authOtpBoxes{gap:6px} #authOtpBoxes input{width:41px;height:51px;font-size:21px} }
#authOtpErr{min-height:18px;font-size:12.5px;margin:10px 0 2px;color:#ff6b52}
#authOtpErr.ok{color:#54c07a}
#authOtpVerify:disabled{opacity:.4;cursor:default}
#authOtpWrap .otpfoot{margin-top:18px;padding-top:15px;border-top:1px solid var(--line);
  font-size:12.5px;color:var(--ink-dim2);line-height:2}
#authOtpWrap .otpfoot a{color:var(--ink-dim);cursor:pointer;text-decoration:none;border-bottom:1px solid transparent}
#authOtpWrap .otpfoot a:hover{color:var(--ink);border-bottom-color:var(--line)}
#authOtpWrap .otpfoot a.dim{color:var(--ink-dim2);opacity:.55;pointer-events:none;border-bottom:0}


/* ---- Offline: top-bar button, sheet, area picker ------------------------- */
#offBtn{position:relative;display:flex;align-items:center;justify-content:center}
#offBtn.is-off{color:var(--accent)}
#offBtn #offBtnIcon{display:flex;align-items:center;justify-content:center;line-height:0}
/* Centred by transform, NOT inset:0 — an absolutely positioned box with an explicit
   width can't also honour right/bottom, so inset pinned it to the corner. */
#offBtn .offring{position:absolute;top:50%;left:50%;width:34px;height:34px;
  transform:translate(-50%,-50%);pointer-events:none;display:none}
#offBtn.is-busy .offring{display:block}
#offBtn .offring circle{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;
  transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .25s linear}
/* Offline maps: a header dropdown, same species as the Properties panel — the button
   lives in the top row, so the sheet falls from the top row (anchored right, under it). */
#offSheet{position:absolute;inset:0;z-index:10060;display:none;align-items:flex-start;justify-content:flex-end;background:transparent;padding:0}
#offSheet.show{display:flex}
#offSheet .oscard{position:absolute;top:calc(50px + env(safe-area-inset-top));right:10px;
  width:min(380px,calc(100vw - 20px));max-height:min(72vh,580px);overflow-y:auto;
  background:var(--panel,#14171c);
  background-image:linear-gradient(rgba(22,26,31,.92),rgba(22,26,31,.92)),url(assets/topo.webp);
  background-size:cover;background-position:center;
  border:1px solid var(--line-2);border-radius:14px;padding:15px 15px 13px;
  box-shadow:0 18px 52px rgba(0,0,0,.62);transform-origin:top right;animation:propDrop .15s ease}
#offSheet .oshead{display:flex;align-items:flex-start;gap:10px;margin-bottom:6px}
#offSheet .oshead svg{width:20px;height:20px;color:var(--accent);flex:none;margin-top:3px}
#offSheet h4{margin:0;font-family:var(--disp);font-size:21px;letter-spacing:-.3px;font-weight:700;color:var(--ink);flex:1}
#offSheet .ossub{font-size:12px;color:var(--ink-dim);line-height:1.5;margin:-2px 0 12px 30px}
#offSheet .osx{background:none;border:0;color:var(--ink-dim);font-size:22px;line-height:1;padding:2px 6px;cursor:pointer}
.os-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--line)}
.os-ico{width:34px;height:34px;border-radius:9px;background:rgba(242,103,34,.13);display:flex;
  align-items:center;justify-content:center;flex:none;color:var(--accent)}
.os-ico svg{width:17px;height:17px}
.os-txt{flex:1;min-width:0}
.os-row .osnm{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-row .osmeta{font-size:11.5px;color:var(--ink-dim);margin-top:2px;font-variant-numeric:tabular-nums}
.os-act{background:none;border:0;color:var(--ink-dim);padding:7px;cursor:pointer;display:flex;flex:none}
.os-act svg{width:18px;height:18px}
.os-act.danger{color:#ff6b52}
#offAddBtn{display:flex;align-items:center;justify-content:center;gap:8px}
#offAddBtn svg{width:16px;height:16px}
.os-empty{display:flex;flex-direction:column;align-items:center;gap:9px;padding:24px 10px;color:var(--ink-dim)}
.os-empty svg{width:34px;height:34px;opacity:.4}
.os-empty span{font-size:12.5px}
/* area picker */
#offPick{position:fixed;inset:0;z-index:10040;display:none;pointer-events:none}
#offPick.show{display:block}
#offPickBox{position:absolute;border:2px solid var(--accent);border-radius:4px;pointer-events:auto;
  cursor:move;box-shadow:0 0 0 9999px rgba(6,8,11,.62);touch-action:none}
/* The frame is fixed on screen. Zooming the map underneath is what changes the area it
   covers — corner handles were a second way to do one job, and they crowded the map. */
#offPickBox{pointer-events:none!important}
#offPickBox .oh{display:none}
#offPickBox .oh:after{content:"";position:absolute;width:13px;height:13px;border:2.5px solid var(--accent);
  background:#0d1014;border-radius:3px;top:50%;left:50%;transform:translate(-50%,-50%)}
#offPickBox .oh.nw{top:-15px;left:-15px;cursor:nwse-resize}
#offPickBox .oh.ne{top:-15px;right:-15px;cursor:nesw-resize}
#offPickBox .oh.sw{bottom:-15px;left:-15px;cursor:nesw-resize}
#offPickBox .oh.se{bottom:-15px;right:-15px;cursor:nwse-resize}
#offPickTop{position:absolute;top:0;left:0;right:0;padding:calc(env(safe-area-inset-top) + 10px) 14px 12px;
  pointer-events:auto;background:linear-gradient(180deg,rgba(8,10,13,.92),rgba(8,10,13,0))}
#offPickTop .optl{font-size:15px;font-weight:600}
#offPickTop .ophints{display:flex;gap:14px;margin-top:6px}
#offPickTop .ophints i{display:flex;align-items:center;gap:5px;font-style:normal;font-size:11px;color:var(--ink-dim)}
#offPickTop .ophints svg{width:14px;height:14px}
#offPickBar{position:absolute;left:0;right:0;bottom:0;padding:12px 14px calc(12px + env(safe-area-inset-bottom));
  pointer-events:auto;background:linear-gradient(0deg,rgba(8,10,13,.94),rgba(8,10,13,.55) 70%,transparent)}
#offPickBar .opstat{display:flex;align-items:baseline;gap:8px;margin-bottom:9px}
#offPickBar .opsize{font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}
#offPickBar .optiles{font-size:11.5px;color:var(--ink-dim)}
#offPickBar .opwarn{color:var(--accent)}
#offPickBar .oprow{display:flex;gap:8px}
#offPickBar select{flex:1}
#offCap{font-size:11px;color:var(--accent);margin-top:7px;display:none}

/* upgrade / redeem sheet */
.upg-ov{position:fixed;inset:0;z-index:10050;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.62);padding:18px}
.upg-ov.show{display:flex}
.upg-card{position:relative;width:100%;max-width:380px;max-height:92vh;overflow:auto;background:var(--panel,#161a1f);border:1px solid var(--line-2,#363e48);border-radius:18px;padding:46px 22px 18px;box-shadow:0 24px 60px rgba(0,0,0,.5);font-family:var(--body)}
.upg-x{position:absolute;top:11px;right:13px;background:none;border:none;color:var(--ink-dim2);font-size:15px;cursor:pointer;line-height:1}
.upg-back{position:absolute;top:9px;left:11px;background:none;border:none;color:var(--ink-dim2);cursor:pointer;line-height:0;padding:4px;border-radius:8px}
.upg-back:hover{color:var(--ink);background:var(--panel-2)}
.upg-badge{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(255,138,0,.12);color:var(--blaze);margin-bottom:14px}
.upg-badge svg{width:22px;height:22px}
.upg-h{font-family:var(--disp);font-weight:800;font-size:17.5px;margin:0 0 6px;color:var(--ink);letter-spacing:-.015em;line-height:1.2;text-wrap:balance}
.upg-sub{margin:0 0 16px;font-size:13.5px;color:var(--ink-dim);line-height:1.5}
.upg-list{list-style:none;margin:0 0 16px;padding:0}
.upg-list li{position:relative;padding:7px 0 7px 22px;font-size:13.5px;color:var(--ink);border-top:1px solid var(--line)}
.upg-list li:before{content:'';position:absolute;left:2px;top:12px;width:9px;height:9px;border-radius:50%;background:var(--good)}
.upg-price{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--ink);margin:0 0 16px;display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}
.upg-price span{font-size:12px;color:var(--ink-dim);font-weight:600}
.upg-price i{font-style:normal;color:var(--ink-dim2);font-size:12px;font-weight:500}
.upg-tiers{display:flex;flex-direction:column;gap:11px;margin:0 0 14px}
.upg-tier{position:relative;border:1px solid var(--line-2);border-radius:13px;padding:13px 14px;background:var(--panel-2)}
.upg-tier-best{border-color:var(--blaze);box-shadow:0 0 0 1px var(--blaze)}
.upg-tier-badge{position:absolute;top:-9px;right:12px;background:var(--blaze);color:#1a0f06;font-family:var(--disp);font-size:9.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;padding:3px 9px;border-radius:20px}
.upg-tier-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.upg-tier-nm{font-family:var(--disp);font-weight:800;font-size:15px;color:var(--ink);text-transform:uppercase;letter-spacing:.5px}
.upg-tier-price{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--ink)}
.upg-tier-price i{font-style:normal;font-size:11px;color:var(--ink-dim);font-weight:600}
.upg-tier-yr{font-size:11.5px;color:var(--ink-dim);margin-top:1px}.upg-tier-yr s{color:var(--ink-dim2);opacity:.75;margin-right:4px}.upg-tier-yr b.fnd{color:var(--blaze-2)}.upg-founder{margin:0 0 14px;padding:9px 11px;border:1px dashed rgba(242,103,34,.5);border-radius:10px;background:rgba(242,103,34,.06);font-size:11px;line-height:1.5;color:var(--ink-dim);text-align:center}.upg-founder b{color:var(--blaze-2);font-weight:700}
.upg-tier-yr b{color:var(--blaze-2);font-weight:700}
.upg-bill{display:flex;gap:6px;background:var(--panel-2,#1a1f26);border-radius:11px;padding:4px;margin:2px 0 12px}
.upg-billbtn{flex:1;border:0;background:transparent;color:var(--ink-dim);font-size:13px;font-weight:600;padding:8px 6px;border-radius:8px;cursor:pointer}
.upg-billbtn.on{background:var(--blaze);color:#1a0f06}
.upg-save{font-size:10px;font-weight:700;opacity:.9}
.upg-reassure{margin-top:6px;font-size:11px;line-height:1.3;color:var(--ink-dim2,var(--ink-dim));text-align:center;letter-spacing:.1px}
.upg-buy{width:100%;margin-top:10px;min-height:48px;padding:9px 10px;border:0;border-radius:10px;background:var(--blaze);color:#1a0f06;font-size:13.5px;line-height:1.25;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center}
.upg-buy.best{box-shadow:0 6px 18px rgba(242,103,34,.35)}
.upg-buy:disabled{opacity:.6}
.upg-tier-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.upg-tier-list li{position:relative;padding-left:15px;font-size:12px;color:var(--ink-dim);line-height:1.35}
.upg-tier-list li:before{content:'';position:absolute;left:0;top:5px;width:6px;height:6px;border-radius:50%;background:var(--blaze)}
.upg-promo{border:1px solid rgba(242,103,34,.4);border-radius:12px;padding:12px 14px;margin-top:2px}
#coSheet{position:fixed;inset:0;z-index:130000;display:none;align-items:flex-start;justify-content:center;background:rgba(8,10,13,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);overflow-y:auto;padding:0}
#coSheet.show{display:flex}
.co-card{width:min(560px,100%);background:var(--panel);border:1px solid var(--line-2);border-radius:0 0 16px 16px;padding:0 0 14px;margin:0 auto;min-height:100vh}
@media(min-width:600px){.co-card{min-height:0;margin:26px auto;border-radius:16px}}
.co-top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:2}
.co-ttl{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim2)}
.co-x{background:none;border:none;color:var(--ink-dim2);font-size:16px;cursor:pointer;line-height:1;padding:4px 6px;border-radius:8px}
.co-x:hover{color:var(--ink);background:var(--panel-2)}
#coMount{padding:6px 10px 0;min-height:340px}
.co-foot{padding:12px 16px 2px;text-align:center;font-size:10.5px;color:var(--ink-dim2);line-height:1.5}
.upg-rlbl{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim2);margin-bottom:9px}
.upg-row{display:flex;gap:8px}
.upg-row input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line-2);border-radius:9px;padding:10px 11px;color:var(--ink);font-family:var(--mono);font-size:13px;text-transform:uppercase}
.upg-row input:focus{outline:none;border-color:var(--blaze)}
.upg-row button{background:var(--blaze);border:none;border-radius:9px;padding:10px 16px;font-weight:700;font-size:13px;color:#1a0f06;cursor:pointer;font-family:var(--body);white-space:nowrap}
.upg-row button:disabled{opacity:.6;cursor:default}
.upg-rhint{font-size:10.5px;line-height:1.45;color:var(--ink-dim2);margin-top:8px}
.upg-rhint b{color:var(--ink-dim);font-weight:700}
.upg-msg{font-size:12px;margin-top:9px;min-height:14px;color:var(--ink-dim)}
.upg-msg.ok{color:var(--good)}
.upg-msg.err{color:var(--busted)}
.upg-foot{text-align:center;font-size:11px;line-height:1.55;color:var(--ink-dim2);margin-top:14px}
.upg-foot b{color:var(--ink-dim)}
.upg-legal{margin-top:7px}
.upg-legal a{color:var(--blaze-2);text-decoration:underline;display:inline-block;padding:11px 6px}
.off-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--ink)}
.off-dim{font-size:11.5px;color:var(--ink-dim2)}
.off-bar{height:6px;border-radius:99px;background:var(--panel-2);overflow:hidden}
.off-bar>i{display:block;height:100%;width:0;background:var(--blaze);transition:width .25s ease}
.off-pack{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;margin-top:6px;border:1px solid var(--line);border-radius:9px;background:var(--bg)}
.off-pack b{font-size:12.5px;color:var(--ink);font-weight:600}
.off-pack .off-del{flex:0 0 auto;background:none;border:1px solid rgba(255,90,60,.4);color:#ff4d4f;border-radius:8px;font-size:11px;padding:6px 10px;cursor:pointer}
.pf-refuge{display:block;width:100%;margin-top:7px;padding:9px 10px;min-height:38px;border:1px solid rgba(242,103,34,.45);border-radius:9px;background:rgba(242,103,34,.08);color:var(--blaze-2);font-size:12px;font-weight:600;cursor:pointer;text-align:center}
.pf-refuge:active{transform:scale(.98)}
/* Account identity + plan card */
.acct-id{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.acct-avatar{flex:0 0 auto;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--blaze);color:#1a0f06;font-family:var(--disp);font-weight:800;font-size:17px;letter-spacing:.02em}
/* Edit sits on the name itself rather than as a separate row — one affordance instead
   of three, and it reads as "change this" where the thing to change actually is. */
/* Signed in: initials replace the generic person glyph, so the map itself shows you're
   logged in and as whom. */
/* Initials replace the person glyph, but the button keeps the same dark treatment as
   the icons beside it — a blaze-filled tile pulled the eye to the least urgent control
   on the bar. */
#accountBtn #acctInitials{display:none;font:800 12.5px/1 var(--disp,sans-serif);letter-spacing:.02em;color:#f3efe9}
#accountBtn.signedin #acctGlyph{display:none}
#accountBtn.signedin #acctInitials{display:block}
/* A scaled photo has to be clipped by something. .lk-card already sets overflow:hidden;
   these two didn't, so a zoomed image would spill over the layout. */
.lk-photo,.tr-photo{overflow:hidden}
.lk-photowrap{overflow:hidden;border-radius:13px}
.foc-modal{position:fixed;inset:0;z-index:11000;background:rgba(0,0,0,.72);display:flex;
  align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}
.foc-box{width:100%;max-width:330px;background:var(--panel);border:1px solid var(--line);
  border-radius:16px;padding:16px}
.foc-hd{font:700 14px/1.3 var(--disp,sans-serif);color:var(--ink);margin-bottom:12px}
/* Matches the card aspect so the preview is honest */
.foc-frame{position:relative;width:100%;aspect-ratio:1/1.3;overflow:hidden;border-radius:12px;
  background:#000;touch-action:none}
.foc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  cursor:grab;user-select:none;-webkit-user-drag:none}
.foc-img:active{cursor:grabbing}
.foc-zoom{width:100%;margin:11px 0 2px;accent-color:var(--blaze,#f26722)}
.foc-hint{margin-top:9px;font-size:11.5px;color:var(--ink-dim2);text-align:center}
.foc-btns{display:flex;gap:8px;margin-top:13px}
.foc-btns .btn{flex:1}
.acct-editlink{margin-left:auto;align-self:flex-start;flex:0 0 auto;
  display:inline-flex;align-items:center;gap:5px;
  background:none;border:0;padding:4px 6px;border-radius:7px;cursor:pointer;
  color:var(--ink-dim2,#7c848d);font:600 10.5px/1 var(--mono,monospace);letter-spacing:.6px;text-transform:uppercase}
.acct-editlink:active{background:rgba(255,255,255,.07)}

/* Referral. Deliberately unglamorous: a field, a button, and the two numbers that make
   it feel worth doing again. */
.acct-share{padding:0;margin:0 0 14px}
.acct-share-hd{display:flex;align-items:baseline;gap:8px;font:700 12.5px/1.3 var(--disp,sans-serif);color:var(--ink)}
.acct-share-nums{margin-left:auto;flex:0 0 auto;font:600 10.5px/1 var(--mono,monospace);
  letter-spacing:.4px;color:var(--ink-dim2);white-space:nowrap}
.acct-share-nums b{color:var(--blaze)}
.acct-share-row{display:flex;gap:8px;align-items:stretch;margin-top:8px}
.acct-share-row .acctinput{flex:1 1 auto;margin:0}
.acct-share-row .btn{flex:0 0 auto;padding:0 18px;font-weight:700}
.acct-share .acctinput+.acctinput,.acct-share-row+.acctinput{margin-top:8px}
/* ---- Account panel v2: grouped cards, scannable rows -------------------------- */
.a2-card{background:var(--panel-2,rgba(255,255,255,.03));border:1px solid var(--line);border-radius:13px;padding:11px 14px;margin-top:9px}
.a2-cardhead{font:700 11px/1 var(--disp,sans-serif);text-transform:uppercase;letter-spacing:.7px;color:var(--ink-dim);margin:0 0 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.a2-cap{font-size:11.5px;color:var(--ink-dim);line-height:1.45;margin:-4px 0 9px}
.a2-planrow{display:flex;align-items:center;gap:10px}
.a2-planrow .acct-plan-tier{font:800 21px/1.1 var(--disp,sans-serif);color:var(--blaze)}
.a2-planrow .btn.tiny{margin-left:auto;flex:0 0 auto}
.a2-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:none;border:0;border-top:1px solid var(--line);padding:12px 2px;color:var(--ink);font:600 14px/1.2 var(--body,sans-serif);text-align:left;cursor:pointer}
.a2-row:first-of-type{border-top:0;padding-top:2px}
.a2-row:active{opacity:.6}
.a2-rowr{display:flex;align-items:center;gap:7px;flex:0 0 auto;color:var(--ink-dim);font:600 12.5px/1 var(--body,sans-serif)}
.a2-pill{border:1px solid var(--line-2);border-radius:999px;padding:4px 10px;font:700 11px/1 var(--body,sans-serif);color:var(--ink-dim)}
.a2-chev{opacity:.55}
.a2-ref{border:1px solid rgba(249,115,22,.45);background:linear-gradient(160deg,rgba(249,115,22,.14),rgba(249,115,22,.04));border-radius:14px;padding:12px 13px;margin:0 0 10px}
.a2-ref .acct-share-hd{font-size:14px}
.a2-refsub{font-size:12px;color:var(--ink-dim);line-height:1.45;margin-top:3px}
.a2-signout{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;margin-top:10px}
.a2-danger{display:block;width:100%;background:none;border:0;padding:11px 2px;color:#ff4d4f;font:600 13px/1.2 var(--body,sans-serif);cursor:pointer;text-align:center}
.a2-danger:active{opacity:.6}
.a2-row[disabled],.a2-danger[disabled]{opacity:.45;pointer-events:none}
.a2-card > :last-child{margin-bottom:0}
.a2-card .acctmsg{margin-top:6px;min-height:0}
.a2-card .acctmsg:empty,.a2-ref .acctmsg:empty{display:none}
.a2-ref .acctmsg{margin-top:6px;min-height:0}
.a2-usage{font:600 12px/1.3 var(--body,sans-serif);color:var(--ink-dim);margin:-5px 0 10px}
.a2-disc{border-top:1px solid var(--line);margin-top:4px;padding-top:2px}
.a2-disc .a2-chev{transition:transform .18s ease}
.a2-disc.open .a2-chev{transform:rotate(90deg)}
.a2-discbody{display:none;padding:2px 0 6px}
.a2-disc.open .a2-discbody{display:block}
.a2-discbody .a2-danger{padding-top:14px;text-align:left}
.a2-disc{margin-top:0;padding-top:0}
.a2-disc>.a2-row{border-top:0;padding:13px 2px}
.a2-card>a.a2-row{padding:13px 2px}
.a2-refstat{display:flex;align-items:center;gap:10px;margin-top:9px;padding-top:9px;border-top:1px solid rgba(249,115,22,.28);font:600 12px/1 var(--body,sans-serif);color:var(--ink-dim)}
.a2-refstat b{margin-left:auto;font:800 15px/1 var(--disp,sans-serif);color:var(--blaze)}
.a2-refbar{flex:1 1 auto;height:7px;border-radius:99px;background:rgba(249,115,22,.16);overflow:hidden}
.a2-refbarfill{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#c2410c,var(--blaze));transition:width .5s ease}
.acct-id-txt{min-width:0;display:flex;flex-direction:column;gap:1px}
.acct-id-txt b{color:var(--ink);font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-id-txt span{font-size:12px;color:var(--ink-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-id-since{color:var(--ink-dim2)!important;font-size:11px!important}
.acct-plancard{padding:0}
.acct-plan{display:flex;align-items:center;justify-content:space-between;gap:10px}
.acct-plan-tier{font-family:var(--disp);font-weight:800;font-size:17px;color:var(--blaze-2)}
.acct-plan-tier.prem{color:var(--blaze)}
.acct-plan-detail{font-size:12px;color:var(--ink-dim);margin-top:6px;line-height:1.45}
.ml-base.base-locked{opacity:.6;position:relative}
.ml-base.base-locked .lockbadge{position:absolute;bottom:6px;right:6px;width:16px;height:16px;color:var(--blaze);pointer-events:none;z-index:3}
.ml-base.base-locked .lockbadge svg{width:16px;height:16px;display:block}

  /* Add-Marker as a page (mirrors the Field Kit section pattern) */
  #addPanel #toolsBack{display:none}
  #addPanel #markerPickWrap{display:none}
  #addPanel.markerpage #toolsBack{display:flex}
  #addPanel.markerpage #toolsCard{display:none}
  #addPanel.markerpage #markerPickWrap{display:block}
  #addPanel #hubPageWrap{display:none}
  #addPanel.hubpage #toolsBack{display:flex}
  #addPanel.hubpage #toolsCard{display:none}
  #addPanel.hubpage #hubPageWrap{display:block}
#refugePageWrap{display:none}
#addPanel.refugepage #toolsBack{display:flex}
#addPanel.refugepage #toolsCard{display:none}
#addPanel.refugepage #refugePageWrap{display:block}
  #addPanel .card.fk{display:block;background:transparent;border:none;padding:0;margin:0}
  #addPanel .card.fk .fk-head,#addPanel .card.fk .fk-preview{display:none!important}
  #addPanel .card.fk .fk-body{display:block!important;padding:2px 2px 4px}
  .fk-square .fk-sq-v2-OLD{display:none}
  /* Field Kit: 2x2 launcher grid, each square opens its section full-panel */
  .fk-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0}
  .fk-square{display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:1.2/1;background:var(--panel-2);border:1px solid var(--line-2);border-radius:16px;padding:14px;cursor:pointer;color:var(--ink);transition:.13s;text-align:left}
  .fk-sq-top{display:flex;align-items:center;gap:8px}
  .fk-sq-stats{display:flex;flex-direction:column;gap:3px}
  .fk-square .fk-sq-v{font-family:var(--disp);font-weight:700;font-size:17px;color:var(--ink);line-height:1.15}
  .fk-square .fk-sq-v2,.fk-square .fk-sq-v3{font-family:var(--mono);font-size:10.5px;color:var(--ink-dim);letter-spacing:.2px;line-height:1.4}
  .fk-square:hover{border-color:var(--accent);transform:translateY(-1px)}
  .fk-square:active{transform:scale(.98)}
  .fk-square .fk-sq-ico{color:var(--blaze);line-height:0}
  .fk-square .fk-sq-ico svg{width:27px;height:27px}
  #habScanOv{position:fixed;inset:0;z-index:1240;background:rgba(0,0,0,.5);display:none;align-items:flex-end;justify-content:center;padding:0 0 var(--navH,60px)}
  #habScanOv.on{display:flex}
  #habScanOv .hs-card{width:100%;max-width:560px;max-height:82vh;overflow:auto;background:var(--panel);border:1px solid var(--line-2);border-radius:20px 20px 0 0;padding:12px 18px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -8px 40px rgba(0,0,0,.55)}
  #habScanOv.hs-results{padding:0;background:transparent;pointer-events:auto;z-index:1250}
  #habScanOv.hs-results .hs-card{position:fixed;left:0;right:0;bottom:var(--navH,64px);width:100%;max-width:100%;height:50dvh;max-height:50dvh;margin:0;display:flex;flex-direction:column;overflow:hidden;border-radius:20px 20px 0 0;padding:0;pointer-events:auto;box-shadow:0 -8px 40px rgba(0,0,0,.55);background-image:linear-gradient(rgba(22,26,31,.97),rgba(22,26,31,.97)),url(assets/topo.webp);background-size:cover;background-position:center}
  #habScanOv.hs-results .hs-grab{flex:0 0 auto;margin:10px auto 8px}
  /* Peek. At 50dvh the sheet leaves ~262px of map under the property header, and a
     suggestion popup runs over 400px — it cannot fit at any pan offset. Shrinking the
     sheet to 200px opens a ~480px band, which does fit, while KEEPING the list
     scrollable so you can walk down the suggestions without dismissing the popup
     each time. Only the summary/scan block is hidden. */
  #habScanOv.hs-results.hv-peek .hs-card{height:200px;max-height:200px}
  #habScanOv.hs-results.hv-peek .hv-fixed{display:none}
  #habScanOv.hs-results .hs-head{flex:0 0 auto;padding:0 15px 12px;margin:0;border-bottom:1px solid var(--line-2)}
  #habScanOv.hs-results .hs-title{font-family:var(--disp);text-transform:uppercase;letter-spacing:.3px;font-weight:800;font-size:20px;color:var(--ink)}
  #habScanOv.hs-results .hs-title b{color:var(--accent);font-weight:800}
  #habScanOv.hs-results .hs-back{background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:24px;line-height:1;padding:0;margin:0}
  .hv-fixed{flex:0 0 auto;padding:12px 15px;border-bottom:1px solid var(--line-2)}
  .hv-scroll{flex:1;overflow:auto;min-height:0;padding:8px 15px 18px;-webkit-overflow-scrolling:touch}
  #habScanOv .hs-grab{display:block;width:40px;height:4px;border-radius:2px;background:var(--line-2);margin:2px auto 12px}
  #habScanOv.hs-results .hs-grab{display:block;width:40px;height:4px;border-radius:2px;background:var(--line-2);margin:2px auto 12px}
  .hv-sum{font-size:12px;color:var(--ink-dim);line-height:1.4;margin-bottom:10px}
  .hv-btns{display:flex;gap:7px}
  .hv-btns button{flex:1;font-size:13px;font-weight:700;border-radius:10px;padding:11px 6px;cursor:pointer;border:1px solid}
  .hv-scan{background:var(--accent);border-color:var(--accent);color:#0d0f12;display:flex;align-items:center;justify-content:center;gap:6px}
  .hv-scan svg{width:16px;height:16px}
  .hv-keep{background:none;border-color:#3aa840;color:#3aa840}
  .hv-del{background:none;border-color:#e5484d;color:#e5484d}
  .hv-run-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin:14px 0 7px}
  .hv-row{display:flex;align-items:flex-start;gap:11px;padding:9px 4px;border-bottom:1px solid rgba(255,255,255,.05)}
  .hv-cb{flex:0 0 auto;width:20px;height:20px;margin-top:2px;accent-color:var(--accent)}
  .hv-main{flex:1;min-width:0;cursor:pointer}
  .hv-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .hv-tag{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;border:1px solid;border-radius:5px;padding:1px 6px}
  .hv-nm{font-size:13.5px;color:var(--ink);font-weight:600}
  .hv-note{font-size:11.5px;color:var(--ink-dim);line-height:1.35;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .hv-row.exp .hv-note{-webkit-line-clamp:unset;display:block}
  .hv-row.sel .hv-nm{color:var(--accent)}
  #habScanOv .hs-scan{position:relative;width:100%;aspect-ratio:16/10;border-radius:13px;overflow:hidden;background:#0d0f12;border:1px solid var(--line-2)}
  #habScanOv .hs-scan img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}
  #habScanOv .hs-scan .hs-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(249,115,22,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(249,115,22,.10) 1px,transparent 1px);background-size:26px 26px;pointer-events:none}
  #habScanOv .hs-scan .hs-line{position:absolute;left:4%;right:4%;top:8%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 18px 3px rgba(249,115,22,.6);animation:hsScan 1.9s ease-in-out infinite}
  @keyframes hsScan{0%{top:8%}50%{top:90%}100%{top:8%}}
  #habScanOv .hs-scan .hs-stat{position:absolute;left:0;right:0;bottom:0;padding:14px 13px 11px;background:linear-gradient(to top,rgba(0,0,0,.86),rgba(0,0,0,.25) 65%,transparent);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.5px;text-shadow:0 1px 5px #000}
  #habScanOv .hs-progwrap{margin-top:14px;overflow:hidden}
  #habScanOv .hs-pct{float:right;font-family:var(--mono);font-size:12.5px;color:var(--accent);font-weight:700}
  #habScanOv .hs-sub{font-size:12.5px;color:var(--ink-dim)}
  #habScanOv .hs-prog{clear:both;height:6px;border-radius:4px;background:rgba(255,255,255,.1);margin-top:10px;overflow:hidden}
  #habScanOv .hs-prog i{display:block;height:100%;width:0;background:var(--accent);border-radius:4px;transition:width .45s cubic-bezier(.3,.7,.3,1)}
  @media(min-width:640px){#habScanOv .hs-card{max-width:560px}}
  #habScanOv .hs-head{display:flex;align-items:center;gap:4px;margin-bottom:10px}
.hs-head .hs-x{margin-left:auto}
.hs-back{background:none;border:0;color:var(--ink);font-size:30px;line-height:1;cursor:pointer;padding:0 6px 0 0;margin:-2px 0}
  #habScanOv .hs-title{font-family:var(--disp);font-weight:700;font-size:18px;color:var(--ink)}
  #habScanOv .hs-x{background:none;border:0;color:var(--ink-dim);font-size:26px;line-height:1;cursor:pointer;padding:0 4px}
  #habScanOv .hs-msg{color:var(--ink-dim);font-size:14px;line-height:1.5}
  #habScanOv .hs-read{color:var(--ink);font-size:14.5px;line-height:1.6}
  #habScanOv .hs-read b,#habScanOv .hs-read strong{color:var(--blaze)}
  #habScanOv .hs-foot{margin-top:12px;font-family:var(--mono);font-size:10.5px;color:var(--ink-dim);letter-spacing:.3px}
  .hab-prop-ic .hab-sug{display:block;width:17px;height:17px;border-radius:50%;background:var(--kc);border:2.5px solid #22d3ee;box-shadow:0 0 0 2px rgba(34,211,238,.45),0 0 7px rgba(34,211,238,.7)}
  #habScanOv .hs-sum{color:var(--ink);font-size:14.5px;line-height:1.55;margin-bottom:14px}
  #habScanOv .hab-list{display:flex;flex-direction:column;margin-bottom:14px}
  #habScanOv .hab-row{display:flex;align-items:flex-start;gap:10px;padding:11px 4px;border-bottom:1px solid var(--line)}
  #habScanOv .hab-row input{width:19px;height:19px;accent-color:var(--accent);flex:0 0 auto;margin:0}
  #habScanOv .hab-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto}
  #habScanOv .hab-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
  #habScanOv .hab-kl{font-size:13.5px;color:var(--ink);line-height:1.3}
  #habScanOv .hab-k{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.4px;margin-right:2px}
  #habScanOv .hab-n{font-size:12px;color:var(--ink-dim);line-height:1.4}
  #habScanOv .hab-btns{display:flex;gap:10px}
  #habScanOv .hab-add{flex:1;background:var(--accent);color:#1a1205;border:0;border-radius:12px;padding:13px;font-weight:700;font-size:15px;cursor:pointer}
  #habScanOv .hab-disc{background:none;border:1px solid var(--line-2);color:var(--ink-dim);border-radius:12px;padding:13px 18px;font-weight:600;cursor:pointer}
  .fk-square .fk-sq-t{font-family:var(--disp);font-weight:600;font-size:16px;color:var(--ink)}
  .fk-back{display:none;align-items:center;gap:9px;margin-bottom:9px}
  #left.fk-full .fk-back{display:flex}
  .fk-back-btn{background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);width:34px;height:34px;border-radius:10px;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
  .fk-back-btn:hover{border-color:var(--accent);color:var(--accent)}
  .fk-back-title{font-family:var(--disp);font-weight:700;font-size:17px;color:var(--ink)}
  #left .card.fk{display:none}
  #left.fk-full #fkGrid{display:none}
  .phead-back{display:none;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);width:34px;height:34px;border-radius:10px;cursor:pointer;align-items:center;justify-content:center;flex:0 0 auto;padding:0}
  .phead-back:hover{border-color:var(--accent);color:var(--accent)}
  .phead-sub{display:none;min-width:0;font-family:var(--disp);text-transform:uppercase;letter-spacing:.3px;font-weight:800;font-size:22px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .phead-sub b{color:var(--blaze-2)}
  .phead-sub svg{width:18px;height:18px;margin-right:6px;vertical-align:-3px;stroke:var(--blaze)}
  .phead-sub svg *{stroke:var(--blaze)}
  #left.fk-full .phead .t,#left.fk-full .phead .phead-min{display:none}
  #left.fk-full .phead .phead-back{display:flex}
  #left.fk-full .phead .phead-sub{display:block}
  #left.fk-full .fk-back{display:none}
  #addPanel.markerpage .phead .t,#addPanel.hubpage .phead .t,#addPanel.refugepage .phead .t,#addPanel.markerpage .phead .phead-min,#addPanel.hubpage .phead .phead-min,#addPanel.refugepage .phead .phead-min{display:none}
  #addPanel.markerpage .phead .phead-back,#addPanel.hubpage .phead .phead-back,#addPanel.refugepage .phead .phead-back{display:flex}
  #addPanel.markerpage .phead .phead-sub,#addPanel.hubpage .phead .phead-sub,#addPanel.refugepage .phead .phead-sub{display:block}
  #addPanel.markerpage #toolsBack,#addPanel.hubpage #toolsBack,#addPanel.refugepage #toolsBack{display:none}
  #left.fk-full .card.fk.open{display:block;background:transparent}
  #left .card.fk .fk-head,#left .card.fk .fk-preview{display:none!important}
  #left.fk-full .card.fk.open .fk-body{padding-left:2px;padding-right:2px}
  .tool{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 2px;border-radius:8px;border:1px solid var(--line);background:var(--panel);cursor:pointer;transition:.12s;font-size:10.5px}
  /* iOS ignores user-scalable=no, so a fast double-tap on a control fires native double-tap-zoom. manipulation kills that on chrome only; the Leaflet map keeps its own pinch-zoom. */
  .tool,.tool-tile,.btn,.ptab,.pf-cbtn,.pf-compact,.chip,.ml-cat,.ml-base,.mso-tile,button{touch-action:manipulation}
  .tool:active{transform:scale(.94)}
  .tool .dot{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line-2)}
  .tool span{font-family:var(--disp);font-size:10px;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-dim);text-align:center;line-height:1}
  /* ---- Map Layers: Tools-style drill-in ---- */
  .ml-home{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:2px}
  .ml-home.hide{display:none}
  .ml-cat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:14px;padding:18px 10px;cursor:pointer;transition:.13s;color:var(--ink)}
  .ml-cat:hover{border-color:var(--accent);transform:translateY(-1px)}
  .ml-cat:active{transform:scale(.97)}
  .ml-cat .ml-ic{width:30px;height:30px;display:grid;place-items:center;color:var(--blaze)}
  .ml-cat .ml-ic svg{width:28px;height:28px}
  .ml-cat .ml-nm{font-family:var(--disp);font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink);text-align:center;line-height:1.1}
  .ml-cat .ml-cnt{font-family:var(--mono);font-size:9px;color:var(--ink-dim)}
  .ml-detail{display:none}
  .ml-detail.show{display:block}
  .ml-back{display:flex;align-items:center;gap:7px;background:none;border:none;color:var(--accent);font-family:var(--mono);font-size:11px;letter-spacing:.5px;cursor:pointer;padding:2px 0 12px;text-transform:uppercase}
  .ml-back svg{width:14px;height:14px}
  .ml-secttl{font-family:var(--disp);font-size:14px;letter-spacing:.5px;color:var(--ink);text-transform:uppercase;margin:0 0 9px;display:flex;align-items:center;gap:8px}
  .ml-secttl .ml-ic{color:var(--blaze);display:grid;place-items:center}
  .ml-secttl .ml-ic svg{width:20px;height:20px}
  .ml-tilegrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .ml-tilegrid.tg3{grid-template-columns:repeat(3,1fr);gap:7px}
  .ml-tilegrid.tg4{grid-template-columns:repeat(4,1fr);gap:6px}
  .tg4 .ml-tile{padding:9px 3px;min-height:56px;gap:4px}
  .tg4 .ml-tic,.tg4 .ml-tic svg{width:17px;height:17px}
  .tg4 .ml-tnm{font-size:8px;line-height:1.15}
  .ml-base{position:relative;border-radius:13px;overflow:hidden;border:2px solid var(--line-2);cursor:pointer;aspect-ratio:1/1;display:flex;align-items:flex-start;background-size:cover;background-position:center;background-color:var(--panel-2);transition:.13s}
  .ml-base:hover{border-color:var(--accent)}
  .ml-base.sel{border-color:var(--blaze)}
  /* name lives in a bar at the TOP so it's never clipped */
  .ml-base .ml-base-nm{position:relative;width:100%;display:flex;align-items:flex-start;gap:5px;background:linear-gradient(rgba(0,0,0,.82),rgba(0,0,0,.15) 62%,transparent);color:#fff;font-family:var(--mono);font-size:10px;padding:6px 7px 16px;line-height:1.22}
  .ml-base .ml-base-nm .nmtxt{flex:1;min-width:0}
  .ml-base .ml-base-badge{position:absolute;bottom:5px;right:5px;background:var(--blaze);color:#1a1a1a;font-family:var(--mono);font-size:8px;padding:2px 5px;border-radius:5px;letter-spacing:.4px}
  /* selection check sits to the RIGHT of the name, inside the bar — never over the text */
  .ml-base .ml-base-sel{flex:0 0 auto;width:15px;height:15px;border-radius:50%;background:var(--blaze);display:none;place-items:center;margin-top:-1px}
  .ml-base .ml-base-sel svg{width:10px;height:10px;stroke:#1a1206}
  /* selected = blaze name bar + dark text + check — unmistakable */
  .ml-base.sel .ml-base-nm{background:linear-gradient(var(--blaze),rgba(255,138,0,.5) 62%,transparent);color:#1a1206;font-weight:600}
  .ml-base.sel .ml-base-sel{display:grid;background:#1a1206}
  .ml-base.sel .ml-base-sel svg{stroke:var(--blaze)}
  .ml-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:12px;padding:8px 5px;aspect-ratio:1/1;min-height:0;overflow:hidden;cursor:pointer;transition:.13s;color:var(--ink-dim);text-align:center}
  .ml-tile:hover{border-color:var(--accent)}
  .ml-tile .ml-tic{width:20px;height:20px;display:grid;place-items:center}
  .ml-tile .ml-tic svg{width:20px;height:20px}
  .ml-tile .ml-tnm{font-family:var(--mono);font-size:9px;letter-spacing:.2px;line-height:1.2}
  .ovl-op-sec{margin-top:11px;border-top:1px solid var(--line-2);padding-top:9px}
  .ovl-op-h{font-family:var(--mono);font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-dim);margin-bottom:7px}
  .ovl-op-row{display:flex;align-items:center;gap:8px;margin:5px 0}
  .ovl-op-nm{flex:0 0 120px;font-size:11px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ovl-op-sl{flex:1 1 auto;accent-color:var(--accent);height:3px;cursor:pointer;min-width:70px}
  .ovl-op-v{flex:0 0 36px;text-align:right;font-family:var(--mono);font-size:10px;color:var(--ink-dim);font-variant-numeric:tabular-nums}
  .ml-tile .ml-stat{font-family:var(--mono);font-size:8px;letter-spacing:.3px;opacity:.8;line-height:1.25}
  .ml-tile .ml-stat.loading{color:var(--ink-dim2)}
  .ml-tile .ml-stat.ok{color:#5fbf6a}
  .ml-tile .ml-stat.err{color:var(--busted);opacity:1;font-weight:600}
  .ml-tile .ml-stat.nodata{color:#e8b84b}
  .ml-tile.unavail{opacity:.62;border-style:dashed;border-color:var(--busted)}
  .ml-tile.unavail .ml-tic{opacity:.5}
  .ml-tile.on{border-color:var(--blaze);background:rgba(255,122,42,.1);color:var(--blaze)}
  .ml-details{margin-top:13px;border-top:1px solid var(--line-2);padding-top:11px}
  .ml-details>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim)}
  .ml-details>summary::-webkit-details-marker{display:none}
  .ml-details>summary::after{content:'\25B8';margin-left:auto;font-size:11px;transition:transform .15s}
  .ml-details[open]>summary::after{transform:rotate(90deg)}
  .ml-grp-h{font-family:var(--mono);font-size:9.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-dim2);margin:14px 0 8px}
  .ml-more-link{font-family:var(--mono);font-size:10px;color:var(--accent);cursor:pointer;text-align:center;padding:11px 0 2px}
  .tool.active{border-color:var(--accent);background:rgba(255,106,31,.14)}
  .tool.active span{color:var(--accent)}
  .drawrow{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:9px}

  .windwrap{display:flex;gap:14px;align-items:center}
  .compass-col{flex:0 0 auto;display:flex;flex-direction:column;gap:9px;align-items:center}
  .windrange{width:100%;margin-top:8px}
  .sunbar{margin-top:13px}
  .sunbar-track{position:relative;height:14px;border-radius:7px;background:#15110c;border:1px solid var(--line);overflow:hidden}
  .sunbar-seg{position:absolute;top:0;bottom:0;display:none}
  .sunbar-tw{background:linear-gradient(90deg,rgba(255,138,0,.20),rgba(255,138,0,.42))}
  .sunbar-day{background:linear-gradient(90deg,#ffb247,#f26722)}
  .sunbar-now{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff;border-radius:1px;box-shadow:0 0 0 1px rgba(0,0,0,.55)}
  .sunbar-meta{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:9px;color:var(--ink-dim2);text-transform:uppercase;letter-spacing:.4px;margin:0 1px}
  .sunbar-meta:first-child{margin-bottom:5px}
  .sunbar-meta:last-child{margin-top:5px}
  .sunbar-meta span:last-child{color:var(--ink);font-family:var(--disp);font-size:11.5px;letter-spacing:0;text-transform:none;font-weight:600}
  .windwx{margin-top:11px;display:flex;flex-direction:column;gap:6px}
  .wxmini{display:flex;align-items:baseline;justify-content:space-between;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 9px}
  .wxmini .k{font-family:var(--mono);font-size:9px;color:var(--ink-dim2);text-transform:uppercase;letter-spacing:.5px}
  .wxmini .v{font-family:var(--disp);font-size:16px;line-height:1.1}
  .wxmini .v small{font-size:10px;color:var(--ink-dim)}
  .compass{position:relative;width:92px;height:92px;flex:0 0 auto;border-radius:50%;background:radial-gradient(circle at 50% 45%,#241b14,#0d0b09);border:1px solid var(--line-2);cursor:grab;touch-action:none}
  .compass .tick{position:absolute;left:50%;top:5px;transform-origin:50% 41px;font-family:var(--mono);font-size:8px;color:var(--ink-dim);transform:translateX(-50%)}
  .arrow{position:absolute;left:50%;top:50%}
  .arrow b{position:absolute;left:-4px;top:-38px;width:8px;height:38px;background:linear-gradient(var(--blaze),var(--blaze-2));border-radius:4px;box-shadow:0 0 10px rgba(255,106,26,.5)}
  .arrow:after{content:"";position:absolute;left:-4px;top:0;width:8px;height:33px;background:#3a4630;border-radius:4px}
  .windread{flex:1}
  .windread .big{font-family:var(--disp);font-size:29px;font-weight:700;color:var(--blaze-2);line-height:1}
  .windread .sub{font-family:var(--mono);font-size:10px;color:var(--ink-dim);margin-top:2px}
  .sunquick{flex:0 0 auto;margin-left:auto;display:grid;grid-template-columns:auto auto;gap:6px 13px;align-self:center}
  .sunquick .sq{min-width:52px}
  .sunquick .k{font-family:var(--mono);font-size:8.5px;color:var(--ink-dim2);text-transform:uppercase;letter-spacing:.4px;line-height:1}
  .sunquick .v{font-family:var(--disp);font-size:15px;font-weight:600;color:var(--ink);line-height:1.15;margin-top:1px}
  input[type=range]{width:100%;accent-color:var(--blaze);margin-top:8px;height:22px}
  .quickwind{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;margin-top:8px}
  .planrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .planrow input[type=date]{flex:1;min-width:120px;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:8px;padding:6px 8px;font-family:var(--body);font-size:12px;color-scheme:dark}
  .planrow input[type=range]{flex:1;min-width:90px}
  .planhr{font-family:var(--mono);font-size:12px;color:var(--accent);min-width:62px;text-align:right}
  .planbtns{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:8px}
  .quickwind button{font-family:var(--mono);font-size:10px;padding:5px 0;border:1px solid var(--line);background:var(--panel);color:var(--ink-dim);border-radius:5px;cursor:pointer}
  .quickwind button:hover{border-color:var(--blaze);color:var(--blaze-2)}

  .toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--ink-dim);padding:4px 0}
  .switch{position:relative;width:42px;height:23px;border-radius:20px;background:var(--line-2);cursor:pointer;transition:.15s;flex:0 0 auto}
  .switch:after{content:"";position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:#d8d0c6;transition:.15s}
  .switch.on{background:var(--accent)}.switch.on:after{left:21px;background:#fff}

  .lgroup{margin-bottom:9px}
  .lgroup .gh{font-family:var(--mono);font-size:9px;letter-spacing:1px;color:var(--ink-dim2);text-transform:uppercase;margin:0 0 5px}
  .lrow{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--panel);cursor:pointer;margin-bottom:4px;font-size:12.5px}
  .lrow:hover{border-color:var(--line-2)}
  .lrow.sel{border-color:var(--accent);background:rgba(255,106,31,.12);color:var(--accent)}
  .lrow .rb{width:13px;height:13px;border-radius:50%;border:2px solid var(--ink-dim);flex:0 0 auto}
  .lrow.sel .rb{border-color:var(--accent);background:var(--accent)}
  .ovl{padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--panel);margin-bottom:5px}
  .ovl .top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px}
  .ovl .nm{display:flex;align-items:center;gap:7px;line-height:1.2}
  .ovl .nm small{display:block;font-family:var(--mono);font-size:8.5px;color:var(--ink-dim2)}
  .ovl .sw{width:36px;height:20px;border-radius:14px;background:var(--line-2);position:relative;cursor:pointer;flex:0 0 auto}
  .ovl .sw:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#cfd6bd;transition:.15s}
  .ovl.on .sw{background:var(--accent)}.ovl.on .sw:after{left:18px;background:#fff}
  .ovl .op{margin-top:7px;display:none}.ovl.on .op{display:block}

  .wxgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
  .wxcell{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 9px}
  .wxcell .k{font-family:var(--mono);font-size:9px;color:var(--ink-dim2);text-transform:uppercase;letter-spacing:.5px}
  .wxcell .v{font-family:var(--disp);font-size:19px;line-height:1.1;margin-top:2px}
  .wxcell .v small{font-size:11px;color:var(--ink-dim)}
  .movebar{height:10px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:6px}
  .movebar i{display:block;height:100%;background:linear-gradient(90deg,#ff5454,#f2c14e,#6fcf52);transition:width .4s}
  .movelbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--ink-dim);margin-top:5px}

  /* hourly forecast strip */
  .fcstrip{display:flex;gap:5px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:6px 2px 2px;margin-top:6px}
  .fcstrip::-webkit-scrollbar{height:5px}.fcstrip::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px}
  .fch{flex:0 0 auto;width:42px;text-align:center;border:1px solid var(--line);border-radius:8px;padding:5px 2px;background:var(--panel)}
  .fch.best{border-color:var(--good)}
  .fch.dd{background:#2a2410}
  .fch .h{font-family:var(--mono);font-size:8.5px;color:var(--ink-dim)}
  .fch .wv{font-family:var(--mono);font-size:8px;color:var(--ink-dim2);margin-top:1px}
  .fch .mb{height:30px;width:7px;margin:3px auto 2px;background:var(--line);border-radius:3px;position:relative;overflow:hidden}
  .fch .mb i{position:absolute;bottom:0;left:0;width:100%;background:linear-gradient(0deg,#ff5454,#f2c14e,#6fcf52)}
  .fch .t{font-family:var(--disp);font-size:12px}
  .warr{display:inline-block;font-size:9px;color:var(--blaze-2)}

  .stand{border:1px solid var(--line);border-left-width:4px;border-radius:8px;padding:10px;background:var(--panel);margin-bottom:7px}
  .stand h4{font-family:var(--disp);letter-spacing:.5px;margin:0 0 6px;font-size:15px;color:var(--blaze-2);display:flex;align-items:center;gap:6px}
  .verdict{display:inline-block;font-family:var(--mono);font-size:9.5px;font-weight:600;padding:2px 7px;border-radius:5px;letter-spacing:.8px;text-transform:uppercase;margin-left:auto}
  .v-good{background:rgba(111,207,82,.15);color:var(--good);border:1px solid var(--good)}
  .v-marg{background:rgba(242,193,78,.15);color:var(--marg);border:1px solid var(--marg)}
  .v-bust{background:rgba(255,84,84,.15);color:var(--busted);border:1px solid var(--busted)}
  .standnote{font-size:12px;color:var(--ink-dim);line-height:1.5;margin-top:6px}
  .winds{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
  .wtag{font-family:var(--mono);font-size:9.5px;padding:2px 6px;border-radius:5px;border:1px solid var(--line);color:var(--ink-dim)}
  .wtag.s{border-color:var(--good);color:var(--good)}.wtag.o{border-color:var(--marg);color:var(--marg)}

  .mklist{display:flex;flex-direction:column;gap:5px;max-height:240px;overflow-y:auto}
  .mkrow{display:flex;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:var(--panel);cursor:pointer}
  .mkrow:hover{border-color:var(--blaze)}
  .mkrow .dot{width:15px;height:15px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-size:9px}
  .mkrow .mkico{width:24px;height:24px;border-radius:7px;flex:0 0 auto;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line)}
  .mkrow .nm{flex:1;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mkrow .mt{font-family:var(--mono);font-size:8.5px;color:var(--ink-dim2);text-transform:uppercase}
  .empty{font-size:12px;color:var(--ink-dim);line-height:1.55;text-align:center;padding:8px}

  .modlegend{display:flex;gap:10px;margin-top:8px;font-family:var(--mono);font-size:10px;color:var(--ink-dim);flex-wrap:wrap}
  .modlegend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:middle}
  .tunegrid{margin-top:8px;display:flex;flex-direction:column;gap:11px}
  .tunerow{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 8px}
  .tunerow label{grid-column:1;font-size:12px;color:var(--ink);display:flex;flex-direction:column}
  .tunerow label .th{font-size:10.5px;color:var(--ink-dim);font-weight:400;margin-top:1px}
  .tunerow input[type=range]{grid-column:1;width:100%}
  .tunerow .tval{grid-column:2;grid-row:1/3;align-self:center;font-family:var(--mono);font-size:11px;color:var(--accent);min-width:38px;text-align:right}
  /* Buck Refuge panel — disciplined cleanup (v333) */
  .br-sub{font-size:12px;color:var(--ink-dim);line-height:1.45;margin:2px 0 14px}
  .br-eyebrow{font-family:var(--mono);font-size:9.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-dim2)}
  .br-block{margin-top:12px}
  .br-legend{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-dim);margin-top:9px}
  .br-legend i{display:inline-block;width:62px;height:8px;border-radius:3px;background:linear-gradient(90deg,#d0342a,#e8c62e,#3aa840)}
  .br-det{margin-top:10px;border-top:1px solid var(--line);padding-top:11px}
  .br-det>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-dim)}
  .br-det>summary::-webkit-details-marker{display:none}
  .br-det>summary::after{content:'\25B8';margin-left:auto;font-size:11px;transition:transform .15s;color:var(--ink-dim2)}
  .br-det[open]>summary::after{transform:rotate(90deg)}
  .br-help{font-size:11.5px;color:var(--ink-dim);line-height:1.55;margin-top:10px}
  .br-help b{color:var(--ink)}
  .br-scan{font-size:11.5px;color:var(--ink-dim);line-height:1.5;margin-top:4px}
  .br-chk{display:flex;align-items:flex-start;gap:9px;margin-top:12px;font-size:12px;line-height:1.45;color:var(--ink);cursor:pointer}
  .br-chk input{margin-top:2px;flex:none;accent-color:var(--blaze)}
  .br-empty{font-size:12px;color:var(--ink-dim);line-height:1.45;margin-top:7px}
  .brhdr{background:var(--panel-2);border:1px solid var(--line-2);border-radius:14px;padding:14px;cursor:pointer;transition:border-color .15s}
  .brhdr.on{border-color:rgba(255,138,0,.55)}
  .brhdr-row{display:flex;align-items:center;gap:10px}
  .brhdr-ic{color:var(--blaze);display:grid;place-items:center;flex:none}
  .brhdr-ic svg{width:24px;height:24px}
  .brhdr-nm{font-family:var(--disp);font-size:16px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;flex:1}
  .brhdr-desc{font-size:12px;color:var(--ink-dim);line-height:1.45;margin:10px 0 0}

  .urlrow{display:flex;gap:6px;margin-top:8px}
  .urlrow input{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:8px;font-family:var(--mono);font-size:10px;outline:none}
  .presets{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
  .presets button{font-family:var(--mono);font-size:10px;padding:5px 8px;border:1px solid var(--line);background:var(--panel);color:var(--ink-dim);border-radius:7px;cursor:pointer}
  .presets button:hover{border-color:var(--blaze);color:var(--blaze-2)}

  /* rut */
  .rutphase{font-family:var(--disp);font-size:19px;letter-spacing:.5px;color:var(--blaze-2);text-transform:uppercase}
  .rutdate{font-family:var(--mono);font-size:10px;color:var(--ink-dim2)}
  .rutnote{font-size:12px;color:var(--ink-dim);line-height:1.5;margin-top:6px}

  /* journal */
  .jentry{border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--panel);margin-bottom:6px;font-size:12px;color:var(--ink-dim)}
  .jentry .jd{font-family:var(--mono);font-size:9px;color:var(--ink-dim2);display:flex;justify-content:space-between}
  .jentry .jx{color:var(--busted);cursor:pointer}
  .jin{display:flex;gap:6px;margin-top:6px}
  .jin textarea{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:7px;font-family:var(--body);font-size:12px;resize:vertical;min-height:38px}
  /* voice-first quick capture */
  .qcap{display:flex;gap:8px;align-items:stretch;margin:2px 0 7px;flex-wrap:wrap}
  .jmic{flex:0 0 auto;width:46px;border-radius:11px;border:1px solid var(--line-2);background:linear-gradient(180deg,var(--panel-2),var(--panel));color:var(--blaze);display:grid;place-items:center;cursor:pointer;transition:.14s;position:relative}
  .jmic:hover{border-color:var(--blaze);color:var(--blaze)}
  .jmic:active{transform:scale(.97)}
  .jmic.listening{color:#fff;background:var(--blaze);border-color:var(--blaze);box-shadow:0 0 0 0 rgba(255,122,42,.55);animation:jmicpulse 1.3s infinite}
  @keyframes jmicpulse{0%{box-shadow:0 0 0 0 rgba(255,122,42,.5)}70%{box-shadow:0 0 0 12px rgba(255,122,42,0)}100%{box-shadow:0 0 0 0 rgba(255,122,42,0)}}
  .qcapin{flex:1;display:flex;gap:6px}
  .jquick{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:9px;padding:0 10px;font-family:var(--body);font-size:13px}
  .jquickbtn{flex:0 0 auto;padding:0 13px;border-radius:9px;border:1px solid var(--blaze);background:var(--blaze);color:#1a1206;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.4px;cursor:pointer;transition:.12s}
  .jquickbtn:hover{filter:brightness(1.08)} .jquickbtn:active{transform:scale(.97)}
  .jmichint{font-size:10.5px;line-height:1.45;color:var(--ink-dim2);margin:-2px 2px 8px}
  .jdetail{width:100%;background:none;border:1px dashed var(--line-2);color:var(--ink-dim);border-radius:8px;padding:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.4px;cursor:pointer;margin-bottom:7px;transition:.12s}
  .jdetail:hover{border-color:var(--accent);color:var(--accent)}
  .jpreview{border:1px solid var(--blaze);border-radius:11px;padding:10px 11px;background:linear-gradient(180deg,rgba(255,122,42,.09),rgba(255,122,42,.02));margin-bottom:9px;font-size:12px;color:var(--ink)}
  .jpreview .jpv-h{display:flex;align-items:center;gap:7px;margin-bottom:5px;font-family:var(--disp);font-weight:600;font-size:13px;color:var(--blaze-2)}
  .jpreview .jpv-c{font-family:var(--mono);font-size:10px;color:var(--ink-dim);line-height:1.5;margin-top:4px}
  .jpreview .jpv-x{margin-left:auto;color:var(--ink-dim2);cursor:pointer;font-size:13px}
  .jentry .jspecies{color:var(--blaze-2);font-weight:600}
  .jentry .jbeh{color:var(--accent)}
  /* field-logging settings */
  .jset{margin-top:11px;padding-top:9px;border-top:1px solid var(--line)}
  .jsetrow{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--ink-dim);padding:5px 0;cursor:pointer}
  .jsetrow input{width:17px;height:17px;accent-color:var(--blaze);cursor:pointer}
  .jsethint{font-size:10px;line-height:1.45;color:var(--ink-dim2);margin-top:5px}
  /* auto walk-in route save prompt */
  #routeSavePrompt{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 78px);z-index:1400;display:none;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--blaze);border-radius:13px;padding:9px 10px 9px 12px;box-shadow:0 10px 30px rgba(0,0,0,.5);max-width:min(94vw,420px)}
  #routeSavePrompt .rsp-ico{flex:0 0 auto;color:var(--blaze)}
  #routeSavePrompt .rsp-mid{flex:1;min-width:0}
  #routeSavePrompt .rsp-t{font-family:var(--disp);font-weight:600;font-size:13px;color:var(--ink);line-height:1.2}
  #routeSavePrompt .rsp-d{font-family:var(--mono);font-size:10px;color:var(--ink-dim2);margin-top:2px}
  #routeSavePrompt .rsp-acts{display:flex;gap:6px;flex:0 0 auto}
  #routeSavePrompt .rsp-save{background:var(--blaze);border:none;color:#1a1206;font-weight:700;border-radius:8px;padding:7px 12px;font-family:var(--mono);font-size:11px;cursor:pointer}
  #routeSavePrompt .rsp-no{background:none;border:1px solid var(--line-2);color:var(--ink-dim);border-radius:8px;padding:7px 11px;font-family:var(--mono);font-size:11px;cursor:pointer}
  #routeSavePrompt .rsp-off{flex:0 0 auto;background:none;border:none;color:var(--ink-dim2);font-family:var(--mono);font-size:9px;text-decoration:underline;cursor:pointer;padding:2px 4px}
  @media(max-width:520px){ #routeSavePrompt{flex-wrap:wrap;max-width:92vw} #routeSavePrompt .rsp-acts{order:3} #routeSavePrompt .rsp-save,#routeSavePrompt .rsp-no{flex:1} #routeSavePrompt .rsp-off{order:4;margin-left:auto} }
  /* sit HUD */
  #sitHud{display:none;position:fixed;left:50%;transform:translateX(-50%);top:calc(64px + env(safe-area-inset-top));z-index:9997;align-items:center;gap:10px;background:linear-gradient(180deg,#243017,#1b240f);border:1px solid #4e6b2a;color:#e7f0d8;padding:7px 9px 7px 12px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.5);max-width:92vw}
  #sitHud .sit-ico{font-size:16px}
  #sitHud .sit-nm{font-family:var(--disp);font-weight:600;font-size:13px;line-height:1.1}
  #sitHud .sit-sub{font-family:var(--mono);font-size:10px;color:#bcd29a;margin-top:1px}
  #sitHud .sit-end{background:rgba(255,255,255,.1);border:1px solid #5d7d33;color:#eaf3dc;border-radius:8px;padding:6px 11px;font-family:var(--mono);font-size:11px;cursor:pointer}
  #sitHud .sit-end:active{transform:scale(.97)}
  #sitDebriefPrompt{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 78px);z-index:1400;display:none;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--blaze);border-radius:13px;padding:9px 11px;box-shadow:0 10px 30px rgba(0,0,0,.5);max-width:min(94vw,420px)}
  #sitDebriefPrompt .sdp-ico{font-size:17px}
  #sitDebriefPrompt .sdp-mid{flex:1;min-width:0}
  #sitDebriefPrompt .sdp-t{font-family:var(--disp);font-weight:600;font-size:13px;color:var(--ink);line-height:1.2}
  #sitDebriefPrompt .sdp-d{font-family:var(--mono);font-size:10px;color:var(--ink-dim2);margin-top:2px}
  #sitDebriefPrompt .sdp-acts{display:flex;gap:6px;flex:0 0 auto}
  #sitDebriefPrompt .sdp-go{background:var(--blaze);border:none;color:#1a1206;font-weight:700;border-radius:8px;padding:7px 12px;font-family:var(--mono);font-size:11px;cursor:pointer}
  #sitDebriefPrompt .sdp-no{background:none;border:1px solid var(--line-2);color:var(--ink-dim);border-radius:8px;padding:7px 11px;font-family:var(--mono);font-size:11px;cursor:pointer}
  .pf-smini{margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
  .pf-smini-stat{font-family:var(--mono);font-size:10px;color:var(--ink-dim);margin-bottom:7px;line-height:1.4}
  .pf-smini-acts{display:flex;gap:7px}
  .pf-smini-btn{flex:1;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:8px;padding:8px;font-family:var(--mono);font-size:11px;cursor:pointer;transition:.12s}
  .pf-smini-btn:hover{border-color:var(--accent);color:var(--accent)}
  .pf-smini-btn.on{border-color:#5d7d33;color:#a7d36a;background:rgba(93,125,51,.12)}
  #standReportModal{display:none;position:fixed;inset:0;z-index:10050;background:rgba(8,9,7,.74);backdrop-filter:blur(4px);align-items:flex-start;justify-content:center;padding:max(env(safe-area-inset-top),18px) 13px 18px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  #standReportModal .src-sheet{width:100%;max-width:460px;background:var(--panel);border:1px solid var(--line-2);border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.6);padding:15px;margin:auto 0}
  .src-mhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .src-mhead b{font-family:var(--disp);font-size:16px;color:var(--ink)}
  .src-mx{cursor:pointer;color:var(--ink-dim2);font-size:18px;padding:2px 6px}
  .src-empty{font-size:12.5px;color:var(--ink-dim);line-height:1.55;padding:14px;text-align:center}
  .src-card{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:11px;background:var(--bg)}
  .src-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
  .src-name{font-family:var(--disp);font-weight:600;font-size:15px;color:var(--ink)}
  .src-vg,.src-vm,.src-vb,.src-vn{font-family:var(--mono);font-size:9.5px;letter-spacing:.4px;text-transform:uppercase;padding:3px 7px;border-radius:6px;white-space:nowrap}
  .src-vg{color:#a7d36a;background:rgba(93,125,51,.16)} .src-vm{color:#e8b84b;background:rgba(232,184,75,.14)} .src-vb{color:#ff7a5a;background:rgba(255,90,60,.13)} .src-vn{color:var(--ink-dim2);background:var(--panel-2)}
  .src-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-bottom:4px}
  .src-cell{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 8px}
  .src-k{font-family:var(--mono);font-size:8.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-dim2)}
  .src-v{font-family:var(--disp);font-size:15px;font-weight:600;color:var(--ink);margin-top:2px}
  .src-v small{font-size:9.5px;font-weight:500;color:var(--ink-dim2)}
  .src-ins{margin-top:9px;display:flex;flex-direction:column;gap:5px}
  .src-ins div{font-size:11.5px;line-height:1.45;color:var(--ink-dim);background:var(--panel);border-left:2px solid var(--blaze);border-radius:4px;padding:5px 8px}
  .src-ins b{color:var(--blaze-2)}
  .src-rec{margin-top:9px}
  .src-reck{font-family:var(--mono);font-size:8.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-dim2);margin-bottom:4px}
  .src-recrow{font-size:11px;color:var(--ink-dim);padding:3px 0;border-top:1px solid var(--line)}
  /* bottom-left mini weather station (compass) */
  #wxStation{display:none;position:fixed;left:10px;bottom:18px;z-index:780;background:rgba(20,21,26,.82);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);border:1px solid var(--line-2);border-radius:50%;padding:5px;cursor:pointer;box-shadow:0 5px 18px rgba(0,0,0,.42);transition:border-color .12s,transform .1s;-webkit-tap-highlight-color:transparent}
  #wxStation:hover{border-color:var(--accent)}
  #wxStation:active{transform:scale(.95)}
  /* Feedback icon button — lives in the top bar, just left of search */
  #mFeedbackBtn{padding:0;-webkit-appearance:none;appearance:none;font:inherit;background:var(--panel);border:1px solid var(--line);color:var(--ink)}
  #mFeedbackBtn:active{transform:scale(.95)}
  /* Floating "drop a pin" button — right-side stack, anchored above the draw button via static CSS (bottom: calc(219px + safe-area-inset-bottom)) */
  #mPinBtn{position:absolute;right:12px;bottom:calc(var(--barh) + 196px);z-index:1161;width:42px;height:42px;display:grid;place-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;cursor:pointer;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.25);-webkit-appearance:none;appearance:none;padding:0;font:inherit;transition:border-color .12s,transform .1s}
  #mPinBtn:active{transform:scale(.95)}
  #mPinBtn.active{border-color:var(--accent);color:var(--accent)}
  .mpin-fly{position:absolute;right:calc(100% + 9px);bottom:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;width:242px;opacity:0;transform:translateX(12px) scale(.85);transform-origin:right bottom;will-change:opacity,transform;transition:opacity .16s,transform .16s;pointer-events:none}
  .mpin-fly.show{opacity:1;transform:translateX(0) scale(1);pointer-events:auto}
  .mpf-opt{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--ink);cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.4);-webkit-appearance:none;appearance:none;padding:0;font:inherit;transition:transform .1s,border-color .12s}
  .mpf-opt:hover{border-color:var(--accent)}
  .mpf-opt:active{transform:scale(.94)}
  /* Draw / measure button (replaces the weather badge) with a route/shape/measure fly-out */
  #mDrawBtn{position:absolute;right:12px;bottom:calc(var(--barh) + 146px);z-index:1160;width:42px;height:42px;display:grid;place-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;cursor:pointer;color:var(--ink);box-shadow:0 5px 18px rgba(0,0,0,.42);-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;padding:0;font:inherit;transition:border-color .12s,transform .1s}
  #mDrawBtn:active{transform:scale(.95)}
  #mDrawBtn.active{border-color:var(--accent);color:var(--accent)}
  .mdraw-fly{position:absolute;right:calc(100% + 9px);top:0;display:flex;gap:8px;opacity:0;transform:translateX(12px) scale(.85);transform-origin:right top;will-change:opacity,transform;transition:opacity .16s,transform .16s;pointer-events:none}
  .mdraw-fly.show{opacity:1;transform:translateX(0) scale(1);pointer-events:auto}
  .mdf-opt{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--ink);cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.4);-webkit-appearance:none;appearance:none;padding:0;font:inherit;transition:transform .1s,border-color .12s}
  .mdf-opt:hover{border-color:var(--accent)}
  .mdf-opt:active{transform:scale(.94)}
  #wxStation .wxs-dial{position:relative;width:50px;height:50px}
  #wxStation .wxs-ring{position:absolute;inset:0;width:100%;height:100%}
  #wxStation .wxs-needle{position:absolute;inset:0;width:100%;height:100%;transform-origin:50% 50%;transition:transform .5s cubic-bezier(.3,.7,.3,1)}
  #wxStation .wxs-temp{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:11.5px;color:var(--ink);text-shadow:0 0 5px rgba(13,14,18,.96),0 0 5px rgba(13,14,18,.96)}
  /* intro animation: icon flies from center to the Scout button */
  #introOverlay{position:fixed;inset:0;z-index:100000;background:#0a0b0d;display:none;align-items:center;justify-content:center;opacity:1;transition:opacity .32s ease;pointer-events:none}
  #introOverlay.show{display:flex}
  #introOverlay.fade{opacity:0}
  #introLogoImg{position:relative;z-index:2;width:min(74vw,420px);height:auto;transform:translateY(-4vh);transition:opacity .38s ease;will-change:opacity}
  #introOverlay.lift #introLogoImg{opacity:0}
  #introIcon{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;transform:translateY(calc(-4vh - 8px));opacity:0;z-index:3;transition:opacity .2s ease,transform .42s cubic-bezier(.5,.04,.16,1);will-change:transform,opacity;pointer-events:none}
  #introOverlay.lift #introIcon{opacity:1}
  #introTopo{position:absolute;inset:0;opacity:.34;pointer-events:none;z-index:1;background:url(assets/topo.webp) center/cover no-repeat}
  .scout-glow{animation:scoutGlow 3.8s cubic-bezier(.4,0,.2,1) forwards}
  @keyframes scoutGlow{
    0%{box-shadow:0 0 0 0 rgba(255,138,0,0),0 0 0 0 rgba(255,138,0,0),0 2px 8px rgba(0,0,0,.5)}
    18%{box-shadow:0 0 0 5px rgba(255,138,0,.55),0 0 36px 12px rgba(255,138,0,.95),0 2px 8px rgba(0,0,0,.5)}
    42%{box-shadow:0 0 0 0 rgba(255,138,0,0),0 0 12px 1px rgba(255,138,0,.32),0 2px 8px rgba(0,0,0,.5)}
    66%{box-shadow:0 0 0 5px rgba(255,138,0,.55),0 0 36px 12px rgba(255,138,0,.95),0 2px 8px rgba(0,0,0,.5)}
    100%{box-shadow:0 0 0 0 rgba(255,138,0,0),0 0 26px 4px rgba(255,138,0,.6),0 2px 8px rgba(0,0,0,.5)}
  }
  /* on-open hunt forecast banner */
  /* Scout speech bubble — rises from Scout at the bottom so it reads like she's talking to you. */
  #huntForecast{display:none;position:fixed;z-index:9996;box-sizing:border-box;cursor:pointer;
    left:50%;bottom:calc(76px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(16px) scale(.96);
    opacity:0;transition:opacity .28s cubic-bezier(.2,.8,.2,1),transform .28s cubic-bezier(.2,.8,.2,1);
    align-items:flex-start;gap:9px;width:min(225px,calc(100vw - 140px));
    background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--blaze);color:var(--ink);
    padding:12px;border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.6),0 0 0 4px rgba(255,138,0,.08)}
  #huntForecast.show{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}
  /* tail pointing down toward the Scout button */
  #huntForecast::after{content:"";position:absolute;bottom:-9px;left:50%;transform:translateX(-50%) rotate(45deg);width:16px;height:16px;background:var(--panel-2);border-right:1px solid var(--blaze);border-bottom:1px solid var(--blaze);border-bottom-right-radius:3px}
  #huntForecast .hf-ico{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#1b2027,#101318);box-shadow:0 0 14px 2px rgba(255,138,0,.45);animation:hfPulse 2.4s ease-in-out infinite}
  @keyframes hfPulse{0%,100%{box-shadow:0 0 12px 1px rgba(255,138,0,.35)}50%{box-shadow:0 0 20px 4px rgba(255,138,0,.7)}}
  #huntForecast .hf-main{flex:1;min-width:0}
  #huntForecast .hf-name{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--blaze-2);margin-bottom:3px}
  #huntForecast .hf-txt{font-size:12px;line-height:1.4;color:var(--ink)}
  #huntForecast .hf-txt b{color:var(--blaze-2)}
  #huntForecast .hf-ask{display:inline-flex;align-items:center;gap:5px;margin-top:9px;background:var(--blaze);border:none;color:#1a1206;font-weight:700;border-radius:8px;padding:7px 12px;font-family:var(--mono);font-size:10.5px;cursor:pointer}
  #huntForecast .hf-x{position:absolute;top:6px;right:8px;background:none;border:none;color:var(--ink-dim2);font-size:15px;line-height:1;cursor:pointer;padding:2px 4px}
  /* desktop: Scout lives on the right — anchor bottom-right with the tail toward that side */
  @media(min-width:861px){
    #huntForecast{left:auto;right:18px;bottom:22px;transform:translateY(16px) scale(.96);width:min(380px,calc(100vw - 36px))}
    #huntForecast.show{transform:translateY(0) scale(1)}
    #huntForecast::after{left:auto;right:26px;bottom:-9px}
  }
  .jseason{align-items:flex-start}
  .jseason small{color:var(--ink-dim2);font-size:9px;font-weight:400}
  .jseason-in{display:flex;align-items:center;gap:4px;font-family:var(--mono);font-size:10px;color:var(--ink-dim2);flex:0 0 auto}
  .jseason-in input[type=date]{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:3px 4px;font-size:10px;font-family:var(--mono);max-width:112px}

  /* popup */
  .leaflet-popup-close-button{display:none!important}
  .leaflet-popup-content-wrapper{background:var(--panel);color:var(--ink);border:1px solid var(--line-2);border-radius:13px;box-shadow:0 8px 22px rgba(0,0,0,.4)}
  .leaflet-popup-tip{background:var(--panel);border:1px solid var(--line-2)}
  .leaflet-popup-content{margin:0!important;width:250px!important;max-height:var(--popcap, min(62dvh,560px));overflow-y:auto;-webkit-overflow-scrolling:touch}
  /* ── Compact marker popup ── */
  .pf{font-size:13px;max-height:58vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 13px 13px}
  .pf::-webkit-scrollbar{width:5px}.pf::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px}
  .pf-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}
  .pf-ico{flex:0 0 auto;width:26px;height:26px;border-radius:7px;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--accent)}
  .pf-head input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:7px 9px;font-family:var(--disp);font-size:14px;font-weight:600}
  .pf-trash{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:12px;background:none;border:1px solid var(--line-2);color:var(--ink-dim2);border-radius:8px;padding:9px;cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.5px;text-transform:uppercase;transition:.12s}
  .pf-trash:hover{border-color:var(--busted);color:var(--busted)}
  .pf-trash:active{transform:scale(.98)}
  .pf-cbtn.acc,.pf-actbtn.acc{color:#3aa840;border-color:rgba(58,168,64,.5)}
  .pf-cbtn.acc:hover,.pf-actbtn.acc:hover{border-color:#3aa840;background:rgba(58,168,64,.12)}
  .pf-compact{display:flex;align-items:center;gap:8px}
/* Two-row pin card: name on top, a quiet fact bottom-left, the controls bottom-right.
   Keeps the name from being squeezed by four buttons on a narrow popup, and gives the
   card something to say before you open it. */
.pf-two{flex-direction:column;align-items:stretch;gap:7px}
.pf-two .pf-r1{display:flex;align-items:center;gap:8px;min-width:0}
.pf-two .pf-r2{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pf-sub{flex:1;min-width:0;font-size:11.5px;line-height:1.3;color:var(--ink-dim2,var(--ink-dim));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-sub:empty{display:none}
.pf-acts{flex:0 0 auto;display:flex;align-items:center;gap:6px;margin-left:auto}
  /* .leaflet-popup-content is a hard 250px and .pf adds 13px of padding each side, so children
     get 224px. This card asked for min-width:250px — 26px of overflow, which clipped the
     right-hand button clean in half. Let it size to the popup instead. */
  .pf-compact.pfc-scout{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;max-width:100%}
  .pf-compact.pfc-scout .pfc-head{display:flex;align-items:center;gap:8px}
  .pf-compact.pfc-scout .pf-name{font-size:14px;font-weight:700;white-space:normal;overflow:visible;text-overflow:clip;word-break:normal;line-height:1.2;flex:1;min-width:0}
  .pf-compact.pfc-scout .pfc-acts{display:flex;gap:5px;flex:0 0 auto}
  .pf-compact.pfc-scout .pfc-sug{font-size:12px;color:var(--ink);line-height:1.4}
  .pf-compact .pf-ico{flex:0 0 auto}
  .pf-compact input{flex:1;min-width:0}
  .pf-name{flex:1;min-width:0;font-family:var(--disp);font-weight:600;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .resv-sitrow{margin-bottom:11px}
  .pf-sitbtn{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:9px;padding:9px;font-family:var(--mono);font-size:11.5px;letter-spacing:.3px;cursor:pointer;transition:.12s}
  .pf-sitbtn:hover{border-color:var(--accent);color:var(--accent)}
  .pf-sitbtn.on{border-color:#5d7d33;color:#a7d36a;background:rgba(93,125,51,.12)}
  .pf-cbtn{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:8px;cursor:pointer;transition:.12s;font-size:18px;line-height:1;padding:0}
  .pf-cbtn:hover{border-color:var(--accent);color:var(--accent)}
  .pf-cbtn.del{color:var(--ink-dim2)}
  .pf-cbtn.del:hover{border-color:var(--busted);color:var(--busted)}
  .pf-rcom-head{display:flex;align-items:flex-start;gap:9px;margin-bottom:11px}
  .pf-rcom-head .pf-ico{margin-top:2px}
  .pf-rcom-txt{min-width:0;flex:1}
  .pf-rcom .pf-name{display:block;flex:none;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.22}
  .pf-rcom-sub{display:block;font-size:11.5px;color:var(--ink-dim,#9aa3ad);margin-top:3px;line-height:1.2}
  .pf-rcom-acts{display:flex;gap:8px;justify-content:space-between}
  .pf-rcom-acts .pf-cbtn{width:38px;height:38px}
  .leaflet-popup.route-wide .leaflet-popup-content{width:272px!important}
  .leaflet-popup.route-wide .leaflet-popup-content:has(.pf-rcom){width:236px!important} /* narrow the compact route preview only; expanded edit + elevation stay 272 */
  .pf .row{display:flex;gap:8px;margin-top:12px;align-items:stretch}
  .pf .row button{flex:1;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:8px;padding:9px 10px;font-family:var(--mono);font-size:11px;letter-spacing:.4px;cursor:pointer;transition:.12s}
  .pf .row button:hover{border-color:var(--accent);color:var(--accent)}
  .pf .row button.del{flex:0 0 auto;width:44px;color:var(--ink-dim2)}
  .pf .row button.del:hover{border-color:var(--busted);color:var(--busted)}
  .ringlbl{font-family:var(--mono);font-size:9.5px;color:#ffce9e;text-shadow:0 1px 3px #000,0 0 3px #000,0 0 3px #000;text-align:center;font-weight:700;pointer-events:none;white-space:nowrap}
  .ringlbl span{font-size:7px;opacity:.7;margin-left:1px}
  #errBanner{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(88px + env(safe-area-inset-bottom));z-index:99999;display:flex;align-items:center;gap:10px;background:#2a1410;border:1px solid var(--busted);color:#ffd9cf;padding:10px 14px;border-radius:12px;font-size:12.5px;box-shadow:0 12px 34px rgba(0,0,0,.65);max-width:92vw}
  #errBanner button{background:var(--busted);border:none;color:#fff;border-radius:7px;padding:6px 11px;font-size:12px;cursor:pointer;flex:0 0 auto}
  #errBanner button#errDismiss{background:transparent;border:1px solid var(--line-2);color:var(--ink-dim)}
  .strat-best{background:rgba(255,106,31,.1);border:1px solid var(--blaze);border-radius:9px;padding:8px 11px;margin-bottom:10px;font-size:12.5px;color:var(--ink);line-height:1.45}
  .stand-score{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:700;color:var(--blaze-2);border:1px solid var(--line-2);border-radius:5px;padding:1px 5px;margin-left:6px}
  .stand-score.rest{color:var(--ink-dim2)}
  .verdict.best-now{background:var(--accent);color:#1a0f06;font-weight:700}
  .why{display:flex;flex-direction:column;gap:3px;margin:3px 0 8px}
  .wy{font-size:11.5px;line-height:1.4;color:var(--ink-dim)}
  .wy.good{color:#9ad6a0} .wy.ok{color:#e8c66a} .wy.bad{color:#ff9a85} .wy.info{color:var(--ink-dim2)}
  .stand.compact{padding:7px 10px}
  .stand.compact h4{margin:0;font-size:13px}
  .why-1{margin-top:3px;display:flex;flex-wrap:wrap;gap:10px;line-height:1.4}
  .why-1 .wy{font-size:10.5px}
  .strat-legend{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}
  .strat-legend>summary{cursor:pointer;font-size:11px;color:var(--ink-dim2);font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;list-style:none}
  .strat-legend>summary::-webkit-details-marker{display:none}
  .strat-legend .leg-body{margin-top:8px}
  .strat-legend p{font-size:11.5px;color:var(--ink-dim);line-height:1.5;margin:0 0 7px;display:flex;align-items:flex-start;gap:7px}
  .lg{display:inline-block;width:15px;height:11px;border-radius:3px;flex:0 0 auto;margin-top:2px}
  .sync-banner{position:fixed;left:50%;transform:translateX(-50%);top:calc(54px + env(safe-area-inset-top));z-index:99999;display:flex;align-items:center;gap:10px;background:#2a1410;border:1px solid var(--busted);color:#ffd9cf;padding:9px 13px;border-radius:12px;font-size:12.5px;box-shadow:0 12px 34px rgba(0,0,0,.6);max-width:92vw}
  .sync-banner button{background:var(--busted);border:none;color:#fff;border-radius:7px;padding:6px 11px;font-size:12px;cursor:pointer;flex:0 0 auto}
  .sync-banner button.ghost{background:transparent;border:1px solid var(--line-2);color:var(--ink-dim)}
  .layer-stat{font-family:var(--mono);font-size:9px;letter-spacing:.3px;margin-top:2px}
  .layer-stat.loading{color:var(--ink-dim2)} .layer-stat.ok{color:#5fbf6a} .layer-stat.err{color:var(--busted)} .layer-stat.nodata{color:#e8b84b}
  .jtype{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:6px 8px;font-size:12.5px;font-family:var(--body);margin-bottom:6px}
  .jbuck-cb{position:relative}
  .jbuck-cb .jbuck-inp{margin-bottom:6px}
  .jbuck-menu{position:absolute;left:0;right:0;top:calc(100% - 4px);z-index:60;background:var(--panel);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 10px 26px rgba(0,0,0,.45);max-height:190px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .jbuck-item{padding:9px 11px;font-size:12.5px;color:var(--ink);cursor:pointer;border-bottom:1px solid var(--line);display:flex;align-items:center}
  .jbuck-item:last-child{border-bottom:none}
  .jbuck-item:hover{background:var(--panel-2)}
  .jbuck-item .jb-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:9px;flex:0 0 auto;box-shadow:0 0 0 1px rgba(0,0,0,.35)}
  .jbuck-add{color:var(--blaze-2);font-weight:600}
  .jbuck-empty{padding:9px 11px;font-size:11.5px;color:var(--ink-dim2)}
  .mbuck-row{margin-top:8px}
  .mbuck-menu{margin-top:5px;border:1px solid var(--line-2);border-radius:8px;max-height:168px;overflow-y:auto;background:var(--bg);-webkit-overflow-scrolling:touch}
  .mbuck-hint{font-family:var(--mono);font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-dim2);margin-top:5px}
  .jcond{margin-top:4px;font-family:var(--mono);font-size:10px;color:var(--ink-dim2);letter-spacing:.2px}
  .jpat{background:rgba(255,106,31,.1);border:1px solid var(--line-2);border-radius:8px;padding:7px 9px;margin-bottom:8px;font-size:11.5px;color:var(--ink-dim);line-height:1.4}
  .jhl{display:block;font-size:10px;color:var(--ink-dim2);font-family:var(--mono);text-transform:uppercase;letter-spacing:.6px;margin:6px 0 3px}
  .jrow2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .jeditnote{font-family:var(--mono);font-size:10.5px;color:var(--blaze-2);background:rgba(255,138,0,.1);border:1px solid rgba(255,138,0,.3);border-radius:8px;padding:7px 9px;margin-bottom:8px}
  .jcondnote{font-family:var(--mono);font-size:10px;color:var(--ink-dim2);line-height:1.5;margin:7px 0 2px}
  .jformbtns{display:flex;gap:8px;align-items:center}
  .jformbtns #jAdd{flex:1}
  .jentry .jedit{cursor:pointer;color:var(--ink-dim2);margin-right:8px;font-size:12px}
  .jentry .jedit:hover{color:var(--accent)}
  .jharv{margin-top:4px;font-family:var(--mono);font-size:10.5px;color:var(--blaze-2);letter-spacing:.2px}
  #navHud{display:none;position:fixed;left:50%;transform:translateX(-50%);top:calc(64px + env(safe-area-inset-top));z-index:9998;align-items:center;gap:10px;background:var(--accent);color:#1a0f06;padding:8px 10px 8px 12px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.5);max-width:92vw}
  #navHud .nav-arrow{flex:0 0 auto;display:grid;place-items:center}
  #navHud .nav-arrow svg{transition:transform .25s ease}
  #navHud .nav-dist{font-family:var(--mono);font-weight:800;font-size:16px;line-height:1}
  #navHud .nav-to{font-size:10.5px;font-weight:700;opacity:.85;text-transform:uppercase;letter-spacing:.3px;margin-top:2px}
  #navHud button{flex:0 0 auto;width:32px;height:32px;border:none;border-radius:9px;background:rgba(0,0,0,.18);color:#1a0f06;font-size:15px;cursor:pointer;display:grid;place-items:center}
  .pf-nav{width:100%;margin-top:8px;background:rgba(255,138,0,.1);border:1px solid var(--blaze);color:var(--accent);border-radius:10px;padding:11px;font-family:'Sora',var(--disp);font-weight:600;font-size:13px;letter-spacing:.3px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
  .pf-nav:active{transform:scale(.99)}
  .pf-winds{margin-top:2px}
  .pf-winds>summary{list-style:none;cursor:pointer;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:6px 8px;font-size:12.5px;display:flex;justify-content:space-between;align-items:center;gap:6px;font-family:var(--body)}
  .pf-winds>summary::-webkit-details-marker{display:none}
  .pf-winds-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pf-winds-caret{color:var(--ink-dim2);font-family:var(--mono);font-size:9px;letter-spacing:.5px;flex:0 0 auto}
  .pf-winds[open]>summary{border-color:var(--accent)}
  .pf-winds .optchips{margin-top:6px}
  .pf label{display:block;font-family:var(--mono);text-transform:uppercase;font-size:9px;letter-spacing:1px;color:var(--ink-dim2);margin:7px 0 3px}
  .pf-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .pf-row2 label{margin-top:0}
  .pf input,.pf textarea,.pf select{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:6px 8px;font-family:var(--body);font-size:12.5px;box-sizing:border-box}
  .pf textarea{resize:vertical;min-height:34px;line-height:1.4}
  .pf .swatchrow{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;width:100%;box-sizing:border-box;margin-top:3px}
  .pf .swatch{aspect-ratio:1/1;width:100%;min-width:0;padding:0;font-size:0;border-radius:7px;border:1px solid rgba(255,255,255,.16);cursor:pointer;box-sizing:border-box;transition:.1s}
  .pf .swatch:hover{transform:scale(1.06)}
  .pf .swatch.sel{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--ink)}
  #goInput::-webkit-search-cancel-button,#goInput::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}
  .resv-add{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}
  .resv-add input[type=date]{flex:1 1 120px;min-width:110px}
  .resv-ampm{display:inline-flex;border:1px solid var(--line-2);border-radius:7px;overflow:hidden;flex-shrink:0}
  .resv-ampm button{background:var(--panel-2);border:none;color:var(--ink-dim);font-family:var(--mono);font-size:11px;padding:6px 11px;cursor:pointer;transition:.1s}
  .resv-ampm button.on{background:var(--accent);color:#1a0f06;font-weight:700}
  .resv-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
  .resv-chip{display:inline-flex;align-items:center;gap:7px;background:rgba(255,138,0,.12);border:1px solid rgba(255,138,0,.32);color:var(--ink);font-size:11.5px;font-family:var(--mono);padding:4px 9px;border-radius:12px}
  .resv-chip button{background:none;border:none;color:var(--ink-dim2);cursor:pointer;font-size:11px;padding:0;line-height:1}
  .resv-chip button:hover{color:var(--bad)}
  .resv-empty{font-size:11px;color:var(--ink-dim2)}
  /* Calendar reservation panel */
  .resv-panel{margin-top:9px;padding-top:11px;border-top:1px solid var(--line-2)}
  .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .cal-title{font-family:var(--disp);font-weight:700;font-size:13px;color:var(--ink)}
  .cal-nav{background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);width:27px;height:27px;border-radius:7px;cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center}
  .cal-nav:hover{border-color:var(--accent);color:var(--accent)}
  .cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:4px}
  .cal-dow span{text-align:center;font-family:var(--mono);font-size:9px;color:var(--ink-dim2);text-transform:uppercase}
  .cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
  .cal-cell{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border:1px solid transparent;background:var(--panel-2);color:var(--ink);border-radius:7px;font-size:12px;cursor:pointer;position:relative;font-family:var(--body);padding:0}
  .cal-cell.empty{background:none;pointer-events:none;border:none}
  .cal-cell:hover:not(.past):not(.empty){border-color:var(--accent)}
  .cal-cell.past{color:var(--ink-dim2);opacity:.4;cursor:default}
  .cal-cell.today{outline:1px solid var(--line-2)}
  .cal-cell.sel{background:var(--accent);color:#1a0f06;font-weight:700;border-color:var(--accent)}
  .cal-cell.has::after{content:"";position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent)}
  .cal-cell.sel.has::after{background:#1a0f06}
  .resv-controls{display:flex;align-items:center;gap:8px;margin-top:11px}
  .resv-go{flex:1;background:var(--accent);color:#1a0f06;border:none;font-weight:700;cursor:pointer}
  .resv-go:disabled{opacity:.55;cursor:default;background:var(--panel-2);color:var(--ink-dim2)}
  .pf-actions{display:flex;gap:8px;margin-top:13px}
  .shp-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
  .shp-title{flex:1;min-width:0;font-family:var(--disp);font-size:14px;font-weight:600;color:var(--ink)}
  .shp-sub{font-size:11px;color:var(--ink-dim2);margin:0 0 9px;line-height:1.4}
  .shp-quick{display:flex;gap:7px;margin-bottom:9px}
  .shp-q{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;height:34px;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:8px;font-family:var(--body);font-size:12.5px;cursor:pointer;transition:.12s}
  .shp-q.on{background:rgba(255,138,0,.15);border-color:var(--accent);color:var(--accent)}
  .shp-divider{font-size:10.5px;color:var(--ink-dim2);letter-spacing:.5px;margin:4px 2px 7px}
  .shp-row{width:100%;display:flex;align-items:center;gap:9px;padding:7px 8px;margin-bottom:5px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:9px;color:var(--ink);cursor:pointer;text-align:left;transition:.12s}
  .shp-row.on{border-color:var(--accent);background:rgba(255,138,0,.10)}
  .shp-av{width:28px;height:28px;border-radius:50%;background:var(--line-2);display:grid;place-items:center;font-size:11px;font-weight:600;color:var(--ink-dim);flex:0 0 auto}
  .shp-nm{flex:1;min-width:0;font-size:13px;line-height:1.25}
  .shp-rl{display:block;font-size:10.5px;color:var(--ink-dim2)}
  .shp-chk{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;flex:0 0 auto;color:#2a1304}
  .shp-row.on .shp-chk{background:var(--accent);border-color:var(--accent)}
  .shp-sum{font-size:11.5px;color:var(--ink-dim);margin-top:9px}
  .shp-note{font-size:12px;color:var(--ink-dim);line-height:1.5;padding:6px 2px 2px}
  .pf-actbtn{flex:1;display:flex;align-items:center;justify-content:center;height:40px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:9px;color:var(--ink-dim);cursor:pointer;transition:.12s}
  .pf-actbtn:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,138,0,.06)}
  .pf-actbtn.nav{color:var(--accent);border-color:rgba(255,138,0,.4)}
  .pf-actbtn.del:hover{border-color:var(--bad);color:var(--bad);background:rgba(255,90,60,.08)}
  /* Off-screen decoy login fields: Chrome's password manager fills these instead of the search box. */
  .cred-decoy{position:absolute;left:-1px;top:-1px;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);opacity:0;pointer-events:none;z-index:-1}
  .cred-decoy input{width:1px;height:1px;border:0;padding:0;margin:0;background:transparent}

  .pf-obs{margin-top:8px;border-top:1px solid var(--line);padding-top:7px}
  .pf-obs summary{font-family:var(--mono);text-transform:uppercase;font-size:9px;letter-spacing:1px;color:var(--ink-dim2);cursor:pointer;list-style:none;padding:2px 0}
  .pf-obs summary::-webkit-details-marker{display:none}
  .pf-obs summary:before{content:'▸ ';color:var(--accent)}
  .pf-obs[open] summary:before{content:'▾ '}
  .optchips{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:4px}
  .optchips button{font-family:var(--mono);font-size:10px;padding:5px 0;border:1px solid var(--line);background:var(--bg);color:var(--ink-dim);border-radius:6px;cursor:pointer}
  .optchips button.on{background:var(--good);border-color:var(--good);color:#10220a;font-weight:600}

  #mapctl{position:absolute;top:calc(62px + max(env(safe-area-inset-top),56px));right:18px;z-index:1150;display:flex;flex-direction:column;gap:7px;transition:right .25s}
  #mapctl.shifted{right:380px}
  #mapctl .iconbtn{width:var(--railw);height:var(--railw);font-size:18px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
  .locrow{position:relative;display:flex;align-items:center;justify-content:flex-end}
  #mapctl .fly{position:absolute;right:calc(100% + 9px);top:0;opacity:0;transform:translateX(12px) scale(.85);transition:opacity .16s,transform .16s;pointer-events:none;z-index:2}
  #mapctl .fly.show{opacity:1;transform:translateX(0) scale(1);pointer-events:auto}
  #mapctl .trackfly{color:var(--blaze);border-color:var(--blaze)}
  #mapctl .trackfly.rec{color:#fff;border-color:#ff3b3b;background:rgba(255,59,59,.2);box-shadow:0 0 0 1px #ff3b3b,0 0 14px rgba(255,59,59,.5);animation:trkpulse 1.4s ease-in-out infinite}
  @keyframes trkpulse{0%,100%{box-shadow:0 0 0 1px #ff3b3b,0 0 10px rgba(255,59,59,.4)}50%{box-shadow:0 0 0 1px #ff3b3b,0 0 18px rgba(255,59,59,.75)}}

  .scalebadge{position:absolute;left:50%;transform:translateX(-50%);bottom:14px;z-index:1100;background:rgba(15,18,12,.82);border:1px solid var(--line);border-radius:7px;padding:4px 9px;font-family:var(--mono);font-size:8px;color:var(--ink-dim);pointer-events:none;display:flex;flex-direction:column;gap:2px;align-items:center;text-align:center;max-width:92vw}
  .scalebadge .sb-line1{display:flex;gap:9px;align-items:center;white-space:nowrap}
  .scalebadge b{color:var(--blaze-2)}
  .scalebadge #zoomLvl{color:var(--ink-dim);opacity:.85}
  .scalebadge #zoomTxt{color:var(--ink-dim);opacity:.6}
  .map-legend{position:absolute;left:12px;bottom:calc(158px + env(safe-area-inset-bottom,0px));z-index:780;background:rgba(16,19,24,.86);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);border:1px solid var(--line-2);border-radius:11px;padding:8px 10px;font-family:var(--mono);font-size:11px;color:var(--ink);box-shadow:0 6px 20px rgba(0,0,0,.42);max-width:140px;pointer-events:none;display:none}
  .map-legend .lg-sec+.lg-sec{margin-top:7px;padding-top:7px;border-top:1px solid var(--line)}
  .map-legend .lg-h{font-family:var(--disp);font-weight:800;letter-spacing:.6px;text-transform:uppercase;font-size:9px;color:var(--blaze-2);margin-bottom:4px}
  .map-legend .lg-row{display:flex;align-items:center;gap:7px;line-height:1.5;white-space:nowrap;color:var(--ink);font-weight:700}
  .map-legend .lg-sw{width:12px;height:12px;border-radius:3px;flex:none;border:1px solid rgba(0,0,0,.35);box-shadow:0 0 0 1px rgba(255,255,255,.06)}
  /* sleek current-map label, bottom-right (replaces the cheap Leaflet attribution) */
  #attribBar{position:absolute;right:12px;bottom:13px;z-index:1100;display:flex;align-items:center;gap:6px;pointer-events:none}
  #mapName{font-family:var(--mono);font-size:10px;letter-spacing:.3px;color:rgba(255,255,255,.92);text-shadow:0 1px 5px rgba(0,0,0,.95),0 0 3px rgba(0,0,0,.9);white-space:nowrap}
  #mapName:empty{display:none}
  #attribInfo{pointer-events:auto;width:16px;height:16px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.42);color:rgba(255,255,255,.95);font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:700;font-size:11px;line-height:1;cursor:pointer;padding:0;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-shadow:0 1px 2px rgba(0,0,0,.8)}
  #attribInfo:active{transform:scale(.9)}
  #mapAttrib{display:none}
  #mapAttrib:empty{display:none}
  .leaflet-control-attribution{display:none!important}
  /* ── Map data-source detail modal (opened by the bottom-right ⓘ) ── */
  #srcModalWrap{position:fixed;inset:0;z-index:20000;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:24px}
  #srcModalWrap.show{display:flex}
  .src-card{width:100%;max-width:340px;background:var(--panel,#161a1f);border:1px solid var(--line,#2a2f36);border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.6);padding:16px 16px 15px;color:var(--ink,#e7eaee);font-family:var(--body)}
  .src-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
  .src-card-title{font-size:15px;font-weight:700;letter-spacing:.2px}
  .src-x{width:28px;height:28px;flex:0 0 auto;border-radius:8px;border:1px solid var(--line,#2a2f36);background:transparent;color:var(--ink-dim,#9aa3ad);font-size:17px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .src-row{margin:9px 0}
  .src-k{display:block;font-size:9.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-dim,#9aa3ad);margin-bottom:3px}
  #srcDateVal{font-size:12.5px;line-height:1.45;color:var(--ink,#e7eaee)}
  .src-attrib{font-family:var(--mono,monospace);font-size:11px;line-height:1.45;color:rgba(255,255,255,.82);background:rgba(0,0,0,.25);border:1px solid var(--line,#2a2f36);border-radius:9px;padding:8px 10px;word-break:break-word}
  .src-note{font-size:11.5px;line-height:1.5;color:var(--ink-dim,#9aa3ad);margin-top:12px}

  .hud{position:absolute;top:calc(64px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:1300;display:none;gap:8px;background:var(--panel);border:1px solid var(--blaze);border-radius:11px;padding:9px 11px;align-items:center;box-shadow:0 10px 30px rgba(0,0,0,.5);flex-wrap:wrap;max-width:92vw}
  .hud.show{display:flex}
  .hud span{font-family:var(--mono);font-size:11px;color:var(--ink-dim)}
  .hud b{color:var(--blaze-2)}
  .hud-btns{display:flex;gap:8px;align-items:center}
  #drawFinish{background:var(--blaze);border-color:var(--blaze);color:#0c0f0a;font-weight:700}
  #drawUndo,#drawCancel{background:var(--panel-2);color:var(--ink-dim)}
  #trackFinish{background:var(--blaze);border-color:var(--blaze);color:#0c0f0a;font-weight:700}
  #trackReset{background:var(--panel-2);color:var(--ink-dim)}

  #toast{position:absolute;top:calc(env(safe-area-inset-top,0px) + 74px);bottom:auto;left:50%;transform:translateX(-50%) translateY(-16px);z-index:1400;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:8px;padding:10px 15px;font-size:12.5px;opacity:0;transition:.25s;pointer-events:none;max-width:80vw;text-align:center}
  #placeHint{position:fixed;top:calc(var(--topH, 108px) + 10px);left:50%;transform:translateX(-50%) translateY(-10px);z-index:1401;display:flex;align-items:center;gap:9px;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:10px;padding:7px 8px 7px 11px;font-size:12.5px;max-width:86vw;box-shadow:0 8px 26px rgba(0,0,0,.42);opacity:0;pointer-events:none;transition:opacity .18s, transform .18s}
  #placeHint.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
  /* Sits under the property header, so it no longer covers the compass chip, the
     coordinate readout or the basemap tile at the bottom of the map. */
  #placeHint .ph-mark{display:inline-flex;width:18px;height:18px;flex:0 0 auto}
  #placeHint .ph-text{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #placeHint .ph-x{flex:0 0 auto;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--dim);border-radius:6px;font-size:17px;line-height:1;cursor:pointer;padding:0}
  #placeHint .ph-x:hover{background:var(--panel);color:var(--ink)}
.ph-x,.ff-x,.src-x{position:relative}
.ph-x::after,.ff-x::after,.src-x::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px}
  /* portrait lock: phones in landscape get a rotate gate (manifest already locks the installed PWA) */
  #rotateGate{position:fixed;inset:0;z-index:99999;display:none;flex-direction:column;align-items:center;justify-content:center;gap:13px;background:#0d0e12;color:#f5f6f6;text-align:center;padding:30px;font-family:var(--disp,system-ui)}
  #rotateGate .rg-t{font-size:19px;font-weight:800;letter-spacing:-.3px}
  #rotateGate .rg-s{font-size:13px;color:#aeb4bd;max-width:280px;line-height:1.5}
  @media screen and (orientation:landscape) and (max-height:500px){ #rotateGate{display:flex} }
  /* far-marker heads-up flag */
  #farFlag{position:absolute;left:50%;top:calc(64px + max(env(safe-area-inset-top),56px));transform:translateX(-50%) translateY(-8px);z-index:1403;display:none;background:rgba(22,26,31,.97);border:1px solid var(--line-2);border-left:3px solid var(--blaze);color:var(--ink);border-radius:12px;padding:13px 14px;font-size:12.5px;line-height:1.35;box-shadow:0 8px 26px rgba(0,0,0,.55);max-width:90vw;width:340px;opacity:0;transition:opacity .25s,transform .25s}
  #farFlag.show{display:block;opacity:1;transform:translateX(-50%) translateY(0)}
  #farFlag .ff-top{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px}
  #farFlag .ff-top b{color:var(--blaze);font-weight:800;font-size:13px}
  #farFlag .ff-x{margin-left:auto;flex:0 0 auto;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim);cursor:pointer;font-size:14px;line-height:1}
  #farFlag .ff-btns{display:flex;gap:8px}
  #farFlag .ff-btns button{flex:1;border-radius:9px;padding:9px 10px;font-size:12px;font-weight:700;cursor:pointer;border:1px solid var(--line-2);background:var(--panel-2);color:var(--ink);font-family:inherit}
  #farFlag .ff-btns .ff-prop{background:var(--blaze);border-color:var(--blaze);color:#1a1205}
  /* ---- Scout-led setup + Property Hub ---- */
  #scoutSetupBar{display:none;align-items:center;gap:10px;margin:0 0 10px;padding:11px 12px;border-radius:12px;border:1px solid var(--blaze);background:linear-gradient(rgba(255,138,0,.10),rgba(255,138,0,.04));cursor:pointer}
  #scoutSetupBar.show{display:flex}
  #scoutSetupBar .ssb-star{flex:0 0 auto;color:var(--blaze);font-size:16px}
  #scoutSetupBar .ssb-t{font-weight:700;font-size:13px;color:var(--ink);line-height:1.2}
  #scoutSetupBar .ssb-s{font-size:11px;color:var(--ink-dim);margin-top:1px}
  #scoutSetupBar .ssb-go{margin-left:auto;flex:0 0 auto;font-size:11px;font-weight:700;color:var(--blaze)}
  .setup-chips{display:flex;flex-wrap:wrap;gap:7px}
  .setup-chips button{border:1px solid var(--line-2);background:var(--panel-2);color:var(--ink);border-radius:999px;padding:8px 13px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}
  .setup-chips button.primary{background:var(--blaze);border-color:var(--blaze);color:#1a1205}
  .setup-chips button.ghost{background:transparent;color:var(--ink-dim)}
  .hub-sec{margin:0 0 14px}
  .hub-sec h4{font-family:var(--disp);text-transform:uppercase;letter-spacing:.6px;font-size:11px;color:var(--ink-dim);margin:0 0 7px}
  .hub-read{font-size:13px;color:var(--ink);line-height:1.5;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--blaze);border-radius:10px;padding:11px 12px}
  .pscore{display:flex;align-items:flex-start;gap:14px;background:var(--panel-2);border:1px solid var(--line);border-radius:14px;padding:14px;margin:0 0 14px}
  .pscore .ps-ring{position:relative;flex:0 0 auto;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--blaze) calc(var(--p,0)*1%),rgba(255,255,255,.09) 0)}
  .pscore .ps-ring::before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--panel-2)}
  .pscore .ps-num{position:relative;z-index:1;font-family:var(--disp);font-weight:800;font-size:17px;color:var(--ink);line-height:1}
  .pscore .ps-num span{font-size:9.5px;color:var(--ink-dim)}
  .pscore .ps-meta{flex:1;min-width:0}
  .pscore .ps-title{font-family:var(--disp);text-transform:uppercase;letter-spacing:.6px;font-size:11px;color:var(--ink-dim);margin-bottom:3px}
  .pscore .ps-sub{font-size:12.5px;color:var(--ink);line-height:1.4}
  .pscore .ps-acres{font-size:11px;color:var(--ink-dim);line-height:1.45;margin-top:6px}
  .hub-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:2px}
  .hub-ic{display:flex;flex-direction:column;align-items:center;gap:7px;background:var(--panel-2,#1c2127);border:1px solid var(--line-2);border-radius:14px;padding:14px 3px 11px;cursor:pointer}
  .hub-ic:active{transform:scale(.97)}
  .hub-ic .hi-ic{width:30px;height:30px;color:var(--accent);display:flex;align-items:center;justify-content:center}
  .hub-ic .hi-ic svg{width:28px;height:28px}
  .hub-ic .hi-l{font-size:11px;color:var(--ink);font-weight:600;letter-spacing:.2px;text-align:center;line-height:1.15}
  .hub-scoreline{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;border-top:1px solid var(--line-2);margin-top:14px;padding:14px 2px 8px;cursor:default}
  .hub-propinfo{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:12px;overflow:hidden;margin-top:2px}
  .hub-propinfo .hpi{background:var(--panel);padding:10px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}
  .hub-propinfo .hpi.wide{grid-column:1/-1}
  .hub-propinfo .hpi span{font-size:10px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.5px}
  .hub-propinfo .hpi b{font-size:13px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .hub-details .hd-h{font-size:10.5px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.6px;margin:16px 0 9px}
  .hub-scoreline .hsl-ring{flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--accent) calc(var(--p)*1%),rgba(255,255,255,.10) 0);position:relative}
  .hub-scoreline .hsl-ring::before{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--panel)}
  .hub-scoreline .hsl-ring span{position:relative;font-size:14px;font-weight:700;color:var(--ink)}
  .hub-scoreline .hsl-tx{flex:1;text-align:left;display:flex;flex-direction:column}
  .hub-scoreline .hsl-tx b{font-size:13.5px;color:var(--ink)}
  .hub-scoreline .hsl-tx em{font-size:11.5px;color:var(--ink-dim);font-style:normal}
  .hub-scoreline .hsl-go{flex:0 0 auto;font-size:12px;color:var(--accent)}
  .hub-details{margin-top:6px}
  .hub-details .hub-mini-btn{width:100%;margin-top:10px;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.4);color:var(--accent);border-radius:11px;padding:11px;font-size:13px;font-weight:600;cursor:pointer}
  .hub-mini{display:flex;gap:8px;margin-top:14px}
  .hub-mini button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;background:none;border:1px solid var(--line-2);color:var(--ink-dim);border-radius:11px;padding:11px 8px;font-size:12.5px;cursor:pointer}
  .hub-mini button .hm-ic{flex:0 0 auto;width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:var(--accent)}
  .hub-mini button .hm-ic svg{width:16px;height:16px}
  .hub-mini button:active{color:var(--ink)}
  .intel-cats{margin:0 0 14px;display:flex;flex-direction:column;gap:8px}
  .ic-row{display:flex;align-items:center;gap:10px;cursor:pointer}
  .ic-lab{flex:0 0 130px;display:flex;flex-direction:column;gap:1px;font-size:11.5px;color:var(--ink-dim)}
  .ic-lab em{font-style:normal;font-size:9px;opacity:.7;font-family:var(--mono)}
  .ic-bar{flex:1;height:7px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}
  .ic-fill{display:block;height:100%;border-radius:4px;background:var(--blaze)}
  .ic-pct{flex:0 0 auto;font-family:var(--mono);font-size:10.5px;color:var(--ink-dim);min-width:34px;text-align:right}
  .ic-row.weak .ic-lab{color:var(--ink)}
  .ic-row.weak .ic-pct{color:var(--blaze-2)}
  body.placing-mode #left{display:none!important}
  /* In placing/edit mode only the base map takes taps — existing markers, shapes, labels & popups can't be selected. */
  body.placing-mode .leaflet-marker-pane,
  body.placing-mode .leaflet-overlay-pane,
  body.placing-mode .leaflet-popup-pane,
  body.placing-mode .leaflet-tooltip-pane{pointer-events:none!important}
  /* Spotlight: Show-on-map for a hit-list buck hides every other layer until the next interaction. */
  body.buck-focus .leaflet-overlay-pane,
  body.buck-focus .leaflet-marker-pane,
  body.buck-focus .leaflet-shadow-pane,
  body.buck-focus .leaflet-tooltip-pane,
  body.buck-focus .leaflet-popup-pane{visibility:hidden!important}
  body.buck-focus .buck-spotlight{visibility:visible!important}
  .bspot{position:relative;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none}
  .bspot-pin{position:relative;width:42px;height:42px;border-radius:50%;background:var(--bc,#c9742e);display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.55)}
  .bspot-pin svg{color:#fff}
  .bspot-pin::after{content:'';position:absolute;inset:-7px;border-radius:50%;border:2px solid var(--bc,#c9742e);opacity:.7;animation:bspotPulse 1.7s ease-out infinite}
  @keyframes bspotPulse{0%{transform:scale(.72);opacity:.75}100%{transform:scale(1.55);opacity:0}}
  .bspot-nm{margin-top:8px;background:rgba(10,12,14,.86);color:#fff;font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:-.1px;padding:3px 9px;border-radius:7px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.4)}
  .hub-sugg{cursor:pointer}
  .hub-sugg .hs-tx{flex:1}
  .hub-sugg .hs-go{flex:0 0 auto;align-self:center;color:var(--blaze);font-family:var(--mono);font-size:10.5px;font-weight:700}
  .hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .hub-stat{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 11px}
  .hub-stat .hs-v{font-family:var(--disp);font-weight:700;font-size:17px;color:var(--ink)}
  .hub-stat .hs-l{font-size:10.5px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
  .hub-sugg{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--ink);line-height:1.45;padding:8px 0;border-top:1px solid var(--line)}
  .hub-sugg:first-child{border-top:none}
  .hub-sugg .hs-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--blaze);margin-top:5px}
  .hub-btn{width:100%;border-radius:11px;padding:13px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;border:1px solid var(--blaze);background:var(--blaze);color:#1a1205;margin-top:4px}
  .hub-btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
  .hub-setup-cta{text-align:center;padding:8px 4px 4px}
  .hub-setup-cta .hsc-star{font-size:30px;color:var(--blaze);line-height:1}
  .hub-setup-cta h3{font-family:var(--disp);font-weight:800;font-size:19px;color:var(--ink);margin:10px 0 6px}
  .hub-setup-cta p{font-size:13px;color:var(--ink-dim);line-height:1.5;margin:0 0 14px}
  /* Secondary routes in. Deliberately quieter than the orange CTA — guided setup is the
     right default for most hunters, so these read as alternatives rather than competing
     for the tap. Sized to the 44px touch target either side of the separator. */
  .hub-setup-cta .hsc-alt{display:flex;align-items:center;justify-content:center;gap:10px;margin:14px 0 0;flex-wrap:wrap}
  .hub-setup-cta .hsc-alt-btn{background:transparent;border:1px solid var(--line-2);color:var(--ink);
    font-family:inherit;font-size:13px;font-weight:600;padding:11px 14px;border-radius:9px;cursor:pointer;min-height:44px}
  .hub-setup-cta .hsc-alt-btn:active{border-color:var(--blaze);color:var(--blaze)}
  .hub-setup-cta .hsc-alt-sep{font-size:12px;color:var(--ink-dim)}
  .hub-setup-cta .hsc-alt-note{font-size:11.5px;color:var(--ink-dim);line-height:1.45;margin:10px 4px 2px}
  #toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

  .leaflet-tooltip.mlabel{background:rgba(15,18,12,.85);border:1px solid var(--line-2);color:var(--ink);font-family:var(--mono);font-size:11px;border-radius:6px;box-shadow:none;padding:3px 7px}
  .leaflet-tooltip.mlabel:before{display:none}
  .zlabel{background:rgba(15,18,12,.82);border:1px solid var(--line-2);color:var(--ink);font-family:var(--disp);letter-spacing:1px;text-transform:uppercase;font-size:11px;border-radius:6px;padding:2px 8px;box-shadow:none}
  .zlabel:before{display:none}
  .textlabel{color:#fff;font-family:var(--disp);font-weight:600;letter-spacing:.5px;font-size:14px;white-space:nowrap;text-shadow:0 1px 2px #000,0 0 4px #000,0 0 6px #000;transform:translate(-50%,-50%);display:inline-block}
  .search-pin{pointer-events:none}
  .search-pin .spin-core{position:absolute;inset:0;border-radius:50%;background:var(--blaze);border:2.5px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.55);animation:spinDrop .3s cubic-bezier(.2,1.4,.5,1)}
  .search-pin .spin-pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--blaze);animation:spinPulse 1.5s ease-out infinite}
  @keyframes spinPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.8);opacity:0}}
  @keyframes spinDrop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
  .pin{position:relative;display:grid;place-items:center;border-radius:50%;background:rgba(20,23,28,.92);border:2px solid var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.3);backdrop-filter:blur(2px)}
  .leaflet-pane > svg path{pointer-events:none}
  .leaflet-pane > svg path.leaflet-interactive{pointer-events:all}
  .leaflet-interactive{cursor:pointer}
  .leaflet-container.drawing .leaflet-marker-icon,.leaflet-container.drawing .leaflet-interactive{pointer-events:none!important}
  .pin span{font-size:13px;line-height:1;filter:grayscale(.15)}
  .pin svg{display:block}
  .pin.flag{border-color:var(--good);box-shadow:0 0 0 3px rgba(95,191,106,.25),0 2px 8px rgba(0,0,0,.55)}
  .pinbadge{position:absolute;left:20px;top:-4px;font-size:11px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.7))}
  .pinbadge2{position:absolute;left:-6px;top:-4px;font-size:11px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.7))}

  .overlayfull{display:none;position:absolute;inset:0;z-index:10003;background:rgba(10,12,7,.93);backdrop-filter:blur(3px);align-items:flex-start;justify-content:center;padding:22px;overflow-y:auto}
  .modalbox{max-width:480px;background:var(--panel);background-image:linear-gradient(rgba(22,26,31,.9),rgba(22,26,31,.9)),url(assets/topo.webp);background-size:cover;background-position:center;background-repeat:no-repeat;border:1px solid var(--line-2);border-radius:16px;padding:24px;max-height:86vh;overflow:auto;margin:auto}
  .modalbox h3{font-family:var(--disp);font-size:21px;letter-spacing:-.3px;font-weight:700;color:var(--ink);margin:0 0 12px}
  .modalbox p,.modalbox li{color:var(--ink-dim);font-size:13.5px;line-height:1.6}
  .modalbox b{color:var(--ink)}
  .modalbox .close{margin-top:14px}
  .modalx{position:absolute;top:14px;right:14px;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;cursor:pointer;color:var(--ink-dim);font-size:15px;border:1px solid var(--line-2);background:var(--panel-2);transition:.12s}
  .modalx:hover{color:var(--ink);border-color:var(--accent)}
  .steps{display:flex;flex-direction:column;gap:10px;margin:14px 0}
  .step{display:flex;gap:11px;align-items:flex-start}
  .step .n{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--disp);font-weight:600;display:grid;place-items:center;font-size:13px}
  .step div{font-size:13px;color:var(--ink-dim);line-height:1.45}
  .step b{color:var(--ink)}

  .shapegrid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:6px 0 14px}
  .shapepick{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:9px;cursor:pointer;font-family:var(--body);font-size:13px;text-align:left}
  .shapepick:hover{border-color:var(--blaze)}
  .shapepick i{width:15px;height:15px;border-radius:4px;flex:0 0 auto}
  #shapePickGrid.route-pick{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .shapepick.route-tile{flex-direction:column;align-items:stretch;gap:6px;text-align:center;padding:9px 10px}
  .shapepick.route-tile .rp-prev{width:100%;height:26px;display:block}
  .shapepick.route-tile .rp-name{font-size:13px;line-height:1.1}
  .pf-elev{width:100%;min-width:0;max-width:100%}
  .leaflet-popup.elev-wide .leaflet-popup-content{width:300px!important}
  .pf-elev-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}
  .pf-elev-t{font-weight:600;font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pf-elev-body .elev-msg{font-size:12px;color:var(--muted,#9aa3ad);padding:14px 6px;text-align:center}
  .pf-elev-svg{display:block;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}
  .pf-elev .elev-stats{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:var(--muted,#9aa3ad);margin-top:6px;justify-content:center}
  .pf-elev .elev-stats b{color:var(--ink);font-weight:700}
  .pf-elev-sl{width:100%;margin:10px 0 4px;accent-color:#f26722;touch-action:none}
  .pf-elev-read{font-size:11.5px;color:var(--muted,#9aa3ad);text-align:center;min-height:14px}
  .edot{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--blaze);box-shadow:0 1px 4px rgba(0,0,0,.6);cursor:move}

  #tipbox{position:absolute;z-index:1900;background:#0c0f08;border:1px solid var(--blaze);color:var(--ink);font-size:11.5px;line-height:1.4;border-radius:8px;padding:8px 10px;max-width:230px;pointer-events:none;opacity:0;transition:opacity .12s;box-shadow:0 8px 22px rgba(0,0,0,.55)}
  #tipbox.show{opacity:1}

  #acList{position:absolute;top:calc(100% + 5px);left:0;right:0;background:var(--panel);border:1px solid var(--line-2);border-radius:9px;overflow:hidden;display:none;z-index:1600;box-shadow:0 12px 30px rgba(0,0,0,.5)}
  #acList.show{display:block}
  .ac-rechead{font-family:var(--mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);padding:8px 12px 3px}
  .acitem{padding:9px 11px;font-size:12.5px;color:var(--ink);cursor:pointer;border-bottom:1px solid var(--line);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .acitem:last-child{border-bottom:none}
  .acitem:hover,.acitem.sel{background:var(--panel-2);color:var(--blaze-2)}
  .acitem small{display:block;color:var(--ink-dim2);font-family:var(--mono);font-size:9px}
  .acitem-local{border-left:2px solid var(--accent)}
  .acitem-local small{color:var(--blaze-2);opacity:.8}
  .acitem .ac-icon{font-size:10px;margin-right:5px;opacity:.7}

  /* Contors AI chat — AI button is a plain control-stack iconbtn (see .iconbtn) */
  #aiFab{position:relative}
  @keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}
  #aiPanel{position:absolute;top:60px;bottom:12px;right:12px;z-index:1200;width:var(--panelW);max-width:calc(100vw - 24px);
    background:var(--panel);border:1px solid var(--line);border-radius:15px;display:flex;flex-direction:column;overflow:hidden;
    box-shadow:0 10px 28px rgba(0,0,0,.4);transform:translateX(384px);visibility:hidden;pointer-events:none;
    transition:transform .25s ease, visibility 0s linear .25s}
  #aiPanel.open{transform:translateX(0);visibility:visible;pointer-events:auto;transition:transform .25s ease, visibility 0s}
  .aihead{display:flex;align-items:center;gap:9px;padding:13px 14px;border-bottom:1px solid var(--line);flex:0 0 auto;background:linear-gradient(180deg,#1a2230,var(--panel))}
  .aihead .ico{width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,var(--accent),var(--accent-dim));display:grid;place-items:center;font-size:18px;flex:0 0 auto}
  .aihead .tt{flex:1;line-height:1.1}
  .aihead .tt b{font-family:var(--disp);text-transform:uppercase;letter-spacing:1.5px;font-size:16px;color:var(--ink)}
  .aihead .tt small{display:block;font-family:var(--mono);font-size:8.5px;color:var(--ink-dim2);letter-spacing:1px}
  .aihead .x{cursor:pointer;color:var(--ink-dim);font-size:20px;padding:2px 6px}
  .aihead .x:hover{color:var(--blaze-2)}
  .aichat{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px;display:flex;flex-direction:column;gap:11px}
  .aichat::-webkit-scrollbar{width:7px}.aichat::-webkit-scrollbar-thumb{background:var(--line);border-radius:7px}
  .amsg{max-width:86%;padding:10px 12px;border-radius:13px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
  .amsg.u{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px;font-weight:500}
  .amsg.a{align-self:flex-start;background:var(--panel-2);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:4px}
  .amsg.a b{color:var(--blaze-2)}
  .amsg-ask{cursor:pointer}
  .amsg-ask::after{content:'Tap to ask Scout to dig in \203a';display:block;margin-top:8px;font-family:var(--mono);font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--blaze);opacity:.8}
  .amsg-ask:active{border-color:var(--blaze)}
  .amsg.think{color:var(--ink-dim);font-style:italic}
  .achips{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 10px}
  .achip{font-family:var(--mono);font-size:10.5px;padding:6px 10px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink-dim);border-radius:14px;cursor:pointer;white-space:nowrap}
  .achip.gapchip{border-color:rgba(255,255,255,.82);color:var(--ink);background:transparent;font-weight:600}
  .achip:hover{border-color:var(--blaze);color:var(--blaze-2)}
  .aifoot{flex:0 0 auto;border-top:1px solid var(--line);padding:10px;display:flex;gap:8px;align-items:flex-end}
  .aifoot textarea{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:11px;padding:10px;font-family:var(--body);font-size:13px;resize:none;max-height:90px;outline:none;line-height:1.4}
  .aifoot textarea:focus{border-color:var(--blaze)}
  .aifoot .send{flex:0 0 auto;width:40px;height:40px;border-radius:11px;background:var(--accent);border:none;color:#fff;font-size:17px;cursor:pointer;display:grid;place-items:center}
  .aifoot .send:disabled{opacity:.4;cursor:default}
  /* Scout map-placement "watching" bar */
  #placeBar{display:none;position:fixed;top:calc(env(safe-area-inset-top) + 12px);left:50%;transform:translateX(-50%);z-index:100001;width:min(560px,calc(100vw - 24px));box-sizing:border-box;align-items:center;gap:11px;background:rgba(20,19,18,.97);backdrop-filter:blur(10px);border:1px solid var(--accent);border-radius:14px;padding:11px 12px 11px 14px;box-shadow:0 16px 44px rgba(0,0,0,.55)}
  #placeBar.show{display:flex}
  .pb-mark{display:inline-flex;flex-shrink:0}
  .pb-text{flex:1;color:var(--ink);font-size:14px;font-weight:600;line-height:1.3;font-family:var(--body)}
  .pb-confirm{flex-shrink:0;background:var(--accent);color:#1a0f06;border:none;border-radius:9px;padding:9px 15px;font-family:var(--body);font-weight:800;font-size:13.5px;cursor:pointer}
  .pb-confirm:hover{background:var(--blaze-2)}
  .pb-cancel{flex-shrink:0;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim);width:32px;height:32px;border-radius:9px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}
  .pb-undo{flex-shrink:0;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim);width:32px;height:32px;border-radius:9px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}
  .pb-undo:hover{color:var(--ink);border-color:var(--accent)}
  .pb-cancel:hover{color:var(--ink);border-color:var(--accent)}
  #aiPanel.placing{display:none!important}
  .prop-row{display:flex;align-items:center;gap:11px;background:var(--panel-2);border:1px solid var(--line);border-radius:13px;padding:12px 13px;cursor:pointer}
  .prop-row.active{border-color:var(--accent);background:linear-gradient(180deg,rgba(255,138,0,.10),rgba(255,138,0,.03));cursor:default}
  .prop-main{flex:1;min-width:0}
  .prop-name{font-weight:700;font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:7px}
  .prop-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);flex:none}
  .prop-role{color:var(--ink-dim2);font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.7px;margin-top:4px}
  .prop-role.adm{color:var(--accent)}
  .prop-acts{display:flex;gap:7px;flex-shrink:0}
  .prop-ic{width:38px;height:38px;border-radius:10px;background:var(--panel);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--ink-dim);cursor:pointer}
  .prop-ic.solid{background:var(--accent);border-color:var(--accent);color:#1a0f06}
  .prop-ic:hover{color:var(--ink);border-color:var(--accent)}
  .prop-ic.solid:hover{color:#1a0f06}
  .prop-ic svg{width:18px;height:18px}
  .prop-chev{color:var(--ink-dim2);font-size:20px;width:20px;text-align:center;flex:none}
  /* ── Properties panel redesign ── */
  .prop-sheet{position:relative;max-width:460px;width:min(460px,calc(100vw - 28px));background:#15151a;max-height:88vh;overflow-y:auto;padding:22px 20px 20px}
  /* Properties panel rendered as a dropdown anchored under the map-name in the header */
  #propModal{align-items:flex-start;justify-content:flex-start;background:transparent;backdrop-filter:none;padding:0}
  #propModal .modalbox.prop-sheet{position:absolute;top:calc(50px + env(safe-area-inset-top));left:10px;max-width:380px;width:min(380px,calc(100vw - 20px));max-height:min(72vh,580px);overflow:auto;padding:15px 15px 13px;border-radius:14px;box-shadow:0 18px 52px rgba(0,0,0,.62);transform-origin:top left;animation:propDrop .15s ease}
  #propModal .modalbox.prop-sheet::before{content:'';position:absolute;top:-7px;left:24px;width:13px;height:13px;background:var(--panel);border-left:1px solid var(--line-2);border-top:1px solid var(--line-2);transform:rotate(45deg)}
  #propModal .prop-top h2{font-size:18px!important}
  #propModal .prop-sub{font-size:11.5px}
  @keyframes propDrop{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
  .prop-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
  .prop-sub{color:var(--ink-dim2);font-size:12.5px;line-height:1.45;margin-top:4px}
  #propList{display:flex;flex-direction:column;gap:9px}
  .prop-card{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .15s}
  .prop-card.active{border-color:var(--accent)}
  .prop-cardhead{display:flex;align-items:center;gap:11px;padding:13px}
  .prop-card.active .prop-cardhead{background:linear-gradient(180deg,rgba(255,138,0,.10),rgba(255,138,0,.02))}
  .prop-cmain{flex:1;min-width:0;cursor:pointer}
  .prop-cname{font-weight:700;font-size:15px;color:var(--ink);display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .prop-cdot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);flex:none}
  .prop-crole{color:var(--ink-dim2);font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.7px;margin-top:4px}
  .prop-crole.adm{color:var(--accent)}
  .prop-gear{width:36px;height:36px;border-radius:9px;background:var(--panel);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--ink-dim);flex:none;cursor:pointer;transition:.12s}
  .prop-gear:hover{color:var(--ink);border-color:var(--accent)}
  .prop-gear.open{background:var(--accent);border-color:var(--accent);color:#1a0f06}
  .prop-gear svg{width:17px;height:17px}
  .prop-chevr{color:var(--ink-dim2);font-size:20px;width:18px;text-align:center;flex:none;cursor:pointer}
  .prop-body{border-top:1px solid var(--line);padding:14px 13px 6px;display:flex;flex-direction:column;gap:15px}
  .prop-sec{display:flex;flex-direction:column;gap:8px}
  .prop-seclbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-dim2)}
  .prop-input{width:100%;background:var(--panel);border:1px solid var(--line-2);color:var(--ink);border-radius:9px;padding:10px 12px;font-family:var(--body);font-size:14px;outline:none}
  .prop-input:focus{border-color:var(--accent)}
  .prop-row2{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .prop-mini{background:var(--accent);color:#1a0f06;border:none;border-radius:9px;padding:10px 13px;font-family:var(--body);font-weight:800;font-size:12.5px;cursor:pointer;white-space:nowrap}
  .prop-mini.ghost{background:var(--panel);border:1px solid var(--line-2);color:var(--ink-dim);font-weight:600}
  .prop-mini.ghost:hover{color:var(--ink);border-color:var(--accent)}
  .prop-mini.danger{background:transparent;border:1px solid rgba(255,90,60,.4);color:#ff6a48;font-weight:700;width:100%}
  .prop-mini.danger:hover{background:rgba(255,90,60,.1)}
  .prop-sel{width:100%;background:var(--panel);border:1px solid var(--line-2);color:var(--ink);border-radius:9px;padding:10px 12px;font-family:var(--body);font-size:13.5px}
  .prop-copyrow{display:flex;gap:6px;align-items:center;background:var(--panel);border:1px solid var(--line-2);border-radius:9px;padding:4px 4px 4px 11px}
  .prop-copyrow code{flex:1;min-width:0;font-family:var(--mono);font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .prop-copybtn{background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim);border-radius:7px;padding:7px 11px;font-size:11px;font-family:var(--mono);cursor:pointer;flex:none}
  .prop-copybtn:hover{color:var(--accent);border-color:var(--accent)}
  .prop-member{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 9px}
  .prop-mname{flex:1;min-width:0;font-weight:600;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .prop-msel{background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink);border-radius:7px;padding:6px 7px;font-size:11px;font-family:var(--body);flex:none}
  .prop-mx{width:30px;height:30px;border-radius:7px;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim2);cursor:pointer;flex:none;font-size:12px;display:flex;align-items:center;justify-content:center}
  .prop-mx svg{width:15px;height:15px}
  .prop-mx:hover{color:var(--ink);border-color:var(--accent)}
  .prop-mx.danger:hover{color:#ff6a48;border-color:rgba(255,90,60,.4)}
  .prop-iconbtn{width:42px;height:42px;flex:none;border-radius:9px;background:var(--panel);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--ink-dim);cursor:pointer;transition:.12s}
  .prop-iconbtn svg{width:18px;height:18px}
  .prop-iconbtn:hover{color:var(--ink);border-color:var(--accent)}
  .prop-iconbtn.solid{background:var(--accent);border-color:var(--accent);color:#1a0f06}
  .prop-iconbtn.solid:hover{background:var(--blaze-2)}
  .prop-iconbtn.danger:hover{color:#ff6a48;border-color:rgba(255,90,60,.4)}
  .prop-iconbtn.on{background:rgba(255,90,60,.14);border-color:rgba(255,90,60,.45);color:#ff6a48}
  .prop-bigbtn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:10px;border-radius:13px;padding:14px;font-family:var(--disp);font-weight:800;font-size:14px;letter-spacing:.3px;cursor:pointer}
  .prop-bigbtn.dashed{background:transparent;border:1.5px dashed rgba(255,138,0,.55);color:var(--accent)}
  .prop-bigbtn.dashed:hover{background:rgba(255,138,0,.06)}
  .prop-bigbtn.ghost{background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim);font-family:var(--body);font-weight:600;font-size:13px;margin-top:9px}
  .prop-bigbtn.ghost:hover{color:var(--ink);border-color:var(--line-2)}
  .prop-aboutwrap{text-align:center;margin-top:16px}
  .prop-aboutwrap a{color:var(--ink-dim2);font-size:11px;cursor:pointer;text-decoration:underline}
  .prop-status{font-size:12px;font-family:var(--mono);min-height:0}
  .prop-bodytop{display:flex;justify-content:flex-end;margin-bottom:-4px}
  .prop-iconbtn{width:36px;height:36px;border-radius:9px;background:var(--panel);border:1px solid var(--line-2);color:var(--ink-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;transition:.12s}
  .prop-iconbtn svg{width:16px;height:16px}
  .prop-iconbtn.accent{background:var(--accent);border-color:var(--accent);color:#1a0f06}
  .prop-iconbtn.accent:hover{filter:brightness(1.06)}
  .prop-iconbtn.danger:hover{color:#ff6a48;border-color:rgba(255,90,60,.45);background:rgba(255,90,60,.08)}
  .prop-iconbtn.ghost:hover{color:var(--ink);border-color:var(--accent)}
  .prop-iconbtn.sm{width:30px;height:30px;border-radius:8px}
  .prop-iconbtn.sm svg{width:14px;height:14px}
  .prop-nameedit{width:26px;height:26px;border-radius:7px;background:transparent;border:none;color:var(--ink-dim2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none;padding:0}
  .prop-nameedit:hover{color:var(--accent)}
  .prop-nameedit svg{width:14px;height:14px}
  .prop-nameinput{font-family:var(--disp);font-weight:700;font-size:15px;background:var(--panel);border:1px solid var(--accent);color:var(--ink);border-radius:8px;padding:5px 9px;outline:none;max-width:62%}
  .prop-delconfirm{display:flex;flex-direction:column;gap:9px;background:rgba(255,90,60,.07);border:1px solid rgba(255,90,60,.32);border-radius:11px;padding:12px}
  .prop-delconfirm .dl{font-size:12px;color:#ff8a6e;line-height:1.45}
  .prop-member{flex-direction:column;align-items:stretch;gap:8px}
  .prop-headtools{display:flex;align-items:center;gap:7px;flex:none}
  .prop-rosterrow{border-bottom:1px solid var(--line)}
  .prop-rosterrow:last-child{border-bottom:none}
  .prop-mrow{display:flex;align-items:center;gap:8px;padding:9px 0}
  body.placing-mode #mobileBar{pointer-events:auto} /* bar + all chrome stay fully tappable during placement; only the leaflet feature panes (above) are blocked, so a tap on the base map places the pin while tapping the bar/buttons works normally */
  body.placing-mode #backdrop{display:none!important;opacity:0!important;pointer-events:none!important}
  body.placing-mode #drawerBackdrop{display:none!important;opacity:0!important;pointer-events:none!important}
  .dots span{display:inline-block;width:6px;height:6px;margin:0 1px;border-radius:50%;background:var(--ink-dim);animation:blink 1.2s infinite both}
  .dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}
  @keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}

  #drawerBackdrop{display:none;position:fixed;inset:0;z-index:1150;background:rgba(0,0,0,.45);backdrop-filter:blur(1px)}
  #drawerBackdrop.show{display:block}
  @media (max-width:860px){
    .gobox{position:fixed;top:calc(56px + env(safe-area-inset-top));left:10px;right:10px;display:none;z-index:1600;max-width:none;width:auto;height:auto;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.5)}
    .gobox input{width:100%;font-size:15px;padding:4px 0}
    .gobox.open{display:flex}
    #mapctl{right:12px;top:auto;bottom:148px}
    #mapctl.shifted{right:12px}
    .panel{top:0;bottom:0;width:90vw;max-width:400px;border-radius:16px 0 0 16px;height:100%;padding-top:env(safe-area-inset-top);right:0!important;left:auto!important}
    #left.collapsed,#right.collapsed,#journalPanel.collapsed{transform:translateX(104%)}
    #left{transform:translateX(104%)} #right{transform:translateX(104%)} #journalPanel{transform:translateX(104%)}
    #left.open,#right.open,#journalPanel.open{transform:translateX(0)!important}
    .ptab{display:none}
    #aiPanel{position:fixed;top:auto;right:0;left:0;bottom:calc(var(--barh) - 1px);width:100%;max-width:100%;height:50vh;height:50dvh;max-height:50vh;max-height:50dvh;border-radius:20px 20px 0 0;transform:translateY(125%)}
    #aiPanel.open{transform:translateY(0)}
    .brand{font-size:17px}
    .brandmark{width:18px;height:18px;margin-right:5px}
    #topbar{gap:5px;padding:calc(max(env(safe-area-inset-top),56px) * 1.2) 8px 0}
    .iconbtn{width:40px;height:40px;font-size:17px}
    .modalbox{max-width:100%;width:100%;padding:18px;max-height:88dvh}
  /* overflow:auto above is both axes. A long restore-point label ("7/25/2026, 12:35:26
     PM · 40 markers, 9 routes") made the content wider than the card, so the whole
     account page could be dragged sideways. Vertical only, and stop children forcing
     the width. */
  .modalbox{overflow-x:hidden}
  .modalbox select,.modalbox input,.modalbox button{max-width:100%}
    .authcard{max-width:94vw;padding:26px 20px}
    .card{padding:11px}
    /* bigger touch targets inside panels */
    .tool .dot{width:48px;height:48px}
    .btn.tiny{padding:9px 10px}
    .switch{width:46px;height:26px}
    .switch:after{width:22px;height:22px}
    .switch.on:after{left:22px}
  }

  /* ========== LANDING PAGE ========== */
  #landingPage{position:fixed;inset:0;z-index:99998;background:#0a0a0b;overflow-y:auto;overflow-x:hidden;font-family:var(--disp)}
  #landingPage.hidden{display:none}
  #landingPage:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
    background-image:url(assets/topo.webp);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:.5}
  .lp-wrap{position:relative;z-index:1}
  .lp-nav{display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:64px;
    border-bottom:1px solid rgba(255,255,255,.07);backdrop-filter:blur(10px);
    background:rgba(10,10,11,.8);position:sticky;top:0;z-index:10}
  .lp-navbrand{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--ink)}
  .lp-navlinks{display:flex;gap:28px}
  .lp-navlinks a{color:var(--ink-dim);font-size:13px;letter-spacing:.5px;text-transform:uppercase;text-decoration:none;transition:.15s}
  .lp-navlinks a:hover{color:var(--ink)}
  .lp-navbtns{display:flex;gap:10px;align-items:center}
  .lp-loginbtn{background:none;border:1px solid var(--line-2);color:var(--ink);padding:8px 18px;border-radius:8px;cursor:pointer;font-family:var(--disp);font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;transition:.15s}
  .lp-loginbtn:hover{border-color:var(--accent);color:var(--accent)}
  .lp-startbtn{background:var(--accent);border:none;color:#1a0f06;padding:9px 20px;border-radius:8px;cursor:pointer;font-family:var(--disp);font-size:13px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;transition:.15s}
  .lp-startbtn:hover{background:var(--blaze-2)}
  .lp-hero{min-height:85vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 24px;position:relative;overflow:hidden;
    background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.5) 60%,rgba(10,10,11,1) 100%)}
  .lp-heromark{margin-bottom:24px;opacity:.95}
  .lp-herotag{font-family:var(--mono);font-size:10px;letter-spacing:4px;color:var(--accent);text-transform:uppercase;margin-bottom:24px;opacity:.9}
  .lp-heroh1{font-size:clamp(40px,7vw,88px);font-weight:900;letter-spacing:-1px;line-height:1.0;color:var(--ink);text-transform:uppercase;margin-bottom:20px;font-family:"Sora",system-ui,sans-serif}
  .lp-heroh1 span{color:var(--accent)}
  .lp-herosub{font-size:clamp(14px,1.8vw,18px);color:var(--ink-dim);max-width:520px;line-height:1.6;margin-bottom:36px}
  .lp-heroctас{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
  .lp-cta-pri{background:var(--accent);border:none;color:#1a0f06;padding:15px 34px;border-radius:8px;cursor:pointer;font-family:var(--disp);font-size:15px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;transition:.15s}
  .lp-cta-pri:hover{background:var(--blaze-2);transform:translateY(-1px)}
  .lp-cta-sec{background:none;border:1px solid rgba(255,255,255,.25);color:var(--ink);padding:15px 34px;border-radius:8px;cursor:pointer;font-family:var(--disp);font-size:15px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;transition:.15s}
  .lp-cta-sec:hover{border-color:var(--ink);background:rgba(255,255,255,.05)}
  .lp-feats{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .lp-feat{background:var(--panel);padding:36px 28px;display:flex;flex-direction:column;gap:14px}
  .lp-featic{color:var(--accent);margin-bottom:4px}
  .lp-feattitle{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:var(--ink)}
  .lp-featsub{font-size:13px;color:var(--ink-dim);line-height:1.55}
  .lp-footer{padding:28px 32px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line)}
  .lp-footerbrand{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink)}
  .lp-footertag{font-size:11px;letter-spacing:2px;color:var(--ink-dim2);text-transform:uppercase;font-family:var(--mono)}
  @media(max-width:860px){
    .lp-nav{padding:0 16px}
    .lp-navlinks{display:none}
    .lp-hero{min-height:90vh;padding:40px 20px}
    .lp-feats{grid-template-columns:repeat(2,1fr)}
    .lp-footer{flex-direction:column;gap:12px;text-align:center}
  }
  @media(max-width:480px){
    .lp-feats{grid-template-columns:1fr}
    .lp-heroctас{flex-direction:column;align-items:stretch;max-width:280px;margin:0 auto 0}
  }
  
  /* ======= EXPANDED LANDING PAGE CSS ======= */
  .lp-section{padding:80px 48px;max-width:1200px;margin:0 auto}
  .lp-section-dark{background:var(--panel);max-width:100%;padding:80px 0}
  .lp-section-dark .lp-section{padding:0 48px;margin:0 auto;max-width:1200px}
  .lp-seclabel{font-family:var(--mono);font-size:11px;letter-spacing:3px;color:var(--accent);text-transform:uppercase;margin-bottom:14px}
  .lp-sech2{font-size:clamp(28px,4vw,48px);font-weight:900;color:var(--ink);letter-spacing:-.5px;margin-bottom:16px;line-height:1.1}
  .lp-secsubhead{font-size:16px;color:var(--ink-dim);max-width:560px;line-height:1.6;margin-bottom:52px}
  /* hero stats */
  .lp-herostat{display:flex;align-items:center;gap:0;margin-top:44px;background:rgba(255,255,255,.06);border:1px solid var(--line-2);border-radius:14px;overflow:hidden}
  .lp-stat{padding:18px 32px;text-align:center;flex:1}
  .lp-statnum{display:block;font-size:24px;font-weight:900;color:var(--ink);font-family:var(--mono)}
  .lp-statlbl{display:block;font-size:11px;color:var(--ink-dim);letter-spacing:1px;text-transform:uppercase;margin-top:3px}
  .lp-statdiv{width:1px;background:var(--line-2);align-self:stretch}
  /* features grid */
  .lp-featgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}
  .lp-featcard{background:var(--panel);padding:36px 32px;border-radius:0;position:relative;transition:.2s}
  .lp-featcard:hover{background:var(--panel-2)}
  .lp-featcard-accent{background:rgba(255,106,31,.06);border-left:3px solid var(--accent)}
  .lp-featcard-accent:hover{background:rgba(255,106,31,.10)}
  .lp-fcico{color:var(--accent);margin-bottom:18px}
  .lp-fctitle{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:10px;letter-spacing:-.2px}
  .lp-fcsub{font-size:14px;color:var(--ink-dim);line-height:1.65}
  .lp-fcbadge{display:inline-block;margin-top:14px;background:var(--accent);color:#1a0f06;font-size:10px;font-weight:800;padding:3px 10px;border-radius:20px;letter-spacing:.5px;text-transform:uppercase}
  /* how it works */
  .lp-steps{display:flex;flex-direction:column;gap:0;max-width:700px;margin:0 auto}
  .lp-step{display:flex;gap:24px;align-items:flex-start;padding:24px 0}
  .lp-stepnum{font-family:var(--mono);font-size:42px;font-weight:900;color:var(--accent);opacity:.35;flex:0 0 64px;line-height:1}
  .lp-stepcontent h3{font-size:18px;font-weight:700;color:var(--ink);margin-bottom:8px}
  .lp-stepcontent p{font-size:14px;color:var(--ink-dim);line-height:1.65}
  .lp-stepline{width:2px;height:24px;background:var(--line-2);margin-left:31px}
  /* buck model */
  .lp-modelgrid{display:grid;grid-template-columns:1fr 420px;gap:60px;align-items:start}
  .lp-modelintro{font-size:17px;color:var(--ink-dim);line-height:1.65;margin-bottom:32px}
  .lp-modelitem{display:flex;gap:16px;margin-bottom:24px;align-items:flex-start;font-size:14px;color:var(--ink-dim);line-height:1.6}
  .lp-modelico{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;flex:0 0 36px}
  .lp-modeldemo{background:var(--panel);border:1px solid var(--line-2);border-radius:16px;padding:28px}
  .lp-demolbl{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--ink-dim2);text-transform:uppercase;margin-bottom:10px}
  .lp-demobar{height:10px;border-radius:5px;margin-bottom:16px}
  .lp-demobar-red{background:linear-gradient(90deg,rgba(255,74,48,.2),rgba(255,74,48,.6),rgba(255,74,48,.9))}
  .lp-demobar-green{background:linear-gradient(90deg,rgba(150,190,95,.2),rgba(150,190,95,.6),rgba(150,190,95,.9))}
  .lp-demolegend{display:flex;flex-direction:column;gap:8px}
  .lp-demoitem{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-dim)}
  .lp-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}
  .lp-dot-red{background:rgba(255,74,48,.8)}.lp-dot-orange{background:rgba(255,140,66,.7)}.lp-dot-yellow{background:rgba(224,168,74,.7)}
  .lp-dot-green{background:rgba(150,190,95,.9)}.lp-dot-teal{background:rgba(74,147,166,.8)}.lp-dot-sage{background:rgba(134,144,72,.8)}
  /* blog */
  .lp-bloggrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
  .lp-blogcard{background:var(--panel);border:1px solid var(--line-2);border-radius:14px;padding:28px;transition:.2s}
  .lp-blogcard:hover{border-color:var(--accent);background:var(--panel-2)}
  .lp-blogcat{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--accent);text-transform:uppercase;margin-bottom:12px}
  .lp-blogcard h3{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:10px;line-height:1.35}
  .lp-blogcard p{font-size:13.5px;color:var(--ink-dim);line-height:1.65}
  .lp-blogtags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
  .lp-blogtags span{font-size:11px;padding:3px 10px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:20px;color:var(--ink-dim2)}
  .lp-blogcard-link{display:block;text-decoration:none;cursor:pointer}
  .lp-blogcard-link:hover{border-color:var(--blaze);transform:translateY(-2px)}
  .lp-blogcard-link h3{color:var(--ink)}
  .lp-articles{max-width:820px;margin:44px auto 0}
  .lp-article{padding:34px 0;border-top:1px solid var(--line)}
  .lp-artcat{font-family:var(--mono);font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
  .lp-article h2{font-size:24px;line-height:1.2;font-weight:900;color:var(--ink);letter-spacing:-.3px;margin:0 0 14px;scroll-margin-top:84px}
  .lp-article h3{font-size:16px;font-weight:800;color:var(--ink);margin:22px 0 8px}
  .lp-article p{font-size:15px;color:var(--ink-dim);line-height:1.75;margin:0 0 14px}
  .lp-article p.lead{color:var(--ink);font-size:16px}
  .lp-article ul{margin:0 0 14px;padding-left:20px}
  .lp-article li{font-size:15px;color:var(--ink-dim);line-height:1.7;margin-bottom:6px}
  .lp-article a{color:var(--accent)}
  /* advanced grid */
  .lp-advgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .lp-advcard{background:var(--panel);border:1px solid var(--line-2);border-radius:14px;padding:28px;transition:.2s}
  .lp-advcard:hover{border-color:var(--line);background:var(--panel-2)}
  .lp-advcico{color:var(--accent);margin-bottom:14px}
  .lp-advcard h3{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:8px}
  .lp-advcard p{font-size:13px;color:var(--ink-dim);line-height:1.6}
  /* cta strip */
  .lp-cta-strip{background:linear-gradient(135deg,rgba(255,106,31,.12) 0%,rgba(255,106,31,.05) 100%);border-top:1px solid rgba(255,106,31,.2);border-bottom:1px solid rgba(255,106,31,.2);padding:60px 48px}
  .lp-cta-strip-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
  .lp-ctah2{font-size:clamp(24px,3vw,38px);font-weight:900;color:var(--ink);letter-spacing:-.3px;margin-bottom:8px}
  .lp-ctasub{font-size:15px;color:var(--ink-dim)}
  .lp-cta-strip-btns{display:flex;gap:12px;flex-wrap:wrap}
  /* footer */
  .lp-footer-full{background:var(--bg);border-top:1px solid var(--line);padding:60px 48px 0}
  .lp-footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:60px;padding-bottom:48px;border-bottom:1px solid var(--line)}
  .lp-footer-brand .lp-footerbrand{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);margin-bottom:10px}
  .lp-footer-brand .lp-footertag{font-size:11px;letter-spacing:2px;color:var(--ink-dim2);text-transform:uppercase;font-family:var(--mono);margin-bottom:16px}
  .lp-footerdesc{font-size:13px;color:var(--ink-dim2);line-height:1.6;max-width:340px}
  .lp-footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .lp-flinks-col{display:flex;flex-direction:column;gap:10px}
  .lp-flinks-head{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--ink-dim2);font-family:var(--mono);margin-bottom:4px}
  .lp-flinks-col a{font-size:13px;color:var(--ink-dim);text-decoration:none;transition:.12s}
  .lp-flinks-col a:hover{color:var(--accent)}
  .lp-footer-bottom{max-width:1200px;margin:0 auto;padding:20px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
  .lp-footer-bottom span{font-size:11.5px;color:var(--ink-dim2)}
  .lp-footer-seo{opacity:.4;font-size:10px!important}
  .lp-heroctas{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
  /* mobile overrides */
  @media(max-width:860px){
    .lp-section{padding:56px 20px}
    .lp-featgrid{grid-template-columns:1fr}
    .lp-modelgrid{grid-template-columns:1fr;gap:36px}
    .lp-bloggrid{grid-template-columns:1fr}
    .lp-advgrid{grid-template-columns:1fr}
    .lp-cta-strip{padding:48px 20px}
    .lp-cta-strip-inner{flex-direction:column;align-items:flex-start}
    .lp-footer-full{padding:48px 20px 0}
    .lp-footer-inner{grid-template-columns:1fr;gap:36px}
    .lp-footer-links{grid-template-columns:repeat(2,1fr)}
    .lp-herostat{flex-direction:row;flex-wrap:wrap}
    .lp-statdiv{display:none}
    .lp-stat{flex:1 1 calc(33% - 2px)}
  }
  @media(max-width:560px){
    .lp-footer-links{grid-template-columns:1fr}
    .lp-cta-strip-btns{flex-direction:column;width:100%}
    .lp-cta-strip-btns button{width:100%}
  }
  
  /* Marker + label zoom scaling */
  .mz-lo2 .pin,.mz-lo2 .textlabel{transform:scale(0.28);transform-origin:center bottom}
  .mz-lo3 .pin,.mz-lo3 .textlabel{transform:scale(0.38);transform-origin:center bottom}
  .mz-lo4 .pin,.mz-lo4 .textlabel{transform:scale(0.48);transform-origin:center bottom}
  .mz-mid .pin,.mz-mid .textlabel{transform:scale(0.65);transform-origin:center bottom}
  .mz-hi .pin,.mz-hi .textlabel{transform:scale(0.82);transform-origin:center bottom}
  /* full size at z17+ */
  
  /* ── Mobile bottom bar ─────────────────────────────────────────── */
  #mobileBar{display:none;position:absolute;bottom:0;left:0;right:0;z-index:9999;background:var(--panel);border-top:1px solid var(--line-2);backdrop-filter:blur(14px);padding-bottom:var(--barsafe);transform:translateZ(0);-webkit-transform:translateZ(0)}
  .mbar-inner{display:flex;align-items:flex-end;height:var(--barinner);padding:var(--barpad) 14px 0}
  .mbar-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-dim);background:none;border:none;cursor:pointer;height:100%;font-size:11px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;transition:color .15s;padding:0}
  .mbar-btn.active{color:var(--accent)}
  .mbar-btn span{display:block;margin-top:2px}
  .mbar-add{flex:1.2;padding-bottom:4px}
  .mbar-circle{width:58px;height:58px;background:radial-gradient(circle at 50% 42%,#1b2027,#101318);border:2.5px solid #f5f6f6;border-radius:50%;display:grid;place-items:center;margin-top:-16px;box-shadow:0 0 28px 5px rgba(255,138,0,.65),0 2px 8px rgba(0,0,0,.5)}
  .mbar-btn.active .mbar-circle{box-shadow:0 0 34px 6px rgba(255,138,0,.9),0 3px 12px rgba(0,0,0,.55)}
  @media(max-width:860px){
    #mobileBar{display:block}
    #tkDrawSec{display:none}
    /* Panels → bottom sheet on mobile (override side-drawer) */
    .panel{
      position:fixed!important;
      top:auto!important; left:0!important; right:0!important;
      padding-top:0!important; /* bottom sheet doesn't reach the status bar — reset the side-drawer's safe-area top padding so no dead space appears above the grabber */
      width:100%!important; max-width:100%!important; border-radius:20px 20px 0 0!important;
      height:var(--sheet-h,50vh)!important; height:var(--sheet-h,50dvh)!important;
      bottom:calc(var(--barh) - 1px)!important; /* tuck 1px under the bar so no hairline can show */
      transform:translateY(160%)!important;
      transition:transform .3s cubic-bezier(.4,0,.2,1), height .25s cubic-bezier(.4,0,.2,1);
    }
    .phead{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}
    .phead-min{display:none!important}
    .panel.open{transform:translateY(0)!important}
    .panel.collapsed{transform:translateY(150%)!important}
    /* content clears the fixed bottom bar so nothing hides behind it */
    .panel .pscroll{padding-bottom:12px!important}
    /* Tools as a clean 2-across grid on mobile, matching desktop */
    .tool-tiles{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}
    .tool-tile{aspect-ratio:auto!important;min-height:72px!important;padding:11px 10px!important;gap:8px!important}
    .tool-tile svg{width:34px!important;height:34px!important}
    .tool-tile span{font-size:14.5px!important;letter-spacing:.2px!important;text-align:center;line-height:1.18}
    #addPanel:not(.markerpage):not(.hubpage):not(.refugepage) .pscroll{display:flex;flex-direction:column}
    #addPanel:not(.markerpage):not(.hubpage):not(.refugepage) #toolsCard{flex:0 0 auto;display:block;min-height:0}
    #addPanel:not(.markerpage):not(.hubpage):not(.refugepage) .tool-tiles{flex:0 0 auto;min-height:0}
    #left:not(.fk-full) .pscroll{display:flex;flex-direction:column}
    #left:not(.fk-full) #fkGrid{flex:0 0 auto;min-height:0}
    /* Centered drag handle that doesn't shove the title (was a flex child with auto margins) */
    .phead{position:relative;padding-top:20px!important;justify-content:flex-start}
    .phead::before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);margin:0;width:40px;height:4px;background:var(--line-2);border-radius:2px}
    /* mapctl above bottom bar */
    #mapctl{bottom:calc(var(--barh) + 46px)!important;right:12px!important;top:auto!important}
    #mapctl.shifted{right:12px!important}
    /* Hide mapctl Kit/Layers buttons (moved to bottom bar) */
    #mLeftCtl,#mRight,#mAddBtn,#mScout,#mBucksBtn,#zoomIn,#zoomOut{display:none!important}
    /* Search bar */
    .ptab{display:none!important}
    .scalebadge{bottom:calc(var(--barh) + 28px)!important}
    #attribBar{bottom:calc(var(--barh) + 20px)!important}
    /* Toast higher */
    #toast{top:calc(env(safe-area-inset-top,0px) + 74px)!important;bottom:auto!important}
    /* HUD above bar */
    .hud{top:calc(64px + env(safe-area-inset-top))!important}
    .hud{flex-direction:column;width:min(420px,calc(100vw - 24px));max-width:none!important;padding:11px 12px!important;gap:10px!important}
    .hud #drawHudTxt,.hud #trackHudTxt{width:100%;text-align:center;font-size:12px!important;line-height:1.45}
/* --- start-tracking confirmation --- */
#trackConfirm{position:fixed;inset:0;z-index:120000;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(8,10,13,.62);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#trackConfirm.show{display:flex}
#trackConfirm .tc-card{width:min(360px,100%);background:var(--panel);border:1px solid var(--line-2);border-radius:16px;padding:20px 18px 16px;box-shadow:0 20px 60px rgba(0,0,0,.6);text-align:center}
#trackConfirm .tc-ic{width:48px;height:48px;margin:2px auto 12px;border-radius:50%;display:grid;place-items:center;background:rgba(242,103,34,.14);color:var(--accent)}
#trackConfirm .tc-title{font-family:var(--disp);font-size:17px;font-weight:600;color:var(--ink);margin-bottom:6px}
#trackConfirm .tc-sub{font-size:13px;line-height:1.5;color:var(--ink-dim);margin-bottom:16px}
#trackConfirm .tc-sub b{color:var(--ink)}
#trackConfirm .tc-btns{display:flex;gap:9px}
#trackConfirm .tc-btn{flex:1;min-height:46px;border-radius:11px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center}
#trackConfirm .tc-btn.ghost{background:transparent;border:1px solid var(--line-2);color:var(--ink-dim)}
#trackConfirm .tc-btn.go{background:var(--accent);border:1px solid var(--accent);color:#1a0f06}
/* the tracking box lives at the BOTTOM, clear of the nav bar */
#trackHud{top:auto!important;bottom:calc(var(--barh) + 80px)!important;left:50%!important;transform:translateX(-50%)!important;width:auto!important;max-width:min(340px,84vw)!important;padding:8px 10px!important;flex-wrap:nowrap!important;gap:10px!important}
/* Single row: status left, buttons right. Previously the status text was width:100%,
   which forced the buttons onto a second line and made the box twice as tall as it
   needed to be; at 80vw it also reached the map controls down the right-hand side. */
#trackHud #trackHudTxt{width:auto!important;flex:1 1 auto;text-align:left!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#trackHud .hud-btns{width:auto!important;flex:0 0 auto}
    .hud-btns{width:100%;gap:8px}
    .hud-btns .btn.tiny{flex:0 0 auto;min-height:34px;font-size:14px!important;font-weight:700;padding:0 16px!important;border-radius:9px;display:flex;align-items:center;justify-content:center;letter-spacing:.02em}
  }
  /* addPanel — uses .panel class; desktop position (narrower than the others) */
  #addPanel{right:12px;width:var(--panelW)}
  
  /* AI FAB — hidden on mobile when any panel is open */
  @media(max-width:860px){
    #aiFab{display:flex}  /* AI button lives in the right control stack, like desktop */
    #aiFab.hidden-by-panel{opacity:0!important;pointer-events:none!important;transform:scale(0)!important}
    #aiPanel{position:fixed!important;top:auto!important;bottom:calc(var(--barh) - 1px)!important;height:50vh!important;height:50dvh!important;max-height:50vh!important;max-height:50dvh!important;z-index:1250;transform:translateY(125%)}
    #aiPanel.open{transform:translateY(0)!important}
  }
  
  /* ── Mobile full-screen search overlay ────────────────────────── */
  #mobileSearchOverlay{display:none;position:fixed;inset:0;z-index:10002;background:var(--bg);flex-direction:column;
  padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom,0px)}
  #mobileSearchOverlay.open{display:flex}
  .mso-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:0 0 auto}
  #msoBack{background:none;border:none;cursor:pointer;color:var(--accent);padding:8px 6px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}
  #msoInput{flex:1;background:var(--panel-2);border:1.5px solid var(--line-2);border-radius:12px;padding:12px 16px;color:var(--ink);font-family:var(--mono);font-size:16px;outline:none;min-width:0}
  #msoInput:focus{border-color:var(--accent)}
  #msoBody{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .mso-hint-wrap{padding:28px 20px}
  .mso-hint-head{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--ink-dim2);font-family:var(--mono);margin-bottom:16px}
  .mso-eg{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line-2);border-radius:8px;padding:13px 16px;color:var(--ink-dim);font-size:14px;margin-bottom:10px;cursor:pointer;font-family:var(--body)}
  .mso-eg:active{background:var(--panel-2)}
  .mso-status{padding:32px 20px;text-align:center;color:var(--ink-dim);font-family:var(--mono);font-size:12px;letter-spacing:.5px}
  .mso-list{display:flex;flex-direction:column}
  .mso-rec-head{font-family:var(--mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);padding:12px 20px 4px}
  .mso-recent .mso-ico{color:var(--ink-dim2)}
  .mso-item{display:flex;align-items:flex-start;gap:14px;padding:15px 20px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .1s}
  .mso-item:active{background:var(--panel)}
  .mso-ico{color:var(--accent);flex-shrink:0;margin-top:2px}
  .mso-name{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.3}
  .mso-addr{font-size:12px;color:var(--ink-dim);margin-top:3px;line-height:1.5}
  
  /* ══ Map Layers redesign ══════════════════════════════════════ */
  .ml-head{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);font-family:var(--mono);font-weight:700;padding:0 0 12px}
  /* Base imagery options */
  .base-opt{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--panel-2);border:1.5px solid var(--line);border-radius:8px;margin-bottom:5px;cursor:pointer;transition:border-color .12s,background .12s;user-select:none}
  .base-opt.sel{border-color:var(--accent);background:rgba(255,106,31,.07)}
  .base-opt:active{background:var(--panel-2)}
  .bopt-rb{width:14px;height:14px;border-radius:50%;border:2px solid var(--ink-dim2);flex-shrink:0;transition:.12s}
  .base-opt.sel .bopt-rb{border-color:var(--accent);background:var(--accent)}
  .bopt-name{font-size:13.5px;color:var(--ink);font-weight:500;flex:1}
  .bopt-badge{font-size:9px;background:var(--accent);color:#1a0f06;padding:2px 8px;border-radius:8px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;flex-shrink:0}
  .bopt-thumb{width:38px;height:38px;flex:0 0 38px;border-radius:7px;background-size:cover;background-position:center;background-color:var(--bg);border:1px solid var(--line-2)}
  .lrow .bopt-thumb{width:30px;height:30px;flex:0 0 30px;border-radius:6px}
  .ml-more-btn{text-align:center;padding:8px 10px;font-family:var(--mono);font-size:10.5px;color:var(--ink-dim);cursor:pointer;border:1px dashed var(--line-2);border-radius:8px;margin-top:4px;transition:.12s;letter-spacing:.5px;user-select:none}
  .ml-more-btn:hover{color:var(--accent);border-color:var(--accent)}
  /* Hunting intelligence rows */
  .ml-hunt-card,.ml-detail-card{padding:12px 14px}
  .hunt-row{display:flex;align-items:flex-start;gap:11px;padding:10px 0;border-bottom:1px solid var(--line)}
  .hunt-row:last-child{border-bottom:none}
  .hunt-info{flex:1;min-width:0}
  .hunt-name{font-size:13.5px;font-weight:600;color:var(--ink-dim);transition:color .12s}
  .hunt-row.on .hunt-name{color:var(--ink)}
  .hunt-sub{font-size:11px;color:var(--ink-dim2);margin-top:2px;line-height:1.4}
  .hunt-slider{padding:5px 0 2px;display:none}
  .hunt-row.on .hunt-slider{display:block}
  .hunt-row .switch{flex-shrink:0;margin-top:3px}
  /* Map detail rows — compact */
  .detail-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
  .detail-row:last-child{border-bottom:none}
  .detail-label{flex:1;font-size:13px;color:var(--ink-dim);transition:color .12s;cursor:pointer}
  .detail-row.on .detail-label{color:var(--ink);font-weight:600}
  .detail-sub{font-size:10px;color:var(--ink-dim2);display:block;margin-top:1px}
  
  /* ── Rut Phase Card ──────────────────────────────────────────── */
  .rut-badge{font-family:var(--mono);font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:3px 10px;border-radius:12px;font-weight:700;background:var(--panel-2);color:var(--ink-dim);border:1px solid var(--line-2)}
  .rut-badge.rut-peak,.rut-badge.rut-peak{background:rgba(255,106,31,.15);color:var(--accent);border-color:var(--accent)}
  .rut-badge.rut-pre-rut,.rut-badge.rut-pre{background:rgba(232,184,75,.12);color:#e8b84b;border-color:#e8b84b55}
  .rut-timeline{margin:10px 0 4px}
  .rut-track{position:relative;height:6px;background:var(--line);border-radius:3px;overflow:visible}
  .rut-cursor{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--accent);top:-3px;transform:translateX(-50%);box-shadow:0 0 0 3px rgba(255,106,31,.25);transition:left .4s}
  .rut-adjust{margin-top:7px;display:flex;align-items:center;gap:8px;font-size:10.5px}
  .rut-adjust .ra-peak{color:var(--ink-dim2);font-family:var(--mono)}
  .rut-adjust button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:10.5px;text-decoration:underline;padding:0;font-family:var(--body)}
  .rut-adjust #rutResetBtn{color:var(--ink-dim2)}
  .rut-adjust input[type=date]{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:3px 6px;font-size:11px;font-family:var(--mono)}
  .rut-labels{display:flex;justify-content:space-between;font-size:9.5px;color:var(--ink-dim2);font-family:var(--mono);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}
  /* ── 16-day windows ──────────────────────────────────────────── */
  .wins-legend{font-size:11px;color:var(--ink-dim);line-height:1.5;margin-bottom:10px;padding:8px 10px;background:var(--panel-2);border-radius:8px;border:1px solid var(--line)}
  .wins-legend b{color:var(--accent)}
  .wins-row{margin-bottom:8px}
  .wins-date{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim2);margin-bottom:4px}
  .wins-slot{display:inline-flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:5px 10px;margin:2px 4px 2px 0;cursor:pointer;transition:.12s;font-size:12px}
  .wins-slot:hover{border-color:var(--accent);background:rgba(255,106,31,.07)}
  .ws-t{color:var(--ink);font-weight:600;font-family:var(--mono);font-size:11px}
  .ws-s{font-weight:800;font-size:12px;font-family:var(--mono)}
  .ws-w{color:var(--ink-dim2);font-size:11px;font-family:var(--mono)}
  /* ── Onboarding ──────────────────────────────────────────────── */
  #onboardOverlay{display:none!important}
  #onboardOverlay.show{display:flex!important}
.tone-pick{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.tone-opt{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;width:100%;background:var(--panel-2,#15171a);border:1px solid var(--line-2);border-radius:12px;padding:13px 15px;cursor:pointer;transition:border-color .15s,background .15s;color:var(--ink)}
.tone-opt:hover{border-color:var(--accent)}
.tone-opt.sel{border-color:var(--accent);background:rgba(255,138,0,.08)}
.tone-opt b{font-size:14px;font-weight:800}
.tone-opt span{font-size:12px;color:var(--ink-dim);line-height:1.4}
.tone-opt span i{color:var(--accent);font-style:normal;font-weight:700}
.acct-pref{margin-top:16px}
.acct-pref-lbl{font-size:11px;font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim);margin-bottom:7px}
.tone-seg{display:flex;gap:6px}
.tone-seg button{flex:1;background:var(--panel-2,#15171a);border:1px solid var(--line-2);border-radius:9px;padding:9px 6px;font-size:12px;font-weight:700;color:var(--ink-dim);cursor:pointer;transition:.15s}
.tone-seg button:hover{color:var(--ink);border-color:var(--accent)}
.tone-seg button.sel{background:var(--accent);border-color:var(--accent);color:#1a0f06}
.out-seg{display:flex;gap:6px}
.out-seg button{flex:1;background:var(--panel-2,#15171a);border:1px solid var(--line-2);border-radius:9px;padding:9px 6px;font-size:12px;font-weight:700;color:var(--ink-dim);cursor:pointer;transition:.15s}
.out-seg button:hover{color:var(--ink);border-color:var(--accent)}
.out-seg button.sel{background:var(--accent);border-color:var(--accent);color:#1a0f06}
.acct-pref-hint{font-size:11px;color:var(--ink-dim2);margin-top:7px;line-height:1.4}
  .onboard-box{background:var(--panel);border:1px solid var(--line-2);border-radius:20px;padding:32px 28px;max-width:420px;width:100%;text-align:center}
  .onboard-num{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--accent);margin-bottom:16px;text-transform:uppercase}
  .onboard-box h3{font-size:22px;font-weight:900;color:var(--ink);margin:0 0 14px;letter-spacing:-.3px}
  .onboard-box p{font-size:14px;color:var(--ink-dim);line-height:1.65;margin:0 0 24px}
  /* ── Stand popup season/obs enhancements ─────────────────────── */
  .sc-chip{padding:4px 10px;border-radius:14px;background:var(--panel-2);border:1px solid var(--line-2);font-size:11px;color:var(--ink-dim);cursor:pointer;margin:2px;transition:.1s;font-family:var(--mono)}
  .sc-chip.on{background:rgba(255,106,31,.15);border-color:var(--accent);color:var(--accent)}
  .obs-entry{font-size:11.5px;color:var(--ink-dim);padding:4px 0;border-bottom:1px solid var(--line);line-height:1.4}
  .obs-entry .obs-d{font-family:var(--mono);font-size:10px;color:var(--ink-dim2);display:block;margin-bottom:1px}
  .obs-add{display:flex;gap:6px;margin-top:6px}
  .obs-add input{flex:1;background:var(--panel-2);border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;color:var(--ink);font-size:12px;font-family:var(--mono)}
  
  /* ── Compact popup redesign ─────────────────────────────────── */
  .optchips{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 0}
  .optchips button{padding:4px 0;width:30px;text-align:center;border-radius:7px;background:var(--panel-2);border:1px solid var(--line);font-size:10.5px;color:var(--ink-dim);cursor:pointer;font-family:var(--mono);transition:.1s}
  .optchips button.on{background:rgba(255,106,31,.18);border-color:var(--accent);color:var(--accent);font-weight:700}
  .season-chips{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 0}
  .sc-chip{padding:4px 10px;border-radius:13px;background:var(--panel-2);border:1px solid var(--line);font-size:10.5px;color:var(--ink-dim);cursor:pointer;font-family:var(--mono);transition:.1s}
  .sc-chip.on{background:rgba(255,106,31,.18);border-color:var(--accent);color:var(--accent);font-weight:700}
  .obs-list{max-height:90px;overflow-y:auto;margin:4px 0}
  .obs-entry{font-size:11px;color:var(--ink-dim);padding:3px 0;border-bottom:1px solid var(--line);line-height:1.35}
  .obs-entry .obs-d{font-family:var(--mono);font-size:9.5px;color:var(--ink-dim2);display:block}
  .obs-add{display:flex;gap:5px;margin-top:4px}
  .obs-add input{flex:1;padding:5px 8px;font-size:11.5px}
  .obs-add button{flex:0 0 auto;width:32px;background:var(--panel-2);border:1px solid var(--line);color:var(--accent);border-radius:6px;cursor:pointer;font-size:15px;font-weight:700}
  
  .adv-toggle{font-family:var(--mono);font-size:11px;letter-spacing:.5px;color:var(--accent);cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:2px 0;user-select:none}
  .adv-toggle:hover{opacity:.8}
  @media(max-width:860px){ .adv-desktop-only{display:none!important} }
  /* ===== DESKTOP (>860px): Scout is a normal right-side popup — opens at launch, any other panel replaces it ===== */
  @media (min-width:861px){
    /* All panels (incl. Scout) share the right popup slot via openOnly(); #mapctl shifts when one is open.
       No permanent rail: Scout opens at launch and is replaced by Tools/Layers/Field Kit/Journal, just like before. */
  }
  /* ── Buck Locker ── */
  .lk-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 9px}
  .lk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .lk-card{position:relative;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--panel-2);border:1px solid var(--line);aspect-ratio:4/5;transition:.12s}
  .lk-card:hover{border-color:var(--blaze)}
  .lk-card:active{transform:scale(.985)}
  .lk-card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:var(--panel)}
  .lk-card-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--panel-2)}
  .lk-card-ph svg{width:44px;height:44px;color:var(--bc,#c9742e);opacity:.5}
  .lk-card-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,12,.93) 4%,rgba(8,10,12,.5) 32%,rgba(8,10,12,.04) 64%,transparent 100%)}
  .lk-card.no-photo .lk-card-grad{background:linear-gradient(to top,rgba(8,10,12,.92),rgba(8,10,12,.25) 55%,rgba(8,10,12,.08))}
  .lk-card-accent{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--bc,#c9742e);z-index:3}
  .lk-card-body{position:absolute;left:0;right:0;bottom:0;padding:9px 11px 10px;z-index:2}
  .lk-card-name{font-family:var(--disp);font-weight:800;font-size:15px;color:#fff;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 4px rgba(0,0,0,.65)}
  .lk-card-sub{font-family:var(--mono);font-size:10px;color:rgba(255,255,255,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;text-shadow:0 1px 3px rgba(0,0,0,.7)}
  .lk-card-badge{position:absolute;top:7px;right:7px;z-index:3;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.3px;padding:3px 7px;border-radius:999px;background:rgba(201,162,39,.94);color:#191204;display:inline-flex;align-items:center;gap:3px;box-shadow:0 1px 4px rgba(0,0,0,.3)}
  .lk-badge{align-self:flex-start;font-family:var(--mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.6px;padding:2px 6px;border-radius:5px;font-weight:700}
  .lk-meta{font-family:var(--mono);font-size:10px;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tr-photo-menu{position:absolute;top:38px;right:6px;z-index:6;background:var(--panel-2);border:1px solid var(--line-2);border-radius:9px;overflow:hidden;min-width:134px;box-shadow:0 10px 26px rgba(0,0,0,.45)}
  .tr-photo-menu button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--ink);font-size:12.5px;padding:10px 13px;cursor:pointer;font-family:var(--disp)}
  .tr-photo-menu button:hover{background:var(--panel)}
  .tr-photo-menu button.rm{color:#e0463c;border-top:1px solid var(--line)}
  .lk-photo{width:100%;height:200px;object-fit:cover;border-radius:13px;display:block;margin:6px 0 7px;background:var(--panel);cursor:zoom-in}
  .lk-photo-add{width:100%;height:118px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:8px;border:1.5px dashed var(--line-2);border-radius:13px;background:var(--panel);color:var(--ink-dim);font-family:var(--disp);font-weight:600;font-size:13px;cursor:pointer;margin:6px 0 7px}
  .lk-photo-add:hover{border-color:var(--accent);color:var(--ink)}
  .lk-photo-tools{display:flex;gap:16px;margin:-2px 0 9px;padding:0 2px}
  .lk-ph-link{background:none;border:none;padding:0;font-family:var(--mono);font-size:11px;letter-spacing:.3px;color:var(--ink-dim);cursor:pointer}
  .lk-ph-link:hover{color:var(--accent)}
  #photoLightbox{align-items:center;padding:14px;cursor:zoom-out}
  #photoLightbox img{max-width:100%;max-height:92vh;object-fit:contain;border-radius:10px}
  #photoLightbox .photo-lb-x{position:absolute;top:14px;right:18px;color:#fff;font-size:30px;line-height:1;background:none;border:none;cursor:pointer;opacity:.85;z-index:1}
  .tr-head{display:flex;gap:11px;align-items:flex-start;margin:2px 0 6px}
  .tr-head-main{flex:1;min-width:0}
  .tr-name{font-family:var(--disp);font-weight:800;font-size:21px;color:var(--ink);letter-spacing:-.4px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;line-height:1.15}
  .tr-name .lk-edit{flex:none}
  .tr-sub{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
  .tr-chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;letter-spacing:.3px;padding:4px 9px;border-radius:999px;background:var(--panel);border:1px solid var(--line);color:var(--ink-dim);white-space:nowrap}
  .tr-chip.is-score{background:#c9a22718;border-color:#c9a22755;color:#c9a227;font-weight:700}
  .tr-photo-wrap{position:relative;width:40%;max-width:158px;flex:none}
  .tr-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:11px;display:block;background:var(--panel);cursor:zoom-in}
  .tr-photo-edit{position:absolute;top:6px;right:6px;width:27px;height:27px;border-radius:8px;background:rgba(10,12,14,.62);border:1px solid rgba(255,255,255,.28);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
  .tr-photo-edit:active{transform:scale(.93)}
  .tr-photo-add{width:100%;aspect-ratio:4/3;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1.5px dashed var(--line-2);border-radius:11px;background:var(--panel);color:var(--ink-dim);font-family:var(--disp);font-weight:600;font-size:11px;line-height:1.2;text-align:center;cursor:pointer}
  .tr-photo-add:hover{border-color:var(--accent);color:var(--ink)}
  .tr-specs{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:10px 0 2px}
  .tr-spec{min-width:0}
  .tr-spec.full{grid-column:1/-1}
  .tr-spec .k{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-dim2);margin-bottom:2px}
  .tr-spec .v{font-size:13px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tr-specs-empty{font-size:12px;color:var(--ink-dim);line-height:1.5;padding:9px 11px;border:1px dashed var(--line);border-radius:10px;margin:8px 0 2px}
  .tr-editbtn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;box-sizing:border-box;margin:11px 0 2px;padding:9px;border:1px solid var(--line-2);border-radius:10px;background:var(--panel);color:var(--ink-dim);font-family:var(--mono);font-size:11px;letter-spacing:.4px;text-transform:uppercase;cursor:pointer}
  .tr-editbtn:hover{border-color:var(--accent);color:var(--ink)}
  .tr-editbtn.open{border-color:var(--accent);color:var(--accent)}
  .tr-edit{margin-top:4px}
  .bb-card{display:flex;gap:13px;align-items:flex-start;margin:4px 0 11px}
  .bb-main{flex:1;min-width:0}
  .bb-name{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--ink);letter-spacing:-.3px;display:flex;align-items:center;gap:7px;margin-bottom:11px;line-height:1.1}
  .bb-stats{display:flex;flex-direction:column;gap:0}
  .bb-stat{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
  .bb-stat:last-child{border-bottom:none}
  .bb-stat .k{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-dim2);flex:none}
  .bb-stat .v{font-family:var(--disp);font-weight:700;font-size:13.5px;color:var(--ink);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bb-photo{width:40%;max-width:150px;flex:none;aspect-ratio:4/5;border-radius:12px;background:var(--panel);position:relative}
  .bb-photo img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in;border-radius:12px}
  .bb-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--panel-2);cursor:pointer;border:none;border-radius:12px;padding:0}
  .bb-ph svg{color:var(--bc,#c9742e);opacity:.42}
  .bb-ph-add{font-family:var(--mono);font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-dim)}
  .ed-top{display:flex;gap:13px;align-items:flex-start;margin:2px 0 6px}
  .ed-fields{flex:1;min-width:0}
  .ed-fields .hp-field:first-child{margin-top:0}
  .ed-danger{display:flex;flex-direction:column;gap:9px;margin-top:18px;padding-top:13px;border-top:1px solid var(--line)}
  .bb-desc{font-size:13px;color:var(--ink-dim);line-height:1.5;margin:0 2px 12px;font-style:italic;white-space:pre-wrap}
  .bb-name-tx{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .bb-name-edit{flex:none;background:none;border:none;padding:2px;margin-left:-1px;color:var(--ink-dim);cursor:pointer;display:inline-flex;align-items:center}
  .bb-name-edit:hover{color:var(--blaze)}
  .scout-sum{margin:8px 0 4px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
  .scout-sum-h{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--blaze);font-weight:700;margin-bottom:8px}
  .scout-sum-h svg{flex:none;color:var(--blaze)}
  .scout-sum-ask{margin-left:auto;background:rgba(255,122,26,.12);border:1px solid rgba(255,122,26,.35);color:var(--blaze);font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;line-height:1;cursor:pointer;padding:5px 8px;border-radius:7px}
  .scout-sum-ask:active{background:rgba(255,122,26,.22)}
  .scout-sum-text{font-size:13.5px;line-height:1.55;color:var(--ink);white-space:pre-wrap}
  .scout-sum-load{font-size:12.5px;color:var(--ink-dim);line-height:1.5}
  .scout-sum-err{font-size:12.5px;color:var(--busted,#e0584b);line-height:1.5}
  .scout-retry{background:none;border:none;color:var(--blaze);font:inherit;font-size:12.5px;text-decoration:underline;cursor:pointer;padding:0}
  .scout-lock{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
  .scout-lock-ic{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:rgba(255,122,26,.13);color:var(--blaze)}
  .scout-lock-ic svg{width:15px;height:15px}
  .scout-lock-tx{font-size:12.5px;line-height:1.5;color:var(--ink-dim)}
  .scout-lock-tx b{color:var(--ink)}
  .scout-lock-btn{align-self:stretch;margin-top:1px;padding:10px 12px;border-radius:10px;border:none;background:var(--blaze);color:#1b1206;font-weight:800;font-size:13px;letter-spacing:.2px;cursor:pointer}
  .scout-lock-btn:active{opacity:.85}
  .ed-title{font-family:var(--disp);font-weight:800;font-size:18px;color:var(--ink);letter-spacing:-.3px;margin:2px 0 12px}
  .ed-photo{display:flex;align-items:center;gap:13px;margin:2px 0 15px}
  .ed-photo-img{width:84px;height:104px;object-fit:cover;border-radius:10px;background:var(--panel);flex:none;cursor:zoom-in}
  .ed-photo-ph{width:84px;height:104px;border-radius:10px;background:var(--panel-2);display:flex;align-items:center;justify-content:center;flex:none}
  .ed-photo-ph svg{color:var(--bc,#c9742e);opacity:.5}
  .ed-photo-btns{display:flex;flex-direction:column;gap:10px}
  .lk-empty{grid-column:1/-1;text-align:center;color:var(--ink-dim);font-size:12.5px;line-height:1.6;padding:18px 12px;border:1px dashed var(--line);border-radius:11px}
  .lk-profile{margin-top:4px}
  .lk-pf-back{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--accent);background:none;border:none;cursor:pointer;padding:4px 0;margin-bottom:6px}
  .lk-pf-name{font-family:var(--disp);font-weight:800;font-size:21px;color:var(--ink);letter-spacing:-.4px;display:flex;align-items:center;gap:8px}
  .lk-pf-name .ed{font-family:var(--mono);font-size:10px;color:var(--ink-dim);cursor:pointer}
  .lk-statusrow{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 4px}
  .lk-statbtn{font-family:var(--mono);font-size:10px;padding:5px 9px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink-dim);cursor:pointer;transition:.12s}
  .lk-statbtn.on{color:#0c0f0a;font-weight:700;border-color:transparent}
  .lk-stat{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-dim);padding:7px 0;border-bottom:1px solid var(--line)}
  .lk-stat b{color:var(--ink);font-weight:600}
  .lk-traits{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
  .lk-trait{font-size:11px;padding:3px 9px;border-radius:20px;background:var(--panel);border:1px solid var(--line-2);color:var(--ink);display:inline-flex;align-items:center;gap:5px}
  .lk-trait b{cursor:pointer;color:var(--ink-dim);font-weight:400}
  .lk-pf-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
  .lk-meter{height:8px;border-radius:5px;background:var(--line);overflow:hidden;margin-top:5px}
  .lk-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#ffd08a)}
  /* Buck Maps rows (Layers panel) */
  .bm-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--line)}
  .bm-row:last-child{border-bottom:none}
  .bm-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto;border:1.5px solid rgba(255,255,255,.25)}
  .bm-nm{flex:1;min-width:0}
  .bm-nm .t{font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bm-nm .s{font-family:var(--mono);font-size:9px;color:var(--ink-dim)}
  .bm-empty{font-family:var(--mono);font-size:10px;color:var(--ink-dim);padding:8px 0 2px;line-height:1.5}
  /* ── Buck Locker v2: tabs + location read ── */
  .bk-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .bk-tab{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);color:var(--ink);cursor:pointer;transition:.13s}
  .bk-tab:hover{border-color:var(--blaze);transform:translateY(-1px)}
  .bk-tab-ico{width:34px;height:34px;color:var(--accent)}
  .bk-tab-ico svg{width:100%;height:100%}
  /* landing tile becomes a full photo-cover card (like the in-app buck cards) when its group's most-recent buck has a photo */
  .bk-tab.has-cover{padding:0;gap:0;overflow:visible;aspect-ratio:4/5;background:transparent;border-color:transparent}
  /* fanned photo tiles behind the cover → looks like a stack of photos */
  .bk-stack{position:absolute;inset:0;z-index:0}
  .bk-stack::before,.bk-stack::after{content:"";position:absolute;inset:0;border-radius:14px;background:var(--panel-2);border:1px solid var(--line)}
  .bk-stack::before{transform:rotate(3deg) translate(2px,2px)}
  .bk-stack::after{transform:rotate(-2.6deg) translate(-2px,2px);background:var(--panel)}
  .bk-cover{position:absolute;inset:0;z-index:1;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 4px 14px rgba(0,0,0,.5)}
  .bk-tab.has-cover:hover .bk-cover{border-color:var(--blaze)}
  .bk-tab-cimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:0;background:var(--panel)}
  .bk-tab-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,12,.94) 6%,rgba(8,10,12,.5) 32%,rgba(8,10,12,.06) 64%,transparent 100%);z-index:1}
  .bk-tab.has-cover .bk-tab-n{z-index:3}
  .bk-tab-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;gap:7px;width:100%;padding:0 11px 11px;box-sizing:border-box}
  .bk-tab.has-cover .bk-tab-ico{width:21px;height:21px;color:#fff;flex:0 0 auto;filter:drop-shadow(0 1px 3px rgba(0,0,0,.7))}
  .bk-tab.has-cover .bk-tab-t{font-family:var(--disp);font-weight:800;font-size:15px;color:#fff;letter-spacing:-.2px;text-shadow:0 1px 4px rgba(0,0,0,.7)}
  .bk-tab-t{font-family:var(--disp);font-weight:700;font-size:14.5px;letter-spacing:-.2px}
  .bk-tab-n{position:absolute;top:9px;right:11px;min-width:20px;height:20px;padding:0 5px;border-radius:11px;background:var(--accent);color:#0c0f0a;font-family:var(--mono);font-size:11px;font-weight:700;display:grid;place-items:center}
  .bk-rut{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
  .lk-where{margin:12px 0 6px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}
  .lk-where-h{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--accent);margin-bottom:8px}
  .hp-field{margin-top:11px}
  .hp-field:first-of-type{margin-top:2px}
  .hp-lbl{display:block;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-dim2);margin-bottom:5px}
  .hp-combo{position:relative}
  .hp-input{width:100%;box-sizing:border-box;background:var(--panel);border:1px solid var(--line-2);border-radius:9px;color:var(--ink);font-size:13px;padding:9px 11px;font-family:var(--disp)}
  .hp-input:focus{outline:none;border-color:var(--accent)}
  .hp-menu{margin-top:5px;background:var(--panel);border:1px solid var(--line-2);border-radius:9px;overflow:hidden}
  .hp-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .lk-edit{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ink-dim2);cursor:pointer;padding:3px;line-height:0;vertical-align:middle;border-radius:6px}
  .lk-edit:hover{color:var(--blaze-2);background:rgba(255,255,255,.05)}
  .bc-toggle{display:inline-flex;align-items:center;gap:7px;margin-top:13px;background:none;border:none;color:var(--blaze-2);font-family:var(--disp);font-weight:700;font-size:13px;cursor:pointer;padding:0}
  .bc-toggle #bcChev{font-size:15px;line-height:1}
  .bc-wrap{margin-top:11px;border-top:1px solid var(--line);padding-top:12px;display:none}
  .bc-wrap.open{display:block}
  .bc-csub{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-dim2);margin:0 0 9px}
  .bc-grid{display:flex;flex-direction:column;gap:5px}
  .bc-hd{display:grid;grid-template-columns:1fr 58px 58px;gap:7px;font-family:var(--mono);font-size:9px;color:var(--ink-dim2);text-transform:uppercase;letter-spacing:.4px;padding:0 2px 1px;text-align:center}
  .bc-hd span:first-child{text-align:left}
  .bc-row{display:grid;grid-template-columns:1fr 58px 58px;gap:7px;align-items:center}
  .bc-row>span{font-size:11.5px;color:var(--ink-dim)}
  .bc-single{display:grid;grid-template-columns:1fr 58px;gap:7px;align-items:center;margin-bottom:7px}
  .bc-single>span{font-size:11.5px;color:var(--ink-dim)}
  .bc-in{width:100%;box-sizing:border-box;background:var(--panel);border:1px solid var(--line-2);border-radius:7px;color:var(--ink);font-size:12.5px;padding:7px 6px;text-align:center;font-family:var(--mono)}
  .bc-in:focus{outline:none;border-color:var(--accent)}
  .bc-tot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}
  .bc-tot .k{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-dim2);margin-bottom:2px}
  .bc-net{font-family:var(--disp);font-weight:800;font-size:26px;color:var(--blaze-2);line-height:1}
  .bc-gd{font-family:var(--mono);font-size:10px;color:var(--ink-dim);text-align:right;line-height:1.5}
  .lk-where-empty{font-size:12px;color:var(--ink-dim);line-height:1.6}
  .lk-appears{display:flex;align-items:center;gap:9px;padding:6px 0;font-size:13px;color:var(--ink);cursor:pointer}
  .lk-appears input{width:16px;height:16px;accent-color:var(--accent);flex:none}
  .lk-spot{padding:7px 0;border-bottom:1px solid var(--line)}
  .lk-spot:last-of-type{border-bottom:none}
  .lk-spot-top{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--ink)}
  .lk-spot-top b{font-weight:600}
  .lk-spot-top span{font-family:var(--mono);font-size:10.5px;color:var(--ink-dim)}
  .lk-spot-sub{font-family:var(--mono);font-size:10px;color:var(--ink-dim);margin-top:2px}
  .lk-read{font-size:12px;color:var(--ink-dim);line-height:1.6;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}
  /* ── Buck Locker v3: description, log menu, conditions ── */
  .lk-desc{width:100%;box-sizing:border-box;margin:7px 0 4px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font-family:inherit;font-size:13px;line-height:1.45;resize:vertical;min-height:42px}
  .lk-desc:focus{outline:none;border-color:var(--accent)}
  .lk-desc::placeholder{color:var(--ink-dim2)}
  .lk-cond{font-size:12.5px;color:var(--ink-dim);line-height:1.55;margin:9px 0;padding:9px 11px;border-radius:9px;background:var(--panel-2);border:1px solid var(--line)}
  .lk-cond b{color:var(--ink);font-weight:600}
  .lk-logmenu{display:flex;flex-direction:column;gap:7px;margin-top:11px;padding:12px;border:1px dashed var(--line);border-radius:11px;background:var(--panel-2)}
  .lk-logttl{font-family:var(--mono);font-size:10.5px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.6px;margin-bottom:3px}
  .lk-logmenu .btn.tiny{justify-content:flex-start;text-align:left}
  

/* ---- style block 2 of 6 ---- */
  /* Brand kit typography — Sora for all display/headline contexts */
  .lp-sech2,.lp-heroh1,.phead,.authbrand,.brand,.cw,.lp-navbrand,.lp-footerbrand,.lp-seclabel,h1,h2,h3{font-family:'Sora',system-ui,sans-serif!important}
  /* WORDMARK: light weight + wide tracking to match the primary logo */
  /* Lockup logos — light weight, wide even tracking */
  .brand,.lp-navbrand,.authbrand,.lp-footerbrand{font-weight:300!important;letter-spacing:.16em!important}
  .brand>span:first-child,.lp-navbrand>span:first-child{font-weight:300!important;letter-spacing:.16em!important}
  .brand>span:last-child,.lp-navbrand>span:last-child{font-weight:400!important;letter-spacing:.32em!important}
  /* Inline brand inside body copy — reads as a word, not a spread lockup */
  .cw{font-weight:400!important;letter-spacing:.04em!important}
  /* The ring+spark mark nests as the O (matched to cap height, tucked in) */
  .brand svg,.lp-navbrand svg,.authbrand svg,.lp-footerbrand svg,.cw svg{height:.84em!important;width:.84em!important;vertical-align:-.06em!important;margin:0!important;transform:translateY(-7%);align-self:center!important;flex-shrink:0}
  .brand svg,.lp-navbrand svg,.authbrand svg,.lp-footerbrand svg{margin-right:.16em!important}
  .cw svg{margin-right:.04em!important}
  .lp-cta-pri,.lp-cta-sec{font-family:'Sora',var(--mono)!important;letter-spacing:.6px!important;border-radius:7px!important}
  .lp-cta-pri{background:var(--accent)!important;box-shadow:0 2px 10px rgba(255,138,0,.18)!important}
  .lp-featcard-accent{background:rgba(255,138,0,.07)!important;border-color:rgba(255,138,0,.35)!important}
  /* Topo pattern on landing hero bg */
  .lp-hero::before{content:'';position:absolute;inset:0;opacity:.12;pointer-events:none;z-index:0;
    background-image:url(assets/topo.webp);background-size:cover;background-repeat:no-repeat}
  .lp-hero>*{position:relative;z-index:1}
  /* Blog section H2 */
  #lp-blog .lp-sech2::after{content:'Field Guide';display:none}
  /* Footer tagline */
  .lp-footertag{letter-spacing:2px}

  /* P10 featured top recommendation (Netflix-style hero) */
  .stand-featured{background:linear-gradient(160deg,rgba(255,138,0,.10),rgba(255,138,0,.02));border:1px solid rgba(255,138,0,.4);border-radius:14px;padding:15px;margin-bottom:11px}
  .sf-label{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:9px}
  .sf-head{display:flex;align-items:center;gap:10px;margin-bottom:11px}
  .sf-ico{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.06);flex:0 0 auto;color:var(--accent)}
  .sf-name{flex:1;font-family:'Sora',var(--disp);font-size:19px;font-weight:700;color:var(--ink);letter-spacing:-.2px;line-height:1.1}
  .sf-score{font-family:'Sora',var(--disp);font-size:30px;font-weight:800;color:var(--accent);line-height:1;flex:0 0 auto}
  .sf-score small{font-size:13px;color:var(--ink-dim2);font-weight:500}
  .sf-stats{display:flex;flex-direction:column;gap:6px;margin-bottom:13px}
  .sf-stat{font-size:13.5px;color:var(--ink-dim);line-height:1.35}
  .sf-stat.good{color:#9ad6a0} .sf-stat.ok{color:#e8c66a} .sf-stat.bad{color:#ff9a85} .sf-stat.info{color:var(--ink-dim)}
  .sf-hunt{width:100%;background:var(--accent);color:#0f0f10;border:none;border-radius:11px;padding:13px;font-family:'Sora',var(--disp);font-weight:700;font-size:13px;letter-spacing:.8px;text-transform:uppercase;cursor:pointer;transition:.12s}
  .sf-hunt:active{transform:scale(.99)}
  /* P2: hide "OUTDOOR INTELLIGENCE" in the in-app topbar (visual noise on map) */
  .brand>span:last-child{display:none!important}
  /* P1: flatter sub-cards M-bM-^@M-^T softer borders on stacked rows */
  .stand.compact{background:var(--panel-2);border:none;border-left:3px solid var(--line-2);border-radius:10px}
  .wxcell,.fch,.lrow,.ovl,.base-opt{border-color:var(--line)}

  /* P5 Field Kit accordion cards */
  .pscroll>.card{flex:0 0 auto}
  .card.fk{padding:0;overflow:hidden}
  .fk-head{display:flex;align-items:center;gap:11px;padding:14px 15px;cursor:pointer;user-select:none}
  .fk-ico{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.05);color:var(--accent);flex:0 0 auto}
  .fk-ico svg{width:17px;height:17px}
  .fk-title{font-family:'Sora',var(--disp);font-size:15px;font-weight:600;color:var(--ink);letter-spacing:.1px;flex:0 0 auto}
  .fk-val{flex:1;text-align:right;font-size:12px;color:var(--accent);font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.2px}
  .fk-caret{flex:0 0 auto;color:var(--ink-dim2);transition:transform .2s;display:grid;place-items:center}
  .card.fk.open .fk-caret{transform:rotate(90deg);color:var(--accent)}
  .fk-body{padding:2px 15px 15px;display:none}
  .fk-preview{padding:0 15px 13px;display:flex;flex-direction:column;gap:6px}
  .fk-preview:empty{display:none;padding:0}
  .card.fk.open .fk-preview{display:none}
  .fkp-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .fkp-row .k{color:var(--ink-dim2);font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}
  .fkp-row .v{color:var(--ink);font-weight:600;font-size:12.5px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .card.fk.open .fk-body{display:block}
  .card.fk.open .fk-head{border-bottom:1px solid var(--line)}
  .card.fk .fk-body .lbl,.card.fk .fk-body .ml-head{display:none}
  .card.fk .fk-body .fk-sub{display:block;font-family:var(--disp);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--ink-dim);margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--line)}
  .card.fk .fk-body .fk-sub:first-child{margin-top:2px;padding-top:0;border-top:none}

  /* P7 search: category tiles */
  .mso-tilegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px}
  .mso-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 8px;background:var(--panel);border:1px solid var(--line-2);border-radius:13px;color:var(--ink);cursor:pointer;transition:.12s}
  .mso-tile:active{background:var(--panel-2);border-color:var(--accent)}
  .mso-tileico{color:var(--accent);display:grid;place-items:center}
  .mso-tilelbl{font-size:11.5px;color:var(--ink-dim);text-align:center;line-height:1.2}
  .mso-tilecount{position:absolute;top:8px;right:10px;font-family:var(--mono);font-size:11px;color:var(--ink-dim2);font-weight:600}
  .mso-catbar{display:flex;align-items:center;gap:14px;padding:13px 20px;border-bottom:1px solid var(--line)}
  .mso-back2{background:none;border:none;color:var(--accent);font-size:15px;cursor:pointer;font-family:var(--body);padding:4px 0}
  .mso-catttl{font-family:'Sora',var(--disp);font-size:15px;font-weight:600;color:var(--ink)}

  /* popup status quick-toggle + copy coords */
  .pf-status{display:flex;gap:6px;margin-top:8px}
  .pf-status button{flex:1;background:var(--panel-2);border:1px solid var(--line);color:var(--ink-dim);border-radius:8px;padding:7px 4px;font-size:11px;font-family:var(--mono);cursor:pointer;letter-spacing:.2px}
  .pf-status button.on{background:rgba(255,138,0,.14);border-color:var(--accent);color:var(--accent)}
  .pf-copy{width:100%;margin-top:7px;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim);border-radius:10px;padding:10px;font-family:'Sora',var(--disp);font-size:12.5px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
  .pf-copy:active{background:var(--line)}
  .why-vs{font-size:10.5px;color:var(--ink-dim2);margin-top:3px;font-family:var(--mono)}

  #emptyHint{display:none!important;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:9000;max-width:min(560px,92vw);background:rgba(20,24,28,.96);border:1px solid var(--accent);border-radius:13px;padding:12px 14px;color:var(--ink);font-size:13px;line-height:1.45;display:flex;gap:10px;align-items:center;box-shadow:0 6px 20px rgba(0,0,0,.5);backdrop-filter:blur(4px)}
  #emptyHint b{color:var(--accent)}
  #emptyHintX{flex:0 0 auto;background:none;border:none;color:var(--ink-dim);font-size:16px;cursor:pointer;padding:2px 4px;min-width:30px}
  @media(min-width:861px){ #emptyHint{bottom:24px} }
  .legend-grid{display:grid;grid-template-columns:1fr;gap:6px;font-size:11.5px;color:var(--ink-dim);line-height:1.4}
  .legend-grid>div{display:flex;align-items:center;gap:8px}
  .lg-sw{display:inline-block;width:16px;height:11px;border-radius:3px;flex:0 0 auto}
  .pf-cbtn{min-width:34px;min-height:34px}

  .legal-body{font-size:12.5px;color:var(--ink-dim);line-height:1.65;text-align:left}
  .legal-body h4{color:var(--ink);font-size:13.5px;margin:17px 0 5px;font-family:'Sora',var(--disp);font-weight:600}
  .legal-body p{margin:0 0 9px}
  .legal-body .legal-eff{font-family:var(--mono);font-size:11px;color:var(--ink-dim2);letter-spacing:.3px;margin-bottom:14px}

/* ---- style block 3 of 6 ---- */
.aigear{cursor:pointer;color:var(--ink-dim);padding:2px 4px;display:inline-flex;align-items:center}.aigear:hover{color:var(--accent)}#scoutCfg{position:fixed;inset:0;z-index:60000;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(8,9,10,.74)}#scoutCfg.show{display:flex}.sc-card{width:min(440px,100%);max-height:88vh;overflow:auto;background:var(--panel,#141619);border:1px solid var(--line-2,#2a2f36);border-radius:16px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.5)}.sc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sc-head b{font-family:var(--disp);text-transform:uppercase;letter-spacing:1.2px;font-size:15px;color:var(--ink)}.sc-head .x{cursor:pointer;color:var(--ink-dim);font-size:20px;padding:2px 6px}.sc-head .x:hover{color:var(--accent)}.sc-sec{margin:0 0 16px}.sc-lbl{font-size:11px;font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim);margin:0 0 8px}.sc-row{display:flex;gap:10px}.sc-row>div{flex:1;min-width:0}.sc-sel{width:100%;box-sizing:border-box;background:var(--panel-2,#15171a);border:1px solid var(--line-2,#2a2f36);border-radius:9px;padding:10px;color:var(--ink);font-size:14px}.sc-sel:focus{outline:none;border-color:var(--accent)}.sc-clear{width:100%;background:transparent;border:1px solid var(--line-2,#2a2f36);color:var(--ink-dim);border-radius:9px;padding:11px;font-size:13px;font-weight:600;cursor:pointer}.sc-clear:hover{border-color:#b4441f;color:#e08a6a}.sc-done{width:100%;background:var(--accent);border:none;color:#1a0f06;border-radius:9px;padding:12px;font-weight:800;font-size:14px;letter-spacing:.4px;cursor:pointer}.sc-hint{font-size:11px;color:var(--ink-dim2,#7c848c);margin:7px 0 0;line-height:1.45}.sc-more-btn{width:100%;background:transparent;border:1px dashed var(--line-2,#2a2f36);color:var(--ink-dim);border-radius:9px;padding:10px;font-size:13px;font-weight:600;cursor:pointer;margin:0 0 16px;display:flex;align-items:center;justify-content:center;gap:6px}.sc-more-btn:hover{border-color:var(--ink-dim);color:var(--ink)}.sc-more-ar{transition:transform .15s;font-size:11px}.sc-more-btn.open .sc-more-ar{transform:rotate(180deg)}.sc-more[hidden]{display:none}.scchips{display:flex;flex-wrap:wrap;gap:7px}.scchip{background:var(--panel-2,#15171a);border:1px solid var(--line-2,#2a2f36);color:var(--ink-dim);border-radius:999px;padding:7px 13px;font-size:13px;cursor:pointer;transition:.12s}.scchip:hover{border-color:var(--ink-dim)}.scchip.on{background:var(--accent);border-color:var(--accent);color:#1a0f06;font-weight:700}.scws{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:12.5px;color:var(--ink-dim);flex-wrap:wrap}.scws b{color:var(--ink);min-width:92px;font-weight:600}.scws select{background:var(--panel-2,#15171a);border:1px solid var(--line-2,#2a2f36);border-radius:8px;padding:6px 8px;color:var(--ink);font-size:13px}

/* ---- style block 4 of 6 ---- */
/* ===== v385 mobile map UI ===== */
#mBaseChip{display:none;position:fixed;left:var(--chipl);bottom:var(--chipb);z-index:781;width:var(--chipw);height:var(--chipw);border-radius:15px;overflow:hidden;border:2px solid rgba(255,255,255,.92);box-shadow:0 6px 18px rgba(0,0,0,.6),0 0 0 1px rgba(0,0,0,.4);background:#222;cursor:pointer;transition:transform .12s}
#mBaseChip:active{transform:scale(.94)}
#mBaseChip .mbc-img{position:absolute;inset:0;background-size:cover;background-position:center;background-color:#2a2d25}
#mBaseChip .mbc-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.66),rgba(0,0,0,0) 55%)}
#mBaseChip .mbc-label{position:absolute;left:0;right:0;bottom:4px;text-align:center;font-family:var(--body);font-weight:600;font-size:9px;letter-spacing:.2px;text-transform:uppercase;color:#fff;text-shadow:0 1px 3px #000}
#mBaseChip .mbc-badge{position:absolute;top:4px;right:4px;width:17px;height:17px;border-radius:6px;background:rgba(10,11,13,.8);display:grid;place-items:center}
#mBaseChip .mbc-badge svg{width:11px;height:11px}
#mBaseScrim{display:none;position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.2s}
#mBaseScrim.open{opacity:1;pointer-events:auto}
#mBaseSheet{display:none;position:fixed;left:10px;width:228px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:10000;background:var(--panel);border:1px solid var(--line-2);border-radius:20px;padding:15px 15px 16px;opacity:0;pointer-events:none;transform-origin:bottom left;transform:translate(24px,36px) scale(.06);transition:transform .28s cubic-bezier(.3,.8,.3,1),opacity .22s ease;box-shadow:0 -10px 40px rgba(0,0,0,.6)}
#mBaseSheet.open{transform:none;opacity:1;pointer-events:auto}
#mBaseSheet h4{margin:0 0 12px;font-family:var(--mono);font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-dim)}
#mBaseSheet h4 b{color:var(--accent);font-weight:600}
.bp-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
/* The basemap you're ON gets a full-width hero above the alternatives: five square
   tiles in two columns always leaves an orphan on the last row, and this uses that
   space to answer "which am I looking at?" at a glance instead of padding the list
   with a layer nobody needs. 16:9 rather than square so the row stays shallow. */
.bp-grid .bp-tile.hero{grid-column:1/-1;aspect-ratio:16/9}
.bp-grid .bp-tile.hero .bp-nm{font-size:14px;bottom:9px;left:11px}
.bp-tile{position:relative;border-radius:13px;overflow:hidden;aspect-ratio:1/1;border:2px solid transparent;cursor:pointer;transition:.12s}
.bp-tile .bp-img{position:absolute;inset:0;background-size:cover;background-position:center;background-color:#2a2d25}
.bp-tile .bp-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.74),rgba(0,0,0,0) 56%)}
.bp-tile .bp-nm{position:absolute;left:8px;right:8px;bottom:7px;font-family:var(--disp);font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 4px #000}
.bp-tile.sel{border-color:var(--accent)}
.bp-tile .bp-ck{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:var(--accent);display:grid;place-items:center}
.bp-tile .bp-ck svg{width:12px;height:12px;stroke:#1a0f06;stroke-width:3}
.bp-tile .bp-lock{position:absolute;top:6px;right:6px;width:19px;height:19px;border-radius:6px;background:rgba(0,0,0,.62);display:grid;place-items:center}
.bp-tile .bp-lock svg{width:11px;height:11px}
.bp-div{height:1px;background:var(--line);margin:14px 0 2px}
.bp-tog{display:flex;align-items:center;gap:12px;padding:10px 2px}
.bp-op{display:none;align-items:center;gap:9px;padding:0 2px 9px 38px;margin-top:-6px}
.bp-op-sl{flex:1 1 auto;accent-color:var(--accent);height:3px;cursor:pointer;min-width:60px}
.bp-op-v{flex:0 0 34px;text-align:right;font-family:var(--mono);font-size:10px;color:var(--ink-dim);font-variant-numeric:tabular-nums}
.bp-tog.off{opacity:.42}
.bp-ti{width:33px;height:33px;border-radius:9px;background:var(--panel-2);display:grid;place-items:center;flex:0 0 auto}
.bp-ti svg{width:18px;height:18px;stroke:var(--blaze-2,#ff933f)}
.bp-tt{flex:1;min-width:0}
.bp-tn{font-size:13.5px;font-weight:600;color:var(--ink)}
.bp-td{font-size:11px;color:var(--ink-dim2);margin-top:1px}
.bp-sw{width:46px;height:27px;border-radius:999px;background:#3a3d44;position:relative;flex:0 0 auto;transition:.16s;cursor:pointer}
.bp-sw:after{content:'';position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:.16s}
.bp-sw.on{background:var(--accent)}
.bp-sw.on:after{left:22px}
.bp-sw.dis{background:#2c2e33;cursor:not-allowed}
.bp-sw.dis:after{background:#6b6e74}


#wxStation .wxs-body{display:none;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;height:100%}
#wxStation .wxs-body .wxs-t{font-family:var(--disp);font-weight:700;font-size:15px;line-height:1;color:var(--ink)}
#wxStation .wxs-body .wxs-w{font-family:var(--mono);font-size:8.5px;letter-spacing:.3px;color:var(--blaze-2,#ff933f);line-height:1;margin-top:1px}
@media(max-width:860px){
  #mBaseChip{display:block}
  #mBaseScrim{display:block}
  #mBaseSheet{display:block}
  #wxStation{left:auto!important;right:12px;border-radius:12px;width:42px;height:42px;z-index:1160}
  #wxStation .wxs-dial{display:none}
  #wxStation .wxs-body{display:flex}
  #fbBtn{display:none}
}
.imgtopo-boost{filter:contrast(1.25) saturate(1.3) brightness(0.94)}
/* ===== Desktop advanced tools (hidden below 861px) ===== */
.deskonly{display:none}
.jadv{display:none;gap:8px;margin:0 0 10px}
.jadv button{display:flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--line-2);color:var(--ink-dim);border-radius:9px;padding:7px 11px;font-size:12px;cursor:pointer}
.jadv button:hover{border-color:var(--accent);color:var(--ink)}
.advtbl{width:100%;border-collapse:collapse;font-size:12.5px}
.advtbl th{text-align:left;padding:7px 8px;color:var(--ink-dim);font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;cursor:pointer;user-select:none;white-space:nowrap;border-bottom:1px solid var(--line-2)}
.advtbl th.on{color:var(--blaze-2)}
.advtbl td{border-top:1px solid var(--line);padding:6px 8px;color:var(--ink);vertical-align:top}
.advtbl td.dim{color:var(--ink-dim)}
.advwrap{max-height:56vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.advbar{display:flex;gap:8px;align-items:center;margin:12px 0 0;flex-wrap:wrap}
.advbar .grow{flex:1}
#printSheet{display:none}
@media print{
  body *{visibility:hidden!important}
  #map,#map *{visibility:visible!important}
  #printSheet,#printSheet *,#printFoot,#printFoot *,#printScale,#printScale *{visibility:visible!important}
  /* Browsers strip background colors by default; the marker chips ARE background
     colors, which is why pins printed as empty white circles. */
  #map,#map *,#printSheet,#printSheet *,#printFoot,#printFoot *,#printScale,#printScale *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  #printSheet{display:block!important;position:fixed;top:0;left:0;right:0;background:#fff;color:#141312;padding:9mm 11mm 5mm;z-index:2147483000;font-family:Georgia,serif;border-bottom:2.5px solid #141312}
  #printFoot{display:block!important;position:fixed;bottom:0;left:0;right:0;background:#fff;color:#141312;padding:5mm 11mm 8mm;z-index:2147483000;font-family:Georgia,serif;border-top:1.5px solid #141312}
  .leaflet-control-container,#toast,#placeHint{display:none!important}
  @page{margin:0;size:letter landscape}
}
#printFoot{display:none}
#printScale{display:none}

@media(min-width:861px){
  #mBaseChip{display:block;border-radius:20px}
  :root{ --chipw:78px }
  #mBaseScrim{display:block}
  #mBaseSheet{display:block}
  #mPinBtn{display:none}
  #mDrawBtn{display:none}
  #wxStation{display:none!important}
  /* The feedback launcher keeps its icon only; the word was redundant next to it. */
  #fbBtn .fb-word{display:none}
  #mFeedbackBtn{display:none!important}   /* duplicate of the far-right feedback icon */
  /* desktop-only advanced tools become visible */
  .deskonly{display:flex!important}
  .jadv{display:flex!important}
  /* Habitat Hub is habitat, not a toolbox: the Draw/Measure tiles duplicated the
     dedicated desktop Pin/Draw stack buttons, so they don't belong in this panel. */
  #addPanel #tkDrawSec{display:none!important}
  /* Hub + Field Kit launchers: a single column of four reads better in the tall
     desktop panel than a 2x2 with dead space; each option becomes a full-width row. */
  .hub-icons{grid-template-columns:1fr;gap:9px}
  .hub-ic{flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 14px}
  .hub-ic .hi-l{font-size:13.5px;font-weight:600}
  .fk-grid{grid-template-columns:1fr}
  .fk-square{aspect-ratio:auto;flex-direction:row;align-items:center;gap:12px;padding:13px 15px}
  .fk-square .fk-sq-stats{margin-left:auto;text-align:right}
  /* Coordinates HUD: readable at arm's length on a desktop monitor. */
  .scalebadge{font-size:12px;padding:7px 15px;border-radius:9px;gap:3px;min-width:270px}
  /* Wind card: sun times get their own tidy row of four, so the dial centers
     against the wind reading instead of riding high beside a cramped column. */
  .windwrap{flex-wrap:wrap}
  .sunquick{flex-basis:100%;margin-left:0;grid-template-columns:repeat(4,auto);justify-content:space-between;margin-top:4px}
}

/* ---- style block 5 of 6 ---- */
        #buckTool .bt-intro{font-size:11.5px;color:var(--ink-dim);line-height:1.55;margin:0 0 14px}
        #buckTool .bt-thumbs{display:flex;gap:6px;justify-content:center;margin:8px 0 2px}
        #buckTool .bt-thumb{width:46px;height:46px;object-fit:cover;border-radius:8px;border:1px solid var(--line-2);opacity:.92}
        #buckTool .bt-drop{width:100%;padding:30px 14px;border:1.5px dashed var(--blaze);background:rgba(255,138,0,.06);color:var(--ink);border-radius:13px;font-size:13.5px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center}
        #buckTool .bt-drop:active{background:rgba(255,138,0,.13)}
        #buckTool .bt-drop svg{width:34px;height:34px;stroke:var(--blaze)}
        #buckTool .bt-drop small{font-weight:500;font-size:10.5px;color:var(--ink-dim2)}
        #buckTool .bt-prev{position:relative;border-radius:13px;overflow:hidden;border:1px solid var(--line);margin-bottom:12px;display:none}
        #buckTool .bt-prev img{display:block;width:100%;max-height:300px;object-fit:cover;background:var(--panel-2)}
        #buckTool .bt-prev .bt-x{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:none;background:rgba(0,0,0,.62);color:#fff;font-size:18px;cursor:pointer;line-height:1}
        #buckTool .bt-save-fab{position:absolute;top:8px;left:8px;display:none;width:36px;height:36px;border-radius:50%;border:none;background:var(--blaze);color:#1a1206;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 2px 9px rgba(0,0,0,.45);z-index:4;padding:0}
        #buckTool .bt-prev.scored .bt-save-fab{display:flex}
        #buckTool .bt-save-fab.saved{background:var(--good,#3fae66);color:#0c1a0f}
        #buckTool .bt-save-fab svg{width:19px;height:19px}
        #buckTool .bt-out{margin-top:2px;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);font-size:13px;line-height:1.6;color:var(--ink);display:none}
        #buckTool .bt-out b{color:var(--blaze-2)}
        #buckTool .bt-out.busy{color:var(--ink-dim);font-size:12.5px}
        #buckTool .bt-err{color:var(--busted)}
        #buckTool .bt-spin{display:inline-block;width:13px;height:13px;border:2px solid var(--line-2);border-top-color:var(--blaze);border-radius:50%;animation:btspin .7s linear infinite;vertical-align:-2px;margin-right:7px}
        @keyframes btspin{to{transform:rotate(360deg)}}
        #buckTool .bt-again{display:block;width:100%;margin-top:14px;padding:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink-dim);border-radius:9px;font-size:12px;cursor:pointer}
        #buckTool .bt-scan{position:absolute;inset:0;display:none;background:rgba(8,10,12,.42)}
        #buckTool .bt-prev.scanning .bt-scan{display:block}
        #buckTool .bt-scan-line{position:absolute;left:6%;right:6%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--blaze),transparent);box-shadow:0 0 16px 2px rgba(255,138,0,.55);animation:btScan 1.5s ease-in-out infinite}
        @keyframes btScan{0%{top:10%}50%{top:88%}100%{top:10%}}
        #buckTool .bt-scan-txt{position:absolute;left:0;right:0;bottom:14px;text-align:center;color:#fff;font-family:var(--mono);font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;text-shadow:0 1px 5px #000;opacity:.92}
        #buckTool .bt-lt{position:absolute;left:0;right:0;bottom:0;display:none;gap:20px;align-items:flex-end;padding:16px 15px 13px;background:linear-gradient(to top,rgba(0,0,0,.85),rgba(0,0,0,.4) 62%,transparent)}
        #buckTool .bt-prev.scored .bt-lt{display:flex;animation:btReveal .55s cubic-bezier(.2,.7,.2,1) both}
        #buckTool .bt-lt .k{font-family:var(--mono);font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:rgba(255,255,255,.72);margin-bottom:3px}
        #buckTool .bt-lt .v{font-family:var(--disp);font-weight:800;font-size:21px;line-height:1.05;color:#fff}
        #buckTool .bt-lt .cell.score .v{color:var(--blaze-2)}
        @keyframes btReveal{from{opacity:0;transform:translateY(16px);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}
        #buckTool .bt-train{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}
        #buckTool .bt-train-btn{width:100%;padding:11px;border:1px solid var(--blaze);background:rgba(255,138,0,.08);color:var(--blaze-2);border-radius:10px;font-family:var(--disp);font-weight:700;font-size:13px;cursor:pointer}
        #buckTool .bt-train-q{font-size:11.5px;color:var(--ink-dim);margin:0 0 11px;line-height:1.45}
        #buckTool .bt-train-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
        #buckTool .bt-train-row label{font-size:12.5px;color:var(--ink-dim)}
        #buckTool .bt-train-row input{width:120px;padding:9px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;font-size:14px;text-align:center;font-family:var(--mono)}
        #buckTool .bt-train-save{width:100%;margin-top:5px;padding:12px;border:none;border-radius:10px;background:var(--blaze);color:#1a1206;font-family:var(--disp);font-weight:800;font-size:13.5px;cursor:pointer}
        #buckTool .bt-train-save:disabled{opacity:.6}
        #buckTool .bt-train-done{font-size:12.5px;color:var(--good);text-align:center;padding:4px 0 2px}
        #buckTool .bt-acts{display:flex;gap:10px;margin-top:14px;border-top:1px solid var(--line);padding-top:13px}
        #buckTool .bt-act{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:11px 8px;border:1px solid var(--line);background:var(--panel);color:var(--ink-dim);border-radius:11px;font-family:var(--disp);font-weight:700;font-size:11.5px;cursor:pointer}
        #buckTool .bt-act svg{width:21px;height:21px;stroke:currentColor;fill:none}
        #buckTool .bt-act-save{border-color:var(--blaze);background:rgba(255,138,0,.08);color:var(--blaze-2)}
        #buckTool .bt-save-q{font-family:var(--disp);font-weight:700;font-size:13.5px;color:var(--ink);margin:14px 0 11px;border-top:1px solid var(--line);padding-top:13px}
        #buckTool .bt-save-actions{display:flex;gap:8px;margin-top:5px}
        #buckTool .bt-save-actions .bt-train-save{flex:2;margin-top:0}
        #buckTool .bt-save-cancel{flex:1;padding:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink-dim);border-radius:10px;font-size:12.5px;cursor:pointer}
        #buckTool .bt-note{font-size:10.5px;color:var(--ink-dim2);margin-top:12px;line-height:1.55}
      

/* ---- style block 6 of 6 ---- */
#coordReadout{padding:9px 14px;margin:-9px -14px;display:flex;flex-direction:column;gap:1px;font-family:var(--mono,monospace);font-size:8.4px;line-height:1.4;color:var(--ink,#e7eaee);cursor:pointer;pointer-events:auto;border-top:1px solid var(--line-2,#2a2f36);margin-top:1px;padding-top:2px;width:100%}
#coordReadout:hover #crDD{filter:brightness(1.25)}
#coordReadout #crDD{color:var(--accent,#f26722);font-weight:600;letter-spacing:.2px}
#coordReadout #crDMS,#coordReadout #crUTM{color:var(--ink-dim,#9aa3ad)}
@media(max-width:860px){ #coordReadout #crDMS,#coordReadout #crUTM{display:none} }
#elevCard{position:absolute;left:12px;bottom:64px;z-index:1150;display:none;width:320px;max-width:46vw;background:rgba(15,18,12,.93);border:1px solid var(--line-2,#2a2f36);border-radius:12px;padding:10px 12px 9px;box-shadow:0 10px 34px rgba(0,0,0,.5);backdrop-filter:blur(5px)}
#elevCard .elev-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px}
#elevCard .elev-title{font-family:var(--mono);font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-dim,#9aa3ad)}
#elevCard .elev-x{background:none;border:none;color:var(--ink-dim,#9aa3ad);cursor:pointer;font-size:12px;line-height:1;padding:2px 4px}
#elevCard .elev-x:hover{color:var(--accent,#f26722)}
#elevCard .elev-msg{font-size:11px;color:var(--ink-dim,#9aa3ad);padding:20px 4px;text-align:center}
#elevCard .elev-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:5px;font-family:var(--mono);font-size:10px;color:var(--ink-dim,#9aa3ad)}
#elevCard .elev-stats b{color:var(--accent,#f26722)}
/* Desktop: hide GPS locate + track-record ("trace") controls — those are field/mobile tools. Mobile (<=860px) keeps them. */
@media(min-width:861px){ #locRow{display:none!important} }
/* Desktop-only Pin + Draw stack buttons (mobile keeps its floating mPinBtn/mDrawBtn) */
#dPinBtn,#dDrawBtn{position:relative}
#dPinFly{top:0;bottom:auto;transform-origin:right top}
@media(max-width:860px){ #dPinBtn,#dDrawBtn{display:none!important} }
