
  :root{
    --ink:#0A1220;
    --ink-2:#0D1830;
    --ink-3:#111F3A;
    --sand:#F4F7FB;
    --sand-dim:#B3C1D8;
    --coral:#FF6B35;
    --aqua:#FF6B35;
    --sun:#FF8355;
    --good:#F4F7FB;
    --line:rgba(255,255,255,0.08);
    --line-strong:rgba(255,255,255,0.14);
    --header-h:64px;
    /* Aug 31 decision — dedicated wind-indicator tokens, kept apart from
       the general navy+orange system on purpose: --aqua/--sun/--good above
       now alias to orange/white for general UI, but the forecast grid, the
       TT/Foil/Wing tier cells, the wind rose and the seasonality chart need
       their own distinct teal→green→yellow→orange scale to stay readable
       (colorblind accessibility flagged by Benoit) — see knotsChipColor(),
       TIER_COLOR, ROSE_TIER_COLOR, SEASONALITY_TIER_COLOR below. */
    --wind-teal:#2EC4B6;
    --wind-good:#8BD17C;
    --wind-strong:#FFD23F;
  }
  *{box-sizing:border-box;}
  html,body{height:100%; overflow:hidden;}
  body{
    margin:0;
    background-color:var(--ink);
    /* Sep 10 — subtle starfield across the whole page (Benoit's ask), same
       tiny-dot technique the Rankings podium already uses, just tiled. */
    background-image:
      radial-gradient(1px 1px at 20px 30px, rgba(255,255,255,.5), transparent),
      radial-gradient(1px 1px at 90px 10px, rgba(255,255,255,.38), transparent),
      radial-gradient(1.5px 1.5px at 140px 80px, rgba(255,255,255,.42), transparent),
      radial-gradient(1px 1px at 60px 120px, rgba(255,255,255,.32), transparent),
      radial-gradient(1px 1px at 170px 150px, rgba(255,255,255,.4), transparent),
      radial-gradient(1px 1px at 10px 170px, rgba(255,255,255,.28), transparent),
      radial-gradient(1.5px 1.5px at 110px 190px, rgba(255,255,255,.42), transparent),
      radial-gradient(1px 1px at 190px 60px, rgba(255,255,255,.32), transparent);
    background-repeat:repeat;
    background-size:220px 220px;
    background-attachment:fixed;
    color:var(--sand);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{font-family:'Space Grotesk',sans-serif;}
  .mono{font-family:'IBM Plex Mono',monospace;}
  a{color:inherit;}

  /* ---------- dark mode OSM tile inversion ---------- */
  body.theme-dark .leaflet-tile-pane {
    filter: invert(100%) hue-rotate(180deg) brightness(95%) contrast(90%);
  }
  body.theme-dark .leaflet-marker-pane,
  body.theme-dark .leaflet-overlay-pane,
  body.theme-dark .leaflet-shadow-pane,
  body.theme-dark .leaflet-popup-pane {
    filter: invert(100%) hue-rotate(180deg);
  }

  /* ---------- header ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:3000;
    height:var(--header-h); box-sizing:border-box;
    display:flex; align-items:center; justify-content:space-between;
    padding:0 28px;
    background:rgba(10,18,32,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .logo{
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    font-size:17px;
    letter-spacing:0.02em;
    display:flex; align-items:center; gap:8px;
    background:none; border:none; padding:0; margin:0;
    color:var(--sand); cursor:pointer; text-align:left;
    transition:opacity .15s;
  }
  .logo:hover{opacity:0.8;}
  .logo .logo-mark{height:34px; width:auto; flex-shrink:0; display:block;}
  .logo-text{display:flex; flex-direction:row; align-items:baseline; gap:8px;}
  .logo-title{white-space:nowrap;}
  .logo .sub{color:var(--sand); font-weight:500; font-size:15px; font-family:'IBM Plex Mono',monospace; letter-spacing:0.06em;}
  nav{display:flex; gap:26px; font-size:13px; letter-spacing:0.03em;}
  nav a, nav button{text-decoration:none; color:var(--sand-dim); font-weight:500; transition:color .15s; background:none; border:none; font:inherit; letter-spacing:inherit; cursor:pointer; padding:0;}
  .nav-hamburger{display:none; background:none; border:none; color:var(--sand); font-size:22px; cursor:pointer; padding:4px 8px;}
  nav a:hover, nav button:hover{color:var(--sand);}
  nav .nav-cta{
    background:var(--coral); color:var(--ink); font-weight:700;
    padding:7px 14px; border-radius:20px; transition:all .15s;
  }
  nav .nav-cta:hover{background:var(--sand); color:var(--ink);}
  .nav-login-btn{
    background:transparent; border:1px solid var(--line-strong); color:var(--sand-dim);
    padding:7px 14px; border-radius:20px; font-size:inherit; font-family:inherit;
    cursor:pointer; transition:all .15s; max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .nav-login-btn:hover{color:var(--sand); border-color:var(--sand-dim);}
  .nav-login-btn.signed-in{border-color:var(--aqua); color:var(--aqua);}

  /* ---------- hero / dashboard ---------- */
  .hero{
    position:fixed; top:var(--header-h); left:0; right:0; bottom:0;
    display:grid;
    grid-template-columns:1.7fr 1fr;
  }
  .map-wrap{position:relative; background:#08222A;}
  #leaflet-map{position:absolute; inset:0;}
  .wind-dash-line{stroke:var(--aqua); stroke-width:2.2; stroke-linecap:round; animation-name:wind-dash-flow; animation-timing-function:ease-in-out; animation-iteration-count:infinite;}
  .wind-arrowhead-path{fill:var(--aqua);}
  @keyframes wind-dash-flow{
    0%{transform:rotate(var(--dash-deg)) translateY(9px); opacity:0;}
    20%{opacity:0.85;}
    80%{opacity:0.85;}
    100%{transform:rotate(var(--dash-deg)) translateY(-9px); opacity:0;}
  }

  .map-search{
    position:absolute; top:16px; left:16px; z-index:600;
    width:280px; max-width:calc(100% - 32px);
  }
  .map-toggle-group{position:absolute; bottom:16px; left:16px; z-index:600; display:flex; gap:8px; flex-wrap:wrap;}
  .map-fav-toggle{
    background:rgba(10,18,32,0.9); backdrop-filter:blur(6px);
    border:1px solid var(--line-strong); border-radius:8px;
    padding:10px 14px; color:var(--sand-dim);
    font-family:'Inter',sans-serif; font-size:13px; font-weight:600;
    cursor:pointer; transition:all .15s;
  }
  .map-fav-toggle:hover{color:var(--sand); border-color:var(--sand-dim);}
  .map-fav-toggle[aria-pressed="true"]{background:var(--sun); border-color:var(--sun); color:var(--ink);}
  .map-add-spot-link{
    position:absolute; bottom:16px; left:50%; transform:translateX(-50%); z-index:600;
    background:rgba(10,18,32,0.75); backdrop-filter:blur(6px);
    border:1px solid var(--line-strong); border-radius:20px;
    padding:8px 14px; color:var(--sand);
    font-family:'IBM Plex Mono',monospace; font-size:14.5px;
    cursor:pointer; transition:all .15s; white-space:nowrap;
  }
  .map-add-spot-link:hover{color:var(--sand); border-color:var(--coral);}
  .compare-indicator{
    position:absolute; top:16px; right:16px; z-index:600;
    background:var(--coral); border:1px solid var(--coral);
    border-radius:8px; padding:10px 14px; color:var(--ink);
    font-family:'Inter',sans-serif; font-size:13px; font-weight:700;
    cursor:pointer; transition:opacity .15s;
  }
  .compare-indicator:hover{opacity:0.85;}
  .map-search input{
    width:100%; box-sizing:border-box;
    background:rgba(10,18,32,0.9); border:1px solid var(--line-strong);
    border-radius:8px; padding:10px 14px; backdrop-filter:blur(6px);
    color:var(--sand); font-family:'Inter',sans-serif; font-size:13.5px;
    outline:none; transition:border-color .15s;
  }
  .map-search input::placeholder{color:var(--sand-dim);}
  .map-search input:focus{border-color:var(--coral);}
  .search-results{
    display:none; margin-top:6px; max-height:280px; overflow-y:auto; overflow-x:hidden;
    background:var(--ink-2); border:1px solid var(--line-strong); border-radius:8px;
  }
  .search-results.open{display:block;}
  .search-result{
    display:flex; align-items:center; gap:8px; padding:9px 12px;
    cursor:pointer; font-size:13px; border-bottom:1px solid var(--line);
  }
  .search-result:last-child{border-bottom:none;}
  .search-result:hover{background:var(--ink);}
  .search-section-label{
    font-size:14px; text-transform:uppercase; letter-spacing:0.05em; color:var(--sand);
    padding:8px 12px 4px; font-family:'IBM Plex Mono',monospace;
  }

  /* ---------- ad slots ---------- */
  .ad-slot{
    background:var(--ink-2); border:1px dashed var(--line-strong); border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    color:var(--sand); font-family:'IBM Plex Mono',monospace; font-size:13.5px;
    letter-spacing:0.08em; text-transform:uppercase; overflow:hidden;
  }
  /* Hidden Sep 2, 2026 per Benoit ("since Adsense is still not working,
     let's hide the ads placeholders. we can display them when we sort
     this out") — the AdSense account isn't approved yet, so these were
     rendering as empty dashed boxes with nothing in them. Everything
     above/below this rule (the .ad-slot styling, the <ins>/push() wiring)
     is untouched — re-enabling once AdSense is sorted is just deleting
     this one override rule. */
  .ad-slot{ display:none; }
  .ad-slot.hint-ad{
    width:100%; min-height:90px; max-height:300px; margin-top:18px;
  }
  .ad-slot.spots-ad{
    width:100%; height:90px; margin:2px 0 22px;
  }
  .search-result b{font-weight:600;}
  .search-result span{color:var(--sand); font-size:14.5px; margin-left:auto;}
  .search-empty{padding:10px 12px; font-size:15px; color:var(--sand);}

  .dashboard{
    position:relative;
    background:var(--ink-3);
    border-left:1px solid var(--line);
    display:flex; flex-direction:column;
    overflow:hidden;
  }
  .dash-scroll{
    flex:1; min-height:0;
    overflow-y:auto;
    overflow-x:hidden; /* Sep 2: without this, a horizontal swipe anywhere in the
      panel (not just on the forecast grid's own scroller) can rubber-band this
      whole container sideways on mobile Safari, dragging .fg-labels -- the
      forecast grid's non-scrolling label column -- along with it before it
      springs back. Reported as "the first column sometimes moving when it
      should stay in place." This container was never meant to scroll
      horizontally at all (only .fg-scroll, nested inside it, is), so pinning
      overflow-x closed here removes the ambiguity instead of just narrowing it. */
    padding:26px 26px 24px;
  }
  .dash-label{font-family:'IBM Plex Mono',monospace; font-size:14px; letter-spacing:0.1em; color:var(--sand); text-transform:uppercase;}
  .dash-title-row{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:6px;}
  .dash-title{font-size:26px; margin:0 0 2px;}
  .dash-title-actions{display:flex; align-items:center; gap:6px; flex-shrink:0;}
  .icon-btn{
    background:var(--ink); border:1px solid var(--line-strong); color:var(--sand-dim);
    border-radius:7px; padding:6px 10px; font-size:13.5px; font-family:'IBM Plex Mono',monospace;
    cursor:pointer; transition:all .15s; line-height:1;
  }
  .icon-btn:hover{color:var(--sand); border-color:var(--sand-dim);}
  .icon-btn.active{color:var(--coral); border-color:var(--coral);}
  .icon-btn.fav-btn{font-size:21px; padding:6px 12px; color:var(--sand-dim);}
  .icon-btn.fav-btn.active{color:var(--sun); border-color:var(--sun);}
  .card-fav-btn{
    background:var(--ink); border:1px solid var(--line-strong); color:var(--sand-dim);
    font-size:19px; cursor:pointer; padding:3px 8px; line-height:1; border-radius:7px;
    transition:all .15s;
  }
  .card-fav-btn.active{color:var(--sun); border-color:var(--sun);}
  .card-fav-btn:hover{color:var(--sun); border-color:var(--sand-dim);}

  /* styled hover tooltip, replaces the native title attribute for anything with data-tooltip */
  [data-tooltip]{position:relative;}
  [data-tooltip]::after{
    content:attr(data-tooltip);
    position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%);
    background:var(--ink); color:var(--sand); border:1px solid var(--line-strong);
    padding:5px 9px; border-radius:6px; font-size:13px; font-family:'Inter',sans-serif;
    font-weight:500; white-space:nowrap; letter-spacing:normal; text-transform:none;
    opacity:0; pointer-events:none; transition:opacity .15s; z-index:80;
    box-shadow:0 4px 14px rgba(0,0,0,0.35);
  }
  [data-tooltip]:hover::after, [data-tooltip]:focus-visible::after{opacity:1;}
  .dash-country{font-size:13px; color:var(--sand-dim); margin-bottom:20px;}
  .unit-toggle{display:flex; gap:6px; flex-wrap:wrap;}
  .unit-btn, .map-theme-btn{
    flex:1; min-width:80px;
    background:var(--ink); border:1px solid var(--line-strong); color:var(--sand-dim);
    border-radius:7px; padding:8px 6px; font-size:13px; font-family:'IBM Plex Mono',monospace;
    cursor:pointer; transition:all .15s;
  }
  .unit-btn:hover, .map-theme-btn:hover{color:var(--sand); border-color:var(--sand-dim);}
  .unit-btn.active, .map-theme-btn.active{background:var(--coral); border-color:var(--coral); color:var(--ink); font-weight:600;}

  .day-tabs{display:flex; gap:6px; margin-bottom:20px;}

  /* ---------- wind rose ---------- */
  .community-card{
    background:var(--ink-2); border:1px solid var(--line-strong);
    border-radius:14px; overflow:hidden; margin-bottom:20px;
  }
  .community-card-header{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 14px 10px; border-bottom:1px solid var(--line);
  }
  .community-card-title{
    font-family:'Space Grotesk',sans-serif; font-size:13px; font-weight:700;
    letter-spacing:0.04em; text-transform:uppercase; color:var(--sand-dim);
  }
  .community-sessions-link{
    background:none; border:none; color:var(--aqua); font-size:15px;
    cursor:pointer; padding:0; font-family:inherit; transition:opacity .15s;
  }
  .community-sessions-link:hover{opacity:0.75;}
  .community-card-body{ padding:12px 14px; }
  .community-kited-row{
    display:flex; align-items:center; justify-content:space-between;
    gap:10px; flex-wrap:wrap;
  }
  .community-kited-label{
    display:flex; align-items:center; gap:8px;
    font-size:13px; font-weight:600; color:var(--sand);
  }
  .community-kited-checks{display:flex; flex-wrap:wrap; gap:6px 8px; align-items:center;}
  /* Sep 11 — toggle chips replacing the old checkbox+label rows, now that the
     list grew from 7 to 12 disciplines (windsurf sub-disciplines, parawing,
     snowkite, landboard). Same pill language as .filter-btn elsewhere on the
     site, sized down for this compact inline widget. */
  .kited-chip{
    font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.02em;
    background:transparent; border:1px solid var(--line-strong); color:var(--sand-dim);
    padding:5px 11px; border-radius:20px; cursor:pointer; transition:all .15s;
  }
  .kited-chip:hover{color:var(--sand); border-color:var(--sand-dim);}
  .kited-chip.active{background:var(--aqua); border-color:var(--aqua); color:var(--ink); font-weight:600;}
  .community-kited-fold summary{cursor:pointer; list-style:none;}
  .community-kited-fold summary::-webkit-details-marker{display:none;}
  .community-kited-fold summary .community-kited-label::before{content:'+'; display:inline-block; width:14px; color:var(--coral); font-weight:700;}
  .community-kited-fold[open] summary .community-kited-label::before{content:'\2013';}
  .community-kited-fold .community-kited-checks{margin-top:10px;}
  .community-signin-prompt{
    background:none; border:1px solid var(--line-strong); border-radius:6px;
    color:var(--sand); font-size:14px; padding:4px 10px; cursor:pointer;
    font-family:inherit; transition:all .15s;
  }
  .community-signin-prompt:hover{color:var(--sand); border-color:var(--sand-dim);}
  .community-sessions-teaser{
    font-size:15px; color:var(--aqua); margin-top:10px;
    cursor:pointer; min-height:0;
  }
  .community-sessions-teaser:empty{display:none;}
  .community-badges{
    display:flex; flex-direction:column; gap:6px; margin-top:10px;
  }
  .community-badges:empty{display:none;}
  .spot-badge{
    font-size:13.5px; color:var(--sand-dim); display:flex;
    align-items:center; gap:6px;
  }
  .spot-badge b{color:var(--coral); font-weight:600;}
  .community-card-footer{
    border-top:1px solid var(--line);
    display:flex; gap:8px; padding:12px 14px;
  }
  .community-action-btn{
    flex:1; min-width:0; display:flex; align-items:center; gap:10px;
    padding:12px 10px; border-radius:8px; border:none;
    background:var(--coral); color:var(--ink);
    cursor:pointer; text-align:left; font-family:inherit;
    transition:background .15s, opacity .15s;
  }
  .community-action-btn:hover{opacity:0.9;}
  .community-action-btn-secondary{
    background:none; border:1.5px solid var(--line-strong); color:var(--sand);
  }
  .community-action-btn-secondary:hover{background:rgba(255,255,255,0.04); opacity:1;}
  .community-action-icon{font-size:18px; flex-shrink:0; width:22px; text-align:center;}
  .community-action-text{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px;}
  .community-action-text b{font-size:13px; font-weight:700;}
  .community-action-text span{font-size:14px; opacity:0.75;}
  @media (max-width:480px){
    .community-action-text span{display:none;}
  }

  .seasonality-block{margin-bottom:22px;}
  .seasonality-summary{cursor:pointer; list-style:none; font-family:'IBM Plex Mono',monospace; font-size:14px; letter-spacing:0.08em; color:var(--coral); text-transform:uppercase; display:flex; align-items:center; gap:8px;}
  .seasonality-summary::-webkit-details-marker{display:none;}
  .seasonality-summary::before{content:'–'; display:inline-block; width:14px; font-weight:700;}
  .seasonality-block:not([open]) .seasonality-summary::before{content:'+';}
  .seasonality-body{padding-top:6px;}
  .seasonality-chart{display:flex; gap:4px; align-items:flex-end; height:92px; margin-bottom:14px;}
  .seasonality-col{flex:1; display:flex; flex-direction:column; align-items:center; height:100%; justify-content:flex-end;}
  .seasonality-bar{width:100%; max-width:22px; height:38px; border-radius:4px 4px 2px 2px; opacity:0.85; transition:opacity .15s, transform .15s; border:none; padding:0; cursor:pointer; display:block;}
  .seasonality-bar:hover{opacity:1; transform:scaleY(1.06);}
  .seasonality-bar.is-now{opacity:1; box-shadow:0 0 0 2px var(--sand);}
  .seasonality-bar.is-selected{opacity:1; box-shadow:0 0 0 2px var(--coral);}
  .seasonality-bar.is-now.is-selected{box-shadow:0 0 0 2px var(--sand), 0 0 0 4px var(--coral);}
  /* Sep 5 -- readability pass (Benoit: "everything is small and even with
     reading glasses i am struggling"): these three were 9.5-10.5px in a
     muted color -- bumped substantially and switched to the brighter
     --sand rather than --sand-dim. Scoped to this chart component only;
     see the "See Spot Stats" backend/frontend commit for the broader
     sitewide question this raised. */
  .seasonality-label{font-family:'IBM Plex Mono',monospace; font-size:15px; font-weight:700; color:var(--sand); margin-top:8px;}
  .seasonality-subhead{font-family:'IBM Plex Mono',monospace; font-size:16px; font-weight:700; letter-spacing:0.02em; text-transform:uppercase; color:var(--sand); margin-bottom:10px;}
  .seasonality-subhead-note{text-transform:none; letter-spacing:normal; opacity:0.8; font-weight:400; font-size:13px;}
  .seasonality-legend{display:flex; flex-wrap:wrap; gap:10px 22px; font-size:15px; color:var(--sand); font-family:'IBM Plex Mono',monospace; font-weight:600; margin-bottom:8px; margin-top:14px;}
  /* Sep 5 -- readability: this panel's own section-sub/compare-empty text
     bumped without touching those shared base classes (used in ~50 other
     places sitewide that haven't been reviewed for this). */
  .spot-stats-panel .section-sub{font-size:15px;}
  .spot-stats-panel .compare-empty{font-size:16px; color:var(--sand);}
  /* Sep 5 -- "See Spot Stats" real-session-data panel. Reuses .seasonality-chart/
     .seasonality-col/.seasonality-label for the same column layout as the
     estimated chart above; these two are the only genuinely new pieces --
     a plain proportional-height bar and a bottom-up stacked bar. */
  .spot-stats-bar{width:100%; max-width:22px; border-radius:4px 4px 2px 2px; border:none; padding:0; cursor:pointer; display:block; font:inherit;}
  .spot-stats-stack{width:100%; max-width:22px; border-radius:4px 4px 2px 2px; overflow:hidden; display:flex; flex-direction:column-reverse; border:none; padding:0; cursor:pointer; font:inherit;}
  /* Sep 5 -- tap-to-reveal detail line under each Spot Stats chart (Benoit:
     hover-only tooltips don't work with a finger on mobile). Mirrors the
     existing .seasonality-bar click pattern used by the estimated chart
     right above this one. */
  .spot-stats-detail{font-size:14px; color:var(--sand); margin-top:8px; min-height:1.4em;}

  .similar-spots-block{margin-bottom:22px;}
  .similar-spots-list{display:flex; flex-direction:column; gap:8px;}
  .similar-spot-card{
    display:flex; flex-direction:column; align-items:flex-start; gap:2px;
    width:100%; text-align:left; background:var(--ink); border:1px solid var(--line);
    border-radius:8px; padding:10px 14px; cursor:pointer; transition:border-color .15s;
    font-family:inherit;
  }
  .similar-spot-card:hover{border-color:var(--coral);}
  .similar-spot-card b{font-size:13px; color:var(--sand); font-weight:600;}
  .similar-spot-card span{font-size:14.5px; color:var(--sand);}

  .downwinder-card{background:var(--ink); border:1px solid var(--line); border-radius:10px; padding:16px;}
  .downwinder-card-top{display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:8px;}
  .downwinder-card-top b{font-size:15px; color:var(--sand); font-weight:700; font-family:'Space Grotesk',sans-serif;}
  .downwinder-meta{font-size:14.5px; color:var(--sand); white-space:nowrap;}
  .downwinder-blurb{font-size:13px; line-height:1.55; color:var(--sand); opacity:.9; margin:0 0 10px;}
  .downwinder-meta-row{font-family:'IBM Plex Mono',monospace; font-size:14px; color:var(--sand); margin-bottom:12px; letter-spacing:0.02em; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;}
  .downwinder-live-badge{font-family:'Space Grotesk',sans-serif; font-size:13px; white-space:nowrap;}
  .downwinder-live-badge:empty{ display:none; }
  .downwinder-actions{display:flex; gap:18px; flex-wrap:wrap;}
  .downwinder-actions .link-btn{font-size:15px;}

  .session-list{display:flex; flex-direction:column; gap:10px;}
  .session-card{background:var(--ink); border:1px solid var(--line); border-radius:8px; padding:12px 14px;}
  .session-card-top{display:flex; align-items:flex-start; justify-content:space-between; gap:10px;}
  .session-card-top b{font-size:13.5px; color:var(--sand); font-weight:600;}
  .session-card-sub{font-size:14.5px; color:var(--sand); margin-top:2px;}
  .session-delete-btn{background:none; border:none; color:var(--sand-dim); font-size:14px; cursor:pointer; padding:2px 6px; flex-shrink:0;}
  .session-delete-btn:hover{color:var(--coral);}
  .session-card-actions{display:flex; align-items:center; gap:12px; margin-top:9px; flex-wrap:wrap;}
  .session-track-toggle{font-size:14.5px; margin:0;}
  .session-track-expand{font-size:14.5px; margin:0;}
  .session-visibility-select, .session-discipline-select{
    background:var(--ink); border:1px solid var(--line-strong); border-radius:8px; padding:6px 10px;
    font-size:13.5px; color:var(--sand); cursor:pointer; font-family:inherit;
  }
  .session-track-map{width:100%; height:180px; border-radius:8px; margin-top:8px; overflow:hidden;}

  .section-divider:not(.community-card){border-top:1px solid rgba(255,255,255,0.30); padding-top:20px;}
  .practical-block{margin-bottom:22px;}
  .practical-row{margin-bottom:12px;}
  .practical-row:last-child{margin-bottom:0;}
  .practical-row b{display:block; font-size:15px; color:var(--coral); font-weight:700; margin-bottom:3px;}
  .practical-row span{font-size:13px; color:var(--sand); opacity:0.92; line-height:1.5;}

  .kited-block{margin-bottom:22px;}
  .kited-block summary{cursor:pointer; list-style:none; font-size:13px; font-weight:600; color:var(--sand); display:flex; align-items:center; gap:8px;}
  .riders-here-count{font-size:14.5px; font-weight:500; color:var(--sand); font-family:'IBM Plex Mono',monospace;}

  #spot-badges:not(:empty){display:flex; flex-direction:column; gap:6px; margin:6px 0 22px;}
  .spot-badge{font-size:14px; color:var(--sand-dim); background:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:7px 10px;}
  .spot-badge b{color:var(--coral); font-weight:700;}

  .photo-block{margin-bottom:18px;}
  .photo-placeholder{
    display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px;
    background:rgba(255,255,255,0.03); border:1px dashed var(--line-strong); border-radius:10px;
    padding:22px 18px;
  }
  .photo-placeholder-icon{font-size:26px; opacity:0.5;}
  .photo-placeholder-sub{font-size:15px; color:var(--sand); max-width:280px; line-height:1.4;}
  .spot-photo-img{width:100%; height:180px; object-fit:cover; border-radius:10px; display:block; background:var(--ink-2);}
  .photo-slider{position:relative; overflow:hidden; border-radius:10px;}
  .photo-slider-track{display:flex; transition:transform .3s ease;}
  .photo-slider-track .spot-photo-img{border-radius:0;}
  .photo-slider-dots{
    position:absolute; bottom:8px; left:50%; transform:translateX(-50%);
    display:flex; gap:7px; background:rgba(0,0,0,0.4); padding:5px 9px; border-radius:20px;
  }
  .photo-dot{width:8px; height:8px; border-radius:50%; border:none; background:rgba(255,255,255,0.5); padding:0; cursor:pointer;}
  .photo-dot.active{background:var(--coral);}
  .photo-credit-row{display:flex; justify-content:space-between; align-items:center; margin-top:6px; font-size:14px; color:var(--sand);}
  .kited-block summary::-webkit-details-marker{display:none;}
  .kited-block summary::before{content:'+'; display:inline-block; width:14px; color:var(--coral); font-weight:700;}
  .kited-block[open] summary::before{content:'–';}
  .kited-body{padding-top:4px;}

  .monthly-loading{font-size:15px; color:var(--sand); padding:10px 0;}
  .monthly-conditions-table{width:100%; border-collapse:collapse; font-size:14px;}
  .monthly-conditions-table th{text-align:left; font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.05em; color:var(--sand-dim); padding:0 10px 8px 0; border-bottom:1px solid var(--line); font-weight:500;}
  .monthly-conditions-table td{padding:10px 10px 10px 0; border-bottom:1px solid var(--line); vertical-align:top; color:var(--sand);}
  .monthly-conditions-table td.mc-metric{font-weight:600; white-space:nowrap;}
  .monthly-conditions-table td.mc-value{white-space:nowrap; font-family:'IBM Plex Mono',monospace; color:var(--aqua);}
  .monthly-conditions-table td.mc-expect{color:var(--sand); opacity:0.85; line-height:1.5;}
  .monthly-conditions-table tr:last-child td{border-bottom:none;}
  #kited-signin-prompt{font-size:15px;}
  .wind-rose-block{margin-bottom:22px;}
  .wind-rose{position:relative; width:168px; height:168px; margin:6px auto 10px;}
  .wind-rose-ring{position:absolute; inset:0; border-radius:50%; transition:background .3s ease;}
  .wind-rose-hole{
    position:absolute; inset:23%; background:var(--ink-3); border-radius:50%;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
  }
  .wind-rose-hole .wr-label{font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.1em; color:var(--sand-dim); text-transform:uppercase;}
  .wind-rose-hole .wr-value{font-family:'Space Grotesk',sans-serif; font-size:26px; font-weight:700; line-height:1.1;}
  .wind-rose-hole .wr-value span{font-size:13.5px; font-weight:500; color:var(--sand-dim); margin-left:2px;}
  .wind-rose-marker{position:absolute; inset:0; transition:transform .4s cubic-bezier(.34,1.4,.64,1);}
  .wind-rose-marker .wr-dot{
    position:absolute; top:-3px; left:50%; transform:translateX(-50%);
    width:11px; height:11px; border-radius:50%; background:var(--sand); border:2px solid var(--ink-3);
    box-shadow:0 0 0 4px rgba(244,247,251,0.22);
    animation:wr-pulse 2.2s ease-in-out infinite;
  }
  @keyframes wr-pulse{ 0%,100%{transform:translateX(-50%) scale(1);} 50%{transform:translateX(-50%) scale(1.3);} }
  .wind-rose-labels{position:absolute; inset:-18px; font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--sand-dim); font-weight:600;}
  .wind-rose-labels span{position:absolute;}
  .wr-n{top:0; left:50%; transform:translateX(-50%);}
  .wr-e{top:50%; right:0; transform:translateY(-50%);}
  .wr-s{bottom:0; left:50%; transform:translateX(-50%);}
  .wr-w{top:50%; left:0; transform:translateY(-50%);}
  .wind-rose-legend{display:flex; flex-wrap:wrap; gap:8px 14px; justify-content:center; font-size:14px; color:var(--sand); font-family:'IBM Plex Mono',monospace;}
  .wind-rose-legend .wrl-item, .seasonality-legend .wrl-item{display:flex; align-items:center; gap:5px;}
  .wind-rose-legend .wrl-dot, .seasonality-legend .wrl-dot{width:11px; height:11px; border-radius:50%; display:inline-block;}
  .wind-rose-note{font-size:14px; color:var(--sand); text-align:center; margin-top:8px; line-height:1.4;}
  .live-compare{margin-top:14px; padding:12px 14px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,0.03);}
  .live-compare-row{display:flex; align-items:center; justify-content:space-between; font-size:14px; padding:3px 0;}
  .live-compare-row b{font-family:'IBM Plex Mono',monospace; color:var(--sand);}
  .live-dot{display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--good); margin-right:6px; box-shadow:0 0 0 2px rgba(244,247,251,0.25);}
  .live-compare-label{color:var(--sand-dim);}
  .live-compare-source{font-family:'IBM Plex Mono',monospace; font-size:13.5px; text-transform:uppercase; letter-spacing:0.04em; color:var(--sand);}

  .mini-wind-block{margin-top:18px;}
  .mini-wind-map{
    position:relative; width:100%; height:220px; margin-top:8px;
    border-radius:10px; overflow:hidden; border:1px solid var(--line);
    background-color:var(--ink-3);
  }
  .mini-wind-map .leaflet-container{background:var(--ink-3); font-family:inherit;}
  .mini-wind-overlay{position:absolute; inset:0; width:100%; height:100%; z-index:450; pointer-events:none;}
  .mini-wind-live{
    position:absolute; top:8px; right:10px; z-index:460;
    display:flex; align-items:center; gap:4px;
    font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:0.05em; color:var(--good);
    background:rgba(10,18,32,0.8); padding:3px 8px; border-radius:10px;
  }
  .mini-wind-live::before{content:''; width:5px; height:5px; border-radius:50%; background:var(--good);}

  /* ---------- tides ---------- */
  #tide-section:empty{display:none;}
  #tide-section{margin-bottom:20px;}
  .tide-state{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:14px;}
  .tide-state.rising{color:var(--good);}
  .tide-state.falling{color:var(--coral);}
  .tide-graph{width:100%; height:auto; display:block;}
  .tide-area{fill:rgba(255,107,53,0.12); stroke:none;}
  .tide-line{fill:none; stroke:var(--aqua); stroke-width:2; stroke-linecap:round;}
  .tide-extreme-dot{fill:var(--ink-3); stroke:var(--sand-dim); stroke-width:1.5;}
  .tide-extreme-label{font-family:'IBM Plex Mono',monospace; font-size:14px; fill:var(--sand);}
  .tide-extreme-type{font-weight:700; fill:var(--sand);}
  .tide-now-line{stroke:var(--sand); stroke-width:1.5; stroke-dasharray:3 3;}
  .tide-now-dot{fill:var(--ink-3); stroke:var(--coral); stroke-width:2.5;}
  .tide-now-badge{fill:var(--coral);}
  .tide-now-badge-text{font-family:'IBM Plex Mono',monospace; font-size:14px; font-weight:700; fill:var(--ink); text-anchor:middle;}
  .tide-axis-label{font-family:'IBM Plex Mono',monospace; font-size:13.5px; fill:var(--sand); opacity:0.7;}
  .tide-note{font-size:14px; color:var(--sand); line-height:1.4; margin-top:6px;}

  .alert-banner{
    background:rgba(255,107,53,0.1); border:1px solid rgba(255,107,53,0.35); border-radius:10px;
    padding:12px 14px; margin-bottom:20px;
  }
  .alert-row{display:flex; align-items:flex-start; gap:8px; font-size:13px; line-height:1.4; margin-bottom:6px;}
  .alert-row:last-of-type{margin-bottom:8px;}
  .alert-row b{color:var(--coral);}
  .alert-icon{flex:0 0 auto; font-size:14px; line-height:1.4;}
  .alert-note{font-size:14px; color:var(--sand); line-height:1.4; border-top:1px solid rgba(255,107,53,0.25); padding-top:8px;}
  .forecast-label-row{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:10px;}
  .model-sun-row{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;}
  .model-select{
    background:var(--ink); border:1px solid var(--line-strong); color:var(--sand); border-radius:6px;
    padding:4px 8px; font-size:14.5px; font-family:inherit; cursor:pointer;
  }
  .sun-times{font-size:14.5px; color:var(--sand); font-family:'IBM Plex Mono',monospace;}
  .forecast-disclaimer{font-family:'IBM Plex Mono',monospace; font-size:13.5px; letter-spacing:0.05em; text-transform:uppercase; color:var(--sand);}
  .forecast-disclaimer.is-live{color:var(--good); letter-spacing:0.03em;}
  @keyframes pulse{0%,100%{opacity:.55;} 50%{opacity:1;}}
  .loading-pulse{animation:pulse 1.4s ease-in-out infinite;}

  .dir-arrow{width:19px; height:19px; fill:var(--sand-dim);}

  /* ---------------- forecast grid: replaces the old day-tabs + vertical slot list ----------------
     One continuous horizontal scroll across all 5 days instead of switching days — see the
     scroll-reset bug this replaces, and the prototype (index_text.html) this was validated in
     before landing here. Two independent panels (label column that never scrolls, data column
     that's the only thing with overflow-x) rather than CSS Grid position:sticky, which doesn't
     hold reliably across browsers for this pattern. */
  .fg-outer{display:flex; border:1px solid var(--line); border-radius:10px; overflow:hidden; margin:10px 0 4px;}
  .fg-labels{flex:0 0 auto; width:64px; background:var(--ink); border-right:1px solid var(--line-strong); z-index:2;}
  .fg-scroll{flex:1; min-width:0; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; touch-action:pan-x;}
  .fg-data{display:flex; flex-direction:column;}
  .fg-row-h{height:34px;}
  .fg-label{
    display:flex; align-items:center; padding:0 9px;
    font-family:'IBM Plex Mono',monospace; font-size:13.5px; text-transform:uppercase; letter-spacing:0.03em;
    color:var(--sand); font-weight:600; border-bottom:1px solid var(--line); white-space:nowrap;
  }
  .fg-label.fg-kite-label{color:var(--sand);}
  .fg-day-row{display:flex;}
  .fg-daycell{
    font-family:'IBM Plex Mono',monospace; font-size:12.5px; font-weight:700; color:var(--sand);
    display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--line); border-left:1.5px solid var(--line-strong);
  }
  .fg-data-row{display:flex;}
  .fg-cell{flex:0 0 auto; width:56px; display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--line);}
  .fg-cell.fg-day-start{border-left:1.5px solid var(--line-strong);}
  .fg-cell.fg-now-col{background:rgba(255,107,53,0.08);}
  .fg-hour{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--sand-dim); font-weight:600; text-align:center; line-height:1.2;}
  .fg-hour.fg-now{color:var(--aqua); font-weight:800;}
  .fg-chip{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:14px; color:var(--ink); width:30px; height:23px; border-radius:6px; display:flex; align-items:center; justify-content:center;}
  .fg-dir{display:flex; flex-direction:column; align-items:center; gap:2px;}
  .fg-dir .dir-arrow{width:12px; height:12px; fill:var(--sand);}
  .fg-dir span{font-size:11.5px; color:var(--sand-dim); font-family:'IBM Plex Mono',monospace;}
  .fg-temp{font-family:'IBM Plex Mono',monospace; font-size:14px; color:var(--sand);}
  .fg-wx{font-size:14px;}
  .fg-rain{font-family:'IBM Plex Mono',monospace; font-size:13.5px; color:var(--aqua);}
  .fg-wave{display:flex; flex-direction:column; align-items:center; gap:1px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--sand-dim);}
  .fg-wave b{color:var(--sand); font-size:12.5px;}
  .fg-cell.fg-tap{cursor:pointer;}
  .fg-cell.fg-tap.fg-selected{outline:2px solid var(--coral); outline-offset:-2px; border-radius:6px;}
  .fg-kite{width:46px; height:23px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:11.5px; color:var(--ink);}
  .fg-tide-svg{display:block; border-bottom:1px solid var(--line);}
  .fg-loading{padding:20px; text-align:center; color:var(--sand); font-size:15px;}

  .legend{display:flex; flex-wrap:wrap; gap:10px 16px; margin-bottom:18px;}
  .legend-item{display:flex; align-items:center; gap:6px; font-size:13px; color:var(--sand-dim); font-family:'IBM Plex Mono',monospace;}
  .legend-item .dot{width:8px; height:8px; border-radius:50%; display:inline-block; background:var(--tier-color);}
  .legend-item .tier-symbol{font-size:15px; font-weight:800; color:var(--tier-color); opacity:1; line-height:1;}

  .blurb{font-size:13px; line-height:1.6; color:var(--sand); opacity:.88; margin-bottom:16px;}
  .live-link{
    padding-top:16px; margin-top:4px;
    font-size:13px; display:flex; align-items:center; gap:6px;
    color:var(--coral); text-decoration:none; font-weight:500;
    border-top:1px solid var(--line);
  }
  .live-link:hover{text-decoration:underline;}
  .live-link.secondary{border-top:none; padding-top:8px; margin-top:0; color:var(--sand-dim); font-weight:500;}
  .live-link.secondary:hover{color:var(--sand);}
  .forecast-footnote{font-size:14px; color:var(--sand); line-height:1.5; margin-top:10px;}

  #webcam-section:empty{display:none;}
  .webcam-list{display:flex; gap:10px; overflow-x:auto; padding-bottom:4px; margin-bottom:16px;}
  .webcam-card{
    flex:0 0 auto; width:150px; display:block; text-decoration:none;
    background:var(--ink); border:1px solid var(--line); border-radius:8px; overflow:hidden;
    transition:border-color .15s;
  }
  .webcam-card:hover{border-color:var(--coral);}
  .webcam-card img{width:100%; height:90px; object-fit:cover; display:block; background:var(--ink-2);}
  .webcam-card-label{padding:7px 9px;}
  .webcam-card-label b{display:block; font-size:14.5px; color:var(--sand); font-weight:600; line-height:1.3;}
  .webcam-card-label span{display:block; font-size:13.5px; color:var(--sand); margin-top:2px;}

  .hint{color:var(--sand-dim); font-size:13.5px; line-height:1.6;}

  /* ---------- marker ---------- */
  .spot-marker{width:16px;height:16px;}
  .spot-marker span{
    display:block; width:12px; height:12px; border-radius:50%;
    background:var(--coral); border:2px solid var(--ink);
    box-shadow:0 0 0 4px rgba(255,107,53,0.22);
    transition:transform .15s;
  }
  .spot-marker.active span{background:var(--sun); box-shadow:0 0 0 5px rgba(255,131,85,0.28); transform:scale(1.15);}
  .spot-marker.wind-light span{background:#9FB2B4; transform:scale(0.85);}
  .spot-marker.wind-workable span{background:#4A90D9; transform:scale(1);}
  .spot-marker.wind-great span{background:#F5A623; transform:scale(1.15);}
  .spot-marker.wind-strong span{background:#E0433D; transform:scale(1.3);}
  /* Sep 5 -- live rider tracking v1. Its own marker type (not .spot-marker
     with a new modifier class) since these pins come from a completely
     separate data source (GET /live, refreshed on its own interval) and
     live in their own layer group, not the spot clusterGroup. Distinct
     blue, deliberately not #4A90D9 (already means "workable wind" when
     wind coloring is active) so a live rider is never mistaken for a
     wind-colored spot pin. */
  .live-rider-marker{width:24px;height:24px;}
  .live-rider-marker span{
    display:block; width:19px; height:19px; border-radius:50%;
    background:#2F6FED; border:2px solid var(--ink);
    box-shadow:0 0 0 5px rgba(47,111,237,0.30);
  }
  /* Sep 5 round 2 -- Benoit: "bigger dots... perhaps with a number... then
     click to see who they are." Several riders sharing the exact same
     spot (same lat/lng, since both come from the joined spots row) render
     as one numbered badge instead of stacked/overlapping dots. */
  .live-rider-marker-multi{width:34px; height:34px;}
  .live-rider-marker-multi span{
    display:flex; align-items:center; justify-content:center;
    width:29px; height:29px; border-radius:50%; box-sizing:border-box;
    background:#2F6FED; border:2px solid var(--ink);
    box-shadow:0 0 0 6px rgba(47,111,237,0.30);
    color:#fff; font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:14px;
  }
  .wind-color-legend{
    position:absolute; bottom:60px; left:16px; z-index:600; display:none;
    background:rgba(10,18,32,0.9); border:1px solid var(--line); border-radius:8px;
    padding:8px 12px; font-size:14px; color:var(--sand); gap:10px; flex-wrap:wrap;
  }
  .wind-color-legend.open{display:flex;}
  .wind-color-legend .wcl-item{display:flex; align-items:center; gap:5px;}
  .wind-color-legend .wcl-dot{width:8px; height:8px; border-radius:50%; display:inline-block;}

  .spot-marker-wind{width:34px; height:34px;}
  .wind-arrow-anim{
    width:100%; height:100%; display:flex; align-items:center; justify-content:center;
    animation:wind-arrow-pulse 1.8s ease-in-out infinite;
  }
  .wind-arrow-anim svg{width:26px; height:26px; fill:var(--coral); filter:drop-shadow(0 0 5px rgba(255,107,53,0.65));}
  @keyframes wind-arrow-pulse{
    0%,100%{opacity:0.8; transform:scale(1);}
    50%{opacity:1; transform:scale(1.18);}
  }

  /* ---------- cluster bubbles ---------- */
  .spot-cluster{background:transparent; border:none;}
  .spot-cluster .cluster-inner{
    width:100%; height:100%; border-radius:50%; box-sizing:border-box;
    display:flex; align-items:center; justify-content:center;
    background:var(--ink-2); border:2px solid var(--aqua);
    color:var(--sand); font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:13.5px;
    box-shadow:0 0 0 6px rgba(255,107,53,0.16);
    transition:transform .15s;
  }
  .spot-cluster:hover .cluster-inner{transform:scale(1.08);}
  .spot-cluster-medium .cluster-inner{border-color:var(--sun); box-shadow:0 0 0 7px rgba(255,131,85,0.16); font-size:13px;}
  .spot-cluster-large .cluster-inner{background:var(--coral); border-color:var(--coral); color:var(--ink); box-shadow:0 0 0 8px rgba(255,107,53,0.2); font-size:14px;}
  .leaflet-cluster-spider-leg{stroke:var(--sand-dim) !important; stroke-opacity:0.6 !important;}

  .leaflet-popup-content-wrapper{background:var(--ink-2); color:var(--sand); border-radius:8px;}
  .leaflet-popup-tip{background:var(--ink-2);}
  .leaflet-popup-content{font-family:'Inter',sans-serif; font-size:13px;}
  .leaflet-popup-content b{font-family:'Space Grotesk',sans-serif;}
  .spot-tooltip{
    background:var(--ink-2); color:var(--sand); border:1px solid var(--line-strong);
    font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:14px;
    padding:4px 9px; border-radius:6px; box-shadow:none;
  }
  .spot-tooltip::before{border-top-color:var(--line-strong);}

  /* ---------- spots section ---------- */
  .overlay-backdrop{
    position:fixed; inset:0; background:rgba(4,16,20,0.6); z-index:2500;
    opacity:0; pointer-events:none; transition:opacity .25s ease;
  }
  .overlay-backdrop.open{opacity:1; pointer-events:auto;}

  .spots-section{
    position:fixed; left:0; right:0; bottom:0; z-index:2600;
    max-height:82vh; max-height:82dvh;
    background:var(--ink-2);
    border-radius:18px 18px 0 0;
    box-shadow:0 -14px 40px rgba(0,0,0,0.45);
    padding:14px 28px 32px;
    max-width:1240px; margin:0 auto;
    overflow-y:auto;
    transform:translateY(100%);
    transition:transform .32s cubic-bezier(.22,.85,.32,1);
  }
  .spots-section.open{transform:translateY(0);}
  .spots-section.expanded{max-height:96vh; max-height:96dvh; max-width:min(96vw, 1600px);}
  .drawer-handle{width:40px; height:4px; border-radius:2px; background:var(--line-strong); margin:0 auto 18px;}
  .drawer-close{
    position:absolute; top:16px; right:20px;
    width:30px; height:30px; border-radius:50%; border:1px solid var(--line-strong);
    background:var(--ink); color:var(--sand-dim); font-size:16px; line-height:1;
    cursor:pointer; display:flex; align-items:center; justify-content:center;
  }
  .drawer-close:hover{color:var(--sand); border-color:var(--sand-dim);}
  .drawer-expand{right:58px; font-size:14px;}
  .mobile-back-btn{
    display:none; align-items:center; gap:6px; flex-shrink:0;
    width:100%; box-sizing:border-box;
    padding:14px 26px;
    background:var(--ink-3); border:none; border-bottom:1px solid var(--line);
    color:var(--sand); font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:14px;
    cursor:pointer;
  }
  .mobile-back-btn:hover{color:var(--coral);}
  .section-head{display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:8px; padding-right:36px;}
  .section-head h2{font-size:28px; margin:0;}
  .count-badge{font-family:'IBM Plex Mono',monospace; font-size:13.5px; color:var(--sand-dim);}
  .invite-btn{
    width:100%; margin:14px 0 18px; padding:12px; border-radius:10px; border:1px dashed var(--coral);
    background:rgba(255,107,53,0.08); color:var(--coral); font-weight:700; font-size:13.5px;
    cursor:pointer; transition:all .15s; font-family:inherit;
  }
  .invite-btn:hover{background:rgba(255,107,53,0.16);}
  .section-sub{color:var(--sand-dim); font-size:14px; max-width:560px; margin-bottom:26px;}

  .filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px;}
  .spots-search-input{
    width:100%; box-sizing:border-box; display:block;
    background:var(--ink); border:1px solid var(--line-strong);
    border-radius:8px; padding:10px 14px; margin-bottom:16px;
    color:var(--sand); font-family:'Inter',sans-serif; font-size:13.5px;
    outline:none; transition:border-color .15s;
  }
  .spots-search-input:focus{border-color:var(--coral);}
  .spots-search-input::placeholder{color:var(--sand-dim);}
  #country-filters{margin-top:-18px;}
  #country-filters:empty{margin-top:0;}
  #country-filters .filter-btn{font-size:13.5px; padding:6px 12px;}
  .filter-btn{
    font-family:'IBM Plex Mono',monospace; font-size:13.5px; letter-spacing:0.03em;
    background:transparent; border:1px solid var(--line-strong); color:var(--sand-dim);
    padding:7px 14px; border-radius:20px; cursor:pointer; transition:all .15s;
  }
  .filter-btn:hover{color:var(--sand); border-color:var(--sand-dim);}
  .filter-btn.active{background:var(--coral); border-color:var(--coral); color:var(--ink);}
  .filter-btn.back-btn{border-color:var(--coral); color:var(--coral); background:transparent;}
  .filter-btn.back-btn:hover{background:var(--coral); color:var(--ink);}
  .filters-secondary{margin-top:-6px; margin-bottom:14px;}
  .filter-btn.secondary-btn{font-size:13px; padding:5px 12px; opacity:0.85;}
  .filter-btn.secondary-btn.active{background:var(--aqua); border-color:var(--aqua); color:var(--ink); opacity:1;}

  .grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:14px;}
  .card{
    background:var(--ink-2); border:1px solid rgba(255,255,255,0.30); border-radius:10px;
    padding:18px; cursor:pointer; transition:border-color .15s, transform .15s;
  }
  .card:hover{border-color:rgba(255,255,255,0.55); transform:translateY(-2px);}
  .card.active{border-color:var(--coral);}
  .card-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px;}
  .card-top .flag{font-size:20px;}
  .card h3{font-size:17px; margin:0 0 2px;}
  .card .country{font-size:15px; color:var(--sand); margin-bottom:12px;}
  .card .row{display:flex; justify-content:space-between; font-size:15px; color:var(--sand); margin-bottom:5px; font-family:'IBM Plex Mono',monospace;}
  .card .row b{color:var(--sand); font-weight:500;}
  .card-sparkline{height:26px; margin:2px 0 9px;}
  .sparkline-svg{width:100%; height:100%; display:block;}

  .modal-panel{
    position:fixed; top:50%; left:50%; z-index:2700;
    transform:translate(-50%,-50%) scale(.97);
    width:min(460px, calc(100vw - 48px));
    max-height:80vh; max-height:80dvh; overflow-y:auto;
    background:var(--ink-2); border:1px solid var(--line-strong); border-radius:14px;
    padding:24px 26px 22px;
    display:flex; flex-direction:column; gap:12px;
    font-size:15px; color:var(--sand);
    opacity:0; pointer-events:none;
    transition:opacity .2s ease, transform .2s ease;
  }
  .modal-panel.open{opacity:1; pointer-events:auto; transform:translate(-50%,-50%) scale(1);}
  .compare-modal-panel{width:min(760px, calc(100vw - 48px));}
  .session-map-fullscreen{width:min(1000px, calc(100vw - 32px)); height:min(760px, calc(100vh - 32px)); max-height:calc(100vh - 32px);}
  .session-map-fullscreen .drawer-close{z-index:10;}
  .compare-cards{display:flex; gap:12px; overflow-x:auto; padding-bottom:4px;}
  .compare-card{flex:0 0 220px; background:var(--ink); border:1px solid var(--line-strong); border-radius:10px; padding:14px; position:relative;}
  .compare-card-remove{position:absolute; top:8px; right:8px; background:none; border:none; color:var(--sand-dim); cursor:pointer; font-size:16px; line-height:1; padding:2px 6px;}
  .compare-card-remove:hover{color:var(--coral);}
  .compare-card h4{margin:0 0 2px; font-size:15px; color:var(--sand); font-family:'Space Grotesk',sans-serif;}
  .compare-card .compare-loc{font-size:14px; color:var(--sand); margin-bottom:10px;}
  .compare-row{display:flex; justify-content:space-between; font-size:14.5px; padding:5px 0; border-top:1px solid var(--line);}
  .compare-row span:first-child{color:var(--sand-dim);}
  .compare-row span:last-child{color:var(--sand); text-align:right; max-width:60%;}
  .compare-card-cta{display:block; text-align:center; margin-top:12px; background:var(--coral); color:var(--ink); text-decoration:none; font-weight:700; font-size:15px; padding:8px; border-radius:6px;}
  .compare-empty{font-size:13px; color:var(--sand-dim); text-align:center; padding:20px 0;}

  .firing-list{display:flex; flex-direction:column; gap:8px; margin-top:12px;}
  .firing-row{
    display:flex; align-items:center; gap:14px; width:100%; text-align:left;
    background:var(--ink); border:1px solid var(--line-strong); border-radius:10px;
    padding:12px 16px; cursor:pointer; transition:border-color .15s; font-family:inherit;
  }
  .firing-row:hover{border-color:var(--coral);}
  .firing-rank{
    flex:0 0 auto; width:26px; height:26px; border-radius:50%; background:var(--ink-3);
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono',monospace; font-size:13.5px; font-weight:700; color:var(--sand-dim);
  }
  .firing-row:first-child .firing-rank{background:var(--sun); color:var(--ink);}
  .firing-info{flex:1; display:flex; flex-direction:column; gap:2px; min-width:0;}
  .firing-info b{font-size:13.5px; color:var(--sand);}
  .firing-info span{font-size:14px; color:var(--sand);}
  .firing-knots{flex:0 0 auto; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:20px; color:var(--coral);}
  .firing-knots small{font-size:13px; font-weight:500; color:var(--sand-dim); margin-left:2px;}
  .firing-share-row{display:flex; gap:10px; margin-top:16px; padding-top:16px; border-top:1px solid var(--line);}

  .rankings-filters{display:flex; flex-direction:row; flex-wrap:wrap; gap:10px;}
  .rankings-filters select{flex:1 1 140px; min-width:0;}
  #rankings-country-filter{
    width:100%; background:var(--ink); border:1px solid var(--line-strong); border-radius:8px;
    padding:9px 12px; color:var(--sand); font-size:13.5px; font-family:inherit; cursor:pointer;
  }
  .firing-share-row .icon-btn{flex:1; text-align:center;}
  .firing-mode-toggle{display:flex; gap:8px; margin-top:12px;}
  .firing-mode-btn{flex:1; background:rgba(255,255,255,0.04); border:1px solid var(--line); color:var(--sand-dim); font-size:14px; font-weight:600; padding:9px; border-radius:8px; cursor:pointer;}
  .firing-mode-btn:hover{border-color:var(--coral);}
  .firing-mode-btn.active{background:var(--coral); border-color:var(--coral); color:var(--ink);}
  .firing-scope-row{display:flex; gap:8px; margin-top:10px;}
  .firing-scope-row select{flex:1; background:var(--ink); border:1px solid var(--line-strong); border-radius:8px; padding:9px 10px; color:var(--sand); font-size:13px; font-family:inherit;}
  .modal-panel h3{font-size:18px; color:var(--sand); margin:0 0 2px; font-weight:700;}
  .modal-panel h4{font-size:13px; color:var(--sand); margin:10px 0 0; font-weight:700;}
  .modal-panel .about-eyebrow{
    font-family:'IBM Plex Mono',monospace; font-size:14px; letter-spacing:0.08em;
    color:var(--coral); text-transform:uppercase;
  }
  .link-btn{background:none; border:none; padding:0; color:var(--coral); text-decoration:underline; cursor:pointer; font:inherit;}
  .cta-btn{background:var(--coral); color:var(--ink); border:none; border-radius:8px; padding:12px; font-size:14px; font-weight:700; cursor:pointer; font-family:inherit;}
  .cta-btn:hover{opacity:0.9;}
  .cta-btn-secondary{background:none; border:1.5px solid var(--aqua); color:var(--aqua);}
  .cta-btn-secondary:hover{background:rgba(255,107,53,0.08); opacity:1;}

  .faq-item{border-bottom:1px solid var(--line); padding:10px 0;}
  .compat-row{margin-bottom:14px; font-size:13.5px;}
  .compat-row b{display:block; color:var(--sand-dim); margin-bottom:4px; font-family:'IBM Plex Mono',monospace; font-size:13px; text-transform:uppercase; letter-spacing:0.04em;}
  .compat-row span{color:var(--sand); opacity:0.85;}
  .compat-chips{display:flex; flex-wrap:wrap; gap:6px;}
  .compat-chip{background:var(--ink); border:1px solid var(--line-strong); border-radius:6px; padding:3px 8px; font-size:13.5px; color:var(--sand); opacity:0.9;}
  .compat-fold summary{cursor:pointer; font-size:13px; color:var(--sand); font-weight:600; list-style:none;}
  .compat-fold summary::-webkit-details-marker{display:none;}
  .compat-fold summary::before{content:'+'; display:inline-block; width:14px; color:var(--coral); font-weight:700;}
  .compat-fold[open] summary::before{content:'\2013';}
  .compat-fold > *:not(summary){margin-top:10px;}
  .faq-item:last-child{border-bottom:none;}
  .faq-item summary{cursor:pointer; font-size:13px; color:var(--sand); font-weight:600; list-style:none;}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::before{content:'+'; display:inline-block; width:14px; color:var(--coral); font-weight:700;}
  .faq-item[open] summary::before{content:'–';}
  .faq-item p{font-size:15px; color:var(--sand); line-height:1.5; margin:8px 0 0 14px;}

  .my-alert-row{display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:15px;}

  .achievements-row{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px;}
  .achievement-badge{
    background:rgba(255,131,85,0.1); border:1px solid var(--sun); color:var(--sun);
    padding:6px 12px; border-radius:20px; font-size:13.5px; font-weight:600; white-space:nowrap;
  }
  .my-alert-row:last-child{border-bottom:none;}
  .my-alert-name{flex:1; color:var(--sand); font-weight:600; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .my-alert-threshold{flex:0 0 auto; font-family:'IBM Plex Mono',monospace; color:var(--coral); font-weight:700;}
  .my-alert-row .link-btn{flex:0 0 auto; font-size:14.5px;}

  .spot-form{display:flex; flex-direction:column; gap:12px; margin:4px 0;}
  .spot-form label{
    display:flex; flex-direction:column; gap:5px;
    font-size:15px; color:var(--sand); font-weight:500;
  }
  .spot-form .req{color:var(--coral);}
  .spot-form .hint-inline{font-weight:400; opacity:.8;}
  .spot-form input, .spot-form select, .spot-form textarea{
    background:var(--ink); border:1px solid var(--line-strong); border-radius:7px;
    padding:8px 10px; color:var(--sand); font-family:'Inter',sans-serif; font-size:13px;
    outline:none; transition:border-color .15s; resize:vertical;
  }
  .spot-form input:focus, .spot-form select:focus, .spot-form textarea:focus{border-color:var(--coral);}
  .spot-form-section{display:flex; flex-direction:column; gap:12px;}
  .spot-form-section + .spot-form-section{margin-top:4px; padding-top:16px; border-top:1px solid var(--line);}
  .spot-form-section-title{font-family:'IBM Plex Mono',monospace; font-size:14px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--sand); margin:0;}
  .ss-error{color:var(--coral); font-size:15px; margin:2px 0 4px;}
  .sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
  .link-btn:hover{color:var(--sand);}

  .cookie-banner{
    display:none; position:fixed; left:16px; right:16px; bottom:16px; z-index:2800;
    max-width:640px; margin:0 auto;
    background:var(--ink-2); border:1px solid var(--line-strong); border-radius:12px;
    padding:16px 18px; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
    box-shadow:0 8px 30px rgba(0,0,0,0.4);
  }
  .cookie-banner p{margin:0; font-size:15px; color:var(--sand); flex:1; min-width:200px;}
  .cookie-actions{display:flex; gap:8px; flex-shrink:0;}

  /* -------- AI chat widget -------- */
  .chat-fab{
    position:fixed; right:16px; bottom:16px; z-index:2900;
    width:52px; height:52px; border-radius:50%; border:none; cursor:pointer;
    background:url('data:image/png;base64,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') center/cover; color:var(--ink); font-size:22px;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 24px rgba(0,0,0,0.4);
  }
  .chat-panel{
    display:none; position:fixed; right:16px; bottom:80px; z-index:2900;
    width:min(420px, calc(100vw - 32px)); height:min(620px, calc(100vh - 140px));
    background:var(--ink-2); border:1px solid var(--line-strong); border-radius:14px;
    box-shadow:0 12px 40px rgba(0,0,0,0.5);
    flex-direction:column; overflow:hidden;
  }
  .chat-panel.open{display:flex;}
  .chat-header{
    padding:14px 16px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between;
  }
  .chat-header-title{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:14px; display:flex; align-items:center; gap:7px;}
  .chat-ai-badge{font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.05em; text-transform:uppercase; color:var(--coral); border:1px solid var(--coral); border-radius:4px; padding:1px 6px;}
  .chat-close-btn{background:none; border:none; color:var(--sand-dim); font-size:22px; cursor:pointer; padding:6px 10px; line-height:1;}
  @media (max-width: 480px){
    /* Full-screen, top-anchored on mobile - the previous bottom-anchored
       floating box could get pushed so its header (with the close button)
       scrolled off-screen entirely when iOS reshapes the layout for the
       keyboard, effectively trapping the person in the widget with no
       visible way out. Anchoring to the top instead keeps the header - and
       the close button - fixed in the one part of the screen iOS's keyboard
       handling doesn't disturb. */
    .chat-panel{
      top:0; right:0; bottom:0; left:0;
      width:100%; height:100%; height:100dvh;
      border-radius:0; z-index:3100;
    }
  }
  .chat-disclaimer{padding:8px 16px; font-size:14px; color:var(--sand); border-bottom:1px solid var(--line); line-height:1.4;}
  .chat-lang-row{display:flex; align-items:center; gap:6px; margin-top:6px;}
  .chat-lang-label{font-size:13.5px; color:var(--sand); text-transform:uppercase; letter-spacing:0.03em;}
  .chat-lang-btn{
    background:none; border:1px solid transparent; border-radius:6px; padding:3px 5px;
    font-size:15px; cursor:pointer; opacity:0.55; line-height:1;
  }
  .chat-lang-btn.active{opacity:1; border-color:var(--coral); background:rgba(255,255,255,0.06);}
  .chat-messages{flex:1; overflow-y:auto; padding:14px 16px; display:flex; flex-direction:column; gap:10px;}
  .chat-msg{max-width:85%; padding:9px 12px; border-radius:10px; font-size:13px; line-height:1.5;}
  .chat-msg.user{align-self:flex-end; background:var(--coral); color:var(--ink);}
  .chat-msg.bot{align-self:flex-start; background:rgba(255,255,255,0.06); color:var(--sand);}
  .chat-msg.bot.low-confidence{border:1px solid var(--sun);}
  .chat-confidence-note{font-size:14px; color:var(--sun); margin-bottom:4px; display:block;}
  .chat-input-row{padding:10px 12px; border-top:1px solid var(--line); display:flex; gap:8px;}
  .chat-input-row input{
    flex:1; background:var(--ink); border:1px solid var(--line-strong); border-radius:8px;
    padding:9px 12px; color:var(--sand); font-family:inherit; font-size:16px;
    /* 16px, not smaller - iOS Safari auto-zooms the whole page when a text
       input under that size receives focus, which was the actual root
       cause of the zoom-and-lose-the-close-button issue. */
  }
  .chat-input-row button{
    background:var(--coral); color:var(--ink); border:none; border-radius:8px; padding:0 14px; font-weight:700; cursor:pointer; font-size:13px;
  }
  .chat-input-row button:disabled{opacity:0.5; cursor:default;}
  .chat-spot-links{display:flex; flex-direction:column; gap:6px; margin-top:8px;}
  .chat-spot-links-label{font-size:14px; color:var(--sand); text-transform:uppercase; letter-spacing:0.04em; margin-bottom:2px;}
  .chat-spot-link{
    background:rgba(255,255,255,0.08); border:1px solid var(--line-strong); border-radius:8px;
    padding:8px 10px; color:var(--sand); font-family:inherit; font-size:15px; text-align:left; cursor:pointer;
  }
  .chat-spot-link:hover{background:rgba(255,255,255,0.14);}

  @media (max-width:880px){
    .hero{grid-template-columns:1fr; grid-template-rows:1fr;}
    .map-wrap{height:100%;}
    .map-search{width:calc(100% - 32px);}
    .compare-indicator{top:auto; right:auto; bottom:64px; left:16px;}
    .dashboard{
      position:fixed; left:0; right:0; top:var(--header-h); bottom:0; z-index:2200;
      border-left:none; border-top:1px solid var(--line);
      transform:translateY(100%);
      transition:transform .32s cubic-bezier(.22,.85,.32,1);
      box-shadow:0 -12px 36px rgba(0,0,0,0.4);
    }
    .dashboard.open{transform:translateY(0);}
    .mobile-back-btn{display:flex;}
    header{padding:0 16px;}
    .logo{font-size:13px; gap:6px;}
    .logo-text{flex-direction:column; align-items:flex-start; gap:0; line-height:1.2;}
    .logo .logo-mark{height:26px; width:auto;}
    .logo .sub{font-size:13.5px;}
    .nav-hamburger{display:block;}
    nav{
      display:none; position:fixed; top:var(--header-h); left:0; right:0; z-index:2999;
      flex-direction:column; gap:0; background:var(--ink); border-bottom:1px solid var(--line);
      max-height:calc(100vh - var(--header-h)); overflow-y:auto;
    }
    nav.open{display:flex;}
    nav button{width:100%; text-align:left; padding:16px 20px; border-bottom:1px solid var(--line); font-size:15px; box-sizing:border-box;}
    nav .nav-cta{border-radius:0; text-align:left;}
    nav .nav-login-btn{max-width:none; border:none; border-radius:0; padding:16px 20px; text-align:left;}
    .spots-section{max-height:88vh; max-height:88dvh; padding:14px 18px 26px;}
  }

/* Sep 8, 2026 -- Road trip phase 0 (wgg-status-sep8-roadtrip-redesign-plan.md,
   steps 1-3): selected state on saved-origin chips, a guided empty state in
   the route panel, a no-origin hint over the suggestions, fade-in-place
   when a suggestion is added, and a CSS-darkened OSM tile layer scoped to
   the road-trip map only (free interim for dark tiles; Protomaps later). */
.loc-search-chips .filter-btn.active{ background:var(--coral); border-color:var(--coral); color:var(--ink); }
.loc-search-chips .filter-btn.active [data-loc-delete]{ color:var(--ink); }
#roadtrip-guide{ padding:18px 20px; border:1px dashed var(--line-strong); border-radius:12px; margin-bottom:12px; }
.rt-guide-title{ font-size:15px; font-weight:700; color:var(--sand); margin-bottom:8px; }
.rt-guide-step{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--sand-dim); padding:5px 0; line-height:1.45; }
.rt-guide-step.done{ color:var(--sand); }
.rt-guide-step .rt-guide-num{ width:22px; height:22px; border-radius:50%; border:1px solid var(--line-strong); display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; flex-shrink:0; margin-top:1px; }
.rt-guide-step.done .rt-guide-num{ background:var(--coral); border-color:var(--coral); color:var(--ink); }
.rt-guide-step.next .rt-guide-num{ border-color:var(--coral); color:var(--coral); }
.rt-guide-foot{ font-size:12.5px; color:var(--sand-faint); margin-top:10px; line-height:1.5; }
.rt-hint{ font-size:13.5px; color:var(--sand); background:rgba(255,107,53,0.08); border:1px solid rgba(255,107,53,0.35); border-radius:10px; padding:10px 12px; margin-bottom:10px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
#roadtrip-suggestions .firing-row{ max-height:140px; transition:opacity .18s ease; }
#roadtrip-suggestions .firing-row.rt-adding{ opacity:0; max-height:0; padding-top:0; padding-bottom:0; margin-bottom:0; border-width:0; overflow:hidden; pointer-events:none; transition:opacity .18s ease, max-height .25s ease .15s, padding .25s ease .15s, margin .25s ease .15s; }
#roadtrip-route-summary{ font-size:16.5px !important; font-weight:700; line-height:1.45; }
/* Sep 9, 2026 (evening) -- the road-trip map follows the site's light/dark preference like every other map (phase 0 had forced it dark); dark ground only while dark tiles load. */
body.theme-dark #roadtrip-map.leaflet-container, body.theme-dark .session-map-fullscreen-dark.leaflet-container{ background:#141b2c; }

/* Sep 8, 2026 -- Road trip phase 1, step 4: suggestions sorted by drive time
   and grouped into drivable clusters, spot search, candidate pins. */
.rt-cluster{ margin:14px 0 6px; }
.rt-cluster-head{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:0 2px 6px; }
.rt-cluster-head b{ font-size:14px; color:var(--sand); }
.rt-cluster-head span{ font-size:11.5px; color:var(--sand-dim); text-align:right; }
.rt-sugg-head{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; font-size:14px; color:var(--sand); margin-bottom:8px; }
.rt-sugg-head .link-btn{ font-size:12.5px; white-space:nowrap; }
#roadtrip-suggestions .firing-info span .rt-drive{ color:var(--sand); font-family:'IBM Plex Mono', ui-monospace, monospace; font-size:12px; }
#roadtrip-suggestions .firing-info span .rt-far{ color:#F5A623; }
#roadtrip-spot-search-results{ position:absolute; left:0; right:0; z-index:5; }
.rt-cand-pin{ cursor:pointer; }

/* Sep 8, 2026 -- Road trip phase 1, step 5: the map as the planning surface. */
.rt-num-icon{ width:24px; height:24px; border-radius:50%; background:#7FD99A; color:#0B2B33; font-weight:700; font-size:12px; display:flex; align-items:center; justify-content:center; border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,0.45); font-family:'Inter',system-ui,sans-serif; }
.rt-num-icon.flagged{ background:#F5A623; }
.rt-home-icon{ width:24px; height:24px; border-radius:6px; background:#4A90D9; border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,0.45); display:flex; align-items:center; justify-content:center; }
.rt-map-popup .leaflet-popup-content{ margin:10px 12px; font-size:13px; line-height:1.45; }
.rt-map-popup .leaflet-popup-content b{ font-size:13.5px; }
.rt-map-popup .link-btn{ font-size:12.5px; padding:0; }
.session-map-fullscreen.session-map-fullscreen-roadtrip{ z-index:3200; width:calc(100vw - 24px); height:calc(100vh - 24px); max-height:none; }
#roadtrip-map-toolbar .rt-map-note{ font-size:11.5px; color:var(--sand-faint); }
#roadtrip-map.leaflet-container, .session-map-fullscreen-dark.leaflet-container{ background:#141b2c; } /* dark ground in both map themes while tiles load */

/* Sep 8, 2026 -- Road trip phase 1, steps 6-8: route tools, season flags, drag reorder, phone bar + toast. */
#roadtrip-route-tools{ display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; margin-top:10px; font-size:13px; color:var(--sand-dim); }
#roadtrip-route-tools label{ display:inline-flex; align-items:center; gap:7px; cursor:pointer; color:var(--sand); }
#roadtrip-route-tools input[type=checkbox]{ accent-color:var(--coral); width:16px; height:16px; }
.rt-season{ color:#F5A623; }
.rt-return-row{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--sand-dim); padding:8px 2px 0; }
.rt-return-row .rt-drive{ color:var(--sand); font-family:'IBM Plex Mono', ui-monospace, monospace; font-size:12.5px; }
#roadtrip-route-list .session-card[draggable=true]{ cursor:grab; }
#roadtrip-route-list .session-card.rt-drag-over{ outline:2px dashed var(--coral); outline-offset:2px; }
#roadtrip-route-list .session-card.rt-dragging{ opacity:0.45; }
.rt-drag-handle{ color:var(--sand-faint); font-size:15px; letter-spacing:-2px; padding:0 4px; cursor:grab; user-select:none; }
#roadtrip-toast{ position:fixed; left:50%; bottom:88px; transform:translateX(-50%); z-index:3150; display:none; align-items:center; gap:12px; padding:11px 14px; border-radius:12px; background:var(--ink-2); border:1px solid var(--line-strong); box-shadow:0 10px 30px rgba(0,0,0,0.45); font-size:13.5px; color:var(--sand); max-width:calc(100vw - 32px); }
#roadtrip-toast.open{ display:flex; }
#roadtrip-toast .link-btn{ font-size:13px; font-weight:600; }
#roadtrip-mobile-bar{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:3120; padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background:var(--ink-2); border-top:1px solid var(--line-strong); box-shadow:0 -10px 30px rgba(0,0,0,0.35); align-items:center; justify-content:space-between; gap:12px; }
#roadtrip-mobile-bar .rt-bar-summary{ font-size:14.5px; font-weight:700; color:var(--sand); line-height:1.3; }
#roadtrip-mobile-bar .rt-bar-sub{ font-size:11.5px; color:var(--sand-dim); margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:52vw; }
#roadtrip-mobile-bar .cta-btn{ padding:10px 14px; font-size:13px; white-space:nowrap; flex-shrink:0; width:auto; margin:0; }
@media (max-width:900px){
  #roadtrip-mobile-bar.rt-bar-show{ display:flex; }
  #roadtrip-toast{ bottom:96px; }
}

/* Sep 9, 2026 -- Road trip phase 2: share/export row, My trips, notes, custom stops, print view. */
#roadtrip-share-row{ display:none; flex-wrap:wrap; gap:6px 14px; align-items:center; margin-top:10px; font-size:13px; }
#roadtrip-share-row .rt-sep{ color:var(--sand-faint); }
#roadtrip-my-trips{ display:none; margin-bottom:12px; }
#roadtrip-my-trips .rt-trip-row{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:10px; background:var(--ink-2); border:1px solid var(--line); margin-top:6px; font-size:13px; }
#roadtrip-my-trips .rt-trip-row b{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--sand); font-weight:600; }
#roadtrip-my-trips .rt-trip-row span{ color:var(--sand-dim); font-size:12px; white-space:nowrap; }
.rt-note-input{ width:100%; box-sizing:border-box; margin-top:8px; background:var(--ink); border:1px solid var(--line); border-radius:6px; padding:6px 8px; color:var(--sand); font-size:13px; }
.rt-note-input::placeholder{ color:var(--sand-faint); }
.rt-custom-tag{ color:var(--aqua); }
#roadtrip-print{ display:none; }
@media print{
  html, body, body.theme-dark{ background:#fff !important; color:#111 !important; }
  body > *:not(#roadtrip-print){ display:none !important; }
  #roadtrip-print{ display:block !important; font-family:-apple-system, 'Segoe UI', Helvetica, Arial, sans-serif; color:#111 !important; padding:24px; }
  #roadtrip-print *{ color:#111 !important; }
  #roadtrip-print .rt-p-foot, #roadtrip-print .rt-p-foot *{ color:#666 !important; word-break:break-all; }
  #roadtrip-print h1{ font-size:22px; margin:0 0 4px; }
  #roadtrip-print .rt-p-sum{ font-size:15px; font-weight:600; margin:0 0 14px; }
  #roadtrip-print table{ border-collapse:collapse; width:100%; font-size:13px; }
  #roadtrip-print th, #roadtrip-print td{ text-align:left; padding:7px 8px; border-bottom:1px solid #ccc; vertical-align:top; }
  #roadtrip-print th{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:#555; }
  #roadtrip-print .rt-p-foot{ font-size:11px; color:#666; margin-top:16px; }
  #roadtrip-print a, #roadtrip-print a *{ color:#0645ad !important; text-decoration:underline; }
  #roadtrip-print .rt-p-links{ font-size:11px; margin-top:3px; }
  #roadtrip-print #roadtrip-print-map{ width:100%; max-height:96mm; object-fit:cover; border:1px solid #ccc; border-radius:4px; margin:8px 0 12px; break-inside:avoid; }
}

/* Sep 9, 2026 -- Road trip phase 2b: "add a stop on the way" panel; --sand-faint (used by the road-trip UI) defined. */
body{ --sand-faint:#7F8FA8; }
.rt-break-btn{ margin-left:6px; font-size:12.5px; }
.rt-break-panel{ margin-top:8px; padding:8px 10px; border-radius:8px; background:var(--ink-2); border:1px dashed var(--line-strong); font-size:13px; color:var(--sand); }
.rt-break-head{ color:var(--sand-dim); margin-bottom:6px; }
.rt-break-opts{ display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; }
.rt-break-opts .link-btn span{ color:var(--sand-faint); font-size:12px; }
.rt-break-close{ margin-left:auto; color:var(--sand-faint); }

/* Sep 9, 2026 -- Road trip phase 3: pill buttons, dates, per-day wind chips. */
.rt-btn{ display:inline-flex; align-items:center; gap:5px; background:var(--ink); border:1px solid var(--line-strong); color:var(--sand-dim); border-radius:7px; padding:5px 10px; font-size:12.5px; font-family:'IBM Plex Mono',monospace; cursor:pointer; line-height:1.2; text-decoration:none; transition:all .15s; white-space:nowrap; }
.rt-btn:hover{ color:var(--sand); border-color:var(--sand-dim); text-decoration:none; }
.rt-btn.rt-btn-primary{ color:var(--coral); border-color:rgba(255,107,53,0.55); }
.rt-btn.rt-btn-primary:hover{ border-color:var(--coral); }
.rt-btn.rt-btn-quiet{ border-color:transparent; color:var(--sand-faint); }
.rt-btn.rt-btn-quiet:hover{ border-color:var(--line-strong); color:var(--sand); }
.rt-btn:disabled{ opacity:0.5; cursor:default; }
.rt-btn.rt-btn-sm{ padding:3px 8px; font-size:11.5px; }
#roadtrip-share-row{ gap:6px; }
#roadtrip-share-row .rt-spacer{ flex:1; }
#roadtrip-my-trips .rt-trip-row{ gap:6px; }
.rt-break-btn{ margin-left:8px; vertical-align:middle; }
.rt-dates{ font-size:13px; color:var(--sand); margin-top:6px; }
.rt-dates .rt-season{ margin-left:4px; }
.rt-wind{ display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; align-items:center; }
.rt-day{ font-size:11.5px; padding:2px 7px; border-radius:999px; border:1px solid var(--line); color:var(--sand-dim); background:var(--ink); white-space:nowrap; }
.rt-day.good{ border-color:rgba(139,209,124,0.7); color:#8BD17C; }
.rt-day.ok{ border-color:rgba(255,210,63,0.7); color:#FFD23F; }
.rt-day.no{ opacity:0.75; }
.rt-day.clim{ font-style:italic; color:var(--sand-faint); }
.rt-wind-note{ font-size:11.5px; color:var(--sand-faint); }
#roadtrip-start-date{ color-scheme:dark; }

/* Sep 9, 2026 -- step 13: windy-day share under the knots on candidate / Best time rows. */
.firing-knots .rt-windy{ display:block; font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:11px; color:var(--sand-dim); line-height:1.2; margin-top:2px; }

/* Sep 10, 2026 -- Plan a trip result cards open the spot's full card. */
.planner-spot-card{ cursor:pointer; transition:border-color .15s; }
.planner-spot-card:hover{ border-color:var(--coral); }
.planner-spot-card .planner-card-arrow{ color:var(--coral); font-weight:400; font-size:13px; margin-left:2px; }

/* Sep 10, 2026 -- Road trip phase 4: suggested trips, sights, Plan B, fuel. */
#roadtrip-ideas{ margin:10px 0 12px; }
#roadtrip-ideas .rt-ideas-bar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
#roadtrip-ideas .rt-ideas-note{ font-size:12px; color:var(--sand-faint); }
.rt-idea{ margin-top:8px; padding:10px 12px; border-radius:10px; background:var(--ink-2); border:1px solid var(--line); }
.rt-idea-head{ display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; align-items:baseline; }
.rt-idea-head b{ color:var(--sand); font-size:14px; }
.rt-idea-head span{ font-size:12.5px; color:var(--sand-dim); }
.rt-idea-stops{ font-size:13px; color:var(--sand); margin-top:5px; line-height:1.5; }
.rt-idea-stops small{ color:var(--sand-faint); }
.rt-idea-actions{ margin-top:8px; display:flex; gap:6px; flex-wrap:wrap; }
.rt-planb{ font-size:12.5px; color:var(--sand-dim); margin-top:6px; }
.rt-sights{ margin-top:8px; padding:8px 10px; border-radius:8px; background:var(--ink); border:1px solid var(--line); font-size:13px; }
.rt-sights ul{ margin:4px 0 0; padding-left:18px; }
.rt-sights li{ margin:2px 0; }
.rt-sights a{ color:var(--sand); }
.rt-sights small{ color:var(--sand-faint); }
.rt-fuel-row{ display:flex; gap:8px; align-items:center; margin-top:8px; font-size:12.5px; color:var(--sand-dim); flex-wrap:wrap; }
.rt-fuel-row input{ width:64px; }

/* Sep 10, 2026 -- email consent card + profile email preferences */
#email-consent-card{ position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:9000; width:min(440px, calc(100vw - 32px)); background:var(--ink-2); border:1px solid var(--line-strong); border-radius:14px; padding:16px 18px 14px; box-shadow:0 12px 40px rgba(0,0,0,0.45); font-size:14px; color:var(--sand); }
#email-consent-card b{ display:block; font-size:15px; margin-bottom:4px; }
#email-consent-card p{ margin:0 0 12px; color:var(--sand-dim); line-height:1.45; font-size:13.5px; }
#email-consent-card .ecc-row{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
#email-consent-card .cta-btn{ width:auto; padding:9px 16px; font-size:13.5px; }
#email-consent-card .link-btn{ font-size:13.5px; }
#email-consent-card .ecc-x{ position:absolute; top:8px; right:10px; background:none; border:none; color:var(--sand-dim); font-size:18px; cursor:pointer; line-height:1; padding:4px; }
.profile-check{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--sand); margin:12px 0 0; line-height:1.4; cursor:pointer; }
.profile-check input{ margin-top:3px; accent-color:var(--coral); flex-shrink:0; }
