@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#111512;--panel:#1a1f1b;--soft:#222923;--ink:#eef0e9;--muted:#a6afa4;--line:#343d33;--control-line:#66735f;--lime:#b5ca8b;--lime-ink:#17200e;--warn:#e8c38e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px 'DM Sans',system-ui,sans-serif;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--lime)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--lime);text-decoration:none}button,input,select{min-height:44px}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;padding:34px 24px;border-right:1px solid var(--line);background:#151a16;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;font:800 21px Manrope,sans-serif;letter-spacing:-1px;color:var(--ink)}.brand-mark{display:grid;place-content:center;position:relative;background:var(--lime);color:var(--lime-ink);border-radius:9px;font-size:26px;width:38px;height:38px}.brand-mark span{position:absolute;font-size:14px;right:4px;top:0}.accent{color:var(--lime)}.brand-tag{font-size:9px;letter-spacing:1.8px;margin:17px 0 0;color:#869381}nav{display:grid;gap:7px;margin-top:54px}nav button{display:flex;gap:14px;align-items:center;background:none;border:0;color:var(--muted);padding:13px 15px;text-align:left;border-radius:9px;font-weight:600}nav button span{width:22px;font-size:23px;font-weight:400}nav button.active{background:var(--lime);color:var(--lime-ink)}nav button:hover:not(.active){background:var(--soft);color:var(--ink)}.sidefoot{margin-top:auto;font-size:12px}.sidefoot p{color:#8d9a87;line-height:1.8}.small-status{font-size:8px;letter-spacing:1.1px;color:var(--muted)}i{display:inline-block;background:var(--lime);width:5px;height:5px;border-radius:50%;margin-right:6px}main{margin-left:240px;padding:26px 40px 0;max-width:1580px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:24px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.device-badge{font-size:11px;color:var(--muted)}h1,h2,h3,h4{font-family:Manrope,system-ui,sans-serif;line-height:1.2;letter-spacing:-.8px}h1{font-size:34px;margin:0 0 10px;font-weight:700}h2{font-size:22px;margin:0 0 12px}h3{font-size:17px;margin:0 0 8px}p{color:var(--muted);margin:8px 0 16px}.page-title{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 0 24px}.page-title p{margin:0}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.wrap{flex-wrap:wrap}.hero{position:relative;isolation:isolate;min-height:275px;background:#253027;border:1px solid #475340;border-radius:16px;overflow:hidden;display:flex;align-items:center;padding:36px;margin-bottom:23px}.hero:before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/training.jpg') center 50%/cover}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(16,24,18,.97),rgba(16,24,18,.75) 55%,rgba(16,24,18,.15))}.hero h2{font-size:38px;max-width:570px;line-height:1.12;margin:14px 0}.hero p{max-width:460px;color:#c4cdbf;margin:14px 0 22px}.hero .eyebrow{color:var(--lime)}.btn{border:1px solid transparent;background:var(--lime);color:var(--lime-ink);padding:12px 18px;border-radius:8px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{filter:brightness(1.08)}.btn.secondary{background:var(--soft);border-color:var(--line);color:var(--ink)}.btn.outline{background:transparent;border-color:var(--line);color:var(--ink)}.link{border:0;background:none;color:var(--lime);padding:8px 3px;font-size:13px}.danger{color:#f2ada4}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}.statnum{font:600 31px Manrope,sans-serif;letter-spacing:-1px;margin:8px 0 1px;line-height:1.3}.statnum small{font-size:14px;letter-spacing:0;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:23px;min-width:0}.stack{display:grid;gap:16px}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.grid.equal{grid-template-columns:1fr 1fr}.small{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.pill{display:inline-block;border-radius:5px;background:#2d3825;color:#c6d7a5;padding:5px 9px;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.pill.neutral{background:var(--soft);color:var(--muted)}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:18px}.day{text-align:center;background:var(--soft);border-radius:7px;padding:12px 2px;min-width:0}.day span{display:block;font-size:10px;color:var(--muted)}.day b{font-size:16px;display:block;margin:7px 0}.day small{font-size:8px;letter-spacing:.3px;color:var(--muted)}.day.current{border:1px solid var(--lime);background:#2b3524}.day.complete b{color:var(--lime)}.exercise{padding:21px 0;border-bottom:1px solid var(--line)}.exercise:last-child{border-bottom:0}.empty{padding:25px 0}.notice{padding:15px 18px;background:#242e20;color:#c6d6b6;border:1px solid #3c4a31;border-radius:8px;font-size:12px;line-height:1.7;margin:17px 0}.notice.warning{background:#332c20;color:var(--warn);border-color:#5d4d32}.notice p{color:inherit}.notice button{font-size:12px}label{display:grid;gap:7px;font-size:12px;color:var(--muted);min-width:0}input,select,textarea{width:100%;border:1px solid var(--control-line);background:#121811;border-radius:7px;padding:10px 12px;color:var(--ink);max-width:100%}textarea{resize:vertical;min-height:80px}input[type=checkbox]{width:19px;height:19px;min-height:0;accent-color:var(--lime);flex-shrink:0}label.check-label{display:flex;align-items:center;gap:10px;min-height:44px}form{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.editor-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.builder{background:#151b16;border:1px solid var(--line);border-radius:9px;padding:18px;margin:15px 0}.builder-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px;margin-bottom:15px}.builder .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.set{display:grid;grid-template-columns:30px 1fr 1fr 1fr 46px;gap:9px;align-items:center;margin:9px 0}.set input{min-width:0;padding:10px 8px}.set button{border:1px solid var(--line);background:var(--soft);color:var(--muted);border-radius:7px;font-size:20px}.set.done{color:var(--lime)}.set.done input{background:#273321;border-color:#566947}.set.done button{background:var(--lime);color:var(--lime-ink)}.set-heading{font-size:9px;letter-spacing:1px;color:var(--muted)}.table-scroll{overflow:auto}.trendtable{border-collapse:collapse;width:100%;font-size:12px}.trendtable td,.trendtable th{text-align:left;border-bottom:1px solid var(--line);padding:12px 9px;white-space:nowrap}.trendtable th{color:var(--muted);font-weight:500}.chart{height:160px;display:flex;gap:9px;align-items:end;margin-top:30px;padding-top:15px}.bar{background:var(--lime);flex:1;min-width:10px;max-width:80px;position:relative;border-radius:4px 4px 0 0}.bar span{position:absolute;bottom:calc(100% + 5px);font-size:10px;color:var(--muted);white-space:nowrap}.macro-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.meter{height:4px;background:#394231;border-radius:5px;overflow:hidden;margin-top:13px}.meter b{display:block;height:100%;background:var(--lime)}summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 0;font-weight:600}details>summary + *{margin-top:10px}.routine-list{display:grid;gap:13px}.routine-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.index{font-size:11px;color:var(--lime);letter-spacing:1px}.program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.plan-price{font-size:12px;color:var(--muted)}.feature-list{list-style:none;padding:0;margin:20px 0}.feature-list li{padding:8px 0;color:var(--muted);font-size:13px}.feature-list li:before{content:'✓';color:var(--lime);margin-right:10px}.pro-card{border-color:#596746;background:linear-gradient(140deg,#273022,#192018)}.toast{position:fixed;bottom:24px;left:calc(50% + 100px);transform:translateX(-50%);background:#d4e2bd;color:#1c2815;padding:13px 22px;border:1px solid #b5ca8b;border-radius:9px;font-size:13px;box-shadow:0 8px 40px #0006;z-index:50;max-width:600px;width:max-content}footer{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#8b9786;padding:30px 0;border-top:1px solid var(--line);margin-top:36px}.skip{position:absolute;top:-60px;left:15px;padding:12px;background:var(--lime);color:var(--lime-ink);z-index:80}.skip:focus{top:12px}progress{width:100%;accent-color:var(--lime);height:6px}.setup{max-width:620px;margin:28px auto}.setup h1{font-size:29px;margin-top:20px}.setup label{margin-top:10px}#restDock{position:fixed;bottom:20px;right:24px;background:var(--soft);border:1px solid var(--lime);padding:10px 15px;border-radius:10px;z-index:22;font-size:12px}#restDock button{min-height:30px;padding:0 8px}#restDock strong{font:700 20px Manrope;margin:0 10px}.icon-btn{min-width:44px}.nutrition-photo{width:100%;height:140px;object-fit:cover;border-radius:8px}.footnote{font-size:11px;margin-top:18px}.photo-credit{font-size:9px;opacity:.65}.review-box{margin-top:14px;padding:14px;background:#141a15;border-radius:8px}svg.sparkline{width:100%;height:100px}.section-heading{margin:28px 0 16px}.bodyweight-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.mobile-only{display:none}
@media(max-width:1100px){.sidebar{width:210px;padding:28px 20px}main{margin-left:210px;padding:24px}.grid{grid-template-columns:1fr}.hero h2{font-size:34px}.hero{min-height:250px}.statnum{font-size:28px}footer{display:block}footer span{display:block;margin-top:7px}}
@media(max-width:680px){body{font-size:14px}.sidebar{position:static;width:auto;height:auto;padding:18px 18px 13px;border:0;background:var(--bg)}.brand{font-size:20px}.brand-mark{width:34px;height:34px;font-size:23px}.brand-tag,.sidefoot{display:none}nav{position:fixed;left:0;right:0;bottom:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:7px 7px calc(7px + env(safe-area-inset-bottom));background:#181f19f5;border-top:1px solid var(--line);backdrop-filter:blur(12px)}nav button{flex-direction:column;gap:1px;padding:7px 2px;font-size:10px;min-height:52px;border-radius:8px}nav button span{font-size:21px;width:auto}nav button.active{background:#2e3b25;color:var(--lime)}main{margin:0;padding:0 16px 78px}header{display:none}.page-title{padding:18px 0 20px;align-items:start}.page-title .btn{font-size:11px;padding:9px 11px;white-space:nowrap}h1{font-size:28px}.page-title p{font-size:12px}.hero{min-height:260px;padding:26px 23px;border-radius:12px}.hero h2{font-size:32px}.hero p{font-size:13px;max-width:260px}.hero:after{background:linear-gradient(90deg,rgba(16,24,18,.94),rgba(16,24,18,.6))}.stats{gap:8px;margin:16px 0}.stats .card{padding:14px 10px}.stats .small{font-size:9px}.statnum{font-size:24px}.card{padding:19px}.grid,.grid.equal{grid-template-columns:1fr;gap:16px}.week{gap:4px}.day b{font-size:14px}.day small{font-size:7px}.form-grid.four{grid-template-columns:1fr 1fr}.macro-stats{grid-template-columns:1fr 1fr}.macro-stats .card{padding:16px}.row{flex-wrap:wrap}.set{gap:5px;grid-template-columns:23px 1fr 1fr 1fr 42px}.set input{padding:10px 5px}.set-heading{font-size:8px}.builder{padding:14px}.builder .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.program-grid{grid-template-columns:1fr}.toast{bottom:90px;left:16px;right:16px;transform:none;width:auto;max-width:none}.routine-actions{gap:9px}.routine-actions .btn{padding:10px 14px}.bodyweight-form{grid-template-columns:1fr 1fr}.bodyweight-form .btn{grid-column:1/-1}.setup{margin:15px 0}.setup h1{font-size:25px}#restDock{bottom:88px;right:16px;padding:7px 10px}footer{margin-top:28px;padding:24px 0}.mobile-only{display:block}}
@media(prefers-reduced-motion:no-preference){.btn,nav button{transition:background .15s,filter .15s}.hero,.card{animation:appear .2s ease-out}@keyframes appear{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}}

/* Keep phone inputs readable without focus zoom; respect device safe areas. */
@media(max-width:680px){input,select,textarea{font-size:16px}.set{grid-template-columns:23px 1fr 1fr 1fr 44px}main{padding-bottom:calc(78px + env(safe-area-inset-bottom))}#restDock{bottom:calc(88px + env(safe-area-inset-bottom))}.toast{bottom:calc(90px + env(safe-area-inset-bottom))}}
#restDock button{min-width:44px;min-height:44px}

/* A calmer, task-first interface. Core controls stay within easy reach. */
:root{--bg:#101411;--panel:#191f1a;--soft:#242c25;--ink:#f1f3ed;--muted:#aeb8aa;--line:#364034;--lime:#c2d79b;--lime-ink:#192411}
html{scroll-padding-top:110px}body{font-variant-numeric:tabular-nums}h1,h2,h3,strong{overflow-wrap:anywhere}button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}.mobile-storage{display:none}
nav button span{display:grid;place-items:center}nav svg{width:22px;height:22px;display:block}.btn{min-height:48px;border-radius:10px;padding:12px 18px;letter-spacing:-.15px}.link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 6px;line-height:1.4}.card{border-radius:16px;padding:24px}.eyebrow{line-height:1.5;letter-spacing:1.6px}.page-title>div{min-width:0}.page-title{gap:16px}.page-title h1{font-weight:800;letter-spacing:-1.15px}.page-title p{line-height:1.6}.row>div{min-width:0}.small{line-height:1.6}.pill{font-size:10px;letter-spacing:.7px;border-radius:6px}.statnum{font-weight:700;letter-spacing:-1.2px}.stats .card{background:linear-gradient(140deg,#20271f,#191f1a)}
.hero{border-radius:20px;padding:38px 40px;min-height:290px;border-color:#46533e}.hero:before{background-position:center 57%}.hero:after{background:linear-gradient(90deg,rgba(13,20,14,.96),rgba(13,20,14,.78) 50%,rgba(13,20,14,.28))}.hero-content{max-width:610px}.hero h2{font-size:44px;font-weight:800;letter-spacing:-1.7px;margin:14px 0}.hero p{font-size:15px;line-height:1.7}.hero .editor-actions{gap:10px}.hero-secondary{background:#1c271ab8;border-color:#667455;color:#e9efdf}.hero .btn span{margin-left:12px}.meter{height:5px;background:#384431}.week{gap:8px}.day{padding:13px 3px;background:#232c23;border:1px solid transparent}.day.current{border-color:#879d68;background:#2a3725}.day.complete{background:#2b3925}.day small{font-size:9px;letter-spacing:.2px}.day span{font-size:11px}.day b{font-size:18px;margin:8px 0}.week-note{margin:16px 0 4px}.fuel-card{display:flex;flex-direction:column;align-items:flex-start}.fuel-card .editor-actions{margin-top:auto}.core-note{display:flex;flex-wrap:wrap;gap:4px 12px;border-color:#35442d;background:#1c2719}.routine-card h2{margin-bottom:9px}.routine-card>.row{gap:20px}.routine-card>.row>.btn{flex-shrink:0}.routine-card .routine-actions{border-top:1px solid var(--line);padding-top:10px}.routine-actions .danger{margin-left:auto}.program-library{margin-top:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.program-library>summary{display:flex;gap:16px;align-items:center;padding:22px 0;list-style:none;font:700 19px Manrope,system-ui,sans-serif}.program-library>summary::-webkit-details-marker{display:none}.program-library>summary>.small{margin-left:auto;white-space:nowrap;font:400 12px 'DM Sans',system-ui,sans-serif}.program-library>summary:after{content:'＋';font:400 24px system-ui;color:var(--lime)}.program-library[open]>summary:after{content:'−'}.program-content{padding-bottom:12px}.program-content>p{font-size:13px;max-width:700px}
.session-toolbar{position:sticky;top:12px;z-index:10;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px 16px;border:1px solid #46583c;border-radius:12px;background:#192219f5;backdrop-filter:blur(12px);padding:12px 16px;box-shadow:0 8px 28px #0003}.session-save{display:block;font-size:11px;margin-top:4px}.session-toolbar progress{grid-column:1/-1;margin:0;height:5px;border:0;border-radius:10px;overflow:hidden;background:#3a4633}.session-toolbar progress::-webkit-progress-bar{background:#3a4633}.session-toolbar progress::-webkit-progress-value{background:var(--lime)}.session-toolbar progress::-moz-progress-bar{background:var(--lime)}.workout-layout .workout-log{padding:0;border:0;background:transparent}.workout-log>.exercise{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:16px;margin-bottom:16px}.exercise-number{display:block;color:#c2d39f;font-size:10px;margin-bottom:13px}.workout-log h2{font-size:22px;margin:0}.workout-log .row>.pill{flex-shrink:0}.set{grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 48px;gap:8px}.set>span:first-child{text-align:center;color:var(--muted);font-size:12px}.set input{height:48px;text-align:center;border-radius:9px;background:#111810}.set input::placeholder{color:#7f8b79;opacity:1}.set button{height:48px}.set-heading{margin-top:20px;letter-spacing:.7px;font-size:10px}.set-heading>span{text-align:center}.set.done>span:first-child{color:var(--lime)}.review-box{border:1px solid #303d2b;margin-top:20px;background:#151c15}.review-box .check-label{line-height:1.6}.workout-log details{margin-top:10px}.workout-log details>summary{font-size:13px}.workout-log details .pill{font-size:9px;margin-left:5px}.workout-log>.editor-actions{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);justify-content:space-between;margin-top:20px}.workout-log>.editor-actions>.btn{flex:1}.workout-layout>.stack{position:sticky;top:120px}#restDock{border-color:#698251;box-shadow:0 8px 32px #0005;display:flex;align-items:center;gap:2px;padding:6px 10px 6px 16px}#restDock[hidden]{display:none}#restDock strong{font-variant-numeric:tabular-nums;min-width:60px;text-align:center}.toast{line-height:1.5}body:has(#restDock:not([hidden])) .toast{bottom:96px}
.diary-tools{padding:4px 0}.diary-tools label{max-width:240px}.macro-stats .eyebrow{text-transform:uppercase}.macro-remaining{margin:8px 0 0;font-size:11px}.nutrition-jumps{display:flex;gap:12px;align-items:center;margin:20px 0}.nutrition-jumps>.link{margin-left:auto}.portion-preview{font-size:12px;line-height:1.8;padding:13px 15px;border-radius:9px;border:1px solid #435536;background:#25311f;color:#d5e1c4}.barcode-card>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;list-style:none;font-size:17px}.barcode-card>summary::-webkit-details-marker{display:none}.barcode-card>summary:after{content:'＋';color:var(--lime)}.barcode-card[open]>summary:after{content:'−'}.barcode-card>summary .small{margin-left:auto;font-weight:400}.empty-mark{display:grid;place-items:center;width:42px;height:42px;margin-bottom:14px;background:#2a3823;color:var(--lime);font-size:23px;border-radius:12px}.diary-empty p{max-width:300px}.diary-empty{padding:18px 0 0}.diary-empty .link{padding-left:0}.diary-empty h3{font-size:19px}#foodEntry,#diaryEntries,#manualTargets{scroll-margin-top:24px}input,select,textarea{border-color:#4a5842}input:hover,select:hover,textarea:hover{border-color:#6b7c5e}input:focus,select:focus,textarea:focus{border-color:var(--lime)}.check-label{cursor:pointer}.check-label input{width:20px;height:20px}footer{line-height:1.6}
@media(min-width:1101px){main{padding-left:44px;padding-right:44px}.home-stats .card{padding:22px 24px}}
@media(max-width:1100px){.workout-layout>.stack{position:static}.hero h2{font-size:38px}.hero{padding:32px}.set{grid-template-columns:30px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 48px}.card{padding:22px}}
@media(max-width:680px){
 body{font-size:14px}.sidebar{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:20px 18px 12px}.brand{font-size:21px;letter-spacing:-.8px;gap:10px}.brand-mark{width:34px;height:34px}.mobile-storage{display:flex;align-items:center;font-size:10px;color:var(--muted)}.mobile-storage i{width:5px;height:5px;margin-right:5px}nav{padding:8px 8px calc(8px + env(safe-area-inset-bottom));gap:4px}nav button{font-size:11px;gap:5px;min-height:56px;padding:7px 2px;border-radius:11px}nav button.active{background:#2e3d25;box-shadow:inset 0 0 0 1px #526644}nav svg{width:21px;height:21px}main{padding:0 16px calc(90px + env(safe-area-inset-bottom))}.page-title{padding:18px 0 22px;flex-wrap:wrap;gap:13px}.page-title>div{flex:1 1 215px}.page-title h1{font-size:29px;letter-spacing:-1px;max-width:340px}.page-title p{font-size:13px}.page-title>.btn{font-size:13px;padding:11px 15px;min-height:44px}.card{padding:20px;border-radius:15px}.hero{padding:27px 24px;min-height:290px;border-radius:18px;margin-bottom:18px}.hero h2{font-size:37px;line-height:1.1;letter-spacing:-1.4px}.hero p{font-size:13px;max-width:300px;margin-bottom:18px}.hero:after{background:linear-gradient(90deg,rgba(13,20,14,.95),rgba(13,20,14,.68))}.hero .eyebrow{font-size:9px;letter-spacing:1.5px}.hero .btn{font-size:13px}.hero .editor-actions{gap:8px}.hero-secondary{padding:11px 14px}.stats{gap:8px}.home-stats .card{padding:15px 11px}.home-stats .eyebrow{font-size:9px;letter-spacing:.9px;display:block;min-height:27px}.home-stats .small{font-size:10px;line-height:1.5}.statnum{font-size:26px;margin:5px 0}.statnum small{font-size:12px}.home-stats .meter{margin-top:10px}.week{gap:4px}.day{padding:11px 1px}.day span{font-size:9px}.day b{font-size:16px}.day small{font-size:8px}.core-note{padding:15px 17px}.routine-card>.row{gap:17px}.routine-card>.row>.btn{width:100%}.routine-card .routine-actions{gap:8px;justify-content:space-between}.routine-actions .link{font-size:12px}.program-library>summary{font-size:16px;gap:12px}.program-library>summary>.small{display:none}.program-content>p{font-size:12px}.session-toolbar{top:8px;padding:11px 12px;gap:9px 8px;margin-bottom:18px}.session-toolbar>.btn{font-size:12px;min-height:44px;padding:9px 11px}.session-toolbar .pill{font-size:9px;letter-spacing:.5px}.session-save{font-size:10px}.workout-log{padding:0}.workout-log>.exercise{padding:18px 14px}.workout-log h2{font-size:21px}.workout-log .row{gap:10px}.workout-log .row>.pill{font-size:10px}.set{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 44px;gap:6px}.set input{font-size:16px;padding:10px 3px}.set button{height:48px}.set-heading{font-size:9px;letter-spacing:.4px}.set-heading>span:first-child{font-size:9px}.review-box{padding:12px}.review-box .check-label{font-size:12px;gap:9px}.workout-log>.editor-actions{padding:14px}.workout-log>.editor-actions>.btn{flex-basis:100%}.workout-log>.editor-actions>.link{margin:0 auto}.macro-stats .card{padding:17px}.macro-stats .small{font-size:11px}.macro-stats .statnum{font-size:28px}.macro-stats .eyebrow{font-size:10px}.diary-tools .pill{font-size:9px}.nutrition-jumps{margin:18px 0}.nutrition-jumps .btn{font-size:13px}.portion-preview{font-size:12px}.nutrition-layout .form-grid{gap:12px}.nutrition-layout label{font-size:12px}.barcode-card>summary{font-size:16px}.barcode-card>summary .small{font-size:11px}.bodyweight-form .btn{margin-top:4px}#restDock{bottom:calc(92px + env(safe-area-inset-bottom));right:16px}.toast{bottom:calc(92px + env(safe-area-inset-bottom))}body:has(#restDock:not([hidden])) .toast{bottom:calc(165px + env(safe-area-inset-bottom))}footer{font-size:11px}
}
@media(max-width:360px){.mobile-storage{font-size:9px}.brand{font-size:19px}.hero{padding:25px 20px}.hero h2{font-size:33px}.home-stats .card{padding:13px 9px}.home-stats .eyebrow{font-size:8px}.session-toolbar .pill{font-size:8px}.session-toolbar>.btn{font-size:11px}.set{gap:4px}.workout-log>.exercise{padding:16px 12px}.day small{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero,.card{animation:none}}

/* Date planning and compact, evidence-led coaching. */
.planner-card { margin: 20px 0; }
.planner-card h2 { margin-top: 8px; }
.planner-form { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 18px; }
.planner-list { margin-top: 18px; }
.planned-session { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; border-top: 1px solid var(--line); }
.planned-session h3 { margin: 8px 0; overflow-wrap: anywhere; }
.plan-actions { display: grid; gap: 10px; justify-items: end; flex-shrink: 0; }
.plan-state { margin-top: 4px; }
.home-plan .planned-session:last-child { padding-bottom: 0; }
.day.planned:not(.complete) { box-shadow: inset 0 0 0 1px var(--lime); }
.coach-tip { padding: 14px 16px; border-left: 3px solid var(--lime); border-radius: 4px 12px 12px 4px; background: rgba(199,229,151,.07); color: var(--ink); font-size: 15px; line-height: 1.6; }
.weekly-review { margin-top: 20px; }
.review-focus { display: grid; gap: 10px; }
.review-focus li { line-height: 1.6; }
.review-evidence { margin-top: 16px; }
@media(max-width:600px) {
 .planned-session { align-items: stretch; flex-direction: column; gap: 12px; }
 .plan-actions { justify-items: stretch; }
 .plan-actions .btn { width: 100%; }
 .planner-card > .row { align-items: flex-start; flex-wrap: wrap; }
 .coach-tip { font-size: 15px; padding: 12px; }
}

/* iPhone native date/time controls must not push into a neighboring field. */
input[type="date"], input[type="time"] {
 box-sizing: border-box;
 min-width: 0;
 width: 100%;
 max-width: 100%;
 height: 48px;
 min-height: 48px;
}
input[type="date"]::-webkit-date-and-time-value,
input[type="time"]::-webkit-date-and-time-value {
 min-height: 1.2em;
 text-align: left;
}
@media(max-width:680px) {
 .bodyweight-form,
 .planner-form > .form-grid,
 .reminder-timing {
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
 }
 .bodyweight-form > label,
 .planner-form > .form-grid > label,
 .reminder-timing > label {
  min-width: 0;
  width: 100%;
 }
 .bodyweight-form input,
 .planner-form input,
 .planner-form select,
 .reminder-timing input {
  min-width: 0;
  width: 100%;
  max-width: 100%;
  height: 48px;
  min-height: 48px;
 }
 .bodyweight-form > .btn { grid-column: 1; width: 100%; }
}

/* Saved routines: prior results are references, notes belong to the next session. */
.routine-library-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin: 18px 0 10px; }
.routine-library-heading p { margin: 0; flex: 1 1 240px; }
.previous-performance { padding: 14px; margin: 18px 0; border: 1px solid var(--line); border-radius: 10px; background: #131a14; min-width: 0; }
.previous-performance .eyebrow { font-size: 10px; color: var(--muted); }
.previous-performance p { margin: 7px 0; overflow-wrap: anywhere; }
.previous-sets { list-style: none; padding: 0; margin: 12px 0 4px; display: flex; flex-wrap: wrap; gap: 8px; }
.previous-sets li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 8px; border: 1px solid #354331; padding: 8px 10px; border-radius: 7px; min-width: 0; max-width: 100%; font-size: 12px; }
.previous-sets li span { color: var(--muted); font-size: 11px; }
.previous-performance .link { text-align: left; justify-content: flex-start; white-space: normal; padding-left: 0; }
.today-sets { margin: 22px 0 5px; font-size: 11px; color: var(--lime); }
.today-set-hint { margin: 0 0 8px; }
.exercise-notes { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); min-width: 0; }
.exercise-notes label { margin-bottom: 8px; font-size: 13px; color: var(--ink); font-weight: 600; }
.exercise-notes textarea, .builder-notes textarea { display: block; box-sizing: border-box; min-width: 0; width: 100%; max-width: 100%; min-height: 96px; line-height: 1.5; }
.exercise-notes p { margin: 7px 0 3px; font-size: 11px; }
.note-status { display: block; min-height: 18px; font-size: 11px; }
#sessionHistory { scroll-margin-top: 24px; }
@media(max-width:680px) {
 .exercise-notes textarea, .builder-notes textarea { font-size: 16px; }
 .previous-performance { padding: 12px; }
 .previous-sets { display: grid; grid-template-columns: minmax(0, 1fr); }
 .previous-sets li { justify-content: space-between; }
 .routine-library-heading .link { justify-content: flex-start; padding-left: 0; }
}

/* Exact-product discovery and canonical label-serving entry. Native selects retain
   keyboard and phone picker behavior without a custom autocomplete overlay. */
.food-search{padding:16px;background:var(--soft);border:1px solid var(--line);border-radius:10px;margin:18px 0 22px;min-width:0}
.food-search form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}
.food-search p{margin-bottom:0;overflow-wrap:anywhere}.food-search [hidden]{display:none}
.food-search #foodSearchResults{margin-top:16px}.food-search #useFoodSearch{margin-top:12px}
.food-search select,.food-quantity select{min-width:0;max-width:100%;text-overflow:ellipsis}
.food-name{flex:1 1 180px}.food-basis,.food-unit-help{margin:0;line-height:1.65;overflow-wrap:anywhere}
.food-basis{padding:10px 12px;border-left:2px solid var(--lime);background:var(--soft)}
.food-amount{margin:0;overflow-wrap:anywhere}
@media(max-width:680px){.food-search form,.nutrition-layout .food-quantity{grid-template-columns:minmax(0,1fr)}.food-search input,.food-search select,.food-quantity input,.food-quantity select,#foodServingGrams,#foodBasis{min-height:48px;font-size:16px}.food-search{padding:14px}.food-search .btn{min-height:48px;width:100%}}

/* Clear workout timing and accessible duration controls. */
.workout-timing{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);gap:24px;margin-bottom:20px}.workout-timing .statnum{font-variant-numeric:tabular-nums;margin:8px 0}.duration-editor{min-width:0}.duration-editor summary{cursor:pointer;font-weight:700}.duration-editor form{display:grid;gap:12px;margin-top:14px}.duration-editor input,.exrest,#restDuration{min-height:48px;min-width:0;max-width:100%;font-size:16px}.duration-editor .editor-actions{margin-top:0}.set-heading small{display:block;font-size:9px;font-weight:400}#restDuration{margin:8px 0 0}#workoutElapsed{font-size:40px}
@media(max-width:680px){.workout-timing{grid-template-columns:minmax(0,1fr);gap:12px}.duration-editor .editor-actions{align-items:stretch;flex-direction:column}.duration-editor .btn{width:100%}}

/* Nutrition: find → amount → add. Secondary tools stay out of the main flow. */
.nutrition-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.nutrition-shortcuts .btn{font-size:12px;min-height:44px}
.nutrition-simple [hidden]{display:none!important}.nutrition-simple .food-search{margin:12px 0 0;padding:0;background:none;border:0}.nutrition-scan{margin:7px 0 0}.nutrition-simple .food-search .footnote{font-size:10px;margin-top:15px}
.nutrition-simple .food-search #foodSearchResults{padding:14px;background:var(--soft);border-radius:9px}.nutrition-simple .food-search #foodSearchDetail{line-height:1.55}
.food-amount-step>h2{margin:12px 0;overflow-wrap:anywhere}.food-amount-step #foodLogButton{min-height:48px;width:100%}.food-amount-step #foodLoadingStatus:empty{display:none}.food-amount-step .food-quantity label{font-size:13px}.food-label-details{border-top:1px solid var(--line);padding-top:5px}.food-label-details>summary{font-size:13px;color:var(--muted)}.food-label-details p{margin:0}.food-label-details>.stack{padding-top:12px}.nutrition-panel,.food-amount-step{scroll-margin-top:18px}.nutrition-week>summary{font-size:14px}.nutrition-week .table-scroll{margin-top:12px}
@media(max-width:680px){.nutrition-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.nutrition-shortcuts .btn{padding:10px 6px;font-size:11px;line-height:1.35}.nutrition-simple .food-search form{grid-template-columns:minmax(0,1fr) auto;align-items:end}.nutrition-simple .food-search form .btn{width:auto;padding:10px 15px}.nutrition-simple .food-quantity{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.nutrition-simple .food-quantity input,.nutrition-simple .food-quantity select{min-height:50px;font-size:16px}.food-amount-step .row{align-items:start}.food-amount-step .row>.link{font-size:11px}.nutrition-simple #foodSearchChoice{font-size:16px;min-height:50px;width:100%}.nutrition-simple .food-basis{font-size:12px}.nutrition-diary .exercise{padding:15px 0}}

/* Navigation and progressive-disclosure settings: no data migration. */
.settings-card {margin:20px 0;}
.settings-card > summary {font-weight:700;font-size:17px;cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.settings-card > summary::after {content:'＋';color:var(--lime);}
.settings-card[open] > summary::after {content:'−';}
.settings-card[open] > summary {margin-bottom:16px;}
.settings-section {border-top:1px solid var(--line);padding:16px 0;}
.settings-section > summary {min-height:44px;cursor:pointer;font-weight:600;}
.training-days {border:0;padding:0;margin:16px 0;}
.training-days legend {font-weight:600;margin-bottom:8px;}
.about-details {margin-top:24px;}
@media(max-width:680px){nav button{min-width:0;font-size:10px;min-height:56px;}nav{gap:2px;padding-left:6px;padding-right:6px;}.settings-card > summary{font-size:16px;}.settings-card > summary .small{font-size:11px;}}

@media(max-width:680px){.session-toolbar{position:static;top:auto;box-shadow:none;}.workout-layout>.stack{position:static;}.exercise-notes>summary{min-height:44px;cursor:pointer;}.workout-log details[data-workout-disclosure]>summary{min-height:44px;line-height:1.5;}.exercise-notes[open]>summary{margin-bottom:12px;}}

/* Session adaptations stay inline and closed until asked for. */
.session-options-preview,.session-inline-panel{padding:16px;margin-top:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.session-options-preview h3,.session-inline-panel h3{margin:0}.session-options-preview input[type=number]{max-width:180px}
.short-session-choices{display:grid;gap:8px;margin-top:14px}.short-session-choices label{align-items:flex-start}.short-session-choices small{display:block;color:var(--muted);font-weight:400}
.session-options-actions{display:flex;gap:10px 18px;flex-wrap:wrap;padding:8px 0}.session-exercise-options{margin:8px 0 12px}.session-exercise-options>summary{font-size:13px;color:var(--muted);width:fit-content;min-height:32px}
.equipment-memory{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin:6px 0}.equipment-memory .link{font-size:12px}.session-plan-note{margin:12px 0}
.session-inline-panel select,.session-inline-panel input{min-width:0;width:100%;max-width:100%}.session-inline-panel .row{gap:12px}.session-options-actions button[disabled]{opacity:.45;cursor:default}
@media(max-width:680px){.session-inline-panel .form-grid{grid-template-columns:minmax(0,1fr)}.session-inline-panel input,.session-inline-panel select,.session-options-preview input{font-size:16px;min-height:48px}.session-options-actions button{min-height:44px}.session-options-preview,.session-inline-panel{padding:12px}}

/* Compact side logging: a paired set stays one logical set. */
.unilateral-set{border:1px solid var(--line,#d8d4cc);border-radius:12px;padding:8px;margin:12px 0;min-width:0}.unilateral-set legend{font-size:.8rem;font-weight:700;padding:0 6px}.unilateral-set .set{grid-template-columns:42px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 40px}.side-form{display:flex;align-items:center;gap:6px;margin:0 0 8px}.side-form input{width:16px;min-height:16px}.logging-mode{max-width:240px}.logging-mode select{padding:8px}

/* Personal exercise-name prefix suggestions: keyboard and touch friendly. */
.exercise-suggestions{max-height:260px;overflow:auto;border:1px solid var(--line,#465048);border-radius:10px;margin-top:6px;background:var(--card,#1b211c)}
.exercise-suggestions[hidden]{display:none}
.exercise-suggestions [role="option"]{padding:12px;min-height:44px;cursor:pointer;line-height:1.5}
.exercise-suggestions [role="option"]:hover,.exercise-suggestions [aria-selected="true"]{background:#34432a;color:#fff;outline:2px solid #b1ce73;outline-offset:-2px}
.exercise-suggestion-status{display:block;margin-top:6px}
.completed-workout-calendar{margin-top:20px}.completed-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:16px}.completed-calendar-grid>strong{font-size:.75rem;text-align:center}.completed-calendar-day{min-height:76px;padding:6px;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}.completed-calendar-day>span{display:block;font-size:.75rem}.completed-calendar-day.has-workout{background:rgba(184,205,134,.08)}.completed-calendar-day button{display:block;text-align:left;font-size:.72rem;line-height:1.3;padding:5px 0;max-width:100%}@media(max-width:480px){.completed-calendar-day{padding:3px;min-height:60px}.completed-calendar-day button{font-size:.65rem}.completed-workout-calendar>.row{align-items:flex-start;gap:12px;flex-wrap:wrap}}

/* Nutrition: visible alternatives, natural manual-entry order, persistent save errors. */
.nutrition-find-alternatives{display:flex;flex-wrap:wrap;gap:4px 18px}.nutrition-find-alternatives .link{min-height:44px}.food-amount-step .food-label-details{margin:16px 0}.food-save-status:empty{display:none}.food-save-status{color:var(--warn);line-height:1.6;margin:12px 0 0}

/* New-session live sharing invitation: private by default, native modal keyboard handling. */
.live-start-prompt{max-width:440px;width:calc(100% - 32px);box-sizing:border-box;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:24px}.live-start-prompt::backdrop{background:#0009}.live-start-prompt h2{font-size:22px;line-height:1.25;margin:0 0 12px}.live-start-prompt p{color:var(--muted);line-height:1.6;margin:0 0 20px}.live-start-prompt button{min-height:44px}.live-start-prompt:focus-visible,.live-start-prompt button:focus-visible{outline:3px solid var(--lime);outline-offset:3px}

/* Routine templates and logged workouts have distinct entry points. */
.routine-entry-actions{display:flex;flex-wrap:wrap;gap:10px;min-width:0}
.routine-picker{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:24px;width:min(560px,calc(100% - 32px));max-width:calc(100% - 32px);max-height:calc(100dvh - 48px);overflow-y:auto}
.routine-picker::backdrop{background:#000b}
.routine-picker-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.routine-picker-row>div{min-width:0;overflow-wrap:anywhere}.routine-picker-row p{margin-bottom:0}.routine-picker-row>.btn{flex-shrink:0}
@media(max-width:680px){
 html{scroll-padding-bottom:calc(120px + env(safe-area-inset-bottom))}
 main{min-width:0;padding-bottom:calc(120px + env(safe-area-inset-bottom))}
 .page-title>div,.hero-content,.settings-card form,.reminder-timing{min-width:0;max-width:100%}
 .hero h2,.page-title h1,.routine-card h2{overflow-wrap:anywhere}
 .routine-entry-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .routine-entry-actions>.btn{min-width:0;padding:12px 10px;white-space:normal}
 .settings-card input[type=time]{display:block;box-sizing:border-box;-webkit-appearance:none;appearance:none;min-width:0;min-inline-size:0;width:100%;inline-size:100%;max-width:100%;max-inline-size:100%;scroll-margin-bottom:calc(120px + env(safe-area-inset-bottom))}
 .settings-card input[type=time]::-webkit-date-and-time-value{min-width:0;text-align:left}
 .settings-card .editor-actions{scroll-margin-bottom:calc(120px + env(safe-area-inset-bottom))}
 .routine-picker-row{align-items:stretch;flex-direction:column;gap:8px}
}
@media(max-width:680px){.page-title{flex-direction:column;align-items:stretch}.page-title>div{flex:0 1 auto}.page-title .routine-entry-actions>.btn{white-space:normal;font-size:13px}}
.workout-log h2[tabindex="-1"]:focus-visible{outline:2px solid var(--lime);outline-offset:5px}
.blank-workout-controls{margin:16px 0}.blank-save-routine form{margin:10px 0 18px}
/* Mobile sidebar is static: nav sits above content/suggestions (20), below rest dock (22) and toast (50). Native dialogs stay in the top layer. */
@media(max-width:680px){.sidebar nav{z-index:21}}

/* Keep optional planning compact; reveal the form only on explicit request. */
.planner-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.planner-heading>div{min-width:0}.planner-heading h2{margin:0 0 4px;overflow-wrap:anywhere}.planner-heading .btn{min-height:44px}.planner-empty{margin:0}.planner-help{margin-top:14px}.planner-help summary{cursor:pointer;font-size:13px;min-height:24px}.planner-help p{margin-bottom:0}

.planned-calendar-entry{border-left:2px dashed var(--accent,#b1ce73);padding-left:3px;overflow-wrap:anywhere}

/* Logging first: optional controls do not compete with working-set inputs. */
.workout-options{margin:10px 0 14px}.workout-options>summary,.exercise-setup>summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 0}.workout-options>label{margin:12px 0}.workout-options .card{margin:12px 0}.blank-workout-controls{margin:10px 0}.workout-safety{margin:10px 0 14px}.compact-exercise .previous-performance{margin:10px 0;padding:10px}.compact-exercise .previous-empty{margin:10px 0}.compact-exercise .today-sets{margin:12px 0 0}.compact-exercise .today-set-hint{margin:4px 0;font-size:12px}.compact-exercise .set-heading{margin-top:10px}.compact-exercise.rir-hidden .set{grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) 48px}.compact-exercise.rir-hidden .set>:nth-child(4){display:none}.compact-exercise.rir-hidden .unilateral-set .set{grid-template-columns:42px minmax(0,1fr) minmax(0,1fr) 44px}.workout-rest>summary{cursor:pointer;min-height:44px}.workout-rest[open]>summary{margin-bottom:12px}
@media(max-width:680px){.compact-exercise.rir-hidden .set{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 44px}.compact-exercise.rir-hidden .unilateral-set .set{grid-template-columns:36px minmax(0,1fr) minmax(0,1fr) 40px}.workout-options .workout-timing{padding:12px}.workout-options>summary{font-size:14px}}
/* Builder suggestions belong directly below their input, not the explorer overlay. */
.builder .builder-head{align-items:start;grid-template-columns:minmax(0,1fr) auto}
.builder .builder-name{min-width:0;scroll-margin-top:16px}
.builder .builder-name>input{margin-top:7px}
.builder .exercise-suggestions{position:static;inset:auto;z-index:auto;width:100%;max-height:min(220px,35dvh);margin:6px 0 0;box-shadow:none;overscroll-behavior:contain;touch-action:pan-y}
.builder .exercise-suggestions[hidden]{display:none}
.builder .exercise-suggestions [role="option"]{overflow-wrap:anywhere;min-height:48px}
.builder .builder-targets{grid-template-columns:repeat(3,minmax(0,1fr))}
.builder .builder-options{margin-top:12px}
.builder .builder-options>label{margin-top:12px}
#blankExerciseDialog .builder{padding:12px;margin:8px 0}
@media(max-width:680px){#blankExerciseDialog{padding:16px}.builder .builder-head{gap:8px}.builder .builder-targets{gap:8px}.builder .builder-targets input{padding:10px 8px}}

/* Full exercise names stay readable while editing, including long custom words. */
.builder .builder-name>textarea.exname{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:48px;margin-top:7px;resize:none;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;line-height:1.5;font-size:16px}
.workout-log .exercise .row>h2{min-width:0;max-width:100%}
.workout-log .exercise-name-link{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
/* Optional names-only contribution: local exercise saving never depends on it. */
.catalog-contribution{margin-top:12px;border-top:1px solid var(--line,#d5ddd6);padding-top:10px}.catalog-contribution summary{font-size:.86rem}.catalog-consent-label{display:flex;align-items:flex-start;gap:10px}.catalog-consent-label input{width:20px;height:20px;flex:none;margin-top:2px}.catalog-consent-preview,.catalog-managed-name span{overflow-wrap:anywhere;white-space:normal}.catalog-managed-name{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line,#d5ddd6);padding:10px 0}

.discard-workout{margin:8px 0 14px;min-height:44px}.side-form-detail{margin:4px 0 8px}.side-form-detail>summary{font-size:12px;min-height:32px;cursor:pointer}
/* Calendar cells show a compact count; routine names belong in the preview. */
.completed-calendar-day .planned-calendar-entry{border:0;padding:2px;white-space:nowrap;overflow-wrap:normal;min-width:0;width:100%;min-height:44px;text-align:center;font-size:12px}.planned-week-marker{font-size:11px;min-height:32px;padding:2px;white-space:nowrap}.scheduled-workout-preview{width:min(520px,calc(100vw - 32px));max-height:calc(90dvh - env(safe-area-inset-bottom));overflow:auto;border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--panel,#182019);color:var(--text,#edf1e8)}.scheduled-workout-preview::backdrop{background:#0009}.scheduled-preview-exercises{padding:0;list-style:none}.scheduled-preview-exercises li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;overflow-wrap:anywhere}.scheduled-preview-list{display:grid;gap:10px;margin:15px 0}.scheduled-workout-preview button{min-height:44px;white-space:normal}
.catalog-contribution[hidden]{display:none}
.history-edit-dialog{width:min(760px,calc(100% - 24px))}.history-edit-dialog #historyEditBody{display:grid;gap:16px}.history-edit-exercise{padding-top:12px;border-top:1px solid var(--line)}.history-edit-set{min-width:0;border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0}.history-edit-set legend{padding:0 6px}.history-record-actions{margin-bottom:16px}.history-recovery{margin-top:20px;border-top:1px solid var(--line);padding-top:10px}.history-recovery .row{padding:12px 0;gap:12px;flex-wrap:wrap}.history-recovery .row>span{overflow-wrap:anywhere;flex:1 1 180px}

/* Compact logger: persistent optional RIR, benchmark beside the working-set area. */
.logger-benchmark-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}.logger-benchmark-row .today-sets{margin:0}.live-benchmark{display:flex;flex-direction:column;text-align:right;max-width:100%;font-variant-numeric:tabular-nums}.live-benchmark small{font-size:10px;letter-spacing:.06em}.live-benchmark strong{font-size:14px}.logging-correction{margin:16px 0}.compact-exercise .set input,.compact-exercise .set select{min-width:0}

.workout-message-banner{position:fixed;z-index:80;top:calc(env(safe-area-inset-top) + 12px);left:50%;transform:translateX(-50%);width:min(440px,calc(100vw - 24px));display:flex;gap:8px;padding:10px;background:var(--panel,#182019);color:var(--text,#edf1e8);border:1px solid var(--line,#465342);border-radius:14px;box-shadow:0 6px 24px #0005}.workout-message-open{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;text-align:left;background:none;color:inherit;border:0;overflow-wrap:anywhere}.workout-message-dismiss{align-self:start;min-width:44px;min-height:44px}

.exercise-context > .exercise-library-head,.exercise-context > .exercise-search,.exercise-context > .exercise-search-status,.exercise-context > p{display:none}
.exercise-suggestions{max-height:min(48vh,420px);overflow-y:auto}
.exercise-more-details,.exercise-saved-sets{margin:14px 0}

.saved-exercise-overview{padding:12px 0;border-bottom:1px solid var(--line);min-width:0}.saved-exercise-overview h3{font-size:15px;line-height:1.35;margin:0 0 6px;overflow-wrap:anywhere}.saved-set-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;line-height:1.4;font-variant-numeric:tabular-nums}.saved-set-table th,.saved-set-table td{text-align:left;padding:4px 6px;vertical-align:top;overflow-wrap:anywhere}.saved-set-table th:first-child{width:42px;padding-left:0}.saved-set-table thead{color:var(--muted);font-size:12px}.saved-set-table tbody th{font-weight:400;color:var(--muted)}.saved-set-table small{display:block;font-size:11px}.saved-set-details{margin:4px 0 0}.saved-set-details>summary{font-size:13px;padding:8px 0;min-height:36px}.saved-set-details p{margin:6px 0}.saved-set-table abbr{text-decoration:none}

.saved-exercise-notes{margin:12px 0 4px;min-width:0;font-size:14px;line-height:1.5}.saved-exercise-notes strong{font-size:12px;color:var(--muted)}.saved-exercise-notes p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
