/* == workout.log - Home screen (WS1) =======================================
   Batch A pre-allocation (2026-08-13). Owned by the WS1 package only.
   Loads after css/workout.css + css/motion.css, so rules here win ties at equal
   specificity. Every value must come from tokens (var(--...)) - zero hard-coded
   colors. Not part of the tests/helpers/read-workout-src.js reconstruction (see
   that helper's header: CSS that did not exist pre-split is excluded so old
   assertions written against the pre-split stylesheet cannot stray-match new
   rules).

   Values below are lifted from design-handoff/workout-redesign-v2/design_handoff_workout_tracker/
   design-source/CoachHome.dc.html (exact px/radii/weights) mapped onto this app's
   live token names per the WS1 kickoff's mapping table (bg/s1/s2/s3/b1/b2/ac/acT/
   ok/warn/dgr/t1/t2/t3/pencil -> var(--bg/--s1/--s2/--s3/--b1/--b2/--acc/--acc-text/
   --grn/--org/--red/--txt/--mut2/--mut/--pencil)). */

/* ── Generic card + kicker (THIS WEEK / LAST SESSION / RECENT SESSIONS...) ── */
.wl-dash-strip{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.wl-card{background:var(--s1);border:1px solid var(--b1);border-radius:16px;padding:14px 16px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.wl-kicker{font-size:10px;font-weight:600;letter-spacing:.09em;color:var(--mut);text-transform:uppercase;font-family:var(--font-num)}
.wl-empty{font-size:.8rem;color:var(--mut);padding:6px 0}

/* ── THIS WEEK ── */
.wl-week-body{display:flex;align-items:center;gap:16px;margin-top:10px}
.wl-week-ring{flex:none;position:relative;width:76px;height:76px}
.wl-week-ring-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:650 16px var(--font-num);color:var(--txt)}
.wl-week-stats{flex:1;display:flex}
.wl-stat{flex:1}
.wl-stat-v{font:650 16px var(--font-num);color:var(--txt);line-height:1.1}
.wl-stat-l{font-size:10.5px;color:var(--mut);margin-top:2px}

/* ── LAST SESSION ── */
.wl-last-row{display:flex;align-items:baseline;justify-content:space-between;margin-top:6px;gap:8px}
.wl-last-title{font-size:15px;font-weight:650;color:var(--txt);font-family:var(--font-heading);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wl-last-days{font-size:12px;color:var(--mut);flex:none}
.wl-last-nums{font:500 13px var(--font-num);color:var(--mut2);margin-top:4px}
.wl-unit{font-size:11px;color:var(--mut)}
.wl-last-verdict{font:600 12px var(--font-num);margin-top:6px}

/* ── RESUME CHIP (Home only, docked above Continue Program) ──
   D6 (FLOW-UPDATE "Entry point", design-source/CoachHome.dc.html sessionLive
   state): ONE full-width tap target (was two sibling buttons pre-D6 - AUDIT
   BLOCKER 1's fix wrapped Discard alongside Continue in a row; D6 supersedes
   that shape entirely per the updated screenshot 02-home-in-session.png).
   Tap anywhere on the card resumes; the End pill on the right, after a 1px
   divider, opens the Discard sheet (its own onclick stops propagation so the
   card's resumeWip() never fires alongside it - js/workout/home.js). Live dot
   pulses via the shared .wl-live-dot keyframe (css/motion.css). */
.wl-resume-chip{
  width:100%;margin:0 0 12px;background:var(--acc);color:var(--acc-text);
  border:none;border-radius:14px;padding:10px 12px 10px 14px;display:flex;align-items:center;gap:10px;
  box-shadow:0 4px 14px color-mix(in srgb, var(--acc) 40%, transparent);
  font-family:var(--font-ui);cursor:pointer;text-align:left;
}
.wl-resume-dot{width:8px;height:8px;border-radius:999px;background:var(--acc-text);flex:none}
.wl-resume-text{flex:1;min-width:0}
.wl-resume-title{display:block;font-size:13px;font-weight:700}
.wl-resume-sub{display:block;font-size:11px;opacity:.85;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wl-resume-divider{flex:none;width:1px;align-self:stretch;background:color-mix(in srgb, var(--acc-text) 30%, transparent)}
.wl-resume-end{
  flex:none;height:34px;padding:0 14px;border-radius:999px;background:var(--acc-text);color:var(--acc);
  border:none;display:flex;align-items:center;font-size:12.5px;font-weight:700;font-family:var(--font-ui);
  cursor:pointer;
}

/* ── CONTINUE PROGRAM banner ── */
.wl-continue-banner{
  display:block;width:100%;border:1px solid var(--acc);border-radius:14px;padding:12px 16px;
  text-align:center;background:color-mix(in srgb, var(--acc) 4%, transparent);
  cursor:pointer;font-family:var(--font-ui);margin-bottom:12px;
}
.wl-continue-line{font-size:14px;font-weight:650;color:var(--acc);margin-top:4px;font-family:var(--font-heading)}

/* brandon phone-test round (C2 screen 20): coach note card. COMPONENTS.md "Coach
   note card": wl-card with accent-tinted border (35% mix), 26px avatar, italic note
   body. Sits between THIS WEEK and CONTINUE PROGRAM (renderCoachNoteCard, home.js). */
.wl-coachnote-card{border-color:color-mix(in srgb, var(--acc) 35%, var(--b1));margin-bottom:12px}
.wl-coachnote-hdr{display:flex;align-items:center;gap:8px}
.wl-coachnote-av{width:26px;height:26px;border-radius:999px;background:var(--acc);color:var(--acc-text);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none}
.wl-coachnote-title{font-size:13px;font-weight:700;font-family:var(--font-heading)}
.wl-coachnote-body{font-size:12.5px;font-style:italic;line-height:1.5;color:var(--mut2);margin-top:6px}

/* ── RECENT SESSIONS ── */
.wl-recent-hdr{display:flex;align-items:baseline;justify-content:space-between;margin:4px 0 4px}
.wl-recent-title{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--mut);text-transform:uppercase;font-family:var(--font-num)}
.wl-recent-meta{font-size:11px;color:var(--mut)}

.wl-sess-card{
  display:flex;background:var(--s1);border:1px solid var(--b1);border-radius:16px;overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.05),0 6px 18px rgba(0,0,0,.07);margin-bottom:10px;cursor:pointer;
}
.wl-sess-edge{width:5px;flex:none}
.wl-sess-body{flex:1;min-width:0;padding:13px 14px}
.wl-sess-toprow{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.wl-sess-title{font-size:14.5px;font-weight:650;color:var(--txt);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-heading)}
.wl-sess-date{font:500 11px var(--font-num);color:var(--mut);white-space:nowrap}
.wl-sess-numrow{display:flex;align-items:center;gap:10px;margin-top:6px}
.wl-sess-vol{font:500 12px var(--font-num);color:var(--mut2)}
/* AUDIT LOW 10: named-baseline phrase is primary, the delta pill is a
   secondary accent alongside it (SPEC "Copy rule" - no bare arrow alone). */
.wl-sess-cmprow{display:flex;align-items:center;gap:8px;margin-top:4px}
.wl-sess-cmp-txt{font-size:11.5px;color:var(--mut);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wl-sess-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}

/* ── CELEBRATE OVERLAY (one-time, on return Home after a session completes) ──
   SPEC R2 "Home celebration" + R3 + post-workout hierarchy: Celebrate is the
   TL;DR of Complete/Stats - headline volume delta + outcome phrase/pill per
   exercise, nothing here that isn't also on Complete/Stats. */
.wl-celebrate-backdrop{
  position:fixed;inset:0;z-index:480;background:rgba(10,12,16,.5);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:28px;
}
.wl-celebrate-sheet{
  background:var(--s1);border-radius:22px;padding:26px 22px;width:100%;max-width:340px;text-align:center;
  box-shadow:0 2px 4px rgba(0,0,0,.1),0 24px 60px rgba(0,0,0,.3);
}
.wl-cel-ring{display:block;margin:0 auto}
.wl-cel-title{font-size:19px;font-weight:700;margin-top:14px;color:var(--txt);font-family:var(--font-heading)}
.wl-cel-summary-row{
  display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:var(--mut2);
  margin-top:6px;cursor:pointer;min-height:32px;font-family:var(--font-ui);
}
.wl-cel-nums{font:600 12.5px var(--font-num);color:var(--mut2);margin-top:4px}
.wl-cel-stats{display:flex;flex-direction:column;gap:6px;margin-top:10px;text-align:left}
.wl-cel-ex{background:var(--s2);border-radius:10px;padding:9px 12px}
.wl-cel-ex-top{display:flex;align-items:center;gap:7px}
.wl-cel-ex-name{font-size:12.5px;font-weight:650;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt)}
.wl-cel-ex-sub{font-size:11.5px;color:var(--mut2);margin-top:2px}
.wl-cel-fullstats{font-size:12.5px;font-weight:700;color:var(--acc);margin-top:10px;min-height:28px;display:flex;align-items:center;justify-content:center}
.wl-cel-upnext{background:var(--s2);border-radius:12px;padding:11px 14px;margin-top:16px;text-align:left}
.wl-cel-upnext-line{font-size:13.5px;font-weight:650;margin-top:3px;color:var(--txt)}
.wl-cel-upnext-day{font-weight:500;color:var(--mut)}
.wl-cel-finish{
  width:100%;height:50px;border-radius:12px;background:var(--acc);color:var(--acc-text);border:none;
  display:flex;align-items:center;justify-content:center;font-size:14.5px;font-weight:700;margin-top:14px;
  cursor:pointer;font-family:var(--font-ui);
}

@media(min-width:700px){
  .wl-dash-strip{flex-direction:row}
}
