:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--olive:#596b48;--olive-deep:#46563a;--sage:#a7b59a;--mist:#e9eee4;--sand:#f4f0e7;--cream:#faf8f2;--white:#fff;--brown:#776d5d;--ink:#30372f;--line:#e8e3d7;--alert:#9a4f36;--serif:"Lora", Georgia, "Times New Roman", serif;--sans:"DM Sans", "Helvetica Neue", Arial, sans-serif;--r-s:12px;--r-m:18px;--r-l:26px;--shadow:0 10px 30px #30372f14;--ease:cubic-bezier(.22, 1, .36, 1);--gutter:20px}[hidden]{display:none!important}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}body{background:var(--cream);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}body.locked{overflow:hidden}h1,h2,h3,p,ul,ol,dl,dd{margin:0;padding:0}ul,ol{list-style:none}button,input,textarea{font:inherit;color:inherit}button,label{touch-action:manipulation}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--olive);outline-offset:2px}.icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:24px;height:24px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.screen{min-width:0;max-width:560px;padding-left:max(var(--gutter), env(safe-area-inset-left,0px));padding-right:max(var(--gutter), env(safe-area-inset-right,0px));padding-block:calc(20px + env(safe-area-inset-top,0px)) calc(32px + env(safe-area-inset-bottom,0px));align-content:start;gap:24px;margin:0 auto;display:grid}.screen>*{min-width:0}.screen.tabbed{padding-bottom:calc(108px + env(safe-area-inset-bottom,0px))}.screen.entry{padding-block-start:calc(12vh + env(safe-area-inset-top,0px))}.page-head{gap:4px;display:grid}.title{font-family:var(--serif);letter-spacing:-.005em;text-wrap:balance;font-size:1.875rem;font-weight:500;line-height:1.18}.title.small{font-size:1.5rem}.sheet-title{font-family:var(--serif);text-wrap:balance;font-size:1.5rem;font-weight:500;line-height:1.2}.section{font-family:var(--serif);font-size:1.1875rem;font-weight:500;line-height:1.3}.lede{color:var(--brown);max-width:60ch;font-size:1.0625rem}.eyebrow{color:var(--brown);font-size:.875rem}.cap:first-letter{text-transform:uppercase}.muted{color:var(--brown);font-size:.9375rem}.note{color:var(--brown);font-size:.875rem;line-height:1.45}.note.center{text-align:center}.empty{color:var(--brown);text-align:center;padding-block:16px}.status-err{color:var(--alert);font-weight:500}.stack-s{gap:12px;min-width:0;display:grid}.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.btn,.btn-soft{text-align:center;cursor:pointer;min-height:52px;transition:transform .2s var(--ease), background .2s ease;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-weight:500;line-height:1.25;display:flex}.btn{background:var(--olive);color:var(--white)}.btn:active{background:var(--olive-deep);transform:scale(.98)}.btn:disabled{opacity:.5}.btn-soft{background:var(--mist);color:var(--olive-deep);font-size:.9375rem}.btn-soft:active{transform:scale(.98)}.with-icon .icon{width:20px;height:20px}.btn-text{color:var(--brown);text-underline-offset:3px;justify-self:center;padding:10px;font-size:.9375rem;text-decoration:underline}.btn-text.tight{padding:6px 2px}.btn-text.danger{color:var(--alert)}.btn.sticky{bottom:calc(16px + env(safe-area-inset-bottom,0px));position:sticky}.round-soft{background:var(--sand);width:42px;height:42px;color:var(--ink);transition:transform .2s var(--ease), opacity .2s;border-radius:50%;flex:none;place-items:center;font-size:1.25rem;line-height:1;display:grid}.round-soft:active:not(:disabled){transform:scale(.92)}.round-soft:disabled{opacity:.4}.round-soft.small{width:34px;height:34px}.round-soft .icon{width:20px;height:20px}.icon-btn{width:32px;height:32px;color:var(--brown);flex:none;place-items:center;display:grid}.icon-btn .icon{width:18px;height:18px}.field{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);width:100%;min-height:50px;padding:12px 16px;font-size:16px;transition:border-color .2s}.field:focus{border-color:var(--olive);outline:0}.field::placeholder{color:var(--brown);opacity:.75}textarea.field{resize:vertical}.search{background:var(--sand);border-color:#0000}.field-wrap{color:var(--brown);gap:6px;min-width:0;font-size:.9375rem;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--sand);min-height:40px;color:var(--ink);white-space:nowrap;transition:background .2s ease, color .2s ease, transform .2s var(--ease);border-radius:999px;padding:8px 16px;font-size:.9375rem}.chip:active{transform:scale(.96)}.chip[aria-pressed=true]{background:var(--olive);color:var(--white)}.rail{margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scrollbar-width:none;-webkit-overflow-scrolling:touch;overflow-x:auto}.rail::-webkit-scrollbar{display:none}.rail .chips{flex-wrap:nowrap;width:max-content}.today{text-align:left;cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:22px;width:100%;display:grid}.today.plain{cursor:default}.today-bars{gap:12px;min-width:0;display:grid}.ring{flex:none;position:relative}.ring svg{width:100%;height:100%;display:block;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:7px}.ring-track{stroke:var(--mist)}.ring-bar{stroke:var(--olive);stroke-linecap:round;transition:stroke-dashoffset .9s var(--ease)}.ring-center{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.ring-num{font-family:var(--serif);font-variant-numeric:lining-nums tabular-nums;font-size:1.75rem;line-height:1.1;display:block}.ring-sub{color:var(--brown);font-size:.75rem;display:block}.bar{gap:5px;display:grid}.bar-head{justify-content:space-between;gap:8px;font-size:.875rem;display:flex}.bar-value{color:var(--brown);font-variant-numeric:tabular-nums}.bar-track{background:var(--mist);border-radius:999px;height:5px;overflow:hidden}.bar-fill{background:var(--sage);height:100%;transition:width .7s var(--ease);border-radius:999px}.slots{gap:10px;display:flex}.slot{border-radius:var(--r-m);background:var(--sand);text-align:left;transition:transform .2s var(--ease), background .25s ease;flex:1 0 118px;gap:2px;padding:14px 16px;display:grid}.slot:active{transform:scale(.97)}.slot.logged{background:var(--mist)}.slot-name{font-weight:500}.slot-value{color:var(--brown);font-size:.8125rem}.water{gap:10px;display:grid}.water-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.water-label{font-family:var(--serif);align-items:center;gap:6px;font-size:1.1875rem;font-weight:500;display:inline-flex}.water-label .icon{width:20px;height:20px;color:var(--olive)}.water-row{align-items:center;gap:12px;display:flex}.glasses{flex:1;grid-template-columns:repeat(8,1fr);gap:5px;display:grid}.glasses span{background:var(--mist);border-radius:999px;height:8px;transition:background .25s}.glasses span.on{background:var(--olive)}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;display:grid}.card{min-width:0;position:relative}.card-open{text-align:left;width:100%;transition:transform .25s var(--ease);gap:4px;display:grid}.card-open:active{transform:scale(.98)}.photo{background:var(--mist);display:block;overflow:hidden}.photo img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .45s}.photo img.ready{opacity:1}.card-photo{aspect-ratio:4/5;border-radius:var(--r-m);margin-block-end:6px}.card-title{font-family:var(--serif);font-size:1.0313rem;font-weight:500;line-height:1.25}.card-meta{color:var(--brown);font-size:.8125rem}.card.wide .card-photo{aspect-ratio:4/3;border-radius:var(--r-l)}.card.wide .card-title{font-size:1.375rem}.rail.cards{gap:14px;display:flex}.rail.cards .card{flex:0 0 62%;max-width:230px}.fav{width:38px;height:38px;color:var(--ink);transition:transform .25s var(--ease);border-radius:50%;place-items:center;display:grid}.fav .icon{width:20px;height:20px}.fav.on .icon{fill:var(--olive);stroke:var(--olive)}.fav:active{transform:scale(.85)}.fav.floating{background:#faf8f2e0;position:absolute;top:8px;right:8px}.fridge-link{border-radius:var(--r-l);background:var(--mist);text-align:left;width:100%;color:var(--brown);transition:transform .2s var(--ease);grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:16px;font-size:.9375rem;display:grid}.fridge-link b{font-family:var(--serif);color:var(--ink);font-size:1.0625rem;font-weight:500}.fridge-link:active{transform:scale(.98)}.fridge-icon{color:var(--olive)}.recipe-hero{position:relative}.recipe-photo{aspect-ratio:1;border-radius:var(--r-l) var(--r-l) 0 0;width:100%;max-height:52vh}.recipe-body{padding:20px var(--gutter) calc(28px + env(safe-area-inset-bottom,0px));gap:18px;display:grid}.warning{border-radius:var(--r-s);background:var(--sand);color:var(--alert);padding:12px 14px;font-size:.9375rem}.values{border-block:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-block:14px;display:grid}.values div{text-align:center;gap:1px;min-width:0;display:grid}.values dd{font-family:var(--serif);font-variant-numeric:lining-nums tabular-nums;font-size:1.1875rem}.values dt{color:var(--brown);overflow-wrap:anywhere;font-size:.75rem}.plain-list li{border-bottom:1px solid var(--line);padding-block:9px}.plain-list li:last-child{border-bottom:0}.plain-list.pairs li{justify-content:space-between;gap:12px;display:flex}.plain-list.pairs li span:last-child{color:var(--brown);white-space:nowrap}.steps{counter-reset:step;gap:14px;display:grid}.steps li{counter-increment:step;grid-template-columns:26px 1fr;gap:6px;display:grid}.steps li:before{content:counter(step);font-family:var(--serif);color:var(--olive);font-size:1.125rem;line-height:1.35}.made{border-top:1px solid var(--line);gap:16px;padding-block-start:8px;display:grid}.add-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.scanner-hero{margin-inline:calc(var(--gutter) * -1);border-radius:0 0 var(--r-l) var(--r-l);background:var(--olive-deep);height:56vh;min-height:340px;margin-block-start:calc(-20px - env(safe-area-inset-top,0px));position:relative;overflow:hidden}.scanner-photo{position:absolute;inset:0}.scanner-hero:after{content:"";background:linear-gradient(#30372f0d 30%,#30372fad 100%);position:absolute;inset:0}.scanner-frame{inset:calc(28px + env(safe-area-inset-top,0px)) 36px 38%;z-index:1;position:absolute}.scanner-frame i{border:2px solid #ffffffe6;width:30px;height:30px;position:absolute}.scanner-frame i:first-child{border-bottom:0;border-right:0;border-top-left-radius:16px;top:0;left:0}.scanner-frame i:nth-child(2){border-bottom:0;border-left:0;border-top-right-radius:16px;top:0;right:0}.scanner-frame i:nth-child(3){border-top:0;border-right:0;border-bottom-left-radius:16px;bottom:0;left:0}.scanner-frame i:nth-child(4){border-top:0;border-left:0;border-bottom-right-radius:16px;bottom:0;right:0}.scanner-text{left:var(--gutter);right:var(--gutter);z-index:1;color:var(--white);gap:4px;display:grid;position:absolute;bottom:20px}.on-photo-text{color:var(--white)}.shot{border-radius:var(--r-l);background:var(--mist);position:relative;overflow:hidden}.shot img{object-fit:cover;width:100%;max-height:42vh}.thinking{color:var(--brown);justify-content:center;align-items:center;gap:12px;padding:14px;display:flex}.dots{gap:5px;display:inline-flex}.dots i{background:var(--olive);border-radius:50%;width:8px;height:8px}.estimate{border-radius:var(--r-l);background:var(--mist);gap:8px;padding:18px;display:grid}.estimate-main{font-family:var(--serif);font-variant-numeric:lining-nums tabular-nums;font-size:1.875rem;line-height:1.15}.estimate-rows{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.estimate-rows div{gap:1px;min-width:0;display:grid}.estimate-rows dt{color:var(--brown);overflow-wrap:anywhere;font-size:.75rem}.estimate-rows dd{font-variant-numeric:tabular-nums;font-size:.9375rem;font-weight:500}.foods li{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name name close""grams kcal kcal";align-items:center;gap:4px 8px;padding-block:10px;display:grid}.food-name{background:0 0;border:0;grid-area:name;width:100%;min-width:0;padding:4px 0;font-weight:500}.food-name:focus{box-shadow:0 1px 0 var(--olive);outline:0}.foods .icon-btn{grid-area:close}.foods-total{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;font-weight:600;display:flex}.food-grams{color:var(--brown);grid-area:grams;justify-items:start;gap:3px;font-size:.9375rem;display:grid}.food-grams-label{font-size:.75rem}.food-grams-field{align-items:center;gap:4px;display:inline-flex}.food-grams input{border:1px solid var(--line);border-radius:var(--r-s);background:var(--white);width:72px;min-height:38px;padding:6px 10px;font-size:16px}.food-grams.mine{color:var(--olive-deep)}.food-grams.mine input{border-color:var(--olive)}.food-kcal{color:var(--brown);font-variant-numeric:tabular-nums;grid-area:kcal;place-self:end;padding-bottom:9px;font-size:.9375rem}.day-head{text-align:center;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}.day-title{min-width:0}.slot-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.meals{gap:2px;display:grid}.meal{text-align:left;width:100%;transition:transform .2s var(--ease);grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;padding-block:8px;display:grid}.meal:active{transform:scale(.98)}.meal-img{object-fit:cover;background:var(--mist);width:56px;height:56px;color:var(--olive);border-radius:16px;place-items:center;display:grid;overflow:hidden}.meal-img .photo{width:100%;height:100%}.meal-img .icon{width:20px;height:20px}.meal-text{min-width:0;display:grid}.meal-name{font-weight:500;line-height:1.25}.meal-time{color:var(--brown);font-size:.8125rem}.meal-kcal{color:var(--brown);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.9375rem}.rows>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding-block:14px;display:flex}.rows dt{color:var(--brown)}.rows dd{text-align:right;font-weight:500}.options{gap:10px;display:grid}.option{border-radius:var(--r-m);background:var(--sand);text-align:left;cursor:pointer;min-height:58px;transition:transform .2s var(--ease), background .2s ease;align-items:center;gap:14px;padding:14px 18px;display:flex}.option:active{transform:scale(.98)}.option[aria-pressed=true]{background:var(--mist)}.option .icon{color:var(--olive)}.how{counter-reset:how;gap:14px;display:grid}.how li{counter-increment:how;grid-template-columns:34px 1fr;align-items:start;gap:12px;display:grid}.how li:before{content:counter(how);background:var(--mist);width:34px;height:34px;color:var(--olive-deep);font-family:var(--serif);border-radius:50%;place-items:center;display:grid}.url{color:var(--brown);word-break:break-all;font-size:.875rem}.splash{place-items:center;min-height:100dvh;display:grid}.field.code{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.5rem}.welcome{grid-template-rows:minmax(0,1fr) auto;max-width:560px;min-height:100dvh;margin:0 auto;display:grid}.welcome-photo{border-radius:0 0 var(--r-l) var(--r-l);min-height:42vh}.welcome-text{padding:26px var(--gutter) calc(24px + env(safe-area-inset-bottom,0px));gap:12px;display:grid}.consent{align-items:flex-start;gap:12px;font-size:.875rem;line-height:1.4;display:flex}.consent input{width:22px;height:22px;accent-color:var(--olive,#596b48);flex:none;margin:0}.consent a{color:inherit}.brand{font-family:var(--serif);color:var(--olive);font-size:1.125rem;font-style:normal}.onboarding{grid-template-rows:auto auto auto 1fr;min-height:100dvh}.onb-top{grid-template-columns:auto minmax(0,1fr) 46px;align-items:center;gap:12px;display:grid}.onb-spacer{width:46px}.progress{background:var(--mist);border-radius:999px;height:5px;overflow:hidden}.progress i{background:var(--olive);height:100%;transition:width .45s var(--ease);border-radius:999px;display:block}.big-number{font-family:var(--serif);font-variant-numeric:lining-nums tabular-nums;font-size:4rem;line-height:1}.stepper{gap:12px;display:flex}.onboarding .btn.sticky{align-self:end}.tabs{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding-left:max(6px, env(safe-area-inset-left,0px));padding-right:max(6px, env(safe-area-inset-right,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:#faf8f2f0;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:62px;color:var(--brown);align-content:center;justify-items:center;gap:2px;font-size:.6875rem;transition:color .2s;display:grid}.tab .icon{width:23px;height:23px}.tab[aria-current=page]{color:var(--olive-deep);font-weight:600}.tab-icon{width:44px;height:28px;transition:background .25s ease, transform .2s var(--ease);border-radius:999px;place-items:center;display:grid}.tab[aria-current=page] .tab-icon{background:var(--mist)}.tab:active .tab-icon{transform:scale(.92)}.tab-main .tab-icon{background:var(--olive);width:46px;height:34px;color:var(--white)}.tab-main[aria-current=page] .tab-icon{background:var(--olive-deep)}.sheet{z-index:30;-webkit-overflow-scrolling:touch;padding-top:calc(24px + env(safe-area-inset-top,0px));flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.veil{cursor:default;background:#30372f5c;position:fixed;inset:0}.panel{background:var(--cream);border-radius:var(--r-l) var(--r-l) 0 0;width:100%;max-width:560px;box-shadow:var(--shadow);flex:none;margin:auto auto 0;position:relative}.sheet.full .panel{min-height:100%}.flow{min-width:0;padding:22px var(--gutter) calc(28px + env(safe-area-inset-bottom,0px));gap:18px;display:grid;position:relative}.flow .flow{padding:0}.flow>*{min-width:0}.screen.entry .flow{padding:0}.sheet-close{background:var(--sand);border-radius:50%;justify-self:end;place-items:center;width:38px;height:38px;display:grid}.sheet-close .icon{width:18px;height:18px}.sheet-close.on-photo{background:#faf8f2e0;position:absolute;top:12px;left:12px}.recipe-hero .fav.floating{top:12px;right:12px}.toast{left:50%;bottom:calc(82px + env(safe-area-inset-bottom,0px));z-index:40;background:var(--ink);color:var(--cream);white-space:nowrap;border-radius:999px;padding:10px 18px;font-size:.9375rem;position:fixed;transform:translate(-50%)}@media (prefers-reduced-motion:no-preference){.screen.tabbed{animation:appear .32s var(--ease)}.sheet .veil{animation:.24s fade-in}.sheet .panel{animation:rise .42s var(--ease)}.sheet.closing .veil{animation:.2s forwards fade-out}.sheet.closing .panel{animation:.2s ease-in forwards sink}.toast{animation:toast-in .34s var(--ease)}.fav.on .icon{animation:pop .34s var(--ease)}.dots i{animation:1.2s ease-in-out infinite breathe}.dots i:nth-child(2){animation-delay:.16s}.dots i:nth-child(3){animation-delay:.32s}.shot.scanning:after{content:"";background:linear-gradient(115deg,#0000 30%,#ffffff80 50%,#0000 70%) 0 0/250% 100%;animation:1.8s ease-in-out infinite sweep;position:absolute;inset:0}@keyframes appear{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{to{opacity:0}}@keyframes rise{0%{opacity:.4;transform:translateY(48px)}to{opacity:1;transform:none}}@keyframes sink{to{opacity:0;transform:translateY(48px)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@keyframes pop{40%{transform:scale(1.25)}}@keyframes breathe{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@keyframes sweep{0%{background-position:120% 0}to{background-position:-40% 0}}}
