:root{--ink:#26332f;--muted:#6f7c77;--paper:#f5f1e9;--card:#fffdf9;--line:#e7dfd2;--green:#496a5a;--green-soft:#dfe9e2;--sand:#eadcc4;--danger:#9b3d35}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Inter,system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.sidebar{color:#fff;z-index:30;background:#283a33;width:245px;padding:24px 16px;position:fixed;inset:0 auto 0 0}.sidebarBrand{align-items:center;gap:10px;padding:5px 8px 22px;display:flex}.sidebarBrand span:last-child,.sidebarBrand strong,.sidebarBrand small{display:block}.brandMark{color:#283a33;background:#e8ddc8;border-radius:12px;place-items:center;width:40px;height:40px;font-weight:900;display:grid}.sideNav{gap:7px;display:grid}.sideNav a{color:#ced9d4;border-radius:12px;align-items:center;gap:10px;padding:11px;display:flex}.sideNav a.active,.sideNav a:hover{color:#fff;background:#ffffff1c}.sidebarHeader{justify-content:space-between;display:flex}.appContent{margin-left:245px}.mobileMenuButton,.drawerClose,.drawerBackdrop{display:none}.shell{max-width:1120px;margin:auto;padding:38px 24px 80px}.narrow{max-width:920px}.centered{place-items:center;min-height:100vh;padding:20px;display:grid}.authPage{margin-left:-245px}.card,.loginCard{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 8px 24px #352d200d}.loginCard{width:min(460px,100%);padding:30px}.loginCard form{gap:12px;display:grid}.loginCard button,.saveButton,.primaryLink,.square{background:var(--green);color:#fff;border:0;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:12px 14px;font-weight:750;display:inline-flex}.rememberRow{color:var(--muted);align-items:center;gap:8px;display:flex}.rememberRow input{width:auto}.authLinks{margin-top:12px}.authLinks button{color:var(--green);background:0 0;border:0}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:6px;font-size:clamp(30px,5vw,46px)}.eyebrow{color:var(--green);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:800}.muted{color:var(--muted)}.topbar,.sectionHeader,.groceryHeader{justify-content:space-between;gap:12px;margin-bottom:24px;display:flex}.iconButton{border:1px solid var(--line);background:var(--card);border-radius:14px;width:44px;height:44px}.grid{grid-template-columns:2fr 1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.contentGrid{grid-template-columns:1fr 1.25fr;gap:16px;display:grid}.hero{background:linear-gradient(135deg,#fffdf9,#f0e8d8)}.icon{background:var(--green-soft);border-radius:12px;place-items:center;width:38px;height:38px;margin-bottom:28px;display:grid}.stat{align-items:center;gap:14px;display:flex}.stat strong{font-size:32px;display:block}.stat span{color:var(--muted);font-size:14px}.secondaryLink{background:var(--green-soft);color:var(--green);border-radius:11px;align-items:center;gap:7px;padding:10px 12px;font-weight:750;display:inline-flex}.buttonLink{border:0}.mealList,.groceryList,.fullGroceryList{gap:10px;display:grid}.mealRow{border-top:1px solid var(--line);grid-template-columns:90px 1fr;gap:12px;padding:13px 0;display:grid}.mealRow span{color:var(--muted)}.addRow{grid-template-columns:1fr 120px 44px;gap:8px;margin-bottom:16px;display:grid}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;padding:12px}.square{width:44px;padding:0}.groceryRow{text-align:left;width:100%;color:var(--ink);background:#faf7f1;border:0;border-radius:14px;align-items:center;gap:11px;padding:12px;display:flex}.groceryRow.done{opacity:.52}.groceryRow.done strong{text-decoration:line-through}.check{background:#fff;border:1px solid #b9c4bf;border-radius:7px;flex:0 0 22px;place-items:center;width:22px;height:22px;display:grid}.groceryName strong,.groceryName small{display:block}.groceryName small{color:var(--muted);margin-top:3px}.pill{background:var(--sand);border-radius:999px;padding:7px 10px;font-size:12px;font-weight:750;display:inline-block}.mealCards{grid-template-columns:1fr 1fr;gap:16px;display:grid}.tagRow{align-items:center;gap:8px;display:flex}.recipeGrid{grid-template-columns:.9fr 1.1fr;gap:16px;display:grid}.cleanList li,.steps li{margin-bottom:12px}.backLink{color:var(--green);margin-bottom:24px;font-weight:750;display:inline-block}.leftoverCard{margin-top:16px}.lede{color:var(--muted);font-size:19px}.groceryActions{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.actionCard{border:1px solid var(--line);background:var(--card);text-align:left;border-radius:18px;align-items:center;gap:12px;padding:18px;display:flex}.actionCard span,.actionCard strong,.actionCard small{display:block}.actionCard small{color:var(--muted)}.groceryComposer{grid-template-columns:1fr 150px 150px auto;align-items:end;gap:10px;margin-bottom:16px;display:grid}.groceryComposer label,.formGrid label{color:var(--muted);margin-bottom:7px;font-size:12px;font-weight:750;display:block}.storeGrid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.storeTitle{justify-content:space-between;display:flex}.emptyStore{color:var(--muted);gap:8px;display:flex}.errorBanner,.successBanner{border-radius:12px;margin-bottom:16px;padding:12px}.errorBanner{color:var(--danger);background:#fff0ee}.successBanner{color:var(--green);background:#edf6ef}.adminGrid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.fullWidth{grid-column:1/-1}.inlineForm{grid-template-columns:1fr auto;gap:8px;display:grid}.manageList{gap:8px;margin-top:14px;display:grid}.manageRow{background:#faf7f1;border:0;border-radius:12px;justify-content:space-between;align-items:center;padding:11px;display:flex}.manageRow small{color:var(--muted);display:block}.manageRow.inactive{opacity:.5}.deleteButton{color:var(--danger);background:#f3e2df;border:0;border-radius:9px;width:36px;height:36px}.stapleComposer,.newMealRow{grid-template-columns:1fr 160px 160px auto;gap:8px;display:grid}.twoColumnList{grid-template-columns:1fr 1fr}.mealAdminLayout{grid-template-columns:240px 1fr;gap:18px;display:grid}.mealSelector{gap:6px;max-height:650px;display:grid;overflow:auto}.mealSelector button{text-align:left;background:#faf7f1;border:0;border-radius:10px;padding:10px}.mealSelector button.selected{background:var(--green-soft)}.formGrid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ingredientHeader{justify-content:space-between;align-items:center;margin-top:18px;display:flex}.ingredientList{gap:8px;display:grid}.ingredientRow{grid-template-columns:1fr 140px 140px 36px;gap:8px;display:grid}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:820px){.sidebar{width:min(82vw,300px);transition:all .2s;transform:translate(-100%)}.sidebarOpen{transform:translate(0)}.appContent,.authPage{margin-left:0}.mobileMenuButton{z-index:20;border:1px solid var(--line);background:var(--card);border-radius:13px;place-items:center;width:43px;height:43px;display:grid;position:fixed;top:12px;left:12px}.drawerClose{color:#fff;background:0 0;border:0;place-items:center;display:grid}.drawerBackdrop{z-index:25;background:#0006;border:0;display:block;position:fixed;inset:0}.shell{padding:72px 16px}.grid,.contentGrid,.mealCards,.recipeGrid,.groceryActions,.storeGrid,.adminGrid{grid-template-columns:1fr}.groceryComposer{grid-template-columns:1fr 1fr}.groceryComposer>div:first-child{grid-column:1/-1}.topbar,.groceryHeader{display:block}.stapleComposer,.newMealRow,.twoColumnList,.mealAdminLayout{grid-template-columns:1fr}.mealSelector{max-height:220px}.formGrid{grid-template-columns:1fr}.ingredientRow{grid-template-columns:1fr 100px}}button,.pill,.secondaryLink,.primaryLink,.saveButton,.square,.iconButton{line-height:1.15}button,.secondaryLink,.primaryLink,.saveButton,.pill{text-align:center;justify-content:center;align-items:center}.dashboardHero{align-items:center;gap:18px;margin-bottom:16px;display:flex}.dashboardHero .icon{flex:0 0 38px;margin-bottom:0}.dashboardGrid{grid-template-columns:1.1fr .9fr;gap:16px;display:grid}.dashboardWeek{gap:2px;display:grid}.dashboardDay{border-top:1px solid var(--line);grid-template-columns:48px 1fr;align-items:center;gap:10px;padding:11px 0;display:grid}.dashboardDay span{color:var(--muted);font-weight:750}.dashboardDay small{color:var(--muted);grid-column:2;margin-top:-6px}.dashboardGroceries{max-height:420px;overflow:auto}.textLink{color:var(--green);align-items:center;gap:7px;margin-top:15px;font-weight:750;display:inline-flex}.weekControls{align-items:center;gap:8px;display:flex}.plannerShell{max-width:1050px}.plannerList{gap:12px;display:grid}.dayPlanner{padding:18px}.dayHeading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.dayHeading strong,.dayHeading span{display:block}.dayHeading span{color:var(--muted);margin-top:2px;font-size:13px}.eatOutToggle{color:var(--muted);align-items:center;gap:7px;font-size:14px;font-weight:700;display:flex}.eatOutToggle input{width:auto}.plannerMealGrid{grid-template-columns:1fr 1fr 90px;align-items:start;gap:10px;display:grid}.plannerMealGrid>div>label,.eatOutName label{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px;font-size:12px;font-weight:800;display:block}.lunchNote{border-top:1px solid var(--line);margin-top:13px;padding-top:11px}.lunchNote summary{cursor:pointer;font-size:14px;font-weight:750}.lunchNote textarea{margin-top:10px}.savedButton{color:#315344!important;background:#dceadf!important;border-color:#b8d1bf!important}.stickySave{z-index:8;justify-content:flex-end;margin-top:16px;display:flex;position:sticky;bottom:15px}.mealPicker{position:relative}.mealPickerTrigger{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);text-align:left;background:#fff;border-radius:12px;padding:10px 36px 10px 12px;display:block}.mealPickerTrigger strong,.mealPickerTrigger small{display:block}.mealPickerTrigger small{color:var(--muted);margin-top:2px}.pickerClear{background:#f2eee7;border:0;border-radius:8px;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:8px;right:7px}.mealPickerPanel{z-index:40;border:1px solid var(--line);background:#fff;border-radius:15px;max-height:380px;padding:10px;position:absolute;top:54px;left:0;right:0;overflow:auto;box-shadow:0 18px 45px #26332f2e}.pickerSearch{border:1px solid var(--line);background:#fff;border-radius:11px;align-items:center;gap:8px;padding:0 10px;display:flex}.pickerSearch input{border:0;outline:0;padding:11px 0}.categoryChips{gap:6px;padding:9px 0;display:flex;overflow:auto}.categoryChips button,.libraryTabs button{white-space:nowrap;border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:750}.categoryChips button.active,.libraryTabs button.active{background:var(--green);border-color:var(--green);color:#fff}.pickerResults{gap:4px;display:grid}.pickerResults button{text-align:left;color:var(--ink);background:#faf7f1;border:0;border-radius:10px;padding:10px}.pickerResults button strong,.pickerResults button small{display:block}.pickerResults button small{color:var(--muted);margin-top:2px}.pickerEmpty{padding:10px}.libraryTabs{gap:8px;margin-bottom:14px;display:flex}.libraryTabs button{padding:9px 14px;font-size:14px}.libraryTools{margin-bottom:18px}.librarySearch{max-width:520px}.memberComposer{grid-template-columns:1fr 1.4fr 130px auto;gap:8px;display:grid}.newMealRow{grid-template-columns:1fr 150px 120px auto!important}@media (max-width:820px){.dashboardHero{align-items:flex-start}.dashboardGrid{grid-template-columns:1fr}.dashboardDay{grid-template-columns:42px 1fr}.plannerMealGrid{grid-template-columns:1fr}.servingsField{max-width:120px}.mealPickerPanel{max-height:70vh;position:fixed;top:85px;left:14px;right:14px}.dayHeading{align-items:flex-start}.eatOutToggle{padding-top:2px}.memberComposer{grid-template-columns:1fr}.newMealRow{grid-template-columns:1fr!important}.stickySave{bottom:12px}.saveButton{min-height:46px}.pill{min-height:28px;display:inline-flex}.storeTitle .pill{min-width:64px}.groceryRow{min-height:48px}.actionCard{min-height:70px}.secondaryLink{min-height:40px}}.groceryList .groceryRow{text-align:left;justify-content:flex-start}.groceryList .groceryName{text-align:left;flex:1}.groceryList .groceryName strong,.groceryList .groceryName small{text-align:left}
