:root{color-scheme:dark;--bg:#11130f;--surface:#1a1d18;--surface2:#22261f;--line:#30352c;--text:#f2f1e9;--muted:#a0a496;--green:#c4f06d;--green-ink:#1a2410;--orange:#f3a66b;--radius:20px;font-family:'DM Sans',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh;padding:0 0 env(safe-area-inset-bottom)}button,input,select{font:inherit}button{color:inherit}.shell{width:min(100%,760px);margin:auto;padding:0 18px 34px}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:9px;align-items:center;text-decoration:none;color:var(--text);font:800 21px Manrope,sans-serif;letter-spacing:-1px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--green);color:var(--green-ink);font:800 19px Manrope}.account-button,.icon-button{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;border-radius:50%;font-size:18px;cursor:pointer}.welcome{padding:22px 2px 20px}.eyebrow{margin:0 0 8px;color:var(--green);font-size:11px;letter-spacing:1.4px;font-weight:700}.welcome h1,.auth-view h1{font:800 clamp(29px,8vw,42px)/1.08 Manrope,sans-serif;letter-spacing:-1.4px;margin:0}.tabs{display:flex;gap:6px;padding:5px;background:#1a1d18;border-radius:15px;margin-bottom:22px}.tab{border:0;background:transparent;color:var(--muted);padding:11px 12px;border-radius:11px;flex:1;font-size:13px;font-weight:600;cursor:pointer}.tab.active{color:var(--text);background:#30352c}.panel{padding-bottom:20px}.session-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.session-heading h2,.section-heading h2{font:700 24px Manrope,sans-serif;letter-spacing:-.6px;margin:0}.session-heading .eyebrow{margin-bottom:5px}.select-wrap select{width:100%;height:46px;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:0 13px;color:var(--text);appearance:auto}.workout-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;padding:12px 2px 9px}.save-state{color:var(--green)}.save-state.saving{color:var(--orange)}.exercise-list{display:grid;gap:11px}.exercise-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px}.exercise-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.exercise-name{font:700 16px/1.3 Manrope,sans-serif;margin:0}.plan-label{font-size:11px;color:var(--muted);margin-top:5px}.weight-stepper{display:flex;align-items:center;gap:5px;flex:0 0 auto}.weight-step{width:38px;height:42px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);font-size:23px;line-height:1;cursor:pointer;touch-action:manipulation}.weight-current{min-width:48px;text-align:center;font:700 17px Manrope,sans-serif;white-space:nowrap}.weight-current small{font:500 10px 'DM Sans',sans-serif;color:var(--muted);margin-left:3px}.sets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:13px}.set-cell{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:3px;min-width:0;background:#151713;border:1px solid var(--line);border-radius:12px;padding:4px}.set-reps{height:42px;min-width:0;width:100%;background:var(--surface2);border:1px solid var(--line);border-radius:9px;padding:0 4px;color:var(--text);text-align:center;font-size:13px}.set-check{border:1px solid var(--line);background:#282c25;color:var(--text);border-radius:9px;width:100%;min-width:0;height:42px;padding:0 2px;cursor:pointer;font-size:10px;font-weight:700;touch-action:manipulation}.set-check.done{background:var(--green);border-color:var(--green);color:var(--green-ink)}.set-caption{grid-column:1/-1;font-size:10px;color:var(--muted);text-align:left;margin:0 0 1px 2px}.history-exercises{margin-top:11px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;line-height:1.8;color:#d1d4c8}.session-actions{display:grid;gap:9px;margin-top:18px}.button{border:0;border-radius:14px;min-height:52px;padding:0 17px;font-weight:700;cursor:pointer}.button.primary{background:var(--green);color:var(--green-ink)}.button.ghost{background:var(--surface);border:1px solid var(--line);color:var(--text)}.button.ghost span{color:var(--green);margin-left:7px}.full{width:100%}.rest-timer{text-align:center;font:700 26px Manrope;color:var(--green);margin:2px}.app-footer{border-top:1px solid var(--line);margin-top:20px;padding:14px 2px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px}.text-button{border:0;background:transparent;color:var(--green);font-size:13px;padding:8px 0;cursor:pointer}.history-list,.progress-list{display:grid;gap:10px}.history-card,.progress-row{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:15px}.history-card h3,.progress-row h3{font:700 15px Manrope;margin:0 0 5px}.history-date,.history-details,.progress-meta{font-size:12px;color:var(--muted)}.history-details{margin-top:10px}.history-delete{float:right;background:none;border:0;color:var(--muted);padding:2px 5px;cursor:pointer}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:15px}.stat-card strong{font:800 27px Manrope;display:block}.stat-card span{font-size:11px;color:var(--muted)}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px;margin:12px 0}.chart-title{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:17px}.chart-title h3{margin:0;font:700 15px Manrope}.chart-title span{font-size:10px;color:var(--muted)}.weekly-chart{height:130px;display:flex;align-items:flex-end;justify-content:space-around;gap:12px}.week-bar{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;flex:1}.bar-count{font-size:11px;color:var(--muted)}.bar-track{height:85px;width:min(34px,100%);background:#292d25;border-radius:9px;display:flex;align-items:flex-end;overflow:hidden}.bar-fill{width:100%;background:var(--green);border-radius:9px;min-height:3px}.bar-label{font-size:10px;color:var(--muted)}.progress-row{display:flex;justify-content:space-between;gap:8px;align-items:center}.progress-values{text-align:right;font-size:13px;font-weight:700}.progress-values small{display:block;color:var(--muted);font-weight:400;font-size:10px;margin-top:4px}.empty-state{color:var(--muted);font-size:13px;text-align:center;padding:32px 16px;background:var(--surface);border-radius:16px}.auth-view{padding:44px 4px 24px;max-width:430px;margin:0 auto}.auth-intro{margin:13px 0 28px;line-height:1.5}.muted{color:var(--muted)}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:7px;font-size:12px;color:var(--muted)}.auth-form input{height:50px;border-radius:13px;background:var(--surface);border:1px solid var(--line);padding:0 14px;color:var(--text);font-size:16px}.auth-form .button{margin-top:5px}.form-message{font-size:12px;min-height:18px;color:var(--orange)}.secondary-link{display:block;color:var(--muted);margin-top:8px}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%,16px);background:var(--text);color:var(--bg);border-radius:30px;padding:12px 18px;font-size:13px;font-weight:700;opacity:0;pointer-events:none;transition:.2s;z-index:10;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}@media(min-width:640px){.shell{padding-inline:26px}.exercise-list{grid-template-columns:repeat(2,minmax(0,1fr))}.session-actions{grid-template-columns:1fr 1fr}.session-actions .rest-timer{grid-column:1/-1}.auth-view{padding-top:70px}}

html[data-theme='forest']{--bg:#0f1713;--surface:#17231c;--surface2:#203128;--line:#32463a;--green:#9ce6ae;--green-ink:#102017}
html[data-theme='warm']{--bg:#18130f;--surface:#241c17;--surface2:#30241c;--line:#49372a;--green:#ffc27a;--green-ink:#29190b}
html[data-theme='light']{color-scheme:light;--bg:#f3f4ee;--surface:#fff;--surface2:#eef0e8;--line:#d9ddd1;--text:#20241c;--muted:#697061;--green:#51852e;--green-ink:#fff}
.menu-button{width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:grid;align-content:center;justify-items:center;gap:5px;cursor:pointer}
.menu-button span{width:18px;height:2px;background:var(--text);border-radius:2px}
.drawer-backdrop{position:fixed;inset:0;z-index:20;background:#0009;display:flex;justify-content:flex-end}
.drawer-backdrop[hidden]{display:none}
.drawer{width:min(84vw,340px);height:100%;padding:calc(18px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));background:var(--surface);box-shadow:-15px 0 45px #0004;display:flex;flex-direction:column;gap:7px}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:3px 2px 20px;font:700 22px Manrope,sans-serif}
.drawer-close{border:0;border-radius:50%;width:40px;height:40px;background:var(--surface2);font-size:25px;cursor:pointer}
.drawer-link,.drawer-account{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-radius:14px;background:transparent;color:var(--text);padding:15px 14px;text-align:left;font-size:16px;cursor:pointer}
.drawer-link b{font-size:22px;color:var(--muted);font-weight:400}
.drawer-link.active{background:var(--surface2);color:var(--green)}
.drawer-separator{height:1px;background:var(--line);margin:12px 0}
.drawer-account{display:grid;gap:5px;background:var(--surface2)}
.drawer-account b{font-size:12px;color:var(--muted);font-weight:500}
.setting-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 2px;border-bottom:1px solid var(--line)}
.setting-row span{display:grid;gap:5px}.setting-row strong{font-size:14px}.setting-row small,.settings-note{font-size:11px;color:var(--muted)}
.setting-row select{min-width:110px;max-width:138px;height:42px;border:1px solid var(--line);border-radius:11px;background:var(--surface2);color:var(--text);padding:0 9px}
.toggle-input{appearance:none;width:48px;height:28px;border-radius:20px;background:var(--line);position:relative;flex:0 0 auto;cursor:pointer}
.toggle-input:after{content:'';position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:var(--text);transition:.16s}
.toggle-input:checked{background:var(--green)}.toggle-input:checked:after{left:23px;background:var(--green-ink)}
.settings-note{line-height:1.5;margin-top:16px}
.exercise-info{min-width:0;flex:1}.exercise-card.complete{border-color:var(--green);background:color-mix(in srgb,var(--green) 9%,var(--surface))}
.set-cell.done{border-color:var(--green);background:color-mix(in srgb,var(--green) 18%,var(--surface))}
.set-cell.done .set-caption{color:var(--green)}
.edit-field{width:100%;min-width:0;height:40px;border:1px solid var(--line);border-radius:9px;padding:0 9px;background:var(--surface2);color:var(--text);font:600 13px 'DM Sans',sans-serif}
.edit-name{font:700 15px Manrope,sans-serif}.edit-fields{display:grid;gap:6px;margin-top:7px}.edit-fields label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}.edit-reps{width:65px}
.exercise-card.is-editing{border-style:dashed}

.sets{display:grid;grid-template-columns:1fr;gap:0;margin-top:12px}
.set-progress{font-size:11px;color:var(--muted);margin:0 0 8px}
.set-progress.finished{color:var(--green);font-weight:700}
.current-set{display:grid;gap:6px}
.current-set-label{font-size:12px;color:var(--text);font-weight:600}
.current-set-row{display:grid;grid-template-columns:minmax(72px,1fr) auto;align-items:center;gap:8px}
.reps-entry{height:48px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid var(--line);border-radius:12px;background:#151713;min-width:0}
html[data-theme='light'] .reps-entry{background:var(--surface2)}
.reps-entry input{width:100%;min-width:25px;border:0;outline:0;background:transparent;color:var(--text);font-size:18px;font-weight:700;text-align:center;padding:0}
.reps-entry span{flex:0 0 auto;font-size:10px;color:var(--muted)}
.current-set .weight-stepper{gap:3px}
.current-set .weight-step{width:36px;height:46px}
.weight-record{height:46px;min-width:66px;border:0;border-radius:12px;background:var(--green);color:var(--green-ink);font-size:14px;font-weight:800;padding:0 7px;cursor:pointer;touch-action:manipulation}
.done-summary{font-size:11px;color:var(--muted);line-height:1.65;overflow-wrap:anywhere}

.exercise-list{gap:8px}
.exercise-card.compact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(94px,.72fr);grid-template-areas:'info current';gap:6px;align-items:center;padding:9px 10px;min-height:88px;border-radius:16px}
.exercise-card.compact-layout.complete{border-color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--surface))}
.compact-layout .exercise-info{grid-area:info;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.compact-layout .exercise-name{font-size:13px;line-height:1.18;margin:0}
.compact-layout .plan-label{font-size:9px;line-height:1.2;margin:0}
.compact-layout .weight-stepper{margin-top:4px;gap:2px}
.compact-layout .weight-step{width:31px;height:32px;border-radius:9px;font-size:19px}
.compact-layout .weight-current{min-width:35px;font-size:13px}
.compact-layout .weight-current small{font-size:8px;margin-left:2px}
.active-set{grid-area:current;min-width:0;padding:6px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--green) 7%,var(--surface))}
.active-set.finished{border-color:var(--green)}
.active-set .current-set-label{display:block;font-size:9px;line-height:1.2;margin:0 0 5px;color:var(--muted)}
.active-set.finished .current-set-label{color:var(--green);font-weight:700}
.active-set .current-set-row{grid-template-columns:minmax(0,1fr) 44px;gap:4px}
.active-set .set-reps{height:34px;border-radius:8px;font-size:12px;padding:0 3px}
.active-set .weight-record{min-width:0;width:44px;height:34px;border-radius:8px;padding:0 2px;font-size:10px}
.active-set .done-summary{font-size:8px;line-height:1.35}
@media(max-width:350px){.exercise-card.compact-layout{grid-template-columns:minmax(0,1fr) minmax(88px,.72fr);gap:5px;padding:8px}.active-set{padding:5px}.active-set .current-set-row{grid-template-columns:minmax(0,1fr) 42px;gap:3px}.active-set .weight-record{width:42px}}

.welcome.last-workout{padding:8px 2px 13px}
.last-workout .eyebrow{margin-bottom:4px}
.last-session{margin:0;color:var(--muted);font:500 13px 'DM Sans',sans-serif;line-height:1.35}
.session-heading{margin-bottom:7px}
.session-picker{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.session-picker .eyebrow{margin-bottom:3px}
.session-picker h2{font:700 18px/1.2 Manrope,sans-serif;letter-spacing:-.3px;margin:0}
.picker-caret{display:grid;place-items:center;flex:0 0 34px;height:34px;border:1px solid var(--line);border-radius:11px;background:var(--surface);font-size:20px;color:var(--muted);transition:transform .15s}
.session-picker[aria-expanded='true'] .picker-caret{transform:rotate(180deg)}
.workout-picker{margin:0 0 10px}
.workout-picker[hidden]{display:none}
.workout-picker .select-wrap select{height:42px;font-size:13px}

.last-workout-summary{margin:2px 0 0;color:var(--text);font:700 12px Manrope,sans-serif}
.active-set{display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:auto minmax(0,1fr);gap:4px;align-items:stretch}
.active-set .current-set-label{grid-column:1;grid-row:1}
.active-set .current-set-row{grid-column:1;grid-row:2;grid-template-columns:minmax(0,1fr);min-width:0}
.active-set .weight-record{grid-column:2;grid-row:1 / span 2;align-self:stretch;width:44px;height:auto;min-height:0}
.active-set.finished{display:block}
@media(max-width:350px){.active-set .weight-record{width:42px}}
#restButton{position:fixed;z-index:18;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:auto!important;min-height:48px;padding:0 18px;border:1px solid #bd6660;border-radius:999px;background:linear-gradient(135deg,#9d4540,#712a2b);color:#fff;box-shadow:0 8px 26px #0006;font-size:13px;font-weight:700}
#restButton span{margin-left:8px;font-variant-numeric:tabular-nums}
.timer-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:env(safe-area-inset-top) 20px env(safe-area-inset-bottom);background:radial-gradient(ellipse at 50% 25%,#ad454a 0%,#761f28 58%,#3d1017 100%);color:#fff}
.timer-overlay[hidden]{display:none}
.timer-content{text-align:center}
.timer-eyebrow{margin:0 0 18px;color:#ffd8d4;font-size:12px;font-weight:700;letter-spacing:2px}
.timer-count{font:800 clamp(76px,25vw,140px)/1 Manrope,sans-serif;letter-spacing:-5px;font-variant-numeric:tabular-nums}
.timer-caption{margin:18px 0 0;color:#ffe7e4;font-size:15px}
.timer-close{position:absolute;top:calc(14px + env(safe-area-inset-top));right:18px;width:48px;height:48px;border:1px solid #ffffff55;border-radius:50%;background:#ffffff18;color:#fff;font-size:32px;line-height:1}

.timer-overlay{background:radial-gradient(ellipse at 50% 25%,#4e9367 0%,#286443 58%,#173c2a 100%)}
.timer-overlay.expired{background:radial-gradient(ellipse at 50% 25%,#ad454a 0%,#761f28 58%,#3d1017 100%)}

.exercise-edit-actions{display:flex;gap:6px;align-items:center;margin-top:8px;padding-top:7px;border-top:1px solid var(--line)}
.exercise-edit-actions button{min-width:36px;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2,var(--surface));color:var(--text);font:700 13px Manrope,sans-serif}
.exercise-edit-actions button:disabled{opacity:.35}
.exercise-edit-actions .delete-exercise{margin-left:auto;color:var(--danger,#e17c76)}
.add-exercise-button{margin:10px 0}

#restButton{border-color:color-mix(in srgb,var(--line) 72%,var(--green) 28%);background:color-mix(in srgb,var(--surface2) 82%,var(--green) 18%);color:var(--muted);box-shadow:0 5px 18px #0002}
#restButton:hover{color:var(--text);background:color-mix(in srgb,var(--surface2) 72%,var(--green) 28%)}
#restButton span{color:inherit}
.honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.about-button{margin-top:6px}
.about-dialog{width:min(100% - 32px,420px);border:1px solid var(--line);border-radius:20px;padding:20px;background:var(--surface);color:var(--text);box-shadow:0 24px 80px #0008}
.about-dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}
.about-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.about-heading h2{margin:0;font:700 22px Manrope,sans-serif}
.about-heading .eyebrow{margin-bottom:4px}
.about-dialog>p{display:grid;gap:5px;margin:14px 0;color:var(--muted);font-size:14px}
.about-dialog>p strong{color:var(--text);font-size:12px}
.about-dialog a{color:var(--green)}
