/*
 DIL Fitness — Studio / mobile-first training journal.
 Theme tokens, touch geometry and keyboard-safe controls live here.
*/
:root{
 --bg:#111516;--panel:#1a1f20;--panel2:#252c2d;--soft:#151a1b;--card:#1a1f20;
 --text:#f3f5f2;--muted:#a2adab;--line:#343d3d;
 --accent:#8bd6c4;--accent2:#b6eadc;--accent-soft:#233c36;--accent-text:#102b24;
 --danger:#f4a39d;--shadow:none;--radius-card:20px;--radius-control:13px;
 --ease:cubic-bezier(.22,1,.36,1);--nav-height:76px;
 color-scheme:dark;
}
body[data-accent=green]{--accent:#8bd6c4;--accent2:#b6eadc;--accent-soft:#233c36;--accent-text:#102b24}
body[data-accent=blue]{--accent:#a8caff;--accent2:#d8e7ff;--accent-soft:#26364c;--accent-text:#15273f}
body[data-accent=orange]{--accent:#efbd99;--accent2:#f9ddc9;--accent-soft:#453329;--accent-text:#352115}
body[data-accent=purple]{--accent:#c9b8ed;--accent2:#e7def6;--accent-soft:#383046;--accent-text:#2b1c40}
body[data-accent=red]{--accent:#f0aaa3;--accent2:#f9d6d1;--accent-soft:#442e2c;--accent-text:#3a1b18}
body[data-theme=oled]{--bg:#000;--panel:#121617;--panel2:#212728;--soft:#090c0d;--card:#121617;--text:#f5f6f3;--muted:#a6afad;--line:#303637}
body[data-theme=light]{
 --bg:#f5f4ef;--panel:#fffefa;--panel2:#e9ebe5;--soft:#eeeee8;--card:#fffefa;
 --text:#202b29;--muted:#626e69;--line:#d8ded5;
 --accent:#216958;--accent2:#185141;--accent-soft:#dfede4;--accent-text:#fffefa;--danger:#ad4840;
 color-scheme:light;
}
body[data-theme=light][data-accent=blue]{--accent:#315f9a;--accent2:#244a7d;--accent-soft:#e3ebf7;--accent-text:#fff}
body[data-theme=light][data-accent=orange]{--accent:#91562e;--accent2:#764420;--accent-soft:#f4e8da;--accent-text:#fff}
body[data-theme=light][data-accent=purple]{--accent:#73579d;--accent2:#5a4081;--accent-soft:#ece5f5;--accent-text:#fff}
body[data-theme=light][data-accent=red]{--accent:#a94e45;--accent2:#873a32;--accent-soft:#f6e4df;--accent-text:#fff}
html{scroll-padding-top:100px;-webkit-text-size-adjust:100%}
html,body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.45}
body{min-height:100dvh;margin:0}
*,*::before,*::after{box-sizing:border-box}
*{scrollbar-color:var(--line) transparent}
::selection{background:var(--accent);color:var(--accent-text)}
button,input,select,textarea{font-family:inherit}
button{font-size:14px;line-height:1.3;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:disabled{opacity:.4;cursor:not-allowed}
button:active{transform:translateY(1px)}
button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
input,select,textarea{
 font-size:16px!important;line-height:1.4;min-width:0;max-width:100%;color:var(--text);
 background:var(--panel2)!important;border-color:var(--line)!important;border-radius:var(--radius-control);
 caret-color:var(--accent);scroll-margin-block:110px;
}
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{min-height:50px;padding:12px 13px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)!important}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.75}
input[type=number]{appearance:textfield;-moz-appearance:textfield}
input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
input[type=date]{width:100%;min-width:0;max-width:100%}
textarea{resize:vertical}
img,svg{max-width:100%}
h1,h2,h3{letter-spacing:-.035em;line-height:1.16}
h1{font-weight:760}
p{line-height:1.55}
.app-shell,body[data-theme=light] .app-shell,body[data-theme=oled] .app-shell{width:min(800px,100%);min-height:100dvh;background:var(--bg)}
.content{padding:28px 20px calc(116px + env(safe-area-inset-bottom));min-height:65dvh}
.topbar,body[data-theme=light] .topbar,body[data-theme=oled] .topbar{
 display:flex;align-items:center;gap:12px;min-height:78px;padding:calc(13px + env(safe-area-inset-top)) 20px 13px;
 background:var(--bg);background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom:1px solid color-mix(in srgb,var(--line) 62%,transparent);
 backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:none;
}
.brand-lockup{display:flex;align-items:center;gap:10px;min-width:0}
.brand-symbol{width:38px;height:38px;flex:0 0 38px;border-radius:12px}
.brand{font-size:18px;letter-spacing:-.06em;font-weight:800;line-height:1.08;white-space:nowrap}
.brand span{color:var(--text);font-weight:500}
.subbrand{font-size:10px;letter-spacing:.04em;text-transform:none;color:var(--muted);margin-top:4px}
.top-actions{display:flex;align-items:center;gap:8px;flex:none}
.top-timer{min-width:70px;height:44px;border:0;border-radius:13px;background:var(--panel2);color:var(--text);font-size:17px;letter-spacing:-.03em;font-weight:650;font-variant-numeric:tabular-nums}
.top-timer.running,.top-timer.done{background:var(--accent-soft);border:0;color:var(--accent)}
.icon-btn,.close-btn{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border:0;border-radius:13px;background:var(--panel2);color:var(--text)}
.icon-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6}
.bottom-nav,body[data-theme=light] .bottom-nav,body[data-theme=oled] .bottom-nav{
 display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:min(800px,100%);
 min-height:var(--nav-height);padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);
 background:var(--bg);background:color-mix(in srgb,var(--bg) 96%,transparent);box-shadow:none;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
}
.nav-btn,.large-ui .nav-btn{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;min-width:0;min-height:56px;padding:7px 1px;border:0;border-radius:14px;background:transparent;color:var(--muted)}
.nav-btn svg,.large-ui .nav-btn svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;fill:none}
.nav-btn span,.large-ui .nav-btn span{font-size:10px;line-height:1.1;font-weight:600;letter-spacing:-.02em;margin:0;white-space:nowrap}
.nav-btn.active{background:var(--accent-soft);color:var(--accent)}
.large-ui .bottom-nav{min-height:var(--nav-height)}
body.keyboard-open .bottom-nav{visibility:hidden;pointer-events:none}
.primary-btn,.secondary-btn,.danger-btn,.primary-btn.small,.secondary-btn.small{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:11px 17px;
 border-radius:var(--radius-control);font-size:14px;line-height:1.3;font-weight:650;box-shadow:none;
}
.primary-btn,.set-entry button,.weight-add{border:1px solid transparent;background:var(--accent);color:var(--accent-text)}
.secondary-btn{background:var(--panel2);color:var(--text);border:1px solid transparent}
.danger-btn{background:color-mix(in srgb,var(--danger) 10%,var(--panel));border:1px solid transparent;color:var(--danger)}
.primary-btn.small,.secondary-btn.small{min-height:44px;padding:10px 13px;font-size:13px;margin-top:0}
.text-btn{min-height:44px;padding:10px 7px;font-size:13px;font-weight:600;color:var(--accent);text-align:center}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:30px 0 15px}
.section-head h1,.page-heading h1,.settings-head h1,.results-title h1{font-size:32px;margin:0 0 8px;letter-spacing:-.05em;line-height:1.1}
.section-head h2{font-size:22px;font-weight:720;letter-spacing:-.035em;margin:0}
.eyebrow,.dashboard-date{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.meta,.muted,.subtle{color:var(--muted);font-size:13px;line-height:1.5}
.page-heading{margin:0 0 26px}
.page-heading p{color:var(--muted);font-size:14px;margin:9px 0 0}
.card,.hero,.settings-card,.exercise-card,.exercise-workout,.result-card,.ai-coach-card,.ai-generated,.record{
 background:var(--panel)!important;border:1px solid transparent!important;border-radius:var(--radius-card)!important;box-shadow:none!important;
}
.card,.hero,.settings-card,.result-card{padding:20px}
.card{margin-bottom:12px}
.card h3{font-size:18px;line-height:1.25}
.card-row{gap:14px;align-items:flex-start}
.card-row>div{min-width:0}
.badge,.badge.gray{border:0;background:var(--accent-soft);color:var(--accent);font-size:10px;letter-spacing:.025em;font-weight:650;line-height:1.3;padding:5px 8px;border-radius:7px}
.badge.gray{background:var(--panel2);color:var(--muted)}
.empty{padding:34px 22px;border:1px solid var(--line);border-radius:18px;background:var(--soft);font-size:14px;line-height:1.6;color:var(--muted)}
.search{min-height:50px;border-radius:13px;margin-bottom:8px}
.filters{gap:7px;padding:3px 0 12px;scrollbar-width:none}
.filter,.result-range-btn{min-height:44px;border:1px solid transparent;border-radius:12px;padding:10px 14px;background:var(--panel2);color:var(--muted);font-size:13px;font-weight:600}
.filter.active,.result-range-btn.active{background:var(--accent-soft);border-color:transparent;color:var(--accent)}
.sheet,body[data-theme=light] .sheet,body[data-theme=oled] .sheet{
 width:min(800px,100%);max-height:88dvh;background:var(--panel);border:1px solid var(--line);border-radius:26px 26px 0 0;
 padding:8px 20px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -16px 60px rgba(0,0,0,.2);
 overscroll-behavior:contain;scroll-padding-block:20px 100px;
}
.sheet-handle{width:36px;height:4px;border-radius:4px;background:var(--muted);opacity:.4;margin:4px auto 16px}
.sheet-head{gap:16px;margin-bottom:18px}
.sheet-head h2{font-size:23px;letter-spacing:-.04em}
.sheet-backdrop.open{background:rgba(0,0,0,.6)}
.sheet-copy{color:var(--muted);font-size:14px;line-height:1.55}
.toast{max-width:calc(100% - 32px);white-space:normal;text-align:center;padding:13px 18px;bottom:calc(94px + env(safe-area-inset-bottom));border-radius:13px;background:var(--text);color:var(--bg);font-size:13px;font-weight:600;box-shadow:0 8px 32px rgba(0,0,0,.15)}
.view-enter{animation:studioEnter .2s var(--ease) both}
@keyframes studioEnter{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}

/* Home: one clear next action, real activity and quiet supporting numbers. */
.dashboard-heading{margin:3px 0 27px}
.dashboard-date{display:block;margin-bottom:12px}
.dashboard-heading h1{font-size:clamp(34px,9vw,48px);line-height:1.06;letter-spacing:-.055em;font-weight:750;margin:0 0 12px}
.dashboard-heading p{font-size:14px;color:var(--muted);margin:0;max-width:480px}
.dashboard-session{padding:22px;background:var(--panel);border:0;border-radius:24px}
.session-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.session-indicator{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:650;letter-spacing:.055em;color:var(--accent)}
.session-indicator i{width:6px;height:6px;border-radius:50%;background:var(--accent);display:block}
.session-index{font-size:10px;font-weight:600;letter-spacing:.07em;color:var(--muted)}
.dashboard-session h2{font-size:30px;letter-spacing:-.045em;line-height:1.12;margin:28px 0 10px;font-weight:720;max-width:580px}
.dashboard-session p{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 25px}
.session-cta{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:56px;padding:9px 10px 9px 19px;text-align:left;font-size:15px;border-radius:14px}
.session-arrow{display:grid;place-items:center;width:35px;height:35px;flex:none;font-size:24px;font-weight:400;border-radius:9px;background:color-mix(in srgb,var(--accent-text) 8%,transparent)}
.session-secondary{display:block;width:100%;min-height:44px;border:0;padding:14px 6px 0;background:transparent;color:var(--muted);font-size:13px;font-weight:550;text-align:center}
.dashboard-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;margin:14px 0 9px}
.dashboard-main-stat{display:flex;flex-direction:column;justify-content:space-between;gap:15px;padding:20px;background:var(--panel);border:0;border-radius:20px;min-height:165px}
.dashboard-main-stat>span,.dashboard-side-stats span{font-size:12px;color:var(--muted)}
.dashboard-main-stat strong{font-size:35px;line-height:1.05;letter-spacing:-.055em;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.dashboard-main-stat small,.dashboard-side-stats small{display:block;font-size:11px;line-height:1.4;color:var(--muted)}
.dashboard-side-stats{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:12px}
.dashboard-side-stats>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:3px 6px;background:var(--panel);border:0;border-radius:18px;padding:13px 16px}
.dashboard-side-stats strong{font-size:24px;letter-spacing:-.04em;font-weight:680;font-variant-numeric:tabular-nums}
.dashboard-side-stats small{grid-column:1/-1}
.dashboard-week-goal{margin:22px 0 16px}
.dashboard-week-progress{height:5px;background:var(--panel2);border-radius:8px;overflow:hidden;margin:12px 0}
.dashboard-week-progress i,.dashboard-week-progress span{display:block;height:100%;background:var(--accent);border-radius:inherit}
.dashboard-week-caption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;color:var(--muted)}
.dashboard-week-caption b,.dashboard-week-caption strong{font-weight:650;color:var(--text)}
.dashboard-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.dashboard-day{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:11px;min-height:79px;padding:13px 2px 11px;border:1px solid transparent;border-radius:13px;background:var(--panel)}
.dashboard-day span{font-size:11px;color:var(--muted);font-weight:500}
.dashboard-day b{display:grid;place-items:center;width:27px;height:27px;font-size:14px;font-weight:550;border-radius:50%;color:var(--text)}
.dashboard-day.trained b{background:var(--accent);color:var(--accent-text)}
.dashboard-day.today{border-color:var(--line);background:var(--panel2)}
.dashboard-day.future{opacity:.5}
.dashboard-program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dashboard-program-button{position:relative;display:flex;flex-direction:column;min-width:0;min-height:150px;padding:18px;background:var(--panel);border:0;border-radius:19px;text-align:left;color:var(--text)}
.program-quick-mark{margin-bottom:auto;font-size:10px;font-weight:600;letter-spacing:.09em;color:var(--accent)}
.dashboard-program-button b{font-size:17px;line-height:1.25;letter-spacing:-.025em;font-weight:650;margin:15px 8px 7px 0;overflow-wrap:anywhere}
.dashboard-program-button small{font-size:11px;line-height:1.5;color:var(--muted)}
.program-quick-arrow{position:absolute;right:16px;top:13px;font-size:22px;color:var(--muted);font-weight:400}
.dashboard-last-card{position:relative;display:flex;flex-direction:column;gap:9px;width:100%;padding:21px;background:var(--panel);border:0;border-radius:20px;text-align:left;color:var(--text)}
.dashboard-last-date{font-size:12px;color:var(--muted)}
.dashboard-last-card strong{font-size:21px;line-height:1.25;letter-spacing:-.035em;font-weight:650;margin-right:25px}
.dashboard-last-card div{display:flex;gap:8px 16px;flex-wrap:wrap}
.dashboard-last-card div span{font-size:12px;color:var(--muted)}
.dashboard-last-arrow{position:absolute;right:20px;top:18px;font-size:23px;color:var(--accent)}
.dashboard-footer-link{text-align:center;padding:20px 0}
.dashboard-footer-link button{min-height:44px;border:0;background:none;color:var(--accent);font-weight:600;font-size:14px}

/* Training: values and set completion own the surface; tools stay secondary. */
.workout-screen{min-width:0}
.workout-session-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:2px 0 18px}
.workout-session-header>div{min-width:0}
.workout-session-header h1{font-size:30px;line-height:1.13;letter-spacing:-.045em;margin:9px 0 8px;overflow-wrap:anywhere}
.workout-session-header p,.workout-session-header .meta{margin:0;color:var(--muted);font-size:13px}
.workout-session-header time,.workout-session-time{font-variant-numeric:tabular-nums;font-size:18px;white-space:nowrap;letter-spacing:-.025em;font-weight:600}
.live{font-size:11px;font-weight:600;letter-spacing:.05em;color:var(--accent);text-transform:uppercase}
.live:before{width:6px;height:6px;background:var(--accent);box-shadow:none}
.workout-session-progress{height:5px;background:var(--panel2);border:0;border-radius:8px;margin:18px 0 20px;overflow:hidden}
.workout-session-progress i,.workout-session-progress span{display:block;height:100%;background:var(--accent);border-radius:8px}
.workout-main-summary,.workout-plan-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:17px 0;margin:0 0 22px;background:transparent;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0}
.workout-main-summary>div,.workout-plan-summary>div{padding:0 10px;background:transparent;border:0;border-right:1px solid var(--line);border-radius:0;min-width:0}
.workout-main-summary>div:first-child,.workout-plan-summary>div:first-child{padding-left:0}
.workout-main-summary>div:last-child,.workout-plan-summary>div:last-child{border-right:0}
.workout-main-summary strong,.workout-main-summary b,.workout-plan-summary b{display:block;font-size:22px;letter-spacing:-.035em;line-height:1.2;font-variant-numeric:tabular-nums;font-weight:650}
.workout-main-summary span,.workout-main-summary small,.workout-plan-summary span{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.4}
.workout-session-tools,.workout-exercise-tools,.workout-technique,.workout-record-tools{margin:0;border:0;background:transparent}
.workout-session-tools{margin:0 0 21px}
.workout-session-tools>summary,.workout-exercise-tools>summary,.workout-technique>summary,.workout-record-tools>summary{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;list-style:none;cursor:pointer;color:var(--muted);font-size:12px;font-weight:550}
.workout-session-tools>summary::-webkit-details-marker,.workout-exercise-tools>summary::-webkit-details-marker,.workout-technique>summary::-webkit-details-marker,.workout-record-tools>summary::-webkit-details-marker{display:none}
.workout-session-tools>summary::after,.workout-technique>summary::after,.workout-record-tools>summary::after{content:"+";font-size:19px;font-weight:400}
.workout-session-tools[open]>summary::after,.workout-technique[open]>summary::after,.workout-record-tools[open]>summary::after{content:"−"}
.workout-session-tools[open]{padding-bottom:12px;border-bottom:1px solid var(--line)}
.workout-meta-editor{margin:8px 0 14px}
.workout-meta-editor input,.workout-meta-editor textarea{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:13px}
.workout-meta-editor label>span{display:block;font-size:12px;color:var(--muted);margin-bottom:7px}
.exercise-workout,.exercise-workout:not(.is-collapsed),.exercise-workout.is-collapsed{
 background:var(--panel)!important;border:1px solid transparent!important;border-left:1px solid transparent!important;border-radius:20px!important;
 padding:18px;margin:0 0 14px;box-shadow:none!important;overflow:visible;min-width:0;
}
.exercise-workout.status-todo:not(.is-collapsed),.exercise-workout.status-partial:not(.is-collapsed),.exercise-workout.status-done:not(.is-collapsed){border-left:1px solid transparent!important}
.exercise-workout.workout-superset{border-color:color-mix(in srgb,var(--accent) 40%,transparent)!important;border-left:1px solid color-mix(in srgb,var(--accent) 40%,transparent)!important}
.exercise-workout:focus-within{border-color:color-mix(in srgb,var(--accent) 40%,transparent)!important}
.exercise-workout.is-collapsed{padding:14px 18px}
.workout-exercise-head{display:grid;grid-template-columns:28px minmax(0,1fr) 44px;gap:10px;align-items:center;margin-bottom:10px}
.workout-exercise-head h3{font-size:18px;letter-spacing:-.025em;line-height:1.28;font-weight:680;margin:0;overflow-wrap:anywhere}
.workout-exercise-number{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);font-variant-numeric:tabular-nums}
.workout-exercise-meta{font-size:12px;color:var(--muted);line-height:1.5;margin:4px 0 0}
.workout-exercise-meta b{font-weight:600;color:var(--text)}
.workout-collapse-toggle{display:grid;place-items:center;min-width:44px;min-height:44px;width:44px;height:44px!important;border:0!important;border-radius:12px;background:var(--panel2);color:var(--muted);font-size:21px;padding:0}
.workout-exercise-tools>summary{justify-content:flex-end;min-height:44px;font-size:12px}
.workout-exercise-tools[open]{padding-bottom:12px;margin-bottom:9px;border-bottom:1px solid var(--line)}
.workout-exercise-tools>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.workout-exercise-tools button,.workout-session-tools button,.workout-record-tools button{min-height:44px}
.order-controls,.program-order{display:flex;gap:6px}
.order-btn{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:var(--panel2);color:var(--text);font-size:18px}
.mini-remove{min-width:44px;min-height:44px;color:var(--danger);border-radius:12px}
.workout-technique{margin:0 0 9px;border-bottom:1px solid var(--line)}
.workout-technique[open]{padding-bottom:14px}
.workout-technique .exercise-visual{display:grid;grid-template-columns:96px minmax(0,1fr);gap:15px;padding:0;background:transparent;border:0}
.workout-technique .workout-exercise-photo{width:96px;height:96px;max-height:96px;background:var(--soft);border-radius:12px;object-fit:contain}
.workout-technique p,.workout-technique .exercise-how{font-size:13px;line-height:1.6;color:var(--muted)}
.workout-technique .muscle-map-svg{max-height:230px}
.workout-technique .progression-advice,.workout-technique .workout-plan-line{display:block;background:var(--soft);border:0;border-radius:12px;padding:12px;margin-top:10px}
.workout-technique .progression-advice b,.workout-technique .workout-plan-line b{font-size:12px;color:var(--accent);display:block;margin-bottom:5px}
.workout-technique .progression-advice span,.workout-technique .workout-plan-line span{font-size:13px}
.workout-set-table{min-width:0;margin-top:10px}
.workout-set-table .set-head,.workout-set-table .set-row,.workout-set-table .set-entry,
.set-head.set-head-wide,.set-row.set-row-wide,.set-entry.set-entry-wide{
 display:grid;grid-template-columns:22px minmax(44px,.9fr) minmax(0,1fr) minmax(0,1fr) 48px;align-items:center;gap:6px;min-width:0;
}
.set-head{margin:8px 0 7px;color:var(--muted);font-size:10px;line-height:1.3;text-align:center;letter-spacing:0}
.set-row{margin-bottom:5px;min-height:45px}
.set-index{font-size:12px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}
.previous-cell{font-size:11px;color:var(--muted);background:transparent;line-height:1.35;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.set-row .set-value{padding:10px 3px;background:transparent!important;border:1px solid transparent!important;border-radius:0;font-size:16px;line-height:1.35;font-weight:600;font-variant-numeric:tabular-nums;text-align:center}
.set-ok-completed{display:grid;place-items:center;width:48px;min-height:44px;color:var(--accent);font-size:19px;background:transparent;border:0}
.set-entry{margin-top:10px;margin-bottom:4px;padding:9px 0 0;border-top:1px solid var(--line)}
.set-entry input,.set-entry.set-entry-wide input{min-width:0;width:100%;min-height:50px;padding:10px 3px;text-align:center;border:1px solid var(--line)!important;border-radius:12px!important;font-size:16px!important;font-weight:650;background:var(--panel2)!important;font-variant-numeric:tabular-nums}
.set-entry-wide .previous-cell{border:0!important;background:transparent!important;padding:4px 0;font-size:11px}
.set-entry button,.set-entry.set-entry-wide .add-set{display:grid;place-items:center;min-height:50px;width:48px;padding:0;background:var(--accent);color:var(--accent-text);border:0;border-radius:12px;font-size:24px;font-weight:500}
.workout-set-table .treadmill-set-grid,.treadmill-set-grid{grid-template-columns:18px minmax(34px,.85fr) repeat(3,minmax(0,1fr)) 48px!important;gap:5px!important}
.treadmill-set-grid .incline-val{min-width:0;padding:10px 2px}
.workout-sets-label{font-size:13px;font-weight:600;margin:12px 0 8px}
.workout-record-tools{margin-top:6px}
.workout-record-tools>summary{font-size:11px;min-height:44px}
.workout-record-tools .set-row{grid-template-columns:minmax(0,1fr) 44px}
.workout-record-tools .set-ok{width:44px;height:44px;color:var(--danger);background:var(--panel2)}
.prior-sets-card{margin:9px 0 12px;padding:12px;background:var(--soft);border:0;border-radius:13px}
.prior-sets-title{font-size:12px;font-weight:600}
.prior-sets-title time{font-size:11px;color:var(--muted)}
.prior-sets-list{display:flex;gap:6px;overflow:auto;flex-wrap:nowrap;margin:9px 0 6px;padding-bottom:2px}
.prior-set-chip{min-height:44px;flex:none;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--panel);font-size:13px}
.prior-set-chip span{font-size:11px}
.prior-set-chip.selected{border-color:var(--accent);background:var(--accent-soft)}
.prior-sets-card small{font-size:11px;line-height:1.5}
.previous-fill-inline,.previous-fill,.current-set-repeat{min-height:44px;padding:9px 10px;border:0;border-radius:10px;background:var(--panel2);color:var(--muted);font-size:12px;line-height:1.4}
.workout-add-exercise{min-height:52px;margin:8px 0 14px;background:transparent;border:1px dashed var(--line);color:var(--accent)}
.workout-finish-panel{display:grid;gap:12px;margin:28px 0 10px;padding-top:22px;border-top:1px solid var(--line)}
.workout-finish-panel>p,.workout-finish-panel .meta{margin:0;color:var(--muted);font-size:13px}
.workout-finish-panel .primary-btn,.workout-finish-bottom{min-height:54px;width:100%;font-size:15px}
.workout-total-time{padding:14px 0;font-size:13px;color:var(--muted)}
.workout-total-time b{color:var(--text);font-weight:600}
.workout-superset-badge,.superset-badge{background:var(--accent-soft);color:var(--accent)!important;border-radius:6px;font-size:10px!important;font-weight:650!important;letter-spacing:.035em;padding:5px 8px}
.workout-plan-muscles-collapsible{border:1px solid var(--line);border-radius:17px;background:transparent;margin:16px 0}
.workout-plan-muscles-collapsible>summary{min-height:54px;font-size:13px;font-weight:600;padding:0 16px}
.workout-plan-muscles-chevron{background:var(--panel2);border:0;color:var(--muted)}
.workout-input-assist{
 position:fixed;z-index:10000;left:50%;right:auto;transform:translateX(-50%);width:calc(100% - 16px);max-width:744px;
 display:grid;grid-template-columns:44px minmax(60px,1fr) 44px minmax(72px,.8fr);gap:6px;padding:7px;border:1px solid var(--line);border-radius:17px;
 background:var(--panel);box-shadow:0 8px 30px rgba(0,0,0,.2);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
}
.workout-input-assist[hidden]{display:none!important}
.workout-input-assist button{min-height:46px;min-width:0;padding:8px 7px;border:0;border-radius:11px;background:var(--panel2);color:var(--text);font-size:13px;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis}
.workout-input-assist .assist-next{background:var(--accent);color:var(--accent-text)}
.rest-dock{
 position:fixed;z-index:31;left:50%;bottom:calc(var(--nav-height) + 10px + env(safe-area-inset-bottom));transform:translateX(-50%);
 display:flex;align-items:center;gap:6px;width:calc(100% - 32px);max-width:744px;padding:9px 10px 9px 15px;
 background:var(--accent-soft);color:var(--text);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:18px;box-shadow:0 8px 35px rgba(0,0,0,.18);
}
.rest-dock[hidden],body.keyboard-open .rest-dock{display:none}
.rest-dock-copy{display:flex;flex-direction:column;min-width:52px;flex:1;gap:0}
.rest-dock-copy small{font-size:10px;color:var(--muted)}
.rest-dock-copy strong{font-size:21px;font-weight:650;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1.2;color:var(--accent)}
.rest-dock button{min-height:44px;min-width:44px;padding:8px;border:0;border-radius:11px;background:color-mix(in srgb,var(--panel) 45%,transparent);color:var(--text);font-size:12px;font-weight:600}
.rest-dock #restDockSkip{color:var(--accent)}
body:has(.rest-dock:not([hidden])) .content{padding-bottom:calc(192px + env(safe-area-inset-bottom))}

/* Plans and editor. */
.programs-head,.exercise-manage-head{align-items:flex-start;flex-wrap:wrap;margin:0 0 16px}
.programs-head h2,.exercise-manage-head h2{font-size:30px;letter-spacing:-.045em}
.programs-head>div:last-child,.exercise-manage-actions{display:flex;gap:7px;flex-wrap:wrap}
.program-intro{font-size:14px;line-height:1.55;color:var(--muted);margin:0 0 22px}
.program-section-label{margin:27px 0 13px;font-size:11px;letter-spacing:.085em;font-weight:600;color:var(--muted)}
.program-card{padding:20px;margin-bottom:14px}
.program-card .card-row h3{font-size:24px;letter-spacing:-.04em;line-height:1.2;margin-bottom:8px}
.program-card .card-row .meta{font-size:12px}
.program-card .badge{flex:none;font-size:9px}
.program-focus{font-size:12px;margin-top:7px;color:var(--accent)}
.program-exercises-rich{margin:18px 0;border-top:1px solid var(--line)}
.program-exercise-preview{display:grid;grid-template-columns:52px minmax(0,1fr);gap:13px;padding:12px 0;background:none;border-bottom:1px solid var(--line);border-radius:0}
.program-exercise-preview img{display:block;max-width:52px;width:52px;height:52px;object-fit:contain;border-radius:11px;background:var(--soft)}
.program-exercise-preview b{font-size:14px;font-weight:600;line-height:1.4}
.program-exercise-preview span{font-size:11px;line-height:1.4;margin-top:3px;color:var(--muted)}
.program-exercise-preview small{font-size:11px;margin-top:4px;color:var(--accent)}
.program-how{margin-top:5px}
.program-how summary{min-height:36px;display:flex;align-items:center;font-size:12px;font-weight:500;color:var(--muted)}
.program-how p{font-size:12px;line-height:1.65;color:var(--muted)}
.program-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:7px}
.program-actions button{min-height:46px;font-size:13px;padding:8px 12px}
.program-actions .delete-program{font-size:11px;min-width:0;overflow-wrap:anywhere;padding:4px 0;color:var(--muted)}
.program-recovery-note{font-size:13px;line-height:1.6;color:var(--muted);background:var(--soft);border:0;border-radius:12px;padding:12px;margin-top:12px}
.program-legacy{margin-top:24px;border-top:1px solid var(--line)}
.program-legacy>summary{min-height:54px;font-size:13px;font-weight:600;color:var(--muted)}
.program-name-input{font-size:21px!important;font-weight:650;padding:15px;min-height:56px;border-radius:15px;margin-bottom:16px}
.program-edit-list{gap:12px}
.program-edit-item{border:0;border-radius:18px;background:var(--panel);padding:16px}
.program-edit-rich{display:grid;grid-template-columns:58px minmax(0,1fr);gap:13px;align-items:start}
.program-edit-photo{width:58px;height:58px;border-radius:11px;object-fit:contain;background:var(--soft)}
.program-edit-copy b{font-size:15px;font-weight:650;line-height:1.35}
.program-edit-copy>span{font-size:12px;line-height:1.4;color:var(--muted);white-space:normal}
.program-edit-controls{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:5px}
.set-count-control{grid-template-columns:44px 26px auto 44px;gap:4px}
.set-count-control button{width:44px;height:44px;font-size:21px;border-radius:11px;background:var(--panel2)}
.set-count-control small{font-size:11px}
.superset-toggle{min-height:44px;padding:9px 11px;font-size:12px;border:1px solid var(--line);border-radius:10px;color:var(--muted)}
.program-edit-item.in-superset{border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-left:1px solid color-mix(in srgb,var(--accent) 45%,var(--line))}
.ai-coach-card,.ai-generated,.carryover-card{background:var(--panel)!important;border:0;border-radius:18px;padding:18px;margin:14px 0}
.ai-coach-head b,.ai-coach-copy b{font-size:15px;letter-spacing:-.02em}
.ai-coach-copy p,.ai-program-preview,.ai-next-result{font-size:13px;line-height:1.55;color:var(--muted)}
.ai-form-grid{gap:12px}
.ai-field{display:block;margin-bottom:15px;min-width:0}
.ai-field>span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}
.ai-field select,.ai-field input{width:100%;min-height:50px;border:1px solid var(--line);border-radius:13px}

/* Exercise library. */
.exercise-list{display:grid;grid-template-columns:minmax(0,1fr);gap:13px}
.exercise-card.exercise-card-compact{padding:16px!important}
.exercise-compact-head{grid-template-columns:58px minmax(0,1fr) 78px;gap:11px;align-items:center}
.exercise-compact-photo{width:58px;height:58px;border-radius:12px;background:var(--soft);object-fit:contain;border:0}
.exercise-compact-copy .name{font-size:15px;line-height:1.3;font-weight:650;letter-spacing:-.02em}
.exercise-compact-copy .muscles{font-size:12px;margin-top:5px;color:var(--muted)}
.exercise-compact-copy small{font-size:11px;margin-top:4px;line-height:1.3;color:var(--muted)}
.exercise-compact-progress{max-width:78px}
.exercise-compact-progress>small,.exercise-mini-trend>span{font-size:10px}
.exercise-card-actions.one-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:15px}
.exercise-card-actions .exercise-action-btn{min-height:44px;font-size:12px;padding:8px;border:0;border-radius:11px;background:var(--panel2);color:var(--text)}
.exercise-card-actions .exercise-action-btn.detail{background:var(--accent-soft);color:var(--accent);border:0}
.exercise-card-actions .exercise-action-btn.remove{color:var(--danger);background:var(--panel2)}
.exercise-card-actions .exercise-action-btn.restore{grid-column:1/-1;background:var(--accent);color:var(--accent-text)}
.exercise-add-workout{min-height:46px;font-size:13px;border-color:var(--line);border-radius:11px;margin-top:8px}
.exercise-expanded{padding-top:16px;margin-top:16px;border-top:1px solid var(--line)}
.exercise-expanded-meta{font-size:13px}
.exercise-desc,.technique,.exercise-how{font-size:13px;line-height:1.65;color:var(--muted)}
.machine-name{font-size:12px;color:var(--accent)}
.exercise-how summary{min-height:44px;font-size:12px}
.exercise-muscle-layout,.exercise-muscle-profile,.exercise-stats-panel{background:var(--soft);border:0;border-radius:15px;padding:14px}
.exercise-stat-grid>div{padding:12px;background:var(--panel2);border:0;border-radius:11px}
.exercise-stat-grid span,.exercise-stat-grid small{font-size:11px;color:var(--muted)}
.exercise-stat-grid b{font-size:18px;line-height:1.25}
.metric-block{background:transparent!important;border-color:var(--line);border-radius:0}
.metric-head b{font-size:13px}
.metric-head span,.metric-dates{font-size:11px;color:var(--muted)}
.metric-chart-empty{font-size:12px;line-height:1.6;color:var(--muted)}
.picker-item{min-height:79px;padding:13px;border:0;border-radius:14px;background:var(--soft);color:var(--text)}
.picker-item>img{width:54px;height:54px;flex:0 0 54px;border-radius:10px;object-fit:contain;background:var(--panel)}
.picker-copy>b{font-size:15px;font-weight:600;line-height:1.35}
.picker-copy>span{font-size:12px;line-height:1.4;color:var(--muted)}
.picker-copy>small{font-size:11px;color:var(--muted);margin-top:4px}
.picker-muscle-panel,.exercise-editor-muscle-map{background:var(--soft);border:0;border-radius:16px;padding:13px}
.picker-muscle-panel summary{min-height:44px;font-size:13px}
.exercise-photo-preview-wrap{background:var(--soft);border:0;border-radius:15px}
.photo-upload-button{min-height:50px;border-radius:13px;background:var(--panel2);border:1px solid var(--line);font-size:13px;font-weight:600}
.exercise-photo-upload small{font-size:11px;line-height:1.5}
img[src^="/assets/exercises/dacha/"]{background:var(--soft)!important;border-color:var(--line)!important}

/* Progress: generous numbers, compact explanations, consistent chart surfaces. */
.results-title{margin:2px 0 23px}
.results-title p{font-size:14px;color:var(--muted);margin:0}
.results-section-title{font-size:22px;font-weight:680;letter-spacing:-.035em;line-height:1.2;margin:34px 0 17px}
.result-range-card{padding:0;margin:0 0 20px;background:transparent;border:0}
.result-range-pills{display:flex;gap:7px;overflow:auto;padding:2px 0 12px;scrollbar-width:none}
.result-range-btn{flex:none;white-space:nowrap;font-size:12px;min-height:44px;padding:10px 13px}
.result-range-label{font-size:12px;line-height:1.5;color:var(--muted)}
.result-range-label b{color:var(--text);font-weight:550}
.result-custom-range{display:grid;grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);gap:7px;align-items:center;padding:10px 0}
.result-custom-range .result-apply-range{grid-column:1/-1;min-height:46px}
.result-custom-range input{min-height:48px;padding:10px 7px}
.result-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 20px}
.result-kpi{display:flex;flex-direction:column;justify-content:space-between;gap:13px;min-height:135px;padding:18px;background:var(--panel);border:0;border-radius:18px}
.result-kpi span{color:var(--muted);font-size:12px;font-weight:500}
.result-kpi strong{font-size:31px;line-height:1.08;letter-spacing:-.055em;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.result-kpi small{font-size:11px;line-height:1.4;color:var(--muted)}
.result-delta.up{color:var(--accent)}
.result-delta.down{color:var(--danger)}
.result-card{padding:20px;margin-bottom:13px}
.result-card-title{gap:13px;margin-bottom:16px}
.result-card-title h3{font-size:19px;letter-spacing:-.03em;font-weight:650}
.result-card-title>div>span{font-size:11px;color:var(--muted)}
.result-card-title>small{font-size:11px;color:var(--muted)}
.result-trend-grid{gap:14px}
.result-trend-grid>div{background:var(--soft);border:0;border-radius:13px;padding:12px}
.result-trend-grid span,.result-trend-grid small{font-size:11px}
.result-trend-grid b,.result-trend-grid strong{font-size:20px;letter-spacing:-.035em}
.chart,.metric-block svg,.result-trend-grid svg,.weight-chart svg{background:transparent!important;border-color:var(--line);box-shadow:none}
.chart{border:0;border-radius:13px}
.result-grid-line,.metric-grid{stroke:var(--line)}
.chart-axis,.results-note,.metric-dates{color:var(--muted)}
.result-record-list>button,.result-exercise-row{min-height:62px;background:var(--soft);border:0;border-radius:12px;padding:13px;margin-top:8px;color:var(--text)}
.result-exercise-row b,.result-record-list b{font-size:13px;font-weight:600}
.result-exercise-row small,.result-record-list small{font-size:11px;color:var(--muted);line-height:1.4}
.result-exercise-values{font-size:12px}
.muscle-detail-list{gap:14px}
.muscle-detail-head{font-size:13px}
.muscle-bar-head{font-size:12px}
.muscle-bar-track{background:var(--panel2);border-radius:5px;height:6px}
.muscle-bar-track i{border-radius:5px;background:var(--accent)}
.muscle-progress-card{background:var(--panel);border:0;border-radius:18px;padding:18px}
.muscle-progress-head b{font-size:17px;font-weight:650}
.muscle-progress-head span{font-size:12px;color:var(--muted)}
.muscle-progress-metrics{gap:8px}
.muscle-progress-metrics>div{border:0;background:var(--soft);border-radius:11px;padding:11px}
.muscle-progress-metrics b{font-size:18px}
.muscle-progress-metrics span,.muscle-progress-metrics small{font-size:11px}
.muscle-chart-legend{font-size:11px}
.muscle-progress-empty{font-size:12px;line-height:1.5}
.result-workout-card{background:var(--soft);border:0;border-radius:14px;margin-top:8px}
.result-workout-main{min-height:76px;padding:15px;gap:12px}
.result-workout-main b{font-size:15px;font-weight:600}
.result-workout-main span,.result-workout-main small{font-size:11px}
.result-workout-body{border-color:var(--line);padding:15px}
.result-more-workouts{min-height:48px;font-size:13px;background:var(--panel2);border:0;border-radius:12px;color:var(--text)}
.month-head{grid-template-columns:44px minmax(0,1fr) 44px;gap:7px;margin-bottom:20px}
.month-head h2{font-size:18px;font-weight:650;letter-spacing:-.03em}
.month-arrow,body[data-theme=light] .month-arrow{width:44px;height:44px;background:var(--panel2);border:0;border-radius:12px;color:var(--text);font-size:28px}
.cal-grid,.cal-weekdays{gap:5px}
.cal-weekdays span{font-size:11px;color:var(--muted)}
.cal-day{min-height:44px;border:0;border-radius:10px;background:var(--soft);color:var(--muted);font-size:13px}
.cal-day.trained{background:var(--accent-soft);border:0;color:var(--accent)}
.cal-day.trained:after{bottom:3px;width:4px;height:4px;background:var(--accent)}
.cal-day.today{box-shadow:inset 0 0 0 1px var(--accent)}
.cal-day.selected{background:var(--accent);color:var(--accent-text);border:0}
.day-detail{font-size:12px;line-height:1.5;border-color:var(--line)}
.weight-head>div>span{font-size:13px}
.weight-head strong{font-size:35px;font-weight:700;letter-spacing:-.05em}
.weight-head small{font-size:12px;color:var(--muted)}
.weight-add{width:46px;height:46px;border-radius:13px;background:var(--accent);color:var(--accent-text);font-size:26px}
.weight-history>span{grid-template-columns:minmax(0,1fr) auto 44px;font-size:12px;gap:8px;min-height:49px;border-color:var(--line)}
.weight-history button{min-height:44px;min-width:44px;font-size:21px}
.result-stats>div{display:flex;gap:15px;justify-content:space-between;padding:16px 0;border-color:var(--line)}
.result-stats>div span{font-size:13px;color:var(--muted)}
.result-stats>div strong{font-size:15px;font-weight:600;text-align:right}
.results-note{padding:10px 1px 25px;font-size:12px;line-height:1.7}
.consistency-card{padding:20px}
.consistency-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:23px}
.consistency-head b{font-size:19px;font-weight:650;letter-spacing:-.03em}
.consistency-head small{display:block;font-size:11px;color:var(--muted);margin-top:5px}
.consistency-head>strong{font-size:23px;letter-spacing:-.04em;line-height:1.15;white-space:nowrap;font-variant-numeric:tabular-nums}
.consistency-head>strong small{display:inline;font-size:10px;font-weight:500;letter-spacing:0}
.consistency-bars{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px}
.consistency-week{min-width:0;display:flex;align-items:center;flex-direction:column;gap:7px}
.consistency-track{display:flex;align-items:flex-end;height:105px;max-width:35px;width:100%;background:var(--soft);border-radius:7px;overflow:hidden}
.consistency-track i{display:block;width:100%;background:var(--accent);border-radius:7px}
.consistency-week b{font-size:12px;font-weight:600}
.consistency-week small{font-size:9px;line-height:1.3;color:var(--muted);white-space:nowrap}
.consistency-summary{display:flex;flex-wrap:wrap;gap:8px 20px;border-top:1px solid var(--line);margin-top:19px;padding-top:15px}
.consistency-summary span{font-size:12px;color:var(--muted)}
.consistency-summary b{font-size:14px;color:var(--text);font-weight:650;margin-right:4px}

/* Journal and reusable workout reports. */
.history-card{padding:0;margin-bottom:13px;border:0;border-radius:20px;background:var(--panel);overflow:hidden}
.history-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:18px}
.history-card-toggle{min-width:0;min-height:65px;color:var(--text);text-align:left}
.history-date{font-size:12px;color:var(--muted);font-weight:500}
.history-total{font-size:20px;letter-spacing:-.035em;font-weight:650;line-height:1.25;margin-top:7px}
.history-collapsed-meta{font-size:12px;margin-top:9px;color:var(--muted)}
.history-chevron{color:var(--accent)}
.history-card-body{padding:18px;border-top:1px solid var(--line)}
.history-actions{gap:7px}
.history-actions button{min-height:44px;font-size:12px}
.history-actions .edit-finished-workout{background:var(--panel2);color:var(--text);border:0;border-radius:10px;padding:9px 12px}
.history-actions .delete-workout{color:var(--danger);padding:9px}
.history-expanded-title{font-size:16px;letter-spacing:-.02em;font-weight:600}
.history-exercise-rich{background:var(--soft);border:0;border-radius:13px;padding:13px;gap:13px;grid-template-columns:75px minmax(0,1fr)}
.history-exercise-result b{font-size:13px;line-height:1.4;font-weight:600}
.history-exercise-result span,.history-exercise-result small{font-size:12px;color:var(--muted);line-height:1.5}
.history-exercise-muscles,.history-exercise-muscles .muscle-map-svg{height:77px}
.workout-summary-grid{gap:9px}
.workout-summary-grid>div{padding:13px;background:var(--soft);border:0;border-radius:12px}
.workout-summary-grid b{font-size:21px;letter-spacing:-.035em;font-weight:650}
.workout-summary-grid span{font-size:11px;color:var(--muted)}
.ai-review-card,.muscle-map-card,.workout-analysis-card{background:var(--soft);border:0;border-radius:16px;padding:17px}
.analysis-head b{font-size:17px;font-weight:600;letter-spacing:-.025em}
.analysis-head span{font-size:12px;color:var(--muted)}
.muscle-map-svg{max-width:100%}
.muscle-map-card .muscle-map-svg{max-height:340px}
.review-tips,.review-warning{font-size:13px;line-height:1.65}

/* Settings, menu and entry screen. */
.settings-head{gap:18px;margin:0 0 24px;align-items:center}
.settings-head .eyebrow{margin-bottom:7px}
.settings-card{padding:20px;margin-bottom:14px}
.settings-card h2{font-size:21px;font-weight:650;letter-spacing:-.03em;margin-bottom:21px}
.settings-grid,.settings-grid.three{gap:15px;grid-template-columns:repeat(2,minmax(0,1fr))}
.settings-grid label>span,.settings-wide>span{font-size:12px;color:var(--muted);line-height:1.4;margin-bottom:8px}
.settings-grid input,.settings-grid select,.settings-wide textarea,.settings-grid textarea{width:100%;min-height:50px;padding:12px;border:1px solid var(--line);border-radius:13px}
.settings-grid small{font-size:11px;line-height:1.5;margin-top:7px;color:var(--muted)}
.settings-wide{margin-top:18px}
.settings-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:17px}
.toggle-list{margin:18px 0;padding:8px 0;gap:3px}
.toggle-list label{min-height:52px;gap:12px;font-size:14px}
.toggle-list input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--accent)}
.profile-weight{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding-bottom:18px;margin-bottom:19px}
.profile-weight .text-btn{grid-column:1/-1;justify-self:start;padding-left:0}
.profile-weight span{font-size:13px}
.profile-weight strong{font-size:22px;font-weight:650}
.security-actions{display:flex;flex-wrap:wrap;gap:9px}
.security-actions button{flex:1;min-width:115px;font-size:13px}
.settings-save{min-height:54px;margin-top:9px;font-size:15px}
.push-box,body[data-theme=light] .push-box{display:flex;align-items:center;gap:12px;padding:15px;border:0;border-radius:15px;background:var(--soft)}
.push-box b{font-size:13px;line-height:1.4;font-weight:600}
.push-box span{font-size:12px;line-height:1.5;color:var(--muted);margin-top:6px}
.push-box .secondary-btn.small{min-height:44px}
.timer-display{font-size:66px;letter-spacing:-.06em;font-weight:650}
.menu-list,.more-menu{display:grid;gap:10px;margin:0}
.menu-link,.more-menu-item{display:flex;align-items:center;gap:15px;min-height:88px;width:100%;padding:19px;background:var(--panel);border:0;border-radius:19px;color:var(--text);text-align:left}
.menu-link>svg,.more-menu-item>svg{width:25px;height:25px;flex:0 0 25px;fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.menu-link>div,.more-menu-item>div{flex:1;min-width:0}
.menu-link strong,.more-menu-item strong{display:block;font-size:17px;font-weight:600;letter-spacing:-.02em}
.menu-link small,.more-menu-item small{display:block;font-size:12px;line-height:1.4;margin-top:5px;color:var(--muted)}
.menu-link>span,.more-menu-item>span{color:var(--muted);font-size:22px}
.pin-gate{padding:30px 22px;background:var(--panel);border:0;border-radius:24px;box-shadow:none}
.pin-logo{color:var(--text);font-size:23px;letter-spacing:-.05em;font-weight:750}
.pin-logo span{color:var(--text);font-weight:450}
.pin-lock-icon{width:66px;height:66px;margin:25px auto 21px;padding:0;background:transparent;border-radius:18px}
.pin-lock-icon img{width:66px;height:66px;border-radius:18px}
.pin-gate h1{font-size:28px;font-weight:700;letter-spacing:-.045em}
.pin-gate p{font-size:14px;line-height:1.6;color:var(--muted)}
.pin-gate small{font-size:11px;line-height:1.6;color:var(--muted)}
.pin-input{font-size:24px!important;min-height:58px!important;background:var(--panel2)!important;border:1px solid var(--line)!important;border-radius:14px;letter-spacing:.18em}

/* Layout boundaries: small phones remain usable without reducing field text. */
@media(min-width:620px){
 .content{padding:34px 30px calc(122px + env(safe-area-inset-bottom))}
 .topbar{padding-left:30px;padding-right:30px}
 .dashboard-session{padding:28px}
 .dashboard-session h2{font-size:36px}
 .dashboard-program-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .dashboard-program-button{min-height:164px}
 .result-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .exercise-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .program-edit-rich{grid-template-columns:66px minmax(0,1fr)}
 .program-edit-photo{width:66px;height:66px}
 .workout-exercise-head h3{font-size:20px}
 .workout-set-table .set-head,.workout-set-table .set-row,.workout-set-table .set-entry{grid-template-columns:30px minmax(70px,1fr) repeat(2,minmax(0,1fr)) 52px;gap:10px}
 .set-entry button,.set-entry.set-entry-wide .add-set,.set-ok-completed{width:52px}
 .set-entry input{min-height:54px}
}
@media(max-width:520px){
 .history-card .history-actions{display:none}
 .history-card.is-open .history-actions{display:flex;align-self:start}
 .history-card.is-open .history-card-head{grid-template-columns:minmax(0,1fr) auto;gap:7px}
 .history-actions button{max-width:98px;font-size:11px}
 .program-edit-controls{grid-column:1/-1}
 .exercise-manage-head>div:first-child{flex:1}
}
@media(max-width:390px){
 .content{padding-left:14px;padding-right:14px}
 .topbar{padding-left:14px;padding-right:14px;gap:8px}
 .brand-lockup{gap:8px}.brand-symbol{width:34px;height:34px;flex-basis:34px}.brand{font-size:17px}.subbrand{font-size:9px}
 .top-actions{gap:5px}.top-timer{min-width:64px;padding:0 8px}
 .dashboard-session{padding:19px}.dashboard-session h2{font-size:27px}
 .dashboard-overview{gap:9px}.dashboard-main-stat{padding:17px}.dashboard-main-stat strong{font-size:30px}.dashboard-side-stats{gap:9px}.dashboard-side-stats>div{padding:12px}
 .dashboard-program-grid{gap:9px}.dashboard-program-button{padding:16px;min-height:146px}.dashboard-program-button b{font-size:15px}
 .dashboard-week-days{gap:4px}.dashboard-day{min-height:74px;padding:12px 1px 9px}
 .exercise-workout,.exercise-workout:not(.is-collapsed),.exercise-workout.is-collapsed{padding:15px 12px}
 .workout-exercise-head{grid-template-columns:22px minmax(0,1fr) 44px;gap:7px}.workout-exercise-head h3{font-size:17px}
 .workout-set-table .set-head,.workout-set-table .set-row,.workout-set-table .set-entry,.set-head.set-head-wide,.set-row.set-row-wide,.set-entry.set-entry-wide{grid-template-columns:18px minmax(38px,.8fr) minmax(0,1fr) minmax(0,1fr) 48px;gap:4px}
 .workout-set-table .treadmill-set-grid,.treadmill-set-grid{grid-template-columns:16px minmax(29px,.7fr) repeat(3,minmax(0,1fr)) 48px!important;gap:3px!important}
 .set-entry button,.set-entry.set-entry-wide .add-set,.set-ok-completed{width:48px}
 .set-head{font-size:10px}.previous-cell,.set-entry-wide .previous-cell{font-size:10px}
 .workout-main-summary strong,.workout-main-summary b,.workout-plan-summary b{font-size:20px}
 .workout-main-summary span,.workout-main-summary small{font-size:10px}
 .workout-session-header{gap:9px}.workout-session-header h1{font-size:27px}
 .workout-session-header time,.workout-session-time{font-size:16px}
 .program-card{padding:17px}.program-card .card-row h3{font-size:21px}.program-card .badge{font-size:8px;padding:5px}
 .program-actions button{padding:8px 9px;font-size:12px}
 .exercise-card.exercise-card-compact{padding:14px!important}.exercise-compact-head{grid-template-columns:50px minmax(0,1fr) 63px;gap:8px}.exercise-compact-photo{width:50px;height:50px}.exercise-compact-copy .name{font-size:14px}.exercise-compact-progress{max-width:63px}
 .result-kpi-grid{gap:9px}.result-kpi{padding:15px;min-height:128px}.result-kpi strong{font-size:27px}
 .result-card{padding:17px}.consistency-head>strong{font-size:20px}.consistency-bars{gap:5px}.consistency-week small{font-size:8px}
 .settings-card{padding:17px}.settings-grid,.settings-grid.three{gap:13px;grid-template-columns:minmax(0,1fr)}
 .settings-grid label>span{font-size:12px}.settings-grid select,.settings-grid input{min-height:50px}
 .rest-dock{width:calc(100% - 20px);padding:8px;gap:4px}.rest-dock button{padding:7px;font-size:11px}.rest-dock-copy{min-width:45px;padding-left:3px}
 .nav-btn span,.large-ui .nav-btn span{font-size:9px}
}
body.large-ui .content{font-size:16px}
body.large-ui .workout-exercise-head h3{font-size:19px}
body.large-ui .set-entry input{font-size:18px!important}
body.large-ui .set-row .set-value{font-size:18px}
body.large-ui .primary-btn,body.large-ui .secondary-btn{min-height:50px}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 button:active{transform:none}
}

/* Stateful components shared by the workout, bottom sheets and compact plans. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
[hidden]{display:none!important}
.sheet:not(.open){visibility:hidden;pointer-events:none}
.sheet.open{visibility:visible;pointer-events:auto}
body.workout-keyboard-open .bottom-nav{visibility:hidden;pointer-events:none}
body.workout-keyboard-open .rest-dock{display:none}
.workout-exercise-heading{min-width:0}
.workout-exercise-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px;margin-top:7px}
.workout-exercise-meta .status-dot{flex:none;width:5px;height:5px;display:block;border-radius:50%;background:var(--muted);box-shadow:none}
.status-partial .workout-exercise-meta .status-dot,.status-done .workout-exercise-meta .status-dot{background:var(--accent)}
.workout-exercise-meta .workout-superset-badge{padding:3px 6px;margin:0;font-size:8px!important}
.workout-session-time{display:flex;flex-direction:column;align-items:flex-end;font-size:30px;font-weight:650;line-height:1.1;letter-spacing:-.045em;padding-top:5px}
.workout-session-time small{margin-top:5px;font-size:11px;font-weight:500;line-height:1.2;letter-spacing:0;color:var(--muted)}
.workout-session-progress{height:auto;padding:0;margin:16px 0 22px;background:transparent;overflow:visible}
.workout-session-progress>div{display:flex;justify-content:space-between;align-items:center;gap:12px;height:auto;margin-bottom:11px;background:transparent;color:var(--muted);font-size:12px}
.workout-session-progress>div>span{height:auto;background:transparent;color:var(--muted);border-radius:0}
.workout-session-progress progress{display:block;appearance:none;-webkit-appearance:none;border:0;width:100%;height:5px;background:var(--panel2);border-radius:5px;overflow:hidden}
.workout-session-progress progress::-webkit-progress-bar{background:var(--panel2);border-radius:5px}
.workout-session-progress progress::-webkit-progress-value{background:var(--accent);border-radius:5px}
.workout-session-progress progress::-moz-progress-bar{background:var(--accent);border-radius:5px}
.set-entry .previous-cell.previous-fill-inline{
 display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:50px;padding:4px 0;
 background:transparent!important;border:0!important;border-radius:0;color:var(--muted);font-size:11px;font-weight:500;line-height:1.3;
}
.set-entry .previous-cell.previous-fill-inline:not(:disabled){color:var(--accent)}
.set-entry .previous-cell.previous-fill-inline:disabled{opacity:.6}
.workout-incline-field{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:13px 0 5px;padding-top:12px;border-top:1px solid var(--line)}
.workout-incline-field span{font-size:12px;color:var(--muted);line-height:1.5}
.workout-incline-field input{width:88px;min-height:46px;padding:10px;text-align:center;border:1px solid var(--line);font-size:16px!important}
.set-incline-note{margin:-3px 0 8px 22px;color:var(--muted);font-size:11px;line-height:1.4}
.workout-volume-line{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:13px 0 6px;font-size:11px;color:var(--muted)}
.workout-reference{margin:9px 0 0;border:0;border-bottom:1px solid var(--line);background:transparent}
.workout-reference>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;list-style:none;font-size:12px;line-height:1.4;font-weight:500;color:var(--muted);cursor:pointer}
.workout-reference>summary::-webkit-details-marker{display:none}
.workout-reference>summary span{font-size:10px;color:var(--muted);font-weight:400;text-align:right}
.workout-reference .prior-sets-card{margin-top:3px}
.workout-reference .prior-set-chip{margin:0;max-width:none}
.workout-technique{margin-bottom:0}
.workout-technique-content{display:grid;grid-template-columns:96px minmax(0,1fr);gap:13px;padding:8px 0 2px}
.workout-technique-content>.workout-exercise-photo{width:96px;height:116px;max-height:116px;object-fit:contain}
.workout-technique-muscles{height:116px;min-width:0;overflow:hidden;border-radius:12px;background:var(--soft)}
.workout-technique-muscles .muscle-map-svg{width:100%;height:116px;max-height:116px}
.workout-technique-content .workout-muscle-labels,.workout-technique-content .progression-advice{grid-column:1/-1;margin:0}
.workout-technique-content .workout-muscle-labels{padding:0;border:0}
.workout-technique-content .workout-muscle-labels b{font-size:12px;font-weight:600}
.workout-technique-content .workout-muscle-labels span{font-size:12px;margin-top:5px}
.workout-exercise-tools>summary{justify-content:space-between}
.workout-exercise-tools>summary::after{content:"+";font-size:19px;font-weight:400}
.workout-exercise-tools[open]>summary::after{content:"−"}
.workout-exercise-tool-buttons{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.workout-exercise-tool-buttons>.remove-item{color:var(--danger)}
.workout-record-tools{display:flex!important;flex-wrap:wrap;gap:7px;padding-top:13px;margin-top:10px;border-top:1px solid var(--line)}
.workout-record-tools>span{display:block;flex:0 0 100%;font-size:11px;line-height:1.5;color:var(--muted)}
.workout-record-tools>button{min-height:44px;padding:8px 10px;font-size:12px;border-radius:11px;background:var(--panel2);color:var(--muted)}
.workout-record-tools>button>span{color:var(--danger);font-size:18px;margin-left:6px}
.workout-finish-panel>div{display:flex;align-items:baseline;justify-content:space-between;gap:9px 14px;flex-wrap:wrap}
.workout-finish-panel>div>b{font-size:19px;font-weight:650;letter-spacing:-.025em}
.workout-finish-panel>div>span{font-size:12px;color:var(--muted)}
.workout-finish-panel .primary-btn{justify-content:space-between;padding:14px 18px}
.workout-finish-panel .primary-btn>span{font-size:23px;font-weight:400}
.workout-empty{padding:26px}
.workout-empty h1{font-size:34px;letter-spacing:-.05em;line-height:1.08;margin:18px 0 15px}
.workout-empty p{font-size:15px;color:var(--muted);margin-bottom:25px}
.workout-empty>.secondary-btn{margin-top:10px}
.programs-toolbar{display:flex;gap:9px;margin:0 0 21px;flex-wrap:wrap}
.programs-toolbar button{flex:1;min-width:120px}
.program-list{display:grid;gap:0}
.program-exercises-details{margin:15px 0 12px}
.program-exercises-details>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 0;border-top:1px solid var(--line);list-style:none;font-size:13px;font-weight:550;color:var(--text);cursor:pointer}
.program-exercises-details>summary::-webkit-details-marker{display:none}
.program-exercises-details>summary>span{font-size:11px;font-weight:400;color:var(--muted)}
.program-exercises-details>summary::after{content:"+";color:var(--muted);font-size:20px;font-weight:400}
.program-exercises-details[open]>summary::after{content:"−"}
.program-exercises-details .program-exercises-rich{margin:0 0 13px;border-top:0}
.dashboard-session h2{white-space:pre-line}
.dashboard-week-goal{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dashboard-week-goal>strong{font-size:17px;font-weight:650;letter-spacing:-.025em}
.dashboard-week-goal>strong>span,.dashboard-week-goal>span{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0}
.dashboard-week-progress{margin:0 0 17px}
@media(max-width:390px){
 .workout-session-time{font-size:26px}
 .set-entry .previous-cell.previous-fill-inline{font-size:10px}
 .workout-reference>summary{font-size:11px;gap:5px}
 .workout-reference>summary span{font-size:9px}
 .workout-input-assist{grid-template-columns:44px minmax(0,1fr) 44px 75px;gap:5px;max-width:calc(100% - 12px);padding:6px}
 .workout-input-assist button{font-size:12px}
 .program-exercises-details>summary{gap:8px;font-size:12px}
 .program-exercises-details>summary>span{font-size:10px}
 .workout-empty{padding:23px}
}

/* Timer sheet is deliberately opt-in; legacy stylesheet hides it globally. */
.timer-sheet.open{display:block!important}
.timer-sheet:not(.open){display:none!important}
.workout-technique-content>.workout-description,.workout-technique-content>.workout-instructions{grid-column:1/-1;font-size:13px;line-height:1.65;color:var(--muted)}
.workout-description p,.workout-instructions p{font-size:13px;line-height:1.65;margin:5px 0}
.workout-instructions>b{color:var(--text);font-size:12px;font-weight:600}
