/* /geotech/tracker/, the controls tracker, and its stand-off strip on /geotech/ (sitebuild/geotech/tracker.py; the
   combined design WS-967 (3), confirmed WS-969). Site tokens (site.css :root) for the page; palette B's blues for the
   data marks only (sides, chains, the forecast split, the swimlane). No inline styles anywhere (CSP). Phone first
   (W-115): the DOM order is the phone order (stand-offs before the map strip, so the first card's headline is on the
   first 375x667 screen, and reading order equals visual order); from 900px the map strip moves above the jump bar
   (the confirmed desktop design). Tables become cards; nothing scrolls sideways. Classes are gt-tr-* where the layers
   sheet (geotech-map.css) has a gt-* class of the same job (review m2). Copied into www/ only with geotech.pages on. */
.gt-page,.gt-tr-strip{--d-navy:#051C2C;--d-blue:#2251FF;--d-pale:#A9BCFF;--d-faint:#DCE4FF}
.gt-page{display:flex;flex-direction:column}
.gt-page>*{min-width:0}
.gt-page small{display:block;font:400 12px/1.4 var(--sans);color:var(--graphite);margin-top:2px}
.gt-top{padding-bottom:8px}
.gt-top h1{font-family:var(--serif);font-weight:600;font-size:34px;line-height:1.08;letter-spacing:-.015em;margin:8px 0 10px;max-width:22ch;text-wrap:balance}
.gt-top .standfirst{font-size:17px;max-width:var(--measure)}
.gt-upd{margin-top:8px}
.gt-upd b{color:var(--ink);font-weight:600}
.gt-intro{max-width:var(--measure);margin:0 0 16px}
.gt-page .sec h2,.gt-tr-strip h2{margin:0 0 6px}
.gt-page>section[id]{scroll-margin-top:calc(var(--mh) + 56px)}

/* map strip and next dates */
.gt-tr-mapstrip{padding:8px 0 0}
.gt-mapgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:12px 0}
.gt-tr-map{min-width:0}
.gt-tr-map .gt-map{margin:0}
.gt-tr-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font:12px/1.4 var(--sans);color:var(--graphite);margin:6px 0 0}
.gt-tr-legend i{display:inline-block;width:14px;height:10px;margin-right:5px;vertical-align:-1px}
.gt-tr-tally{font:12.5px/1.45 var(--sans);color:var(--graphite);margin:6px 0 0}
.gt-tr-tally b{color:var(--ink)}
.gt-due ul{list-style:none;margin:6px 0 0;padding:0}
.gt-d{border-top:1px solid var(--hair);padding:10px 0}
.gt-d p{margin:0}
.gt-dd{font:500 22px/1 var(--mono);color:var(--d-navy)}
.gt-dd small{display:inline;font:600 11px var(--sans);letter-spacing:.08em;color:var(--d-blue);margin-left:8px}
.gt-tt{font-size:15px;line-height:1.35;margin-top:5px}

/* jump bar */
.gt-bar{position:sticky;top:var(--mh);z-index:20;background:var(--paper);border-bottom:1px solid var(--hair)}
.gt-in{display:flex;align-items:center;gap:16px;min-height:44px;font:500 13.5px var(--sans);overflow:hidden}
.gt-in>a{color:var(--graphite);text-decoration:none;white-space:nowrap;min-height:44px;display:flex;align-items:center}
.gt-in>a[aria-current="true"]{color:var(--ink);box-shadow:inset 0 -2px var(--ink)}
.gt-f{display:none;margin-left:auto;gap:6px;flex-wrap:nowrap}
.gt-f:not([hidden]){display:flex}
.gt-chip{border:1px solid var(--hair);background:#fff;color:var(--ink);font:500 12.5px var(--sans);padding:3px 11px;cursor:pointer;white-space:nowrap}
.gt-chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.gt-hide{display:none!important}

/* stand-off cards */
.gt-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.gt-card{background:#fff;border:1px solid var(--hair);padding:16px;min-width:0}
.gt-card h3{font-family:var(--serif);font-weight:600;font-size:22px;line-height:1.25;letter-spacing:-.006em;margin:6px 0}
.gt-s{font-size:16px;line-height:1.45;margin:0 0 12px}
.gt-chain{list-style:none;margin:0;padding:0}
.gt-st{border-left:3px solid var(--d-navy);padding:3px 0 9px 10px;font:13.5px/1.4 var(--sans)}
.gt-st.gt-cn{border-color:var(--d-blue)}
.gt-st.gt-fut{border-left-style:dashed;border-color:var(--d-pale)}
.gt-st b{display:block;font:500 11.5px var(--mono);color:var(--graphite);margin-bottom:2px}
.gt-st.gt-cn b{color:var(--d-blue)}
.gt-nx{font:600 14px var(--sans);color:var(--d-blue);margin:12px 0 0}
.gt-side{font:600 10.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;color:#fff;background:var(--d-navy);white-space:nowrap}
.gt-side.gt-cn{background:var(--d-blue)}
.gt-conf{font:600 10.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;border:1px solid currentColor;white-space:nowrap}
.gt-conf-low{color:var(--ink);border-width:1.5px}
.gt-conf-med{color:var(--graphite)}
.gt-lang,.gt-sec{font:12px var(--sans);color:var(--graphite)}

/* the forecast card */
.gt-fc{border-top:1px solid var(--hair);padding-top:14px;min-width:0}
.gt-fid{font:500 12px var(--mono);background:var(--d-faint);display:inline-block;padding:1px 6px;margin:8px 0 0}
.gt-fc h4{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.35;margin:8px 0 10px}
.gt-split{display:block;width:100%;height:22px;margin-bottom:8px}
.gt-f1{fill:var(--d-navy);background:var(--d-navy)}.gt-f2{fill:var(--d-blue);background:var(--d-blue)}
.gt-f3{fill:var(--d-pale);background:var(--d-pale)}.gt-f4{fill:var(--d-faint);background:var(--d-faint);border:1px solid var(--d-pale)}
.gt-outs{list-style:none;margin:0;padding:0}
.gt-outs li{display:flex;justify-content:space-between;gap:10px;font:13.5px/1.5 var(--sans);border-bottom:1px solid var(--tint);padding:3px 0}
.gt-k{display:inline-block;width:10px;height:10px;margin-right:7px}
.gt-outs b{font:500 13.5px var(--mono)}
.gt-fc .fine{margin-top:10px}
.gt-fc .fine b{color:var(--ink);font-weight:600}

/* over time */
.gt-swim{display:block;width:100%;height:auto}
.gt-wide-only{display:none}
.gt-yr{stroke:var(--hair)}.gt-rl{stroke:var(--tint)}
.gt-today{stroke:var(--ink);stroke-dasharray:3 3}
.gt-yt{font:11px var(--mono);fill:var(--graphite);text-anchor:middle}
.gt-tdt{font:11px var(--sans);fill:var(--ink);text-anchor:end}
.gt-rn{font:600 12px var(--sans);fill:var(--ink)}
.gt-dot{stroke:#fff;stroke-width:1.2}
.gt-fam-chips{fill:var(--d-navy);background:var(--d-navy)}
.gt-fam-general{fill:var(--d-blue);background:var(--d-blue)}
.gt-fam-minerals{fill:var(--d-pale);background:var(--d-pale);stroke:var(--d-navy)}
.gt-fam-ai{fill:var(--d-faint);background:var(--d-faint);stroke:var(--d-blue);border:1px solid var(--d-blue)}
.gt-fam-quantum{fill:#fff;background:#fff;stroke:var(--d-navy);border:1px solid var(--d-navy)}
.gt-fam-telecoms{fill:#fff;background:#fff;stroke:var(--d-blue);border:1px solid var(--d-blue)}
.gt-tr-legend .gt-k{border-radius:50%;width:10px;height:10px}
.gt-due-dot{fill:var(--paper);stroke:var(--d-blue);stroke-width:1.6}
.gt-due-k{background:var(--paper);border:1.5px solid var(--d-blue)}

/* tables: cards below 900px */
.gt-t{border-collapse:collapse;width:100%;font:14px/1.45 var(--sans)}
.gt-t th,.gt-t td{text-align:left;vertical-align:top}
.gt-t thead{display:none}
.gt-t tr{display:block;background:#fff;border:1px solid var(--hair);padding:10px 12px;margin-bottom:10px}
.gt-t td,.gt-t tbody th{display:block;padding:3px 0;font-weight:400;overflow-wrap:anywhere}
.gt-t td[data-l]::before{content:attr(data-l);display:block;font:600 10.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--graphite)}
.gt-t tbody th b{font:600 18px var(--serif)}
.gt-gov td.gt-n{display:inline-block;width:32%;vertical-align:top}
.gt-all td:nth-child(1),.gt-all td:nth-child(2){display:inline-block;margin-right:10px}
.gt-all td:nth-child(2) small{display:inline;margin-left:4px}
.gt-all td:nth-child(-n+3)::before{content:none}
.gt-all td:nth-child(3){font:16px/1.4 var(--serif)}
.gt-n .num{font:500 18px var(--mono)}
.gt-foot{margin-top:20px}

/* the hub strip */
.gt-cards-c .gt-card h3{font-size:20px}
.gt-tr-strip .tl{display:inline-block;margin-top:16px}

@media (max-width:899px){
  .gt-top{padding-top:20px}
  .gt-so{padding-top:20px}
  .gt-so .gt-intro{display:none}
  .gt-in{gap:14px;overflow-x:auto;scrollbar-width:none}
  .gt-in::-webkit-scrollbar{display:none}
  .gt-in>a{font-size:13px}
}
@media (min-width:600px){
  .gt-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gt-wide{grid-column:1/-1}
}
@media (min-width:900px){
  .gt-top h1{font-size:48px;line-height:1.06}
  .gt-top .standfirst{font-size:20px}
  .gt-mapgrid{grid-template-columns:minmax(0,1fr) 300px;gap:28px;padding:18px 0}
  .gt-f{flex-wrap:wrap}
  .gt-top{order:0}.gt-tr-mapstrip{order:1}.gt-bar{order:2}.gt-so{order:3}.gt-time{order:4}.gt-govs{order:5}.gt-every{order:6}
  .gt-in{gap:22px;min-height:50px;font-size:14px}
  .gt-card{padding:20px 22px 18px}
  .gt-wide{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"h f" "c f";grid-template-rows:auto 1fr;gap:8px 32px}
  .gt-wide .gt-hd{grid-area:h}.gt-wide .gt-fc{grid-area:f;border-top:0;border-left:1px solid var(--hair);padding:0 0 0 24px}
  .gt-wide .gt-ch{grid-area:c}
  .gt-wide .gt-st{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px}
  .gt-wide .gt-st b{margin:1px 0 0}
  .gt-wide-only{display:block}.gt-narrow-only{display:none}
  .gt-rn{font-size:13.5px}
  .gt-t thead{display:table-header-group}
  .gt-t tr{display:table-row;background:none;border:0;padding:0;margin:0}
  .gt-t td,.gt-t tbody th{display:table-cell;border-bottom:1px solid var(--hair);padding:10px}
  .gt-t td[data-l]::before{content:none}
  .gt-all td:nth-child(1),.gt-all td:nth-child(2){display:table-cell;margin:0}
  .gt-all td:nth-child(2) small{display:block;margin-left:0}
  .gt-all td:nth-child(3){font:inherit}
  .gt-t thead th{font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--graphite);border-bottom:2px solid var(--ink);padding:8px 10px}
  .gt-gov td.gt-n{display:table-cell;width:auto}
  .gt-cards-c{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
  .gt-cards-c .gt-wide{grid-column:auto}
}
@media (min-width:900px) and (max-width:1100px){
  .gt-every .gt-t{font-size:13px}
}
.gt-draft{font:600 10.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;background:var(--tint);color:var(--ink);border:1px dashed var(--graphite);white-space:nowrap}
.gt-draftnote{font:13px/1.45 var(--sans);color:var(--graphite);margin:8px 0 0}
.gt-aimed{margin-top:12px}
.gt-orig{font:13px/1.4 var(--sans);color:var(--ink);margin-top:3px}
.gt-orig-none{color:var(--graphite);font-style:italic}
.gt-orig-note{display:block;font:12px/1.4 var(--sans);color:var(--graphite);margin-top:2px}
.gt-ease{font:600 10.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;border:1px solid var(--graphite);color:var(--graphite);white-space:nowrap}
.gt-res{margin-top:6px}
.gt-tr-nomap{margin:8px 0}
