html{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}body{font-synthesis:none;min-width:320px;min-height:100dvh;margin:0}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin:0}#root{min-height:100dvh}:root{--on-brand:#fff;--bg-soft:var(--line-2);--space-1:2px;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:10px;--space-6:12px;--space-7:14px;--space-8:16px;--space-9:18px;--space-10:20px;--space-12:24px;--space-16:32px;--text-lg:.95rem;--text-xl:1rem;--text-2xl:1.125rem;--text-3xl:1.25rem;--text-4xl:1.4rem;--text-5xl:1.6rem;--text-6xl:2.2rem;--text-7xl:2.8rem;--radius-pill:999px;--badge-blue-bg:#e6effb;--badge-blue-fg:#2f5d96;--badge-blue-bd:#cadcf3;--badge-amber-bg:#fbf0d9;--badge-amber-fg:#8a5a12;--badge-amber-bd:#f0dcb0;--badge-rose-bg:#fdeef0;--badge-rose-fg:#9a3556;--badge-rose-bd:#f3cdd6;--badge-purple-bg:#f1eef8;--badge-purple-fg:#6a5a92;--badge-purple-bd:#ddd5ee;--badge-neutral-bg:#f0eef0;--badge-neutral-fg:#6a5a66;--badge-neutral-bd:#ddd2db}*,:before,:after{box-sizing:border-box}html{font-size:93.75%}body{color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.55}h1,h2,h3{font-weight:700;line-height:1.2}p{color:var(--ink-2)}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{color:var(--on-cobalt);padding:var(--space-7) 28px;justify-content:space-between;align-items:center;gap:var(--space-8);display:flex}.header-brand{align-items:center;gap:var(--space-7);display:flex}.brand-icon{line-height:1}.app-header h1{color:var(--white);margin:0}.app-header p{font-size:var(--text-sm);color:#ffffffa6;margin:0}.btn-export{background:var(--cobalt);color:var(--on-cobalt);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-9);font-size:var(--text-md);cursor:pointer;white-space:nowrap;border:none;font-weight:600;transition:background .15s}.btn-export:hover{background:var(--cobalt-hover)}.export-blocked{border:1px solid var(--line);border-left:4px solid var(--cobalt);border-radius:var(--radius-sm);width:min(420px,100vw - 32px);padding:var(--space-7) var(--space-8) var(--space-7) var(--space-9);z-index:1000;background:#fff;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000029}.export-blocked strong{font-size:var(--text-md);color:#1a1a1a;padding-right:var(--space-9);display:block}.export-blocked p{font-size:var(--text-sm);color:var(--muted);margin:var(--space-3) 0 var(--space-5);line-height:1.5}.export-blocked-retry{background:var(--cobalt);border-radius:var(--radius-sm);color:#fff;font-size:var(--text-sm);padding:var(--space-4) var(--space-7);cursor:pointer;border:none}.export-blocked-retry:hover{background:var(--cobalt-hover)}.export-blocked-close{font-size:var(--text-2xl);color:var(--muted);cursor:pointer;background:0 0;border:none;line-height:1;position:absolute;top:8px;right:10px}.export-blocked-close:hover{color:#1a1a1a}.app-body{width:100%;max-width:1520px;padding:var(--space-12) var(--space-10);align-items:start;gap:0;gap:var(--space-10);flex:1;grid-template-columns:360px 1fr;margin:0 auto;display:grid}.profile-panel{gap:0;overflow-y:auto}.profile-panel::-webkit-scrollbar{width:5px}.profile-panel::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius-pill)}.panel-header{margin-bottom:var(--space-9);padding-bottom:var(--space-8)}.btn-reset{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);font-size:var(--text-xs);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;flex-shrink:0;transition:all .15s}.btn-reset:hover{border-color:var(--cobalt);color:var(--accent-text)}.reset-confirm{align-items:flex-end;gap:var(--space-3);flex-direction:column;flex-shrink:0;display:flex}.reset-confirm-text{font-size:var(--text-xs);color:#b23b2e;white-space:nowrap}.reset-confirm-actions{gap:var(--space-3);display:flex}.btn-reset-cancel,.btn-reset-confirm{border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;transition:all .15s}.btn-reset-cancel{border:1px solid var(--line);color:var(--muted);background:0 0}.btn-reset-cancel:hover{border-color:var(--cobalt);color:var(--accent-text)}.btn-reset-confirm{color:#fff;background:#b23b2e;border:1px solid #b23b2e}.btn-reset-confirm:hover{background:#9c3024;border-color:#9c3024}.form-section{margin-bottom:var(--space-9);padding-bottom:var(--space-9);border-bottom:1px solid var(--line-2)}.form-section:last-child{border-bottom:none;margin-bottom:0}.form-section h3{margin-bottom:var(--space-6)}.form-grid{gap:var(--space-5);grid-template-columns:1fr 1fr;display:grid}.field{gap:var(--space-3);flex-direction:column;display:flex}.field select,.field input[type=number],.field input[type=text]{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);color:var(--ink);background:var(--white);width:100%;transition:border-color .15s}.field select:focus,.field input:focus{outline:none}.full-width{grid-column:1/-1}.check-grid{gap:var(--space-4);margin:var(--space-6) 0;grid-template-columns:1fr 1fr;display:grid}.checkbox-field{align-items:center;gap:var(--space-4);cursor:pointer;display:flex}.checkbox-field input[type=checkbox]{width:15px;height:15px;accent-color:var(--cobalt);cursor:pointer;flex-shrink:0}.checkbox-field span{font-size:var(--text-sm);color:var(--ink-2)}.results-area{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex}.tabs{border-bottom:1px solid var(--line);padding:0 var(--space-2);gap:var(--space-1);flex-shrink:0;display:flex}.tab{padding:var(--space-7) var(--space-9);font-size:var(--text-md);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:600;transition:color .15s,border-color .15s}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent-text);border-bottom-color:var(--cobalt)}.tab-content{padding:var(--space-12);overflow:auto}.tab-panel{gap:var(--space-10);flex-direction:column;display:flex}.targets-hero{background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:var(--space-10) var(--space-12);justify-content:space-between;align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.targets-kcal{font-size:var(--text-7xl);color:var(--accent-text);font-weight:800;line-height:1}.targets-kcal-unit{font-size:var(--text-2xl);color:var(--muted);font-weight:500}.targets-desc{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-3)}.metric-grid{gap:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.metric-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-7) var(--space-8);gap:var(--space-2);flex-direction:column;display:flex}.metric-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}.metric-value{font-size:var(--text-4xl);color:var(--accent-text);font-weight:800;line-height:1}.metric-sub{font-size:var(--text-xs);color:var(--muted)}.bmi-bar-wrap{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-7) var(--space-8)}.bmi-bar{border-radius:var(--radius-pill);height:10px;margin-bottom:var(--space-3);background:linear-gradient(90deg,#f59e0b 14%,#22c55e 27% 54%,#f59e0b 70%,#ef4444 100%);position:relative}.bmi-marker{border:2.5px solid #fff;border-radius:50%;width:16px;height:16px;transition:left .4s;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000040}.bmi-scale,.bmi-zones{font-size:var(--text-2xs);color:var(--muted);margin-top:var(--space-2);justify-content:space-between;display:flex}.bmi-zones{margin-top:var(--space-1);display:flex}.bmi-zones span{text-align:center;font-size:var(--text-2xs);color:var(--muted)}.insight-grid{gap:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.insight-card{background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-8)}.insight-card.disclaimer{background:var(--accent-soft);border-color:#f5d5bf}.insight-card h3{font-size:var(--text-sm);margin-bottom:var(--space-4);color:var(--accent-text)}.insight-card.disclaimer h3{color:var(--cobalt-hover)}.insight-card p{font-size:var(--text-sm);margin-bottom:var(--space-3);color:var(--ink-2);line-height:1.5}.insight-card p:last-child{margin-bottom:0}.week-grid{gap:var(--space-7);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.day-card{border:1px solid var(--line);background:var(--white);transition:box-shadow .15s}.day-card:hover{box-shadow:var(--shadow-md)}.day-card.freezer{border-color:#bfdbfe}.day-header{gap:var(--space-1);flex-direction:column;display:flex}.day-card.freezer .day-header{border-color:#bfdbfe}.day-name{font-size:var(--text-md);color:var(--accent-text);font-weight:700}.day-badge{font-size:var(--text-xs);align-items:center;gap:var(--space-2);font-weight:600;display:inline-flex}.badge-fridge{color:var(--badge-positive-fg)}.badge-freezer{color:var(--badge-blue-fg)}.day-session{font-size:var(--text-2xs);color:var(--muted)}.meal-list{padding:var(--space-4) 0}.meal-item{padding:var(--space-6) var(--space-7);border-bottom:1px solid var(--line-2)}.meal-item:last-child{border-bottom:none}.meal-item.is-snack{border-left:3px solid var(--cobalt);padding-left:calc(var(--space-7) - 3px);background:#fdf3ec}.meal-item.is-snack .meal-type-label{color:var(--cobalt-hover)}.meal-top{gap:var(--space-3);margin-bottom:var(--space-2)}.meal-icon{color:var(--accent-text);vertical-align:-2px}.meal-type-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}.meal-name{color:var(--ink);margin-bottom:var(--space-3);display:block}.meal-why{font-size:var(--text-sm);color:var(--muted);margin:-1px 0 var(--space-4);font-style:italic;line-height:1.45}.diet-badges{gap:var(--space-3);margin:0 0 var(--space-4);flex-wrap:wrap;display:flex}.diet-badge{font-size:var(--text-2xs);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);letter-spacing:.01em;border:1px solid #0000;font-weight:600}.diet-vegan,.diet-vegetarian{background:var(--badge-positive-bg);color:var(--badge-positive-fg);border-color:var(--badge-positive-bd)}.diet-gf{background:var(--badge-amber-bg);color:var(--badge-amber-fg);border-color:var(--badge-amber-bd)}.diet-df{background:var(--badge-blue-bg);color:var(--badge-blue-fg);border-color:var(--badge-blue-bd)}.diet-kids{background:var(--badge-rose-bg);color:var(--badge-rose-fg);border-color:var(--badge-rose-bd)}.diet-nokids{background:var(--badge-neutral-bg);color:var(--badge-neutral-fg);border-color:var(--badge-neutral-bd)}.meal-macros{align-items:center;gap:var(--space-4);font-size:var(--text-xs);color:var(--muted);flex-wrap:wrap;display:flex}.meal-tags{gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.tag{background:var(--line-2);border-radius:var(--radius-pill);padding:1px var(--space-4);font-size:var(--text-2xs);color:var(--muted)}.tag-difficulty{padding:1px var(--space-3);background:0 0;align-items:center;gap:1px;display:inline-flex}.tag-difficulty .diff-on{color:var(--accent-text)}.tag-difficulty .diff-off{color:var(--line)}.day-footer{padding:var(--space-6) var(--space-7);background:var(--accent-soft);border-top:1px solid var(--accent-soft);font-size:var(--text-sm);color:var(--muted);justify-content:space-between;align-items:center;display:flex}.day-footer span:first-child{text-transform:uppercase;font-size:var(--text-2xs);letter-spacing:.05em;color:var(--muted);font-weight:700}.day-footer strong{color:var(--accent-text);font-size:var(--text-md)}.shopping-header{justify-content:space-between;align-items:baseline;gap:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--line);display:flex}.shopping-header h2{font-size:var(--text-xl)}.shopping-count{font-size:var(--text-sm);color:var(--muted)}.shopping-categories{gap:var(--space-9);flex-direction:column;display:flex}.category-title{align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--ink-2);margin-bottom:var(--space-4);text-transform:uppercase;letter-spacing:.04em;font-weight:700;display:flex}.shopping-items{gap:var(--space-2);flex-direction:column;max-width:640px;display:flex}.shopping-row{padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);background:var(--cream);border:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:var(--space-4);transition:background .1s;display:flex}.shopping-check{align-items:center;gap:var(--space-4);min-width:0;display:flex}.shopping-box{border:2px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;color:#fff;background:#fff;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:background .12s,border-color .12s;display:inline-flex}.shopping-row.checked .shopping-box{background:var(--cobalt);border-color:var(--cobalt)}.shopping-row:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}.ingredient-name{font-size:var(--text-sm);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shopping-row.checked .ingredient-name{color:var(--muted)}.shopping-row.checked{background:var(--line-2)}.ingredient-qty{font-size:var(--text-sm);color:var(--accent-text);white-space:nowrap}.ingredient-text{flex-direction:column;min-width:0;display:flex}.ingredient-spec{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-top:1px;font-size:12px;line-height:1.25;overflow:hidden}.shopping-row.checked .ingredient-spec,.shopping-row.have .ingredient-spec{opacity:.4}.sources-intro{padding-bottom:var(--space-6);border-bottom:1px solid var(--line)}.sources-intro h2{font-size:var(--text-xl);margin-bottom:var(--space-3)}.sources-intro p{font-size:var(--text-md)}.source-list{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.source-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-8);background:var(--cream)}.source-card h3{font-size:var(--text-md);margin-bottom:var(--space-3);color:var(--accent-text)}.source-card p{font-size:var(--text-sm);margin-bottom:var(--space-5);color:var(--ink-2);line-height:1.5}.source-card a{font-size:var(--text-sm);color:var(--accent-text);font-weight:600}@media (width<=900px){.app-body{padding:var(--space-8);grid-template-columns:1fr}.profile-panel{min-width:0;max-height:none;position:static;overflow:visible}.metric-grid{grid-template-columns:repeat(2,1fr)}.insight-grid{grid-template-columns:1fr}.week-grid{grid-template-columns:1fr 1fr}}@media (width<=600px){.targets-hero{flex-direction:column;align-items:flex-start}.metric-grid{grid-template-columns:1fr 1fr}.source-list{grid-template-columns:1fr}}.meal-steps{margin-top:var(--space-4);border-top:1px dashed var(--line);padding-top:var(--space-3)}.meal-steps summary{cursor:pointer;font-size:var(--text-sm);color:var(--accent-text);-webkit-user-select:none;user-select:none;align-items:center;gap:var(--space-3);font-weight:600;list-style:none;display:flex}.meal-steps summary::-webkit-details-marker{display:none}.meal-steps summary:before{content:"▸";transition:transform .15s}.meal-steps[open] summary:before{transform:rotate(90deg)}.meal-steps summary:hover{color:var(--accent-text)}.steps-utensils{font-size:var(--text-sm);color:var(--muted);margin:var(--space-4) 0 var(--space-1);line-height:1.4}.steps-utensils .su-label{color:var(--ink);margin-right:var(--space-2);font-weight:600}.steps-ingredients{gap:var(--space-2);margin:var(--space-4) 0;flex-wrap:wrap;display:flex}.ing-chip{font-size:var(--text-2xs);background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-soft);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-4);white-space:nowrap}.steps-list{margin:var(--space-3) 0 var(--space-1);padding-left:var(--space-9);gap:var(--space-3);flex-direction:column;display:flex}.steps-list li{font-size:var(--text-sm);color:var(--ink-2);line-height:1.45}.steps-list li::marker{color:var(--accent-text);font-weight:700}.btn-regenerate{background:var(--cobalt);color:var(--on-cobalt);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-8);font-family:var(--font);font-size:var(--text-md);cursor:pointer;border:none;font-weight:600;transition:background .15s,transform .1s}.btn-regenerate:hover{background:var(--cobalt)}.btn-regenerate:active{transform:scale(.97)}.menu-toolbar-hint{font-size:var(--text-sm);color:var(--muted)}.btn-lock-menu{align-items:center;gap:var(--space-3);background:var(--white);color:var(--accent-text);border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-7);font-family:var(--font);font-size:var(--text-sm);cursor:pointer;font-weight:600;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn-lock-menu:hover{background:var(--accent-soft)}.btn-lock-menu:active{transform:scale(.97)}.btn-lock-menu.is-locked{background:var(--cobalt);color:var(--on-cobalt);border-color:var(--cobalt)}.menu-locked-banner{background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-6);font-size:var(--text-sm);margin-bottom:var(--space-5);align-items:center;display:flex}.plan-start-hint{font-size:var(--text-xs);color:var(--muted);margin:var(--space-2) 0 var(--space-6)}.regens-left{font-size:var(--text-xs);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5);white-space:nowrap;font-weight:600}.regens-left.low{color:var(--accent-text);background:var(--accent-soft);border-color:#f5d9c5}.tag-storage-freezer{background:var(--badge-blue-bg);color:var(--badge-blue-fg);border-color:var(--badge-blue-bd)}.tag-storage-fridge{background:var(--badge-positive-bg);color:var(--badge-positive-fg);border-color:var(--badge-positive-bd)}.tag-storage-fresh{background:var(--badge-warm-bg);color:var(--badge-warm-fg);border-color:var(--badge-warm-bd)}.plan-hero{justify-content:space-between;align-items:center;gap:var(--space-12);background:var(--cobalt);color:var(--on-cobalt);border-radius:var(--radius);padding:var(--space-12) 28px;margin-bottom:var(--space-7);flex-wrap:wrap;display:flex}.plan-hero-text h2{color:var(--white);font-size:var(--text-4xl);margin-bottom:var(--space-3)}.plan-hero-text p{color:#c8e6c9;font-size:var(--text-md)}.eff-score{text-align:center;min-width:180px}.eff-score-num{font-size:var(--text-6xl);font-weight:800;line-height:1}.eff-score-num span{font-size:var(--text-xl);opacity:.7;font-weight:500}.eff-score-label{font-size:var(--text-xs);opacity:.85;margin:var(--space-2) 0 var(--space-4)}.eff-score-bar{border-radius:var(--radius-pill);background:#fff3;height:7px;overflow:hidden}.eff-score-bar div{background:var(--cobalt);border-radius:var(--radius-pill);height:100%}.eff-checks{gap:var(--space-4) var(--space-10);font-size:var(--text-sm);color:var(--accent-text);margin-bottom:var(--space-9);padding:0 var(--space-2);flex-wrap:wrap;font-weight:500;display:flex}.benefit-grid{gap:var(--space-6);margin-bottom:var(--space-9);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.benefit-card{background:var(--white);box-shadow:var(--shadow);text-align:center;gap:var(--space-2);flex-direction:column;display:flex}.benefit-value{color:var(--accent-text)}.benefit-label{font-size:var(--text-sm);color:var(--ink-2);font-weight:600}.benefit-sub{font-size:var(--text-xs);color:var(--muted)}.plan-cta-row{gap:var(--space-6);margin-bottom:var(--space-10);flex-wrap:wrap;display:flex}.btn-primary,.btn-secondary{border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font);font-weight:600;font-size:var(--text-lg);border:none;padding:13px 22px;transition:background .15s,transform .1s}.btn-primary{background:var(--cobalt);color:var(--on-cobalt)}.btn-primary:hover{background:var(--cobalt-hover)}.btn-secondary{background:var(--accent-soft);color:var(--accent-text)}.btn-secondary:hover{background:var(--accent-soft)}.btn-primary:active,.btn-secondary:active{transform:scale(.97)}.nutrition-details{border-top:1px solid var(--line);padding-top:var(--space-7)}.nutrition-details summary{cursor:pointer;font-weight:600;font-size:var(--text-md);color:var(--muted);margin-bottom:var(--space-8);-webkit-user-select:none;user-select:none}.nutrition-details summary:hover{color:var(--accent-text)}.nutri-head h2{font-size:var(--text-xl);align-items:center;display:flex}.nutri-head-sub{color:var(--muted);font-size:var(--text-sm);margin:var(--space-2) 0 var(--space-7)}.nutri-section-title{font-size:var(--text-md);color:var(--ink-2);margin:var(--space-8) 0 var(--space-5);font-weight:700}.nutri-hero{background:linear-gradient(135deg, var(--accent-soft), var(--white));border:1px solid var(--accent-soft);border-radius:var(--radius-md,14px);padding:var(--space-8);text-align:center}.nutri-hero-num{color:var(--accent-text);font-size:44px;font-weight:800;line-height:1}.nutri-hero-num span{font-size:var(--text-md);color:var(--muted);font-weight:600}.nutri-hero-sub{color:var(--ink-2);font-size:var(--text-sm);margin-top:var(--space-5);max-width:46ch;margin-inline:auto}.nutri-macros{gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=640px){.nutri-macros{grid-template-columns:1fr}}.nutri-macro{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-6)}.nutri-macro-top{align-items:center;gap:var(--space-3);color:var(--ink-2);display:flex}.nutri-macro-icon{display:inline-flex}.nutri-macro-name{font-weight:700;font-size:var(--text-sm)}.nutri-macro-grams{color:var(--ink);margin:var(--space-3) 0 var(--space-4);font-size:26px;font-weight:800;display:block}.nutri-macro-bar{border-radius:var(--radius-pill);background:var(--line-2,var(--line));height:6px;overflow:hidden}.nutri-macro-bar span{border-radius:var(--radius-pill);height:100%;display:block}.nutri-macro-protein .nutri-macro-bar span{background:#e07a5f}.nutri-macro-carbs .nutri-macro-bar span{background:#f2cc8f}.nutri-macro-fat .nutri-macro-bar span{background:#81b29a}.nutri-macro-protein .nutri-macro-icon{color:#e07a5f}.nutri-macro-carbs .nutri-macro-icon{color:#d9a441}.nutri-macro-fat .nutri-macro-icon{color:#81b29a}.nutri-macro-pct{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-3);display:block}.nutri-macro-desc{font-size:var(--text-sm);color:var(--ink-2);margin-top:var(--space-4);line-height:1.4}.nutri-mini-grid{gap:var(--space-5);margin-top:var(--space-6);grid-template-columns:1fr 1fr;display:grid}@media (width<=640px){.nutri-mini-grid{grid-template-columns:1fr}}.nutri-mini{align-items:center;gap:var(--space-5);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-6);display:flex}.nutri-mini-icon{color:var(--accent-text);display:inline-flex}.nutri-mini-value{font-size:var(--text-lg);color:var(--ink);font-weight:800;display:block}.nutri-mini-label{font-weight:600;font-size:var(--text-sm);color:var(--ink-2);display:block}.nutri-mini-sub{font-size:var(--text-xs);color:var(--muted);display:block}.nutri-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-7);margin-top:var(--space-6)}.nutri-card h3{font-size:var(--text-md);margin-bottom:var(--space-5);font-weight:700}.nutri-bmi-row{align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.nutri-bmi-val{font-size:34px;font-weight:800}.nutri-bmi-zone{font-weight:700;font-size:var(--text-md)}.nutri-bmi-framing{font-size:var(--text-sm);color:var(--ink-2);margin:0 0 var(--space-5);line-height:1.5}.nutri-sources{margin-top:var(--space-10);border-top:1px solid var(--line);padding-top:var(--space-8)}.nutri-sources>summary{cursor:pointer;font-weight:600;font-size:var(--text-md);color:var(--accent-text);align-items:center;list-style:none;display:flex}.nutri-sources>summary::-webkit-details-marker{display:none}.nutri-sources>summary:after{content:"⌄";font-size:var(--text-lg);margin-left:auto;line-height:1}.nutri-sources[open]>summary:after{content:"⌃"}.nutri-sources>summary:hover{color:var(--accent-text)}.nutri-sources[open]>summary{margin-bottom:var(--space-6)}.nutri-rows{gap:var(--space-5);flex-direction:column;display:flex}.nutri-row{align-items:baseline;gap:var(--space-4) var(--space-5);grid-template-columns:1fr auto;display:grid}.nutri-row-label{color:var(--ink-2);font-weight:600;font-size:var(--text-sm)}.nutri-row-val{color:var(--ink);font-weight:800}.nutri-row-val.is-risk{color:var(--state-risk)}.nutri-row-val.is-ok{color:var(--state-ok)}.nutri-row .nutri-explain{grid-column:1/-1}.nutri-explain{margin-top:var(--space-2)}.nutri-explain summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--text-xs);color:var(--accent-text);align-items:center;gap:4px;font-weight:600;list-style:none;display:inline-flex}.nutri-explain summary:before{content:"ⓘ";font-weight:400}.nutri-explain summary::-webkit-details-marker{display:none}.nutri-explain[open] summary{margin-bottom:var(--space-3)}.nutri-explain p{font-size:var(--text-sm);color:var(--ink-2);line-height:1.45}.nutri-summary{font-size:var(--text-sm);color:var(--ink-2);margin-top:var(--space-7)}.nutri-cta{gap:var(--space-5);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.nutri-disclaimer{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--line);line-height:1.5}.nutri-link{margin-top:var(--space-6)}.btn-view-menu{width:100%;margin-top:var(--space-7);background:var(--cobalt);color:var(--on-cobalt);border-radius:var(--radius-lg);padding:var(--space-7);min-height:48px;font-family:var(--font);font-size:var(--text-lg);cursor:pointer;border:none;font-weight:700;transition:background .15s,transform .1s}.btn-view-menu:hover{background:var(--cobalt-hover)}.btn-view-menu:active{transform:scale(.98)}.profile-cta-hint{justify-content:center;align-items:center;gap:var(--space-3);text-align:center;font-size:var(--text-xs);color:var(--muted);margin:var(--space-3) 0 var(--space-2);display:flex}.profile-group-label{align-items:center;gap:var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:var(--space-9) 0 var(--space-6);display:flex}.profile-group-label svg{color:var(--accent-text)}.profile-scroll>.profile-group-label:first-child{margin-top:var(--space-2)}.advanced-settings{margin-top:var(--space-6)}.advanced-settings>summary{align-items:center;gap:var(--space-4);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:48px;font-size:var(--text-md);color:var(--ink-2);padding:var(--space-5) 0;border-top:1px solid var(--line);font-weight:600;list-style:none;display:flex}.advanced-settings>summary::-webkit-details-marker{display:none}.advanced-settings>summary:after{content:"▸";color:var(--muted);margin-left:auto;transition:transform .15s}.advanced-settings[open]>summary:after{transform:rotate(90deg)}.advanced-settings>summary:hover,.advanced-settings>summary svg{color:var(--accent-text)}@media (prefers-reduced-motion:reduce){.advanced-settings>summary:after{transition:none}}.plan-config-grid{gap:var(--space-5);margin-bottom:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}.targets-summary-card,.meal-structure-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.profile-panel .targets-summary-card,.profile-panel .meal-structure-card{margin-top:var(--space-4)}.targets-summary-main,.meal-structure-head{justify-content:space-between;gap:var(--space-4);align-items:flex-start;display:flex}.targets-summary-main h3,.meal-structure-head h3{margin:0 0 var(--space-2);align-items:center;gap:var(--space-2);font-size:var(--text-md);display:flex}.targets-summary-main p,.meal-structure-head p{gap:var(--space-2);color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;margin:0;display:flex}.targets-summary-main p strong,.meal-structure-head p strong{color:var(--accent-text)}.targets-status{border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);white-space:nowrap;font-weight:800}.targets-status.recommended{color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft)}.targets-status.custom{color:#8a4b12;background:#fff3d8;border:1px solid #f0d19a}.targets-summary-actions,.targets-editor-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.btn-target-customize,.btn-target-reset,.btn-target-save,.btn-apply-meal-structure{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);color:var(--ink-2);justify-content:center;align-items:center;gap:var(--space-2);min-height:36px;padding:var(--space-2) var(--space-4);font-weight:800;font-size:var(--text-xs);cursor:pointer;display:inline-flex}.btn-target-customize,.btn-target-save,.btn-apply-meal-structure{background:var(--cobalt);border-color:var(--cobalt);color:var(--on-cobalt)}.btn-target-reset:hover{border-color:var(--cobalt);color:var(--accent-text)}.targets-editor{border-top:1px dashed var(--line);padding-top:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.targets-editor p,.targets-editor-note{color:var(--muted);font-size:var(--text-sm);margin:0}.targets-editor .targets-editor-error{color:var(--danger,#b42318);margin:0;font-weight:600}.targets-editor-grid{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.targets-editor-grid label{gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-2);flex-direction:column;font-weight:800;display:flex}.targets-editor-grid input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--cream);padding:var(--space-3);color:var(--ink)}.meal-choice-grid{flex-direction:column;display:flex}.meal-choice-row{gap:var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.meal-choice-label{flex-direction:column;min-width:0;display:flex}.meal-choice-label strong{font-size:var(--text-sm);color:var(--ink)}.meal-choice-label small{font-size:var(--text-2xs);color:var(--muted);align-items:center;gap:var(--space-3);flex-wrap:wrap;display:inline-flex}.meal-choice-row.off .meal-choice-label strong{color:var(--muted);font-weight:600}.meal-seg{background:var(--line-2);border-radius:var(--radius-pill);gap:2px;padding:2px;display:inline-flex}.meal-seg-btn{min-width:52px;min-height:40px;padding:var(--space-2) var(--space-4);color:var(--muted);border-radius:var(--radius-pill);font-family:var(--font);font-size:var(--text-2xs);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:4px;font-weight:700;transition:background .12s,color .12s;display:inline-flex}.meal-seg-btn.on.seg-generated,.meal-seg-btn.on.seg-free{background:var(--cobalt);color:#fff}.meal-seg-btn.on.seg-off{background:var(--white);color:var(--ink-2);box-shadow:0 1px 4px #304bff29}.meal-seg-btn:focus-visible{outline:2px solid var(--cobalt);outline-offset:1px}.meal-applied{align-items:center;gap:var(--space-2);font-size:var(--text-2xs);color:var(--accent-text);opacity:0;white-space:nowrap;font-weight:700;transition:opacity .2s;display:inline-flex}.meal-applied.show{opacity:1}@media (prefers-reduced-motion:reduce){.meal-applied{transition:none}}.meal-add-link{font-family:var(--font);font-size:var(--text-2xs);cursor:pointer;background:0 0;border:none;align-items:center;gap:2px;min-height:24px;padding:0;font-weight:700;text-decoration:underline;display:inline-flex}.meal-add-link:hover{filter:brightness(.9)}.meal-choice-summary{margin:var(--space-3) 0 0;padding:var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);line-height:1.4}.meal-add-slot{border-color:var(--accent-soft)}.meal-add-slot .meal-name{color:var(--accent-text)}@media (width<=900px){.plan-config-grid{grid-template-columns:1fr}.targets-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.targets-summary-main,.meal-structure-head{flex-direction:column}.targets-status{align-self:flex-start}.targets-editor-grid{grid-template-columns:1fr}.btn-target-customize,.btn-target-reset,.btn-target-save,.btn-apply-meal-structure{width:100%}}.profile-subsection{padding:0}.profile-subsection>summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-5) 0 var(--space-4);flex-wrap:wrap;list-style:none;display:flex}.profile-subsection>summary::-webkit-details-marker{display:none}.profile-subsection>summary:before{content:"▸";margin-right:var(--space-3);color:var(--muted);font-size:var(--text-xs);transition:transform var(--dur) var(--ease)}.profile-subsection[open]>summary:before{content:"▾"}.subsection-title{font-size:var(--text-md);color:var(--ink);font-weight:600}.subsection-recap{font-size:var(--text-xs);color:var(--muted);margin-left:auto}.shopping-hero{justify-content:space-between;align-items:center;gap:var(--space-8);margin-bottom:var(--space-7);flex-wrap:wrap;display:flex}.shopping-hero h2{font-size:var(--text-3xl)}.shopping-hero-sub{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-1)}.shopping-cost{text-align:right;flex-direction:column;display:flex}.shopping-cost strong{font-size:var(--text-4xl);color:var(--accent-text);font-weight:800}.shopping-cost span{font-size:var(--text-xs);color:var(--muted)}.shopping-progress{align-items:center;gap:var(--space-6);margin-bottom:var(--space-9);display:flex}.shopping-progress-bar{background:var(--line-2);border-radius:var(--radius-pill);flex:1;height:8px;overflow:hidden}.shopping-progress-bar div{background:var(--cobalt);border-radius:var(--radius-pill);height:100%;transition:width .25s}.shopping-progress-label{font-size:var(--text-sm);color:var(--accent-text);font-weight:700}.btn-clear-checks{border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--muted);padding:var(--space-2) var(--space-5);cursor:pointer;background:0 0}.btn-clear-checks:hover{color:var(--ink-2);border-color:var(--muted)}.category-subtotal{font-size:var(--text-xs);color:var(--muted);margin-left:auto;font-weight:600}.shopping-row{cursor:pointer}.shopping-row.checked .ingredient-name{opacity:.45;text-decoration:line-through}.shopping-row.checked .ingredient-qty{opacity:.35}.shopping-footnote{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-8)}.tag-reuse{background:var(--badge-amber-bg);color:var(--badge-amber-fg);border-color:var(--badge-amber-bd)}.tag-passive{background:var(--badge-purple-bg);color:var(--badge-purple-fg);border-color:var(--badge-purple-bd)}@media (width<=600px){.plan-hero{padding:var(--space-9)}.eff-score{min-width:100%}.benefit-grid{grid-template-columns:1fr 1fr}}.projection-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-9) var(--space-10);margin-bottom:var(--space-9);gap:var(--space-4) var(--space-12);grid-template-columns:1fr auto;align-items:center;display:grid}.projection-info h3{font-size:var(--text-lg);margin-bottom:var(--space-4)}.projection-rate{font-size:var(--text-md);color:var(--ink-2);margin-bottom:var(--space-6)}.projection-rate strong{color:var(--accent-text)}.projection-monthly{color:var(--muted);font-size:var(--text-sm)}.projection-target-field{gap:var(--space-2);flex-direction:column;max-width:220px;display:flex}.projection-target-field span{font-size:var(--text-xs);color:var(--muted);font-weight:600}.projection-target-field input{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-6);font-family:var(--font);font-size:var(--text-md);background:var(--cream)}.projection-target-field input:focus{outline:2px solid var(--cobalt);border-color:#0000}.projection-eta{margin-top:var(--space-5);font-size:var(--text-md);color:var(--accent-text)}.projection-warning{margin-top:var(--space-5);font-size:var(--text-sm);color:var(--accent-text)}.projection-chart-wrap{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.projection-chart-label{font-size:var(--text-2xs);color:var(--muted)}.proj-line{stroke:var(--accent-text);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.proj-target-line{stroke:var(--accent-text);stroke-width:1.5px;stroke-dasharray:5 4}.proj-dot-start,.proj-dot-end{fill:var(--accent-text)}.projection-disclaimer{font-size:var(--text-xs);color:var(--muted);border-top:1px dashed var(--line);padding-top:var(--space-5);margin-top:var(--space-2);grid-column:1/-1}@media (width<=700px){.projection-card{grid-template-columns:1fr}.projection-chart-wrap{align-items:flex-start}.projection-chart{width:100%;max-width:340px}}.header-actions{align-items:center;gap:var(--space-5);display:flex}.btn-auth{color:var(--white);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-8);font-family:var(--font);font-size:var(--text-md);cursor:pointer;background:0 0;border:1.5px solid #ffffff80;font-weight:600;transition:border-color .15s,background .15s}.btn-auth:hover{border-color:var(--white);background:#ffffff14}.btn-auth-create{background:var(--cobalt);border-color:var(--cobalt);color:var(--on-brand)}.btn-auth-create:hover{background:var(--cobalt-hover);border-color:var(--cobalt-hover)}.auth-user{align-items:center;gap:var(--space-4);display:flex}.auth-email{color:var(--white);font-size:var(--text-sm);opacity:.9;text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.btn-auth-secondary{color:#ffffffb3;font-size:var(--text-sm);cursor:pointer;font-family:var(--font);background:0 0;border:none;text-decoration:underline}.btn-auth-secondary:hover{color:var(--white)}.auth-overlay{z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal{background:var(--white);width:100%;max-width:380px;position:relative}.auth-modal h2{font-size:var(--text-3xl);margin-bottom:var(--space-3)}.auth-sub{font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-9)}.auth-tabs{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:var(--space-7);gap:4px;padding:4px;display:flex}.auth-tab{padding:9px var(--space-5);font-family:var(--font);font-size:var(--text-md);color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;font-weight:600;transition:background .15s,color .15s}.auth-tab.active{background:var(--white);color:var(--accent-text);box-shadow:0 1px 4px #304bff24}.auth-tab:hover:not(.active){color:var(--ink-2)}.auth-close{color:var(--muted);cursor:pointer;background:0 0;border:none;line-height:1;position:absolute}.auth-form{gap:var(--space-6);flex-direction:column;display:flex}.auth-form label{gap:var(--space-2);flex-direction:column;display:flex}.auth-form label span{font-size:var(--text-xs);color:var(--ink-2);font-weight:600}.auth-form input{border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px var(--space-6);font-family:var(--font);font-size:var(--text-md);background:var(--cream)}.auth-form input:focus{outline:2px solid var(--cobalt);border-color:#0000}.legal-check{color:var(--ink-2);align-items:flex-start;gap:10px;font-size:.82rem;line-height:1.45;display:flex}.legal-check input[type=checkbox]{flex:none;width:18px;height:18px;margin-top:2px}.legal-check a{font-weight:600;text-decoration:underline}.auth-form .auth-legal-check{flex-direction:row;gap:10px}.auth-form .auth-legal-check span{font-size:.8rem;font-weight:400;line-height:1.4}.legal-gate-overlay{padding:24px 12px;overflow-y:auto}.legal-gate{max-width:600px;margin:auto}.legal-gate .legal-check{margin:18px 0}.legal-gate-note{margin-top:18px}.auth-modal .auth-error{font-size:var(--text-sm);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-6);align-items:center;gap:var(--space-3);border:none;font-weight:700;display:flex;box-shadow:0 2px 8px #c628284d;color:#fff!important;background:#c62828!important}.auth-modal .auth-error:before{content:"⚠";flex-shrink:0;font-size:1.05em;line-height:1}.auth-notice{font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5)}.auth-forgot{font-size:var(--text-xs);color:var(--accent-text);cursor:pointer;background:0 0;border:none;align-self:flex-end;margin-top:-4px;padding:0;text-decoration:underline}.auth-forgot:hover{color:var(--accent-text)}.btn-auth-submit{background:var(--cobalt);color:var(--on-cobalt);border-radius:var(--radius-sm);font-family:var(--font);font-size:var(--text-lg);cursor:pointer;border:none;padding:13px;font-weight:700;transition:background .15s}.btn-auth-submit:hover:not(:disabled){background:var(--cobalt)}.btn-auth-submit:disabled{opacity:.6;cursor:wait}.auth-switch{margin-top:var(--space-7);font-size:var(--text-sm);color:var(--muted);text-align:center}.auth-switch button{color:var(--accent-text);cursor:pointer;font-weight:600;font-size:var(--text-sm);font-family:var(--font);background:0 0;border:none;text-decoration:underline}@media (width<=600px){.auth-email{display:none}}.plan-badge{align-items:center;gap:var(--space-2);color:var(--white);font-size:var(--text-xs);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);white-space:nowrap;background:#ffffff29;font-weight:700;display:inline-flex}.plan-notice{justify-content:space-between;align-items:center;gap:var(--space-6);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-7);margin:var(--space-5) var(--space-8) 0;font-size:var(--text-sm);color:#7a6520;background:#fdf6e3;border:1px solid #f0e3bb;display:flex}.plan-notice button{background:var(--cobalt);color:var(--on-cobalt);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-6);font-family:var(--font);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border:none;font-weight:700}.plan-notice button:hover{background:var(--cobalt)}.commercial-notice{justify-content:space-between;align-items:center;gap:var(--space-6);background:var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-7);margin:var(--space-5) var(--space-8) 0;font-size:var(--text-sm);color:var(--accent-text);border:1px solid #d4e6da;display:flex}.commercial-notice a{color:var(--accent-text);font-weight:600}.commercial-notice>button{font-size:var(--text-3xl);color:var(--muted);cursor:pointer;padding:0 var(--space-1);background:0 0;border:none;line-height:1}.commercial-notice>button:hover{color:var(--ink)}.safety-gate{background:var(--card,#fff);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-8);margin:var(--space-6) 0;text-align:center}.safety-gate-icon{color:var(--danger,#b42318);margin-bottom:var(--space-5);display:block}.safety-gate h2{font-size:var(--text-lg);margin:0 0 var(--space-4)}.safety-gate p{color:var(--muted);font-size:var(--text-sm);margin:0 0 var(--space-6)}.safety-notice{color:#22527f;background:#eef4fb;border-color:#cfe0f2}html[data-theme=dark] .safety-notice{color:#a9cdf0;background:#16283a;border-color:#2b4761}.plan-decision{border-radius:var(--radius-sm);padding:var(--space-6) var(--space-7);margin:var(--space-5) var(--space-8) 0;color:#7a6520;background:#fdf6e3;border:1px solid #f0e3bb}html[data-theme=dark] .plan-decision{color:#e2cf94;background:#2a2416;border-color:#4a3f22}.plan-decision h2{font-size:var(--text-md);margin:0 0 var(--space-4)}.plan-decision p{font-size:var(--text-sm);margin:0 0 var(--space-5)}.plan-decision-actions{gap:var(--space-4);flex-wrap:wrap;display:flex}.plan-decision-hint{font-size:var(--text-2xs);opacity:.85;margin-top:var(--space-5)!important}.pchip-disabled{opacity:.45;cursor:not-allowed}.setup-gate-hint{font-size:var(--text-2xs);color:var(--muted);text-align:center;margin-top:var(--space-4)}.setup-next:disabled{opacity:.5;cursor:not-allowed}.meal-missing{font-size:var(--text-xs);color:var(--danger,#b42318);background:var(--danger-bg,#fdecea);border:1px dashed var(--danger-border,#f5c2bd);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);margin:0 0 var(--space-5)}html[data-theme=dark] .meal-missing{color:#f4a39b;background:#3a1714;border-color:#6b2a24}.diet-badge.diet-offdiet{color:#8a4b16;background:#fdeede;border-color:#f3d2a8}html[data-theme=dark] .diet-badge.diet-offdiet{background:var(--accent-soft);color:#e0a36a;border-color:#4a311f}.allergen-notice{background:var(--danger-bg,#fdecea);border-color:var(--danger-border,#f5c2bd);color:var(--danger,#b42318)}html[data-theme=dark] .allergen-notice{color:#f4a39b;background:#3a1714;border-color:#6b2a24}.steps-allergens{font-size:var(--text-sm);color:var(--muted);margin:var(--space-3) 0}.steps-allergens.conflict{color:var(--danger,#b42318)}.allergen-link{font:inherit;color:var(--accent-text);cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}html[data-theme=dark] .allergen-link{color:var(--accent-text)}.diet-notice{color:#8a4b16;background:#fdeede;border-color:#f3d2a8}.error-boundary{min-height:100dvh;padding:var(--space-12);background:var(--cream,#faf8f4);justify-content:center;align-items:center;display:flex}.error-boundary-card{text-align:center;background:var(--white,#fff);border-radius:var(--radius,16px);max-width:420px;padding:var(--space-16) 28px;border:1px solid #e8e6e0;box-shadow:0 8px 30px #00000014}.error-boundary-icon{color:var(--accent-text);display:inline-flex}.error-boundary-card h1{font-size:var(--text-3xl);margin:var(--space-6) 0 var(--space-4);color:var(--accent-text)}.error-boundary-card p{font-size:var(--text-md);color:var(--muted,#666);margin-bottom:var(--space-10);line-height:1.5}.error-boundary-card button{background:var(--cobalt);color:#fff;border-radius:var(--radius-sm,10px);padding:var(--space-6) var(--space-10);font-family:var(--font,inherit);font-size:var(--text-md);cursor:pointer;border:none;font-weight:700}.error-boundary-card button:hover{background:var(--accent-text)}.paywall-modal{max-width:400px}.upgrade-modal{max-width:440px}.plan-selector{gap:var(--space-5);margin-top:var(--space-7);flex-direction:column;display:flex}.plan-option{text-align:left;cursor:pointer;background:var(--cream);border:2px solid var(--line);border-radius:var(--radius);width:100%;padding:var(--space-7) var(--space-8);font-family:var(--font);transition:border-color .15s;position:relative}.plan-option:hover{border-color:var(--cobalt)}.plan-option-selected{border-color:var(--cobalt);background:var(--accent-soft);box-shadow:0 0 0 3px #304bff14}.plan-option-top{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.plan-option-name{font-size:var(--text-md);color:var(--ink);font-weight:700}.plan-best-value{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;background:var(--cobalt);color:var(--on-cobalt);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);font-weight:700}.plan-option-price strong{font-size:var(--text-3xl);color:var(--accent-text)}.plan-option-price span{font-size:var(--text-sm);color:var(--muted);margin-left:var(--space-2)}.plan-option-save{font-size:var(--text-xs);color:var(--accent-text);margin-top:var(--space-2);font-weight:600}.sub-info{background:var(--cream);border-radius:var(--radius-sm);padding:var(--space-7);margin:var(--space-8) 0 0}.sub-info-row{padding:var(--space-3) 0;font-size:var(--text-md);border-bottom:1px solid var(--line);justify-content:space-between;display:flex}.sub-info-row:last-child{border-bottom:none}.sub-info-row span{color:var(--muted)}.sub-info-row strong{color:var(--ink)}.sub-cancel-notice{font-size:var(--text-sm);color:#b85c00;margin-top:var(--space-5)}.plan-badge-btn{cursor:pointer;font-family:var(--font);border:none;-webkit-text-decoration:underline #fff6;text-decoration:underline #fff6}.plan-badge-btn:hover{-webkit-text-decoration-color:var(--white);text-decoration-color:var(--white)}.paywall-badge{background:var(--accent-soft);color:var(--accent-text);font-size:var(--text-xs);padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);margin-bottom:var(--space-5);font-weight:700;display:inline-block}.paywall-benefits{margin:0 0 var(--space-7);gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.paywall-benefits li{font-size:var(--text-md);color:var(--ink-2);padding-left:22px;position:relative}.paywall-benefits li:before{content:"✓";color:var(--accent-text);font-weight:700;position:absolute;left:0}.paywall-price{font-size:var(--text-lg);color:var(--ink);margin-bottom:var(--space-7);text-align:center}.paywall-price strong{color:var(--accent-text);font-size:var(--text-xl)}.paywall-modal .btn-auth-submit{width:100%}.paywall-modal .btn-auth-submit:disabled{opacity:.55;cursor:default}.paywall-modal .auth-switch a{color:var(--accent-text);font-weight:600}@media (width<=600px){.plan-badge{display:none}.plan-notice,.commercial-notice{flex-wrap:wrap}}.proj-text{fill:var(--muted);font-size:12px;font-family:var(--font)}.proj-text-strong{fill:var(--accent-text);font-size:13px;font-weight:800}.proj-area{fill:var(--accent-text);opacity:.1}.proj-axis{stroke:var(--line);stroke-width:1px}.proj-dot-start,.proj-dot-end{stroke:#fff;stroke-width:1.5px}.proj-text-target{fill:var(--accent-text);font-weight:600}.projection-chart{width:100%;max-width:340px;height:auto}.household-hint{margin-top:var(--space-5);font-size:var(--text-xs);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);line-height:1.5}.household-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-9) var(--space-10);margin-bottom:var(--space-9)}.household-card h3{font-size:var(--text-lg);margin-bottom:var(--space-6)}.household-members{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.household-member{background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-6);gap:var(--space-1);flex-direction:column;display:flex}.member-label{font-size:var(--text-xs);color:var(--ink-2);font-weight:600}.member-kcal{font-size:var(--text-xl);color:var(--accent-text)}.member-portion{font-size:var(--text-2xs);color:var(--muted)}.household-total{margin-top:var(--space-6);font-size:var(--text-sm);color:var(--ink-2);border-top:1px dashed var(--line);padding-top:var(--space-5)}.partner-section{margin-top:var(--space-7)}.partner-section h4{font-size:var(--text-sm);text-transform:uppercase;color:var(--muted);margin-bottom:var(--space-4);font-weight:700}.steps-portions-label{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-4);font-weight:700}.steps-portions-label.batch{color:var(--accent-text)}.ing-chip-batch{background:var(--accent-soft);border-color:#b5dcc2;font-weight:600}.steps-batch-note{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-3);font-style:italic}.qty-toggle{align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-left:auto;display:flex}.qty-toggle-label{font-size:var(--text-xs);color:var(--muted);font-weight:600}.qty-btn{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-7);font-family:var(--font);font-size:var(--text-sm);color:var(--muted);cursor:pointer;font-weight:600;transition:all .15s}.qty-btn.active{background:var(--cobalt);border-color:var(--cobalt);color:var(--on-cobalt)}.qty-btn:hover:not(.active){border-color:var(--cobalt);color:var(--accent-text)}@media (width<=600px){.qty-toggle{width:100%;margin-left:0}}.household-warning{margin-top:var(--space-4);font-size:var(--text-xs);color:#8a4a12;border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);background:#fdf3e7;border:1px solid #f5ddc2;line-height:1.5}.shopping-session{margin-bottom:var(--space-12)}.session-header{justify-content:space-between;align-items:baseline;gap:var(--space-6);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-7);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.session-header h3{font-size:var(--text-lg);color:var(--accent-text)}.session-meta{font-size:var(--text-xs);color:var(--muted);font-weight:600}.landing{min-height:100dvh}.landing-hero{background:var(--cobalt);color:var(--on-brand);text-align:center;padding:52px var(--space-12) 80px}.landing-brand{justify-content:center;align-items:center;gap:var(--space-5);font-weight:800;font-size:var(--text-2xl);margin-bottom:52px;display:flex}.landing-hero h1{max-width:740px;margin:0 auto var(--space-9);color:var(--on-brand);font-size:clamp(1.8rem,4.5vw,2.9rem);line-height:1.2}.landing-hero .accent{color:var(--lime)}.landing-sub{font-size:var(--text-xl);color:#ffffffbf;max-width:580px;margin:0 auto var(--space-16);line-height:1.6}.landing-cta{gap:var(--space-7);margin-bottom:var(--space-7);flex-wrap:wrap;justify-content:center;display:flex}.btn-landing-primary{background:var(--cobalt);color:var(--on-brand);border-radius:var(--radius-sm);padding:var(--space-8) var(--space-16);font-family:var(--font);font-size:var(--text-xl);cursor:pointer;border:none;font-weight:700;transition:background .15s,transform .1s;box-shadow:0 4px 20px #304bff66}.btn-landing-primary:hover{background:var(--cobalt-hover)}.btn-landing-primary:active{transform:scale(.97)}.btn-landing-secondary{color:var(--on-brand);border-radius:var(--radius-sm);padding:var(--space-8) 28px;font-family:var(--font);font-size:var(--text-xl);cursor:pointer;background:0 0;border:1.5px solid #ffffff73;font-weight:600;transition:border-color .15s}.btn-landing-secondary:hover{border-color:var(--on-brand)}.landing-cta-hint{font-size:var(--text-sm);color:#ffffffb3}.landing-cta-hint strong{color:#ffffffe6}.landing-cta-link{cursor:pointer;font-family:var(--font);font-size:var(--text-sm);color:#ffffffb3;margin-bottom:var(--space-5);background:0 0;border:none;text-decoration:underline;display:inline-block}.landing-cta-link:hover{color:var(--on-brand)}.landing-hero button:focus-visible,.landing-hero a:focus-visible{outline:3px solid var(--on-brand);outline-offset:3px}.landing-example-anchor{scroll-margin-top:var(--space-12);display:flow-root}.landing-example-placeholder{width:min(100% - 48px,1012px);min-height:560px;margin:var(--space-16) auto 0;border-radius:var(--radius-lg);background:linear-gradient(var(--line) 0 0) 50% 0 / min(240px, 62%) 24px no-repeat, linear-gradient(var(--line-2) 0 0) 50% 38px / min(340px, 82%) 12px no-repeat;position:relative;overflow:hidden}.landing-example-placeholder:after{content:"";border-radius:var(--radius-lg);background:repeating-linear-gradient(to bottom, var(--white) 0 112px, transparent 112px 128px);opacity:.72;position:absolute;inset:76px 0 0}@media (width<=600px){.landing-example-placeholder{width:calc(100% - 32px);min-height:780px;margin-top:var(--space-12)}}@media (width<=563px){.landing-example-placeholder{min-height:1120px}}@media (width<=400px){.landing-example-placeholder{min-height:1220px}}@media (width<=359px){.landing-example-placeholder{min-height:1280px}.landing .btn-landing-primary{padding-inline:var(--space-8);white-space:nowrap}}.landing-example{max-width:1060px;margin:var(--space-16) auto 0;padding:0 var(--space-12);text-align:center}.landing-example h2{margin-bottom:var(--space-3)}.landing-example-sub{color:var(--muted);font-size:var(--text-sm);margin-bottom:var(--space-10)}.example-day{gap:var(--space-6);text-align:left;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.example-meal{gap:var(--space-6);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-6);align-items:flex-start;display:flex}.example-meal .recipe-art{border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.example-meal-body{min-width:0}.example-meal-type{font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:700;display:block}.example-meal-body h3{font-size:var(--text-md);margin:var(--space-2) 0 var(--space-4);line-height:1.3}.example-macros{gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:baseline;display:flex}.example-macros strong{color:var(--accent-text);font-size:var(--text-md)}.example-macros span{color:var(--ink-2);font-size:var(--text-xs)}.example-meta{gap:var(--space-6);color:var(--muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.example-meta span{align-items:center;gap:4px;display:inline-flex}.example-totals{gap:var(--space-6);margin-top:var(--space-8);text-align:left;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.example-totals>div{background:var(--accent-soft);border-radius:var(--radius);padding:var(--space-6) var(--space-7)}.example-total-label{font-size:var(--text-xs);color:var(--ink-2);align-items:center;gap:4px;display:inline-flex}.example-totals strong{font-size:var(--text-xl);color:var(--accent-text);margin:var(--space-2) 0;display:block}.example-total-sub{font-size:var(--text-2xs);color:var(--muted)}.example-shopping{margin-top:var(--space-8);text-align:left;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-7)}.example-shopping-label{font-size:var(--text-xs);color:var(--ink-2);margin-bottom:var(--space-5);font-weight:700;display:block}.example-shopping ul{gap:var(--space-3) var(--space-8);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin:0;padding:0;list-style:none;display:grid}.example-shopping li{justify-content:space-between;gap:var(--space-5);font-size:var(--text-sm);border-bottom:1px dashed var(--line);padding-bottom:var(--space-3);display:flex}.example-shopping li span{color:var(--ink-2)}.example-shopping li em{color:var(--muted);white-space:nowrap;font-style:normal}.landing-example>.btn-landing-primary{margin-top:var(--space-10)}@media (width<=600px){.landing-example{padding:0 var(--space-8);margin-top:var(--space-12)}.example-day{gap:var(--space-5)}.example-meal{padding:var(--space-5);gap:var(--space-5)}}.landing-benefits{gap:var(--space-8);max-width:1060px;padding:0 var(--space-12);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:-40px auto 0;display:grid}.landing-benefits article{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:22px var(--space-10)}.landing-emoji{font-size:var(--text-5xl);margin-bottom:var(--space-5);display:block}.landing-benefits h3{font-size:var(--text-lg);margin-bottom:var(--space-3);color:var(--accent-text)}.landing-benefits p{font-size:var(--text-md);color:var(--ink-2);line-height:1.5}.landing-steps{max-width:1060px;padding:60px var(--space-12) var(--space-12);text-align:center;margin:0 auto}.landing-steps h2{font-size:var(--text-5xl);margin-bottom:28px}.landing-steps-grid{gap:var(--space-9);text-align:left;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.landing-steps-grid article{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px var(--space-10)}.step-num{background:var(--accent-soft);width:34px;height:34px;color:var(--accent-text);margin-bottom:var(--space-6);border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.landing-steps-grid h3{font-size:var(--text-lg);margin-bottom:var(--space-3)}.landing-steps-grid p{font-size:var(--text-md);color:var(--ink-2);line-height:1.5}.landing-pricing{max-width:860px;padding:64px var(--space-12) 0;text-align:center;margin:0 auto}.landing-pricing h2{font-size:var(--text-5xl);margin-bottom:var(--space-4)}.landing-pricing-sub{font-size:var(--text-md);color:var(--muted);margin-bottom:var(--space-16)}.pricing-cards{gap:var(--space-10);grid-template-columns:1fr 1fr;align-items:start;display:grid}.pricing-card{background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);padding:28px var(--space-12) var(--space-12);text-align:left;position:relative}.pricing-card-featured{border-color:var(--cobalt);box-shadow:0 6px 28px #304bff1f}.pricing-badge{background:var(--cobalt);color:var(--on-cobalt);font-size:var(--text-xs);padding:var(--space-2) var(--space-7);border-radius:var(--radius-pill);white-space:nowrap;font-weight:700;position:absolute;top:-13px;left:50%;transform:translate(-50%)}.pricing-card-header{margin-bottom:var(--space-10)}.pricing-card-header h3{font-size:var(--text-xl);color:var(--ink);margin-bottom:var(--space-4);font-weight:700}.pricing-price strong{font-size:var(--text-5xl);color:var(--accent-text)}.pricing-price span{font-size:var(--text-sm);color:var(--muted);margin-left:var(--space-2)}.pricing-features{margin:0 0 var(--space-10);gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.pricing-features li{font-size:var(--text-md);padding-left:22px;line-height:1.4;position:relative}.pricing-features li.ok{color:var(--ink-2)}.pricing-features li.ok:before{content:"✓";color:var(--accent-text);font-weight:700;position:absolute;left:0}.pricing-features li.no{color:var(--muted);opacity:.7;text-decoration:line-through}.pricing-features li.no:before{content:"✕";color:var(--muted);position:absolute;left:0}.btn-landing-outline{width:100%;color:var(--accent-text);border:1.5px solid var(--cobalt);border-radius:var(--radius-sm);font-family:var(--font);font-size:var(--text-lg);cursor:pointer;background:0 0;padding:13px;font-weight:600;transition:background .15s}.btn-landing-outline:hover{background:var(--accent-soft)}.pricing-card-featured .btn-landing-primary{width:100%}.pricing-trial-hint{margin-top:var(--space-5);font-size:var(--text-xs);color:var(--muted);text-align:center}.landing-bottom{text-align:center;padding:56px var(--space-12) 72px}.landing-bottom h2{font-size:var(--text-4xl);margin-bottom:var(--space-10)}.landing-disclaimer{margin-top:var(--space-9);font-size:var(--text-sm);color:var(--muted);max-width:520px;margin-left:auto;margin-right:auto;line-height:1.6}@media (width<=640px){.pricing-cards{grid-template-columns:1fr}.pricing-card-featured{order:-1}.landing-benefits{margin-top:-28px}}h1,h2,.day-name,.plan-hero-text h2,.landing-hero h1,.landing-steps h2,.landing-bottom h2,.targets-kcal,.auth-modal h2{font-family:var(--font-display);letter-spacing:-.01em}.day-card,.benefit-card,.metric-card,.insight-card,.projection-card,.household-card,.landing-benefits article,.landing-steps-grid article{box-shadow:var(--shadow-soft);border-color:#0000;transition:box-shadow .2s,transform .2s}.day-card:hover,.benefit-card:hover,.landing-benefits article:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.tab-content>*{animation:.25s tab-in}@keyframes tab-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.meal-steps[open] .steps-ingredients,.meal-steps[open] .steps-list{animation:.22s tab-in}.tab{align-items:center;gap:var(--space-4);display:inline-flex}.tab-icon{flex-shrink:0}.meal-headline{align-items:center;gap:var(--space-5);margin:var(--space-3) 0 var(--space-2);display:flex}.recipe-art{flex-shrink:0}.meal-headline .meal-name{flex:1}.btn-regenerate,.btn-export{align-items:center;gap:var(--space-4);display:inline-flex}.app-header{z-index:50;position:sticky;top:0;box-shadow:0 2px 16px #304bff40}@media (width<=600px){.tabs{z-index:60;background:var(--white);border-top:1px solid var(--line);padding:var(--space-4) var(--space-2) calc(7px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #304bff1a}.tab{gap:var(--space-2);border-radius:var(--radius);flex-direction:column;flex:1;min-height:50px;line-height:1.15;position:relative;padding:var(--space-4) var(--space-1)!important;font-size:var(--text-2xs)!important;border:none!important}.tab.active{background:var(--accent-soft);color:var(--accent-text)}.tab.active:before{content:"";background:var(--cobalt);border-radius:2px;width:26px;height:3px;position:absolute;top:3px}.tab-icon{width:23px;height:23px}.results-area{padding-bottom:var(--space-8)}.app-header{position:static}}body{background:linear-gradient(170deg,#faf6ef 0%,#f4efe5 55%,#f0ebdf 100%) fixed}@media (width>=601px){.tabs{border-radius:var(--radius-pill);padding:var(--space-3);gap:var(--space-1);margin-bottom:var(--space-9);background:#ece7db;display:inline-flex;border-bottom:none!important}.tab{color:var(--ink-2);background:0 0;font-weight:600;border-radius:var(--radius-pill)!important;padding:var(--space-5) var(--space-10)!important;border:none!important}.tab.active{box-shadow:0 2px 10px #304bff1f;background:var(--white)!important;color:var(--accent-text)!important}}.btn-account-open{color:var(--white);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-7);font-size:var(--text-sm);cursor:pointer;background:#ffffff26;border:1px solid #ffffff59;font-weight:600}.btn-account-open:hover{background:#ffffff47}.btn-fav-meal{color:#c2410c;cursor:pointer;padding:var(--space-1) var(--space-2);background:0 0;border:none;align-items:center;display:inline-flex}.btn-fav-meal.is-fav{color:#e11d48}.account-modal{text-align:left;max-width:460px}.account-section{gap:var(--space-3);padding:var(--space-7) 0;border-top:1px solid var(--line);flex-direction:column;display:flex}.account-label{color:var(--accent-text);font-weight:700;font-size:var(--text-md)}.account-value{font-size:var(--text-xl);color:var(--ink-2)}.account-sub{font-size:var(--text-sm);color:var(--ink-2);opacity:.85}.account-actions{gap:var(--space-4);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.account-fav-list{margin:var(--space-2) 0 0;padding-left:var(--space-9);gap:var(--space-2);flex-direction:column;display:flex}.account-fav-list li{font-size:var(--text-md);color:var(--ink-2)}.account-section input{padding:var(--space-5) 11px;border:1px solid var(--line);border-radius:var(--radius);font-size:var(--text-lg)}.btn-account-logout{margin-top:var(--space-8);color:#b91c1c;border-radius:var(--radius);width:100%;padding:var(--space-5);cursor:pointer;background:#fef2f2;border:1px solid #fecaca;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.btn-account-logout:hover{background:#fee2e2}.plan-badge-free{color:#475569;background:#eef2f0}.plan-badge-trial{color:#c2410c;background:#fff7ed}.plan-badge-premium{color:var(--accent-text);background:#f0fdf4}.benefit-card{border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);border:none}.benefit-emoji{margin-bottom:var(--space-3)}.benefit-value{font-size:var(--text-5xl);letter-spacing:-.02em}.tone-orange{background:#fdeedd}.tone-green{background:#e3f2e7}.tone-blue{background:#e4eff8}.tone-blue .benefit-value{color:#1d5e96}.tone-purple{background:#efe9f8}.tone-purple .benefit-value{color:#5e3f9e}.tone-yellow{background:#faf3da}.tone-yellow .benefit-value{color:#8a6d10}.day-card{border-radius:var(--radius-xl);overflow:hidden}.day-header{background:var(--cobalt);margin:-1px -1px 0;padding:var(--space-7) var(--space-8)!important;border-bottom:none!important}.day-header .day-name{color:var(--white);font-size:var(--text-3xl)}.day-header .day-session{color:#c8e6c9}.day-card.freezer .day-header{background:linear-gradient(135deg,#1d4e74,#2a6b9c)}.day-card.freezer .day-header .day-session{color:#bfdcf5}.day-badge{color:var(--white)!important;background:#ffffff29!important;border:none!important}.meal-name{font-size:var(--text-xl);line-height:1.35}.kcal-badge{background:var(--cobalt);color:var(--on-cobalt);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-5);font-weight:700;font-size:var(--text-xs)}.recipe-art{filter:drop-shadow(0 2px 4px #304bff1f)}.recipe-photo{object-fit:cover;background:var(--line-2);border-radius:50%;display:block}.btn-primary,.btn-secondary,.btn-view-menu,.btn-regenerate,.btn-export,.btn-auth,.btn-auth-submit,.btn-landing-primary,.btn-landing-secondary{border-radius:var(--radius-lg)}.tab-panel h2{letter-spacing:-.01em}.eff-score-num{font-family:var(--font-display)}.btn-swap-meal{border:1px solid var(--line);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5);font-family:var(--font);font-size:var(--text-2xs);color:var(--muted);cursor:pointer;background:0 0;margin-left:auto;font-weight:600;transition:all .15s}.btn-swap-meal:hover{color:var(--accent-text);border-color:var(--cobalt);background:var(--accent-soft)}.meal-top{align-items:center;display:flex}.meals-tip{border-radius:var(--radius-sm);padding:var(--space-6) var(--space-7);font-size:var(--text-md);color:#6b5410;margin-bottom:var(--space-8);align-items:center;gap:var(--space-6);background:#faf3da;border:1px solid #efe2b0;flex-wrap:wrap;line-height:1.5;display:flex}.btn-tip-action{color:var(--white);border-radius:var(--radius);padding:var(--space-4) var(--space-7);font-family:var(--font);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;background:#8a6d10;border:none;font-weight:700}.btn-tip-action:hover{background:#6b5410}.weight-log{border-top:1px dashed var(--line);padding-top:var(--space-7);margin-top:var(--space-2);grid-column:1/-1}.weight-log h4{font-size:var(--text-md);margin-bottom:var(--space-5)}.weight-log-input{gap:var(--space-4);flex-wrap:wrap;display:flex}.weight-log-input input{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-6);font-family:var(--font);font-size:var(--text-md);background:var(--cream);width:140px}.btn-log-weight{background:var(--cobalt);color:var(--on-cobalt);border-radius:var(--radius);padding:var(--space-5) var(--space-8);font-family:var(--font);font-size:var(--text-sm);cursor:pointer;border:none;font-weight:700}.btn-log-weight:hover:not(:disabled){background:var(--cobalt)}.btn-log-weight:disabled{opacity:.5;cursor:default}.weight-log-entries{gap:var(--space-4);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.weight-entry{background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-6);font-size:var(--text-xs);color:var(--ink-2)}.weight-entry em{margin-left:var(--space-3);font-style:normal;font-weight:700}.weight-entry .delta-down,.weight-entry .delta-up{color:var(--accent-text)}.weight-total-delta{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--accent-text);font-weight:600}.weight-log-hint{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--muted)}.shopping-row-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.btn-have{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);width:28px;height:28px;font-family:var(--font);font-size:var(--text-2xs);color:var(--muted);cursor:pointer;white-space:nowrap;flex:0 0 28px;justify-content:center;align-items:center;padding:0;font-weight:600;display:inline-flex}.btn-have:hover{color:var(--accent-text);border-color:var(--cobalt)}.shopping-row.have .ingredient-name,.shopping-row.have .ingredient-qty{opacity:.35;text-decoration:line-through}.shopping-row.have{cursor:default}.tag-seasonal{background:var(--badge-positive-bg);color:var(--badge-positive-fg);border-color:var(--badge-positive-bd);font-weight:600}.app-header{background:var(--cobalt);padding-top:var(--space-6);padding-bottom:var(--space-6);border-bottom:2px solid #304bff80}.brand-icon{background:var(--cobalt);border-radius:var(--radius-lg);color:#fff;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:inline-flex;box-shadow:0 3px 10px #304bff66}.app-header h1{font-size:var(--text-3xl);letter-spacing:-.01em}.form-section h3{text-transform:none;letter-spacing:0;font-size:var(--text-sm);color:var(--accent-text);align-items:center;gap:var(--space-4);font-weight:700;display:flex}.form-section h3:before{content:"";border-radius:var(--radius-pill);background:var(--cobalt);width:4px;height:14px}.field span{font-size:var(--text-xs);color:var(--muted);font-weight:600}.field select,.field input{background:var(--cream);border:1px solid var(--line-2);border-radius:var(--radius);padding:var(--space-5) 11px;font-size:var(--text-md);transition:background .15s,border-color .15s,box-shadow .15s}.field select:hover,.field input:hover{border-color:var(--line)}.field select:focus,.field input:focus{background:var(--white);border-color:var(--cobalt);box-shadow:0 0 0 3px #304bff24}.benefit-emoji{width:42px;height:42px;margin:0 auto var(--space-4);border-radius:50%;justify-content:center;align-items:center;font-size:18px;line-height:1;display:inline-flex}.benefit-value{font-family:var(--font-display);font-weight:600}.benefit-card.tone-orange{background:#fdeede;box-shadow:0 6px 22px #304bff29}.tone-orange .benefit-emoji{color:var(--cobalt-hover);background:#f7d3bd}.tone-orange .benefit-value{color:var(--cobalt-hover)}.benefit-card.tone-green{background:var(--white)}.tone-green .benefit-emoji{background:var(--accent-soft);color:var(--accent-text)}.tone-green .benefit-value{color:var(--accent-text)}.landing-footer{justify-content:center;align-items:center;gap:var(--space-4) var(--space-9);padding:28px var(--space-10) 40px;font-size:var(--text-sm);color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.landing-footer a{color:var(--accent-text);text-decoration:none}.landing-footer a:hover{text-decoration:underline}.pwa-updater{max-width:760px;margin:0 auto var(--space-10);padding:0 var(--space-10);text-align:center}.btn-check-updates{color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-7);font-family:var(--font);font-size:var(--text-xs);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-weight:600;transition:color .15s,border-color .15s;display:inline-flex}.btn-check-updates:hover{color:var(--accent-text);border-color:var(--line)}.btn-check-updates:disabled{opacity:.6;cursor:default}.btn-check-updates .spin{animation:.8s linear infinite cm-spin}@keyframes cm-spin{to{transform:rotate(360deg)}}.update-note{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--muted);display:block}.update-banner{z-index:60;align-items:center;gap:var(--space-4);background:var(--cobalt);color:#fff;border-radius:var(--radius-md,12px);padding:var(--space-4) var(--space-5) var(--space-4) var(--space-6);max-width:calc(100vw - 24px);display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0000002e}.update-banner-text{font-size:var(--text-sm);font-weight:500}.update-banner-apply{color:var(--accent-text);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6);font-family:var(--font);font-size:var(--text-sm);cursor:pointer;background:#fff;border:none;font-weight:700}.update-banner-close{color:#ffffffd9;cursor:pointer;background:0 0;border:none;padding:2px;display:inline-flex}.app-disclaimer{margin:var(--space-2) auto var(--space-12);color:var(--muted);font-size:var(--text-xs);align-items:flex-start;line-height:1.55;display:flex}.app-disclaimer .lucide,.app-disclaimer svg{color:var(--accent-text);margin-top:1px}@media (width<=600px){.btn-fav-meal{min-width:44px;min-height:44px;padding:var(--space-3);justify-content:center}.btn-swap-meal{min-height:44px;padding:var(--space-5) var(--space-8);font-size:var(--text-xs)}.btn-have{min-height:40px;padding:var(--space-5) var(--space-7);font-size:var(--text-xs)}.qty-btn{min-height:40px;padding:var(--space-5) var(--space-8)}}.week-grid>.day-card{animation:.34s backwards card-in}.week-grid>.day-card:first-child{animation-delay:0s}.week-grid>.day-card:nth-child(2){animation-delay:40ms}.week-grid>.day-card:nth-child(3){animation-delay:80ms}.week-grid>.day-card:nth-child(4){animation-delay:.12s}.week-grid>.day-card:nth-child(5){animation-delay:.16s}.week-grid>.day-card:nth-child(6){animation-delay:.2s}.week-grid>.day-card:nth-child(7){animation-delay:.24s}@keyframes card-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.week-grid>.day-card{animation:none}}.undo-notice{background:var(--accent-soft);border-color:var(--accent-soft)}.undo-notice button{background:var(--cobalt);color:var(--on-cobalt);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-7);font-family:var(--font);font-weight:600;font-size:var(--text-sm);cursor:pointer;border:none}.undo-notice button:hover{background:var(--cobalt)}.saved-flash{color:var(--accent-text);font-weight:600}.offline-notice{color:#8a6d1f;background:#fbf3e6;border-color:#f0e0c2}@media (width<=360px){.app-body,.tab-content,.day-card{padding:var(--space-6)}.meal-name{font-size:var(--text-md)}.meal-why{font-size:var(--text-xs)}.targets-hero{padding:var(--space-8)}.metric-grid{gap:var(--space-4)}}.setup-screen{min-height:100dvh;padding:var(--space-10) var(--space-8) calc(24px + env(safe-area-inset-bottom));justify-content:center;align-items:flex-start;display:flex}.setup-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-xl);width:100%;max-width:460px;box-shadow:var(--shadow-md);padding:22px 22px var(--space-9);gap:var(--space-6);flex-direction:column;display:flex}.setup-top{justify-content:space-between;align-items:center;display:flex}.setup-brand{align-items:center;gap:var(--space-4);color:var(--accent-text);font-weight:700;display:inline-flex}.setup-progress{gap:var(--space-3);display:flex}.setup-seg{border-radius:var(--radius-pill);background:var(--line);flex:1;height:5px;transition:background .2s}.setup-seg.on{background:var(--cobalt)}.setup-step-label{font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700}.setup-body{min-height:320px}.setup-step{gap:var(--space-7);flex-direction:column;display:flex}.setup-hd{font-size:var(--text-3xl);margin:0}.setup-sub{color:var(--muted);font-size:var(--text-md);margin:-6px 0 var(--space-2)}.setup-restrictions{border:1px solid var(--line-2);border-radius:var(--radius-lg);background:var(--accent-soft);padding:var(--space-6) var(--space-6) var(--space-7);gap:var(--space-5);flex-direction:column;display:flex}.setup-actions{gap:var(--space-4);margin-top:var(--space-2);flex-direction:column;display:flex}.setup-next,.setup-back{justify-content:center;align-items:center;gap:var(--space-4);font-family:var(--font);font-weight:600;font-size:var(--text-md);cursor:pointer;border-radius:var(--radius-lg);min-height:48px;padding:var(--space-5) var(--space-10);width:100%;display:inline-flex}.setup-next{background:var(--cobalt);color:var(--on-cobalt);border:none}.setup-next:hover,.setup-finish{background:var(--cobalt)}.setup-finish:hover{background:var(--cobalt);filter:brightness(.95)}.setup-back{border:1.5px solid var(--line);color:var(--ink-2);background:0 0}.setup-back:hover{border-color:var(--cobalt)}.pchip-big{padding:var(--space-6) var(--space-8);font-size:var(--text-md);min-height:46px}.opt-list{gap:var(--space-4);flex-direction:column;display:flex}.opt-row{align-items:center;gap:var(--space-5);text-align:left;border:1.5px solid var(--line);border-radius:var(--radius-lg);background:var(--white);width:100%;min-height:52px;font-family:var(--font);cursor:pointer;padding:var(--space-5) var(--space-6);transition:border-color .15s,background .15s;display:flex}.opt-row:hover{border-color:var(--cobalt)}.opt-row.active{border-color:var(--cobalt);background:var(--accent-soft)}.opt-icon{flex-shrink:0;font-size:19px}.opt-copy{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.opt-copy b{font-size:var(--text-md);color:var(--ink);font-weight:600}.opt-copy i{font-style:normal;font-size:var(--text-xs);color:var(--muted)}.opt-row.active .opt-copy b{color:var(--accent-text)}.opt-radio{border:1.5px solid var(--line);border-radius:50%;flex-shrink:0;width:18px;height:18px;transition:border .15s}.opt-row.active .opt-radio{border:5.5px solid var(--cobalt)}.pace-disabled .opt-row{opacity:.55;cursor:default}.manual-cals-toggle{align-items:center;gap:var(--space-5);text-align:left;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white);width:100%;font-family:var(--font);cursor:pointer;padding:var(--space-5) var(--space-6);display:flex}.manual-cals-toggle:hover{border-color:var(--cobalt)}.manual-cals-ic{border-radius:var(--radius-sm);background:var(--accent-soft);width:32px;height:32px;color:var(--accent-text);flex-shrink:0;place-items:center;display:grid}.manual-cals-copy{flex-direction:column;flex:1;gap:1px;display:flex}.manual-cals-copy b{font-size:var(--text-sm);font-weight:600}.manual-cals-copy i{font-style:normal;font-size:var(--text-xs);color:var(--muted)}.manual-cals-ch{color:var(--muted)}.manual-cals{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-6);gap:var(--space-5);background:var(--white);flex-direction:column;display:flex}.manual-cals.is-active{background:var(--accent-soft);border-color:var(--accent-soft)}.manual-cals-row{align-items:center;gap:var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.manual-cals-error{color:#b23b2e;font-size:var(--text-xs);margin:0}.manual-cals-actions{gap:var(--space-4);flex-wrap:wrap;display:flex}.btn-inline,.btn-inline-primary,.btn-warn-confirm{font-family:var(--font);font-size:var(--text-xs);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-6);cursor:pointer;min-height:36px;font-weight:600}.btn-inline{border:1px solid var(--line);color:var(--ink-2);background:0 0}.btn-inline:hover{border-color:var(--cobalt);color:var(--accent-text)}.btn-inline-primary{background:var(--cobalt);color:var(--on-cobalt);border:none}.btn-inline-primary:hover{background:var(--cobalt)}.btn-inline-primary:disabled{opacity:.5;cursor:default}.btn-warn-confirm{color:#7a5a16;background:#fef6e7;border:1px solid #f0dcb0}.btn-warn-confirm:hover{filter:brightness(.97)}.warn-box{gap:var(--space-4);border-radius:var(--radius);padding:var(--space-5) var(--space-6);font-size:var(--text-xs);color:#7a5a16;background:#fef6e7;border:1px solid #f0dcb0;align-items:flex-start;line-height:1.5;display:flex}.warn-box svg{flex-shrink:0;margin-top:1px}.freedays-note{background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:var(--space-5) var(--space-7);font-size:var(--text-md);color:var(--ink-2);margin-bottom:var(--space-7)}.cookdays-field{margin:var(--space-2) 0 var(--space-6)}.day-name-row{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.day-card.is-today{border-color:var(--cobalt);box-shadow:0 0 0 2px var(--cobalt), var(--shadow-md)}.day-today-pill{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;background:var(--cobalt);color:#fff;padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);white-space:nowrap;font-weight:800;box-shadow:0 2px 6px #304bff73}.btn-lock-day{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-4);font-family:var(--font);font-size:var(--text-2xs);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;margin-left:auto;font-weight:600;transition:all .15s;display:inline-flex}.btn-lock-day:hover{color:var(--accent-text);border-color:var(--cobalt);background:#ffffff80}.btn-lock-day.is-locked{color:#b45309;background:#f59e0b1f;border-color:#f59e0b}.btn-lock-day.is-locked:hover{background:#f59e0b38}.lock-label{white-space:nowrap}.day-card.is-locked{border-color:#f59e0b;box-shadow:inset 0 0 0 1px #f59e0b2e}.day-card.is-locked .btn-swap-meal:disabled{opacity:.4;cursor:not-allowed}.btn-regenerate:disabled{opacity:.45;cursor:not-allowed}html[data-theme=dark] .btn-lock-day.is-locked{color:#fbbf24;background:#f59e0b1a;border-color:#92400e}html[data-theme=dark] .btn-lock-day.is-locked:hover{background:#f59e0b33}html[data-theme=dark] .day-card.is-locked{border-color:#92400e}.macro-rings{gap:var(--space-9);flex-wrap:wrap;flex:1;min-width:200px;display:flex}.macro-ring{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.ring-wrap{width:78px;height:78px;position:relative}.ring-wrap svg{transform:rotate(-90deg)}.ring-track{stroke:var(--line);stroke-width:7px}.ring-fill{stroke-width:7px;stroke-linecap:round;transition:stroke-dasharray .5s}.ring-protein{stroke:var(--accent-text)}.ring-carbs{stroke:#f59e0b}.ring-fat{stroke:var(--accent-text)}.ring-center{flex-direction:column;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;inset:0}.ring-grams{font-size:var(--text-2xl);color:var(--ink);font-weight:800}.ring-pct{font-size:var(--text-2xs);color:var(--muted);margin-top:1px}.ring-label{font-size:var(--text-xs);color:var(--ink-2);font-weight:600}@media (prefers-reduced-motion:reduce){.ring-fill{transition:none}}.skeleton{background:linear-gradient(90deg, var(--line) 25%, var(--line-2) 37%, var(--line) 63%);border-radius:var(--radius-sm);background-size:400% 100%;animation:1.4s infinite skeleton-shimmer}.skeleton-text{height:.9em;margin:4px 0}.panel-skeleton{padding:var(--space-8) 0}.panel-skeleton .skeleton{width:100%}.panel-skeleton-label{align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--ink-2);margin:0 0 var(--space-7);display:flex}.panel-skeleton-spinner{border:2px solid var(--line);border-top-color:var(--cobalt);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite panel-skeleton-spin}@keyframes panel-skeleton-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.panel-skeleton-spinner{animation:none}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}:root{--ease:cubic-bezier(.4, 0, .2, 1);--dur-fast:.15s;--dur:.22s}button{transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}button:active:not(:disabled){transform:scale(.97)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}button:active:not(:disabled){transform:none!important}}.auth-overlay{-webkit-backdrop-filter:blur(4px);animation:overlay-in .2s var(--ease,ease);background:#304bff80}.auth-modal{border-radius:var(--radius-xl);padding:var(--space-16);animation:modal-in .26s var(--ease,ease);box-shadow:0 18px 50px #304bff47}.auth-close{top:var(--space-6);right:var(--space-6);width:36px;height:36px;font-size:var(--text-3xl);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.auth-close:hover{background:var(--line-2);color:var(--ink)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}html[data-theme=dark]{--badge-blue-bg:#152535;--badge-blue-fg:#8fb8e6;--badge-blue-bd:#27415f;--badge-amber-bg:#2c2410;--badge-amber-fg:#e0b15f;--badge-amber-bd:#4a3c18;--badge-rose-bg:#2e1820;--badge-rose-fg:#e08aa3;--badge-rose-bd:#4a2a36;--badge-purple-bg:#211d2e;--badge-purple-fg:#b3a3dd;--badge-purple-bd:#372f4a;--badge-neutral-bg:#22242a;--badge-neutral-fg:#a8b0a8;--badge-neutral-bd:#363a3c}html[data-theme=dark] .app-header,html[data-theme=dark] .landing-hero,html[data-theme=dark] .day-header{background:var(--cobalt)}html[data-theme=dark] .day-card.freezer .day-header{background:linear-gradient(135deg,#10324c,#16466b)}html[data-theme=dark] .btn-regenerate,html[data-theme=dark] .btn-auth-submit{background:var(--cobalt);color:#fff}html[data-theme=dark] .meal-item.is-snack{background:var(--accent-soft)}html[data-theme=dark] .meal-item.is-snack .meal-type-label{color:var(--accent-text)}html[data-theme=dark] .btn-regenerate:hover,html[data-theme=dark] .btn-auth-submit:hover:not(:disabled){background:var(--cobalt)}html[data-theme=dark] .btn-secondary{background:var(--accent-soft);color:var(--accent-text)}html[data-theme=dark] .btn-secondary:hover,html[data-theme=dark] .tone-orange,html[data-theme=dark] .tone-green{background:var(--accent-soft)}html[data-theme=dark] .tone-blue{background:#14202e}html[data-theme=dark] .tone-purple{background:#201b2c}html[data-theme=dark] .tone-yellow{background:#29240f}html[data-theme=dark] .tone-orange .benefit-value,html[data-theme=dark] .tone-green .benefit-value{color:var(--accent-text)}html[data-theme=dark] .tone-blue .benefit-value{color:#8fb8e6}html[data-theme=dark] .tone-purple .benefit-value{color:#b3a3dd}html[data-theme=dark] .tone-yellow .benefit-value{color:#e0b15f}html[data-theme=dark] .tone-orange .benefit-emoji{background:var(--accent-soft);color:var(--accent-text)}html[data-theme=dark] .tone-green .benefit-emoji{background:var(--surface-subtle);color:var(--accent-text)}html[data-theme=dark] .diet-notice{background:var(--accent-soft);color:#e0a36a;border-color:#4a311f}html[data-theme=dark] .plan-notice{background:#241f10;border-color:#463c1a}html[data-theme=dark] .household-warning{background:var(--accent-soft)}html[data-theme=dark] .meals-tip,html[data-theme=dark] .offline-notice{background:#241f10}html[data-theme=dark] .auth-modal .auth-error{color:#fff!important;background:#d32f2f!important}html[data-theme=dark] .export-blocked{background:var(--white)}html[data-theme=dark] .export-blocked strong{color:var(--ink)}html[data-theme=dark] .plan-badge-free{color:#9aa8a0;background:#22272a}html[data-theme=dark] .plan-badge-trial{color:#e0a36a;background:#2c1f12}html[data-theme=dark] .plan-badge-premium{background:var(--accent-soft);color:var(--accent-text)}html[data-theme=dark] .tabs{background:var(--white)}html[data-theme=dark] .btn-account-logout{background:#2e1614}html[data-theme=dark] .btn-account-logout:hover{background:#3c1c1a}.theme-toggle{color:var(--white);cursor:pointer;background:#ffffff24;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.theme-toggle:hover{background:#ffffff3d}.shopping-actions{gap:var(--space-5);margin:var(--space-8) 0 var(--space-5);flex-wrap:wrap;display:flex}.btn-share-list,.btn-copy-list,.btn-route-edit{font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:var(--space-4) var(--space-8);cursor:pointer;transition:background var(--dur,.15s) var(--ease,ease), border-color var(--dur,.15s) var(--ease,ease);align-items:center;font-weight:600;display:inline-flex}.btn-share-list:hover,.btn-copy-list:hover,.btn-route-edit:hover{background:var(--accent-soft);border-color:var(--cobalt)}.btn-route-edit.active{background:var(--accent-soft);border-color:var(--cobalt);color:var(--accent-text)}.share-note{font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:var(--space-4) var(--space-8);margin:0 0 var(--space-6)}.share-note-err{color:#9a3412;background:var(--accent-soft);border-color:var(--cobalt);align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.btn-copy-retry{font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:var(--space-2,4px) var(--space-5);cursor:pointer;min-height:36px;font-weight:600}.btn-copy-retry:hover{background:var(--accent-soft);border-color:var(--cobalt)}.route-editor{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-6) var(--space-8);margin-bottom:var(--space-8);background:var(--cream)}.route-editor-hint{font-size:var(--text-sm);color:var(--muted);margin:0 0 var(--space-5)}.route-list{counter-reset:route;margin:0;padding:0;list-style:none}.route-list li{padding:var(--space-4) 0;border-bottom:1px solid var(--line-2);font-size:var(--text-md);color:var(--ink-2);justify-content:space-between;align-items:center;display:flex}.route-list li:last-child{border-bottom:none}.route-list li:before{counter-increment:route;content:counter(route) ". ";color:var(--muted);margin-right:var(--space-4)}.route-list li>span:first-of-type{flex:1}.route-actions{gap:var(--space-3);display:inline-flex}.route-actions button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg,#fff);width:30px;height:30px;color:var(--accent-text);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.route-actions button:disabled{opacity:.35;cursor:default}.route-actions button:not(:disabled):hover{border-color:var(--cobalt);background:var(--accent-soft)}.category-progress{font-size:var(--text-2xs);color:var(--muted);margin-left:var(--space-5);font-weight:600}.category-progress-bar{background:var(--line-2);height:3px;margin:var(--space-2) 0 var(--space-5);border-radius:2px;overflow:hidden}.category-progress-bar div{background:var(--cobalt);height:100%;transition:width var(--dur,.2s) var(--ease,ease);border-radius:2px}.plan-history{position:relative}.btn-plan-history{font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:var(--space-4) var(--space-8);cursor:pointer;align-items:center;font-weight:600;display:inline-flex}.btn-plan-history.active,.btn-plan-history:hover{background:var(--accent-soft);border-color:var(--cobalt)}.plan-history-list{gap:var(--space-3);margin-top:var(--space-5);flex-direction:column;width:100%;display:flex}.plan-history-item{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--cream);padding:var(--space-5) var(--space-7);cursor:pointer;font-size:var(--text-md);color:var(--ink);flex-direction:column;align-items:flex-start;display:flex}.plan-history-item:hover{border-color:var(--cobalt);background:var(--accent-soft)}.plan-history-meta{font-size:var(--text-xs);color:var(--muted);margin-top:2px}.weight-streak{font-size:var(--text-xs);color:var(--accent-text);background:var(--accent-soft);border-radius:var(--badge-radius,999px);padding:2px var(--space-5);margin-left:var(--space-6);align-items:center;font-weight:600;display:inline-flex}.weight-sparkline{width:100%;max-width:240px;height:48px;margin:var(--space-5) 0;display:block}.spark-line{stroke:var(--accent-text);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.spark-dot{fill:var(--accent-text)}.achievements-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-9) var(--space-10);margin-bottom:var(--space-12);box-shadow:var(--shadow)}.achievements-card h3{font-size:var(--text-lg);margin:0 0 var(--space-8);align-items:center;display:flex}.ach-count{font-size:var(--text-sm);color:var(--muted);margin-left:auto;font-weight:600}.achievements-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.achievement{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-6) var(--space-7);background:var(--cream);flex-direction:column;align-items:flex-start;display:flex}.achievement.earned{opacity:1;border-color:var(--accent-soft);background:var(--accent-soft)}.achievement .ach-icon{color:var(--muted);margin-bottom:var(--space-3)}.achievement.earned .ach-icon{color:var(--accent-text)}.ach-label{font-weight:700;font-size:var(--text-md);color:var(--ink)}.ach-hint{font-size:var(--text-2xs);margin-top:2px}.ach-progress{background:var(--line-2);width:100%;height:3px;margin-top:var(--space-4);border-radius:2px;display:block;overflow:hidden}.ach-progress span{background:var(--cobalt);border-radius:2px;height:100%;display:block}.collection-add{gap:var(--space-5);margin-top:var(--space-6);display:flex}.collection-add input{flex:1}.collection-list{gap:var(--space-6);margin-top:var(--space-7);flex-direction:column;display:flex}.collection-card{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-6) var(--space-7);background:var(--cream)}.collection-head{align-items:center;gap:var(--space-5);display:flex}.collection-head strong{font-size:var(--text-md)}.collection-count{font-size:var(--text-xs);color:var(--muted)}.collection-del{color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;margin-left:auto;padding:2px}.collection-del:hover{color:#ef4444;background:var(--badge-rose-bg)}.collection-chips{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.collection-chip{font-size:var(--text-2xs);border:1px solid var(--line);background:var(--bg,#fff);color:var(--ink-2);border-radius:var(--radius-pill);padding:2px var(--space-5);cursor:pointer}.collection-chip.in{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-soft)}.budget-notice{align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);border-radius:var(--radius);padding:var(--space-6) var(--space-8);margin:var(--space-8) 0;border:1px solid var(--line);display:flex}.budget-notice.ok{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-text)}.budget-notice.over{background:var(--badge-amber-bg);border-color:var(--badge-amber-bd);color:var(--badge-amber-fg)}.recipe-extras{align-items:center;gap:var(--space-6);margin-top:var(--space-7);flex-wrap:wrap;display:flex}.btn-cook-mode{font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:var(--space-4) var(--space-8);cursor:pointer;align-items:center;font-weight:600;display:inline-flex}.btn-cook-mode:hover{background:var(--accent-soft);border-color:var(--cobalt)}.recipe-rating{gap:2px;display:inline-flex}.recipe-rating .star{cursor:pointer;color:var(--line);background:0 0;border:none;padding:2px;display:inline-flex}.recipe-rating .star.on,.recipe-rating .star:hover{color:var(--accent-text)}.recipe-note{width:100%;margin-top:var(--space-5);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-5) var(--space-6);font-size:var(--text-sm);resize:vertical;background:var(--cream);color:var(--ink);font-family:inherit}.recipe-subs{margin-top:var(--space-5)}.recipe-subs>summary{font-size:var(--text-sm);color:var(--accent-text);cursor:pointer;font-weight:600}.recipe-subs ul{margin:var(--space-5) 0 0;padding-left:var(--space-9)}.recipe-subs li{font-size:var(--text-sm);color:var(--ink-2);margin-bottom:var(--space-3)}.recipe-subs .sub-note{color:var(--muted);font-size:var(--text-xs)}.portion-warning{align-items:flex-start;gap:var(--space-2);font-size:var(--text-xs);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-6);margin:var(--space-5) 0;display:flex}.portion-warning.portion-large{background:var(--badge-amber-bg);color:var(--badge-amber-fg)}.portion-warning.portion-extreme{background:var(--badge-warm-bg);color:var(--badge-warm-fg)}.why-menu{margin:var(--space-4) var(--space-7) 0;border-top:1px dashed var(--line);padding-top:var(--space-4)}.why-menu summary{cursor:pointer;font-size:var(--text-xs);color:var(--accent-text);align-items:center;font-weight:600;list-style:none;display:inline-flex}.why-menu summary::-webkit-details-marker{display:none}.why-menu summary:hover{color:var(--accent-text)}.why-menu-list{margin:var(--space-4) 0 0;padding-left:var(--space-6);gap:var(--space-3);flex-direction:column;display:flex}.why-menu-list li{font-size:var(--text-xs);color:var(--ink-2);line-height:1.5;list-style:outside}.cookmode-overlay{z-index:1000;padding:var(--space-6);background:#304bff8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cookmode{background:var(--bg,#fff);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:92dvh;padding:var(--space-10) var(--space-10) var(--space-8);box-shadow:var(--shadow-md);flex-direction:column;display:flex;overflow-y:auto}.cookmode-header{justify-content:space-between;align-items:flex-start;gap:var(--space-6);display:flex}.cookmode-header h2{font-size:var(--text-xl);margin:0}.cookmode-close{color:var(--muted);cursor:pointer;padding:var(--space-2);background:0 0;border:none}.cookmode-close:hover{color:var(--ink)}.cookmode-progress{background:var(--line-2);height:4px;margin:var(--space-7) 0 var(--space-4);border-radius:2px;overflow:hidden}.cookmode-progress div{background:var(--cobalt);height:100%;transition:width var(--dur) var(--ease);border-radius:2px}.cookmode-step-count{font-size:var(--text-xs);color:var(--muted);margin:0 0 var(--space-6)}.cookmode-body{flex:1}.cookmode-step{color:var(--ink);margin:0 0 var(--space-9);font-size:1.18rem;line-height:1.55}.cookmode-timer{background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:var(--space-6) var(--space-9);margin-bottom:var(--space-7);justify-content:space-between;align-items:center;display:flex}.cookmode-timer.done{background:var(--accent-soft);border-color:var(--cobalt)}.cookmode-time{font-variant-numeric:tabular-nums;color:var(--accent-text);font-size:2rem;font-weight:800}.cookmode-timer.done .cookmode-time{color:var(--accent-text)}.cookmode-timer-actions{gap:var(--space-5);display:flex}.cookmode-timer-actions button{border:1px solid var(--cobalt);background:var(--bg,#fff);width:46px;height:46px;color:var(--accent-text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.cookmode-timer-actions button:hover{background:var(--accent-soft)}.cookmode-ingredients{margin:var(--space-4) 0 var(--space-8)}.cookmode-ingredients>summary{font-size:var(--text-sm);color:var(--muted);cursor:pointer}.cookmode-ingredients ul{margin:var(--space-5) 0 0;padding-left:var(--space-9);font-size:var(--text-sm);color:var(--ink-2)}.cookmode-nav{gap:var(--space-6);margin-top:auto;display:flex}.cookmode-nav button{justify-content:center;align-items:center;gap:var(--space-3);font-size:var(--text-md);padding:var(--space-7);border-radius:var(--radius);cursor:pointer;border:1px solid var(--line);background:var(--cream);color:var(--ink-2);flex:1;font-weight:600;display:inline-flex}.cookmode-nav button:disabled{opacity:.4;cursor:default}.cookmode-next,.cookmode-finish{background:var(--cobalt)!important;color:#fff!important;border-color:var(--cobalt)!important}.cookmode-next:hover,.cookmode-finish:hover{background:var(--cobalt)!important}.paywall-preview{margin:var(--space-7) 0;border-radius:var(--radius);border:1px solid var(--line);background:var(--cream);min-height:92px;position:relative;overflow:hidden}.paywall-preview-inner{filter:blur(3px);opacity:.85;padding:var(--space-8);pointer-events:none;-webkit-user-select:none;user-select:none}.paywall-preview-lock{color:var(--accent-text);background:#faf8f459;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pv-chips,.pv-members{gap:var(--space-5);flex-wrap:wrap;display:flex}.pv-chip{background:var(--accent-soft);color:var(--accent-text);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-7);font-size:var(--text-sm);font-weight:600}.pv-fasting{gap:var(--space-4);flex-direction:column;display:flex}.pv-window{color:var(--ink);font-weight:700}.pv-bar{background:var(--line-2);border-radius:5px;height:10px;position:relative}.pv-bar span{background:var(--cobalt);border-radius:5px;height:100%;position:absolute;top:0}.pv-sub{font-size:var(--text-sm);color:var(--muted)}.pv-member{border-radius:var(--radius-sm);min-width:140px;padding:var(--space-3) var(--space-6);border:1px solid var(--line);background:#fff;justify-content:space-between;display:flex}.pv-regen{align-items:center;gap:var(--space-7);display:flex}.pv-inf{color:var(--accent-text);font-size:2.4rem;font-weight:800}.pv-pdf{gap:var(--space-4);flex-direction:column;display:flex}.pv-pdf-line{background:var(--line);border-radius:4px;width:100%;height:10px}.pv-pdf-line.lg{background:var(--accent-soft);width:70%;height:14px}.pv-pdf-line.sm{width:40%}.paywall-compare{margin:var(--space-5) auto 0;color:var(--accent-text);font-weight:600;font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;display:block}.paywall-compare:hover{text-decoration:underline}.pricing-modal{max-width:600px}.pricing-plans{gap:var(--space-5);margin:var(--space-8) 0;grid-template-columns:repeat(3,1fr);display:grid}.pricing-plan{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-8) var(--space-6);text-align:center;flex-direction:column;gap:2px;display:flex;position:relative}.pricing-plan.featured{border-color:var(--cobalt);background:var(--accent-soft);border-width:2px}.pricing-ribbon{background:var(--cobalt);color:#fff;font-size:var(--text-2xs);padding:2px var(--space-6);border-radius:var(--radius-pill);white-space:nowrap;font-weight:700;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.pricing-plan-name{font-size:var(--text-sm);color:var(--muted);font-weight:600}.pricing-plan-price strong{color:var(--ink);font-size:1.4rem}.pricing-plan-price span{font-size:var(--text-sm);color:var(--muted)}.pricing-plan-note{font-size:var(--text-2xs);color:var(--muted);margin-top:var(--space-3)}.pricing-table{border-collapse:collapse;width:100%;margin-top:var(--space-6);font-size:var(--text-sm)}.pricing-table th,.pricing-table td{text-align:left;padding:var(--space-5) var(--space-4);border-bottom:1px solid var(--line-2)}.pricing-table th:not(:first-child),.pricing-table td:not(:first-child){text-align:center;width:90px}.pricing-yes{color:var(--accent-text)}.pricing-no{color:var(--line)}.pricing-text{font-size:var(--text-xs);color:var(--ink-2);font-weight:600}.trial-notice{background:var(--accent-soft);border-left:4px solid var(--cobalt)}.trial-explain-notice{background:var(--accent-soft);border:1px solid var(--accent-soft);border-left:4px solid var(--cobalt);color:var(--ink-2)}.notice-dismiss{color:var(--muted);cursor:pointer;padding:0 var(--space-4);background:0 0;border:none;font-size:1.1rem;line-height:1}.plan-summary-card{border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:var(--radius-lg);padding:var(--space-9) var(--space-10);margin-bottom:var(--space-10)}.plan-summary-card h3{font-size:var(--text-lg);margin:0 0 var(--space-6);color:var(--accent-text);align-items:center;display:flex}.plan-summary-list{gap:var(--space-5);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.plan-summary-list li{font-size:var(--text-md);color:var(--ink-2);line-height:1.5}.guide-card,.calc-links{margin:var(--space-12) 0}.guide-card h3,.calc-links h3{font-size:var(--text-lg);margin-bottom:var(--space-7);align-items:center;display:flex}.guide-steps{gap:var(--space-7);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.guide-step{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-7);background:var(--cream)}.guide-step strong{font-size:var(--text-md);margin-bottom:var(--space-3);color:var(--accent-text);display:block}.guide-step p{font-size:var(--text-sm);color:var(--ink-2);margin:0;line-height:1.5}.calc-link-list{gap:var(--space-7);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.calc-link-card{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-7)}.calc-link-card h4{font-size:var(--text-md);margin:0 0 var(--space-4)}.calc-formula{font-size:var(--text-xs);background:var(--accent-soft);color:var(--accent-text);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);margin-bottom:var(--space-5);display:block;overflow-x:auto}.calc-link-card p{font-size:var(--text-sm);color:var(--muted);margin:0 0 var(--space-5)}.calc-link-card a{font-size:var(--text-sm);color:var(--accent-text);font-weight:600}.sources-list-title{font-size:var(--text-lg);margin:var(--space-12) 0 var(--space-7)}@media (width<=600px){.app-header{padding-left:max(var(--space-8), env(safe-area-inset-left));padding-right:max(var(--space-8), env(safe-area-inset-right))}}.app-disclaimer{background:var(--accent-soft);border:1px solid var(--accent-soft);border-top:1px solid var(--accent-soft);border-radius:var(--radius-lg);max-width:820px;padding:var(--space-6) var(--space-8);gap:var(--space-5)}.shopping-search{align-items:center;gap:var(--space-4);background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-6);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);display:flex}.shopping-search:focus-within{border-color:var(--cobalt);box-shadow:0 0 0 3px #304bff24}.shopping-search svg{color:var(--muted);flex-shrink:0}.shopping-search input{min-width:0;font-family:var(--font);font-size:var(--text-md);color:var(--ink);background:0 0;border:none;outline:none;flex:1}.shopping-search input::placeholder{color:var(--muted)}.shopping-search-clear{color:var(--muted);cursor:pointer;font-size:var(--text-2xl);padding:0 var(--space-3);background:0 0;border:none;line-height:1}.shopping-search-clear:hover{color:var(--ink-2)}.shopping-empty{font-size:var(--text-sm);color:var(--muted);padding:var(--space-7) var(--space-4)}.empty-state{text-align:center;align-items:center;gap:var(--space-4);padding:var(--space-9) var(--space-6);flex-direction:column;max-width:460px;margin:0 auto;display:flex}.empty-state-icon{color:var(--accent-text);opacity:.85}.empty-state h3{font-size:var(--text-lg);color:var(--ink);margin:0}.empty-state p{font-size:var(--text-sm);color:var(--ink-2);margin:0;line-height:1.55}.empty-state .btn-regenerate{margin-top:var(--space-3)}@media (width<=600px){.shopping-row{min-height:44px;padding:var(--space-4) var(--space-6)}.shopping-box{width:22px;height:22px}.btn-clear-checks,.btn-share-list,.btn-copy-list,.btn-route-edit{min-height:44px}.route-actions button{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.recipe-rating .star{justify-content:center;align-items:center;min-width:40px;min-height:40px;display:inline-flex}.shopping-search-clear{min-width:40px;min-height:40px}}@media (width>=361px) and (width<=600px){.week-grid{gap:var(--space-9)}.day-card{padding:var(--space-9)}.meal-list{gap:var(--space-7)}.meal-name{font-size:var(--text-lg);line-height:1.3}.meal-why{line-height:1.55}}.activation-card{background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-6)}.activation-head{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.activation-title{font-weight:700;font-size:var(--text-sm);color:var(--accent-text);align-items:center;display:inline-flex}.activation-count{margin-left:var(--space-3);font-size:var(--text-2xs);color:var(--accent-text);background:var(--white);border:1px solid var(--accent-soft);border-radius:var(--radius-pill);padding:1px var(--space-3);font-weight:600}.activation-dismiss{color:var(--muted);font-size:var(--text-lg);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;width:28px;height:28px;line-height:1}.activation-dismiss:hover{color:var(--ink);background:var(--white)}.activation-steps{margin:var(--space-5) 0 0;gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.activation-steps li{align-items:flex-start;gap:var(--space-4);display:flex}.activation-box{border-radius:var(--radius-pill);border:1.5px solid var(--accent-soft);background:var(--white);width:22px;height:22px;color:var(--muted);flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.activation-steps li.done .activation-box{background:var(--cobalt);border-color:var(--cobalt);color:#fff}.activation-step-text{flex-direction:column;gap:1px;display:flex}.activation-step-text strong{font-size:var(--text-sm);color:var(--ink);font-weight:600}.activation-steps li.done .activation-step-text strong{color:var(--muted);text-decoration:line-through}.activation-step-text span{font-size:var(--text-xs);color:var(--ink-2);line-height:1.45}@media (width<=600px){html,body{max-width:100%;overflow-x:hidden}.app-shell{max-width:100vw;overflow-x:hidden}.results-area,.app-body{min-width:0}.meal-name,.plan-notice span,.activation-step-text{overflow-wrap:anywhere;min-width:0}.app-body{padding:var(--space-5);gap:var(--space-6)}.tab-content{padding:var(--space-6) var(--space-5)}.app-header{padding:var(--space-5) var(--space-6)}.header-brand p{display:none}.app-header h1{font-size:1.15rem}.plan-notice,.commercial-notice{padding:var(--space-4) var(--space-5);margin:var(--space-4) var(--space-5) 0;font-size:var(--text-xs);gap:var(--space-4)}.plan-notice button{padding:var(--space-3) var(--space-5);font-size:var(--text-xs)}.activation-card{padding:var(--space-5);margin-bottom:var(--space-5)}.activation-step-text span{font-size:var(--text-2xs)}.meal-headline{align-items:stretch;gap:var(--space-4);margin:var(--space-3) 0 var(--space-3);flex-direction:column}.meal-headline .recipe-photo{border-radius:var(--radius-md);width:100%;height:168px}.meal-headline svg.recipe-art{background:var(--accent-soft);border-radius:var(--radius-md);width:100%;height:120px;padding:var(--space-3)}.meal-headline .meal-name{font-size:var(--text-md);margin-bottom:0;font-weight:700}.meal-item{padding:var(--space-7) var(--space-6)}.kcal-badge{font-size:var(--text-sm)}.meal-macros{font-size:var(--text-sm);gap:var(--space-5);margin-top:var(--space-4)}.day-footer{font-size:var(--text-md);padding:var(--space-7)}.meal-tags{gap:var(--space-2);margin-top:var(--space-4)}.diet-badges{gap:var(--space-2)}}.pwa-install{z-index:200;align-items:center;gap:var(--space-5);background:var(--white);width:min(440px,100vw - 24px);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:var(--space-5) var(--space-6);animation:.3s tab-in;display:flex;bottom:20px;left:50%}.pwa-install-icon{flex-shrink:0;display:inline-flex}.pwa-install-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.pwa-install-text strong{font-size:var(--text-sm);color:var(--ink)}.pwa-install-text span{font-size:var(--text-xs);color:var(--ink-2);line-height:1.4}.pwa-install-btn{align-items:center;gap:var(--space-3);background:var(--cobalt);color:#fff;border-radius:var(--radius);padding:var(--space-4) var(--space-5);font-family:var(--font);font-size:var(--text-xs);cursor:pointer;border:none;flex-shrink:0;font-weight:700;display:inline-flex}.pwa-install-btn:hover{background:var(--cobalt)}.pwa-install-close{color:var(--muted);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;display:inline-flex}.pwa-install-close:hover{color:var(--ink);background:var(--line-2)}.meal-steps>summary{background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:var(--space-4) var(--space-5)}.meal-steps[open]>summary{border-radius:var(--radius) var(--radius) 0 0}@media (width<=600px){.app-header{gap:var(--space-4);flex-wrap:nowrap}.header-brand{flex:0 auto;min-width:0}.header-brand>div{min-width:0}.header-brand h1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-actions{justify-content:flex-end;gap:var(--space-3);flex-wrap:nowrap;flex:none}.header-actions .btn-account-open{padding:var(--space-3) var(--space-4);font-size:var(--text-xs)}.header-actions .btn-auth,.header-actions .btn-account-open{white-space:nowrap}.meal-tags [class*=tag-storage-],.meal-tags .tag-reuse{display:none}.pwa-install{width:calc(100vw - 20px)}}@media (width<=379px){.header-brand h1{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.menu-day-nav{display:none}@media (width<=600px){.menu-day-nav{gap:var(--space-2);padding:var(--space-2) 0 var(--space-5);margin-bottom:var(--space-2);scrollbar-width:none;-webkit-overflow-scrolling:touch;display:flex}.menu-day-nav::-webkit-scrollbar{display:none}.menu-day-chip{text-align:center;min-width:0;font-size:var(--text-xs);border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--white);min-height:38px;color:var(--ink-2);white-space:nowrap;cursor:pointer;flex:1 1 0;padding:8px 4px;font-weight:600}.menu-day-chip.today{border-color:var(--cobalt);color:var(--accent-text)}.menu-day-chip.active{background:var(--cobalt);color:#fff;border-color:var(--cobalt)}.week-grid{scroll-snap-type:x mandatory;gap:var(--space-6);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;grid-template-columns:none;display:flex;overflow-x:auto}.week-grid::-webkit-scrollbar{display:none}.week-grid>.day-card{scroll-snap-align:center;flex:0 0 100%;min-width:100%}.week-grid>.day-card:hover{transform:none}}.tab-profile-btn{display:none}@media (width<=600px){.tab-profile-btn{display:inline-flex}.app-body.tab-profile .tab-content{display:none}.toolbar-more-btn{align-items:center;gap:var(--space-2);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-pill);font-family:var(--font);font-size:var(--text-sm);color:var(--ink-2);cursor:pointer;min-height:40px;padding:8px 14px;font-weight:600;display:inline-flex}.toolbar-more{width:100%;display:none}.toolbar-more.open{align-items:flex-start;gap:var(--space-5);flex-direction:column;width:100%;display:flex}}.profile-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-xl);min-width:0;max-height:calc(100dvh - 90px);box-shadow:var(--shadow-soft);flex-direction:column;padding:0;display:flex;position:sticky;top:72px;overflow:hidden}.panel-header{justify-content:space-between;align-items:flex-start;gap:var(--space-6);padding:var(--space-8) var(--space-9) var(--space-7);border-bottom:1px solid var(--line);background:var(--white);flex:none;margin:0;display:flex}.panel-header>:first-child{flex:auto;min-width:0}.panel-header h2{font-size:var(--text-2xl);margin:0}.panel-header p{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--muted)}.profile-scroll{overscroll-behavior:contain;min-width:0;min-height:0;padding:0 var(--space-9) var(--space-9);scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex:auto;overflow:hidden auto}.profile-scroll::-webkit-scrollbar{width:6px}.profile-scroll::-webkit-scrollbar-track{background:0 0}.profile-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius-pill)}@media (width<=1100px){.app-body{grid-template-columns:minmax(0,1fr)}.results-area{min-width:0}.profile-panel{max-height:none;position:static;top:auto;overflow:visible}.profile-scroll{overscroll-behavior:auto;flex:0 auto;min-height:auto;overflow:visible}}@media (width<=600px){.profile-panel{display:none}.app-body.tab-profile .profile-panel{display:flex}.panel-header{padding:var(--space-7) max(var(--space-8), var(--inset-right,0px)) var(--space-6) max(var(--space-8), var(--inset-left,0px))}.panel-header .btn-reset,.panel-header .btn-reset-cancel,.panel-header .btn-reset-confirm{min-height:44px}.profile-scroll{padding:0 max(var(--space-8), var(--inset-right,0px)) var(--space-9) max(var(--space-8), var(--inset-left,0px));overflow:visible}.profile-panel .pchip,.profile-panel .p-toggle-row,.profile-panel .opt-row,.profile-panel .field input{min-height:44px}}html[data-theme=dark] .app-header,html[data-theme=dark] .app-header h1,html[data-theme=dark] .app-header .btn-export,html[data-theme=dark] .app-header .btn-auth,html[data-theme=dark] .app-header .auth-email,html[data-theme=dark] .app-header .btn-auth-secondary,html[data-theme=dark] .app-header .theme-toggle{color:#fff}html[data-theme=dark] .pchip.active{border-color:var(--cobalt);background:var(--cobalt);color:#fff}html[data-theme=dark] .p-switch.on{background:var(--cobalt)}.pcard-head{align-items:center;gap:var(--space-4);font-size:var(--text-md);color:var(--ink);margin:0 0 var(--space-5);font-weight:700;display:flex}.pcard-head svg{color:var(--accent-text);flex-shrink:0}.recipe-pool{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-6);border:1px solid var(--accent-soft);border-radius:var(--radius);background:var(--accent-soft);font-size:var(--text-xs);color:var(--ink-2);flex-wrap:wrap;display:flex}.recipe-pool>svg{color:var(--accent-text);flex-shrink:0}.recipe-pool strong{color:var(--accent-text)}.recipe-pool.is-low{color:#7a5a16;background:#fef6e7;border-color:#f0dcb0}.recipe-pool.is-low>svg{color:var(--cobalt-hover)}.recipe-pool.is-low strong{color:#7a5a16}.recipe-pool-text{flex:1;min-width:0;line-height:1.4}.recipe-pool-reset{border-radius:var(--radius-pill);color:var(--accent-text);font-family:var(--font);font-size:var(--text-xs);padding:var(--space-3) var(--space-5);cursor:pointer;background:0 0;border:1px solid;min-height:36px;font-weight:600}.recipe-pool.is-low .recipe-pool-reset{color:#7a5a16}.recipe-pool-reset:hover{filter:brightness(.95);background:#ffffff80}.stacked-panel{margin-top:var(--space-12);padding-top:var(--space-10);border-top:2px solid var(--line);scroll-margin-top:76px}.btn-feedback-row{align-items:center;gap:var(--space-4);margin-top:var(--space-8);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white);width:100%;min-height:44px;padding:var(--space-5) var(--space-6);font-family:var(--font);font-size:var(--text-sm);color:var(--ink-2);cursor:pointer;font-weight:600;display:inline-flex}.btn-feedback-row:hover{border-color:var(--cobalt);color:var(--accent-text)}.btn-feedback-row svg{color:var(--accent-text)}.pfield{margin-bottom:var(--space-6)}.pfield:last-child{margin-bottom:0}.pfield-label{font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--space-4);font-weight:600;display:block}.pfield-hint{font-size:var(--text-2xs);color:var(--muted);margin-top:var(--space-3);display:block}.chip-group{gap:var(--space-3);flex-wrap:wrap;display:flex}.pchip{font-family:var(--font);font-size:var(--text-sm);border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--white);min-height:40px;color:var(--ink-2);cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);padding:8px 14px;font-weight:500}.pchip:hover{border-color:var(--cobalt)}.pchip.active{background:var(--cobalt);color:#fff;border-color:var(--cobalt)}.pchip.locked{color:var(--muted);border-style:dashed}.pchip.locked.active{color:#fff}.p-toggle-row{justify-content:space-between;align-items:center;gap:var(--space-5);background:var(--cream);border:1px solid var(--line-2);border-radius:var(--radius);width:100%;padding:var(--space-5) var(--space-6);margin-top:var(--space-5);font-family:var(--font);font-size:var(--text-sm);color:var(--ink);text-align:left;cursor:pointer;display:flex}.p-switch{border-radius:var(--radius-pill);background:var(--line);width:40px;height:23px;transition:background var(--dur-fast) var(--ease);flex-shrink:0;position:relative}.p-switch.on{background:var(--cobalt)}.p-knob{width:19px;height:19px;transition:left var(--dur-fast) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.p-switch.on .p-knob{left:18px}.beta-badge{font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;background:var(--cobalt);color:var(--on-brand);border-radius:var(--radius-pill);margin-left:var(--space-3);padding:3px 9px;font-weight:700}.plan-badge-beta{background:var(--cobalt);color:#fff}.btn-feedback{align-items:center;gap:var(--space-2);color:var(--white);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-7);font-family:var(--font);font-size:var(--text-md);cursor:pointer;background:0 0;border:1.5px solid #ffffff80;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.btn-feedback:hover{border-color:var(--white);background:#ffffff14}.beta-notice{background:var(--accent-soft);border:1px solid var(--cobalt);color:var(--ink)}.beta-notice a{color:var(--accent-text);cursor:pointer;white-space:nowrap;font-weight:700;text-decoration:underline}.landing-beta{max-width:860px;padding:64px var(--space-12) 0;text-align:center;margin:0 auto}:root{--inset-top:var(--safe-area-inset-top,env(safe-area-inset-top,0px));--inset-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--inset-left:var(--safe-area-inset-left,env(safe-area-inset-left,0px));--inset-right:var(--safe-area-inset-right,env(safe-area-inset-right,0px))}.app-header{padding-top:max(var(--space-6), var(--inset-top));padding-left:max(28px, var(--inset-left));padding-right:max(28px, var(--inset-right))}@media (width<=600px){.app-header{padding-left:max(var(--space-8), var(--inset-left));padding-right:max(var(--space-8), var(--inset-right))}.tabs{padding-bottom:calc(7px + var(--inset-bottom))}.app-shell{padding-bottom:calc(76px + var(--inset-bottom))}.pwa-install{bottom:calc(84px + var(--inset-bottom))}}.auth-overlay{padding:calc(var(--space-10) + var(--inset-top)) var(--space-10) calc(var(--space-10) + var(--inset-bottom));overflow-y:auto}.auth-modal{margin:auto}.cookmode-overlay{padding-top:var(--inset-top);padding-bottom:var(--inset-bottom)}.foods-panel{gap:var(--space-8);flex-direction:column;display:flex}.foods-head h2{align-items:center;gap:var(--space-4);margin:0;display:flex}.foods-head-icon{color:var(--accent-text);flex-shrink:0}.foods-head-sub{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-sm)}.food-add-box{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-7);gap:var(--space-5);flex-direction:column;display:flex}.food-add-box.compact{padding:var(--space-5)}.foods-mode-tabs{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.foods-mode-tabs button{justify-content:center;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-soft);color:var(--ink-2);cursor:pointer;font:700 var(--text-xs)/1.2 var(--font);display:inline-flex}.foods-mode-tabs button.active{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-soft)}.foods-context-note{color:var(--muted);font-size:var(--text-sm);margin:0}.foods-fallback-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.foods-fallback-actions button,.foods-mini-btn{border:1px solid var(--accent-soft);background:var(--accent-soft);color:var(--accent-text);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font:700 var(--text-xs)/1 var(--font);cursor:pointer}.foods-generic,.foods-manual-entry,.foods-saved-picker{gap:var(--space-4);flex-direction:column;display:flex}.foods-generic-search{align-items:center;gap:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 var(--space-4);background:var(--white);color:var(--muted);display:flex}.foods-generic-search input{min-width:0;color:var(--ink);padding:var(--space-4) 0;font:600 var(--text-sm)/1.2 var(--font);background:0 0;border:none;outline:none;flex:1}.foods-category-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.foods-category-chips button{border:1px solid var(--line);background:var(--bg-soft);color:var(--ink-2);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-3);font:700 var(--text-xs)/1 var(--font);cursor:pointer}.foods-category-chips button.active{border-color:var(--accent-soft);background:var(--accent-soft);color:var(--accent-text)}.foods-generic-results{gap:var(--space-3);max-height:360px;padding-right:var(--space-1);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));display:grid;overflow:auto}.foods-generic-results button{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--line);background:var(--white);min-width:0;color:var(--ink);border-radius:var(--radius-sm);padding:var(--space-4);cursor:pointer;text-align:left;font-family:var(--font);display:flex}.foods-generic-results button.active,.foods-generic-results button:hover{border-color:var(--accent-soft);background:var(--accent-soft)}.foods-generic-results span{flex-direction:column;gap:2px;min-width:0;display:flex}.foods-generic-results strong{overflow-wrap:anywhere;font-size:var(--text-sm)}.foods-generic-results small{color:var(--muted);font-size:var(--text-xs)}.foods-form-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.foods-form-grid label{gap:var(--space-2);color:var(--ink-2);font-size:var(--text-xs);flex-direction:column;font-weight:800;display:flex}.foods-form-grid input{border:1px solid var(--line);border-radius:var(--radius-sm);min-width:0;padding:var(--space-4);background:var(--white);color:var(--ink);font:600 var(--text-sm)/1.2 var(--font)}.foods-form-wide{grid-column:1/-1}.foods-save-check{align-items:center;gap:var(--space-3);color:var(--ink-2);font-size:var(--text-sm);font-weight:700;display:inline-flex}.foods-saved-picker ul{border-top:1px dashed var(--line);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.foods-saved-picker li{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px dashed var(--line);display:flex}.foods-search{gap:var(--space-4);flex-direction:column;display:flex}.foods-scan-btn{justify-content:center;align-items:center;gap:var(--space-3);background:var(--cobalt);color:var(--on-cobalt);cursor:pointer;border-radius:var(--radius);padding:var(--space-5) var(--space-8);font-size:var(--text-md);font-weight:600;font-family:var(--font);border:none;display:inline-flex}.foods-scan-btn:hover{background:var(--cobalt)}.foods-manual{gap:var(--space-3);display:flex}.foods-manual input{min-width:0;padding:var(--space-4) var(--space-5);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--text-md);font-family:var(--font);background:var(--white);color:var(--ink);flex:1}.foods-lookup-btn{align-items:center;gap:var(--space-2);white-space:nowrap;background:var(--cobalt);color:var(--on-cobalt);cursor:pointer;border-radius:var(--radius-sm);padding:var(--space-4) var(--space-6);font-size:var(--text-sm);font-weight:600;font-family:var(--font);border:none;display:inline-flex}.foods-lookup-btn:disabled{opacity:.6;cursor:default}.foods-hint,.foods-loading{font-size:var(--text-sm);color:var(--muted);margin:0}.foods-error{font-size:var(--text-sm);color:#a33c22;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);background:#fdf0eb;border:1px solid #f3cebe;margin:0}.foods-notice{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);margin:0;font-weight:600;display:inline-flex}.foods-product{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-7);gap:var(--space-5);flex-direction:column;display:flex}.foods-product-head{gap:var(--space-5);align-items:flex-start;display:flex}.foods-product-head img{object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--line);background:#fff;flex-shrink:0;width:64px;height:64px}.foods-product-head h3{font-size:var(--text-lg);margin:0}.foods-product-meta{margin:var(--space-1) 0 0;color:var(--muted);font-size:var(--text-sm)}.foods-nutriscore{margin-top:var(--space-2);padding:1px var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);color:#fff;font-weight:700;display:inline-block}.ns-a{background:#1e8f4e}.ns-b{background:#71b340}.ns-c{background:#e0a112}.ns-d{background:#d9700c}.ns-e{background:#c23a22}.foods-warn{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:#8a5b00;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);background:#fdf6e3;border:1px solid #f0dfae;margin:0;display:inline-flex}.foods-grams label{font-size:var(--text-sm);color:var(--ink-2);font-weight:600}.foods-grams-row{align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.foods-grams-row input{width:110px;padding:var(--space-4) var(--space-5);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--text-lg);font-weight:600;font-family:var(--font);background:var(--white);color:var(--ink)}.foods-nutrition{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.foods-nutrition th{text-align:left;padding:var(--space-2) var(--space-3);color:var(--muted);border-bottom:1px solid var(--line);font-weight:600}.foods-nutrition td{padding:var(--space-2) var(--space-3);border-bottom:1px dashed var(--line)}.foods-nutrition td:not(:first-child),.foods-nutrition th:not(:first-child){text-align:right}.foods-allergens{font-size:var(--text-sm);color:var(--ink-2);margin:0}.foods-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.foods-primary-btn{background:var(--cobalt);min-width:180px;color:var(--on-cobalt);cursor:pointer;border-radius:var(--radius-sm);padding:var(--space-5) var(--space-6);font-size:var(--text-md);font-weight:700;font-family:var(--font);border:none;flex:1}.foods-primary-btn:disabled{opacity:.55;cursor:default}.foods-secondary-btn{background:var(--accent-soft);min-width:180px;color:var(--accent-text);border:1px solid var(--accent-soft);cursor:pointer;border-radius:var(--radius-sm);padding:var(--space-5) var(--space-6);font-size:var(--text-md);font-weight:600;font-family:var(--font);flex:1}.foods-total,.foods-log,.foods-saved{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-7)}.foods-total h3,.foods-log h3,.foods-saved h3{margin:0 0 var(--space-4);font-size:var(--text-md)}.foods-empty{color:var(--muted);font-size:var(--text-sm);margin:0}.foods-total-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(130px,1fr));display:grid}.foods-total-cell{flex-direction:column;gap:2px;display:flex}.ft-label{font-size:var(--text-xs);color:var(--muted)}.ft-value{color:var(--ink);font-weight:700}.ft-target{color:var(--muted);font-weight:400;font-size:var(--text-xs)}.foods-log ul,.foods-saved ul{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.foods-log li,.foods-saved li{align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px dashed var(--line);display:flex}.foods-log li:last-child,.foods-saved li:last-child{border-bottom:none}.fl-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);flex:1;overflow:hidden}.fl-meta{color:var(--muted);font-size:var(--text-xs);white-space:nowrap}.fl-remove{cursor:pointer;color:var(--muted);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;display:inline-flex}.fl-remove:hover{color:#c23a22;background:#fdf0eb}.fs-load{align-items:center;gap:var(--space-4);cursor:pointer;text-align:left;min-width:0;padding:var(--space-2) 0;font-family:var(--font);color:var(--ink);background:0 0;border:none;flex:1;display:flex}.fs-load.active{color:var(--accent-text)}.fs-load img{object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--line);background:#fff;flex-shrink:0;width:36px;height:36px}.fs-load>span{flex-direction:column;min-width:0;display:flex}.fs-name{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.fs-meta{font-size:var(--text-xs);color:var(--muted)}.foods-source{font-size:var(--text-xs);color:var(--muted);margin:0}.today-panel{gap:var(--space-8);flex-direction:column;display:flex}.today-head{justify-content:space-between;align-items:flex-start;gap:var(--space-6);flex-wrap:wrap;display:flex}.today-head h2{font-size:var(--text-3xl);margin:0}.today-head p{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-sm)}.today-date{color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:700}.today-summary{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-7);gap:var(--space-6);display:grid}.today-summary-main{gap:var(--space-1);padding-bottom:var(--space-5);border-bottom:1px solid var(--line);flex-direction:column;display:flex}.today-summary-label{color:var(--muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:700}.today-summary-main strong{font-size:var(--text-5xl);color:var(--accent-text);line-height:1}.today-summary-main span:last-child{color:var(--muted);font-size:var(--text-sm)}.today-summary-grid{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.today-summary-cell{background:var(--line-2);border-radius:var(--radius-sm);padding:var(--space-4);flex-direction:column;gap:2px;display:flex}.today-summary-cell span,.today-summary-cell small{color:var(--muted);font-size:var(--text-xs)}.today-summary-cell strong{color:var(--ink);font-size:var(--text-lg)}.today-breakdown{gap:var(--space-4);font-size:var(--text-sm);color:var(--muted);flex-wrap:wrap;display:flex}.today-breakdown strong{color:var(--ink)}.today-meals,.today-scanner,.today-added{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-7);gap:var(--space-5);flex-direction:column;display:flex}.today-meals h3,.today-scanner h3,.today-added h3{font-size:var(--text-lg);margin:0}.today-scanner h3{align-items:center;gap:var(--space-3);display:flex}.today-meal{gap:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-5);grid-template-columns:minmax(0,1fr) auto;display:grid}.today-meal.is-replacing{border-color:var(--cobalt);background:var(--accent-soft);box-shadow:0 0 0 3px #304bff1f}.today-meal-info{flex-direction:column;gap:2px;min-width:0;display:flex}.today-meal-info strong{overflow-wrap:anywhere}.today-meal-info span:last-child{color:var(--muted);font-size:var(--text-sm)}.today-replacing-inline{color:var(--accent-text);font-size:var(--text-xs);font-weight:700}.today-meal-type{color:var(--accent-text);font-size:var(--text-xs);text-transform:uppercase;font-weight:800}.today-meal-status{border-radius:var(--radius-pill);padding:3px var(--space-3);background:var(--accent-soft);color:var(--accent-text);font-size:var(--text-xs);align-self:start;font-weight:800}.today-meal-actions{gap:var(--space-3);flex-wrap:wrap;grid-column:1/-1;display:flex}.today-meal-actions button,.today-saved-foods button{border:1px solid var(--line);background:var(--white);color:var(--ink-2);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);cursor:pointer;font-weight:700}.today-meal-actions button:hover,.today-saved-foods button:hover{border-color:var(--cobalt);color:var(--accent-text)}.today-meal-add strong{color:var(--accent-text)}.today-meal-add.has-foods{border-color:var(--accent-soft);background:var(--accent-soft)}.today-slot-foods{margin:var(--space-3) 0 0;gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.today-slot-foods li{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);padding:var(--space-3);display:flex}.today-slot-foods li span{flex-direction:column;min-width:0;display:flex}.today-slot-foods li small{color:var(--muted);font-size:var(--text-xs)}.today-slot-foods li button{border:1px solid var(--line);background:var(--white);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.today-slot-foods li button:hover{border-color:var(--cobalt);color:var(--accent-text)}.today-meal-actions button.btn-add-meal,.today-meal-actions button.btn-add-meal:hover{background:var(--cobalt);color:var(--on-cobalt);border-color:var(--cobalt)}.today-replace-btn{background:var(--accent-soft)!important;color:var(--accent-text)!important;border-color:var(--accent-soft)!important}.today-replace-btn.active{background:var(--cobalt)!important;color:var(--on-cobalt)!important;border-color:var(--cobalt)!important}.today-replace-note{color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin:0}.today-product{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.today-product h4{font-size:var(--text-md);margin:0}.today-saved-foods h4{margin:0 0 var(--space-3);font-size:var(--text-sm)}.today-saved-foods div{gap:var(--space-3);flex-wrap:wrap;display:flex}.today-added ul{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.today-added li{justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:1px dashed var(--line);padding-bottom:var(--space-3);display:flex}.today-added li:last-child{border-bottom:none;padding-bottom:0}.today-added li span{flex-direction:column;min-width:0;display:flex}.today-added li strong{overflow-wrap:anywhere}.today-added li small{color:var(--muted)}.today-added li button{border:1px solid var(--line);background:var(--white);border-radius:var(--radius-sm);width:34px;height:34px;color:var(--muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.shopping-item-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);overflow:hidden}.shopping-item-card .shopping-row{gap:var(--space-2);padding:var(--space-3);background:0 0;border:none;border-radius:0}.shopping-item-card .shopping-check{gap:var(--space-2)}.shopping-smart{border-top:1px dashed var(--line);padding:var(--space-2) var(--space-5) var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.shopping-smart-estimates{align-items:center;gap:var(--space-2);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.smart-cancel,.smart-price-actions button{align-items:center;gap:var(--space-2);border:1px solid var(--line);background:var(--white);color:var(--ink-2);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);cursor:pointer;font-weight:700;display:inline-flex}.smart-cancel:hover{border-color:var(--cobalt);color:var(--accent-text)}.smart-more-btn{border:1px solid var(--line);background:var(--white);width:28px;height:28px;color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;flex:0 0 28px;justify-content:center;align-items:center;display:inline-flex;position:relative}.smart-more-btn:hover{border-color:var(--cobalt);color:var(--accent-text)}.smart-more-btn.open{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-text)}.smart-more-btn.has-data:after{content:"";background:var(--cobalt);border-radius:50%;width:6px;height:6px;position:absolute;top:3px;right:3px}.shopping-smart-tools{gap:var(--space-3);flex-wrap:wrap;display:flex}.smart-tool-btn{align-items:center;gap:var(--space-3);border:1px solid var(--line);background:var(--white);color:var(--ink-2);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-5);min-height:38px;font-family:var(--font);font-size:var(--text-xs);cursor:pointer;font-weight:600;display:inline-flex}.smart-tool-btn:hover{border-color:var(--cobalt);color:var(--accent-text)}.smart-tool-btn.active{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-text)}.shopping-row.have .btn-have{color:var(--accent-text);border-color:var(--accent-soft);background:var(--accent-soft)}.smart-more-btn:focus-visible,.smart-tool-btn:focus-visible,.btn-have:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}.smart-linked{color:var(--muted)}.smart-linked strong{color:var(--ink)}.shopping-smart-estimates{color:var(--muted)}.shopping-smart-estimates strong{color:var(--ink)}.shopping-smart-panel{background:var(--line-2);border-radius:var(--radius-sm);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.shopping-smart-panel .foods-manual{flex-wrap:wrap}.smart-product-preview{align-items:center;gap:var(--space-4);grid-template-columns:46px minmax(0,1fr) auto;display:grid}.smart-product-preview img{object-fit:contain;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;width:46px;height:46px}.smart-product-preview span{flex-direction:column;min-width:0;display:flex}.smart-product-preview strong{overflow-wrap:anywhere}.smart-product-preview small{color:var(--muted)}.smart-price-panel{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.smart-price-panel label{gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-2);flex-direction:column;font-weight:700;display:flex}.smart-price-panel input{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);background:var(--white);color:var(--ink)}.smart-price-panel small{color:var(--muted);font-weight:400}.smart-price-actions{gap:var(--space-3);flex-wrap:wrap;grid-column:1/-1;display:flex}.shopping-smart-summary{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-6);margin-bottom:var(--space-7)}.shopping-smart-summary-head{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.shopping-smart-summary h3{font-size:var(--text-md);margin:0}.shopping-smart-legend{justify-content:flex-end;align-items:center;gap:var(--space-2);color:var(--muted);font-size:var(--text-xs);flex-wrap:wrap;font-weight:700;display:flex}.shopping-smart-legend span{background:var(--line-2);border:1px solid var(--line);border-radius:var(--radius-pill);min-width:0;padding:var(--space-1) var(--space-3);flex-direction:row;align-items:center;gap:4px;display:inline-flex}.shopping-smart-summary-grid{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.shopping-smart-summary-grid span{background:var(--line-2);border-radius:var(--radius-sm);min-width:0;padding:var(--space-4);flex-direction:column;gap:2px;display:flex}.shopping-smart-summary strong{color:var(--accent-text);font-size:var(--text-lg);overflow-wrap:anywhere}.shopping-smart-summary small{color:var(--muted);font-size:var(--text-xs)}@media (width<=700px){.foods-mode-tabs{grid-template-columns:1fr 1fr}.foods-manual{flex-direction:column}.foods-generic-results{grid-template-columns:1fr;max-height:320px}.foods-grams-row{flex-wrap:wrap}.foods-nutrition{font-size:var(--text-xs)}.today-summary-grid,.shopping-smart-summary-grid{grid-template-columns:1fr 1fr}.shopping-smart-summary-head{flex-direction:column;align-items:flex-start}.shopping-smart-legend{justify-content:flex-start}.today-meal{grid-template-columns:1fr}.today-meal-status{justify-self:start}.smart-product-preview{grid-template-columns:42px minmax(0,1fr)}.smart-product-preview .foods-primary-btn{grid-column:1/-1}.smart-price-panel{grid-template-columns:1fr}}html[data-theme=dark] .foods-error{color:#f0a58c;background:#2b160f;border-color:#4a2418}html[data-theme=dark] .foods-warn{color:#e8c26a;background:#29200c;border-color:#453814}html[data-theme=dark] .foods-product-head img,html[data-theme=dark] .fs-load img,html[data-theme=dark] .smart-product-preview img{background:#f4f1ea}#cap-os-barcode-scanner-container-dialog{z-index:1300;padding:calc(var(--space-8) + var(--inset-top)) var(--space-6) calc(var(--space-8) + var(--inset-bottom));background:#0a140ef5;position:fixed;inset:0}.scanner-dialog-inner{flex-direction:column;justify-content:center;max-width:560px;height:100%;margin:0 auto;display:flex;position:relative}#cap-os-barcode-scanner-close-button{z-index:2;color:#fff;cursor:pointer;background:#ffffff1f;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:30px;line-height:1;display:flex;position:absolute;top:0;right:0}#cap-os-barcode-scanner-container-scanner{border-radius:var(--radius);width:100%;overflow:hidden}#cap-os-barcode-scanner-container-scanner video{display:block;width:100%!important}.landing-beta-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-xl);max-width:620px;padding:var(--space-12) var(--space-10);box-shadow:var(--shadow);margin:0 auto}.landing-beta-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent-text);margin-bottom:var(--space-6);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.landing-beta-card h2{margin-bottom:var(--space-4)}.landing-beta-card p{color:var(--muted);margin-bottom:var(--space-8);line-height:1.6}.landing-beta-actions{gap:var(--space-6);flex-wrap:wrap;justify-content:center;display:flex}.landing-beta-actions .btn-landing-outline{align-items:center;text-decoration:none;display:inline-flex}.beta-fb-modal{text-align:center;max-width:420px}.beta-fb-modal h2{margin-bottom:var(--space-3)}.beta-fb-submit{text-align:center;width:100%;margin-bottom:var(--space-5);text-decoration:none;display:block}.beta-fb-later{color:var(--muted);font-family:var(--font);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;text-decoration:underline}.beta-fb-later:hover{color:var(--ink-2)}.beta-rating{justify-content:center;gap:var(--space-4);margin:var(--space-7) 0;display:flex}.beta-emoji{background:var(--cream);border:1px solid var(--line);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:28px;line-height:1;transition:transform .12s,border-color .12s,background .12s;display:inline-flex}.beta-emoji:hover{transform:scale(1.08)}.beta-emoji.active{border-color:var(--cobalt);background:var(--accent-soft);transform:scale(1.12)}.beta-fb-field{gap:var(--space-3);margin-bottom:var(--space-7);flex-direction:column;display:flex}.beta-fb-field span{font-size:var(--text-xs);color:var(--ink-2);font-weight:600}.beta-fb-field em{color:var(--muted);font-style:normal;font-weight:400}.beta-fb-field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-6);font-family:var(--font);font-size:var(--text-md);background:var(--cream);resize:vertical;min-height:64px}.beta-fb-field textarea:focus{outline:2px solid var(--cobalt);border-color:#0000}.beta-fb-submit:disabled{opacity:.55;cursor:default}.beta-fb-thanks-icon{text-align:center;margin-bottom:var(--space-4);font-size:44px}.beta-share-note{font-size:var(--text-sm);color:var(--accent-text);text-align:center;margin:var(--space-4) 0 0}.beta-fb-survey-link{text-align:center;margin:var(--space-6) 0 var(--space-2);font-size:var(--text-sm);color:var(--accent-text);font-weight:600;text-decoration:underline;display:block}.beta-fb-survey-link:hover{color:var(--accent-text)}.beta-fb-tally{text-align:center;margin-bottom:var(--space-4);text-decoration:none;display:block}.beta-fb-hint{font-size:var(--text-xs);color:var(--muted);text-align:center;margin:0 0 var(--space-4);line-height:1.5}.beta-fb-or{align-items:center;gap:var(--space-5);margin:var(--space-6) 0;color:var(--muted);font-size:var(--text-xs);display:flex}.beta-fb-or:before,.beta-fb-or:after{content:"";background:var(--line);flex:1;height:1px}.beta-fb-quick{color:var(--accent-text);border:1.5px solid var(--cobalt);background:0 0}.beta-fb-quick:hover:not(:disabled){background:var(--accent-soft)}.beta-notice-cta{background:var(--cobalt);color:#fff;border-radius:var(--radius-pill);padding:var(--space-3) var(--space-7);font-family:var(--font);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border:none;font-weight:700}.beta-notice-cta:hover{background:var(--cobalt-hover)}.plan-start-row{align-items:center;gap:var(--space-4);margin:0 0 var(--space-6);font-size:var(--text-sm);color:var(--ink-2);flex-wrap:wrap;display:flex}.plan-start-row label{color:var(--ink-2);align-items:center;font-weight:600;display:inline-flex}.plan-start-select{font-family:var(--font);font-size:var(--text-sm);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);color:var(--ink);cursor:pointer;padding:7px 12px;font-weight:600}.plan-start-select:focus{outline:2px solid var(--cobalt);border-color:#0000}.menu-toolbar{align-items:stretch;gap:var(--space-5);margin-bottom:var(--space-6);flex-direction:column;display:flex}.menu-title{font-size:var(--text-xl);color:var(--ink);margin:0;font-weight:700}.menu-actions{gap:var(--space-5);align-items:stretch;display:flex}.menu-actions .btn-regenerate{flex:1;justify-content:center}.toolbar-more-btn{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);width:46px;color:var(--ink-2);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex!important}.menu-actions .btn-export{background:var(--white);color:var(--accent-text);border:1.5px solid var(--cobalt);font-weight:600}.menu-actions .btn-export:hover{background:var(--accent-soft)}@media (width<=359px){.menu-actions{gap:var(--space-4);min-width:0}.menu-actions .btn-regenerate{min-width:0;padding-inline:var(--space-5)}.menu-actions .btn-export{flex:0 0 44px;justify-content:center;gap:0;width:44px;min-height:44px;padding:0}.menu-actions .btn-export .btn-label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.menu-actions .toolbar-more-btn{width:44px}}.toolbar-more{display:none}.toolbar-more.open{align-items:stretch;gap:var(--space-5);background:var(--white);border:1px solid var(--line);border-radius:var(--radius);width:100%;padding:var(--space-7);margin-top:var(--space-2);flex-direction:column;display:flex}.more-row{align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--ink-2);display:flex}.more-row label{align-items:center;gap:var(--space-2);font-weight:600;display:inline-flex}.more-row .plan-start-select{margin-left:auto}.lock-note{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-6);flex-wrap:wrap;margin:0;display:flex}.lock-note-action{color:var(--accent-text);cursor:pointer;font-weight:700;font-family:var(--font);font-size:var(--text-sm);background:0 0;border:none;padding:0;text-decoration:underline}.beta-pill{align-items:center;gap:var(--space-3);border-radius:var(--radius-pill);margin:var(--space-5) var(--space-8) 0;font-size:var(--text-sm);color:#8a5a3a;background:#fdf3ec;border:1px solid #f3d9c7;padding:6px 13px;display:flex}.beta-pill>svg{color:var(--cobalt-hover);flex-shrink:0}.beta-pill-text{flex:1;line-height:1.3}.beta-pill-cta{cursor:pointer;white-space:nowrap;font-weight:700;font-family:var(--font);font-size:var(--text-sm);background:0 0;border:none;padding:0}.beta-pill-x{cursor:pointer;color:#c79a82;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1.15rem;line-height:1}html[data-theme=dark] .beta-pill{background:var(--accent-soft);color:#e8b48c;border-color:#43301f}html[data-theme=dark] .beta-pill>svg,html[data-theme=dark] .beta-pill-cta{color:#f0a878}.consent-banner{z-index:60;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);max-width:720px;box-shadow:var(--shadow-md);flex-wrap:wrap;align-items:center;gap:12px;margin:0 auto;padding:10px 14px;display:flex;position:fixed;bottom:12px;left:12px;right:12px}.consent-text{color:var(--ink-2);flex:260px;margin:0;font-size:.83rem;line-height:1.45}.consent-text a{font-weight:600;text-decoration:underline}.consent-actions{flex-shrink:0;gap:8px;display:flex}.consent-btn{border-radius:var(--radius-pill);cursor:pointer;border:1px solid #0000;padding:7px 16px;font-size:.83rem;font-weight:700}.consent-accept{background:var(--cobalt);color:#fff}.consent-accept:hover{background:var(--cobalt)}.consent-deny{color:var(--ink-2);border-color:var(--line);background:0 0}.consent-deny:hover{border-color:var(--muted)}html[data-theme=dark] .consent-banner{background:var(--surface-subtle);border-color:var(--surface-subtle)}html[data-theme=dark] .consent-text{color:#c7cec7}html[data-theme=dark] .consent-deny{color:#c7cec7;border-color:var(--surface-subtle)}.consent-card .pfield-hint a{text-decoration:underline}.app-legal-links{flex-wrap:wrap;justify-content:center;gap:6px 18px;padding:0 16px 18px;font-size:.8rem;display:flex}.app-legal-links a{color:var(--muted);text-decoration:underline}.app-legal-links a:hover{color:var(--accent-text)}.account-danger{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.btn-account-delete{color:#b3261e;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #e6b8b5;width:100%;padding:9px 14px;font-size:.87rem;font-weight:600}.btn-account-delete:hover{background:#fdf0ef;border-color:#b3261e}.account-delete-confirm{border-radius:var(--radius);color:#7a1d18;background:#fdf0ef;border:1px solid #e6b8b5;margin-top:10px;padding:12px 14px;font-size:.85rem;line-height:1.5}.account-delete-confirm strong{color:#7a1d18}.account-delete-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.btn-delete-confirm{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#b3261e;border:none;padding:8px 14px;font-size:.85rem;font-weight:700}.btn-delete-confirm:disabled{opacity:.6;cursor:default}.btn-delete-cancel{color:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:8px 14px;font-size:.85rem}.account-delete-error{color:#b3261e;margin-top:8px;font-size:.83rem}html[data-theme=dark] .btn-account-delete{color:#f2a59f;border-color:#5c3330}html[data-theme=dark] .btn-account-delete:hover{background:#2a1615}html[data-theme=dark] .account-delete-confirm{color:#f0c4c0;background:#2a1615;border-color:#5c3330}html[data-theme=dark] .account-delete-confirm strong,html[data-theme=dark] .account-delete-error{color:#f2a59f}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-tight-latin-ext-wght-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-tight-latin-wght-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--cobalt:#304bff;--cobalt-hover:#243bd3;--lime:#d9f858;--on-cobalt:#fff;--on-lime:#202514;--accent-text:#304bff;--accent-soft:#edf0ff;--surface-page:#f6f7fb;--surface-card:#fff;--surface-subtle:#eef0f6;--text-primary:#202333;--text-secondary:#4f566b;--text-muted:#62697c;--border:#dde1ec;--state-risk:#b42335;--state-ok:var(--accent-text);--badge-positive-bg:var(--accent-soft);--badge-positive-fg:var(--accent-text);--badge-positive-bd:var(--border);--badge-warm-bg:var(--lime);--badge-warm-fg:var(--on-lime);--badge-warm-bd:var(--lime);--font:"Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:var(--font);--cream:var(--surface-page);--white:var(--surface-card);--ink:var(--text-primary);--ink-2:var(--text-secondary);--muted:var(--text-muted);--line:var(--border);--line-2:var(--surface-subtle);--radius:18px;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--shadow:0 2px 8px #2023330a;--shadow-md:0 8px 24px #20233314;--shadow-soft:var(--shadow);--shadow-lift:var(--shadow-md);--text-2xs:.8rem;--text-xs:.8rem;--text-sm:.866667rem;--text-md:.933334rem;--space-20:40px;--space-24:48px}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--accent-text:#aebaff;--accent-soft:#252e59;--surface-page:#111420;--surface-card:#1c2030;--surface-subtle:#262b3d;--text-primary:#f3f4fa;--text-secondary:#c4cadc;--text-muted:#a6aec5;--border:#394159;--state-risk:#ffadb9;--cream:var(--surface-page);--white:var(--surface-card);--ink:var(--text-primary);--ink-2:var(--text-secondary);--muted:var(--text-muted);--line:var(--border);--line-2:var(--surface-subtle);--shadow:0 2px 8px #0000001f;--shadow-md:0 8px 24px #0003;--shadow-soft:var(--shadow);--shadow-lift:var(--shadow-md)}body{font-family:var(--font)}.app-legal-links a{align-items:center;min-height:44px;display:inline-flex}:focus-visible{outline:3px solid var(--accent-text);outline-offset:3px}button,[role=button],input:not([type=checkbox]):not([type=radio]),select,summary{min-height:44px}button,[role=button]{min-width:44px}.legal-check,.foods-save-check{min-height:44px}.shopping-check{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:0}.shopping-check:disabled{cursor:default}.beta-pill-cta{color:var(--accent-text)}.foods-lookup-btn,.day-today-pill,.kcal-badge,.meal-seg-btn.on.seg-generated,.meal-seg-btn.on.seg-free,.plan-cta-row>.btn-primary,.nutri-cta>.btn-primary,.btn-view-menu,.pwa-install-btn{background:var(--cobalt);color:var(--on-cobalt)}.meal-add-link{color:var(--accent-text)}.meal-choice-summary{color:var(--text-primary);background:var(--surface-subtle)}.achievements-card{background:var(--surface-card)}.achievement{opacity:1}.ach-hint{color:var(--text-secondary)}.manual-cals-copy,input,select,textarea{color:var(--text-primary)}.nutri-bmi-val,.nutri-bmi-zone{color:var(--text-primary)!important}html[data-theme=dark] .menu-day-chip.today{background:var(--cobalt);color:var(--on-cobalt)}html{scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom))}.app-shell button,.app-shell summary{scroll-margin-block:100px}.app-shell{background:var(--surface-page)}.pwa-install{margin:20px auto calc(100px + env(safe-area-inset-bottom));max-width:min(540px,100% - 24px);position:relative;inset:auto;transform:none}.profile-avatar{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-subtle);min-width:44px;height:44px;color:var(--text-primary);cursor:pointer;font:inherit;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.profile-avatar[aria-current=page]{border-color:var(--accent-text);color:var(--accent-text)}.tabs .nav-add{background:var(--cobalt);width:48px;height:48px;color:var(--on-cobalt);cursor:pointer;border:0;border-radius:16px;flex:0 0 48px;justify-content:center;align-items:center;padding:0;display:flex}.add-food-dialog{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface-card);width:min(640px,100% - 24px);max-height:calc(100dvh - 32px);color:var(--text-primary);overscroll-behavior:contain;padding:24px}.add-food-dialog::backdrop{background:#0a10288c}.add-food-dialog>header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.add-food-dialog h2{letter-spacing:-.6px;font-size:24px;line-height:1.15}.add-food-dialog header p{color:var(--text-secondary);margin-top:8px;font-size:14px}.add-food-dialog header button{border-radius:var(--radius-pill);background:var(--surface-subtle);height:44px;color:var(--text-primary);border:0;flex:0 0 44px}.add-food-dialog .food-add-box{border:0;padding:0}.add-food-dialog .foods-quick-nav{flex-wrap:wrap}.add-food-dialog .foods-quick-nav button{min-height:44px}.add-food-notice{background:var(--accent-soft);color:var(--accent-text);border-radius:12px;margin-bottom:16px;padding:12px;font-size:14px}@media (width<=600px){.app-shell{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.app-shell .app-header{background:var(--surface-page);min-height:72px;color:var(--text-primary);box-shadow:none;border-bottom:1px solid var(--border);gap:8px;padding:12px 16px;position:relative}.app-header .header-brand{flex:1;gap:9px;min-width:0}.app-header .brand-icon{background:var(--cobalt);color:var(--lime);width:36px;height:36px;box-shadow:none;border-radius:12px;flex:0 0 36px}.app-header .header-brand h1{color:var(--text-primary);font-family:var(--font);letter-spacing:-.7px;font-size:20px;line-height:1.1}.app-header .header-brand p{display:none}.app-header .header-actions{flex:none;gap:4px}.app-header .theme-toggle{width:44px;height:44px;color:var(--text-secondary);background:0 0;border:0}.app-header .btn-auth,.app-header .btn-account-open,.app-header .plan-badge{display:none}.preferences-open .app-header,.preferences-open .app-header .header-actions{flex-wrap:wrap}.preferences-open .app-header .btn-auth,.preferences-open .app-header .btn-account-open,.preferences-open .app-header .plan-badge{background:var(--cobalt);min-height:44px;color:var(--on-cobalt);display:inline-flex}.app-shell .tabs{z-index:100;width:100%;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--border);background:var(--surface-card);border-radius:0;grid-template-columns:1fr 1fr 56px 1fr 1fr;align-items:center;gap:0;margin:0;display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -4px 20px #0a10280a}.app-shell .tabs .tab{min-width:0;min-height:56px;color:var(--text-muted);background:0 0;border:0;border-radius:12px;flex-direction:column;gap:5px;padding:6px 0}.app-shell .tabs .tab.active{background:var(--accent-soft);color:var(--accent-text);box-shadow:none}.app-shell .tabs .tab:after{display:none}.app-shell .tabs .tab-icon{width:22px;height:22px}.app-shell .tabs .tab-label{font-size:12px;font-weight:650;line-height:1.2}.app-shell .tabs .nav-add{justify-self:center}.results-area{padding-top:16px}.add-food-dialog{width:100%;max-width:100%;max-height:calc(100dvh - 20px);padding:20px 16px calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;margin:auto 0 0}}.preferences-extras{background:var(--surface-card);border:1px solid var(--border);border-radius:18px;margin:16px 0;padding:16px}.preferences-extras>summary{cursor:pointer;align-content:center;min-height:44px;font-size:16px}.plan-desktop-title,.desktop-week,.desktop-plan-summary,.app-shell .profile-panel{display:none}.app-shell.preferences-open .profile-panel{display:block}@media (width>=601px){.app-shell{max-width:none;padding:0 0 40px}.app-shell .app-header{z-index:200;border:0;border-bottom:1px solid var(--border);background:var(--surface-card);color:var(--text-primary);box-shadow:none;border-radius:0;grid-template-columns:1fr auto;gap:16px;padding:18px 32px;display:grid;position:sticky;top:0}.app-header .header-brand{gap:10px;min-width:0}.app-header .header-brand h1{color:var(--text-primary);letter-spacing:-.8px;font-size:22px}.app-header .header-brand p{display:none}.app-header .brand-icon{background:var(--cobalt);width:40px;height:40px;color:var(--lime);border-radius:12px}.app-shell .header-actions{grid-area:1/2}.app-shell .tabs{box-shadow:none;background:0 0;border:0;grid-area:2/1/auto/-1;justify-content:center;align-items:center;gap:8px;width:auto;margin:0;padding:0;display:flex;position:static}.app-shell .tabs .tab{min-width:80px;min-height:44px;color:var(--text-secondary);background:0 0;border:0;border-radius:12px;flex:0 auto;padding:10px 16px;font-size:14px}.app-shell .tabs .tab.active{color:var(--accent-text);background:var(--accent-soft);box-shadow:none}.app-shell .tabs .tab:after{display:none}.app-shell .tabs .tab-label{font-size:14px}.app-shell .tabs .nav-add{flex-basis:44px;width:44px;height:44px}.app-shell .app-body{max-width:1320px;margin-inline:auto;padding:36px 32px;display:block}.app-shell .results-area{box-shadow:none;background:0 0;border:0;padding:0}.app-shell .tab-content{padding:0;overflow:visible}.app-shell.preferences-open .app-body{max-width:900px}.app-shell :is(.plan-notice,.plan-decision,.safety-notice,.app-disclaimer,.beta-pill){max-width:1256px;margin-inline:auto}.shopping-panel .shopping-categories,.cooking-panel .cooking-recipes{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.cooking-panel .cooking-session-intro{padding:24px}}@media (width>=1000px){.app-shell .app-header{grid-template-columns:1fr auto 1fr;padding:16px max(32px,50vw - 628px)}.app-shell .tabs{grid-area:1/2}.app-shell .header-actions{grid-column:3;justify-self:end}.app-shell .plan-panel{grid-template-columns:minmax(0,1fr) auto;column-gap:24px;display:grid}.app-shell .plan-panel>*{grid-column:1/-1}.app-shell .plan-panel .plan-heading{grid-area:1/1}.app-shell .plan-panel .menu-toolbar{grid-area:1/2;align-self:end}.app-shell .plan-panel .plan-mobile-title{display:none}.app-shell .plan-panel .plan-desktop-title{display:inline}.app-shell .plan-panel .plan-heading h2{letter-spacing:-2.5px;font-size:clamp(48px,5vw,68px)}.app-shell .plan-panel .plan-heading{margin-bottom:24px}.app-shell .plan-panel .menu-actions{width:auto;margin-left:auto}.app-shell .plan-panel .btn-regenerate{flex:none}.app-shell .plan-panel .menu-toolbar{background:0 0;border:0;padding:0}.app-shell .plan-panel .desktop-week{border-block:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:24px 0 28px;padding:10px 0;display:grid}.app-shell .desktop-week button{color:var(--text-secondary);background:0 0;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:6px;min-height:104px;padding:14px 8px;display:flex}.app-shell .desktop-week span{text-transform:capitalize;font-size:13px}.app-shell .desktop-week strong{color:var(--text-primary);font-size:29px}.app-shell .desktop-week small{font-size:12px}.app-shell .desktop-week button[aria-pressed=true]{background:var(--cobalt);color:var(--on-cobalt)}.app-shell .desktop-week button[aria-pressed=true] strong{color:var(--on-cobalt)}.app-shell .plan-panel .plan-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:28px;display:grid}.app-shell .plan-panel .week-grid{display:block}.app-shell .plan-panel .day-card:not(.desktop-selected){display:none}.app-shell .plan-panel .day-card.desktop-selected{background:0 0;border:0;overflow:visible}.app-shell .plan-panel .day-card.desktop-selected>summary{display:none}.app-shell .plan-panel .day-card .day-header{text-align:left;background:0 0;flex-flow:wrap;align-items:center;gap:12px;margin:0;display:flex;padding:0 0 16px!important}.app-shell .plan-panel .day-header .day-name-row{flex:1}.app-shell .plan-panel .day-header .day-name{font-size:24px}.app-shell .plan-panel .day-header .day-badge{background:var(--surface-subtle)!important}.app-shell .plan-panel .day-card .meal-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;padding:0;display:grid}.app-shell .plan-panel .meal-list .meal-item{border:1px solid var(--border);background:var(--surface-card);border-radius:18px;padding:16px}.app-shell .plan-panel .meal-headline{flex-direction:column;align-items:stretch}.app-shell .plan-panel .meal-headline .recipe-art{aspect-ratio:1;object-fit:contain;border-radius:12px;flex-basis:auto;width:100%;height:auto}.app-shell .plan-panel .meal-name{margin-top:6px;font-size:23px;line-height:1.16}.app-shell .plan-panel .meal-top{min-height:44px}.app-shell .plan-panel .why-menu{margin:20px 0 0}.app-shell .plan-panel .day-footer{border-radius:14px;margin-top:20px}.app-shell .plan-panel .desktop-plan-summary{gap:16px;display:grid;position:sticky;top:110px}.desktop-plan-summary>section{border:1px solid var(--border);background:var(--surface-card);border-radius:18px;padding:22px}.desktop-plan-summary p{color:var(--text-secondary);font-size:13px;line-height:1.55}.desktop-energy>strong{letter-spacing:-1.5px;margin:10px 0;font-size:44px;display:block}.desktop-energy>strong small{letter-spacing:0;font-size:17px;font-weight:500}.desktop-energy dl{margin:20px 0}.desktop-energy dl>div{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:12px 0;font-size:14px;display:flex}.desktop-energy dd{margin:0;font-weight:650}.desktop-plan-summary .desktop-cook-note{background:var(--lime);color:var(--on-lime);border-color:var(--lime)}.desktop-cook-note h3{margin:12px 0;font-size:22px;line-height:1.2}.desktop-plan-summary .desktop-cook-note p,html[data-theme=dark] .desktop-cook-note p{color:var(--on-lime)}.desktop-budget>strong{margin:10px 0 16px;font-size:26px;display:block}.desktop-budget button{background:var(--cobalt);width:100%;min-height:48px;color:var(--on-cobalt);border:0;border-radius:12px;justify-content:space-between;align-items:center;padding:12px;font-size:14px;display:flex}.app-shell .redesigned-today{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.redesigned-today .today-heading,.redesigned-today .today-days{grid-column:1/-1}.redesigned-today .today-overview{grid-area:3/2/5;position:sticky;top:110px}.redesigned-today .today-plan-heading{grid-area:3/1}.redesigned-today .today-recipe-list{grid-area:4/1;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.redesigned-today .today-cook-nudge{grid-column:2}.shopping-panel .shopping-budgets{max-width:720px}}.landing{background:var(--surface-page);max-width:none;color:var(--text-primary);margin:auto;padding:24px max(24px,50% - 620px)}.landing .landing-nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;padding-bottom:28px;display:flex}.landing .landing-brand{color:var(--text-primary);white-space:nowrap;justify-content:flex-start;gap:10px;margin:0;font-size:21px}.landing .landing-brand .brand-icon{background:var(--cobalt);color:var(--lime);width:44px;height:44px;box-shadow:none;border:0;border-radius:14px;place-items:center;display:grid}.landing .beta-badge{background:var(--lime);color:var(--on-lime);border-color:var(--lime);font-size:12px}.landing-nav nav{align-items:center;gap:24px;display:flex}.landing-nav nav a{min-height:44px;color:var(--text-secondary);align-items:center;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.landing .landing-login{border:1px solid var(--border);background:var(--surface-card);min-height:44px;color:var(--text-primary);font:inherit;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;display:inline-flex}.landing .theme-toggle{width:44px;height:44px;color:var(--text-primary);background:var(--surface-card);border:1px solid var(--border);border-radius:12px;flex:0 0 44px;position:static}.landing-opening{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:48px;padding:56px 0;display:grid}.landing .landing-hero,html[data-theme=dark] .landing .landing-hero{color:var(--text-primary);text-align:left;box-shadow:none;background:0 0;border:0;border-radius:0;padding:36px 0}.landing-kicker{background:var(--accent-soft);color:var(--accent-text);border-radius:8px;margin:0 0 26px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-block}.landing .landing-hero h1{color:var(--text-primary);letter-spacing:-.045em;margin:0 0 28px;font-size:clamp(44px,5vw,70px);font-weight:750;line-height:1.03}.landing .landing-hero h1 .accent{color:var(--accent-text)}.landing .landing-sub,html[data-theme=dark] .landing .landing-sub{color:var(--text-secondary);max-width:470px;margin:0 0 28px;font-size:18px;line-height:1.6}.landing .landing-cta{justify-content:flex-start;gap:10px;margin-bottom:4px}.landing .btn-landing-primary{background:var(--cobalt);color:var(--on-cobalt);border:1px solid var(--cobalt);min-height:48px;box-shadow:none;white-space:normal;border-radius:13px;padding:13px 18px;font-size:15px}.landing .btn-landing-primary:hover{background:var(--cobalt-hover)}.landing .btn-landing-secondary{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border);border-radius:13px;min-height:48px;padding:13px 18px;font-size:15px}.landing .landing-cta-link{min-height:44px;color:var(--accent-text);align-items:center;margin:4px 14px 4px 0;font-size:14px;display:inline-flex}.landing .landing-cta-hint,html[data-theme=dark] .landing .landing-cta-hint{color:var(--text-secondary);opacity:1;font-size:13px;line-height:1.5}.landing .landing-cta-hint strong{color:var(--text-primary)}.landing .landing-reassurance{border-top:1px solid var(--border);color:var(--text-secondary);flex-direction:column;gap:10px;margin:32px 0 0;padding:24px 0 0;font-size:14px;list-style:none;display:flex}.landing-reassurance li{align-items:center;gap:8px;display:flex}.landing-reassurance svg{color:var(--accent-text);flex:none}.landing :is(a,button):focus-visible{outline:3px solid var(--accent-text);outline-offset:4px}.landing .landing-example-anchor{min-width:0;margin:0;padding:0;scroll-margin-top:20px}.landing .landing-example-placeholder{width:100%;min-height:980px;margin:0}.landing .landing-example{border:1px solid var(--border);background:var(--surface-card);text-align:left;border-radius:24px;margin:0;padding:24px}.example-caption{color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:20px;font-size:12px;display:flex}.example-caption span:first-child{background:var(--lime);color:var(--on-lime);letter-spacing:.04em;border-radius:6px;padding:6px 9px;font-weight:700}.landing .landing-example h2{letter-spacing:-.7px;color:var(--text-primary);font-size:28px;line-height:1.15}.landing .landing-example-sub{color:var(--text-secondary);margin:10px 0 20px;font-size:14px;line-height:1.5}.landing .example-day{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.landing .example-meal{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;align-items:center;gap:16px;padding:14px 0}.landing .example-meal .recipe-art{object-fit:cover;border-radius:16px;flex:0 0 88px;width:88px;height:88px}.landing .example-meal h3{color:var(--text-primary);overflow-wrap:anywhere;margin:5px 0 6px;font-size:17px;line-height:1.3}.landing .example-meal-type{color:var(--text-muted);font-size:12px}.landing .example-macros,.landing .example-meta,.landing .example-macros span{color:var(--text-secondary);font-size:12px}.landing .example-macros strong{color:var(--accent-text);font-size:14px}.landing .example-totals{grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.landing .example-totals>div{background:var(--surface-subtle);border-radius:12px;padding:14px}.landing .example-totals>div:last-child{grid-column:1/-1}.landing .example-totals strong{color:var(--text-primary);letter-spacing:-.5px;font-size:24px}.landing .example-total-label,.landing .example-total-sub{color:var(--text-secondary);font-size:12px}.landing .example-shopping{color:var(--text-secondary);background:0 0;border:0;border-radius:0;margin-top:24px;padding:0}.landing .example-shopping ul{grid-template-columns:minmax(0,1fr);font-size:13px}.landing .example-shopping li{border-bottom:1px solid var(--border);padding:7px 0}.landing .example-shopping li span,.landing .example-shopping li em{color:var(--text-secondary);font-size:13px}.landing .example-shopping-label{min-height:44px;color:var(--accent-text);cursor:pointer;margin:0;padding:12px 0;font-size:14px;display:list-item}.landing .example-shopping-label:focus-visible{outline:3px solid var(--accent-text);outline-offset:4px}.landing .landing-example>.btn-landing-primary{width:100%;margin-top:24px}.landing-flow{background:var(--cobalt);color:var(--on-cobalt);border-radius:20px;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;padding:32px;display:grid}.landing-flow span{color:var(--lime);letter-spacing:.06em;font-size:12px;font-weight:700}.landing-flow p{color:var(--on-cobalt);margin:12px 0 0;font-size:18px;font-weight:550;line-height:1.4}.landing .landing-benefits{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;max-width:none;margin:64px 0;padding:0}.landing .landing-benefits article{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.landing .landing-benefits h3{color:var(--text-primary);margin-bottom:12px;font-size:20px;line-height:1.25}.landing .landing-benefits p{color:var(--text-secondary);font-size:14px;line-height:1.6}.landing .landing-emoji{color:var(--accent-text);background:var(--accent-soft);border-radius:14px;margin-bottom:20px;padding:12px;display:inline-flex}.landing .landing-steps{text-align:left;max-width:none;padding:32px 0 64px}.landing .landing-steps h2,.landing .landing-bottom h2{letter-spacing:-1px;color:var(--text-primary);font-size:36px}.landing .landing-steps-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.landing .landing-steps-grid article{background:var(--surface-card);border:1px solid var(--border);border-radius:18px;padding:24px}.landing .step-num{background:var(--lime);color:var(--on-lime);border:0;border-radius:12px;width:40px;height:40px}.landing .landing-steps-grid h3{color:var(--text-primary);font-size:18px}.landing .landing-steps-grid p{color:var(--text-secondary);font-size:14px;line-height:1.6}.landing .landing-beta{max-width:none;margin:0;padding:0}.landing .landing-beta-card{background:var(--surface-subtle);border:1px solid var(--border);border-radius:20px;padding:36px}.landing .landing-beta-card h2{color:var(--text-primary);font-size:28px}.landing .landing-beta-card p{color:var(--text-secondary);max-width:620px;margin-inline:auto;font-size:15px;line-height:1.65}.landing .landing-beta-icon{color:var(--accent-text)}.landing .btn-landing-outline{border:1px solid var(--border);color:var(--accent-text);background:var(--surface-card);border-radius:12px;min-height:48px;font-size:15px}.landing .landing-bottom{background:0 0;border:0;padding:64px 0 32px}.landing .landing-disclaimer,.landing .landing-footer{color:var(--text-secondary);font-size:13px;line-height:1.6}.landing .landing-footer{border-top:1px solid var(--border);gap:8px 24px;margin-top:36px;padding:24px 0 8px}.landing .landing-footer a{color:var(--accent-text);align-items:center;min-height:44px;display:inline-flex}@media (width<=1100px){.landing{padding-inline:24px}.landing-opening{gap:28px}.landing-nav nav{gap:12px}.landing-nav nav>a{display:none}.landing .landing-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=801px){.landing .landing-hero{position:sticky;top:24px}}@media (width<=800px){.landing-opening{grid-template-columns:minmax(0,1fr);padding:32px 0}.landing .landing-hero{padding:8px 0 12px}.landing .landing-sub{max-width:580px}.landing .landing-reassurance{margin-top:24px}.landing-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.landing .landing-steps-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=600px){.landing{padding:16px}.landing .landing-nav{flex-wrap:wrap;gap:8px;padding-bottom:16px}.landing .landing-brand{gap:8px;font-size:18px}.landing .landing-brand .brand-icon{border-radius:12px;width:40px;height:40px}.landing .landing-login{padding:10px}.landing-nav nav{gap:8px;margin-left:auto}.landing-kicker{margin-bottom:20px;font-size:12px}.landing .landing-hero h1{margin-bottom:20px;font-size:clamp(36px,10.5vw,56px)}.landing .landing-sub{font-size:16px}.landing .landing-cta{flex-direction:column}.landing .landing-example{border-radius:20px;padding:20px 16px}.landing .landing-example h2{font-size:26px}.landing .example-meal{gap:12px}.landing .example-meal .recipe-art{flex-basis:72px;width:72px;height:72px}.landing .example-meal h3{font-size:16px}.landing .example-totals{gap:8px}.landing .example-totals>div{padding:12px}.landing .example-totals strong{font-size:22px}.landing-flow{gap:24px 16px;padding:24px 20px}.landing-flow p{font-size:15px}.landing .landing-benefits{grid-template-columns:minmax(0,1fr);gap:28px;margin:40px 0}.landing .landing-benefits article{border-bottom:1px solid var(--border);padding-bottom:28px}.landing .landing-emoji{margin-bottom:12px}.landing .landing-steps{padding:0 0 40px}.landing .landing-steps h2,.landing .landing-bottom h2{font-size:30px}.landing .landing-beta-card{padding:24px 18px}.landing .landing-bottom{padding-top:40px}.landing .landing-pricing{padding:32px 0 0}.landing .pricing-card{padding:24px 18px}}.preferences-open .app-body{max-width:900px;margin-inline:auto;display:block}.preferences-open .profile-panel{max-height:none;box-shadow:none;background:0 0;border:0;display:block;position:static;overflow:visible}.preferences-open .profile-scroll{padding:0;overflow:visible}.preferences-open .panel-header{background:0 0;border:0;align-items:center;padding:0 0 20px}.preferences-open .panel-header h2{letter-spacing:-.8px;font-size:30px;line-height:1.15}.preferences-open .panel-header p{font-size:13px}.preferences-open .btn-reset{min-width:66px;color:var(--text-muted);font-size:12px}.prefs-section{border:1px solid var(--border);background:var(--surface-card);border-radius:18px;margin-bottom:12px;padding:16px}.prefs-section>summary{cursor:pointer;align-items:center;min-height:44px;font-size:17px;font-weight:650;list-style:none;display:flex}.prefs-section>summary:after{content:"+";margin-left:auto;font-size:22px;font-weight:400}.prefs-section[open]>summary:after{content:"−"}.prefs-section>h3{margin:6px 0 18px;font-size:17px}.prefs-section>summary::-webkit-details-marker{display:none}.prefs-section .profile-group-label{color:var(--text-secondary);text-transform:none;letter-spacing:0;margin:22px 0 12px;font-size:13px}.prefs-section .pfield-label,.prefs-section .field>span{color:var(--text-primary);font-size:14px;font-weight:600}.prefs-section .pfield-hint{color:var(--text-secondary);font-size:13px;line-height:1.6}.prefs-section .pchip{background:var(--surface-card);border:1px solid var(--border);color:var(--text-primary);border-radius:11px;min-height:44px;padding:10px 12px;font-size:13px}.prefs-section .pchip.active{background:var(--cobalt);color:var(--on-cobalt);border-color:var(--cobalt)}.prefs-section .pchip:disabled{opacity:.65}.prefs-section .opt-row{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border);border-radius:14px}.prefs-section .opt-row.active{background:var(--accent-soft);border-color:var(--accent-text);color:var(--accent-text)}.prefs-section .field input,.prefs-section input[type=number],.prefs-section input[type=text]{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border);border-radius:11px;min-height:48px;font-size:16px}.prefs-diet{border-top:1px solid var(--border);margin-top:16px;padding-top:8px}.prefs-diet>summary{min-height:44px;color:var(--accent-text);cursor:pointer;align-content:center;font-size:14px}.prefs-account-actions{flex-wrap:wrap;gap:8px;display:flex}.prefs-account-actions button{border:1px solid var(--border);background:var(--accent-soft);color:var(--accent-text);border-radius:12px;padding:12px 16px;font-size:14px}.prefs-account-actions p{color:var(--text-muted);flex-basis:100%;font-size:13px;line-height:1.5}.prefs-legal{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin-top:12px;display:grid}.prefs-legal a{min-height:44px;color:var(--accent-text);align-items:center;font-size:13px;display:flex}.prefs-section .preferences-extras{border:0;border-top:1px solid var(--border);border-radius:0;padding:0}.prefs-section .preferences-extras>summary{color:var(--accent-text);padding:12px 0;font-size:14px}.preferences-open .results-area{box-shadow:none;background:0 0;border:0;padding:0}.prefs-section .plan-hero{background:var(--accent-soft);border:1px solid var(--border);border-radius:18px;padding:16px}.prefs-section .plan-hero h2{color:var(--text-primary);font-size:22px}.prefs-section .plan-hero p{color:var(--text-secondary);font-size:14px}.prefs-section .eff-score-num{color:var(--accent-text)}.prefs-section .eff-score-num>span,.prefs-section .eff-score-label{color:var(--text-secondary);opacity:1}.prefs-section :is(.benefit-card,.plan-summary-card,.projection-card,.household-card,.nutrition-hero,.nutri-hero,.nutri-macro,.nutri-card){background:var(--surface-card);border-color:var(--border);border-radius:16px;padding:14px}.prefs-section :is(.benefit-value,.benefit-emoji,.plan-summary-card h3,.projection-card h3,.household-card h3){color:var(--accent-text)}.prefs-section :is(.nutri-macro-grams,.nutri-macro-name,.benefit-label){color:var(--text-primary)}.prefs-section .benefit-sub{color:var(--text-secondary);font-size:12px}.prefs-section .benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prefs-section .plan-config-grid{grid-template-columns:minmax(0,1fr)}.prefs-section .nutri-bmi{background:var(--surface-subtle);border-color:var(--border)}.prefs-section .projection-card{display:block}.prefs-section .projection-chart-wrap{margin:16px 0}.prefs-section .weight-log-input{flex-wrap:wrap;gap:8px;display:flex}.prefs-section .weight-log-input input{flex:100px;width:100%;min-width:0}.prefs-section .weight-log-input button{min-height:44px;padding:10px 12px;font-size:13px}.prefs-section :is(.manual-cals-row,.manual-cals-actions){flex-wrap:wrap}.prefs-section .btn-feedback-row{color:var(--accent-text);min-height:44px;font-size:14px}@media (width<=600px){.app-body.tab-profile{padding:16px}.preferences-open .profile-panel .panel-header{padding:0 0 20px}.prefs-section .form-grid{grid-template-columns:minmax(0,1fr)}.prefs-section .form-grid input{width:100%}}.profile-panel :is(.btn-target-customize,.meal-add-link,.meal-seg-btn,.recipe-pool-reset){min-height:44px}
