:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif;color:#17191c;background:#f7f7f3;font-synthesis:none;text-rendering:optimizeLegibility;--green: #146c35;--green-soft: #eef7ee;--green-line: #c8dfc6;--blue: #1761b5;--blue-soft: #edf5ff;--amber: #b56200;--amber-soft: #fff7e8;--teal: #08706f;--teal-soft: #edf8f7;--red: #c6401d;--ink: #17191c;--muted: #666b73;--line: #dfe2e4;--surface: #ffffff;--surface-2: #fafbf8;--radius: 8px}*{box-sizing:border-box}html{background:#f7f7f3}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}button:focus-visible{outline:2px solid #77b66f;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;background:var(--surface)}.app-content{width:min(100%,520px);min-height:100vh;margin:0 auto;padding:24px 18px 112px;background:var(--surface)}.page-header,.simple-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.simple-header{display:block;margin-bottom:16px}.eyebrow,.subtitle,.simple-header p,.section-title p,.note-line p,.meal-main p,.person-note,.calorie-stack small{color:var(--muted)}.eyebrow{margin:0 0 5px;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin:0}h1{font-size:38px;line-height:1.02;letter-spacing:0}.simple-header h1{margin-bottom:5px}.subtitle,.simple-header p{margin-top:7px;font-size:18px;font-weight:700}.header-badges{display:grid;gap:8px;justify-items:end;flex:0 0 auto;padding-top:4px}.badge{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 9px;border:1px solid var(--green-line);border-radius:var(--radius);color:var(--green);background:var(--green-soft);font-size:13px;font-weight:800;white-space:nowrap}.badge.high{color:var(--amber);background:var(--amber-soft);border-color:#e7bb65}.badge.medium{color:var(--teal);background:var(--teal-soft);border-color:#b8dcda}.badge.low{color:var(--green);background:var(--green-soft);border-color:var(--green-line)}.badge.outline{color:#c14f18;background:#fffaf5;border-color:#f1b995}.day-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:12px 0 16px;overflow-x:auto;scrollbar-width:none}.day-strip::-webkit-scrollbar{display:none}.day-pill{min-width:46px;min-height:48px;padding:6px 4px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--muted);cursor:pointer}.day-pill span,.day-pill small{display:block}.day-pill span{font-size:13px;font-weight:850}.day-pill small{margin-top:2px;font-size:11px}.day-pill.active{color:#fff;background:var(--green);border-color:var(--green)}.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.person-panel{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;min-height:82px;padding:11px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:#fff;font-weight:900;font-size:20px}.avatar.green{background:#2d8a3d}.avatar.blue{background:var(--blue)}.person-copy{min-width:0}.person-main{font-size:18px;font-weight:850;white-space:nowrap}.mini-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;width:82px;margin:7px 0 4px}.mini-bars span{height:5px;border-radius:2px;background:var(--green)}.mini-bars .muted{background:#d9dadd}.person-note{font-size:12px;font-weight:800;white-space:nowrap}.person-note.green{color:var(--green)}.person-note.blue{color:var(--blue)}.summary-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.summary-cell{display:grid;gap:3px;min-height:84px;padding:12px 9px;border-right:1px solid var(--line)}.summary-cell:last-child{border-right:0}.summary-cell svg{color:var(--green)}.summary-cell.need svg{color:var(--amber)}.summary-cell span{color:var(--muted);font-size:12px;font-weight:750;line-height:1.2}.summary-cell strong{font-size:27px;line-height:1;color:var(--ink)}.today-brief-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:12px 0 14px;padding:14px;border:1px solid var(--green-line);border-radius:var(--radius);background:#f3fbef}.today-brief-panel.high{border-color:#e7bb65;background:#fff8e8}.today-brief-panel.medium{border-color:#abd9d7;background:#edf8f7}.today-brief-kicker{display:block;margin-bottom:5px;color:var(--green);font-size:12px;font-weight:900}.today-brief-panel h2{font-size:24px;line-height:1.18}.today-brief-panel p{margin-top:6px;color:#334038;font-size:14px;line-height:1.4}.today-brief-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.today-brief-stats span{display:grid;align-content:center;min-height:38px;padding:6px 8px;border:1px solid rgba(20,108,53,.16);border-radius:var(--radius);background:#ffffffb8;color:#263028;font-size:12px;font-weight:850;line-height:1.25;text-align:center}.today-brief-actions button{width:100%;min-height:42px;border:1px solid var(--green);border-radius:var(--radius);color:#fff;background:var(--green);font-weight:900;cursor:pointer}.panel{margin:14px 0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.section-title{display:flex;align-items:center;gap:11px;padding:14px;border-bottom:1px solid var(--line)}.section-title.tinted{background:linear-gradient(90deg,#eef7ee,#f8fbf5)}.section-title svg{flex:0 0 auto;color:var(--green)}.section-title h2{font-size:20px;line-height:1.2;letter-spacing:0}.section-title p{margin-top:4px;font-size:13px;line-height:1.35}.meal-list,.check-list,.compact-table,.adjust-list,.formula-table,.prep-table,.method-list{display:grid}.meal-row{display:grid;grid-template-columns:34px minmax(115px,1fr) minmax(130px,1.12fr);gap:10px;align-items:start;padding:15px 10px;border-bottom:1px solid var(--line)}.meal-row:last-child{border-bottom:0}.meal-row.done{background:#f7fbf5}.meal-row.done .meal-main,.meal-row.done .portion-list{opacity:.72}.execution-row{grid-template-columns:58px minmax(0,1fr) 102px;grid-template-areas:"time copy toggles" "time portions toggles"}.execution-row .meal-time{grid-area:time;align-self:start;display:grid;place-items:center;min-height:34px;border:1px solid var(--green-line);border-radius:var(--radius);color:var(--green);background:var(--green-soft);font-size:13px;font-weight:900}.execution-row .meal-main{grid-area:copy}.execution-row .portion-list{grid-area:portions;margin-top:7px;padding-left:0;border-left:0}.person-checks{grid-area:toggles;display:grid;gap:7px;align-self:start}.person-meal-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);background:#fff;font-weight:900;cursor:pointer}.person-meal-toggle.is-checked{color:var(--green);border-color:var(--green-line);background:var(--green-soft)}.detail-mini-button{min-height:34px;border:1px solid var(--green-line);border-radius:var(--radius);color:var(--green);background:#fff;font-size:12px;font-weight:900;cursor:pointer}.check-button{display:grid;place-items:center;width:31px;height:31px;padding:0;border:0;background:transparent;color:#5f666f;cursor:pointer}.check-button.is-checked{color:var(--green)}.meal-main{min-width:0}.meal-name{margin-bottom:5px;font-size:17px;line-height:1.2;font-weight:900}.meal-main p{font-size:14px;line-height:1.35}.portion-list{display:grid;gap:6px;min-width:0;padding-left:10px;border-left:1px solid var(--line)}.portion-list span{color:#343940;font-size:12px;line-height:1.25}.next-panel{display:grid;grid-template-columns:32px minmax(0,1fr) 20px;gap:12px;align-items:center;width:100%;min-height:72px;padding:13px;border:1px solid #a9d09d;border-radius:var(--radius);color:var(--green);background:#f3fbef;text-align:left;cursor:pointer}.next-panel div{min-width:0}.next-panel strong,.next-panel span{display:block}.next-panel strong{margin-bottom:4px;font-size:18px}.next-panel span{color:#1b2a1d;font-size:15px;line-height:1.35}.action-panel{margin:12px 0;padding:15px;border:1px solid #a9d09d;border-radius:var(--radius);background:#f3fbef}.action-panel.high{border-color:#e7bb65;background:#fff8e8}.action-panel.medium{border-color:#abd9d7;background:#edf8f7}.action-kicker{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-size:13px;font-weight:900}.action-panel h2{margin-top:9px;font-size:25px;line-height:1.14}.action-panel p{margin-top:7px;color:#263028;line-height:1.42;font-weight:720}.action-portions{display:grid;gap:6px;margin-top:12px}.action-portions span{padding:7px 9px;border:1px solid rgba(20,108,53,.16);border-radius:var(--radius);background:#ffffffb8;color:#263028;font-size:13px;line-height:1.25}.action-completion{display:grid;gap:8px;margin-top:12px;padding:10px;border:1px solid rgba(20,108,53,.18);border-radius:var(--radius);background:#ffffffa3}.action-completion>span{color:#31523a;font-size:12px;font-weight:900}.action-completion>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.action-completion button{min-height:36px}.action-completion>div>button:last-child{border:1px solid var(--green);border-radius:var(--radius);color:#fff;background:var(--green);font-size:12px;font-weight:900;cursor:pointer}.action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}.action-buttons button,.week-actions button{min-height:42px;border:1px solid var(--green);border-radius:var(--radius);color:#fff;background:var(--green);font-weight:900;cursor:pointer}.action-buttons .secondary,.week-actions button{color:var(--green);background:#fff}.week-control{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:var(--radius)}.week-control svg{color:var(--green)}.week-control strong,.week-control span{display:block}.week-control strong{font-size:15px}.week-control span{margin-top:3px;color:var(--muted);font-size:13px}.week-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:176px}.week-actions button{min-height:38px;padding:0 10px;font-size:13px}.insight-panel{display:grid;grid-template-columns:30px minmax(0,1fr);gap:11px;padding:13px}.insight-panel svg{color:var(--green)}.insight-panel h2{font-size:18px;line-height:1.2}.insight-panel p{margin-top:5px;color:var(--muted);font-size:14px;line-height:1.42}.insight-panel.good{border-color:var(--green-line);background:#f7fbf5}.insight-panel.warning,.insight-panel.adjust{border-color:#e8b760;background:#fff9ed}.insight-panel.warning svg,.insight-panel.adjust svg{color:var(--amber)}.meal-detail-panel{border-color:#b7d8b0}.detail-block{padding:13px 14px;border-bottom:1px solid var(--line)}.detail-block:last-of-type{border-bottom:0}.detail-block h3{margin:0 0 8px;font-size:15px;line-height:1.2}.detail-block p{color:#2f343a;font-size:14px;line-height:1.44}.detail-chips,.swap-list{display:grid;gap:7px}.detail-chips span,.swap-option{padding:8px 9px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);font-size:13px;line-height:1.3}.swap-option{display:grid;gap:4px;width:100%;background:#fafbf8;text-align:left;cursor:pointer}.swap-option.active{border-color:var(--green-line);color:var(--green);background:var(--green-soft)}.swap-option small{color:var(--muted);font-size:12px;font-weight:750}.detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:13px;border-top:1px solid var(--line)}.detail-actions button{min-height:42px;border:1px solid var(--green);border-radius:var(--radius);color:#fff;background:var(--green);font-weight:900;cursor:pointer}.detail-actions .secondary{color:var(--green);background:#fff}.note-line{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;margin-top:15px;padding:0 2px}.note-line svg{color:var(--muted)}.note-line p{font-size:13px;line-height:1.45}.plan-hero{display:flex;justify-content:space-between;gap:14px;padding:15px;border-bottom:1px solid var(--line)}.plan-hero h2{margin-top:12px;font-size:28px}.plan-hero p{margin-top:6px;color:var(--muted);line-height:1.35}.calorie-stack{display:grid;align-content:center;justify-items:end;min-width:72px;font-weight:850}.calorie-stack strong{color:var(--green);font-size:20px}.calorie-stack span{color:var(--blue)}.table-line,.check-row,.adjust-row,.formula-row,.prep-line{display:grid;align-items:center;gap:10px;min-height:56px;padding:11px 13px;border-bottom:1px solid var(--line)}.table-line:last-child,.check-row:last-child,.adjust-row:last-child,.formula-row:last-child,.prep-line:last-child{border-bottom:0}.table-line{grid-template-columns:minmax(0,1fr) 18px;width:100%;border-right:0;border-left:0;border-top:0;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.table-line.active{background:#f2faef}.table-line.active strong{color:var(--green)}.table-line strong,.table-line span{display:block}.table-line strong{margin-bottom:4px;font-size:15px}.table-line span{color:var(--muted);font-size:13px;line-height:1.35}.recipe-panel{border-color:#b7d8b0}.recipe-method{display:grid;gap:11px}.method-meta-row{display:flex;flex-wrap:wrap;gap:8px}.method-meta-row span{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:5px 8px;border:1px solid var(--green-line);border-radius:var(--radius);color:var(--green);background:var(--green-soft);font-size:12px;font-weight:850;line-height:1.2}.method-prep{color:#2f343a;font-size:14px;line-height:1.45}.recipe-step-list{display:grid;gap:8px;margin:0;padding-left:20px}.recipe-step-list li{color:#2f343a;font-size:14px;line-height:1.45}.method-tips{padding:10px;border:1px solid #e8b760;border-radius:var(--radius);background:#fff9ed}.method-tips strong{display:block;margin-bottom:5px;color:#743f04;font-size:13px}.method-tips p{color:#624b28;font-size:13px;line-height:1.4}.today-menu-panel{border-color:#cfded0}.today-dish-list{display:grid}.today-meal-card{display:grid;gap:12px;padding:14px;border-bottom:1px solid var(--line);background:#fff}.today-meal-card:last-child{border-bottom:0}.today-meal-card.done{background:#f7fbf5}.today-meal-head{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:start}.today-meal-head .meal-time{display:grid;place-items:center;min-height:36px;border:1px solid var(--green-line);border-radius:var(--radius);color:var(--green);background:var(--green-soft);font-size:13px;font-weight:900}.today-meal-head h3{margin:0;font-size:18px;line-height:1.2}.today-meal-head p{margin-top:5px;color:var(--muted);font-size:14px;line-height:1.35}.meal-done-pill{align-self:start;min-width:74px;padding:6px 7px;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);background:#fff;font-size:12px;font-weight:900;text-align:center}.meal-done-pill.active{color:var(--green);border-color:var(--green-line);background:var(--green-soft)}.meal-card-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,auto);gap:9px;align-items:center}.person-checks.inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.meal-card-button-stack{display:grid;grid-template-columns:1fr;gap:7px;min-width:138px}.meal-card-button-stack button{min-height:38px;padding:0 10px;border:1px solid var(--green);border-radius:var(--radius);color:#fff;background:var(--green);font-size:13px;font-weight:900;cursor:pointer}.meal-card-button-stack button.secondary{color:var(--green);background:#fff}.prep-hint{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start;padding:10px;border:1px solid #d7e8d4;border-radius:var(--radius);background:#f6fbf2;color:#294633;font-size:13px;font-weight:780;line-height:1.35}.prep-hint svg{margin-top:1px;color:var(--green)}.prep-hint.modal{margin-top:0}.meal-swaps-details{border:1px solid #edf0f1;border-radius:var(--radius);background:#fafbf8}.meal-swaps-details>summary{padding:10px 11px;color:var(--green);font-size:13px;font-weight:900;cursor:pointer;list-style:none}.meal-swaps-details>summary::-webkit-details-marker,.today-support-panel>summary::-webkit-details-marker,.prep-group>summary::-webkit-details-marker{display:none}.meal-swaps-details .swap-list{padding:0 10px 10px}.today-support-panel{margin-top:14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.today-support-panel>summary{padding:13px 14px;color:var(--muted);font-weight:900;cursor:pointer;list-style:none}.today-support-content{padding:0 12px 12px;border-top:1px solid var(--line)}.today-support-content .summary-row{margin-bottom:14px}.recipe-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;align-items:end;padding:18px;background:#12181470}.recipe-modal{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,560px);max-height:min(86vh,760px);margin:0 auto;border:1px solid rgba(20,108,53,.2);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 18px 54px #0e1b133d}.recipe-modal-header{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:12px;align-items:start;padding:16px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#eef7ee,#f8fbf5)}.recipe-modal-header span{display:inline-grid;place-items:center;min-width:58px;min-height:30px;margin-bottom:8px;padding:0 9px;border:1px solid var(--green-line);border-radius:var(--radius);color:var(--green);background:var(--green-soft);font-size:12px;font-weight:900}.recipe-modal-header h2{font-size:22px;line-height:1.18}.recipe-modal-header p{margin-top:5px;color:var(--muted);font-size:14px;line-height:1.35}.recipe-modal-header button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:#fff;cursor:pointer}.recipe-modal-body{min-height:0;overflow:auto;overscroll-behavior:contain}.recipe-modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:13px;border-top:1px solid var(--line);background:#fff}.recipe-modal-actions button{min-height:42px;border:1px solid var(--green);border-radius:var(--radius);color:#fff;background:var(--green);font-weight:900;cursor:pointer}.recipe-modal-actions button.secondary{color:var(--green);background:#fff}.rice-row{display:flex;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line)}.rice-row:last-child{border-bottom:0}.rice-row span{color:var(--muted)}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}.segmented.two{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented button{min-height:48px;border:0;border-right:1px solid var(--line);background:transparent;font-weight:850;cursor:pointer}.segmented button:last-child{border-right:0}.segmented button.active{color:#fff;background:var(--green)}.inline-panel-actions{padding:0 14px 14px}.inline-panel-actions button{width:100%;min-height:42px;border:1px solid var(--green);border-radius:var(--radius);color:var(--green);background:#fff;font-weight:900;cursor:pointer}.shop-summary{margin-top:2px}.check-row{grid-template-columns:32px minmax(0,1fr) minmax(62px,auto);min-height:58px}.check-row span{min-width:0;font-size:15px;font-weight:760;line-height:1.28}.check-row strong{justify-self:end;color:#1f2428;font-size:14px;text-align:right}.shop-item-row{grid-template-columns:32px minmax(0,1fr) minmax(54px,auto) 88px;align-items:center}.shop-item-row.covered{background:#f7fbf5}.shop-item-copy{min-width:0}.shop-item-copy span,.shop-item-copy small,.shop-item-copy em{display:block}.shop-item-copy small{margin-top:3px;color:var(--muted);font-size:12px;font-weight:760}.shop-item-copy em{margin-top:3px;color:var(--blue);font-size:11px;font-style:normal;line-height:1.25}.have-pill{min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);background:#fff;font-size:12px;font-weight:900;cursor:pointer}.have-pill.active{color:var(--blue);border-color:#b7d0ee;background:var(--blue-soft)}.warning-panel{border-color:#e6b29f;color:var(--red);background:#fff8f5}.warning-panel .section-title{border-bottom:0}.warning-panel svg,.warning-panel p{color:var(--red)}.step-list{display:grid;gap:10px;margin:0;padding:14px 14px 16px 38px}.step-list li{padding-left:4px;color:#2f343a;line-height:1.45;font-size:14px}.step-list.compact{gap:8px;padding-top:12px}.training-link-panel.good{border-color:var(--green-line)}.training-link-panel.warning,.training-link-panel.adjust,.swap-impact-panel{border-color:#e8b760;background:#fffdf8}.training-status{display:grid;gap:12px;padding:14px}.training-status strong,.training-status span{display:block}.training-status strong{font-size:18px}.training-status span{margin-top:5px;color:var(--muted);font-size:14px;line-height:1.4}.training-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}.training-controls button,.training-controls select{min-height:42px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;font:inherit;font-weight:850}.training-controls button{color:var(--muted);cursor:pointer}.training-controls button.active{color:#fff;background:var(--green);border-color:var(--green)}.swap-impact-list{display:grid}.swap-impact-list div{padding:12px 14px;border-bottom:1px solid var(--line)}.swap-impact-list div:last-child{border-bottom:0}.swap-impact-list strong,.swap-impact-list span,.swap-impact-list small,.swap-impact-list em{display:block}.swap-impact-list span{margin-top:4px;font-size:13px;line-height:1.35}.swap-impact-list small{margin-top:4px;color:var(--muted);line-height:1.35}.swap-impact-list em{margin-top:4px;color:var(--blue);font-size:12px;font-style:normal;line-height:1.35}.prep-line{grid-template-columns:minmax(110px,1fr) 62px 70px;grid-template-areas:"day cooked raw" "note note note"}.prep-line span{grid-area:day;font-weight:820;line-height:1.25}.prep-line strong{grid-area:cooked;justify-self:end}.prep-line small{grid-area:raw;justify-self:end;color:var(--muted)}.prep-line em{grid-area:note;color:var(--muted);font-size:12px;font-style:normal}.prep-group-list{display:grid}.prep-group{border-bottom:1px solid var(--line)}.prep-group:last-child{border-bottom:0}.prep-group>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;cursor:pointer;list-style:none}.prep-group>summary strong,.prep-group>summary span{display:block}.prep-group>summary strong{font-size:17px;line-height:1.2}.prep-group>summary span{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.35}.prep-group>summary em{min-width:52px;padding:5px 8px;border:1px solid var(--green-line);border-radius:var(--radius);color:var(--green);background:var(--green-soft);font-size:12px;font-style:normal;font-weight:900;text-align:center}.prep-group-body{padding:0 14px 14px}.prep-group-body>p{margin-bottom:10px;color:#2f343a;font-size:14px;line-height:1.45}.prep-pack-list{display:grid;gap:8px}.prep-pack-row{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(62px,auto);gap:9px;align-items:center;min-height:62px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.prep-pack-row.done{border-color:var(--green-line);background:#f7fbf5}.prep-pack-row b,.prep-pack-row span,.prep-pack-row small{display:block}.prep-pack-row b{color:var(--green);font-size:12px}.prep-pack-row span{margin-top:3px;font-size:14px;font-weight:820;line-height:1.28}.prep-pack-row small{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.3}.prep-pack-row strong{justify-self:end;font-size:14px;text-align:right}.method-list article{padding:14px;border-bottom:1px solid var(--line)}.method-list article:last-child{border-bottom:0}.method-list strong{display:block;margin-bottom:5px}.method-list p{color:var(--muted);font-size:14px;line-height:1.42}.calc-header h1{color:#082f31}.person-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.person-toggle button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--muted);font-weight:850;cursor:pointer}.person-toggle button.active.green{color:#fff;background:var(--teal);border-color:var(--teal)}.person-toggle button.active.blue{color:#fff;background:var(--blue);border-color:var(--blue)}.formula-row{grid-template-columns:minmax(92px,1fr) 76px minmax(94px,1.1fr);min-height:64px}.formula-row span{font-weight:840}.formula-row strong{justify-self:center;color:var(--teal);font-size:27px;letter-spacing:0}.formula-row em{color:var(--muted);font-size:12px;font-style:normal;line-height:1.3}.alert-callout{display:grid;grid-template-columns:31px minmax(0,1fr);gap:12px;padding:14px;color:#743f04;border-color:#e8b760;background:#fff9ed}.alert-callout svg{color:var(--amber)}.alert-callout strong,.alert-callout span{display:block}.alert-callout strong{margin-bottom:4px}.alert-callout span{color:#624b28;font-size:14px;line-height:1.4}.review-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.review-form label{display:grid;gap:6px}.review-form label span{color:var(--muted);font-size:12px;font-weight:850}.review-form input,.review-form select{width:100%;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;font:inherit;font-weight:820}.review-form input:focus,.review-form select:focus{outline:2px solid #77b66f;outline-offset:1px}.decision-panel{display:grid;grid-template-columns:32px minmax(0,1fr);gap:11px;padding:14px}.decision-panel svg{color:var(--green)}.decision-panel h2{font-size:20px;line-height:1.2}.decision-panel p{margin-top:6px;color:var(--muted);font-size:14px;line-height:1.42}.decision-panel.good{border-color:var(--green-line);background:var(--green-soft)}.decision-panel.warning,.decision-panel.adjust{border-color:#e8b760;background:#fff9ed}.decision-panel.warning svg,.decision-panel.adjust svg{color:var(--amber)}.backup-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:14px}.backup-actions button,.backup-actions label{display:grid;place-items:center;gap:5px;min-height:58px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--green);font-size:13px;font-weight:900;text-align:center;cursor:pointer}.backup-actions input{display:none}.backup-note{padding:0 14px 14px;color:var(--muted);font-size:13px;line-height:1.4}.calibration-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:13px 8px 15px}.calibration-steps div{display:grid;justify-items:center;gap:8px;padding:6px 5px;text-align:center}.calibration-steps svg{color:var(--teal)}.calibration-steps span{font-size:12px;line-height:1.25}.trend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.trend-grid div{min-height:118px;padding:13px 10px;border-right:1px solid var(--line)}.trend-grid div:last-child{border-right:0}.trend-grid span,.trend-grid small{display:block;color:var(--muted);font-size:12px;line-height:1.3}.trend-grid strong{display:block;margin:9px 0 5px;color:var(--green);font-size:18px;line-height:1.2}.history-list{display:grid;border-top:1px solid var(--line)}.history-row{display:grid;grid-template-columns:66px minmax(70px,1fr) minmax(70px,1fr) 54px;gap:8px;align-items:center;min-height:46px;padding:9px 12px;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:0}.history-row span,.history-row small,.history-row em{color:var(--muted);font-size:12px;font-style:normal}.history-row strong{color:var(--green);font-size:14px}.history-row em{justify-self:end;font-weight:850}.adjust-row{grid-template-columns:minmax(0,1fr) 74px 96px}.adjust-row span{font-weight:800;line-height:1.25}.adjust-row strong{color:var(--muted);font-size:13px}.stepper{display:grid;grid-template-columns:30px 26px 30px;align-items:center;justify-content:end;gap:5px}.stepper button{display:grid;place-items:center;width:30px;height:30px;border:1px solid #b9c7c7;border-radius:var(--radius);color:var(--teal);background:#fff;cursor:pointer}.stepper b{text-align:center}.bottom-nav{position:fixed;left:50%;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:min(100%,520px);min-height:78px;transform:translate(-50%);border-top:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav button{display:grid;justify-items:center;align-content:center;gap:2px;min-height:78px;border:0;border-right:1px solid #edf0f1;background:transparent;color:#5a6067;cursor:pointer}.bottom-nav button:last-child{border-right:0}.bottom-nav button.active{color:var(--green);background:#eff8ed}.bottom-nav span{font-size:14px;font-weight:860}.bottom-nav small{font-size:12px}@media(max-width:390px){.app-content{padding:20px 12px 108px}h1{font-size:34px}.page-header{display:block}.header-badges{grid-template-columns:repeat(2,minmax(0,1fr));justify-items:stretch;margin-top:12px}.badge{justify-content:center;white-space:normal;text-align:center}.people-grid{grid-template-columns:1fr}.meal-row{grid-template-columns:34px minmax(0,1fr)}.portion-list{grid-column:2;padding-left:0;border-left:0}.execution-row{grid-template-columns:54px minmax(0,1fr);grid-template-areas:"time copy" "time toggles" "portions portions"}.execution-row .portion-list{grid-column:auto}.person-checks{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}.detail-mini-button{grid-column:1 / -1}.action-panel h2{font-size:23px}.today-brief-panel h2{font-size:22px}.today-brief-stats{grid-template-columns:1fr}.today-meal-head{grid-template-columns:54px minmax(0,1fr)}.meal-done-pill{grid-column:2;justify-self:start}.meal-card-actions,.meal-card-button-stack,.recipe-modal-actions{grid-template-columns:1fr}.recipe-modal-overlay{align-items:end;padding:10px}.recipe-modal{max-height:88vh;border-radius:12px 12px 0 0}.recipe-modal-header{padding:14px}.recipe-modal-header h2{font-size:20px}.prep-pack-row{grid-template-columns:32px minmax(0,1fr);grid-template-areas:"check copy" "check amount"}.prep-pack-row .check-button{grid-area:check}.prep-pack-row div{grid-area:copy}.prep-pack-row strong{grid-area:amount;justify-self:start}.week-control{grid-template-columns:24px minmax(0,1fr)}.week-actions{grid-column:2;justify-self:stretch;width:100%;min-width:0}.shop-item-row{grid-template-columns:32px minmax(0,1fr) 58px;grid-template-areas:"check copy amount" "check have have"}.shop-item-row .check-button{grid-area:check}.shop-item-copy{grid-area:copy}.shop-item-row strong{grid-area:amount}.shop-item-row .have-pill{grid-area:have;justify-self:start;margin-top:6px}.review-form{grid-template-columns:1fr}.history-row{grid-template-columns:54px minmax(62px,1fr) minmax(62px,1fr) 48px;gap:6px;padding:9px 10px}.formula-row{grid-template-columns:minmax(86px,1fr) 68px;grid-template-areas:"formula value" "note note"}.formula-row span{grid-area:formula}.formula-row strong{grid-area:value;justify-self:end}.formula-row em{grid-area:note}.calibration-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.trend-grid{grid-template-columns:1fr}.trend-grid div{border-right:0;border-bottom:1px solid var(--line)}.trend-grid div:last-child{border-bottom:0}.adjust-row{grid-template-columns:minmax(0,1fr) 86px;grid-template-areas:"label stepper" "kcal stepper"}.adjust-row span{grid-area:label}.adjust-row strong{grid-area:kcal}.adjust-row .stepper{grid-area:stepper}}@media(min-width:760px){.app-shell{background:linear-gradient(90deg,rgba(20,108,53,.04) 1px,transparent 1px),#f7f7f3;background-size:26px 26px}.app-content,.bottom-nav{box-shadow:0 0 0 1px #17191c0a}}
