:root{--forest:#153d2b;--forest2:#0f3021;--leaf:#397257;--sage:#e7efe7;--sun:#e5b92f;--sun-soft:#fff2b8;--cream:#f7f5ee;--paper:#fffdfa;--ink:#232823;--muted:#697069;--line:#dfe5dd;--danger:#a84f42;--shadow:0 12px 36px rgba(25,54,38,.08);--shadow-lg:0 24px 70px rgba(19,50,33,.12);--radius:18px}*{box-sizing:border-box}html{background:var(--cream)}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(180deg,#f8f7f1,#f1f5ef);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.app-rail{position:sticky;top:0;height:100vh;padding:26px 18px;background:var(--forest2);color:white;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 26px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--sun-soft),var(--sun));font-size:1.35rem;box-shadow:0 8px 20px #0002}.brand strong{display:block;font-size:1.05rem}.brand small{display:block;color:#b8c9bf;margin-top:2px}.rail-label{font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;color:#8eaa99;font-weight:800;padding:0 10px 8px}.rail-nav{display:grid;gap:4px}.rail-nav button{border:0;background:transparent;color:#c9d8cf;text-align:left;padding:11px 12px;border-radius:11px;font-weight:700;display:flex;align-items:center;gap:10px}.rail-nav button:hover,.rail-nav button.active{background:#ffffff12;color:#fff}.rail-nav button.active{box-shadow:inset 3px 0 var(--sun)}.rail-footer{margin-top:auto;display:grid;gap:8px;padding-top:20px}.rail-footer a{color:#c5d6cc;text-decoration:none;font-size:.78rem;padding:8px 10px;border-radius:9px}.rail-footer a:hover{background:#ffffff0d}.workspace{min-width:0}.topbar{height:72px;padding:0 clamp(18px,3vw,42px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(248,247,241,.9);backdrop-filter:blur(14px);position:sticky;top:0;z-index:15}.topbar-title small{display:block;color:var(--muted);font-size:.7rem;font-weight:700}.topbar-title strong{color:var(--forest);font-size:1.05rem}.top-actions{display:flex;align-items:center;gap:8px}.content{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:34px 0 70px}.view-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.view-head h1{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.055em;color:var(--forest2);margin:3px 0 7px;line-height:1}.view-head p{color:var(--muted);margin:0;max-width:650px}.eyebrow,.kicker{font-size:.66rem;font-weight:900;letter-spacing:.14em;color:var(--leaf);text-transform:uppercase}.eyebrow span{color:#c89308}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 3px 14px rgba(25,54,38,.035)}.panel h2,.head h2{color:var(--forest2);margin:3px 0 8px;letter-spacing:-.025em}.head{display:flex;align-items:center;justify-content:space-between;gap:14px}.hint{font-size:.78rem;color:var(--muted);line-height:1.5}.today-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:16px}.today-primary{display:grid;gap:16px}.today-side{display:grid;gap:16px;align-content:start}.hero{margin:0;padding:28px;border-radius:24px;background:linear-gradient(135deg,var(--forest2),#285b40);color:white;border:0;box-shadow:var(--shadow-lg);display:block;position:relative;overflow:hidden}.hero:after{content:"🌻";position:absolute;right:24px;top:15px;font-size:7rem;opacity:.09;transform:rotate(12deg)}.hero h2{font-size:clamp(1.8rem,4vw,3.1rem);color:white;margin:8px 0;letter-spacing:-.045em;max-width:720px}.hero p{color:#d5e2da;max-width:650px}.filters,.search{display:flex;gap:8px;flex-wrap:wrap}.filters{margin-top:20px}.filters select,.search select,.search input,input,select,textarea{border:1px solid var(--line);background:white;border-radius:11px;padding:10px 12px;color:var(--ink);outline:none}.filters select:focus,.search input:focus,input:focus,select:focus,textarea:focus{border-color:#7ea78e;box-shadow:0 0 0 3px #39725718}.filters button,.primary,.head>button,#shopWeek,#saveMeal{background:var(--sun);border:0;color:#332a10;border-radius:11px;padding:10px 14px;font-weight:850}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0}.stats div{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:15px 16px}.stats strong{display:block;color:var(--forest2);font-size:1.55rem;letter-spacing:-.04em}.stats span{font-size:.72rem;color:var(--muted)}.section-stack{display:grid;gap:16px}.layout,.ultimate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.span2,.ultimate-grid .wide{grid-column:span 2}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{border:1px solid var(--line);border-radius:14px;padding:12px;min-height:140px;background:#fbfcf9}.day.today{background:#fff8d9;border-color:#e9cf70}.day small{font-weight:900;color:var(--leaf)}.day strong{display:block;margin:12px 0 5px;color:var(--forest2);font-size:.82rem}.day span{font-size:.67rem;color:var(--muted);line-height:1.35;display:block}.day button{padding:5px 7px;margin-top:8px;font-size:.64rem;border:1px solid var(--line);border-radius:8px;background:white;color:var(--forest);font-weight:750}.library,.pantry-list,.profile-list,.recipe-list,.history-list{display:grid;gap:9px;max-height:600px;overflow:auto;padding-right:3px}.meal,.pantry-item,.profile-card,.recipe-card,.history-row{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff}.meal-top{display:flex;justify-content:space-between;gap:8px}.meal strong,.profile-card strong,.recipe-card strong{color:var(--forest2)}.tags,.preference-tags,.toppings{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0}.tag,.preference-tags span,.topping{font-size:.66rem;padding:4px 7px;border-radius:999px;background:var(--sage);color:var(--forest)}.meal p,.profile-card p,.recipe-card p{font-size:.76rem;color:var(--muted);line-height:1.45}.actions,.smart-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.actions button,.smart-actions button,.pantry-item button,.profile-card button,.recipe-card button{font-size:.68rem;padding:6px 8px;border:1px solid var(--line);background:#f8faf7;color:var(--forest);border-radius:8px;font-weight:750}.shopping{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.shop-group{background:#f7faf5;border:1px solid var(--line);border-radius:13px;padding:11px}.shop-group strong{color:var(--forest2);font-size:.76rem}.shop-group div{font-size:.7rem;color:var(--muted);margin-top:5px}.mini-form,.profile-form,.history-form,.quick-grocery{display:grid;gap:8px;margin:12px 0}.mini-form{grid-template-columns:1fr .65fr auto}.profile-form textarea{min-height:72px;resize:vertical}.history-form{grid-template-columns:1.3fr .8fr .45fr 1.5fr auto}.quick-grocery{grid-template-columns:2fr .6fr auto}.smart-box{padding:18px;border-radius:16px;background:linear-gradient(135deg,#eef5eb,#fff7d7);margin-top:12px;border:1px solid #dce6d8}.smart-box h3{margin:0 0 5px;color:var(--forest2);font-size:1.3rem}.match{font-size:.69rem;font-weight:900;color:var(--leaf)}.health-note{font-size:.76rem;color:var(--muted);line-height:1.5}.grocery-brain{display:grid;gap:10px}.grocery-brain-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.grocery-brain-row button{white-space:nowrap}.topping{display:flex;align-items:center}.topping button{padding:0;border:0;background:none}.search{margin:10px 0}.search input{flex:1}.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.food-toast{position:fixed;right:24px;bottom:24px;background:var(--forest2);color:white;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow-lg);z-index:9999;opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s}.food-toast.show{opacity:1;transform:none}.ghost{opacity:.72}dialog{border:0;border-radius:20px;padding:0;box-shadow:0 30px 80px #0003;width:min(560px,calc(100% - 20px))}dialog::backdrop{background:#153d2b66;backdrop-filter:blur(4px)}dialog form{display:grid;gap:9px;padding:22px}dialog textarea{min-height:100px}.mobile-nav{display:none}[hidden]{display:none!important}@media(max-width:1000px){.app-shell{grid-template-columns:82px minmax(0,1fr)}.brand{padding:0 0 24px;justify-content:center}.brand-copy,.rail-label,.rail-nav button span,.rail-footer{display:none}.rail-nav button{justify-content:center;font-size:1.1rem;padding:12px}.today-grid{grid-template-columns:1fr}.week{grid-template-columns:repeat(4,1fr)}}@media(max-width:720px){.app-shell{display:block}.app-rail{position:static;height:auto;padding:14px 16px;display:flex;flex-direction:row;align-items:center}.brand{padding:0}.brand-mark{width:38px;height:38px}.brand-copy{display:block}.brand-copy small{display:none}.rail-nav,.rail-label,.rail-footer{display:none}.topbar{height:58px;padding:0 16px}.top-actions{display:none}.content{width:min(100% - 24px,1240px);padding:22px 0 90px}.view-head{align-items:flex-start;flex-direction:column;margin-bottom:18px}.view-head h1{font-size:2.25rem}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(6,1fr);left:8px;right:8px;bottom:8px;background:#103322f2;backdrop-filter:blur(15px);padding:6px;border-radius:17px;z-index:100;box-shadow:0 12px 35px #0004}.mobile-nav button{border:0;background:transparent;color:#bcd0c3;padding:7px 2px;border-radius:11px;font-size:.58rem;font-weight:750}.mobile-nav button b{display:block;font-size:1rem;margin-bottom:2px}.mobile-nav button.active{background:#ffffff16;color:white}.stats{grid-template-columns:1fr 1fr}.layout,.ultimate-grid{grid-template-columns:1fr}.span2,.ultimate-grid .wide{grid-column:auto}.week{grid-template-columns:1fr 1fr}.shopping{grid-template-columns:1fr 1fr}.history-form,.mini-form,.quick-grocery{grid-template-columns:1fr}.hero{padding:22px}.hero:after{font-size:5rem}.filters>*{flex:1;min-width:130px}.pantry-item{flex-wrap:wrap}.pantry-item strong{min-width:45%}}@media(max-width:440px){.stats{gap:7px}.stats div{padding:12px}.shopping{grid-template-columns:1fr}.week{grid-template-columns:1fr 1fr}.panel{padding:16px}.content{width:calc(100% - 18px)}.mobile-nav{left:5px;right:5px;bottom:5px}}