@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Young Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/young-serif-latin-400-normal-DIMmNPI9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Young Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/young-serif-latin-ext-400-normal-DzElnxZw.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--page:#f4f1ea;--surface:#fffdf9;--surface-2:#faf7f1;--ink:#2b2724;--line:#e6e0d4;--btn-line:#ddd5c7;--btn:#f1ece3;--btn-hover:#e6dfd2;--ink-3:#6b6358;--ink-2:#8a8277;--muted:#a39a8c;--faint:#b5ad9f;--dash:#d6cebf;--div:#eee8dd;--div-2:#e0d9cc;--drop:#f4efe6;--banner-btn:#4a443e;--warn:#b24a2e;--warn-bg:#fcf1ec;--warn-line:#d98a73;--serif:"Young Serif", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--page:#1b1916;--surface:#252220;--surface-2:#211e1b;--ink:#ede7dd;--line:#36322d;--btn-line:#433d37;--btn:#322e2a;--btn-hover:#3d3833;--ink-3:#c2b9ac;--ink-2:#a69d90;--muted:#8f8679;--faint:#72695e;--dash:#4d463f;--div:#322e29;--div-2:#3a352f;--drop:#2f2b27;--banner-btn:#d3cabd;--warn:#ec9477;--warn-bg:#3a241c;--warn-line:#8f4c37}}body{background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;margin:0;font-family:Figtree,system-ui,sans-serif}button{cursor:pointer;touch-action:manipulation;font-family:inherit;transition:background-color .12s,border-color .12s,color .12s,opacity .12s}button:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.meal{--m-bg:oklch(.93 .045 var(--h));--m-border:oklch(.84 .07 var(--h));--m-ink:oklch(.37 .09 var(--h));--m-btn:oklch(.87 .065 var(--h));--m-btn-hover:oklch(.81 .08 var(--h));background:var(--m-bg);border:1px solid var(--m-border);color:var(--m-ink)}@media (prefers-color-scheme:dark){.meal{--m-bg:oklch(.33 .055 var(--h));--m-border:oklch(.43 .07 var(--h));--m-ink:oklch(.91 .06 var(--h));--m-btn:oklch(.41 .07 var(--h));--m-btn-hover:oklch(.47 .08 var(--h))}}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.page{box-sizing:border-box;flex-direction:column;gap:24px;max-width:1400px;margin:0 auto;padding:40px 32px 48px;display:flex}.header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.header-left{flex-direction:column;gap:10px;min-width:0;display:flex}.title{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-size:32px;font-weight:400;line-height:1.1}.nav{align-items:center;gap:6px;display:flex}.nav-btn{border:1px solid var(--btn-line);background:var(--surface);height:38px;color:var(--ink);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;font-weight:500;display:flex}.nav-btn--icon{width:38px;padding:0;font-size:18px;font-weight:400}.settings{flex:none;position:relative}.settings-btn{border:1px solid var(--btn-line);background:var(--surface);width:38px;height:38px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;padding:0;display:flex}.settings-btn--open{background:var(--btn)}.settings-backdrop{z-index:5;position:fixed;inset:0}.settings-popover{z-index:6;background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:14px;width:272px;padding:14px 16px 16px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 30px #281e0f24}.setting{justify-content:space-between;align-items:center;gap:12px;display:flex}.setting-text{flex-direction:column;gap:1px;display:flex}.setting-title{font-size:14px;font-weight:600}.setting-sub{color:var(--ink-2);font-size:12px}.setting-divider{background:var(--div);height:1px}.move-banner{z-index:2;background:var(--ink);color:var(--surface);border-radius:12px;align-items:center;gap:10px;padding:6px 6px 6px 14px;font-size:14px;display:flex;position:sticky;top:8px;box-shadow:0 4px 14px #281e0f2e}.move-banner>span{flex:1;min-width:0}.move-banner>button{background:var(--banner-btn);height:36px;color:var(--surface);border:none;border-radius:8px;padding:0 12px;font-size:14px;font-weight:600}.grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;display:grid}.day{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;min-height:480px;display:flex;box-shadow:0 1px 2px #3c2d140a}.day--weekend{background:var(--surface-2)}.day--today{border-color:var(--ink)}.day-head{justify-content:space-between;align-items:baseline;padding:12px 14px 10px;display:flex}.day-name{flex-direction:column;gap:2px;display:flex}.day-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-size:12px;font-weight:600}.day-date{font-family:var(--serif);font-size:24px;line-height:1}.today-badge{letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--surface);border-radius:6px;padding:3px 7px;font-size:11px;font-weight:600}.dinner{outline-offset:-1px;border-radius:12px;flex-direction:column;gap:6px;margin:0 8px;padding:6px;display:flex}.dinner>.section-label{padding:0 2px}.dinner--over{background:var(--drop);outline:1.5px dashed var(--faint)}.add-dinner{border:1px dashed var(--dash);color:var(--muted);background:0 0;border-radius:10px;padding:14px 8px;font-size:13px;font-weight:600}.move-target{border:1.5px dashed var(--ink);background:var(--surface);min-height:48px;color:var(--ink);text-align:left;border-radius:10px;padding:10px 12px;font-size:14px;font-weight:600}.card{cursor:grab;border-radius:10px;flex-direction:column;gap:10px;padding:10px 10px 8px;display:flex;position:relative}.card--dragging{opacity:.4}.card--moving{outline:2px solid var(--m-ink);outline-offset:2px}.card-name{box-sizing:border-box;width:100%;min-height:35px;color:var(--m-ink);resize:none;word-break:normal;overflow-wrap:normal;cursor:text;background:0 0;border:none;margin:0;padding:0 18px 0 0;font-family:inherit;font-size:14px;font-weight:600;line-height:1.25;display:block;overflow:hidden}.card-name:focus,.card-name:focus-visible{outline:none}.card-remove{width:20px;height:20px;color:var(--m-ink);opacity:.5;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:flex;position:absolute;top:6px;right:6px}.card-remove:focus-visible{opacity:1}.card-leftovers{border-top:1px solid var(--m-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;min-width:0;padding-top:8px;display:flex}.card-leftovers-label{opacity:.8;font-size:12px}.move-btn{color:var(--m-ink);background:0 0;border:none;padding:0;font-size:12px;font-weight:600;display:none}.stepper{flex:none;align-items:center;gap:2px;display:flex}.stepper button{border:none;border-radius:6px;width:22px;height:22px;padding:0;line-height:1}.stepper output{text-align:center;min-width:18px;font-weight:600}.stepper--meal button{background:var(--m-btn);color:var(--m-ink);font-size:15px}.stepper--meal output{font-size:14px}.stepper--neutral button,.stepper--settings button{background:var(--btn);color:var(--ink-3);font-size:14px}.stepper--neutral output{font-size:13px}.stepper--settings{gap:4px}.stepper--settings button{border-radius:8px;width:28px;height:28px;font-size:16px;line-height:normal}.stepper--settings output{min-width:22px;font-size:15px}.divider{background:var(--div);height:1px;margin:12px 14px 0}.lunch{flex-direction:column;flex:1;gap:6px;padding:12px 14px;display:flex}.lunch-body,.chips{flex-direction:column;gap:6px;display:flex}.lunch-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.chip{border-radius:8px;justify-content:space-between;align-items:flex-start;gap:4px;padding:5px 7px;font-size:13px;font-weight:500;line-height:1.25;display:flex}.chip-name{min-width:0}.chip-age{opacity:.75;flex:none;font-weight:600}.chip-age--spoiled{color:var(--warn)}.chip-short{border:1px dashed var(--warn-line);background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:5px 8px;font-size:13px;font-weight:500}.lunch-none{color:var(--muted);font-size:13px}.fridge{border-top:1px dashed var(--div-2);flex-direction:column;gap:6px;margin-top:auto;padding-top:10px;display:flex}.fridge-squares{flex-wrap:wrap;gap:3px;min-height:12px;display:flex}.fridge-square{border-radius:3px;width:12px;height:12px}.fridge-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.surplus{border-top:1px solid var(--div-2);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding-top:16px;display:flex}.surplus-lead{color:var(--ink-2);margin-right:4px;font-size:13px}.surplus-pills{display:contents}.pill{border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:500;display:flex}.pill-count{font-weight:600}.pill-warn{color:var(--warn);font-weight:600}.surplus-none{color:var(--faint);font-size:13px}@media (hover:hover){.nav-btn:hover,.settings-btn:hover{background:var(--btn)}.add-dinner:hover{border-color:var(--ink-2);color:var(--ink);background:var(--surface)}.card-remove:hover{opacity:1;background:var(--m-btn)}.stepper--meal button:hover{background:var(--m-btn-hover)}.stepper--neutral button:hover,.stepper--settings button:hover{background:var(--btn-hover)}}@media (pointer:coarse){.move-btn{height:22px;display:block}.card-leftovers-label{margin-left:auto}.card{cursor:default}}@media (max-width:1179.98px){.page{padding:28px 20px 40px}.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:699.98px){.page{gap:14px;padding:20px 14px 36px}.header{gap:8px}.title{font-size:26px;line-height:1.15}.nav-btn{border-radius:12px;height:44px}.nav-btn--icon{width:44px;font-size:20px}.settings-btn{width:44px;height:44px}.stepper--settings button{width:40px;height:40px}.grid{grid-template-columns:minmax(0,1fr);gap:14px}.day{min-height:0}.day-head{justify-content:flex-start;gap:8px;padding:12px 14px 0}.day-name{display:contents}.day-date{font-size:20px}.today-badge{align-self:center;margin-left:auto}.dinner{border-radius:0;margin:0;padding:10px 14px 0}.dinner>.section-label{padding:0}.add-dinner{min-height:48px;color:var(--ink-2);text-align:left;padding:10px 12px;font-size:14px}.card{cursor:default;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:0 4px;padding:2px 2px 4px 12px;display:grid}.card-name{min-height:0;padding:11px 0 9px;font-size:16px}.card-remove{opacity:.55;border-radius:8px;width:44px;height:44px;font-size:18px;position:static}.card-leftovers{flex-wrap:nowrap;grid-column:1/-1;justify-content:flex-start;gap:6px;margin-right:2px;padding-top:4px}.card-leftovers-label{margin-left:auto;font-size:13px}.move-btn{height:44px;padding:0 10px 0 0;font-size:13px;display:block}.stepper--meal,.stepper--neutral{gap:6px}.stepper--meal button,.stepper--neutral button{border-radius:8px;width:44px;height:40px;font-size:18px;line-height:normal}.stepper--meal output,.stepper--neutral output{min-width:20px;font-size:16px}.divider{display:none}.lunch{display:contents}.lunch-body{border-top:1px solid var(--div);margin:12px 14px 0;padding-top:8px}.chips{flex-flow:wrap}.chip{justify-content:flex-start;align-items:baseline;gap:6px;padding:6px 9px;font-size:14px}.chip-age{font-size:13px}.chip-short{padding:6px 9px;font-size:14px}.lunch-none{font-size:14px}.fridge{flex-direction:row;align-items:center;gap:10px;margin:12px 14px 0;padding:10px 0 12px}.fridge-squares{flex:1;min-width:0}.fridge-label{flex:none}.surplus{flex-flow:column;align-items:stretch;padding-top:14px}.surplus-lead{letter-spacing:.1em;text-transform:uppercase;margin-right:0;font-size:11px;font-weight:600}.surplus-arrow{display:none}.surplus-pills{flex-wrap:wrap;gap:6px;display:flex}.pill{padding:6px 10px;font-size:14px}.surplus-none{font-size:14px}}
