/* Warm, quiet surfaces. All artwork is local SVG; no tracking/fonts/CDNs. */
:root{--ink:#263e34;--green:#35644d;--green-light:#edf3e9;--paper:#faf8f1;--muted:#627164;--line:#e3e6da;--accent:#ca8059;--radius:22px}
html{scroll-padding-top:25px}body{background:radial-gradient(ellipse at 15% 6%,#f5ebd7 0,transparent 34%),radial-gradient(ellipse at 95% 38%,#eaf0e3 0,transparent 40%),var(--paper);min-height:100vh;isolation:isolate}
body:before{content:'';position:fixed;inset:0;background:url('/botanical.svg') repeat;background-size:600px;opacity:.45;pointer-events:none;z-index:-1}
header{background:#fcfbf5ed;border-color:#e6e6d9;gap:24px;height:82px}header .brand{letter-spacing:-1.3px}header #logout{margin-left:auto;border-radius:24px;min-width:90px}.tag{font-size:12px;color:#6d796b}
main{max-width:1460px;padding-top:36px}h1{font-weight:670;letter-spacing:-1.8px}h2{letter-spacing:-.7px}.card{background:#fffefb;box-shadow:0 8px 35px #29432d05}.eyebrow{font-size:10px;color:#78816a;letter-spacing:1.6px}button{border-radius:12px;min-height:44px;transition:background .2s,box-shadow .2s,transform .2s}button.primary{box-shadow:0 4px 12px #355c4a12}button.primary:hover{background:#294e3d;transform:translateY(-1px);box-shadow:0 7px 15px #355c4a1a}button:active{transform:translateY(1px)}button:disabled{transform:none}input,select{border-radius:12px;min-height:46px;background:#fffefb}input[type=number]{font-variant-numeric:tabular-nums}input:focus,select:focus{background:white}
#auth{gap:7vw;padding:36px 0 60px}.intro{position:relative;padding-top:125px}.intro h1{font-size:clamp(42px,4.6vw,66px);line-height:1.08;max-width:600px}.intro p{font-size:16px;line-height:1.8;max-width:500px}.intro-features{flex-direction:row;flex-wrap:wrap;gap:9px;font-size:12px;margin:27px 0}.intro-features span{padding:9px 13px;background:#e9eee0;border-radius:30px}.intro .disclaimer{font-size:12px;max-width:470px}.hero-art{position:absolute;top:-30px;left:-28px;width:250px;height:200px;transform:rotate(-8deg);pointer-events:none}.hero-art .food-steam{animation:steam 4s ease-in-out infinite}.hero-art .food-spark{opacity:.5}#auth-form{max-width:430px;width:100%;justify-self:end;padding:36px;border-color:#e2e7d8;border-radius:26px;box-shadow:0 16px 65px #3d5c3010}#auth-form h2{font-size:28px;margin-top:16px}#auth-form label{font-size:13px}#auth-form button{font-size:13px}#auth-form .mail-actions{display:flex;gap:12px;justify-content:space-between;border-top:1px solid var(--line);margin-top:18px;padding-top:8px}#auth-form .mail-actions button{width:auto;font-size:11px;min-height:40px;line-height:1.5}#account-dialog{max-width:480px}#account-dialog h2{margin-top:15px}#account-dialog p{font-size:13px}#account-result:empty{display:none}
.topline{margin-bottom:28px}.topline h1{font-size:clamp(32px,3vw,47px)}.topline .subtitle{max-width:580px;line-height:1.7}nav{background:#e9eddfbd;border:1px solid #e0e5d5;border-radius:18px;padding:6px;margin-bottom:28px;gap:4px;scrollbar-width:thin}nav button{flex:1;margin:0;padding:12px 18px;color:#596a59}nav .active{background:var(--green);color:white;box-shadow:0 2px 6px #21422d15}.phone-tools{background:#fffdf6b3;border:0;padding:7px 0 15px;font-size:12px;gap:16px}.phone-tools>a{color:#5b7054}.phone-tools details{font-size:11px}
.layout{grid-template-columns:302px minmax(0,1fr);gap:28px}.settings-card{padding:22px;max-height:calc(100vh - 36px);scrollbar-width:thin}.settings-card .section-title{display:none}#settings-panel{margin:0}#settings-panel>summary{list-style:none;font-size:20px;letter-spacing:-.4px;padding:0 0 12px}#settings-panel>summary::-webkit-details-marker{display:none}#settings-panel>summary small{display:block;font-weight:400;font-size:11px;letter-spacing:0;margin-top:3px}#settings-panel[open]>summary{margin-bottom:14px;border-bottom:1px solid var(--line)}#settings-panel[open]+#toggle-settings{display:none}.settings-card label{font-size:12px}.settings-card .check-filter summary{font-size:12px}.settings-card .budget-modes label{background:#fffefb}.settings-card .budget-modes label:has(input:checked){background:#edf4e8;border-color:#90ac83}.settings-card details{margin:15px 0}.settings-card summary{line-height:1.7}.calorie-settings .pair{gap:10px}.calorie-settings label{font-size:11px}.calorie-settings small{font-size:10px}.banner{padding:14px 19px;background:#edf2e4bf;border-color:#e0e7d3;line-height:1.7;font-size:12px}.banner strong{display:inline;font-size:12px}.summary{background:linear-gradient(115deg,#315b46,#477654);padding:28px 30px;border-radius:24px;box-shadow:0 9px 22px #28553a0b}.summary:after{content:'';position:absolute;right:-35px;top:-65px;width:170px;height:170px;border:1px solid #c3d5b929;border-radius:50%;pointer-events:none}.sum{font-size:42px;font-variant-numeric:tabular-nums}.variety-summary{background:#f4f4e9;border-color:#e7e8d9;padding:17px 20px}.variety-stats{gap:24px}.variety-stats strong{font-size:25px;font-weight:600}.variety-summary p{margin-bottom:0}.variety-summary details{margin:12px 0 0}.day{border:0;padding-top:18px}.day-title h3{font-size:24px;font-weight:600}.day-energy{background:#eaf0e1;padding:9px 14px}.meal{padding:20px;background:#fffefb;border-color:#e2e6d9;border-radius:20px;box-shadow:0 4px 15px #35442e03;transition:transform .2s,box-shadow .2s}.meal:hover{transform:translateY(-2px);box-shadow:0 8px 25px #35442e09}.meal h3{font-size:17px;line-height:1.5;letter-spacing:-.2px}.meal p{line-height:1.8}.meal .link-button{font-size:12px}.meal>button:not(.link-button){background:#f4f5ed;font-size:11px;min-height:36px;border:0}.cuisine-tag{background:#f1f2e7;font-size:10px}.meal-icon{border-radius:50%;width:38px;height:38px}.shopping{margin-top:24px}.empty{background:#f1f3e7bb;border-color:#cdd9bd;padding:50px 22px}.empty-symbol{border-radius:50%;background:#dfe9ce}.empty h2{font-size:30px}.recipe-card{background:#fffefb}.recipe-card h3{font-size:21px;line-height:1.4}.recipe-grid{gap:18px}.book-filter-groups{gap:10px}.filterbar{background:#fffefbe6}.pantry-group h3{color:#67825d}.pantry-items{gap:0 20px}.pantry-item{font-size:12px}.price-row small{font-size:11px}.integration{background:#f8f9f2}.section-head{margin-top:22px}footer{font-size:11px;max-width:960px;line-height:1.8}#notice{scroll-margin-top:15px}.error{line-height:1.7}.success{line-height:1.7}
.menu-loader{position:relative;overflow:hidden;display:grid;grid-template-columns:210px minmax(0,1fr);align-items:center;gap:12px;padding:22px 28px;background:#fffdf4;border:1px solid #e3e6d3;border-radius:24px;margin-bottom:25px;box-shadow:0 8px 30px #38562906}.loader-art{width:210px;aspect-ratio:240/205}.loader-art svg{width:100%;height:100%}.menu-loader h2{font-size:27px;margin:8px 0 12px}.menu-loader p{font-size:13px;line-height:1.7;margin-bottom:15px}.menu-loader small{font-size:10px;line-height:1.7;display:block;max-width:350px}.loader-inspiration{display:flex;flex-wrap:wrap;gap:6px 12px;margin:0 0 14px;align-items:baseline}.loader-inspiration strong{font-size:14px;color:#4e704b}.loader-inspiration span{font-size:11px;color:var(--muted)}.food-plate{transform-origin:120px 130px;animation:plate-float 3s ease-in-out infinite}.food-steam{animation:steam 3s ease-in-out infinite}.food-spark{animation:spark 2.5s ease-in-out infinite}.loading-line{position:absolute;bottom:0;left:0;right:0;height:3px;overflow:hidden;background:#e7eddb}.loading-line:after{content:'';display:block;height:100%;width:35%;background:#7fa36c;border-radius:10px;animation:loading-line 2.8s ease-in-out infinite}.loading-dots{animation:spark 1.8s ease-in-out infinite}#plan[aria-busy=true]{opacity:.5;pointer-events:none}
@keyframes plate-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}@keyframes steam{0%,100%{opacity:.25;transform:translateY(3px)}50%{opacity:.65;transform:translateY(-4px)}}@keyframes spark{0%,100%{opacity:.35}50%{opacity:1}}@keyframes loading-line{0%{transform:translateX(-100%)}100%{transform:translateX(390%)}}
@media(min-width:1200px){.meals{grid-template-columns:repeat(3,minmax(0,1fr))}.meal h3{min-height:75px}.meal-top{gap:6px}.meal-top small{font-size:10px}.meal-top small:last-child{margin-left:0}.meal .spice-icon{margin-left:auto}}
@media(min-width:761px) and (max-width:1199px){.meals{grid-template-columns:1fr}.meal{display:grid;grid-template-columns:1fr auto;column-gap:20px}.meal .meal-top,.meal p{grid-column:1/-1}.meal h3{grid-column:1/-1;margin:12px 0}.meal .cuisine-tag{justify-self:start}.meal .link-button{grid-column:1;margin-top:8px}.meal>button:not(.link-button){grid-column:2;grid-row:auto}}
@media(max-width:900px){.layout{grid-template-columns:1fr;gap:18px}.settings-card{position:static;max-height:none;overflow:visible;padding:20px}#settings-panel>summary{font-size:19px;cursor:pointer;padding-bottom:0}#settings-panel>summary:after{content:'＋';float:right;margin-top:-37px;color:#759263;font-size:24px}#settings-panel[open]>summary:after{content:'−'}#settings-panel[open]>summary{padding-bottom:12px}#toggle-settings{display:none}#settings-panel[open] #settings{max-width:650px}.menu-loader{grid-template-columns:160px 1fr;padding:20px}.loader-art{width:160px}.menu-loader h2{font-size:24px}.topline{margin-bottom:20px}}
@media(max-width:760px){header{height:72px;padding:0 5vw}.brand{font-size:25px}main{padding:25px 5vw 35px}header #logout{font-size:11px;min-width:70px;padding:8px 13px}.intro{padding-top:95px}.hero-art{width:205px;height:175px;top:-35px;left:-25px}#auth{gap:24px;padding-top:0}.intro h1{font-size:42px;max-width:500px}.intro p{font-size:14px;margin-bottom:12px}.intro-features{gap:6px;margin:20px 0}.intro-features span{font-size:11px;padding:7px 10px}.intro .disclaimer{font-size:11px}#auth-form{justify-self:stretch;max-width:none;padding:26px}#auth-form h2{font-size:26px}.phone-tools{gap:10px;align-items:center}.phone-tools button,.phone-tools a{font-size:11px}.phone-tools details{flex-basis:100%}nav{position:sticky;top:0;z-index:5;border-radius:14px;gap:2px;background:#eef1e7f5;backdrop-filter:blur(12px);margin-bottom:20px;padding:4px}nav button{padding:11px 13px;font-size:11px;flex:0 0 auto}.topline h1{font-size:35px}.topline label{font-size:11px}.topline .subtitle{font-size:13px}.summary{padding:22px}.sum{font-size:38px}.budget-side{min-width:140px}.day-title h3{font-size:23px}.meals{grid-template-columns:1fr}.meal h3{min-height:0;font-size:19px;margin:12px 0 8px}.meal p{font-size:12px}.meal-top small{font-size:11px}.meal .link-button{margin-top:8px}.variety-stats{gap:15px}.variety-stats strong{font-size:22px}.variety-stats span{font-size:11px}.day-energy strong{font-size:18px}.shopping .section-head{gap:10px}.shopping .section-head h2{font-size:24px}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-card{padding:18px}.recipe-card h3{font-size:19px}.recipe-columns{gap:15px}.banner{font-size:11px;line-height:1.7}.menu-view-controls{gap:10px}.menu-view-controls label{min-width:120px}.phone-tools details p{margin:8px 0}.shop-row{padding:15px 0}.shopping-label{font-size:12px}.book-filter-groups{grid-template-columns:1fr 1fr}.check-filter fieldset{max-height:220px}}
@media(max-width:480px){.recipe-grid{grid-template-columns:1fr}.summary{flex-direction:column;gap:12px}.budget-side{margin-top:0}.sum{font-size:39px}.menu-loader{display:block;padding:18px 22px 24px}.loader-art{width:160px;margin:-10px auto -10px}.menu-loader h2{font-size:25px}.menu-loader>div:nth-child(2){text-align:center}.loader-inspiration{justify-content:center}.menu-loader small{margin:auto}.variety-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.variety-stats span{font-size:10px;line-height:1.6}.day-title{gap:10px}.day-energy{max-width:185px;padding:8px 10px}.day-energy small,.day-energy span{font-size:9px}.book-filter-groups{grid-template-columns:1fr}.pantry-items{grid-template-columns:1fr}.gram-input input{width:85px}.intro h1{font-size:39px}.meal{padding:20px}.empty{padding:35px 18px}.empty h2{font-size:26px}.phone-tools button{flex:1}.phone-tools a{padding:5px 0}dialog{padding:25px;width:94vw}#recipe-detail h2{font-size:25px}.filterbar label:first-child{min-width:0;flex-basis:100%}.filterbar label{min-width:0}.pair{gap:12px}.phone-tools{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.meal:hover,button.primary:hover{transform:none}.loading-line:after{width:100%;opacity:.4}}
.hero-art svg{width:100%;height:100%}
@media(min-width:761px){.intro{padding-top:155px}}
@media(max-width:760px){.intro{padding-top:115px}}
@media print{body:before,.menu-loader,#toggle-settings,.hero-art{display:none!important}.summary{background:white}.meal{box-shadow:none;display:block}}
