/* progress.css - WS9 (Batch C): Progress sub-tabs (Strength / Volume / Muscles / Body).
   Pre-created empty at claim time (2026-08-21) so the shell tag is stable;
   the WS9 builder owns this file.

   Reuses existing workout.css primitives wherever one already fits (.chart-wrap,
   .chart-ttl, .chart-box, .stat-row/.stat-box, .empty, .dash-empty, .mbadge/.b<GROUP>,
   .vol-row*, .gu/.gd/.gf) - only the pieces the old single Progress tab never needed
   are new here: the four-way sub-tab bar, the 8W/12W/6M chip rows, the two-way
   EST.1RM/TOP SET and SPLIT/MUSCLE toggles, tappable lift rows, and the Body tab's
   goal/DEXA cards. All colors are tokens (see css/workout.css :root/:root[data-theme]),
   never hex - so light/dark/notebook all render correctly with no per-theme rules here. */

.prog-subtabs{display:flex;gap:6px;margin-bottom:14px}
.prog-subtab-btn{flex:1;background:var(--s1);border:1px solid var(--b1);border-radius:999px;color:var(--mut);font-family:var(--font-ui);font-size:.78rem;font-weight:600;padding:9px 4px;cursor:pointer;transition:all .18s;text-align:center}
.prog-subtab-btn.active{background:var(--acc);border-color:var(--acc);color:var(--acc-text)}

.prog-sel{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.prog-sel select{background:var(--s1);border:1px solid var(--b1);border-radius:var(--rsm);color:var(--txt);font-family:var(--font-ui);font-size:.85rem;padding:9px 12px;outline:none;-webkit-appearance:none;appearance:none;width:100%}
.prog-sel select:focus{border-color:var(--acc)}

.prog-pane{min-width:0}

.prog-card-hdr{display:flex;align-items:baseline;justify-content:space-between;gap:8px}

.prog-chips{display:flex;gap:4px;flex:none}
.prog-chip{background:var(--s2);border:1px solid transparent;border-radius:999px;color:var(--mut);font-family:var(--font-num);font-size:.68rem;font-weight:600;padding:3px 9px;cursor:pointer}
.prog-chip.active{background:var(--acc);color:var(--acc-text);font-weight:700}

.prog-toggle{display:inline-flex;background:var(--s2);border-radius:999px;padding:2px;margin-top:10px;gap:2px}
.prog-toggle-btn{border:none;background:transparent;border-radius:999px;color:var(--mut);font-family:var(--font-num);font-size:.68rem;font-weight:600;padding:5px 10px;cursor:pointer}
.prog-toggle-btn.active{background:var(--acc);color:var(--acc-text);font-weight:700}

.prog-stat-row{display:flex;align-items:baseline;gap:8px;margin-top:6px}
.prog-headline{font-family:var(--font-num);font-size:1.55rem;font-weight:650}
.prog-headline-unit{font-size:.78rem;color:var(--mut);font-weight:500}
.prog-delta-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-family:var(--font-num);font-size:.68rem;font-weight:700;background:color-mix(in srgb, var(--mut) 12%, transparent);color:var(--mut)}
.prog-delta-pill.gu{background:color-mix(in srgb, var(--grn) 16%, transparent);color:var(--grn)}
.prog-delta-pill.gd{background:color-mix(in srgb, var(--red) 16%, transparent);color:var(--red)}

.prog-lift-row{display:flex;align-items:center;gap:10px;min-height:48px;border-bottom:1px solid var(--b1);cursor:pointer}
.prog-lift-row:last-child{border-bottom:none}
.prog-lift-name{flex:1;font-size:.82rem;font-weight:600}
.prog-lift-nums{font-family:var(--font-num);font-size:.7rem;color:var(--mut)}
.prog-lift-last{font-family:var(--font-num);font-size:.92rem;font-weight:650}
.prog-lift-chevron{color:var(--mut);font-size:.95rem}
.prog-vol-note{font-size:.72rem;font-style:italic;color:var(--pencil);margin-top:2px}

.prog-bar-row{display:flex;align-items:center;gap:8px;margin-top:8px;cursor:pointer}
.prog-bar-row:first-child{margin-top:0}
.prog-bar-label{width:70px;flex:none;font-family:var(--font-num);font-size:.6rem;font-weight:600;color:var(--mut)}
.prog-bar-track{flex:1;height:9px;border-radius:999px;background:var(--s3);overflow:hidden}
.prog-bar-fill{height:100%;background:var(--acc);border-radius:999px}
.prog-bar-fill.warn{background:var(--org)}
.prog-bar-val{font-family:var(--font-num);font-size:.68rem;font-weight:600;color:var(--mut2);min-width:40px;text-align:right}
.prog-bar-val.warn{color:var(--org)}

.prog-target-note{font-size:.68rem;color:var(--mut);margin-top:6px}
.prog-coach-note{font-size:.72rem;font-style:italic;color:var(--pencil);margin-top:10px}

.prog-goal-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--b1);margin-top:10px;padding-top:10px;gap:10px}
.prog-goal-kicker{font-size:.6rem;font-weight:700;letter-spacing:.08em;color:var(--mut)}
.prog-goal-val{font-size:.85rem;font-weight:650;margin-top:2px}
.prog-goal-sub{font-size:.7rem;color:var(--mut);margin-top:1px}
.prog-goal-notsetup{font-size:.78rem;color:var(--mut)}
.prog-body-source{font-size:.7rem;color:var(--mut);margin-top:8px}

.prog-btn-sm{background:var(--s2);border:1px solid var(--b1);border-radius:9px;color:var(--mut2);font-family:var(--font-ui);font-size:.72rem;font-weight:600;padding:7px 11px;cursor:pointer;white-space:nowrap}
.prog-btn-sm.accent{background:color-mix(in srgb, var(--acc) 10%, transparent);border-color:color-mix(in srgb, var(--acc) 35%, transparent);color:var(--acc)}

.prog-dexa-stats{display:flex;gap:14px;margin-top:12px}
.prog-dexa-stat{flex:1}
.prog-dexa-v{font-family:var(--font-num);font-size:1.05rem;font-weight:650}
.prog-dexa-l{font-size:.62rem;color:var(--mut);margin-top:2px}
.prog-dexa-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;margin-top:10px;background:var(--s3)}
.prog-dexa-bar-lean{background:var(--acc)}

.prog-empty-dashed{border:1.5px dashed var(--b2);border-radius:var(--r);padding:28px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.prog-empty-dashed h3{font-size:.9rem;font-weight:650;color:var(--mut2)}
.prog-empty-dashed p{font-size:.78rem;color:var(--mut);max-width:270px}

/* ── Design pass 2026-08-30 (spec 29) ──────────────────────────────────────────
   Range chips + All/Upper/Lower filter row, the est.1RM tag, muscle-group volume
   bars with tap-to-expand drilldown, and the sets-per-week-vs-target card. Reuses the
   shipped --hue-*/--badge-l/--badge-c badge tokens inline for muscle colors (no new
   tokens); every color here is a token so light/dark/notebook all resolve on their own. */
.prog-range-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.prog-side{display:flex;margin-left:auto;background:var(--s2);border:1px solid var(--b1);border-radius:999px;padding:2px}
.prog-side-opt{font-family:var(--font-ui);font-size:.68rem;font-weight:600;color:var(--mut);border-radius:999px;padding:4px 10px;cursor:pointer}
.prog-side-opt.on{background:var(--s3);color:var(--txt)}

.prog-est{font-family:var(--font-num);font-size:.56rem;font-weight:600;letter-spacing:.05em;color:var(--mut);background:var(--s2);border-radius:4px;padding:2px 5px;margin-left:5px;vertical-align:middle;white-space:nowrap}
.prog-chart-foot{font-size:.68rem;color:var(--mut);margin-top:6px}
.prog-sparse-note{font-size:.8rem;color:var(--mut);text-align:center;padding:26px 8px}

/* Volume-by-muscle-group bars + inline exercise drilldown (spec 29.8) */
.prog-mg-row{display:grid;grid-template-columns:64px 1fr 50px;gap:10px;align-items:center;min-height:34px;cursor:pointer}
.prog-mg-label{font-family:var(--font-num);font-size:.6rem;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.prog-mg-track{height:16px;border-radius:5px;background:var(--s2);overflow:hidden}
.prog-mg-fill{height:100%;border-radius:5px}
.prog-mg-val{font-family:var(--font-num);font-size:.7rem;font-weight:600;color:var(--mut2);text-align:right}
.prog-mg-sub{margin:2px 0 8px 12px;border-left:2px solid color-mix(in srgb, var(--acc) 40%, transparent);padding-left:12px}
.prog-mg-exrow{display:flex;align-items:center;gap:8px;padding:9px 2px;font-size:.82rem;border-top:1px solid var(--b1);cursor:pointer}
.prog-mg-exrow:first-child{border-top:none}
.prog-mg-exrow.on{color:var(--acc)}
.prog-ex-n{margin-left:auto;font-family:var(--font-num);font-size:.72rem;color:var(--mut2)}

/* Sets-per-week-per-muscle vs target (AC-5 / verdict N-10): bar + target tick */
.prog-mvt-row{display:grid;grid-template-columns:64px 1fr 54px;gap:10px;align-items:center;min-height:30px;margin-top:8px}
.prog-mvt-row:first-of-type{margin-top:0}
.prog-mvt-label{font-family:var(--font-num);font-size:.6rem;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.prog-mvt-track{position:relative;height:16px;border-radius:5px;background:var(--s2);overflow:hidden}
.prog-mvt-fill{height:100%;border-radius:5px}
.prog-mvt-tick{position:absolute;top:0;bottom:0;width:2px;background:var(--txt)}
.prog-mvt-val{font-family:var(--font-num);font-size:.7rem;font-weight:600;color:var(--mut2);text-align:right}
.prog-mvt-val.warn{color:var(--org)}
