/* 2026-10-10 04:20 IST - Weight Training programme page in the coach family (style-coach.css carries the look): only the
   page's own pieces live here - the training-split colours of the side map, the rep-range pyramid panel and its zone
   tiles, the zone tags in the day tables, the pyramid tooltip and the four-step tracker on phones.
   Session-type palette validated with the dataviz validator, --mode dark --pairs all, on #141414 and #1c1c1c: all
   checks PASS. --wt-k1 #5b8def lower body, --wt-k2 #d9534f upper body, --wt-k3 #c060b8 machines and weak points
   (k3 moved off teal so it never reads as the coach "on your own" green). Rep zones are an ordinal neutral ramp. */
body.pg-program-weight-training {
  --wt-k1: #5b8def;
  --wt-k2: #d9534f;
  --wt-k3: #c060b8;
  --wt-z1: #4a4a52;
  --wt-z2: #36363c;
  --wt-z3: #28282d;
}

/* 2026-10-10 04:20 IST - the training split in the sticky rail: session-type discs, rest days muted */
body.pg-program-weight-training .wt-split .wt-legend { margin: 0 4px 6px; }
body.pg-program-weight-training .pt-map .wt-type-1 b { background: var(--wt-k1); border-color: var(--wt-k1); color: #0d1424; }
body.pg-program-weight-training .pt-map .wt-type-2 b { background: var(--wt-k2); border-color: var(--wt-k2); color: #1f0a09; }
body.pg-program-weight-training .pt-map .wt-type-3 b { background: var(--wt-k3); border-color: var(--wt-k3); color: #1e0b1b; }
body.pg-program-weight-training .pt-map .wt-rest b { background: transparent; color: var(--muted); }
body.pg-program-weight-training .pt-map .wt-rest span { color: var(--muted); font-weight: 600; }

/* 2026-10-10 04:20 IST - legend chips for the session types (swatch + text) */
body.pg-program-weight-training .wt-legend { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13.5px; color: var(--text); }
body.pg-program-weight-training .wt-legend small { color: var(--muted); font-size: 12.5px; }
body.pg-program-weight-training .wt-sw { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; vertical-align: 0; flex: none; background: #777; }
body.pg-program-weight-training .wt-sw.k1, body.pg-program-weight-training .pyr-mark.k1 { background: var(--wt-k1); fill: var(--wt-k1); }
body.pg-program-weight-training .wt-sw.k2, body.pg-program-weight-training .pyr-mark.k2 { background: var(--wt-k2); fill: var(--wt-k2); }
body.pg-program-weight-training .wt-sw.k3, body.pg-program-weight-training .pyr-mark.k3 { background: var(--wt-k3); fill: var(--wt-k3); }
body.pg-program-weight-training .pt-walk > .pt-legend, body.pg-program-weight-training .pt-head + .pt-legend { margin: -14px 0 22px; }

/* 2026-10-10 04:20 IST - rep-range pyramid on the coach chart panel, zone tiles beside it */
body.pg-program-weight-training .wt-pyr { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
body.pg-program-weight-training .wt-pyr-fig { max-width: 560px; width: 100%; justify-self: center; }
body.pg-program-weight-training .wt-pyr-svg { display: block; width: 100%; max-width: 460px; height: auto; margin: 6px auto 0; overflow: visible; }
body.pg-program-weight-training .wt-pyr-fig figcaption { margin-top: 10px; text-align: center; font-size: 13px; }
body.pg-program-weight-training .pyr-band-strength { fill: var(--wt-z1); }
body.pg-program-weight-training .pyr-band-muscle { fill: var(--wt-z2); }
body.pg-program-weight-training .pyr-band-endurance { fill: var(--wt-z3); }
body.pg-program-weight-training .pyr-lead { stroke: #4a4a48; stroke-width: 1; }
body.pg-program-weight-training .pyr-zone { fill: var(--text); font: 400 21px var(--display); letter-spacing: .05em; }
body.pg-program-weight-training .pyr-sub { fill: var(--muted); font: 500 12.5px var(--body); }
body.pg-program-weight-training .pyr-hint { fill: var(--muted); font: 500 12px var(--body); }
body.pg-program-weight-training .pyr-dot { outline: none; cursor: default; }
body.pg-program-weight-training .pyr-hit { fill: transparent; }
body.pg-program-weight-training .pyr-mark { stroke: #141414; stroke-width: 2; transform-box: fill-box; transform-origin: center; transition: transform .15s ease, opacity .15s ease; }
body.pg-program-weight-training .pyr-dot.is-hot .pyr-mark { transform: scale(1.35); }
body.pg-program-weight-training .wt-pyr-svg.has-hot .pyr-dot:not(.is-hot) .pyr-mark { opacity: .4; }
body.pg-program-weight-training .pyr-dot:focus-visible .pyr-hit { stroke: var(--accent); stroke-width: 2; }
body.pg-program-weight-training .wt-zones { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 10px; align-items: start; }
body.pg-program-weight-training .wt-zone { background: #222226; border-radius: 12px; border-top: 4px solid var(--wt-z1); padding: 14px 16px; }
body.pg-program-weight-training .wt-zone-muscle { border-top-color: var(--wt-z2); }
body.pg-program-weight-training .wt-zone-endurance { border-top-color: var(--wt-z3); }
body.pg-program-weight-training .wt-zone-timed { background: transparent; border: 1px dashed #3d3d44; }
body.pg-program-weight-training .wt-zone h5 { margin: 0; font: 400 26px/1 var(--display); letter-spacing: .04em; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
body.pg-program-weight-training .wt-zone h5 span { font: 600 13px/1 var(--body); color: var(--muted); letter-spacing: 0; }
body.pg-program-weight-training .wt-zone p { margin: 6px 0 10px; color: #cfcdc5; line-height: 1.55; font-size: 14.5px; }
body.pg-program-weight-training .wt-chips { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
body.pg-program-weight-training .wt-chips li { position: relative; padding: 5px 10px 6px 28px; border: 1px solid #34343a; border-radius: 10px; background: var(--pt-card); font-size: 13.5px; line-height: 1.35; color: var(--text); transition: border-color .15s; }
body.pg-program-weight-training .wt-chips li .wt-sw { position: absolute; left: 10px; top: 10px; margin: 0; }
body.pg-program-weight-training .wt-chips small { display: block; color: var(--muted); font-size: 12px; }
body.pg-program-weight-training .wt-chips li.is-hot { border-color: var(--accent); }

/* 2026-10-10 04:20 IST - zone tags in the day tables (ordinal neutral steps, text always in ink) */
body.pg-program-weight-training .wt-ztag { display: inline-block; font: 700 10.5px/18px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--text); padding: 0 7px; border-radius: 4px; background: var(--wt-z1); }
body.pg-program-weight-training .wt-ztag-muscle { background: var(--wt-z2); }
body.pg-program-weight-training .wt-ztag-endurance { background: var(--wt-z3); box-shadow: inset 0 0 0 1px #3a3a40; }
body.pg-program-weight-training .wt-ztag-timed { background: transparent; box-shadow: inset 0 0 0 1px #3a3a40; color: var(--muted); }

/* 2026-10-10 04:20 IST - tooltip for the pyramid dots (created by program-weight-training.js) */
body.pg-program-weight-training .wt-tip { position: fixed; z-index: 90; max-width: 280px; padding: 8px 12px; border-radius: 8px; background: #000; border: 1px solid var(--line); color: var(--text); font-size: 13px; line-height: 1.4; pointer-events: none; box-shadow: 0 10px 24px rgba(0, 0, 0, .5); }

/* 2026-10-10 04:20 IST - day cards with the extra zone column need a wider card before they sit two across */
body.pg-program-weight-training .pt-sessions { grid-template-columns: repeat(auto-fill, minmax(min(100%, 460px), 1fr)); }
/* 2026-10-10 04:20 IST - phones: the four-step tracker runs two by two */
@media (max-width: 900px) {
  body.pg-program-weight-training .pt-route { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.pg-program-weight-training .pt-route li:nth-child(3n + 1)::before { display: block; }
  body.pg-program-weight-training .pt-route li:nth-child(2n + 1)::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.pg-program-weight-training .pyr-mark, body.pg-program-weight-training .wt-chips li { transition: none; }
  body.pg-program-weight-training .pyr-dot.is-hot .pyr-mark { transform: none; }
}
