/* Scoped to avoid changing routine-builder fields or existing recorded data. */
.app .build-live-fields.compact-strength { text-align:left; gap:8px; margin-top:10px; padding-top:10px; }
.app .build-live-fields.compact-strength h4 { margin:0; font-size:16px; }
.app :is(.compact-set-head,.compact-set-row) { display:grid; grid-template-columns:24px repeat(3,minmax(0,1fr)) 44px; gap:4px; align-items:center; }
.app .compact-set-head { padding:4px 0 8px; font-size:11px; color:var(--muted); text-align:center; }
.app .compact-set-row { min-height:54px; padding:5px 0; border-top:1px solid var(--line); border-radius:6px; }
.app .compact-set-row > span { text-align:center; font-size:13px; font-weight:800; }
.app .compact-set-row input:not([type=checkbox]) { width:100%; height:44px; min-height:44px; padding:6px 3px; font-size:16px; line-height:1.2; text-align:center; border-radius:9px; background:var(--surface); color:var(--ink); font-variant-numeric:tabular-nums; }
.app .compact-set-row input[type=checkbox] { width:28px; height:28px; margin:8px; accent-color:var(--brand); cursor:pointer; }
.app .compact-set-row.is-done { background:color-mix(in srgb,var(--brand) 12%,transparent); }
.app .compact-set-row.is-current { outline:1px solid var(--brand); outline-offset:-1px; background:color-mix(in srgb,var(--brand) 7%,transparent); }
.app .compact-strength[data-weight=false] :is(.compact-set-head,.compact-set-row) { grid-template-columns:24px minmax(0,1fr) minmax(0,1.3fr) 44px; }
.app .compact-strength[data-weight=false] .compact-set-head > :nth-child(3),.app .compact-strength[data-weight=false] .compact-set-row > input[type=number]:nth-child(3) { display:none; }
.app .compact-strength[data-previous=false] :is(.compact-set-head,.compact-set-row) { grid-template-columns:24px repeat(2,minmax(0,1fr)) 44px; }
.app .compact-strength[data-previous=false][data-weight=false] :is(.compact-set-head,.compact-set-row) { grid-template-columns:24px minmax(0,1fr) 44px; }
.app .compact-strength[data-previous=false] :is(.compact-set-head,.compact-set-row) > :nth-child(2) { display:none; }
.app .set-quick-actions { display:flex; gap:8px; }
.app .set-quick-actions:not(:has(button:not([hidden]))) { display:none; }
.app .compact-strength > p:empty { display:none; }
.app .set-utilities { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:center; }
.app .compact-strength .set-utilities > button { width:auto; min-height:44px; padding:8px 4px; background:transparent; border:0; color:var(--muted); font-size:12px; }
.app #workoutStepNav:has(#workoutSetAction) #workoutCompleteStep { display:none; }
.app #workoutSetAction { min-width:0; min-height:48px; font-size:14px; }
.app .compact-strength .set-quick-actions button { flex:1; min-height:48px; padding:10px 8px; font-size:14px; white-space:normal; }
.app .compact-strength .set-weight-toggle { justify-self:start; padding:6px 8px; font-size:12px; background:transparent; border:0; color:var(--muted); }
.app .compact-strength[data-complete=true] :is(.set-rest,.set-rest-hint,#setRestResume) { display:none!important; }
.app #workoutConsole:has(.compact-strength) #workoutCompleteStep { background:var(--surface-2); color:var(--ink); border:1px solid var(--line); box-shadow:none; }
.app .compact-strength .set-previous { min-width:0; min-height:44px; padding:4px 2px; border:0; background:transparent; color:var(--muted); font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
.app .compact-set-row input::-webkit-inner-spin-button { appearance:none; margin:0; }
.app .set-previous:disabled { opacity:1; }
.app .set-rest { display:grid; grid-template-columns:minmax(90px,1fr) minmax(50px,1fr) auto; gap:8px; align-items:end; padding:12px 0; border-top:1px solid var(--line); }
.app .set-rest label { gap:4px; font-size:12px; }
.app .set-rest select { min-height:44px; padding:8px; font-size:14px; }
.app .set-rest output { align-self:center; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; }
.app .set-rest .small-btn { min-height:44px; padding:8px; font-size:12px; }
.app .set-rest[data-enabled=false] > label { grid-column:1 / -1; }
.app .compact-strength [hidden] { display:none!important; }
.app .set-rest-hint { display:block; color:var(--muted); font-size:11px; line-height:1.4; }
.app .finish-optional { margin-top:18px; border-top:1px solid var(--line); padding-top:12px; text-align:left; }
.app .finish-optional > summary { display:flex; justify-content:space-between; align-items:center; gap:10px; min-height:44px; cursor:pointer; font-size:14px; font-weight:700; }
.app .finish-optional > summary span { color:var(--muted); font-size:11px; font-weight:500; }
.app .finish-optional[open] > summary { margin-bottom:12px; }
.app .finish-optional .finish-note { margin:14px 0; padding:0; border:0; background:transparent; }
.app .finish-optional .finish-note input { font-size:16px; min-height:44px; width:100%; }
.app .finish-optional .finish-safety { margin:10px 0 0; }
.app .workout-finish-card .workout-finish-actions { margin-top:14px; }
.app .workout-finish-card .finish-save-hint { margin-top:10px; font-size:12px; }
.app .set-instructions { margin-top:12px; font-size:12px; }
.app .set-instructions summary { min-height:40px; cursor:pointer; color:var(--muted); }
.app .workout-current:has(.compact-strength) { display:block; min-height:0; text-align:left; padding:14px; overflow:clip; }
.app .workout-current:has(.compact-strength) > .station-glyph { position:absolute; top:14px; right:14px; width:44px; height:44px; font-size:22px; }
.app .workout-current:has(.compact-strength) h3 { margin:8px 0; padding-right:48px; font-size:25px; line-height:1.1; }
.app .workout-current:has(.compact-strength) .segment-index { padding-right:48px; font-size:10px; }
.app .workout-current:has(.compact-strength) .workout-target-cue { display:none; }
.app .workout-current:has(.compact-strength) .step-live { flex-direction:row; flex-wrap:nowrap; margin:12px 0; gap:10px; justify-content:flex-start; text-align:left; }
.app .workout-current:has(.compact-strength) .step-live-time { min-width:0; font-size:34px; }
.app .workout-current:has(.compact-strength) .step-live-copy { width:auto; }
.app .workout-current:has(.compact-strength) .step-live-copy > span { display:none; }
.app .standard-settings { display:grid; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--surface); }
.app .settings-row { display:grid; grid-template-columns:36px 1fr 18px; gap:10px; align-items:center; width:100%; min-height:60px; margin:0; padding:12px 16px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; color:var(--ink); text-align:left; font-size:14px; font-weight:650; }
.app .settings-row:last-child { border-bottom:0; }
.app .settings-row:hover { background:var(--surface-2); }
.app .settings-row-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:var(--surface-2); font-size:21px; }
.app .settings-chevron { color:var(--muted); font-size:24px; }
.app .settings-screen { width:min(560px,calc(100% - 24px)); max-height:calc(100dvh - 48px); padding:20px; color:var(--ink); background:var(--surface); }
.app .settings-screen .dialog-head { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.app .settings-screen h2 { font-size:20px; margin:0; }
.app .settings-screen .dialog-head .settings-back { flex:0 0 auto; width:auto; min-width:90px; height:44px; min-height:44px; padding:8px 12px; font-size:13px; white-space:nowrap; }
.app .settings-screen .dialog-head h2 { flex:1; text-align:left; }
.app .settings-content { border:0!important; padding:0!important; margin:0!important; background:transparent!important; }
.app .settings-content > [hidden] { display:none!important; }
.app .weekly-check-dialog { width:min(660px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); padding:20px; }
.app .weekly-check-dialog #weeklyCheckin { padding:0; margin:12px 0 0; border:0; background:transparent; box-shadow:none; }
.app .weekly-check-dialog .section-head h2 { font-size:23px; margin:0!important; }
.app .weekly-check-dialog .section-head p,.app .weekly-check-dialog .section-head .eyebrow { display:none; }
.app .weekly-check-dialog .grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.app .weekly-check-dialog .field { margin:0; }
.app .weekly-check-dialog .actions > button { width:100%; }
@media(max-width:420px){.app .weekly-check-dialog .grid-3 { grid-template-columns:1fr; gap:10px; }.app .weekly-check-dialog { padding:16px; }}
.app .settings-content :is(.profile-actions,.profile-settings-row,.profile-social-actions) { display:grid; grid-template-columns:1fr; gap:8px; margin:0 0 16px; }
.app .settings-content :is(button.secondary,button.danger) { width:100%; min-height:48px; padding:12px; font-size:14px; text-align:left; }
.app .settings-content .profile-route { display:flex; }
.app .settings-content .profile-route small { display:none; }
.app .settings-appearance > summary { display:none!important; }
.app .settings-content .profile-switcher { display:grid; grid-template-columns:1fr; gap:10px; }
.app #profilePanel .profile-section--identity { border:0; padding:0 0 16px; background:transparent; }
.app #profilePanel .profile-summary-grid { gap:12px; }
.app #profilePanel .profile-settings-heading { margin:20px 0 12px; font-size:16px; }
.app .simple-onboarding > .step-intro[hidden],.app .simple-onboarding [hidden] { display:none!important; }
.app #onboardingHero:not(.hidden) { display:none; }
.app .simple-onboarding .section-head h2 { font-size:clamp(23px,4vw,32px); line-height:1.15; }
.app .onboarding-more { margin:14px 0; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.app .onboarding-more > summary { min-height:30px; cursor:pointer; font-weight:700; font-size:13px; }
.app .onboarding-more[open] > summary { margin-bottom:14px; }
.app .onboarding-more .note { margin:0; }
.app .onboarding-day-choices { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.app .onboarding-day-choices button { display:grid; gap:2px; min-height:64px; padding:8px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink); }
.app .onboarding-day-choices b { font-size:22px; line-height:1; }
.app .onboarding-day-choices span { font-size:11px; }
.app .onboarding-day-choices button.active { background:var(--brand); color:#151a0b; border-color:var(--brand); }
.app .visually-hidden-select { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
.app .simple-onboarding .identity-card .field-hint { display:none; }
.app .simple-onboarding .field { display:grid!important; align-content:start; gap:6px!important; }
.app .simple-onboarding .field > :is(label,input,select,.person-tag) { margin:0!important; }
.app .simple-onboarding .identity-card { padding:12px; }
.app .simple-onboarding .person-tag { display:none; }
.app .simple-onboarding .goal-mode-picker { margin:12px 0 16px; }
.app #tests > .onboarding-more { margin:0; }
.app #tests > .onboarding-more > .panel { padding:0; border:0; background:transparent; }
@media(max-width:600px){
 .app .simple-onboarding { padding:18px 14px; }
 .app .simple-onboarding .grid-3 { grid-template-columns:1fr; gap:14px; }
 .app .simple-onboarding .grid-2 { gap:14px; }
 .app .simple-onboarding .field { gap:6px; }
 .app .simple-onboarding .field-hint { font-size:11px; line-height:1.4; }
 .app #wizard .wizard-top { margin-bottom:14px; }
 .app #wizardHint,.app #controlHint { display:none; }
 .app .settings-screen { padding:16px; }
 .app .compact-strength { margin-inline:-4px; }
}
@media(prefers-reduced-motion:no-preference){.app .compact-set-row { transition:background-color .16s; }}
@media(min-width:901px){.app #workoutTimerToggle { display:inline-flex; align-items:center; justify-content:center; gap:6px; width:auto; min-width:110px; padding:10px 12px; white-space:nowrap; }}

/* Shared app dialogs; retained from 0.2.25. */
.app .endyvo-message-dialog { width:min(420px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); box-sizing:border-box; padding:24px; border:1px solid var(--line); border-radius:24px; color:var(--ink); background:var(--surface); box-shadow:0 24px 80px #0005; overflow:auto; }
.app .endyvo-message-dialog::backdrop { background:#050805aa; backdrop-filter:blur(5px); }
.app .endyvo-message-icon { display:grid; place-items:center; width:44px; height:44px; margin-bottom:16px; border-radius:14px; background:var(--brand); color:var(--brand-ink); font-size:25px; font-weight:800; }
.app .endyvo-message-dialog h2 { margin:0 0 10px; font-size:24px; line-height:1.15; letter-spacing:-.035em; }
.app .endyvo-message-dialog p { margin:0; color:var(--muted); font-size:14px; line-height:1.5; white-space:pre-line; overflow-wrap:anywhere; }
.app .endyvo-message-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.app .endyvo-message-actions > button { flex:1 1 130px; min-height:48px; padding:10px 12px; border-radius:12px; font-size:14px; }
.app .endyvo-message-danger { color:#fff; background:#ac282d; border:1px solid #ac282d; }
html:has(.endyvo-message-dialog[open]),body:has(.endyvo-message-dialog[open]) { overflow:hidden; }
/* Sporty single-layer training: no enclosing panel around the actual cards. */
.app #workoutPanel { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.app #workoutPanel .workout-console-head { padding:8px 0 14px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
.app #workoutPanel .workout-step-rail { margin-block:10px; }
.app #workoutPanel .workout-step-rail > * { opacity:1; }
.app #workoutPanel .workout-current { --ink:#f7f8f2; --muted:#c4cfbc; --surface:#182014; --surface-2:#222d1c; --line:#506344; padding:24px; border:1px solid #526244; border-radius:22px 8px 22px 8px; color:var(--ink); background:radial-gradient(ellipse at 100% 0,#354a1c,transparent 65%),linear-gradient(140deg,#172110,#0b1009); box-shadow:0 8px 24px #0001; overflow:clip; isolation:isolate; }
.app #workoutPanel .workout-current::after { display:block; z-index:-1; right:-55px; bottom:-75px; width:230px; height:230px; border:0; background:url("endyvo-motif.svg") center/contain no-repeat; opacity:.08; transform:none; }
.app #workoutPanel .workout-current:has(:is(.compact-strength,.native-run-fields)) > .station-glyph { top:24px; right:24px; }
.app #workoutPanel .build-live-fields { padding:12px 0 0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; margin-inline:0; }
.app #workoutPanel :is(.split-overview,.workout-session-options) { border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; }
.app #workoutPanel :is(.split-overview,.workout-session-options) > summary { min-height:44px; padding:12px 0; }
.app #workoutPanel .workout-finish-card { padding:24px 18px; border:1px solid var(--line); border-radius:22px 8px 22px 8px; background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--brand) 12%,transparent),transparent 65%),var(--surface); box-shadow:none; }
.app #workoutPanel .workout-step-nav { border-radius:0; box-shadow:none; }
.app #workoutPanel .time-editor { width:100%; margin:12px 0 0; background:#182014; border-color:#596b4b; color:#f7f8f2; }
.app #workoutPanel .time-editor > summary { color:#e2ead9; }
.app #workoutPanel .time-editor .duration-input input { color:#e4ff75; -webkit-text-fill-color:#e4ff75; background:#10170c; caret-color:#e4ff75; border:1px solid #72825d; min-height:48px; padding:6px; font-size:28px; font-weight:800; opacity:1; }
.app #workoutPanel .time-editor .duration-input > span { color:#e4ff75; }
.app #workoutPanel .time-editor .duration-labels { color:#d0dbc4; }
.app #workoutPanel .time-editor .time-quick-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.app #workoutPanel .time-editor .time-quick-actions button { min-height:44px; padding:8px; color:#f7f8f2; background:#283420; border-color:#72825d; font-size:12px; }
.app #workoutPanel .time-editor .time-quick-actions button:nth-child(2) { grid-column:1 / -1; grid-row:2; }
.app #workoutPanel .ex-hub-head { margin-bottom:16px; }
.app #workoutPanel .ex-training-grid { gap:12px; }
.app #workoutPanel .ex-training-grid .ex-tile { padding:20px; min-height:180px; border-radius:20px 8px 20px 8px; }
.app #workoutPanel .ex-training-grid .ex-tile:has(#startPlanWorkout) { background:radial-gradient(ellipse at 100% 0,#354a1c,transparent 65%),linear-gradient(140deg,#172110,#0b1009); }
.app #workoutPanel .ex-training-grid .ex-tile > button { min-height:44px; }
@media(max-width:900px) {
 .app:has(#workoutPanel:not(.hidden)) { padding-inline:max(12px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-right)); }
 .app #workoutPanel { margin-top:4px; }
 .app #workoutPanel .workout-current { display:block; padding:16px; min-height:0; text-align:left; }
 .app #workoutPanel .workout-current > .station-glyph { position:absolute; top:16px; right:16px; width:44px; height:44px; margin:0; font-size:22px; border-radius:12px; }
 .app #workoutPanel .workout-current:has(:is(.compact-strength,.native-run-fields)) > .station-glyph { top:16px; right:16px; }
 .app #workoutPanel .workout-current h3 { margin:8px 0; padding-right:52px; font-size:26px; line-height:1.15; }
 .app #workoutPanel .workout-current .segment-index { padding-right:52px; }
 .app #workoutPanel .workout-current .step-live { display:flex; flex-direction:row; flex-wrap:nowrap; justify-content:flex-start; text-align:left; gap:12px; margin:18px 0; }
 .app #workoutPanel .workout-current .step-live-time { min-width:0; font-size:36px; }
 .app #workoutPanel .workout-current .step-live-copy { width:auto; }
 .app #workoutPanel .workout-current .step-live-copy > span { display:none; }
 .app #workoutPanel .workout-current:has(.compact-strength) .step-live { margin:12px 0; }
 .app #workoutPanel .compact-strength { margin-top:8px; padding-top:8px; gap:6px; }
 .app #workoutPanel .compact-strength .compact-set-row { min-height:50px; padding-block:3px; }
 .app #workoutPanel .set-rest { padding-block:8px; }
 .app #workoutPanel .set-rest > label { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
 .app #workoutPanel .set-rest select { flex:1; width:auto; min-width:108px; }
 .app #workoutPanel .workout-step-nav { padding-inline:0; border:0; border-top:1px solid var(--line); background:var(--surface); }
 .app #workoutPanel .ex-training-grid .ex-tile { padding:16px; min-height:0; }
}
