/* ========================================================================== 
   GritHQ finalization — Workout / Timer
   Authoritative active-workout surface.

   Goals:
   - The workout owns the viewport. App chrome never composites underneath it.
   - No view-entry animation or transform on the large ticking surface.
   - Controls stay reachable across supported iPhone widths/heights.
   - Long exercise/routine names wrap instead of clipping.
   - Extreme custom content may scroll vertically; horizontal overflow is never
     allowed.
   ========================================================================== */

body.workout-mode {
  overflow:hidden!important;
  overscroll-behavior:none;
}

/* The active workout is intentionally a separate app surface. Later global
   mobile/desktop rules must never bring the normal shell chrome back on top. */
body.workout-mode .topbar,
body.workout-mode .mobile-appbar,
body.workout-mode .bottom-nav,
body.workout-mode .desktop-rail {
  display:none!important;
}

body.workout-mode .app-shell,
body.workout-mode .app-stage {
  width:100%!important;
  min-width:0!important;
  height:100lvh!important;
  min-height:100lvh!important;
  overflow:hidden!important;
}

body.workout-mode .main-content {
  width:100%!important;
  max-width:none!important;
  height:100lvh!important;
  max-height:100lvh!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

#view-workout,
#view-workout.active {
  margin:0!important;
  min-width:0!important;
  width:100%!important;
}

#view-workout.active {
  position:fixed!important;
  inset:0!important;
  z-index:100!important;
  height:100lvh!important;
  min-height:100lvh!important;
  max-height:100lvh!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch!important;
  background:var(--workout-bg)!important;
  animation:none!important;
  opacity:1!important;
  transform:none!important;
  will-change:auto!important;
  contain:layout style paint;
}

#view-workout .workout-shell {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  min-height:100lvh;
  padding:
    calc(16px + env(safe-area-inset-top))
    max(16px,env(safe-area-inset-right))
    calc(18px + env(safe-area-inset-bottom))
    max(16px,env(safe-area-inset-left));
  display:flex;
  flex-direction:column;
  background:
    radial-gradient(circle at 50% 28%,rgba(var(--accent-rgb),.12),transparent 36%),
    var(--workout-bg);
}

#view-workout .workout-top {
  flex:0 0 auto;
  min-width:0;
  min-height:50px;
  align-items:flex-start;
}

#view-workout .workout-top > div {
  min-width:0;
  max-width:100%;
}

#view-workout .workout-active-label {
  margin-bottom:4px;
  font-size:10px;
  line-height:1;
}

#view-workout .workout-top strong {
  display:block;
  max-width:min(100%,34ch);
  font-size:15px;
  line-height:1.15;
  overflow-wrap:anywhere;
  text-wrap:balance;
}

#view-workout .workout-top .meta {
  margin-top:3px;
  font-size:12px;
  line-height:1.2;
  overflow-wrap:anywhere;
}

#view-workout .workout-center {
  flex:1 1 auto;
  min-height:0;
  width:100%;
  padding:18px 0 16px;
  display:grid;
  place-items:center;
  text-align:center;
}

#view-workout .workout-center > div {
  width:100%;
  min-width:0;
}

#view-workout .phase-label {
  font-size:11px;
  line-height:1.1;
}

#view-workout .exercise-name {
  width:min(100%,18ch);
  max-width:100%;
  margin:8px auto 4px;
  font-size:clamp(28px,8.5vw,52px);
  line-height:.98;
  letter-spacing:-.04em;
  overflow-wrap:anywhere;
  word-break:normal;
  text-wrap:balance;
}

#view-workout .v2-target-copy {
  max-width:42ch;
  margin:7px auto 0;
  padding-inline:4px;
  font-size:12px;
  line-height:1.3;
  overflow-wrap:anywhere;
}

#view-workout .v2-previous-performance {
  max-width:min(100%,520px);
  margin:9px auto 0;
  gap:7px;
  font-size:12px;
}

#view-workout .v2-previous-performance span {
  font-size:10px;
}

#view-workout .v2-previous-performance strong {
  font-size:12px;
}

#view-workout .timer-digits {
  max-width:100%;
  margin:16px auto 9px;
  font-size:clamp(76px,25vw,146px);
  line-height:.9;
  white-space:nowrap;
}

#view-workout .v2-timer-caption {
  margin-top:-3px;
  margin-bottom:9px;
  font-size:10px;
}

#view-workout .paused-badge {
  margin-top:7px;
}

#view-workout .next-up {
  max-width:44ch;
  margin:7px auto 0;
  padding-inline:4px;
  font-size:12px;
  line-height:1.3;
  overflow-wrap:anywhere;
}

#view-workout .workout-demo-btn,
#view-workout .v2-finish-hold {
  min-height:44px;
  touch-action:manipulation;
}

#view-workout .workout-demo-btn {
  margin:9px auto 1px;
}

#view-workout .v2-finish-hold {
  margin:2px auto 7px;
}

#view-workout .rep-entry-card {
  width:min(100%,390px);
  margin:10px auto 7px;
  padding:12px;
}

#view-workout .rep-entry-label {
  margin-bottom:8px;
  font-size:11px;
}

#view-workout .rep-stepper {
  grid-template-columns:52px minmax(86px,1fr) 52px;
  gap:8px;
}

#view-workout .rep-step-btn {
  min-width:52px;
  min-height:52px;
  touch-action:manipulation;
}

#view-workout .rep-actual-input {
  min-height:54px;
  font-size:28px; /* >=16px prevents iOS focus zoom. */
}

#view-workout .complete-set-btn {
  min-height:48px;
  margin-top:9px;
  touch-action:manipulation;
}

#view-workout .progress-track {
  height:9px;
  margin:11px 0 7px;
}

#view-workout .workout-controls {
  width:100%;
  grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);
  gap:7px;
}

#view-workout .workout-controls button {
  min-width:0;
  min-height:54px;
  padding-inline:8px;
  font-size:14px;
  touch-action:manipulation;
}

#view-workout .pause-btn {
  font-size:16px;
}

#view-workout .workout-end-btn {
  min-height:52px;
  margin-top:8px;
  font-size:15px;
  touch-action:manipulation;
}

#view-workout .workout-secondary {
  min-width:0;
  margin-top:7px;
  gap:6px;
  flex-wrap:wrap;
}

#view-workout .workout-secondary .pill {
  max-width:100%;
  font-size:10px;
  overflow-wrap:anywhere;
}

/* Standard iPhone widths. Use the available width for legibility while
   keeping the control stack compact enough for shorter screens. */
@media (max-width:430px) {
  #view-workout .workout-shell {
    padding-left:max(13px,env(safe-area-inset-left));
    padding-right:max(13px,env(safe-area-inset-right));
  }

  #view-workout .workout-top strong {
    font-size:14px;
  }

  #view-workout .exercise-name {
    font-size:clamp(27px,8.2vw,42px);
  }

  #view-workout .timer-digits {
    font-size:clamp(72px,24vw,116px);
  }
}

/* Shorter iPhone viewports: preserve readable type/touch targets, then trim
   whitespace. If truly unusual custom content still exceeds the canvas, the
   workout surface itself scrolls rather than clipping anything. */
@media (max-width:620px) and (max-height:820px) {
  #view-workout .workout-shell {
    padding-top:calc(10px + env(safe-area-inset-top));
    padding-bottom:calc(10px + env(safe-area-inset-bottom));
  }

  #view-workout .workout-top {
    min-height:42px;
  }

  #view-workout .workout-active-label {
    font-size:9px;
  }

  #view-workout .workout-top strong {
    font-size:13px;
  }

  #view-workout .workout-top .meta {
    font-size:11px;
  }

  #view-workout .workout-center {
    padding:8px 0 7px;
  }

  #view-workout .phase-label {
    font-size:10px;
  }

  #view-workout .exercise-name {
    margin-top:5px;
    font-size:clamp(25px,7.7vw,38px);
  }

  #view-workout .v2-target-copy {
    margin-top:5px;
    font-size:11px;
  }

  #view-workout .v2-previous-performance {
    margin-top:6px;
  }

  #view-workout .timer-digits {
    margin:9px auto 6px;
    font-size:clamp(64px,21vw,98px);
  }

  #view-workout .v2-timer-caption {
    margin-bottom:5px;
  }

  #view-workout .rep-entry-card {
    margin-top:6px;
    padding:9px;
  }

  #view-workout .rep-entry-label {
    margin-bottom:6px;
  }

  #view-workout .rep-stepper {
    grid-template-columns:48px minmax(80px,1fr) 48px;
    gap:7px;
  }

  #view-workout .rep-step-btn {
    min-width:48px;
    min-height:48px;
  }

  #view-workout .rep-actual-input {
    min-height:50px;
    font-size:26px;
  }

  #view-workout .complete-set-btn {
    min-height:46px;
    margin-top:7px;
  }

  #view-workout .workout-demo-btn {
    margin-top:6px;
  }

  #view-workout .next-up {
    margin-top:5px;
    font-size:11px;
  }

  #view-workout .progress-track {
    margin:8px 0 6px;
  }

  #view-workout .workout-controls button {
    min-height:50px;
    font-size:13px;
  }

  #view-workout .pause-btn {
    font-size:15px;
  }

  #view-workout .workout-end-btn {
    min-height:48px;
    margin-top:7px;
    font-size:14px;
  }

  #view-workout .workout-secondary {
    margin-top:5px;
  }
}

@media (max-width:370px) {
  #view-workout .workout-shell {
    padding-left:max(11px,env(safe-area-inset-left));
    padding-right:max(11px,env(safe-area-inset-right));
  }

  #view-workout .workout-controls {
    gap:5px;
  }

  #view-workout .workout-controls button {
    padding-inline:5px;
    font-size:12px;
  }

  #view-workout .pause-btn {
    font-size:14px;
  }
}
