/* gw-rail.css — Analytics hub left sidebar ("rail") + mobile section select. ONE copy, used by the hub
   pages (inside their .gwa grid) and by every rail destination page (inside .gwa-shell, stamped by
   live_validation/scripts/gw_rail.py). Self-contained: private --gwr-* values (= gw-tokens.css), so it
   looks identical on pages that do not load gw-tokens.css and never touches a page's own :root.
   (hubsidebar1001 — moved here from gw-analytics.css) */
.gwa-rail,.gwa-railsel,.gwa-shell{
  --gwr-t1:#f8fafc;--gwr-t2:#a1a1aa;--gwr-tm:#8a7068;--gwr-bg3:#1f1212;--gwr-bd:#332020;
  --gwr-wine-a:rgba(98,28,45,0.6);--gwr-purp:#d4a017;--gwr-purp-l:#fbbf24;--gwr-r:8px;
  --gwr-ring:0 0 0 2px #0a0505,0 0 0 4px #d4a017;
}

/* desktop rail */
.gwa-rail{position:sticky;top:84px;align-self:start;display:flex;flex-direction:column;gap:2px;line-height:1.7;box-sizing:border-box}
.gwa-rail *{box-sizing:border-box}
.gwa-rail-h{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gwr-tm);margin:14px 10px 6px}
.gwa-rail-h:first-child{margin-top:0}
.gwa-rail a{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--gwr-t2);padding:7px 10px;border-radius:var(--gwr-r);text-decoration:none}
.gwa-rail a:hover{color:var(--gwr-t1);background:rgba(255,255,255,.03)}
.gwa-rail a[aria-current="page"]{color:var(--gwr-t1);background:var(--gwr-wine-a);box-shadow:inset 2px 0 0 var(--gwr-purp)}
.gwa-rail a:focus-visible{outline:none;box-shadow:var(--gwr-ring)}
.gwa-rail .gwa-lock{margin-left:auto;font-size:10px;color:var(--gwr-purp-l)}

/* mobile section select (replaces the rail under 1024px) */
.gwa-railsel{display:none}
label.sr-only[for="gwa-railsel"]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.gwa-railsel:focus-visible{outline:none;box-shadow:var(--gwr-ring)}

/* shell for pages that are not built on the hub's .gwa grid — same geometry as .gwa (gw-analytics.css),
   so the rail sits at the same x on every page. The page's own container keeps its max-width and
   inner layout; only its outer margin/padding are handed to the shell. */
.gwa-shell{max-width:1280px;margin:0 auto;padding:96px 24px 56px;display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;box-sizing:border-box}
.gwa-shell-b64{padding-top:32px}           /* body already pads 64px for the fixed nav */
.gwa-shell-main{min-width:0}
.gwa-shell-main>main,.gwa-shell-main>.page,.gwa-shell-main>.page-wide{margin:0;padding:0}

@media(max-width:1023px){
  .gwa-rail{display:none}
  .gwa-railsel{display:block;width:100%;box-sizing:border-box;background:var(--gwr-bg3);color:var(--gwr-t1);border:1px solid var(--gwr-bd);border-radius:var(--gwr-r);padding:10px 12px;font-family:inherit;font-weight:600;font-size:16px;line-height:1.2}
  .gwa-shell{grid-template-columns:minmax(0,1fr);padding:84px 16px 40px;gap:14px}
  .gwa-shell-b64{padding-top:20px}
  .gwa-shell-main>.gwa-railsel{margin-bottom:18px}
}
