:root{--bg:#faf7f0;--surface:#f1eee4;--paper:#fffdf8;--text:#243c30;--muted:#687366;--border:#dedfd0;--accent:#285b3e;--accent-text:#fff;--error:#ae3d32;--warn:#93602d;--ok-bg:#e4ecdb;--bad-bg:#f7e6df;--gold:#d9a452;--hero:#e9eedf;--shadow:0 8px 30px #263b2810;--tabbar-h:76px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#18221d;--surface:#243129;--paper:#1e2b23;--text:#f0efdf;--muted:#b0bba9;--border:#3b4a3e;--accent:#b6d3a1;--accent-text:#1a3022;--error:#ffaaa0;--warn:#e4bd89;--ok-bg:#304733;--bad-bg:#4b302c;--hero:#293d2c;--shadow:0 8px 30px #00000020;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{-webkit-text-size-adjust:100%;font-family:Trebuchet MS,Segoe UI,sans-serif;line-height:1.55}h1,h2,.brand,.recipe-card strong{font-family:Georgia,Times New Roman,serif}h1{letter-spacing:-.04em;margin:0 0 14px;font-size:clamp(2rem,5vw,2.8rem);font-weight:400;line-height:1.14}h2{letter-spacing:-.025em;margin:28px 0 14px;font-size:1.4rem;font-weight:400;line-height:1.25}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:24px 0 10px;font-size:.75rem}p{margin:8px 0}a{color:var(--accent);text-underline-offset:4px}button,input,select,textarea{font:inherit;color:inherit;font-size:16px}input,select,textarea{background:var(--paper);border:1px solid var(--border);border-radius:12px;width:100%;min-height:48px;padding:0 14px;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--muted);opacity:1}input:focus,select:focus,textarea:focus{border-color:var(--accent)}select{width:auto;max-width:100%}button{border:1px solid var(--border);background:var(--paper);cursor:pointer;border-radius:12px;min-height:44px;padding:8px 16px;transition:background .15s,border-color .15s,transform .15s}@media (hover:hover){button:not(:disabled):hover{border-color:var(--accent)}.card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}}button:disabled{opacity:.55;cursor:wait}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);box-shadow:var(--shadow);font-weight:600}button.link{color:var(--accent);background:0 0;border:none}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;max-width:900px;margin:0 auto;padding:24px 28px;display:flex}.brand{color:var(--text);letter-spacing:-.04em;align-items:center;gap:11px;font-size:1.45rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent);width:38px;height:38px;color:var(--accent-text);letter-spacing:-.08em;border-radius:50% 50% 50% 10%;flex:none;justify-content:center;align-items:center;font-size:1.05rem;font-style:italic;display:inline-flex}.brand-note{color:var(--muted);font-size:.8rem}.container{max-width:900px;padding:30px 28px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 42px);margin:0 auto}.fullscreen{flex-direction:column;justify-content:center;max-width:460px;min-height:100dvh;margin:0 auto;padding:28px;display:flex}.eyebrow{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:0 0 14px;font-size:.67rem;font-weight:700}.page-heading{max-width:650px;padding:12px 0 20px}.page-hero{background:var(--hero);border:1px solid var(--border);border-radius:22px;justify-content:space-between;align-items:center;gap:24px;padding:32px;display:flex}.hero-description{color:var(--muted);max-width:360px}.hero-link{border-bottom:1px solid var(--accent);align-items:center;gap:18px;margin-top:16px;padding-bottom:4px;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-flex}.pantry-count{border:1px solid var(--border);text-align:center;background:var(--paper);border-radius:60px 60px 14px 14px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:114px;height:140px;display:flex;transform:rotate(4deg)}.pantry-count strong{color:var(--accent);font:2.7rem Georgia,serif}.pantry-count span{color:var(--muted);font-size:.7rem;line-height:1.4}.section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin:30px 0 14px;display:flex}.section-heading h2{margin:0}.section-heading>span{text-align:right;font-size:.75rem}.stack{flex-direction:column;gap:14px;display:flex}.muted{color:var(--muted)}.block{display:block}.error,.notice{overflow-wrap:anywhere;border-radius:10px;padding:12px 14px}.error{color:var(--error);background:var(--bad-bg)}.notice{color:var(--accent);background:var(--ok-bg)}.need{color:var(--warn);font-size:.85rem}.have{color:var(--accent);white-space:nowrap;font-size:.85rem}.pad{padding:16px}.grow{overflow-wrap:anywhere;flex:1;min-width:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:24px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-shell{grid-template-columns:1.15fr 1fr;align-items:center;gap:72px;max-width:1140px;min-height:100dvh;margin:0 auto;padding:40px;display:grid}.login-story{background:var(--hero);border:1px solid var(--border);border-radius:28px;flex-direction:column;justify-content:space-between;align-self:stretch;padding:36px;display:flex}.login-intro{margin-top:56px}.login-intro h1{font-size:clamp(2.5rem,4vw,3.5rem)}.login-intro h1 em{color:var(--accent);font-weight:400}.login-intro>p:last-child{color:var(--muted);max-width:350px;font-size:.95rem}.login-panel{width:100%;max-width:380px}.login-panel h2{margin:0 0 10px;font-size:2.2rem}.login-panel>.muted{margin-bottom:28px}.login-form{gap:18px}.login-form label{flex-direction:column;gap:7px;font-size:.8rem;font-weight:700;display:flex}.login-form input{font-weight:400}.login-form .primary{min-height:50px;margin-top:4px}.login-form .link{font-size:.85rem}.login-footnote{color:var(--muted);text-align:center;border-top:1px solid var(--border);margin-top:28px;padding-top:22px;font-size:.7rem}.login-features{border-top:1px solid var(--border);color:var(--accent);justify-content:space-between;gap:12px;padding-top:20px;font-size:.65rem;display:flex}.login-features span:before{content:"✓";margin-right:5px}.kitchen-art{justify-content:center;align-items:center;min-height:255px;display:flex;position:relative}.art-plate{background:#fffdf4;border:1px solid #dfdfc9;border-radius:50%;width:207px;height:207px;padding:24px;transform:rotate(-15deg);box-shadow:10px 16px #263b2810,inset 0 0 0 10px #f8f5e9,inset 0 0 0 12px #e5e4cf}.art-food{background:radial-gradient(at 33% 32%,#e5b755 0 9%,#0000 10%),radial-gradient(at 62% 62%,#d88156 0 13%,#0000 14%),radial-gradient(at 65% 22%,#ba503c 0 9%,#0000 10%),radial-gradient(at 24% 66%,#c5d393 0 17%,#0000 18%),radial-gradient(at 75% 45%,#46714b 0 21%,#0000 22%),radial-gradient(at 42% 53%,#7c9c50 0 28%,#0000 29%),radial-gradient(at 50% 84%,#476e42 0 23%,#0000 24%),#d1dba6;border-radius:50%;width:100%;height:100%;box-shadow:inset 0 0 14px #2b49211a}.art-caption{color:var(--muted);font:italic .8rem Georgia,serif;position:absolute;top:8px;left:0;transform:rotate(-8deg)}.art-label{color:var(--accent);font:italic .85rem Georgia,serif;position:absolute;bottom:18px;right:-4px;transform:rotate(-6deg)}.tabbar{z-index:10;width:min(440px,100% - 24px);padding:5px 5px max(5px, env(safe-area-inset-bottom));background:var(--paper);border:1px solid var(--border);border-radius:22px;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #172d2220}.tab{min-height:56px;color:var(--muted);border-radius:16px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.72rem;text-decoration:none;display:flex}.tab>span:first-child{font-size:1.15rem}.tab.active{color:var(--accent);background:var(--hero);font-weight:700}.segmented{background:var(--surface);border:1px solid var(--border);border-radius:15px;gap:5px;margin-bottom:14px;padding:5px;display:flex}.seg{background:0 0;border:none;flex:1;font-size:.85rem}.seg.active{background:var(--accent);color:var(--accent-text);box-shadow:var(--shadow);font-weight:700}.search{min-height:54px;margin-bottom:8px}.results{border:1px solid var(--border);background:var(--paper);border-radius:14px;margin:0 0 16px;padding:0;list-style:none;overflow:hidden}.result{border:none;border-bottom:1px solid var(--border);text-align:left;background:var(--paper);border-radius:0;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:54px;display:flex}.result>.muted{text-align:right;font-size:.72rem}.results li:last-child .result{border-bottom:none}.category{border:1px solid var(--border);background:var(--paper);border-radius:14px;margin-bottom:9px;overflow:hidden}.category summary{cursor:pointer;align-items:center;gap:12px;min-height:62px;padding:10px 20px;font-size:.9rem;font-weight:600;list-style:none;display:flex}.category summary::-webkit-details-marker{display:none}.category summary:after{content:"+";color:var(--accent);text-align:center;width:18px;font-size:1.25rem}.category[open] summary{border-bottom:1px solid var(--border);background:var(--hero)}.category[open] summary:after{content:"−"}.category-count{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.68rem;font-weight:400}.chips{flex-wrap:wrap;gap:8px;padding:16px;display:flex}.chip{background:var(--bg);border-radius:999px;padding:8px 14px;font-size:.8rem}.chip.selected{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.pantry-list{border:1px solid var(--border);background:var(--paper);border-radius:14px;margin:0;padding:0 16px;list-style:none}.pantry-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 0;font-size:.9rem;display:flex}.pantry-row:last-child{border-bottom:none}.pantry-row select{max-width:115px;min-height:44px;font-size:.8rem}.icon-btn{background:0 0;flex:none;width:44px;padding:0}.card{border:1px solid var(--border);background:var(--paper);color:inherit;border-radius:18px;flex-direction:column;gap:10px;padding:22px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.recipe-card strong{font-size:1.4rem;font-weight:400;line-height:1.2}.recipe-card>.muted{font-size:.8rem}.recipe-card-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.recipe-status{color:var(--warn);text-transform:uppercase;letter-spacing:.09em;font-size:.62rem;font-weight:700}.recipe-status.ready{color:var(--accent)}.recipe-arrow{color:var(--accent);font-size:1.3rem}.diet-banner{border:1px solid var(--border);background:var(--hero);color:var(--text);border-radius:14px;margin:4px 0 24px;padding:16px 20px;font-size:.85rem;text-decoration:none;display:block}.show-more{width:100%;margin-top:22px}.back{margin:0 0 24px;font-size:.85rem;display:inline-block}.badge{border-radius:999px;padding:7px 14px;font-size:.75rem;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-bg);color:var(--accent)}.badge.bad{background:var(--bad-bg);color:var(--error)}.ingredients{margin:0;padding:0;list-style:none}.ingredients li{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:12px 0;display:flex}.steps{padding-left:1.5rem}.steps li{margin-bottom:18px;padding-left:8px}.steps li::marker{color:var(--accent);font:italic 1.25rem Georgia,serif}.nutrition{border-collapse:collapse;width:100%}.nutrition th{text-align:left;color:var(--muted);font-weight:400}.nutrition th,.nutrition td{border-bottom:1px solid var(--border);padding:10px 0}.nutrition td{text-align:right}.diet-list{border:none;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:0;display:grid}.diet-option{border:1px solid var(--border);cursor:pointer;background:var(--paper);border-radius:16px;align-items:flex-start;gap:12px;padding:18px;display:flex}.diet-option.selected{border-color:var(--accent);background:var(--hero);box-shadow:inset 0 0 0 1px var(--accent)}.diet-option input{width:18px;height:18px;min-height:18px;accent-color:var(--accent);flex:none;margin:4px 0 0}.diet-option .muted{margin-top:5px;font-size:.78rem}.account{border-top:1px solid var(--border);margin-top:32px;padding-top:22px;font-size:.85rem}@media (width<=760px){.login-shell{grid-template-columns:1fr;gap:32px;max-width:510px;padding:20px 20px 36px}.login-story{padding:26px}.login-intro{margin-top:28px}.login-intro h1{font-size:2.5rem}.kitchen-art{min-height:185px}.art-plate{width:155px;height:155px;padding:20px}.art-caption{font-size:.7rem;top:10px}.art-label{font-size:.75rem}.login-panel{margin:0 auto}}@media (width<=540px){.app-header{padding:18px 20px}.brand-note{display:none}.container{padding:20px 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 32px)}.page-hero{gap:16px;padding:24px 20px}.page-hero h1{font-size:2rem}.pantry-count{width:75px;height:110px}.pantry-count strong{font-size:2rem}.pantry-count span{font-size:.6rem}.hero-description{font-size:.85rem}.page-hero .eyebrow{font-size:.6rem}.section-heading{flex-direction:column;align-items:flex-start;gap:5px}.section-heading>span{text-align:left}.diet-list{grid-template-columns:1fr}.login-features{gap:6px;font-size:.6rem}.login-story{padding:22px}.login-intro h1{font-size:2.2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
