body {
  min-height: 100dvh;
  overscroll-behavior-y: none;
}

button { touch-action: manipulation; }

.app-shell {
  min-height: 100dvh;
  padding-bottom: calc(108px + env(safe-area-inset-bottom));
}

.topbar {
  min-height: 78px;
  padding-bottom: 14px;
  align-items: center;
}

.topbar .avatar {
  grid-row: 1;
}

.page-intro {
  padding-top: 22px;
}

.calendar-controls {
  display: grid;
  grid-template-columns: 46px 1fr auto 46px;
  align-items: stretch;
  min-height: 52px;
  margin-top: 14px;
  background: #000;
  border: 1px solid #fff;
}

.calendar-controls > button {
  display: grid;
  place-items: center;
  padding: 0 10px;
  border: 0;
  border-right: 1px solid #444;
  background: #000;
  font: 700 11px var(--display);
  text-transform: uppercase;
}

.calendar-controls > button:last-child {
  border-right: 0;
  border-left: 1px solid #444;
}

.calendar-controls > button:first-child .icon { transform: rotate(180deg); }

.calendar-controls label {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 0 8px;
}

.calendar-controls label span {
  max-width: 100%;
  overflow: hidden;
  font: 700 14px var(--display);
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.calendar-controls input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  opacity: 0;
}

.calendar-controls [data-current-week] {
  color: var(--red);
  white-space: nowrap;
}

.bottom-nav {
  z-index: 40;
  height: calc(76px + env(safe-area-inset-bottom));
  min-height: 0;
  padding-bottom: env(safe-area-inset-bottom);
  box-shadow: 0 -8px 24px rgba(0, 0, 0, .3);
}

.modal-backdrop {
  z-index: 60;
  overscroll-behavior: contain;
}

.picker-sheet,
.form-sheet,
.profile-sheet {
  max-height: 94dvh;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.profile-sheet {
  display: flex;
  flex-direction: column;
  height: 94dvh;
  overflow: hidden;
}

.profile-scroll {
  min-height: 0;
  padding-bottom: max(22px, env(safe-area-inset-bottom));
  overflow: auto;
  overscroll-behavior: contain;
}

.sheet-header {
  position: sticky;
  z-index: 4;
  top: 0;
  flex: 0 0 auto;
  background: #080808;
}

.rpe-help {
  margin: 16px 0 0;
  padding: 12px 14px;
  border: 1px solid #555;
  background: #111;
  color: #aaa;
  font-size: 11px;
  line-height: 1.55;
}

.rpe-help summary { cursor: pointer; color: #fff; font-weight: 800; text-transform: uppercase; }
.rpe-help p:last-child { margin-bottom: 0; }

.day-note,
.exercise-note,
.unspecified-plan {
  color: #aaa;
  font-size: 12px;
  line-height: 1.5;
}

.day-note {
  margin: 0 0 16px;
  padding: 10px 12px;
  border-left: 3px solid var(--red);
  background: #151515;
}

.set-display-list {
  display: grid;
  gap: 1px;
  margin: 14px 0 0;
  padding: 0;
  border: 1px solid #444;
  background: #444;
  list-style: none;
}

.set-display-list li {
  display: grid;
  grid-template-columns: 48px minmax(105px,1fr) 76px;
  align-items: center;
  gap: 8px;
  min-height: 78px;
  padding: 10px;
  background: #0b0b0b;
}

.set-display-list li.complete { background: #171717; }
.set-display-list li.set-working { border-left: 3px solid var(--red); background: #190507; }
.set-display-list li.set-resting { border-left: 3px solid #fff; background: #151515; }

.set-display-list span { color: #888; font: 700 10px var(--display); text-transform: uppercase; }
.set-display-list strong { color: #fff; font: 800 20px var(--display); }
.set-display-list small { color: #aaa; font: 600 10px var(--display); text-transform: uppercase; }
.set-display-list b { color: #777; font: 500 16px var(--body); }
.set-display-list em { color: #ff7a7f; font-size: 10px; font-style: normal; }
.set-display-list li.raw { grid-template-columns: 48px minmax(105px,1fr) 76px; }
.set-display-list li.raw strong { font-size: 15px; }
.set-prescription { display: flex; align-items: baseline; gap: 5px; min-width: 0; }
.set-prescription > b { color: #fff; font: 900 24px/1 var(--display); }
.set-timer-button { display: flex; align-items: center; justify-content: center; gap: 4px; min-height: 44px; border: 1px solid #888; background: #000; font: 800 12px var(--display); text-transform: uppercase; }
.set-timer-button .icon { width: 15px; }
.set-timer-button.running { border-color: var(--red); background: var(--red); color: #fff; }
.set-timer-button.done { border-color: #555; color: #9bffad; }
.set-timer-button:disabled { opacity: 1; }
.set-times { grid-column: 2 / -1; display: grid; grid-template-columns: 1fr 1fr auto; gap: 6px; }
.set-times > span { display: flex; justify-content: space-between; align-items: center; padding: 6px 8px; border: 1px solid #333; background: #050505; }
.set-times > span.resting { border-color: #888; color: #fff; }
.set-times strong { font-size: 14px; }
.set-reset-button { min-width: 64px; border: 1px solid #8d171b; background: #180305; color: #ff777c; font: 800 10px var(--display); text-transform: uppercase; }
.plate-load { grid-column: 2 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 5px; min-width: 0; padding: 7px 8px; border: 1px solid #333; background: #050505; }
.plate-load-label { width: 100%; color: #aaa !important; font: 700 9px var(--display) !important; letter-spacing: .04em; }
.plate-chip { display: inline-flex; align-items: baseline; gap: 2px; min-height: 24px; padding: 4px 7px; border: 1px solid currentColor; border-radius: 999px; font: 800 12px var(--display) !important; line-height: 1; white-space: nowrap; }
.plate-chip b { color: inherit; font: inherit; }
.plate-bar { color: #fff !important; background: #252525; }
.plate-45,
.plate-20 { color: #69b7ff !important; background: #071a2c; }
.plate-15 { color: #ffe066 !important; background: #2a2404; }
.plate-25 { color: #66e39a !important; background: #062417; }
.plate-10 { color: #ff9b59 !important; background: #2c1203; }
.plate-5 { color: #d59aff !important; background: #210a31; }
.plate-2-5 { color: #66edf2 !important; background: #05272a; }
.plate-1-25 { color: #ff8fb8 !important; background: #300918; }
.plate-warning { color: #ff7479 !important; background: #300306; }
.exercise-note { margin: 10px 0 0; }
.exercise-head > div:first-child > p { margin: 3px 0 0; color: #888; font: 700 9px var(--display); text-transform: uppercase; }
.exercise-complete { border-left: 3px solid var(--red); padding-left: 9px; }

.exercise-timing-summary {
  grid-column: 2;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 7px;
  align-items: stretch;
  margin-top: 13px;
}
.exercise-live-row { grid-column: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 7px; }
.timer-readout,
.volume-readout { display: grid; align-content: center; padding: 8px 10px; border: 1px solid #444; background: #111; }
.timer-readout span,
.volume-readout span { color: #888; font: 700 9px var(--display); text-transform: uppercase; }
.timer-readout strong,
.volume-readout strong { margin-top: 3px; font: 800 20px var(--display); }
.volume-readout small { color: #999; font-size: 9px; }
.exercise-live-row > button,
.timer-button { min-height: 48px; padding: 0 11px; border: 1px solid #777; background: #000; font: 800 12px var(--display); text-transform: uppercase; }
.exercise-live-row > button { display: flex; align-items: center; justify-content: center; gap: 5px; }
.exercise-live-row > button .icon { width: 16px; }
.exercise-live-row > .reset-timing-button { grid-column: 1 / -1; min-height: 40px; border-color: #8d171b; color: #ff777c; background: #180305; }
.timer-button.running { border-color: var(--red); color: #ff6368; }

.day-dashboard { margin: 10px 0 6px; padding: 0 12px 12px; border: 1px solid #555; background: #101010; }
.day-dashboard > summary { margin:0 -12px; padding:13px 12px; cursor:pointer; font:800 12px var(--display); text-transform:uppercase; }
.day-dashboard[open] > summary { margin-bottom:10px; border-bottom:1px solid #333; }
.day-timing-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.day-kpis { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: 8px; background: #444; }
.day-kpis span { display: grid; padding: 10px; background: #080808; }
.day-kpis small { color: #888; font: 700 9px var(--display); text-transform: uppercase; }
.day-kpis strong { margin-top: 3px; font: 800 18px var(--display); }
.day-reset-button { width: 100%; min-height: 42px; margin-top: 8px; border: 1px solid #8d171b; background: #180305; color: #ff777c; font: 800 11px var(--display); text-transform: uppercase; }
.start-workout-action { width: 100%; min-height: 78px; margin: 16px 0 0; padding: 12px 14px; border: 2px solid #fff; background: var(--red); display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 12px; text-align: left; text-transform: uppercase; box-shadow: 7px 7px 0 #300003; }
.start-workout-action .icon { width: 28px; height: 28px; }
.start-workout-action span { display: grid; gap: 3px; }
.start-workout-action small { color: #ffd4d5; font: 700 9px var(--display); letter-spacing: .06em; }
.start-workout-action strong { font: 800 22px var(--display); }
.start-workout-action > b { padding: 6px 8px; background: #000; font: 800 11px var(--display); white-space: nowrap; }

.workout-focus { position: fixed; z-index: 50; inset: 0; min-height: 100dvh; overflow: auto; overscroll-behavior: contain; background: #050505; color: #fff; }
.workout-focus > header { position: sticky; z-index: 2; top: 0; min-height: calc(68px + env(safe-area-inset-top)); padding: max(14px,env(safe-area-inset-top)) 18px 12px; border-bottom: 1px solid #555; background: #050505; display: flex; align-items: center; justify-content: space-between; }
.workout-focus > header > div { font: 800 22px var(--display); letter-spacing: .03em; }
.workout-focus > header > div span { display: inline-grid; place-items: center; margin-right: 4px; padding: 3px 6px; background: #fff; color: #000; }
.workout-focus > header button { min-height: 40px; padding: 0 12px; border: 1px solid #777; background: #111; color: #bbb; font: 800 11px var(--display); text-transform: uppercase; }
.workout-focus > main { width: min(100%,620px); min-height: calc(100dvh - 70px); margin: auto; padding: 20px 20px calc(30px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; }
.focus-progress > div { display: flex; justify-content: space-between; color: #aaa; font: 800 11px var(--display); text-transform: uppercase; }
.focus-progress i { display: block; height: 5px; margin-top: 8px; overflow: hidden; background: #333; }
.focus-progress i::before { content: ''; display: block; width: var(--progress); height: 100%; background: var(--red); }
.focus-exercise-label { display: flex; justify-content: space-between; margin-top: 27px; color: #ff6e73; font: 800 11px var(--display); letter-spacing: .05em; text-transform: uppercase; }
.focus-exercise-label b { color: #aaa; }
.focus-title-row { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.focus-title-row > div { min-width: 0; }
.focus-title-row button { flex: 0 0 auto; min-height: 38px; margin-bottom: 2px; padding: 0 10px; border: 1px solid #777; background: #111; color: #fff; display: flex; align-items: center; gap: 5px; font: 800 10px var(--display); text-transform: uppercase; }
.focus-title-row button .icon { width: 15px; }
.workout-focus h1 { margin: 7px 0 0; font: 800 clamp(42px,12vw,74px)/.88 var(--display); text-transform: uppercase; }
.focus-set-label { margin: 10px 0 0; color: #aaa; font: 800 13px var(--display); text-transform: uppercase; }
.focus-prescription { display: grid; grid-template-columns: auto auto auto auto auto; align-items: end; justify-content: start; gap: 8px; margin: 28px 0 22px; }
.focus-prescription strong { font: 800 clamp(74px,23vw,126px)/.72 var(--display); }
.focus-prescription span { padding-bottom: 4px; color: #aaa; font: 800 12px var(--display); text-transform: uppercase; }
.focus-prescription b { padding: 0 7px 2px; color: #fff; font: 900 clamp(46px,13vw,70px)/.78 var(--display); }
.focus-raw-set { margin: 28px 0 22px; padding: 22px; border: 1px solid #777; font: 800 30px var(--display); text-transform: uppercase; }
.workout-focus .plate-load { grid-column: auto; margin-bottom: 18px; padding: 12px; }
.workout-focus .plate-load-label { margin-bottom: 3px; }
.workout-focus .plate-chip { min-height: 30px; padding: 6px 9px; font-size: 14px !important; }
.focus-note { margin: 0 0 18px; padding: 10px 12px; border-left: 3px solid var(--red); background: #151515; color: #bbb; font-size: 12px; line-height: 1.5; }
.focus-context { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 0 0 9px; }
.focus-context-card { display: grid; align-content: center; min-height: 66px; padding: 9px 10px; border: 1px solid #444; background: #101010; }
.focus-context-card.history-link { position:relative; width:100%; color:#fff; text-align:left; cursor:pointer; }
.focus-context-card.history-link:active { border-color:#ff7378; background:#1d0709; }
.focus-context-card.history-link em { position:absolute; right:9px; top:8px; color:#ff7378; font:800 8px var(--display); font-style:normal; letter-spacing:.03em; text-transform:uppercase; }
.focus-context-card.comparison { order: -1; }
.focus-context-card span { color: #ff7378; font: 800 9px var(--display); letter-spacing: .04em; text-transform: uppercase; }
.focus-context-card strong { margin-top: 3px; overflow: hidden; font: 800 17px var(--display); text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.focus-context-card small { margin-top: 2px; overflow: hidden; color: #999; font: 600 9px var(--body); text-overflow: ellipsis; white-space: nowrap; }
.focus-timers { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: auto; }
.focus-timers > div { display: grid; min-height: 92px; padding: 13px; border: 1px solid #555; background: #0e0e0e; }
.focus-timers span { color: #888; font: 800 10px var(--display); text-transform: uppercase; }
.focus-timers strong { align-self: end; font: 800 34px var(--display); }
.focus-timers > div.active { border-color: var(--red); background: #220306; }
.focus-timers > div.active strong { color: #ff6f74; }
.focus-timers > div.active.rest { border-color: #ffe066; background: #201b03; }
.focus-timers > div.active.rest strong { color: #ffe066; }
.focus-primary { width: 100%; min-height: 68px; margin-top: 10px; border: 2px solid #fff; background: var(--red); color: #fff; display: flex; align-items: center; justify-content: center; gap: 8px; font: 800 22px var(--display); letter-spacing: .04em; text-transform: uppercase; }
.focus-primary .icon { width: 24px; }
.focus-primary.working { background: #0d7d3d; }
.focus-reset { width: 100%; min-height: 42px; margin-top: 7px; border: 1px solid #6f2023; background: #190305; color: #ff777c; font: 800 11px var(--display); text-transform: uppercase; }
.focus-day-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 10px; border: 1px solid #333; background: #333; }
.focus-day-stats span { display: grid; padding: 9px 12px; background: #0b0b0b; }
.focus-day-stats small { color: #777; font: 800 9px var(--display); text-transform: uppercase; }
.focus-day-stats strong { margin-top: 3px; font: 800 17px var(--display); }
.workout-finished { background: var(--red); }
.workout-finished > header { background: var(--red); border-color: rgba(255,255,255,.7); }
.workout-finished > main { justify-content: center; text-align: center; }
.workout-finished main > p { margin: 0; font: 800 13px var(--display); letter-spacing: .08em; text-transform: uppercase; }
.workout-finished h1 { margin: 10px 0 30px; }
.focus-finish-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: #444; }
.focus-finish-stats .timer-readout { min-height: 84px; background: #080808; text-align: left; }
.focus-volume { display: grid; margin: 1px 0 18px; padding: 18px; background: #000; font: 800 42px var(--display); }
.focus-volume small { font-size: 15px; }
.focus-volume span { color: #aaa; font: 800 10px var(--display); text-transform: uppercase; }
.focus-secondary { width: 100%; min-height: 52px; margin-top: 8px; border: 1px solid #fff; background: #000; font: 800 15px var(--display); text-transform: uppercase; }
.set-complete-flash { position: fixed; z-index: 6; top: calc(74px + env(safe-area-inset-top)); left: 50%; width: min(calc(100% - 36px),430px); padding: 12px; border: 2px solid #fff; background: #0d7d3d; box-shadow: 7px 7px 0 #002a14; font: 900 18px var(--display); letter-spacing: .05em; text-align: center; text-transform: uppercase; transform: translateX(-50%); animation: setCompleteFlash .72s ease both; }
.workout-focus.is-advancing > main { animation: nextSetSlide .55s cubic-bezier(.2,.8,.2,1) both; }
@keyframes nextSetSlide { from { opacity: .25; transform: translateX(38px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes setCompleteFlash { 0% { opacity: 0; transform: translate(-50%,-18px) scale(.94); } 22%,72% { opacity: 1; transform: translate(-50%,0) scale(1); } 100% { opacity: 0; transform: translate(-50%,-8px) scale(.98); } }
.focus-set-edit .two-fields { margin-top: 18px; }
.focus-set-edit input { font: 800 27px var(--display); }
.reset-timing-copy { padding: 24px 0 8px; }
.reset-timing-copy strong { font: 800 24px var(--display); text-transform: uppercase; }
.reset-timing-copy p { color: #bbb; line-height: 1.55; }
.day-tools { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin-top: 9px; }
.day-tools button,
.saved-workouts-wide { min-height: 46px; border: 1px solid #777; background: #101010; font: 800 12px var(--display); text-transform: uppercase; }

.calendar-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 12px; padding: 14px 0; }
.calendar-toolbar > div { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #000; }
.calendar-toolbar button { min-width: 82px; height: 44px; border: 0; background: transparent; color: #310003; font: 800 14px var(--display); text-transform: uppercase; }
.calendar-toolbar button.active { background: #000; color: #fff; }
.calendar-toolbar label { display: grid; gap: 4px; color: #390003; font: 700 9px var(--display); text-transform: uppercase; }
.calendar-toolbar select { height: 44px; border: 1px solid #000; border-radius: 0; background: #fff; color: #000; padding: 0 9px; font: 700 13px var(--display); }
.month-controls { display: grid; grid-template-columns: 48px 1fr 48px; align-items: center; min-height: 52px; border: 1px solid #fff; background: #000; }
.month-controls button { display: grid; place-items: center; height: 100%; border: 0; background: #000; }
.month-controls button:first-child .icon { transform: rotate(180deg); }
.month-controls strong { text-align: center; font: 800 17px var(--display); text-transform: uppercase; }
.period-analytics { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 14px 0; border: 1px solid #444; background: #444; }
.period-analytics > div { display: grid; align-content: center; min-height: 70px; padding: 10px; background: #0b0b0b; }
.period-analytics span { color: #888; font: 700 9px var(--display); text-transform: uppercase; }
.period-analytics strong { margin-top: 5px; font: 800 21px var(--display); }
.period-analytics strong small { color: #999; font-size: 10px; }
.period-analytics .muscle-volume { grid-column: 1/-1; min-height: 0; }
.muscle-volume p { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.muscle-volume b { padding: 6px 8px; background: #222; font: 700 12px var(--display); text-transform: uppercase; }
.muscle-volume b small { margin-left: 5px; color: #ff767b; }
.month-tip { margin: 0 -18px; padding: 9px 18px; background: #250002; color: #ffb9bb; font-size: 10px; text-align: center; }
.month-calendar { margin: 0 -18px; background: #000; }
.month-weekdays,
.month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.month-weekdays span { padding: 8px 2px; color: #999; font: 700 10px var(--display); text-align: center; text-transform: uppercase; }
.month-day { position: relative; min-width: 0; min-height: 76px; padding: 7px 4px; overflow: hidden; border: 0; border-top: 1px solid #333; border-right: 1px solid #333; background: #070707; text-align: left; }
.month-day:nth-child(7n) { border-right: 0; }
.month-day.outside { opacity: .35; }
.month-day.has-training { background: #210002; box-shadow: inset 0 3px 0 var(--red); }
.month-day.selected { outline: 2px solid #fff; outline-offset: -2px; }
.month-day time { display: block; font: 800 17px var(--display); }
.month-day > span { display: block; margin-top: 5px; color: #ff777c; font: 700 9px var(--display); text-transform: uppercase; }
.month-day > small { display: none; color: #bbb; font-size: 8px; line-height: 1.25; }
.saved-workouts-wide { width: 100%; margin-top: 14px; background: #000; }
.weekly-plan .plan-day-row { grid-template-columns: 52px 1fr auto 22px; }
.plan-day-row > b { color: #aaa; font: 700 12px var(--display); }
.plan-day-row.has-training { border-left: 4px solid var(--red); }

.training-analytics-section { margin: 22px -18px 0; padding: 22px 18px; background: #000; border-top: 8px solid var(--red); }
.training-analytics-section .section-title p,
.media-history .section-title p { margin: 0 0 3px; color: #888; font: 700 9px var(--display); text-transform: uppercase; }
.training-analytics-section > h3 { margin: 18px 0 5px; font: 800 16px var(--display); text-transform: uppercase; }

@media(max-height:760px) and (orientation:portrait) {
  .workout-focus > header { min-height: calc(58px + env(safe-area-inset-top)); padding-block: max(9px,env(safe-area-inset-top)) 8px; }
  .workout-focus > main { padding-top: 12px; padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
  .focus-exercise-label { margin-top: 14px; }
  .workout-focus h1 { font-size: clamp(34px,10vw,52px); }
  .focus-set-label { margin-top: 5px; }
  .focus-prescription { margin: 16px 0 13px; }
  .focus-prescription strong { font-size: clamp(58px,18vw,86px); }
  .workout-focus .plate-load { margin-bottom: 9px; padding: 8px; }
  .workout-focus .plate-chip { min-height: 25px; padding: 4px 7px; font-size: 12px !important; }
  .focus-context-card { min-height: 55px; padding-block: 6px; }
  .focus-timers > div { min-height: 68px; padding: 9px; }
  .focus-timers strong { font-size: 27px; }
  .focus-primary { min-height: 54px; font-size: 18px; }
  .focus-day-stats { margin-top: 6px; }
}

.template-list article { display: grid; grid-template-columns: 1fr 60px 45px; align-items: center; gap: 6px; min-height: 72px; border-bottom: 1px solid #444; }
.template-list article > div { display: grid; gap: 4px; }
.template-list strong { font: 800 18px var(--display); text-transform: uppercase; }
.template-list span { color: #999; font-size: 10px; }
.template-list button { height: 42px; border: 1px solid #666; background: #111; font: 800 12px var(--display); text-transform: uppercase; }
.template-list button:last-child { display: grid; place-items: center; color: #ff5d62; }
.template-list button:last-child .icon { width: 17px; }

.media-history { padding: 22px 0; border-bottom: 1px solid #555; }
.media-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.media-grid article { position: relative; min-width: 0; border: 1px solid #444; background: #0b0b0b; }
.media-grid img,
.media-grid video { display: block; width: 100%; aspect-ratio: 4/5; background: #000; object-fit: cover; }
.media-grid article > div { display: grid; gap: 3px; padding: 9px; }
.media-grid time { color: #999; font: 700 9px var(--display); text-transform: uppercase; }
.media-grid strong { overflow: hidden; font: 700 14px var(--display); text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.media-grid article > button { position: absolute; top: 6px; right: 6px; display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #fff; background: rgba(0,0,0,.8); color: #ff666b; }
.media-grid article > button .icon { width: 16px; }
.loading-vault { min-height: 100dvh; display: grid; place-content: center; justify-items: center; gap: 18px; background: var(--red); }
.loading-vault p { margin: 0; color: #350002; font: 800 14px var(--display); text-transform: uppercase; }

.derived-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 18px;
  border: 1px solid #444;
  background: #444;
}
.derived-summary > div { padding: 11px; background: #0b0b0b; }
.derived-summary span,
.derived-summary strong { display: block; }
.derived-summary span { color: #888; font: 700 9px var(--display); text-transform: uppercase; }
.derived-summary strong { margin-top: 4px; font: 800 19px var(--display); }
.derived-summary small { color: #999; font-size: 9px; }

.set-editor-field {
  min-width: 0;
  margin: 20px 0 0;
  padding: 0;
  border: 0;
}
.set-editor-field legend { padding: 0; font: 800 17px var(--display); text-transform: uppercase; }
.set-editor-field > p { margin: 4px 0 10px; color: #999; font-size: 10px; }
.set-editor { display: grid; gap: 8px; }
.set-editor-labels,
.set-editor-row {
  display: grid;
  grid-template-columns: 28px minmax(68px, .8fr) 18px minmax(86px, 1fr) 22px 40px;
  gap: 6px;
  align-items: end;
}
.set-editor-labels { align-items: center; color: #888; font: 700 9px var(--display); text-transform: uppercase; }
.set-editor-row { padding: 8px; border: 1px solid #444; background: #101010; }
.set-editor-row .set-index { align-self: center; color: #888; font: 800 14px var(--display); text-align: center; }
.set-editor-row label { display: grid; gap: 4px; margin: 0; color: #aaa; font: 700 9px var(--display); text-transform: uppercase; }
.set-editor-row input:not([type="hidden"]) { min-width: 0; height: 48px; padding: 8px; font: 800 21px var(--display); text-align: center; }
.set-editor-row > b,
.set-editor-row > em { align-self: center; font-style: normal; text-align: center; }
.set-editor-row > b { color: #fff; font: 900 26px/1 var(--display); }
.set-editor-row > em { color: #aaa; font: 700 10px var(--display); text-transform: uppercase; }
.set-editor-row > button { display: grid; place-items: center; width: 40px; height: 48px; padding: 0; border: 1px solid #666; background: transparent; color: #ff5d62; }
.set-editor-row > button .icon { width: 17px; }
.set-editor-row > small { grid-column: 2 / -1; color: #ff8d91; font-size: 9px; }
.set-editor-row > small.raw-set { color: #bbb; }
.add-set-row { width: 100%; min-height: 44px; margin-top: 9px; border: 1px dashed #888; background: #111; font: 800 13px var(--display); text-transform: uppercase; }
.alternate-flow-field small { color: #aaa; font: 500 11px/1.45 var(--body); text-transform: none; }

.training-max-section {
  margin: 24px -18px 0;
  padding: 24px 18px;
  background: #000;
  border-top: 8px solid var(--red);
  border-bottom: 1px solid #555;
}

.training-max-section .section-title > div > p {
  margin: 0 0 3px;
  color: #888;
  font: 700 10px var(--display);
  text-transform: uppercase;
}

.training-max-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 16px;
  background: #555;
  border: 1px solid #555;
}

.training-max-grid article { padding: 12px 9px; background: #0b0b0b; }
.training-max-grid span,
.training-max-grid strong { display: block; }
.training-max-grid span { min-height: 24px; color: #999; font: 700 10px var(--display); text-transform: uppercase; }
.training-max-grid strong { margin-top: 5px; font: 800 23px var(--display); }
.training-max-grid small { color: #888; font-size: 9px; }

.formula-guide {
  margin-top: 14px;
  border: 1px solid #555;
  background: #111;
}

.formula-guide summary { padding: 13px; cursor: pointer; font: 800 14px var(--display); text-transform: uppercase; }
.formula-guide > div { padding: 0 13px 10px; border-top: 1px solid #444; }
.formula-guide p { color: #bbb; font-size: 11px; line-height: 1.5; }
.formula-guide strong { color: #fff; }

.training-max-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 12px;
  margin: 20px 0 0;
  padding: 15px;
  border: 1px solid #666;
}

.training-max-fields legend { padding: 0 6px; font: 800 15px var(--display); text-transform: uppercase; }
.training-max-fields > p { grid-column: 1 / -1; margin: 0; color: #999; font-size: 10px; text-transform: none; }
.training-max-fields label { margin-top: 12px; }

.review-intro { color: #bbb; font-size: 12px; line-height: 1.55; }
.review-exercise { padding: 16px 0; border-top: 1px solid #555; }
.review-exercise > header { display: grid; grid-template-columns: 28px 1fr; gap: 8px; }
.review-exercise > header > span { font: 800 22px var(--display); }
.review-exercise > header > div { display: grid; }
.review-exercise > header strong { font: 800 20px var(--display); text-transform: uppercase; }
.review-exercise > header small { color: #888; font-size: 10px; }
.review-exercise .set-editor-field { margin-top: 14px; }
.review-exercise .set-editor-labels,
.review-exercise .set-editor-row { grid-template-columns: 25px minmax(62px, .8fr) 16px minmax(80px, 1fr) 20px 38px; }
.review-exercise .set-editor-row { padding: 7px; }
.review-exercise .set-editor-row > button { width: 38px; }
.review-exercise label > span { float: right; color: #888; font-size: 9px; }
.review-fields { display: grid; grid-template-columns: 110px 1fr; gap: 10px; }
.review-confirm { margin: 20px 0 0 !important; padding: 13px; border: 1px solid #777; background: #111; font-size: 11px !important; }

.tm-celebration > form {
  width: min(100%, 460px);
  max-height: 92dvh;
  overflow: auto;
  padding: 28px 20px;
  border: 3px solid #fff;
  background: var(--red);
  box-shadow: 12px 12px 0 #000;
  text-align: center;
}

.tm-celebration h2 { margin: 14px 0 6px; font: 800 45px/.9 var(--display); text-transform: uppercase; }
.tm-celebration > form > p { font: 700 16px var(--display); text-transform: uppercase; }
.tm-review { margin-top: 18px; padding: 15px; background: #000; text-align: left; }
.tm-review h3 { margin: 0; font: 800 21px var(--display); text-transform: uppercase; }
.tm-review > p { color: #bbb; font-size: 11px; line-height: 1.5; }
.tm-review label { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: center; padding: 11px 0; border-top: 1px solid #444; }
.tm-review label span { display: grid; }
.tm-review label b { font: 700 16px var(--display); text-transform: uppercase; }
.tm-review label small { color: #aaa; }
.tm-celebration > form > button { width: 100%; min-height: 50px; margin-top: 12px; border: 1px solid #fff; background: #000; font: 800 15px var(--display); text-transform: uppercase; }
.tm-celebration > form > button.keep-tm { background: transparent; }

.rpe-help strong,
.quick-guide strong { color: #fff; }

.quick-guide {
  margin: 18px 0;
  border: 1px solid #666;
  background: #111;
}

.quick-guide summary {
  padding: 15px;
  cursor: pointer;
  font: 700 17px var(--display);
  text-transform: uppercase;
}

.quick-guide div {
  padding: 0 15px 12px;
  border-top: 1px solid #444;
}

.quick-guide p {
  color: #ccc;
  font-size: 12px;
  line-height: 1.5;
}

.bodyweight-list { padding-bottom: 22px; }
.profile-sheet .two-fields { grid-template-columns: 1fr 1fr; }
.library-row.has-delete { grid-template-columns: 1fr 52px 52px; }
.library-row .delete-library-item { color: #ff5d62; }
.library-row .delete-library-item .icon { fill: none; }
.history-row { grid-template-columns: 65px 1fr auto 38px; }
.history-row > button {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid #666;
  background: transparent;
  color: #ff5d62;
}
.history-row > button .icon { width: 17px; }

.exercise-order-tools {
  grid-column: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 64px 72px;
  gap: 6px;
  margin-top: 10px;
}

.exercise-order-tools button {
  min-height: 44px;
  padding: 0 8px;
  border: 1px solid #555;
  background: #101010;
  color: #fff;
  font: 800 11px var(--display);
  text-transform: uppercase;
}

.exercise-order-tools button:disabled { opacity: .28; }
.exercise-drag-handle { justify-content: flex-start; padding-inline: 12px !important; touch-action: none; cursor: grab; }
.exercise-drag-handle b { margin-right: 7px; color: #ff6e73; font-size: 24px; line-height: 1; }
.scheduled-exercise.is-dragging { position: relative; z-index: 8; opacity: .72; background: #1c0506; box-shadow: 0 0 0 2px var(--red), 0 14px 35px #000; }
.exercise-reordering { user-select: none; }
.exercise-reordering .scheduled-exercise:not(.is-dragging) { transition: transform .12s ease; }

@media (max-width: 520px) {
  .calendar-controls { grid-template-columns: 42px 1fr 42px; }
  .calendar-controls [data-current-week] { display: none; }
  .calendar-controls label span { font-size: 13px; }
  .bottom-nav { height: calc(70px + env(safe-area-inset-bottom)); }
  .nav-item { font-size: 12px; }
  .profile-sheet {
    height: 100dvh;
    max-height: 100dvh;
    border-top: 0;
  }
  .sheet-header { padding-top: max(18px, env(safe-area-inset-top)); }
  .set-display-list li,
  .set-display-list li.raw { grid-template-columns: 42px minmax(100px,1fr) 72px; padding-inline: 7px; }
  .exercise-live-row { grid-template-columns: 1fr 1fr; }
  .exercise-live-row > button { min-height: 42px; }
  .day-tools { grid-template-columns: 1fr; }
  .period-analytics strong { font-size: 18px; }
  .weekly-plan .plan-day-row { grid-template-columns: 48px 1fr 22px; }
  .plan-day-row > b { display: none; }
  .training-max-grid { grid-template-columns: 1fr 1fr; }
  .training-max-fields { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 700px) {
  .set-display-list li,
  .set-display-list li.raw { grid-template-columns: 56px minmax(130px,220px) 86px minmax(260px,1fr); align-items: center; }
  .set-times { grid-column: 2 / 4; }
  .plate-load { grid-column: 4; grid-row: 1 / 3; align-self: stretch; align-content: center; }
  .plate-load-label { width: 100%; }
  .training-max-section { margin-inline: 0; }
  .training-analytics-section { margin-inline: 0; }
  .month-calendar { margin-inline: 0; }
}

@media (orientation: landscape) and (max-height: 600px) {
  .app-shell { width: min(100%,1180px); }
  .month-tip { display: none; }
  .month-day { min-height: 105px; padding: 8px; }
  .month-day > small { display: block; margin-top: 5px; }
  .month-day > span { margin-top: 3px; }
  .bottom-nav { height: calc(62px + env(safe-area-inset-bottom)); }
}

/* Wave 1: compact training, guided onboarding, and forecasting */
.topbar { grid-template-columns: 1fr 42px 42px; }
.topbar .help-button { grid-column:2; grid-row:1; }
.topbar .avatar { grid-column:3; grid-row:1; }
.help-button { display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.75); border-radius:50%; background:#000; color:#fff; font:900 18px var(--display); }
.compact-exercise-list { margin-top:12px; border-top:1px solid #4a4a4a; }
.compact-exercise { display:grid; grid-template-columns:42px minmax(0,1fr) 66px; align-items:stretch; min-height:68px; border-bottom:1px solid #3d3d3d; background:#080808; }
.compact-exercise.exercise-complete { border-left:3px solid #2fc76e; padding-left:0; background:#07150d; }
.compact-drag { width:42px; border:0; border-right:1px solid #333; background:transparent; color:#ff6e73; font:900 24px var(--display); touch-action:none; }
.compact-exercise-main { min-width:0; border:0; background:transparent; display:grid; grid-template-columns:30px minmax(0,1fr) 24px; align-items:center; gap:8px; padding:9px 8px; text-align:left; }
.compact-exercise-main > span:nth-child(2) { min-width:0; display:grid; gap:4px; }
.compact-exercise-main strong { overflow:hidden; font:800 18px var(--display); text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.compact-exercise-main small { overflow:hidden; color:#999; font-size:9px; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.compact-exercise-main .exercise-number { color:#888; font:800 14px var(--display); }
.compact-exercise-main .icon { width:17px; color:#777; }
.complete-check { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#2fc76e; color:#001e0c; font:900 15px var(--display); }
.compact-order { display:grid; grid-template-columns:1fr 1fr; border-left:1px solid #333; }
.compact-order button { border:0; border-left:1px solid #252525; background:#101010; color:#bbb; font:900 18px var(--display); }
.compact-order button:disabled { opacity:.2; }
.completed-toggle { width:100%; min-height:48px; padding:0 13px; border:0; border-bottom:1px solid #3d3d3d; background:#101010; display:flex; align-items:center; justify-content:space-between; font:800 13px var(--display); text-transform:uppercase; }
.completed-toggle b { color:#64de94; font-size:10px; }
.exercise-detail-sheet { max-height:94dvh; overflow:auto; }
.detail-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:16px 0; background:#444; }
.detail-summary span { display:grid; gap:4px; padding:10px; background:#0b0b0b; }
.detail-summary small { color:#888; font:700 9px var(--display); text-transform:uppercase; }
.detail-summary strong { font:800 18px var(--display); }
.detail-set-list { margin-top:0; }
.detail-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:14px; }
.detail-actions button { min-height:46px; border:1px solid #666; background:#111; display:flex; align-items:center; justify-content:center; gap:6px; font:800 11px var(--display); text-transform:uppercase; }
.detail-actions .history-action { grid-column:1/-1; border-color:#ff7378; background:#250306; color:#ff8589; }
.detail-actions .danger-action { color:#ff7479; }
.exercise-history-sheet { max-height:94dvh; overflow:auto; }
.exercise-history-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:16px 0 8px; border:1px solid #444; background:#444; }
.exercise-history-summary > span { display:grid; align-content:center; min-height:70px; padding:9px; background:#0b0b0b; }
.exercise-history-summary small { color:#888; font:700 8px var(--display); text-transform:uppercase; }
.exercise-history-summary strong { margin-top:4px; font:800 18px var(--display); text-transform:uppercase; }
.exercise-history-hint { margin:0 0 12px; color:#999; font-size:10px; }
.exercise-history-list { display:grid; gap:8px; }
.exercise-history-entry { border:1px solid #444; background:#0d0d0d; }
.exercise-history-entry[open] { border-color:#777; }
.exercise-history-entry > summary { min-height:72px; padding:11px 12px; display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; list-style:none; }
.exercise-history-entry > summary::-webkit-details-marker { display:none; }
.exercise-history-entry > summary div { min-width:0; display:grid; gap:3px; }
.exercise-history-entry > summary time { color:#ff7479; font:800 9px var(--display); text-transform:uppercase; }
.exercise-history-entry > summary strong { overflow:hidden; font:800 17px var(--display); text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.exercise-history-entry > summary small { overflow:hidden; color:#999; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.exercise-history-entry > summary > span { color:#ff7479; font:900 11px var(--display); text-transform:uppercase; white-space:nowrap; }
.exercise-history-entry[open] > summary > span { color:#fff; }
.exercise-history-entry-body { padding:0 12px 12px; border-top:1px solid #333; }
.exercise-history-sets { margin:0; padding:0; list-style:none; }
.exercise-history-sets li { min-height:48px; display:grid; grid-template-columns:52px 1fr; align-items:center; gap:8px; border-bottom:1px solid #292929; }
.exercise-history-sets li > span { color:#888; font:700 9px var(--display); text-transform:uppercase; }
.exercise-history-sets li > strong { font:800 20px var(--display); }
.exercise-history-sets li b { color:#fff; font:900 18px var(--display); }
.exercise-history-sets li small { color:#aaa; font-size:9px; text-transform:uppercase; }
.exercise-history-sets li em { grid-column:2; margin-top:-8px; color:#aaa; font-size:9px; font-style:normal; }
.history-no-sets { color:#999; font-size:11px; }
.history-session-stats,.history-cardio-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:10px; background:#333; }
.history-session-stats > span,.history-cardio-grid > span { display:grid; min-width:0; padding:8px 6px; background:#080808; }
.history-session-stats small,.history-cardio-grid small { color:#777; font:700 7px var(--display); text-transform:uppercase; }
.history-session-stats strong,.history-cardio-grid strong { margin-top:3px; overflow:hidden; font:800 13px var(--display); text-overflow:ellipsis; white-space:nowrap; }
.history-entry-note { margin:10px 0 0; padding:9px; border-left:2px solid var(--red); background:#171717; color:#bbb; font-size:10px; }
.history-entry-source { margin:10px 0 0; color:#777; font:700 8px var(--display); text-transform:uppercase; }
.exercise-history-empty { margin-top:16px; }
.readiness-card { margin-top:14px; padding:12px; border:1px solid #555; background:#0d0d0d; }
.readiness-card > div:first-child { display:flex; align-items:end; justify-content:space-between; gap:10px; }
.readiness-card span { color:#ff7479; font:800 9px var(--display); text-transform:uppercase; }
.readiness-card strong { font:800 15px var(--display); text-transform:uppercase; }
.readiness-card > div:last-child { display:grid; grid-template-columns:repeat(5,1fr); gap:5px; margin-top:10px; }
.readiness-card button { min-height:48px; border:1px solid #555; background:#171717; display:grid; place-items:center; color:#fff; font:900 18px var(--display); }
.readiness-card button small { color:#888; font:700 7px var(--display); text-transform:uppercase; }
.readiness-card button.selected { border-color:#fff; background:var(--red); }
.time-prediction { margin-top:8px; padding:10px 12px; border-left:3px solid #69b7ff; background:#071a2c; display:grid; grid-template-columns:1fr auto; gap:2px 10px; }
.time-prediction span { color:#9bccff; font:800 9px var(--display); text-transform:uppercase; }
.time-prediction strong { grid-row:1/3; grid-column:2; align-self:center; font:800 24px var(--display); }
.time-prediction small { color:#a9bad0; font-size:9px; }
.time-prediction.learning { border-color:#666; background:#171717; }
.rest-day button { min-height:44px; margin-top:10px; padding:0 12px; border:1px solid #777; background:#111; font:800 12px var(--display); text-transform:uppercase; }
.copy-preview { margin:16px 0; padding:14px; border:1px solid #555; background:#0c0c0c; }
.copy-preview > span { color:#ff7479; font:800 9px var(--display); text-transform:uppercase; }
.copy-preview > strong { display:block; margin-top:4px; font:800 21px var(--display); text-transform:uppercase; }
.copy-preview ol { margin:12px 0 0; padding-left:20px; }
.copy-preview li { padding:7px 0; border-top:1px solid #333; font:700 13px var(--display); text-transform:uppercase; }
.copy-preview li small { float:right; color:#888; }
.session-review { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:7px; margin:14px 0 20px; }
.session-review label,.session-review div { display:grid; align-content:center; min-height:72px; padding:9px; border:1px solid #444; background:#0c0c0c; }
.session-review label { margin:0; }
.session-review span { color:#888; font:700 9px var(--display); text-transform:uppercase; }
.session-review strong { margin-top:5px; font:800 16px var(--display); }
.session-review select { height:38px; margin-top:5px; }
.verified-pr-check { margin-top:10px!important; padding:11px; border:1px solid #805b00; background:#1e1703; color:#ffe066!important; }
.estimate-section { padding:22px 18px; }
.estimate-section article { padding:12px 0; border-top:1px solid #444; }
.estimate-section h3 { margin:0 0 8px; font:800 15px var(--display); text-transform:uppercase; }
.estimate-row { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.estimate-row span { display:grid; padding:8px; background:#111; }
.estimate-row small { color:#888; font:700 9px var(--display); }
.estimate-row strong { margin-top:3px; font:800 18px var(--display); }
.tour-backdrop { position:fixed; z-index:100; inset:0; padding:calc(18px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom)); background:rgba(0,0,0,.92); display:grid; place-items:center; }
.tour-card { width:min(100%,430px); padding:20px; border:2px solid #fff; background:#080808; box-shadow:10px 10px 0 var(--red); }
.tour-progress { display:grid; grid-template-columns:repeat(6,1fr); gap:4px; }
.tour-progress i { height:4px; background:#333; }
.tour-progress i.active { background:var(--red); }
.tour-card > p { margin:20px 0 5px; color:#ff7479; font:800 10px var(--display); letter-spacing:.06em; text-transform:uppercase; }
.tour-card h2 { margin:0; font:800 38px/.9 var(--display); text-transform:uppercase; }
.tour-visual { min-height:120px; margin:20px 0; border:1px solid #444; background:linear-gradient(135deg,#270002,#070707); display:grid; grid-template-columns:1fr 1fr; place-items:center; }
.tour-visual > span { font:900 78px var(--display); color:var(--red); }
.tour-visual b .icon { width:54px; height:54px; }
.tour-card .tour-copy { margin:0; color:#ccc; font:500 14px/1.55 var(--body); letter-spacing:0; text-transform:none; }
.tour-card footer { display:flex; justify-content:space-between; align-items:center; margin-top:22px; }
.tour-card footer button { min-height:44px; padding:0 15px; border:1px solid #666; background:#111; font:800 12px var(--display); text-transform:uppercase; }
.tour-card footer > div { display:flex; gap:7px; }
.tour-card footer .tour-next { border-color:#fff; background:var(--red); }
.whats-new ul { list-style:none; margin:14px 0; padding:0; }
.whats-new li { display:grid; gap:3px; padding:12px 0; border-bottom:1px solid #444; }
.whats-new li b { font:800 16px var(--display); text-transform:uppercase; }
.whats-new li span { color:#aaa; font-size:11px; line-height:1.45; }
.test-checklist { display:grid; gap:8px; padding:14px; border:1px solid #805b00; background:#1e1703; }
.test-checklist strong { color:#ffe066; font:800 15px var(--display); text-transform:uppercase; }
.test-checklist label { margin:0; color:#ddd; font-size:11px; }
.help-feature { width:100%; min-height:70px; margin-top:10px; padding:12px; border:1px solid #555; background:#101010; display:grid; gap:4px; text-align:left; }
.help-feature b { font:800 17px var(--display); text-transform:uppercase; }
.help-feature span { color:#999; font-size:11px; }
@media(max-width:520px){.compact-exercise{grid-template-columns:36px minmax(0,1fr) 58px}.compact-drag{width:36px}.session-review{grid-template-columns:1fr 1fr}.session-review label{grid-column:1/-1}.tour-card h2{font-size:34px}.detail-actions{grid-template-columns:1fr}}

/* Wave 1.1: exercise organization, cardio, and unambiguous progress */
.workout-section { border-bottom:1px solid #555; }
.workout-section > header { min-height:40px; padding:0 10px; display:flex; align-items:center; justify-content:space-between; background:#170203; border-left:3px solid var(--red); }
.workout-section > header span { color:#fff; font:800 14px var(--display); letter-spacing:.05em; text-transform:uppercase; }
.workout-section > header b { color:#ff8b8f; font:700 9px var(--display); text-transform:uppercase; }
.workout-section + .workout-section { margin-top:8px; }
.completed-section { opacity:.92; }
.library-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; padding:8px; background:#242424; }
.library-filters label { display:grid; gap:4px; min-width:0; padding:7px; background:#090909; color:#999; font:700 8px var(--display); text-transform:uppercase; }
.library-filters select { min-width:0; width:100%; height:38px; border:1px solid #555; border-radius:0; background:#171717; padding:0 7px; color:#fff; font:700 11px var(--body); text-transform:none; }
.form-organization { margin-top:4px; }
.form-organization label { display:grid; gap:7px; margin-top:15px; color:#ddd; font:700 11px var(--display); text-transform:uppercase; }
.cardio-plan-fields { margin-top:18px; padding:14px; border:1px solid #39644a; background:#07160d; }
.cardio-plan-fields > div:first-child { display:flex; justify-content:space-between; gap:10px; margin-bottom:4px; }
.cardio-plan-fields > div:first-child span { color:#66dc97; font:800 11px var(--display); text-transform:uppercase; }
.cardio-plan-fields > div:first-child strong { font:700 10px var(--display); text-transform:uppercase; }
.cardio-plan-fields label,.cardio-review-fields label { display:grid; gap:6px; margin-top:12px; color:#ccc; font:700 10px var(--display); text-transform:uppercase; }
.cardio-plan-fields input,.cardio-review-fields input { width:100%; border:1px solid #666; border-radius:0; background:#151515; padding:13px 12px; font-size:14px; }
.cardio-detail-summary span:first-child { grid-column:span 1; }
.cardio-detail-summary strong { font-size:14px; line-height:1.25; }
.cardio-detail-run { padding:14px; border:1px solid #39644a; background:#07160d; display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; }
.cardio-detail-run > strong { color:#8fe9b3; font:800 15px var(--display); text-transform:uppercase; }
.cardio-detail-run button { min-height:44px; padding:0 14px; }
.focus-cardio-prescription { min-height:118px; padding:18px; border:2px solid #4bd883; background:linear-gradient(135deg,#07180e,#050505); display:grid; align-content:center; gap:8px; text-align:center; }
.focus-cardio-prescription span { color:#6ee39c; font:800 11px var(--display); letter-spacing:.08em; text-transform:uppercase; }
.focus-cardio-prescription strong { font:800 28px/1.05 var(--display); text-transform:uppercase; }
.cardio-review-fields { margin-top:12px; padding:12px; border:1px solid #39644a; background:#07160d; }
.cardio-review-fields p { margin:0; color:#8fe9b3; font-size:12px; }
@media(max-width:520px){.library-filters{grid-template-columns:1fr}.library-filters label{grid-template-columns:88px 1fr;align-items:center}.form-organization{grid-template-columns:1fr 1fr}.cardio-detail-run{grid-template-columns:1fr}.focus-cardio-prescription strong{font-size:23px}}
/* Wave 1.4: reusable session and flexible exercise warm-ups */
.session-warmup-card{margin:18px 0;border:1px solid #383838;background:#101010;padding:16px;display:grid;gap:14px}
.session-warmup-card.empty{border-left:4px solid var(--red,#e50914)}
.session-warmup-card header,.session-warmup-card.empty{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.session-warmup-card span,.exercise-warmup-decision span{display:block;color:#e50914;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.session-warmup-card h3{margin:3px 0 0;font-size:1.25rem;text-transform:uppercase}
.session-warmup-card p{margin:6px 0 0;color:#aaa;line-height:1.4}
.session-warmup-card header>button,.session-warmup-card.empty>button{border:1px solid #666;background:#181818;color:#fff;padding:10px 12px;font-weight:800;white-space:nowrap}
.session-warmup-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.session-warmup-choices>button{display:flex;align-items:center;gap:9px;text-align:left;border:1px solid #444;background:#171717;color:#fff;padding:11px;min-width:0}
.session-warmup-choices>button.selected{border-color:#e50914;background:#240407}
.session-warmup-choices i,.warmup-check-row i{width:24px;height:24px;border:2px solid #777;display:grid;place-items:center;font-style:normal;flex:0 0 auto}
.session-warmup-choices .selected i,.warmup-check-row.complete i{border-color:#38c875;background:#38c875;color:#07120b}
.session-warmup-choices strong,.session-warmup-choices small{display:block;overflow:hidden;text-overflow:ellipsis}
.session-warmup-choices small{color:#999;margin-top:2px}
.follow-warmup-action{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;background:#e50914;color:#fff;border:0;padding:14px 16px}
.follow-warmup-action small,.follow-warmup-action strong{display:block}.follow-warmup-action b{font-size:1.8rem}
.warmup-skipped{border-top:1px solid #333;padding-top:10px;font-size:.82rem}
.warmup-routine-list{display:grid;gap:8px;margin:16px 0}
.warmup-routine-list article{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;border:1px solid #3b3b3b;padding:12px}
.warmup-routine-list strong,.warmup-routine-list span{display:block}.warmup-routine-list span{color:#999;font-size:.8rem}
.warmup-routine-list button{border:1px solid #555;background:#171717;color:#fff;padding:9px}
.warmup-step-field{border:0;padding:0;margin:18px 0}.warmup-step-field legend{font-weight:900;text-transform:uppercase}.warmup-step-field>p{color:#999;font-size:.82rem}
.warmup-step-editor{display:grid;gap:8px}.warmup-step-editor-row{display:grid;grid-template-columns:24px 1fr 42px;align-items:center;gap:8px}.warmup-step-editor-row>span{font-weight:900;color:#e50914}.warmup-step-editor-row input{margin:0}.warmup-step-editor-row button{height:44px;border:1px solid #555;background:#171717;color:#fff}
.follow-warmup-routine{border:1px solid #444;margin:14px 0}.follow-warmup-routine.done{border-color:#38c875}
.follow-warmup-routine>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px;background:#171717}.follow-warmup-routine>header strong,.follow-warmup-routine>header span{display:block}.follow-warmup-routine>header span{font-size:.75rem;color:#999}.follow-warmup-routine>header button{background:#222;border:1px solid #666;color:#fff;padding:9px}
.warmup-check-row{display:flex;align-items:center;gap:12px;width:100%;border:0;border-top:1px solid #333;background:#0c0c0c;color:#fff;text-align:left;padding:14px}.warmup-check-row.complete span{text-decoration:line-through;color:#8c8c8c}
.exercise-warmup-decision{display:grid;grid-template-columns:1fr auto;gap:12px;border:1px solid #444;border-left:4px solid #666;padding:14px;margin:14px 0;background:#111}.exercise-warmup-decision.enabled{border-left-color:#38c875}.exercise-warmup-decision strong,.exercise-warmup-decision small{display:block}.exercise-warmup-decision small{color:#999;margin-top:5px;line-height:1.35}.warmup-yes-no{display:grid;grid-template-columns:1fr 1fr;gap:5px}.warmup-yes-no button{min-width:48px;border:1px solid #666;background:#171717;color:#fff;font-weight:900}.warmup-yes-no button.selected{background:#e50914;border-color:#e50914}.edit-warmup-recipe{grid-column:1/-1;border:1px solid #666;background:#191919;color:#fff;padding:10px;font-weight:800}
.exercise-warmup-editor .danger-action{margin-top:10px}.warmup-focus .focus-exercise-label span,.warmup-context span{color:#f6b93b}.warmup-focus .focus-primary{background:#f6b93b;color:#090909}.warmup-focus .focus-progress i:after{background:#f6b93b}
.exercise-warmup-preview{grid-column:1/-1;list-style:none;margin:2px 0 0;padding:0;display:grid;gap:6px}
.exercise-warmup-preview li{padding:9px 10px;border-left:3px solid #f6b93b;background:#17130a;color:#f4f4f4;font-size:.86rem;line-height:1.35}
.focus-warmup-activity{min-height:150px;padding:22px;border:2px solid #f6b93b;background:linear-gradient(135deg,#251a03,#070707);display:grid;place-content:center;gap:10px;text-align:center}
.focus-warmup-activity span{color:#f6b93b;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.focus-warmup-activity strong{font:900 clamp(2rem,9vw,3.4rem)/.95 var(--display);text-transform:uppercase}
.focus-warmup-activity small{color:#c9c2b2;font-size:.82rem;line-height:1.4}
@media(max-width:430px){.session-warmup-choices{grid-template-columns:1fr}.session-warmup-card.empty{display:grid}.session-warmup-card.empty>button{width:100%}.exercise-warmup-decision{grid-template-columns:1fr}.warmup-yes-no{height:44px}}
