html{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:15px;overflow-x:hidden}body{font-synthesis:none;background:#faf8f4;min-width:320px;min-height:100dvh;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin:0}#root{min-height:100dvh}:root{--green-900:#0f2d1a;--green-800:#1a4a2e;--green-700:#215c39;--green-600:#2d7a4f;--green-100:#e8f5ee;--green-50:#f0f9f4;--orange:#e8763a;--orange-lt:#fdf0e8;--cream:#faf8f4;--white:#fff;--ink:#1a1a18;--ink-2:#3d3d38;--muted:#7a7a72;--line:#e8e6e0;--line-2:#f0ede6;--radius:10px;--radius-sm:6px;--shadow:0 2px 12px #0f2d1a14;--shadow-md:0 4px 24px #0f2d1a1f;--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-2xs:.68rem;--text-xs:.74rem;--text-sm:.8rem;--text-md:.88rem;--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-lg:12px;--radius-xl:18px;--radius-pill:999px;--badge-green-bg:#e8f5ee;--badge-green-fg:#215c39;--badge-green-bd:#c8e6c9;--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-orange-bg:#fdf0e8;--badge-orange-fg:#a84d15;--badge-orange-bd:#f5d9c5;--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;--font:"Inter", system-ui, -apple-system, sans-serif}*,:before,:after{box-sizing:border-box}html{font-size:93.75%}body{font-family:var(--font);background:var(--cream);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(--green-700);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{background:var(--green-800);color:var(--white);padding:var(--space-7) 28px;justify-content:space-between;align-items:center;gap:var(--space-8);z-index:100;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #0000002e}.header-brand{align-items:center;gap:var(--space-7);display:flex}.brand-icon{font-size:28px;line-height:1}.app-header h1{font-size:var(--text-2xl);color:var(--white);margin:0}.app-header p{font-size:var(--text-sm);color:#ffffffa6;margin:0}.btn-export{background:var(--orange);color:var(--white);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:#d96a2e}.export-blocked{border:1px solid var(--line);border-left:4px solid var(--orange);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(--orange);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:#d96a2e}.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{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-height:calc(100dvh - 90px);padding:var(--space-10);flex-direction:column;gap:0;display:flex;position:sticky;top:72px;overflow-y:auto}.profile-panel::-webkit-scrollbar{width:5px}.profile-panel::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius-pill)}.panel-header{justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-9);padding-bottom:var(--space-8);border-bottom:1px solid var(--line);display:flex}.panel-header h2{font-size:var(--text-xl);margin:0}.panel-header p{font-size:var(--text-sm);color:var(--muted);margin:var(--space-2) 0 0}.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(--green-600);color:var(--green-700)}.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(--green-600);color:var(--green-700)}.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{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);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{border-color:var(--green-600);outline:none;box-shadow:0 0 0 3px #2d7a4f1f}.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(--green-700);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;min-height:600px;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(--green-800);border-bottom-color:var(--green-700)}.tab-content{padding:var(--space-12);overflow:auto}.tab-panel{gap:var(--space-10);flex-direction:column;display:flex}.targets-hero{background:var(--green-50);border:1px solid var(--green-100);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(--green-800);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(--green-800);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(--green-50);border:1px solid var(--green-100);border-radius:var(--radius-sm);padding:var(--space-8)}.insight-card.disclaimer{background:var(--orange-lt);border-color:#f5d5bf}.insight-card h3{font-size:var(--text-sm);margin-bottom:var(--space-4);color:var(--green-800)}.insight-card.disclaimer h3{color:#b85a1e}.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);border-radius:var(--radius);background:var(--white);transition:box-shadow .15s;overflow:hidden}.day-card:hover{box-shadow:var(--shadow-md)}.day-card.freezer{border-color:#bfdbfe}.day-header{background:var(--green-50);padding:var(--space-5) var(--space-7);gap:var(--space-1);border-bottom:1px solid var(--green-100);flex-direction:column;display:flex}.day-card.freezer .day-header{background:#eff6ff;border-color:#bfdbfe}.day-name{font-size:var(--text-md);color:var(--green-800);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-green-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-top{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.meal-icon{color:var(--green-600);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{font-size:var(--text-sm);color:var(--ink);margin-bottom:var(--space-3);line-height:1.35;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-green-bg);color:var(--badge-green-fg);border-color:var(--badge-green-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}.kcal-badge{background:var(--green-100);color:var(--green-800);padding:1px var(--space-4);border-radius:var(--radius-pill);font-weight:700;font-size:var(--text-xs)}.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(--green-700)}.tag-difficulty .diff-off{color:var(--line)}.day-footer{padding:var(--space-6) var(--space-7);background:var(--green-50);border-top:1px solid var(--green-100);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(--green-800);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);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.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);cursor:pointer;flex:1;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(--green-700);border-color:var(--green-700)}.shopping-row:focus-visible{outline:2px solid var(--green-600);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);text-decoration:line-through}.shopping-row.checked{background:var(--line-2)}.ingredient-qty{font-size:var(--text-sm);color:var(--green-800);white-space:nowrap}.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(--green-800)}.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(--green-700);font-weight:600}@media (width<=900px){.app-body{padding:var(--space-8);grid-template-columns:1fr}.profile-panel{max-height:none;position:static}.metric-grid{grid-template-columns:repeat(2,1fr)}.insight-grid{grid-template-columns:1fr}.week-grid{grid-template-columns:1fr 1fr}}@media (width<=600px){.app-header{padding:var(--space-6) var(--space-8)}.tab{padding:var(--space-5) var(--space-6);font-size:var(--text-sm)}.tab-content{padding:var(--space-8)}.targets-hero{flex-direction:column;align-items:flex-start}.metric-grid{grid-template-columns:1fr 1fr}.week-grid,.source-list,.shopping-items{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(--green-700);-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(--green-600)}.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(--green-50);color:var(--green-700);border:1px solid var(--green-100);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(--green-600);font-weight:700}.menu-toolbar{align-items:center;gap:var(--space-6);margin-bottom:var(--space-7);display:flex}.btn-regenerate{background:var(--green-700);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;border:none;font-weight:600;transition:background .15s,transform .1s}.btn-regenerate:hover{background:var(--green-600)}.btn-regenerate:active{transform:scale(.97)}.menu-toolbar-hint{font-size:var(--text-sm);color:var(--muted)}.regens-left{font-size:var(--text-xs);color:var(--green-700);background:var(--green-50);border:1px solid var(--green-100);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5);white-space:nowrap;font-weight:600}.regens-left.low{color:#b35419;background:var(--orange-lt);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-green-bg);color:var(--badge-green-fg);border-color:var(--badge-green-bd)}.tag-storage-fresh{background:var(--badge-orange-bg);color:var(--badge-orange-fg);border-color:var(--badge-orange-bd)}.plan-hero{justify-content:space-between;align-items:center;gap:var(--space-12);background:linear-gradient(135deg, var(--green-800), var(--green-700));color:var(--white);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(--orange);border-radius:var(--radius-pill);height:100%}.eff-checks{gap:var(--space-4) var(--space-10);font-size:var(--text-sm);color:var(--green-700);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);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-9) var(--space-7);text-align:center;gap:var(--space-2);flex-direction:column;display:flex}.benefit-value{font-size:var(--text-4xl);color:var(--green-800);font-weight:800}.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(--orange);color:var(--white)}.btn-primary:hover{background:#d4652c}.btn-secondary{background:var(--green-100);color:var(--green-800)}.btn-secondary:hover{background:#d8eddf}.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(--green-700)}.btn-generate{width:100%;margin-top:var(--space-7);background:var(--orange);color:var(--white);border-radius:var(--radius-sm);padding:var(--space-7);font-family:var(--font);font-size:var(--text-lg);cursor:pointer;border:none;font-weight:700;transition:background .15s,transform .1s}.btn-generate:hover{background:#d4652c}.btn-generate:active{transform:scale(.98)}.generate-hint{text-align:center;font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-3)}.advanced-settings{margin-top:var(--space-3)}.advanced-settings>summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--text-md);color:var(--muted);padding:var(--space-5) 0;border-top:1px solid var(--line);font-weight:600}.advanced-settings>summary:hover{color:var(--green-700)}.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(--green-800);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(--green-600);border-radius:var(--radius-pill);height:100%;transition:width .25s}.shopping-progress-label{font-size:var(--text-sm);color:var(--green-700);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(--green-800)}.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(--green-600);border-color:#0000}.projection-eta{margin-top:var(--space-5);font-size:var(--text-md);color:var(--green-700)}.projection-warning{margin-top:var(--space-5);font-size:var(--text-sm);color:#b35419}.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(--green-600);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.proj-target-line{stroke:var(--orange);stroke-width:1.5px;stroke-dasharray:5 4}.proj-dot-start{fill:var(--green-800)}.proj-dot-end{fill:var(--orange)}.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}.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;padding:var(--space-10);background:#0f2d1a8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-md);width:100%;max-width:380px;padding:28px;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-close{font-size:var(--text-5xl);color:var(--muted);cursor:pointer;background:0 0;border:none;line-height:1;position:absolute;top:10px;right:14px}.auth-close:hover{color:var(--ink)}.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(--green-600);border-color:#0000}.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(--green-700);background:var(--green-50);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5)}.auth-forgot{font-size:var(--text-xs);color:var(--green-700);cursor:pointer;background:0 0;border:none;align-self:flex-end;margin-top:-4px;padding:0;text-decoration:underline}.auth-forgot:hover{color:var(--green-600)}.btn-auth-submit{background:var(--green-700);color:var(--white);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(--green-600)}.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(--green-700);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-badge-trial{background:#ffffff38}.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(--green-700);color:var(--white);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(--green-600)}.commercial-notice{justify-content:space-between;align-items:center;gap:var(--space-6);background:var(--green-50);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(--green-800);border:1px solid #d4e6da;display:flex}.commercial-notice a{color:var(--green-700);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)}.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(--orange);display:inline-flex}.error-boundary-card h1{font-size:var(--text-3xl);margin:var(--space-6) 0 var(--space-4);color:var(--green-800,#1a4a2e)}.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(--green-700,#1a4a2e);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(--green-600,#226039)}.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(--green-400)}.plan-option-selected{border-color:var(--green-600);background:var(--green-50);box-shadow:0 0 0 3px #1a4a2e14}.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(--green-700);color:var(--white);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(--green-800)}.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(--green-700);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(--green-50);color:var(--green-700);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(--green-600);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(--green-700);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(--green-700);font-weight:600}@media (width<=600px){.plan-badge{display:none}.plan-notice,.commercial-notice{margin:var(--space-4) var(--space-5) 0;flex-wrap:wrap}}.proj-text{fill:var(--muted);font-size:11px;font-family:var(--font)}.proj-text-strong{fill:var(--green-800);font-size:13px;font-weight:800}.proj-area{fill:var(--green-600);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(--orange);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(--green-700);background:var(--green-50);border:1px solid var(--green-100);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(--green-50);border:1px solid var(--green-100);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(--green-800)}.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(--green-700)}.ing-chip-batch{background:var(--green-100);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(--green-700);border-color:var(--green-700);color:var(--white)}.qty-btn:hover:not(.active){border-color:var(--green-600);color:var(--green-700)}@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(--green-50);border:1px solid var(--green-100);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(--green-800)}.session-meta{font-size:var(--text-xs);color:var(--muted);font-weight:600}.landing{background:var(--cream);min-height:100dvh}.landing-hero{background:linear-gradient(155deg, var(--green-900) 0%, var(--green-700) 100%);color:var(--white);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(--white);font-size:clamp(1.8rem,4.5vw,2.9rem);line-height:1.2}.landing-hero .accent{color:var(--orange)}.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(--orange);color:var(--white);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 #e8763a66}.btn-landing-primary:hover{background:#d4652c}.btn-landing-primary:active{transform:scale(.97)}.btn-landing-secondary{color:var(--white);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(--white)}.landing-cta-hint{font-size:var(--text-sm);color:#fff9}.landing-cta-hint strong{color:#ffffffe6}.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(--green-800)}.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(--green-100);width:34px;height:34px;color:var(--green-800);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(--green-600);box-shadow:0 6px 28px #1a4a2e1f}.pricing-badge{background:var(--green-700);color:var(--white);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(--green-800)}.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(--green-600);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(--green-700);border:1.5px solid var(--green-600);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(--green-50)}.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}}:root{--font-display:"Fraunces", Georgia, serif;--shadow-soft:0 6px 24px #0f2d1a12, 0 1px 3px #0f2d1a0d;--shadow-lift:0 12px 32px #0f2d1a1f, 0 2px 6px #0f2d1a0f}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 #0f2d1a40}@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 #0f2d1a1a}.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(--green-50);color:var(--green-800)}.tab.active:before{content:"";background:var(--green-600);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-shell{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.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 #0f2d1a1f;background:var(--white)!important;color:var(--green-800)!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(--green-800);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(--green-800);background:#f0fdf4}.benefit-card{border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);border:none}.benefit-emoji{font-size:var(--text-4xl);margin-bottom:var(--space-3);display:block}.benefit-value{font-family:var(--font-display);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:linear-gradient(135deg, var(--green-800), var(--green-700));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(--orange);color:var(--white);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 #0f2d1a1f)}.recipe-photo{object-fit:cover;background:var(--line-2);border-radius:50%;display:block}.profile-panel{border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);border:none}.btn-primary,.btn-secondary,.btn-generate,.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(--green-700);border-color:var(--green-600);background:var(--green-50)}.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(--green-700);color:var(--white);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(--green-600)}.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(--green-50);border:1px solid var(--green-100);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{color:var(--green-700)}.weight-entry .delta-up{color:#b35419}.weight-total-delta{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--green-700);font-weight:600}.weight-log-hint{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--muted)}.shopping-row-right{align-items:center;gap:var(--space-4);display:flex}.btn-have{border:1px solid var(--line);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;white-space:nowrap;background:0 0;font-weight:600}.btn-have:hover{color:var(--green-700);border-color:var(--green-600)}.shopping-row.have .ingredient-name,.shopping-row.have .ingredient-qty{opacity:.35;text-decoration:line-through}.shopping-row.have{cursor:default}.shopping-row.have .btn-have{color:var(--green-700);border-color:var(--green-100);background:var(--green-50)}.tag-seasonal{background:var(--badge-green-bg);color:var(--badge-green-fg);border-color:var(--badge-green-bd);font-weight:600}.app-header{background:linear-gradient(120deg, var(--green-900), var(--green-800) 72%);padding-top:var(--space-6);padding-bottom:var(--space-6);border-bottom:2px solid #e8763a80}.brand-icon{background:var(--orange);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 #e8763a66}.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(--green-800);align-items:center;gap:var(--space-4);font-weight:700;display:flex}.form-section h3:before{content:"";border-radius:var(--radius-pill);background:var(--orange);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(--green-600);box-shadow:0 0 0 3px #2d7a4f24}.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 #e8763a29}.tone-orange .benefit-emoji{color:#c2541b;background:#f7d3bd}.tone-orange .benefit-value{color:#c2541b}.benefit-card.tone-green{background:var(--white)}.tone-green .benefit-emoji{background:var(--green-50);color:var(--green-700)}.tone-green .benefit-value{color:var(--green-800)}.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(--green-700);text-decoration:none}.landing-footer a:hover{text-decoration:underline}.app-disclaimer{max-width:760px;margin:var(--space-2) auto var(--space-12);padding:var(--space-6) var(--space-10) 0;border-top:1px solid var(--line);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(--green-600);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(--green-50);border-color:var(--green-100)}.undo-notice button{background:var(--green-700);color:var(--white);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(--green-600)}.saved-flash{color:var(--green-600);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)}}.wizard-screen{min-height:100dvh;padding:var(--space-12) var(--space-8) calc(24px + env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex}.wizard-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-8);flex-direction:column;display:flex}.wizard-top{justify-content:space-between;align-items:center;display:flex}.wizard-brand{align-items:center;gap:var(--space-4);color:var(--green-800);font-weight:700;display:inline-flex}.wizard-skip{color:var(--muted);font-family:var(--font);font-size:var(--text-sm);cursor:pointer;padding:var(--space-3);background:0 0;border:none;text-decoration:underline}.wizard-progress{gap:var(--space-3);display:flex}.wiz-dot{border-radius:var(--radius-pill);background:var(--line);flex:1;height:5px;transition:background .2s}.wiz-dot.on{background:var(--green-600)}.wizard-step{gap:var(--space-8);flex-direction:column;min-height:280px;display:flex}.wizard-step h2{font-size:var(--text-3xl)}.wizard-sub{color:var(--muted);font-size:var(--text-md);margin-top:-8px}.wiz-defaults-hint{color:var(--green-700);font-size:var(--text-xs);background:var(--green-50);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);margin-top:var(--space-4);line-height:1.5}.wiz-group{gap:var(--space-4);flex-direction:column;display:flex}.wiz-label{font-weight:600;font-size:var(--text-sm);color:var(--ink-2)}.wiz-choices{gap:var(--space-4);flex-wrap:wrap;display:flex}.wiz-choices-col{flex-direction:column}.wiz-choice{min-height:46px;padding:var(--space-5) var(--space-8);border:1.5px solid var(--line);border-radius:var(--radius-lg);background:var(--white);font-family:var(--font);font-size:var(--text-md);color:var(--ink-2);cursor:pointer;flex:auto;font-weight:600;transition:border-color .15s,background .15s,color .15s}.wiz-choice:hover{border-color:var(--green-600)}.wiz-choice.active{border-color:var(--green-700);background:var(--green-50);color:var(--green-800)}.wiz-hint{font-size:var(--text-xs);color:var(--muted)}.wiz-nums{gap:var(--space-5);display:flex}.wiz-num{gap:var(--space-3);flex-direction:column;flex:1;display:flex}.wiz-num>span{font-weight:600;font-size:var(--text-sm);color:var(--ink-2)}.wiz-num-input{align-items:center;gap:var(--space-2);border:1.5px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-5);display:flex}.wiz-num-input input{width:100%;font-family:var(--font);font-size:var(--text-xl);color:var(--ink);padding:var(--space-4) 0;background:0 0;border:none;outline:none;font-weight:600}.wiz-num-suffix{font-size:var(--text-sm);color:var(--muted)}.wizard-actions{justify-content:space-between;align-items:center;gap:var(--space-6);margin-top:var(--space-2);display:flex}.wizard-next,.wizard-back{align-items:center;gap:var(--space-4);font-family:var(--font);cursor:pointer;border-radius:var(--radius-lg);min-height:46px;padding:var(--space-5) var(--space-10);font-weight:600;display:inline-flex}.wizard-next{background:var(--green-700);color:var(--white);border:none}.wizard-next:hover{background:var(--green-600)}.wizard-back{border:1.5px solid var(--line);color:var(--ink-2);background:0 0}.wizard-back:hover{border-color:var(--green-600)}.wizard-done{text-align:center;align-items:center}.wizard-check{background:var(--green-50);width:64px;height:64px;color:var(--green-700);margin:var(--space-3) auto 0;border-radius:50%;justify-content:center;align-items:center;display:flex}.wizard-recap{gap:var(--space-4);flex-direction:column;width:100%;list-style:none;display:flex}.wizard-recap li{background:var(--green-50);border:1px solid var(--green-100);border-radius:var(--radius);padding:var(--space-5) var(--space-7);font-size:var(--text-md);color:var(--ink-2)}.freedays-note{background:var(--green-50);border:1px solid var(--green-100);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(--orange);box-shadow:0 0 0 2px var(--orange), var(--shadow-md)}.day-today-pill{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;background:var(--orange);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 #e8763a73}.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(--green-700);border-color:var(--green-600);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(--green-700)}.ring-carbs{stroke:#f59e0b}.ring-fat{stroke:var(--orange)}.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%}.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(--green-600);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:#0f2d1a80}.auth-modal{border-radius:var(--radius-xl);padding:var(--space-16);animation:modal-in .26s var(--ease,ease);box-shadow:0 18px 50px #0f2d1a47}.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]{--cream:#10140f;--white:#1a201a;--ink:#eef1ec;--ink-2:#c2c8bd;--muted:#8b938a;--line:#2b332b;--line-2:#232a23;--green-50:#16241b;--green-100:#1e3325;--green-700:#5fb985;--green-800:#7cc89e;--orange-lt:#2a1c12;--shadow:0 2px 12px #00000073;--shadow-md:0 6px 24px #0000008c;--shadow-soft:0 6px 24px #0006, 0 1px 3px #0000004d;--shadow-lift:0 12px 32px #00000080, 0 2px 6px #00000059;--badge-green-bg:#16301f;--badge-green-fg:#86d6a6;--badge-green-bd:#244a32;--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-orange-bg:#2e1d12;--badge-orange-fg:#e89a6a;--badge-orange-bd:#4a311f;--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{background:linear-gradient(120deg,#0c2114,#163d26 72%)}html[data-theme=dark] .day-header{background:linear-gradient(135deg,#163d26,#1d5236)}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{color:#fff;background:#1d5236}html[data-theme=dark] .btn-regenerate:hover,html[data-theme=dark] .btn-auth-submit:hover:not(:disabled){background:#246a44}html[data-theme=dark] .btn-secondary{color:#9ad9b6;background:#1e3325}html[data-theme=dark] .btn-secondary:hover{background:#244a32}html[data-theme=dark] .tone-orange{background:#2a1c12}html[data-theme=dark] .tone-green{background:#16271c}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{color:#e89a6a}html[data-theme=dark] .tone-green .benefit-value{color:#86d6a6}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{color:#e89a6a;background:#3a2515}html[data-theme=dark] .tone-green .benefit-emoji{color:#86d6a6;background:#16301f}html[data-theme=dark] .diet-notice{color:#e0a36a;background:#2a1c12;border-color:#4a311f}html[data-theme=dark] .plan-notice{background:#241f10;border-color:#463c1a}html[data-theme=dark] .household-warning{background:#2a1c12}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{color:#86d6a6;background:#16271c}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-route-edit{font-size:var(--text-sm);color:var(--green-700);background:var(--green-50);border:1px solid var(--green-100);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-route-edit:hover{background:var(--green-100);border-color:var(--green-600)}.btn-route-edit.active{background:var(--green-100);border-color:var(--green-600);color:var(--green-800)}.share-note{font-size:var(--text-sm);color:var(--green-700);background:var(--green-50);border:1px solid var(--green-100);border-radius:var(--radius);padding:var(--space-4) var(--space-8);margin:0 0 var(--space-6)}.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(--green-700);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(--green-600);background:var(--green-50)}.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(--green-600);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(--green-700);background:var(--green-50);border:1px solid var(--green-100);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(--green-100);border-color:var(--green-600)}.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(--green-600);background:var(--green-50)}.plan-history-meta{font-size:var(--text-xs);color:var(--muted);margin-top:2px}.weight-streak{font-size:var(--text-xs);color:var(--orange);background:var(--orange-lt);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(--green-600);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.spark-dot{fill:var(--orange)}.achievements-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-9) var(--space-10);margin-bottom:var(--space-12);background:var(--bg,#fff);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);opacity:.62;flex-direction:column;align-items:flex-start;display:flex}.achievement.earned{opacity:1;border-color:var(--green-100);background:var(--green-50)}.achievement .ach-icon{color:var(--muted);margin-bottom:var(--space-3)}.achievement.earned .ach-icon{color:var(--green-600)}.ach-label{font-weight:700;font-size:var(--text-md);color:var(--ink)}.ach-hint{font-size:var(--text-2xs);color:var(--muted);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(--green-600);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);padding:2px var(--space-5);cursor:pointer;border-radius:999px}.collection-chip.in{background:var(--green-50);color:var(--green-700);border-color:var(--green-100)}.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(--green-50);border-color:var(--green-100);color:var(--green-800)}.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(--green-700);background:var(--green-50);border:1px solid var(--green-100);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(--green-100);border-color:var(--green-600)}.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(--orange)}.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(--green-700);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-orange-bg);color:var(--badge-orange-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(--green-700);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(--green-600)}.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:#0f2d1a8c;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(--green-600);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(--green-50);border:1px solid var(--green-100);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(--orange-lt);border-color:var(--orange)}.cookmode-time{font-variant-numeric:tabular-nums;color:var(--green-800);font-size:2rem;font-weight:800}.cookmode-timer.done .cookmode-time{color:var(--orange)}.cookmode-timer-actions{gap:var(--space-5);display:flex}.cookmode-timer-actions button{border:1px solid var(--green-600);background:var(--bg,#fff);width:46px;height:46px;color:var(--green-700);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.cookmode-timer-actions button:hover{background:var(--green-50)}.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(--green-700)!important;color:#fff!important;border-color:var(--green-700)!important}.cookmode-next:hover,.cookmode-finish:hover{background:var(--green-800)!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(--green-700);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(--green-100);color:var(--green-800);padding:var(--space-3) var(--space-7);font-size:var(--text-sm);border-radius:999px;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(--green-600);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(--green-700);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(--green-100);width:70%;height:14px}.pv-pdf-line.sm{width:40%}.paywall-compare{margin:var(--space-5) auto 0;color:var(--green-700);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(--green-600);background:var(--green-50);border-width:2px}.pricing-ribbon{background:var(--green-700);color:#fff;font-size:var(--text-2xs);padding:2px var(--space-6);white-space:nowrap;border-radius:999px;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(--green-600)}.pricing-no{color:var(--line)}.pricing-text{font-size:var(--text-xs);color:var(--ink-2);font-weight:600}.trial-notice{background:var(--orange-lt);border-left:4px solid var(--orange)}.trial-explain-notice{background:var(--green-50);border:1px solid var(--green-100);border-left:4px solid var(--green-600);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(--green-100);background:var(--green-50);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(--green-800);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(--green-800);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(--green-50);color:var(--green-800);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(--green-700);font-weight:600}.sources-list-title{font-size:var(--text-lg);margin:var(--space-12) 0 var(--space-7)}.app-header{padding-top:max(var(--space-6), env(safe-area-inset-top));padding-left:max(28px, env(safe-area-inset-left));padding-right:max(28px, env(safe-area-inset-right))}@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(--green-50);border:1px solid var(--green-100);border-top:1px solid var(--green-100);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(--green-600);box-shadow:0 0 0 3px #2d7a4f24}.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(--green-600);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}.shopping-items{grid-template-columns:1fr}.btn-clear-checks,.btn-share-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(--green-50);border:1px solid var(--green-100);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(--green-800);align-items:center;display:inline-flex}.activation-count{margin-left:var(--space-3);font-size:var(--text-2xs);color:var(--green-700);background:var(--white);border:1px solid var(--green-100);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(--green-100);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(--green-700);border-color:var(--green-700);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(--green-50);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;position:fixed;bottom:20px;left:50%;transform:translate(-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(--green-700);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(--green-600)}.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(--green-50);border:1px solid var(--green-100);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:wrap}.header-brand{flex:auto;min-width:0}.header-actions{justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap;min-width:0}.header-actions .btn-export,.header-actions .btn-account-open{padding:var(--space-3) var(--space-4);font-size:var(--text-xs)}.btn-export .btn-label{display:none}.btn-export{gap:0}.meal-tags [class*=tag-storage-],.meal-tags .tag-reuse{display:none}.pwa-install{bottom:calc(84px + env(safe-area-inset-bottom));width:calc(100vw - 20px)}}.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(--green-600);color:var(--green-700)}.menu-day-chip.active{background:var(--green-700);color:#fff;border-color:var(--green-700)}.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}.profile-panel{display:none}.app-body.tab-profile .profile-panel{display:block}.app-body.tab-profile .tab-content{display:none}}.toolbar-more-btn{display:none}.toolbar-more{display:contents}@media (width<=600px){.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-card{background:var(--white);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:var(--space-7);margin-bottom:var(--space-6)}.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(--green-700);flex-shrink:0}.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(--green-600)}.pchip.active{background:var(--green-700);color:#fff;border-color:var(--green-700)}.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(--green-700)}.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}
