:root{--accent:#0f766e;--accent-soft:#ccfbf1;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--bg:#fff;--card:#f9fafb;--error:#b91c1c;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--accent:#2dd4bf;--accent-soft:#134e4a;--text:#f3f4f6;--muted:#9ca3af;--border:#374151;--bg:#111827;--card:#1f2937;--error:#f87171}}*{box-sizing:border-box}body{margin:0}h1{margin:.5rem 0;font-size:1.6rem}h2{margin:1.5rem 0 .5rem;font-size:1.1rem}a{color:var(--accent)}.app{flex-direction:column;max-width:640px;min-height:100dvh;margin:0 auto;display:flex}main{flex:1;padding:1rem 1rem 5rem}.tabs{padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border);justify-content:center;gap:.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs a{text-align:center;max-width:200px;color:var(--muted);border-radius:.75rem;flex:1;padding:.6rem;font-weight:600;text-decoration:none}.tabs a.active{color:var(--accent);background:var(--accent-soft)}.muted{color:var(--muted)}.error{color:var(--error)}.card{background:var(--card);border:1px solid var(--border);border-radius:1rem;margin:.75rem 0;padding:1rem}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:.6rem;padding:.6rem .7rem}button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:.75rem;padding:.7rem 1.2rem;font-weight:600}button.secondary{background:var(--accent-soft);color:var(--accent)}button.link{color:var(--error);background:0 0;padding:.25rem 0}button.ghost{color:var(--muted);background:0 0}button.small{border-radius:1rem;padding:.4rem .75rem;font-size:.85rem}button.wide{width:100%;margin:1rem 0}button:disabled{opacity:.5;cursor:default}button.icon{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:.75rem;padding:.45rem .6rem;font-size:1.15rem;line-height:1}button.icon span{font-size:.9rem;font-weight:600}button.icon.on{color:#d97706}.hint{background:var(--card);border-left:3px solid var(--accent);color:var(--muted);border-radius:.4rem;padding:.6rem .8rem;font-size:.9rem}.empty{text-align:center;color:var(--muted);padding:2rem 1rem}.count{margin:.75rem 0 .25rem;font-size:.85rem}.links{gap:1.25rem;display:flex}.links a{font-weight:600;text-decoration:none}.segmented{background:var(--card);border:1px solid var(--border);border-radius:.8rem;margin-bottom:.75rem;padding:.2rem;display:flex}.segmented button{color:var(--muted);background:0 0;border-radius:.6rem;flex:1;padding:.5rem .25rem;font-size:.9rem}.segmented button.active{background:var(--bg);color:var(--accent);box-shadow:0 1px 3px #0000001f}.filters{gap:.5rem;margin-top:.5rem;display:flex}.filters select{flex:1;min-width:0}.exercise-list{margin:0;padding:0;list-style:none}.exercise-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.exercise-list a{min-width:0;color:inherit;flex:1;align-items:center;gap:.75rem;padding:.6rem 0;text-decoration:none;display:flex}.exercise-list img,.exercise-list .thumb{object-fit:cover;background:#fff;border-radius:.6rem;flex-shrink:0;width:60px;height:60px}.exercise-list a>div{flex-direction:column;gap:.15rem;min-width:0;display:flex}.exercise-list strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.exercise-list .muted{font-size:.8rem}.exercise-list .caps{text-transform:capitalize}.exercise-list .pref-actions.reasons{flex-basis:100%;justify-content:flex-end;padding-bottom:.6rem}.badge{color:#991b1b;text-transform:capitalize;background:#fee2e2;border-radius:1rem;align-self:flex-start;padding:.1rem .5rem;font-size:.75rem}.pref-actions{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.75rem 0;display:flex}.exercise-list .pref-actions{margin:0}section>.pref-actions button.icon{border-color:var(--border)}.pref-note{color:var(--muted);margin-right:.25rem;font-size:.9rem}.back{color:var(--accent);background:0 0;margin-bottom:.5rem;padding:0;font-weight:600}.animation{aspect-ratio:4/3;background:#fff;border-radius:1rem;width:100%;padding:0;display:block;position:relative;overflow:hidden}.animation img{object-fit:contain;width:100%;height:100%;transition:opacity .3s;position:absolute;inset:0}.animation .paused{color:#fff;background:#0009;border-radius:1rem;padding:.2rem .6rem;font-size:.8rem;position:absolute;top:.5rem;right:.5rem}.tags{flex-wrap:wrap;gap:.4rem;display:flex}.tags span{background:var(--accent-soft);color:var(--accent);border-radius:1rem;padding:.2rem .6rem;font-size:.85rem}.instructions li{margin-bottom:.5rem;line-height:1.45}.form label{color:var(--muted);flex-direction:column;gap:.25rem;margin-bottom:.75rem;font-size:.9rem;display:flex}.form .row{gap:.5rem;display:flex}.form .row>label{flex:1}fieldset{border:1px solid var(--border)}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.form label.chip{border:1px solid var(--border);color:var(--text);border-radius:1rem;flex-direction:row;align-items:center;gap:.35rem;margin:0;padding:.3rem .6rem}.chip input{width:auto}.savebar{background:var(--bg);align-items:center;gap:1rem;padding:.75rem 0;display:flex;position:sticky;bottom:4.5rem}.form label.chip small{color:var(--muted);font-size:.75rem}.chip,.tags span{text-transform:capitalize}.week-header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.week-header>div{text-align:center}.week-header h1{margin:0}.week-header p{margin:.1rem 0 0}.week-header button{color:var(--accent);padding:.2rem .9rem;font-size:1.8rem}.week-header button:disabled{visibility:hidden}.generating{text-align:center;padding:2rem 1rem}.spinner{border:4px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;margin:0 auto 1rem;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.card.day{padding:.25rem 1rem .5rem}.card.day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.day-head{justify-content:space-between;align-items:baseline;gap:.5rem;padding-top:.6rem;display:flex}.day-head h2{margin:0;font-size:1.05rem}.totals{color:var(--muted);white-space:nowrap;font-size:.8rem}.totals.off{color:#b45309}.meal-row{border-top:1px solid var(--border);color:inherit;grid-template-columns:4.6rem 1fr auto;align-items:center;gap:.5rem;padding:.65rem 0;text-decoration:none;display:grid}.day-head+.meal-row{border-top:0}.meal-row .slot{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.75rem}.meal-main{flex-direction:column;gap:.2rem;min-width:0;display:flex}.meal-name{font-weight:600;line-height:1.3}.meal-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.3rem;margin:0;font-size:.75rem;display:flex}.meal-row .kcal{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.meal-row .kcal small{color:var(--muted);font-size:.7rem;font-weight:400;display:block}.pill{background:var(--border);color:var(--text);border-radius:1rem;padding:.05rem .45rem;font-size:.72rem}.pill.leftovers{color:#3730a3;background:#e0e7ff}.pill.buy{color:#92400e;background:#fef3c7}.pill.shared{background:var(--accent-soft);color:var(--accent)}.cta{color:var(--accent);flex-direction:column;gap:.2rem;text-decoration:none;display:flex}.eyebrow{margin:0;font-size:.85rem}.meal-detail h1{margin-top:.15rem}.macros{grid-template-columns:repeat(4,1fr);gap:.4rem;margin:1rem 0 .25rem;display:grid}.macros div{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:.75rem;padding:.6rem .25rem}.macros strong{font-size:1.15rem;display:block}.macros span{color:var(--muted);font-size:.75rem}.small-print{margin:0 0 1rem;font-size:.75rem}.options{padding-left:1.2rem}.options li{margin-bottom:.6rem;line-height:1.4}.ingredients{margin:0;padding:0;list-style:none}.ingredients li{border-bottom:1px solid var(--border);padding:.45rem 0}.ingredients .qty{font-variant-numeric:tabular-nums;min-width:5rem;font-weight:600;display:inline-block}.swap{margin:1.5rem 0 1rem}.row-buttons{gap:.5rem;display:flex}.shop-progress{align-items:center;gap:.75rem;margin:.25rem 0 .5rem;font-size:.85rem;display:flex}.shop-progress .bar{background:var(--border);border-radius:4px;flex:1;height:8px;overflow:hidden}.shop-progress .bar div{background:var(--accent);height:100%;transition:width .2s}.shop-section h2{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:1.25rem 0 .25rem;font-size:.8rem}.shop-section ul{margin:0;padding:0;list-style:none}.shop-section li{border-bottom:1px solid var(--border);padding:.5rem 0}.shop-section label{cursor:pointer;align-items:center;gap:.6rem;display:flex}.shop-section input[type=checkbox]{width:1.3rem;height:1.3rem;accent-color:var(--accent);flex-shrink:0}.shop-section .item-name{text-transform:capitalize;flex:1}.shop-section .qty{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.shop-section .for{margin-left:1.9rem;font-size:.72rem;display:block}.shop-section li.ticked .item-name{color:var(--muted);text-decoration:line-through}.checkin fieldset.day-card{padding:.5rem .9rem .75rem}.checkin legend{padding:0 .3rem;font-weight:700}.checkin label,label.stacked{color:var(--muted);flex-direction:column;gap:.25rem;margin-bottom:.6rem;font-size:.85rem;display:flex}.checkin .row{gap:.5rem;display:flex}.checkin .row>label{flex:1;min-width:0}label.toggle{align-items:center;gap:.5rem;font-size:.9rem;color:var(--text)!important;flex-direction:row!important}label.toggle input{width:auto}label.toggle.small{margin:0;font-size:.8rem}.day-footer{align-items:center;gap:.5rem;display:flex}.day-footer .note{flex:1;padding:.45rem .6rem;font-size:.85rem}.day-footer button{white-space:nowrap}main.no-tabs{padding-bottom:2rem}.segmented button{font-size:.82rem}.segmented.small{margin:0;padding:.15rem}.segmented.small button{padding:.35rem .8rem}.workout-row{background:var(--accent-soft);color:inherit;border-radius:.7rem;grid-template-columns:1.6rem 1fr auto;align-items:center;gap:.5rem;margin:.4rem -.5rem .2rem;padding:.55rem .5rem;text-decoration:none;display:grid}.workout-row .icon{text-align:center;font-size:1.2rem}.workout-row .kcal{text-align:right;font-weight:600}.workout-row .kcal small{color:var(--muted);font-size:.7rem;font-weight:400;display:block}.done{color:var(--accent)}.training-day{color:inherit;flex-direction:column;gap:.25rem;padding:.4rem 0 .6rem;text-decoration:none;display:flex}.training-day .ex-names{color:var(--muted);font-size:.8rem;line-height:1.4}.workout-today h2{margin:.1rem 0}.workout-today .row-buttons{margin-top:.75rem}a.button{background:var(--accent);color:#fff;text-align:center;border-radius:.75rem;padding:.7rem 1.2rem;font-weight:600;text-decoration:none;display:inline-block}a.button.secondary{background:var(--accent-soft);color:var(--accent)}.done-link{font-weight:600;text-decoration:none}.cue{font-size:.85rem}.exercise-list .cue{text-transform:none;font-style:italic}.cardio-block p{margin:.4rem 0 0}.workout-mode{flex-direction:column;display:flex}.wm-top{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.wm-top button{padding:.3rem .6rem;font-size:1.2rem}.wm-top .bar,.stopwatch .bar{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.wm-top .bar div,.stopwatch .bar div{background:var(--accent);height:100%;transition:width .3s}.save-state{text-align:right;min-width:3.5rem;font-size:.75rem}.wm-step h1{margin:.1rem 0 .75rem}.wm-step .lead{font-size:1.1rem;line-height:1.5}.target{align-items:center;gap:.5rem;margin:.75rem 0 .25rem;display:flex}button.big{width:100%;margin:.75rem 0 .25rem;padding:1rem;font-size:1.1rem}.prev{align-self:flex-start;margin-top:1rem}.set-list{gap:.3rem;margin:.75rem 0;padding:0;list-style:none;display:grid}.set-list li{background:var(--card);border:1px solid var(--border);border-radius:.6rem;justify-content:space-between;padding:.5rem .75rem;display:flex}.set-list li.done{color:var(--accent)}.set-list li.current{border-color:var(--accent);font-weight:600}.steppers{gap:.75rem;display:flex}.stepper{flex-direction:column;flex:1;align-items:center;gap:.25rem;display:flex}.stepper>div{align-items:center;gap:.3rem;display:flex}.stepper button{border-radius:50%;width:2.8rem;height:2.8rem;padding:0;font-size:1.4rem}.stepper input{text-align:center;width:4.2rem;padding:.4rem .2rem;font-size:1.35rem;font-weight:700}.stepper .unit{font-size:.8rem}.wm-actions{justify-content:center;gap:1rem;margin-top:.25rem;display:flex}.rest{z-index:20;padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom));background:var(--bg);border-top:2px solid var(--accent);flex-direction:column;align-items:center;gap:.3rem;display:flex;position:fixed;inset:auto 0 0;box-shadow:0 -8px 24px #00000026}.rest .time,.stopwatch .time{font-variant-numeric:tabular-nums;font-size:3rem;font-weight:800;line-height:1}.stopwatch{flex-direction:column;align-items:center;gap:.4rem;margin:1.25rem 0 .5rem;display:flex}.stopwatch .bar{flex:none;width:100%}.stopwatch.reached .time{color:var(--accent)}.sheet{z-index:30;background:#00000073;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-body{background:var(--bg);width:100%;max-width:640px;max-height:80dvh;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));border-radius:1rem 1rem 0 0;margin:0 auto;overflow:auto}.sheet-body h2{margin-top:0}button.alt{width:100%;color:inherit;text-align:left;background:0 0;border-radius:0;align-items:center;gap:.75rem;padding:.5rem 0;font-weight:400;display:flex}button.alt div{flex-direction:column;display:flex}.effort{grid-template-columns:repeat(5,1fr);gap:.4rem;display:grid}.effort button{background:var(--card);color:var(--text);border:1px solid var(--border);padding:.6rem 0}.effort button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.train-row{align-items:center;gap:.5rem;margin:.25rem 0 .6rem;display:flex}.train-row select{flex:1;width:auto}.question{background:var(--card);border:1px solid var(--border);border-radius:.6rem;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.6rem;padding:.5rem .6rem;font-size:.9rem;display:flex}.question.needs-answer{color:#92400e;background:#fffbeb;border-color:#d97706}@media (prefers-color-scheme:dark){.question.needs-answer{color:#fde68a;background:#451a03}}.segmented button{white-space:nowrap}.pilot-grid{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.pilot-grid figure{margin:0}.pilot-grid .animation{aspect-ratio:1;border-radius:.6rem}.pilot-grid figcaption{color:var(--muted);text-align:center;margin-top:.25rem;font-size:.72rem}.still-pair{gap:.25rem;display:grid}.still-pair img{aspect-ratio:1;object-fit:cover;background:#fff;border-radius:.5rem;width:100%}
