:root{color-scheme:light;--paper: #f6f1e6;--card: #fffcf5;--sunk: #efe8d9;--rule: #e0d6c2;--rule-strong: #c9bca3;--ink: #211c15;--ink-2: #574e41;--ink-3: #887e6e;--tomato: #bf3f27;--tomato-press: #a3341f;--tomato-ink: #fffaf3;--tomato-wash: rgba(191, 63, 39, .09);--herb: #3b6a45;--herb-wash: rgba(59, 106, 69, .1);--ice: #2f6a98;--ice-wash: rgba(47, 106, 152, .1);--amber: #a86a12;--amber-wash: rgba(168, 106, 18, .12);--shadow: 0 1px 0 rgba(33, 28, 21, .04), 0 8px 24px -16px rgba(33, 28, 21, .35);--serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--dock-h: 64px;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--gutter: 16px}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--paper: #14120e;--card: #1d1a15;--sunk: #25211a;--rule: #342e25;--rule-strong: #4a4236;--ink: #f1eadc;--ink-2: #c3b9a6;--ink-3: #8e8574;--tomato: #e0603e;--tomato-press: #c9512f;--tomato-ink: #1a0f0b;--tomato-wash: rgba(224, 96, 62, .14);--herb: #86b991;--herb-wash: rgba(134, 185, 145, .13);--ice: #85b6de;--ice-wash: rgba(133, 182, 222, .13);--amber: #e3a74b;--amber-wash: rgba(227, 167, 75, .14);--shadow: 0 1px 0 rgba(0, 0, 0, .3), 0 10px 28px -18px rgba(0, 0, 0, .8)}}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}:focus-visible{outline:2px solid var(--tomato);outline-offset:2px}h1,h2,h3{margin:0;font-family:var(--serif);font-weight:600;letter-spacing:-.01em;text-wrap:balance}p{margin:0}.label{font:600 11px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.quiet{color:var(--ink-3)}.dish{font-family:var(--serif);font-weight:600}.frame{min-height:100dvh;padding:calc(var(--safe-t) + 8px) 0 calc(var(--dock-h) + var(--safe-b) + 24px)}.page>*{min-width:0}.page{max-width:560px;margin:0 auto;padding:0 var(--gutter);display:grid;gap:22px}.masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:18px 0 2px;border-bottom:2px solid var(--ink)}.masthead h1{font-size:clamp(30px,9vw,40px);line-height:1}.masthead__aside{padding-bottom:4px;text-align:right}.section{display:grid;gap:10px}.section__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.section__head h2{font-size:20px}.dock{position:fixed;inset:auto 0 0;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);height:calc(var(--dock-h) + var(--safe-b));padding:0 8px var(--safe-b);background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--rule)}.dock button{display:grid;place-items:center;align-content:center;gap:3px;border:0;background:none;color:var(--ink-3);font:600 10.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase}.dock svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.dock button[data-state=on]{color:var(--ink)}.dock button[data-state=on] svg{stroke:var(--tomato)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:12px;border:1.5px solid var(--rule-strong);background:var(--card);font-weight:600;font-size:15.5px;transition:transform .06s}.button:active{transform:translateY(1px)}.button:disabled{opacity:.45;cursor:default}.button[data-variant=go]{border-color:var(--tomato);background:var(--tomato);color:var(--tomato-ink)}.button[data-variant=go]:active{background:var(--tomato-press)}.button[data-variant=ghost]{border-color:transparent;background:transparent;color:var(--ink-2)}.button[data-size=small]{min-height:36px;padding:0 12px;border-radius:10px;font-size:14px}.button[data-width=full]{width:100%}.link{border:0;padding:4px 2px;background:none;color:var(--tomato);font-weight:600;font-size:14.5px}.actions{display:flex;flex-wrap:wrap;gap:10px}.actions>.button{flex:1 1 auto}.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font:600 11px/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:var(--ink-2);background:var(--sunk)}.tag:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}[data-tone=fridge]{--tone: var(--herb);--tone-wash: var(--herb-wash)}[data-tone=freezer]{--tone: var(--ice);--tone-wash: var(--ice-wash)}[data-tone=soon]{--tone: var(--amber);--tone-wash: var(--amber-wash)}[data-tone=act],[data-tone=gone]{--tone: var(--tomato);--tone-wash: var(--tomato-wash)}.tag[data-tone]{color:var(--tone);background:var(--tone-wash)}.card{padding:16px;border-radius:16px;background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow)}.notice{display:grid;grid-template-columns:4px 1fr;gap:0 14px;padding:14px 16px 14px 0;border-radius:14px;background:var(--card);border:1px solid var(--rule);overflow:hidden}.notice:before{content:"";grid-row:1 / span 3;background:var(--tone, var(--ink-3))}.notice__title{font-weight:650}.notice__body{margin-top:2px;color:var(--ink-2);font-size:14.5px}.notice .actions{margin-top:10px}.plates{display:grid;gap:8px}.plate{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;width:100%;padding:12px 14px;border:1px solid var(--rule);border-radius:14px;background:var(--card);text-align:left}.plate__meal{grid-column:1 / -1}.plate__dish{font-family:var(--serif);font-size:18px;font-weight:600;line-height:1.2}.plate[data-state=eaten] .plate__dish{text-decoration:line-through;text-decoration-color:var(--ink-3);color:var(--ink-3)}.plate[data-state=skipped] .plate__dish,.plate[data-state=out] .plate__dish,.plate[data-state=empty] .plate__dish{color:var(--ink-3)}.plate__actions{grid-column:1 / -1;display:flex;gap:8px;margin-top:6px}.board{display:grid;border-top:1px solid var(--rule)}.board__day{display:grid;grid-template-columns:58px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--rule)}.board__day[data-state=past]{opacity:.55}.board__day[data-state=today] .board__date{color:var(--tomato)}.board__date{padding-top:6px}.board__date b{display:block;font:600 22px/1 var(--serif);color:var(--ink)}.board__meals{display:grid;gap:6px;min-width:0}.chip-plate{min-width:0;display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 10px;border:1px solid var(--rule);border-radius:10px;background:var(--card);text-align:left}.chip-plate__meal{flex:none;width:30px}.chip-plate__dish{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--serif);font-weight:600}.chip-plate[data-state=eaten] .chip-plate__dish{color:var(--ink-3);text-decoration:line-through}.chip-plate[data-state=skipped] .chip-plate__dish,.chip-plate[data-state=out] .chip-plate__dish{color:var(--ink-3)}.chip-plate[data-state=empty]{border-style:dashed;background:none}.chip-plate[data-state=empty] .chip-plate__dish{font:14px/1.2 var(--sans);color:var(--ink-3)}.chip-plate[data-tone]{border-left:3px solid var(--tone)}.dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--tone, var(--rule-strong))}.meter{display:grid;grid-template-columns:1fr 1fr;gap:12px}.meter__item{padding:12px 14px;border-radius:14px;background:var(--sunk)}.meter__value{margin-top:4px;font:600 24px/1 var(--mono);letter-spacing:-.02em}.meter__value small{font-size:13px;color:var(--ink-3);letter-spacing:0}.meter__bar{position:relative;height:6px;margin-top:10px;border-radius:3px;background:var(--rule)}.meter__bar i{position:absolute;inset:0 auto 0 0;border-radius:3px;background:var(--tone, var(--herb))}.meter__bar:after{content:"";position:absolute;top:-3px;bottom:-3px;left:calc(100% / 1.2);width:2px;background:var(--ink)}.shelf{display:grid;border-radius:14px;border:1px solid var(--rule);background:var(--card);overflow:hidden}.shelf__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;border-top:1px solid var(--rule);background:none;text-align:left}.shelf__row:first-child,.recipe-row:first-child{border-top:0}.recipe-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;border-top:1px solid var(--rule);background:none;text-align:left}.shelf__portions{font:600 20px/1 var(--mono);min-width:2ch;text-align:center;color:var(--tone)}.aisle{display:grid;gap:2px}.check{display:grid;grid-template-columns:26px 1fr auto;align-items:start;gap:12px;padding:11px 2px;border-bottom:1px solid var(--rule)}.check input{appearance:none;width:24px;height:24px;margin:0;border:1.5px solid var(--rule-strong);border-radius:7px;background:var(--card);display:grid;place-items:center}.check input:checked{border-color:var(--herb);background:var(--herb)}.check input:checked:after{content:"";width:10px;height:6px;margin-top:-3px;border:solid var(--card);border-width:0 0 2px 2px;transform:rotate(-45deg)}.check__name{font-weight:600}.check[data-state=checked] .check__name{color:var(--ink-3);text-decoration:line-through}.check__detail{font-size:13px;color:var(--ink-3)}.progress{height:8px;border-radius:4px;background:var(--sunk);overflow:hidden}.progress i{display:block;height:100%;background:var(--herb);transition:width .25s}.field{display:grid;gap:6px}.field>span{font-size:14px;font-weight:600;color:var(--ink-2)}.input,.field textarea{width:100%;min-height:46px;padding:10px 12px;border:1.5px solid var(--rule-strong);border-radius:10px;background:var(--card);font-size:16px}.field textarea{min-height:84px;resize:vertical}.choices{display:flex;flex-wrap:wrap;gap:8px}.choice{min-height:40px;padding:0 14px;border:1.5px solid var(--rule-strong);border-radius:999px;background:var(--card);font-weight:600;font-size:14.5px}.choice[data-state=on]{border-color:var(--ink);background:var(--ink);color:var(--paper)}.stepper{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;border:1.5px solid var(--rule-strong);border-radius:12px;background:var(--card);overflow:hidden}.stepper button{height:46px;border:0;background:var(--sunk);font-size:22px}.stepper output{text-align:center;font:600 18px/1 var(--mono)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.toggle-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.switch{position:relative;width:50px;height:30px;border:0;border-radius:15px;background:var(--rule-strong);flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--card);transition:transform .15s}.switch[data-state=on]{background:var(--herb)}.switch[data-state=on]:after{transform:translate(20px)}.tag-input{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border:1.5px solid var(--rule-strong);border-radius:10px;background:var(--card)}.tag-input input{flex:1;min-width:120px;border:0;outline:0;background:none;padding:4px;font-size:16px}.tag-input .tag{text-transform:none;font-size:13px;border:0}.drawer-scrim{position:fixed;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;background:#14100a73;animation:fade-in .16s ease-out}.drawer{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--gutter) calc(var(--safe-b) + 20px);border-radius:20px 20px 0 0;background:var(--paper);outline:none;animation:rise .22s cubic-bezier(.2,.8,.2,1)}.drawer[data-size=tall]{height:92dvh}.drawer__head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 12px;background:var(--paper);border-bottom:1px solid var(--rule);margin-bottom:16px}.drawer__head h2{font-size:22px}.drawer__body{display:grid;gap:18px}@keyframes rise{0%{transform:translateY(32px);opacity:.5}}@keyframes fade-in{0%{opacity:0}}.chat{flex:1;min-height:0;display:flex;flex-direction:column}.chat__log{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;padding-bottom:12px;overflow-y:auto;overscroll-behavior:contain;overflow-anchor:none;-webkit-overflow-scrolling:touch}.chat__jump{position:sticky;bottom:4px;align-self:center;padding:8px 14px;border:1px solid var(--rule-strong);border-radius:999px;background:var(--card);box-shadow:var(--shadow);font:600 13px/1 var(--sans)}.chat__message{display:grid;gap:8px;max-width:88%}.chat__message p{white-space:pre-wrap}.chat__message[data-role=user]{align-self:flex-end;padding:10px 14px;border-radius:16px 16px 4px;background:var(--ink);color:var(--paper)}.chat__message[data-role=assistant]{align-self:flex-start;font:17px/1.5 var(--serif);color:var(--ink-2)}.chat__revision{justify-self:start;align-self:flex-start;padding:6px 12px;border:1px solid var(--herb);border-radius:999px;background:var(--herb-wash);color:var(--herb);font:600 13px/1.3 var(--sans);text-align:left}.chat__steps{font:13.5px/1.4 var(--sans);color:var(--ink-3)}.chat__steps>summary{font:600 11px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.chat__steps ol{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px}.chat__step{display:grid;grid-template-columns:18px 1fr;gap:8px;padding:6px 0;border-bottom:1px dashed var(--rule)}.chat__step b{font-weight:600;color:var(--ink-2)}.chat__step small{display:block;font-size:12.5px}.chat__mark{width:14px;height:14px;margin-top:2px;border-radius:50%;border:2px solid var(--rule-strong)}.chat__step[data-state=working] .chat__mark{border-color:var(--rule);border-top-color:var(--tomato);animation:spin .8s linear infinite}.chat__step[data-state=done] .chat__mark{border-color:var(--herb);background:var(--herb)}.chat__step[data-state=failed] .chat__mark{border-color:var(--amber);background:var(--amber-wash)}.chat__status{display:flex;align-items:center;gap:8px;font:600 11px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.composer{flex:none;display:flex;align-items:flex-end;gap:8px;margin:0 calc(-1 * var(--gutter));padding:10px var(--gutter) calc(10px + var(--safe-b));border-top:1px solid var(--rule);background:var(--paper)}.composer textarea{flex:1;min-height:48px;max-height:140px;padding:12px;border:1.5px solid var(--rule-strong);border-radius:12px;background:var(--card);font-size:16px;line-height:1.4;resize:none}.drawer[data-layout=chat]{display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}.drawer[data-layout=chat] .drawer__body{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px}.viewport-probe{position:fixed;top:0;width:0;height:100vh;visibility:hidden;pointer-events:none}:root[data-keyboard=up] .drawer-scrim{top:var(--viewport-top, 0px);bottom:auto;height:var(--viewport-h, 100dvh)}:root[data-keyboard=up] .drawer{max-height:100%}:root[data-keyboard=up] .drawer[data-size=tall]{height:100%;border-radius:0}:root[data-keyboard=up] .drawer__head{padding:10px 0 8px;margin-bottom:8px}:root[data-keyboard=up] .drawer__head h2{font-size:18px}:root[data-keyboard=up] .composer{padding-bottom:10px}@keyframes spin{to{transform:rotate(360deg)}}.timeline{list-style:none;margin:0;padding:0;display:grid}.timeline__step{display:grid;grid-template-columns:52px 1fr 28px;gap:12px;align-items:start;padding:14px 0;border-bottom:1px solid var(--rule)}.timeline__step button{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--rule-strong);background:var(--card)}.timeline__step[data-state=done]{color:var(--ink-3)}.timeline__step[data-state=done] button{border-color:var(--herb);background:var(--herb)}.timeline__at{font:600 15px/1.3 var(--mono);color:var(--tomato)}.split{display:grid;gap:8px}.split__row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--rule)}.toast{position:fixed;left:50%;bottom:calc(var(--dock-h) + var(--safe-b) + 14px);z-index:40;transform:translate(-50%);max-width:calc(100vw - 32px);padding:12px 18px;border-radius:12px;background:var(--ink);color:var(--paper);font-weight:600;font-size:15px;box-shadow:0 12px 32px #0000004d;animation:rise .2s ease-out}.welcome{min-height:100dvh;display:grid;align-content:center;gap:18px;max-width:480px;margin:0 auto;padding:calc(var(--safe-t) + 24px) var(--gutter) calc(var(--safe-b) + 24px)}.welcome h1{font-size:clamp(36px,11vw,52px);line-height:1.02}.welcome h1 em{color:var(--tomato);font-style:italic}.steps{display:flex;gap:6px}.steps i{flex:1;height:4px;border-radius:2px;background:var(--rule)}.steps i[data-state=on]{background:var(--ink)}.empty{display:grid;gap:12px;justify-items:start;padding:22px;border:1.5px dashed var(--rule-strong);border-radius:16px}.empty h2{font-size:22px}.rationale{padding-left:14px;border-left:3px solid var(--rule-strong);font:italic 16px/1.5 var(--serif);color:var(--ink-2)}.ingredients{list-style:none;margin:0;padding:0}.ingredients li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dotted var(--rule-strong)}.facts{display:flex;flex-wrap:wrap;gap:8px}.banner{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--tomato);border-radius:12px;background:var(--tomato-wash);text-align:left;font-weight:600}.summary{display:grid;padding:4px 16px}.ingredients-row{display:grid;grid-template-columns:84px 1fr;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px dotted var(--rule-strong)}.ingredients-row:last-child{border-bottom:0}.board__date span[data-tone]{display:block;margin-top:4px;color:var(--tone)}.actions>.input{flex:1 1 200px}.aisle h3{margin-top:6px;font-size:17px}.hint{padding:10px 12px;border-radius:10px;background:var(--sunk);color:var(--ink-2);font-size:14.5px}.hint b{color:var(--ink)}.plate__open{border:0;padding:0;background:none;color:inherit;text-align:left}.shelf__note{font-size:13px;color:var(--ink-3)}.label[data-tone]{color:var(--tone)}.error{color:var(--tomato);font-weight:600}.welcome__step{font-size:32px}.spinner{width:18px;height:18px;flex:none;border-radius:50%;border:2px solid var(--rule);border-top-color:var(--tomato);animation:spin .8s linear infinite}details>summary{cursor:pointer;font-weight:600;list-style:none}details>summary:after{content:" +";color:var(--ink-3)}details[open]>summary:after{content:" \2212"}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/*# sourceMappingURL=app-P5BRKUPG.css.map */
