:root{--ink:#233b34;--ink-2:#496158;--muted:#7d8982;--paper:#f8f7f2;--white:#fff;--line:#e7e9e2;--green:#315e49;--green-dark:#254936;--green-soft:#e9f1e9;--lime:#dce9b8;--orange:#d77d50;--orange-soft:#fbefe8;--yellow:#f5efd7;--shadow:0 14px 40px rgba(31,57,45,.08);font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility}
*{box-sizing:border-box}body{margin:0;background:var(--paper);min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #99b878;outline-offset:2px}.app-shell{max-width:1440px;margin:0 auto;padding:0 52px}.topbar{height:88px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:44px}.brand{display:flex;gap:11px;align-items:center;color:inherit;text-decoration:none;min-width:190px}.brand-mark{width:40px;height:40px;background:var(--green);display:grid;place-items:center;border-radius:14px 14px 14px 4px}.brand-mark svg{width:29px;height:29px;fill:none;stroke:#eff3df;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.brand-copy{display:grid;line-height:1.03}.brand-copy strong{font-family:'DM Serif Display',Georgia,serif;font-size:19px;letter-spacing:-.5px}.brand-copy small{font-size:9px;letter-spacing:2.1px;color:var(--muted);margin-top:4px;font-weight:700}.main-nav{display:flex;align-items:center;gap:26px;flex:1;height:100%}.nav-link{border:0;background:none;color:#6c7971;padding:10px 0;font-size:13px;position:relative;white-space:nowrap}.nav-link.active{color:var(--green);font-weight:700}.nav-link.active:after{content:"";height:2px;background:var(--green);position:absolute;bottom:-20px;left:0;right:0}.nav-count{background:#edf0e8;border-radius:99px;padding:2px 6px;font-size:10px;margin-left:4px}.profile-button{display:flex;align-items:center;gap:9px;background:none;border:0;color:var(--ink);font-size:12px;font-weight:600;white-space:nowrap}.avatar{width:32px;height:32px;background:#e6d6b8;border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:15px}.chevron{font-size:16px;color:var(--muted)}.mobile-menu,.mobile-nav-panel{display:none}main{min-height:calc(100vh - 151px)}.page{padding:39px 0 52px}.page-eyebrow{font-size:10px;letter-spacing:1.7px;text-transform:uppercase;color:var(--green);font-weight:700;margin:0 0 9px}.page-title{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:38px;letter-spacing:-.8px;line-height:1.1;margin:0;color:var(--ink)}.page-subtitle{font-size:13px;color:var(--muted);margin:9px 0 0;line-height:1.6}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:27px}.heading-actions{display:flex;gap:10px;align-items:center}.button{border:1px solid transparent;border-radius:8px;padding:11px 16px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,transform .15s;text-decoration:none}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--green);color:#fff}.button-primary:hover{background:var(--green-dark)}.button-secondary{background:#fff;border-color:var(--line);color:var(--ink)}.button-soft{background:var(--green-soft);color:var(--green)}.button-small{padding:8px 11px;font-size:11px}.text-button{background:none;border:0;color:var(--green);font-weight:700;font-size:11px;padding:8px 0}.week-switcher{display:flex;align-items:center;gap:8px}.week-switcher button{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:7px;color:var(--ink-2);font-size:15px}.week-label{font-size:12px;font-weight:700;min-width:120px;text-align:center}.hero-panel{border-radius:15px;min-height:234px;background:#e9eee2;position:relative;overflow:hidden;padding:30px 34px;display:flex;align-items:center;margin-bottom:18px}.hero-panel:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:55px;top:-75px;border:1px solid rgba(49,94,73,.13);box-shadow:0 0 0 23px rgba(49,94,73,.035),0 0 0 48px rgba(49,94,73,.025)}.hero-copy{max-width:570px;position:relative;z-index:1}.hero-kicker{font-size:10px;text-transform:uppercase;letter-spacing:1.8px;color:var(--green);font-weight:700;margin:0 0 10px}.hero-title{font-family:'DM Serif Display',Georgia,serif;font-size:34px;line-height:1.15;font-weight:400;margin:0;max-width:520px}.hero-description{font-size:12px;color:#617267;line-height:1.65;max-width:465px;margin:12px 0 19px}.hero-actions{display:flex;gap:10px}.hero-illustration{position:absolute;right:88px;top:25px;width:190px;height:180px;z-index:0}.hero-illustration .plate{position:absolute;width:145px;height:145px;border:1px solid rgba(49,94,73,.24);border-radius:50%;right:14px;top:19px;background:#f5f3e9;box-shadow:inset 0 0 0 8px #e9eee2,inset 0 0 0 9px rgba(49,94,73,.16)}.veggie{position:absolute;z-index:1;filter:drop-shadow(0 6px 6px rgba(35,59,52,.12))}.veggie.tomato{width:45px;height:45px;background:#df8d62;border-radius:47% 52% 48% 52%;right:56px;top:67px}.veggie.tomato:before{content:"";position:absolute;width:14px;height:8px;background:#66845c;top:-3px;left:15px;clip-path:polygon(50% 0,65% 50%,100% 25%,77% 100%,50% 60%,23% 100%,0 25%,36% 50%)}.veggie.leaf{width:36px;height:59px;background:#8a9b65;border-radius:100% 0 100% 0;right:94px;top:44px;transform:rotate(-27deg)}.veggie.leaf:after{content:"";position:absolute;height:47px;width:1px;background:#e5ebd7;left:18px;top:7px;transform:rotate(10deg)}.veggie.carrot{width:25px;height:68px;background:#d88b56;border-radius:75% 25% 48% 52%;right:31px;top:89px;transform:rotate(-35deg);clip-path:polygon(8% 0,100% 10%,54% 100%,35% 100%)}.veggie.carrot:before{content:"";position:absolute}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:18px 0 24px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 17px;min-height:98px}.stat-top{display:flex;justify-content:space-between;align-items:center}.stat-label{font-size:10px;color:var(--muted);font-weight:600}.stat-icon{font-size:15px;opacity:.85}.stat-value{font-family:'DM Serif Display',Georgia,serif;font-size:27px;line-height:1.05;margin-top:10px;color:var(--ink)}.stat-note{font-size:9px;color:var(--muted);margin-top:5px}.stat-note.alert{color:#a95e3a}.content-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;padding:19px 20px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.panel-title{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:19px;margin:0}.panel-kicker{font-size:10px;color:var(--muted);margin:5px 0 0}.meal-preview-list{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.mini-day{background:#f8f8f4;border-radius:7px;padding:10px 8px;min-height:104px}.mini-day.today{background:#edf3eb}.mini-day-name{text-transform:uppercase;font-size:8px;letter-spacing:.7px;font-weight:700;color:var(--muted)}.mini-day-date{font-family:'DM Serif Display',Georgia,serif;font-size:17px;margin:4px 0 9px}.mini-meal{font-size:8px;line-height:1.35;color:#54645b;border-top:1px solid #e3e7de;padding-top:5px;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.budget-card{background:#f2f4ea;border-radius:9px;padding:16px}.budget-top{display:flex;justify-content:space-between;align-items:flex-start}.budget-big{font-family:'DM Serif Display',Georgia,serif;font-size:30px;line-height:1}.budget-total{font-size:10px;color:var(--muted);margin-top:4px}.budget-tag{font-size:9px;padding:5px 8px;background:#fff;border-radius:99px;color:var(--green);font-weight:700}.progress-track{height:7px;background:#dfe5d9;border-radius:10px;margin:17px 0 8px;overflow:hidden}.progress-fill{height:100%;border-radius:10px;background:#648464;transition:width .3s}.progress-fill.over{background:var(--orange)}.budget-foot{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.budget-foot strong{color:var(--ink-2)}.estimate-note{font-size:9px;line-height:1.5;color:var(--muted);margin:12px 0 0}.subsection-label{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);font-weight:700}.content-stack{display:grid;gap:14px}.callout{padding:13px 14px;background:#f7f5e9;border:1px solid #eee8ce;border-radius:8px;color:#665f42;font-size:10px;line-height:1.6}.callout strong{color:#4b4937}.notice-banner{background:#f5f2e7;border:1px solid #e9e3cc;border-radius:8px;padding:10px 13px;font-size:10px;color:#69624a;line-height:1.55;display:flex;gap:9px;align-items:flex-start;margin:14px 0}.notice-banner .notice-icon{font-size:14px;line-height:1.1}.section-label{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:1.1px;margin:24px 0 11px}.planner-days{display:grid;gap:12px}.day-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.day-card-head{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;background:#fbfbf8;border-bottom:1px solid #eff0eb}.day-title{font-family:'DM Serif Display',Georgia,serif;font-size:18px;margin:0}.day-date{font-size:9px;color:var(--muted);margin-left:8px;font-family:'DM Sans',Arial,sans-serif}.day-meals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:11px}.slot-card{padding:11px 12px;border:1px solid #eff0ec;border-radius:7px;min-height:80px;position:relative}.slot-name{font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700}.slot-meal-name{font-family:'DM Serif Display',Georgia,serif;font-size:15px;line-height:1.2;margin:7px 0 5px}.slot-meta{font-size:9px;color:var(--muted)}.slot-actions{display:flex;gap:6px;position:absolute;right:8px;top:7px}.icon-button{width:24px;height:24px;border:0;background:#f4f5f0;border-radius:5px;color:var(--ink-2);font-size:12px}.slot-empty{display:flex;justify-content:space-between;align-items:center;min-height:50px;margin-top:9px}.slot-empty span{font-size:10px;color:#a1aaa3}.add-slot{border:1px dashed #cdd7cd;background:#fbfcf9;color:var(--green);border-radius:6px;padding:7px 9px;font-size:9px;font-weight:700}.shopping-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.7fr);gap:16px;align-items:start}.shopping-groups{display:grid;gap:12px}.shopping-group{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.shopping-group-title{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700;padding:12px 15px;background:#fafaf7;border-bottom:1px solid #eff0eb}.shopping-row{display:flex;align-items:center;gap:11px;padding:12px 15px;border-bottom:1px solid #f0f1ed}.shopping-row:last-child{border-bottom:0}.check-wrap{display:flex;align-items:center}.shopping-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--green);cursor:pointer}.shop-item-copy{flex:1;min-width:0}.shop-item-name{font-size:11px;font-weight:600}.shop-item-meta{font-size:9px;color:var(--muted);margin-top:4px}.shop-item-price{text-align:right;white-space:nowrap}.shop-item-price strong{font-size:11px;display:block}.shop-item-price span{font-size:8px;color:var(--muted)}.shopping-row.is-checked .shop-item-name{text-decoration:line-through;color:#9ba49d}.shopping-row.is-owned{background:#f5f8f3}.shopping-summary{position:sticky;top:14px}.summary-line{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-bottom:1px solid #eff0eb;font-size:10px;color:var(--muted)}.summary-line strong{font-size:12px;color:var(--ink)}.summary-line.total{padding-top:15px;border:0;color:var(--ink);font-weight:700}.summary-line.total strong{font-family:'DM Serif Display',Georgia,serif;font-size:24px}.summary-line .green{color:var(--green)}.summary-actions{display:grid;gap:8px;margin-top:12px}.add-item-form{display:flex;gap:7px;margin-top:12px}.add-item-form input{flex:1;min-width:0}.field-input,.field-select{border:1px solid #dfe3dc;background:#fff;border-radius:7px;padding:10px 11px;font-size:11px;color:var(--ink);width:100%}.field-input::placeholder{color:#a3aca5}.field-label{display:block;font-size:10px;font-weight:700;color:#65746b;margin:0 0 6px}.settings-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;align-items:start}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-group.full{grid-column:1/-1}.field-help{font-size:9px;line-height:1.5;color:var(--muted);margin:5px 0 0}.settings-actions{display:flex;justify-content:flex-end;margin-top:17px}.leftovers-layout{display:grid;grid-template-columns:.85fr 1.4fr;gap:16px;align-items:start}.ingredient-chip-grid{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.ingredient-chip{position:relative}.ingredient-chip input{position:absolute;opacity:0;width:1px;height:1px}.ingredient-chip span{border:1px solid var(--line);background:#fff;display:block;padding:8px 10px;border-radius:99px;font-size:9px;color:var(--ink-2);cursor:pointer}.ingredient-chip input:checked+span{background:var(--green-soft);border-color:#c2d4c3;color:var(--green);font-weight:700}.ingredient-chip input:focus-visible+span{outline:3px solid #99b878}.recipe-suggestions{display:grid;gap:9px}.suggestion-card{border:1px solid var(--line);border-radius:9px;padding:14px 15px;background:#fff;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.suggestion-card h3{font-family:'DM Serif Display',Georgia,serif;font-size:17px;font-weight:400;margin:0}.suggestion-card p{font-size:9px;color:var(--muted);margin:5px 0 0;line-height:1.5}.match-badge{display:inline-block;background:#edf3e8;color:var(--green);padding:4px 7px;border-radius:99px;font-size:8px;font-weight:700;margin-top:7px}.empty-state{text-align:center;padding:36px 18px;color:var(--muted);background:#fbfbf8;border:1px dashed #dfe3dc;border-radius:9px}.empty-state strong{display:block;font-family:'DM Serif Display',Georgia,serif;font-size:19px;font-weight:400;color:var(--ink);margin-bottom:7px}.settings-aside{background:#f2f4ea;border-radius:10px;padding:18px}.settings-aside h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:18px;margin:0 0 8px}.settings-aside p,.settings-aside li{font-size:10px;color:#637268;line-height:1.65}.settings-aside ul{padding-left:17px;margin:8px 0}.inline-message{font-size:10px;color:var(--green);margin:8px 0 0;min-height:14px}.app-footer{height:60px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:#97a098;font-size:9px}.meal-dialog{border:0;padding:0;border-radius:12px;width:min(510px,calc(100vw - 28px));box-shadow:0 20px 80px rgba(23,49,36,.25);color:var(--ink)}.meal-dialog::backdrop{background:rgba(22,39,30,.42);backdrop-filter:blur(2px)}.dialog-head{padding:20px 22px 15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h2{font-family:'DM Serif Display',Georgia,serif;font-size:22px;font-weight:400;margin:0}.dialog-head p{font-size:10px;color:var(--muted);margin:5px 0 0}.dialog-body{padding:18px 22px 22px}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-grid .field-group.full{grid-column:1/-1}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog-close{background:none;border:0;font-size:20px;color:var(--muted)}.toast-region{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:20}.toast{background:#244734;color:#fff;padding:11px 16px;border-radius:8px;box-shadow:var(--shadow);font-size:11px;animation:toast-in .2s ease-out}@keyframes toast-in{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:1050px){.app-shell{padding:0 28px}.topbar{gap:25px}.main-nav{gap:17px}.brand{min-width:174px}.hero-illustration{right:40px}.content-grid{grid-template-columns:1.4fr 1fr}.mini-day{padding:8px 6px}}
@media(max-width:800px){.app-shell{padding:0 20px}.topbar{height:72px;justify-content:space-between}.main-nav,.profile-button{display:none}.mobile-menu{display:block;border:1px solid var(--line);background:#fff;border-radius:7px;width:38px;height:36px;color:var(--green);font-size:17px}.mobile-nav-panel{position:absolute;z-index:5;left:20px;right:20px;top:66px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);padding:6px;display:grid;grid-template-columns:repeat(2,1fr)}.mobile-nav-panel[hidden]{display:none}.mobile-nav-panel button{border:0;background:none;text-align:left;padding:12px;font-size:12px;color:var(--ink)}.page{padding-top:27px}.page-title{font-size:32px}.hero-panel{min-height:250px;padding:25px 24px}.hero-copy{max-width:73%}.hero-title{font-size:29px}.hero-illustration{right:7px;top:46px;transform:scale(.83);transform-origin:right center}.stats-grid{grid-template-columns:repeat(2,1fr)}.content-grid,.shopping-layout,.settings-grid,.leftovers-layout{grid-template-columns:1fr}.shopping-summary{position:static;grid-row:1}.meal-preview-list{grid-template-columns:repeat(4,1fr)}.mini-day:nth-child(n+5){display:none}.page-heading{align-items:flex-start}.heading-actions{flex-wrap:wrap;justify-content:flex-end}.day-meals{grid-template-columns:1fr}.slot-card{min-height:75px}.slot-empty{min-height:40px}.app-footer{height:55px}}
@media(max-width:520px){.app-shell{padding:0 15px}.brand{min-width:0}.brand-copy strong{font-size:17px}.page-heading{display:block}.heading-actions{justify-content:flex-start;margin-top:15px}.page-title{font-size:29px}.page-subtitle{font-size:12px}.hero-panel{padding:22px 19px;min-height:263px}.hero-copy{max-width:100%;z-index:2}.hero-title{font-size:27px;max-width:300px}.hero-description{max-width:290px;font-size:11px}.hero-illustration{right:-32px;top:105px;opacity:.32;transform:scale(.8)}.hero-actions{flex-wrap:wrap}.button{padding:10px 12px;font-size:11px}.stats-grid{gap:8px}.stat-card{padding:13px;min-height:90px}.stat-value{font-size:24px}.content-grid{gap:11px}.panel{padding:15px}.meal-preview-list{grid-template-columns:repeat(2,1fr)}.mini-day:nth-child(n+5){display:block}.mini-day{min-height:94px}.form-grid,.dialog-grid{grid-template-columns:1fr}.field-group.full,.dialog-grid .field-group.full{grid-column:auto}.week-label{min-width:112px;font-size:10px}.week-switcher button{width:29px;height:29px}.shopping-row{padding:11px 10px;gap:8px}.shop-item-meta{font-size:8px}.shop-item-price strong{font-size:10px}.suggestion-card{grid-template-columns:1fr}.suggestion-card .button{justify-self:start}.app-footer{font-size:8px}.callout{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
