:root{--green:#0aad0a;--green-ink:#0b8a0b;--green-tint:#e8f6e8;--kale:#003d29;--cashew:#faf1e5;--carrot:#ff7009;--carrot-ink:#d65a00;--carrot-tint:#fff1e6;--bg:#f6f7f5;--card:#fff;--text:#242529;--muted:#6b6e76;--line:#e4e6e3;--danger:#c62828;--font:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--tabs-h:64px;--radius:18px;--shadow:0 1px 2px #003d290d, 0 6px 20px #003d290f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%}body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;overflow:hidden}#root{height:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}button:disabled{opacity:.45;cursor:default}:focus-visible{outline:3px solid var(--green);outline-offset:2px}a{color:var(--green-ink)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{flex-direction:column;height:100dvh;display:flex}.app>main{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.column{max-width:520px;margin:0 auto;padding:0 16px 28px}.masthead{padding:12px 16px;padding-top:max(12px, env(safe-area-inset-top));background:var(--card);border-bottom:1px solid var(--line);z-index:5;flex:none}.masthead-inner{max-width:488px;margin:0 auto}.column>.screen:first-child,.column>.taste-alert:first-child,.column>.welcome:first-child,.column>.setup:first-child{margin-top:16px}.brand{letter-spacing:-.02em;color:var(--kale);cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:8px;font-size:1.15rem;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{background:var(--green);color:#fff;border-radius:10px;place-items:center;width:30px;height:30px;display:grid}.screen{flex-direction:column;gap:16px;min-width:0;display:flex}.screen>*,.setup>*,.step-body>*{min-width:0}.screen-title{letter-spacing:-.025em;color:var(--kale);margin:10px 0 0;font-size:1.85rem;font-weight:800;line-height:1.15}.lede{color:var(--muted);max-width:60ch;margin:0}.hint{color:var(--muted);margin:0;font-size:.85rem}h2{color:var(--kale);letter-spacing:-.01em;margin:0;font-size:1.1rem;font-weight:800}h3{color:var(--kale);margin:0;font-size:.95rem;font-weight:700}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.spread{justify-content:space-between}.row.nowrap{flex-wrap:nowrap}.row.two>*{flex:1}.btn{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:10px 20px;font-weight:700;text-decoration:none;display:inline-flex}.btn.primary{background:var(--green);color:#fff}.btn.primary:hover:not(:disabled){background:var(--green-ink)}.btn.outline{background:var(--card);color:var(--kale);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.outline:hover{box-shadow:inset 0 0 0 1.5px var(--kale)}.btn.text{min-height:40px;color:var(--green-ink);align-self:flex-start;padding:8px 4px}.btn.block{width:100%;min-height:54px;font-size:1.05rem}.btn.small{min-height:36px;padding:6px 14px;font-size:.875rem}.btn.danger{color:var(--danger)}.btn.chip-btn{min-height:34px;color:var(--kale);background:var(--bg);padding:6px 12px;font-size:.85rem}.btn.chip-btn.on{background:var(--kale);color:#fff}.icon-button{background:var(--bg);width:40px;height:40px;color:var(--kale);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:.85rem;display:flex}.pill{background:var(--bg);color:var(--kale);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.link{align-items:center;gap:4px;font-weight:700;text-decoration:none;display:inline-flex}.dots{gap:3px;display:inline-flex}.dots i{background:var(--line);border-radius:50%;width:6px;height:6px}.dots i.on{background:var(--green)}.icon-circle{background:var(--cashew);width:48px;height:48px;color:var(--carrot-ink);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.controls{gap:10px;display:grid}.segmented{background:#eceeea;border-radius:999px;padding:4px;display:flex}.segmented button{min-height:38px;color:var(--muted);border-radius:999px;flex:1;padding:6px 8px;font-size:.85rem;font-weight:600}.segmented button.on{background:var(--card);color:var(--kale);box-shadow:0 1px 3px #0000001f}.check{color:var(--text);align-items:center;gap:10px;font-size:.95rem;display:flex}.check input{width:20px;height:20px;accent-color:var(--green)}.hero-card{background:var(--card);box-shadow:var(--shadow);border-radius:24px;flex-direction:column;gap:10px;padding:24px 20px 20px;display:flex}.hero-icon{background:var(--cashew);width:84px;height:84px;color:var(--carrot-ink);border-radius:50%;place-items:center;margin-bottom:4px;display:grid}.hero-label{color:var(--green-ink);margin:0;font-size:.85rem;font-weight:700}.meal-name{letter-spacing:-.025em;color:var(--kale);text-wrap:balance;margin:0;font-size:clamp(1.6rem,7vw,2.1rem);font-weight:800;line-height:1.12}.reasons{gap:8px;margin:8px 0;padding:0;list-style:none;display:grid}.reasons li{grid-template-columns:22px 1fr;align-items:start;gap:6px;font-size:.95rem;display:grid}.reasons li svg{margin-top:2px}.reasons .plus svg{color:var(--green)}.reasons .minus{color:var(--muted)}.reasons .minus svg{color:var(--carrot)}.reasons .must{background:var(--carrot-tint);border-radius:10px;padding:8px 10px 8px 6px;font-weight:600}.reasons .must svg{color:var(--carrot-ink)}.ingredients{gap:8px;margin-bottom:8px;display:grid}.ingredients h3{font-size:.85rem}.ing-chips{flex-wrap:wrap;gap:6px;display:flex}.ing-chip{background:var(--green-tint);color:var(--kale);border-radius:999px;align-items:center;gap:6px;padding:6px 12px 6px 9px;font-size:.85rem;font-weight:600;display:inline-flex}.ing-chips.have .ing-chip{background:var(--bg);color:var(--muted);font-weight:500}.meal-row-name{color:var(--kale);font-weight:700;line-height:1.25}.avoid p{color:var(--muted);margin:4px 0 0;font-size:.9rem}.empty h2{margin-bottom:6px}.chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{background:var(--card);min-height:38px;color:var(--kale);box-shadow:inset 0 0 0 1.5px var(--line);border-radius:999px;align-items:center;gap:4px;padding:6px 14px;font-size:.875rem;font-weight:600;display:inline-flex}.chip.toggle.on{background:var(--kale);color:#fff;box-shadow:none}.chip.toggle.bad.on{background:var(--carrot)}.chip.small{min-height:32px;font-size:.8rem}.rating{gap:8px;margin-top:8px;display:grid}.prompt{color:var(--kale);margin:0;font-weight:700}.prompt.small{margin-top:4px;font-size:.875rem}.field{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.field label,.field legend,.field .label{color:var(--kale);padding:0;font-size:.9rem;font-weight:700}.field legend{margin-bottom:8px}.field input[type=date]{appearance:none;text-align:left;min-width:0;max-width:100%;display:block}.field input[type=date]::-webkit-date-and-time-value{text-align:left}.field input:not([type=checkbox]),.field select,.search,.day select{border:1.5px solid var(--line);background:var(--card);width:100%;min-height:46px;color:var(--text);border-radius:12px;padding:10px 14px;font-size:16px}.field.inline .number{align-items:center;gap:6px;display:flex}.field.inline .number input{width:100px}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tile-picker{gap:12px;display:grid}.picker-label{color:var(--kale);font-weight:700}.search-box{min-height:48px;color:var(--muted);background:#eceeea;border-radius:999px;align-items:center;gap:8px;padding:0 14px;display:flex}.search-box:focus-within{background:var(--card);box-shadow:inset 0 0 0 2px var(--green)}.search-box input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:10px 0;font-size:16px}.add-own{background:var(--green);color:#fff;border-radius:999px;justify-self:start;align-items:center;gap:8px;min-height:44px;padding:8px 16px;font-weight:700;display:inline-flex}.tile-group{gap:10px;display:grid}.tile-group-title{color:var(--muted);margin-top:4px;font-size:.85rem;font-weight:700}.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.tile{background:var(--card);min-height:104px;box-shadow:inset 0 0 0 1.5px var(--line);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:14px 6px 12px;transition:box-shadow .12s,background .12s;display:flex;position:relative}.tile:hover{box-shadow:inset 0 0 0 1.5px var(--green)}.tile-icon{color:var(--kale);place-items:center;display:grid}.tile-label{color:var(--text);overflow-wrap:anywhere;font-size:.82rem;font-weight:600;line-height:1.2}.tile.on{background:var(--green-tint);box-shadow:inset 0 0 0 2px var(--green)}.tile.on .tile-icon{color:var(--green-ink)}.tile.on .tile-label{color:var(--kale);font-weight:700}.tile-check{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:absolute;top:7px;right:7px}.show-all{color:var(--green-ink);justify-self:start;padding:6px 2px;font-weight:700}@media (width>=420px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}.range-field{gap:6px;display:grid}.range-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.range-head label{color:var(--kale);font-weight:700}.range-head output{color:var(--green-ink);white-space:nowrap;font-size:1.3rem;font-weight:800}.range-field.big{background:var(--card);box-shadow:var(--shadow);border-radius:24px;gap:18px;padding:28px 18px 18px}.range-field.big .range-head{justify-content:center}.range-field.big output{letter-spacing:-.03em;font-size:2.6rem}.range{appearance:none;touch-action:pan-y;background:0 0;width:100%;height:40px;margin:0}.range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--green) var(--pct), #e2e5e0 var(--pct));border-radius:999px;height:10px}.range::-moz-range-track{background:#e2e5e0;border-radius:999px;height:10px}.range::-moz-range-progress{background:var(--green);border-radius:999px;height:10px}.range::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--green);background:#fff;border-radius:50%;width:32px;height:32px;margin-top:-11px;box-shadow:0 2px 6px #003d2940}.range::-moz-range-thumb{border:3px solid var(--green);background:#fff;border-radius:50%;width:28px;height:28px}.range-ends{color:var(--muted);justify-content:space-between;font-size:.8rem;display:flex}.names{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.name-row{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--line);border-radius:16px;align-items:center;gap:10px;padding:8px 8px 8px 10px;display:flex}.name-row:focus-within{box-shadow:inset 0 0 0 2px var(--green)}.avatar{background:var(--green-tint);width:40px;height:40px;color:var(--green-ink);border-radius:50%;flex-shrink:0;place-items:center;font-weight:800;display:grid}.name-row input{background:0 0;border:0;outline:none;flex:1;width:100%;min-width:0;padding:8px 4px;font-size:1.1rem;font-weight:600}.add-person{background:var(--green-tint);width:100%;min-height:56px;color:var(--green-ink);border-radius:16px;justify-content:center;align-items:center;gap:8px;font-size:1rem;font-weight:800;display:flex}.add-person span{font-size:1.5rem;line-height:1}.weights{gap:14px;display:grid}.weight-row{gap:8px;display:grid}.weight-name{color:var(--kale);font-weight:700}.choice-cards{gap:10px;display:grid}.choice-card{text-align:left;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--line);border-radius:16px;gap:4px;padding:16px 18px;display:grid}.choice-card.on{background:var(--green-tint);box-shadow:inset 0 0 0 2px var(--green)}.choice-title{color:var(--kale);font-weight:800}.choice-text{color:var(--muted);font-size:.9rem}.recent{gap:14px;display:grid}.recent-row{grid-template-columns:48px 1fr;align-items:end;gap:12px;display:grid}.recent-icon{background:var(--cashew);width:48px;height:48px;color:var(--carrot-ink);border-radius:50%;place-items:center;display:grid}.recent-icon .dash{color:var(--muted)}.welcome{flex-direction:column;gap:14px;padding-top:18px;display:flex}.welcome-art{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:4px;display:grid}.welcome-art span{aspect-ratio:1;background:var(--cashew);color:var(--carrot-ink);border-radius:18px;place-items:center;display:grid}.welcome-art span:nth-child(2n){background:var(--green-tint);color:var(--green-ink)}.welcome h1{letter-spacing:-.03em;color:var(--kale);margin:0;font-size:2.6rem;font-weight:800;line-height:1.12}.welcome-sub{color:var(--green-ink);margin:-6px 0 0;font-size:1.25rem;font-weight:700;line-height:1.3}.welcome .lede{margin:0}.benefits{background:var(--green-tint);border-radius:18px;gap:12px;margin:2px 0 0;padding:14px 16px;list-style:none;display:grid}.benefits li{grid-template-columns:22px minmax(0,1fr);align-items:start;gap:10px;line-height:1.4;display:grid}.benefits svg{color:var(--green-ink);margin-top:1px}.benefits strong{color:var(--kale)}.welcome-note{color:var(--muted);margin:0;font-size:.95rem}.taste-alert{background:var(--carrot-tint);border:1px solid color-mix(in srgb, var(--carrot) 25%, transparent);color:var(--kale);border-radius:14px;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:10px;margin:0 0 14px;padding:12px 14px;display:grid}.taste-alert svg{color:var(--carrot-ink);margin-top:2px}.taste-alert p{margin:0 0 8px;font-weight:600;line-height:1.35}.taste-alert .btn{min-height:38px;padding:0 14px}.btn.text.rather{text-underline-offset:3px;align-self:center;margin-top:-8px;text-decoration:underline}.order-tip{color:var(--muted);margin:0;font-size:.92rem}.setup{flex-direction:column;gap:10px;display:flex}.setup-top{align-items:center;gap:12px;margin:6px 0 8px;display:flex}.progress{background:#e2e5e0;border-radius:999px;flex:1;height:8px;overflow:hidden}.progress span{background:var(--green);border-radius:999px;height:100%;transition:width .22s ease-out;display:block}.step-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700}.step-section{color:var(--carrot-ink);margin:0;font-size:.85rem;font-weight:700}.step-title{letter-spacing:-.025em;color:var(--kale);text-wrap:balance;margin:0;font-size:1.7rem;font-weight:800;line-height:1.15}.step-body{gap:14px;margin-top:8px;display:grid}.sticky-actions{z-index:2;padding:8px 0 calc(12px + env(safe-area-inset-bottom));background:var(--bg);justify-items:center;gap:4px;margin-top:12px;display:grid;position:sticky;bottom:0}.sticky-actions:before{content:"";pointer-events:none;background:linear-gradient(to bottom, color-mix(in srgb, var(--bg) 0%, transparent), var(--bg) 85%);height:72px;position:absolute;bottom:100%;left:0;right:0}.welcome .sticky-actions{margin-top:40px}.sticky-actions .btn.text{align-self:center}.sections{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.section{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}.section summary{cursor:pointer;color:var(--kale);justify-content:space-between;align-items:center;gap:12px;padding:18px;font-size:1.05rem;font-weight:800;list-style:none;display:flex}.section summary::-webkit-details-marker{display:none}.section .chev{color:var(--muted);transition:transform .15s}.section[open] .chev{transform:rotate(180deg)}.section-body{grid-template-columns:minmax(0,1fr);gap:26px;padding:0 18px 20px;display:grid}.section-step{grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;display:grid}.save-bar{background:var(--card);border-top:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:.9rem;font-weight:600;display:flex}.save-bar .saved{color:var(--green-ink)}.save-bar.dirty{background:var(--carrot-tint);color:var(--kale)}.save-bar .btn{min-height:42px}.toast{left:50%;bottom:calc(var(--tabs-h) + 76px + env(safe-area-inset-bottom));background:var(--kale);color:#fff;z-index:30;border-radius:999px;padding:10px 20px;font-weight:700;position:fixed;transform:translate(-50%)}.tabs{background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;justify-content:center;display:flex}.tabs button{max-width:104px;height:var(--tabs-h);color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:.72rem;font-weight:600;display:flex}.tabs button[aria-current=page]{color:var(--green-ink);font-weight:800}.sheet-backdrop{z-index:20;background:#003d2959;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);color:var(--text);width:100%;max-width:520px;max-height:88vh;padding:20px 16px calc(24px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;animation:.18s ease-out rise;overflow-y:auto}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.sheet-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.sheet .lede{margin-bottom:14px}.sheet-actions{gap:10px;display:grid}.swap-options{gap:8px;display:grid}.last-night{gap:18px;display:grid}.last-night .hint{margin:-6px 0 0}.last-night-group{gap:10px;display:grid}.last-night .skip{place-self:center}.swap-options button{text-align:left;background:var(--bg);min-height:54px;color:var(--kale);border-radius:14px;align-items:center;gap:12px;padding:12px 16px;font-weight:600;display:flex}.swap-options button svg{color:var(--green-ink);flex-shrink:0}.meal-form{gap:14px;display:grid}.week{gap:12px;margin:0;padding:0;list-style:none;display:grid}.day{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);gap:10px;padding:14px;display:grid}.day.today{box-shadow:inset 0 0 0 2px var(--green), var(--shadow)}.day-head{grid-template-columns:76px 1fr;align-items:center;gap:8px;display:grid}.day-label{color:var(--kale);font-weight:800}.day-meal{align-items:flex-start;gap:12px;display:flex}.day-meal-text{gap:6px;min-width:0;display:grid}.day-meal-name{color:var(--kale);font-weight:800;line-height:1.25;text-decoration:none}.day-why{color:var(--green-ink);margin:0;font-size:.85rem}.day-empty{color:var(--muted);margin:0}.shopping{gap:8px;display:grid}.shop-section h3{margin:10px 0 6px}.shop-section ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.shop-section li{color:var(--text);align-items:center;gap:10px;display:flex}.shop-section li svg{color:var(--carrot-ink)}.times{color:var(--muted)}.add-past{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:minmax(0,1fr);gap:12px;padding:18px;display:grid;overflow:hidden}.log,.meal-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.log li,.meal-list li{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.log li>.row{flex-wrap:nowrap;align-items:center}.log-text{flex:1;min-width:0}.log-date{color:var(--muted);font-size:.8rem;display:block}.log-name{color:var(--kale);font-weight:700}.acceptance{gap:10px;padding:16px 18px;display:grid}.acceptance .hint{margin:0}.acceptance-line{color:var(--kale);margin:0;font-weight:700;line-height:1.3}.acceptance-bar{background:var(--bg);border-radius:999px;height:8px;position:relative}.acceptance-bar .fill{background:var(--carrot);border-radius:999px;position:absolute;inset:0 auto 0 0}.acceptance.good .acceptance-bar .fill{background:var(--green)}.acceptance-bar .target{background:var(--kale);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.log-instead{color:var(--carrot);font-size:.8rem;display:block}.meal-list li{align-items:center;gap:12px;display:flex}.meal-list li.off{opacity:.5}.meal-row{flex:1;gap:3px;min-width:0;display:grid}.fingerprint{color:var(--muted);font-size:.8rem}.meal-list .row{flex-direction:column;align-items:flex-end;gap:0}.search{flex:1;width:auto;min-width:0;border-radius:999px!important}.empty-line{color:var(--muted)}@media (prefers-reduced-motion:reduce){.sheet,.progress span,.tile,.section .chev{transition:none;animation:none}}@media (width<=360px){.grid2{grid-template-columns:1fr}}.cloud{gap:12px;margin-top:20px;display:grid}.cloud-title{align-items:center;gap:8px;display:flex}.cloud-title svg{color:var(--green);flex-shrink:0}.cloud-who{color:var(--kale);overflow-wrap:anywhere;margin:0;font-weight:700}.cloud-status{color:var(--green-ink);margin:-6px 0 0;font-size:.9rem}.cloud-status.offline,.cloud-status.error{color:var(--carrot)}.sign-in{gap:12px;display:grid}.sign-in form{gap:10px;display:grid}.sign-in .field{margin:0}.sign-in-or{color:var(--muted);align-items:center;gap:10px;margin:0;font-size:.85rem;display:flex}.sign-in-or:before,.sign-in-or:after{content:"";background:var(--line);flex:1;height:1px}.cloud-sent{background:var(--cashew);color:var(--kale);overflow-wrap:anywhere;border-radius:12px;align-items:flex-start;gap:8px;margin:0;padding:12px 14px;display:flex}.cloud-sent svg{flex-shrink:0;margin-top:2px}.hint.error{color:var(--carrot)}.sheet .sign-in{margin-top:14px}
