@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Figtree Variable;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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #fff8ec;--paper-deep: #f2e9da;--letter: #ffffff;--ink: #1b1530;--ink-muted: #4a4263;--on-ink: #fff8ec;--tomato: #ff5a3c;--tangerine: #ff9a2e;--sun: #ffd23c;--lime: #b5e62e;--grass: #3dd16f;--teal: #2fd4c4;--sky: #4da8ff;--lilac: #b38cff;--bubblegum: #ff7ab8;--tomato-soft: #ffe0d8;--tangerine-soft: #ffe2c2;--sun-soft: #fff3c4;--lime-soft: #effbcf;--grass-soft: #d6f6e0;--teal-soft: #d2f6f2;--sky-soft: #dbeeff;--lilac-soft: #ece2ff;--bubblegum-soft: #ffe0ef;--grape: #6c3bff;--accent: var(--grass);--accent-soft: var(--grass-soft);--danger: #c8102e;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 40px;--radius-sm: 10px;--radius-lg: 22px;--radius-pill: 999px;--font-display: "Bricolage Grotesque Variable", "Bricolage Grotesque", "Figtree Variable", system-ui, sans-serif;--font-sans: "Figtree Variable", "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif}.display{font-family:var(--font-display);font-size:56px;line-height:56px;font-weight:800;letter-spacing:-.02em}.title{font-family:var(--font-display);font-size:34px;line-height:38px;font-weight:800;letter-spacing:-.01em}.heading{font-family:var(--font-display);font-size:24px;line-height:28px;font-weight:700}.subject{font-family:var(--font-sans);font-size:19px;line-height:24px;font-weight:700}.body{font-family:var(--font-sans);font-size:16px;line-height:24px;font-weight:400}.meta{font-family:var(--font-sans);font-size:13px;line-height:18px;font-weight:600}.label{font-family:var(--font-sans);font-size:12px;line-height:16px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}@media(max-width:640px){.display{font-size:40px;line-height:44px}.title{font-size:28px;line-height:32px}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{color-scheme:light}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/24px var(--font-sans)}h1,h2,p{margin:0}ul{list-style:none;margin:0;padding:0}:focus-visible{outline:3px solid var(--ink);outline-offset:2px}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);font:700 16px/24px var(--font-sans);cursor:pointer;background:var(--ink);color:var(--on-ink)}button.secondary{background:var(--paper-deep);color:var(--ink)}button.danger{background:var(--danger);color:var(--on-ink)}button.danger-text{color:var(--danger)}button:disabled{color:var(--ink-muted);cursor:default;opacity:.6}button.icon{width:48px;min-width:48px;padding:0}input,textarea,select{width:100%;min-width:0;border:0;border-radius:var(--radius-sm);background:var(--paper-deep);color:var(--ink);font:400 17px/24px var(--font-sans)}input,select{min-height:48px;padding:0 var(--space-3)}input[type=checkbox]{width:24px;min-width:24px;height:24px;min-height:0;padding:0;margin:0;accent-color:var(--accent);cursor:pointer}textarea{display:block;padding:var(--space-2) var(--space-3);resize:vertical}.placeholder{display:grid;place-content:center;justify-items:center;gap:var(--space-3);min-height:100dvh;padding:var(--space-3);text-align:center}.sign-in{gap:var(--space-5)}.sign-in-form{display:grid;gap:var(--space-2);width:min(360px,100%);text-align:left}.sign-in-form button{margin-top:var(--space-2);background:var(--accent);color:var(--ink)}.sign-in-form [role=alert]{color:var(--danger);font-weight:700}.badge{display:inline-block;min-width:26px;padding:1px 7px;border-radius:var(--radius-pill);background:var(--ink);color:var(--on-ink);font:800 13px/18px var(--font-sans);text-align:center}.phone{position:fixed;left:0;right:0;top:var(--visible-top, 0);height:var(--visible-height, 100dvh);display:flex;flex-direction:column}.phone-top{flex:none;display:flex;align-items:center;gap:var(--space-2);padding:max(var(--space-2),env(safe-area-inset-top)) var(--space-3) var(--space-2) var(--space-2)}.menu-button{background:transparent;color:var(--ink)}.phone-title{min-width:0;font:700 24px/32px var(--font-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scroller{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--space-3) var(--space-3)}.phone-bottom{flex:none;padding:var(--space-2) var(--space-3) max(var(--space-2),env(safe-area-inset-bottom));background:var(--paper)}.phone-bottom .intake-area:empty{display:none}.drawer{position:fixed;inset:0 auto 0 0;margin:0;padding:0;border:0;width:min(320px,85vw);height:100dvh;max-width:none;max-height:none;background:var(--paper-deep);color:var(--ink)}.drawer:focus{outline:none}.drawer[open]{animation:drawer-in .18s ease-out}.drawer::backdrop{background:#1b153073}.drawer-inner{height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4);padding:max(var(--space-4),env(safe-area-inset-top)) var(--space-3) max(var(--space-4),env(safe-area-inset-bottom))}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:none}}.desktop{display:grid;grid-template-columns:280px minmax(0,1fr);height:100dvh}.sidebar{display:flex;flex-direction:column;gap:var(--space-4);min-height:0;overflow-y:auto;padding:var(--space-4) var(--space-3);background:var(--paper-deep)}.desktop-main{display:flex;flex-direction:column;min-width:0;min-height:0}.desktop-field{flex:none;width:100%;max-width:calc(720px + 2 * var(--space-4));margin:0 auto;padding:var(--space-4) var(--space-4) var(--space-3)}.desktop .scroller{padding:0 var(--space-4) var(--space-5)}.desktop-main>.scroller:first-child{padding-top:var(--space-4)}.toasts{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:3;display:flex;flex-direction:column;gap:var(--space-2);width:min(440px,calc(100vw - 2 * var(--space-4)))}.toasts .messages{max-height:calc(100dvh - 2 * var(--space-4))}.desktop .store{padding:0 var(--space-3) var(--space-3);border-radius:var(--radius-lg);background:var(--paper-deep);overflow:clip}.desktop .store-heading{background:var(--paper-deep)}.desktop .row-slide,.desktop .checked-off-row,.desktop input,.desktop textarea{background:var(--letter)}.desktop button.secondary{background:var(--paper-deep)}.brand abbr{text-decoration:none}.brand{padding:0 var(--space-2);font:800 30px/40px var(--font-display);letter-spacing:-.01em}.sidebar-section{display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-heading{padding:0 var(--space-2);font:800 13px/20px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.sidebar-links{display:flex;flex-direction:column;gap:2px}.sidebar-link{width:100%;justify-content:space-between;min-height:48px;padding:0 var(--space-2) 0 var(--space-3);border-radius:var(--radius-sm);background:transparent;color:var(--ink);font-weight:600;text-align:left}.sidebar-link:hover{background:var(--letter)}.sidebar-link[aria-current]{background:var(--accent);font-weight:800}.sidebar-link-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stack{display:flex;flex-direction:column;gap:var(--space-4);max-width:720px;margin:0 auto}.store{scroll-margin-top:var(--space-2)}.store-heading{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) 0 var(--space-2);background:var(--paper);font:700 24px/28px var(--font-display)}.store-heading .badge{background:var(--accent);color:var(--ink)}.page{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-3)}.desktop .page{max-width:720px;margin:0 auto;padding-top:0}.page-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:44px}.page-heading{font:700 24px/28px var(--font-display)}.phone .page-heading{display:none}.phone .page-top:not(:has(button)){display:none}.hint{font:400 14px/20px var(--font-sans);color:var(--ink-muted)}.panel,.store-row,.catalog-row{border-radius:var(--radius-sm);background:var(--paper-deep)}.panel{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3)}.panel-heading{font:700 19px/24px var(--font-sans)}.panel-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}.panel input,.panel textarea,.panel select,.editor input,.store-row input,.panel button.secondary,.editor button.secondary,.store-row button.secondary{background:var(--letter)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field-label{font:700 14px/20px var(--font-sans)}.check-field{display:flex;align-items:center;gap:var(--space-2);min-height:44px;font-weight:700;cursor:pointer}.inline-form{display:flex;gap:var(--space-2)}.inline-form button{flex:none}.chips{display:flex;flex-wrap:wrap;gap:var(--space-1)}button.chip{min-height:44px;padding:0 var(--space-3);background:var(--letter);color:var(--ink);font-size:15px}button.chip[aria-pressed=true]{background:var(--accent)}button.chip:disabled{opacity:1;color:var(--ink)}.confirm{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--letter)}.confirm button.secondary{background:var(--paper-deep)}.catalog-rows,.store-rows{display:flex;flex-direction:column;gap:var(--space-1)}.catalog-row-top{display:flex;flex-direction:column;align-items:flex-start;gap:0;width:100%;min-height:60px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left}.editor{display:flex;flex-direction:column;gap:var(--space-3);padding:0 var(--space-3) var(--space-3)}.merge-targets{display:flex;flex-direction:column;gap:var(--space-1);max-height:240px;overflow-y:auto}.merge-targets button{width:100%;justify-content:flex-start;border-radius:var(--radius-sm)}.store-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.store-row-top{display:flex;gap:var(--space-2)}.store-row .panel-actions{justify-content:space-between}.default-mark{padding:2px var(--space-3);border-radius:var(--radius-pill);background:var(--accent);font:800 14px/24px var(--font-sans)}.add-store{margin-top:var(--space-2)}.staple-rows{display:flex;flex-direction:column;gap:var(--space-1)}.staple-group{display:flex;flex-direction:column;gap:var(--space-2)}.staple-group+.staple-group{margin-top:var(--space-2)}.staple-heading{font:800 13px/20px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.staple-row{border-radius:var(--radius-sm);background:var(--paper-deep)}.staple-row-top{display:flex;align-items:center;gap:var(--space-1);padding-right:var(--space-2)}.staple-open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:0;min-height:50px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left}.staple-open:hover{background:var(--accent-soft)}.staple-open .row-name{overflow-wrap:anywhere}.staple-add{flex:none;width:44px;height:44px;min-height:0;padding:0;border-radius:var(--radius-pill);background:var(--accent);color:var(--ink);font:800 22px/1 var(--font-sans)}.staple-row.on-list .staple-row-top{opacity:.7}.recipe-rows{display:flex;flex-direction:column;gap:var(--space-1)}.recipe-row{border-radius:var(--radius-sm);background:var(--paper-deep)}.recipe-row-top{display:flex;align-items:center;gap:var(--space-2);padding-right:var(--space-2)}.recipe-open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:0;min-height:56px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left}.recipe-open .row-name{overflow-wrap:anywhere}button.recipe-add{min-height:0;padding:0}.recipe-take-off{flex:none;min-height:40px;font-size:14px}.recipe-row.on-list .recipe-take-off{background:var(--letter)}.recipe-where{overflow-wrap:anywhere}.recipe-where a{color:var(--ink);font-weight:700}.recipe-ingredients{display:flex;flex-direction:column;gap:2px;padding-left:var(--space-1)}.recipe-ingredients li:before{content:"• ";color:var(--ink-muted)}.empty{padding:var(--space-4) var(--space-2);color:var(--ink-muted);text-align:center}.rows{display:flex;flex-direction:column;gap:var(--space-1)}.row{position:relative;border-radius:var(--radius-sm)}.row-behind{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:flex-end;padding:0 var(--space-4);border-radius:var(--radius-sm);background:var(--danger);color:var(--on-ink);font-weight:800}.row.swiping .row-behind{display:flex}.row-slide{position:relative;display:flex;align-items:stretch;border-radius:var(--radius-sm);background:var(--paper-deep);transition:transform .14s ease-out}.row-slide.swiping{transition:none}.row-main{flex:1;min-width:0;min-height:50px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:var(--space-1) var(--space-3);padding-left:0;color:var(--ink);touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.row-selectable{touch-action:auto;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.row-main:not(.row-editing){cursor:text}.row-editing{touch-action:auto;user-select:text;-webkit-user-select:text;padding-right:var(--space-1)}.row-edit{width:100%;min-height:40px;font:700 17px/22px var(--font-sans);-webkit-user-select:text;user-select:text}.row-check{flex:none;display:flex;align-items:center;justify-content:center;width:52px;align-self:stretch;cursor:pointer}.phone .row-check input{width:26px;min-width:26px;height:26px}.row-name{font:700 17px/22px var(--font-sans);overflow-wrap:anywhere}.row-amounts{font:600 13px/18px var(--font-sans);color:var(--ink-muted)}.row-remove{flex:none;width:44px;padding:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);font-size:22px}.row-remove:hover{color:var(--danger)}.row-handle{flex:none;width:52px;padding:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.row.dragging{z-index:1;opacity:.9}.row.dragging .row-handle{cursor:grabbing}.row.dragging .row-slide{background:var(--accent-soft)}.row.drop-above:before,.row.drop-below:after{content:"";position:absolute;left:0;right:0;z-index:1;height:4px;border-radius:var(--radius-pill);background:var(--ink)}.row.drop-above:before{top:-4px}.row.drop-below:after{bottom:-4px}.row.crossed .row-slide{animation:check-off-flash .4s ease-out;background:var(--accent-soft)}.row.crossed .row-name,.row.crossed .row-amounts{text-decoration:line-through;color:var(--ink-muted)}@keyframes check-off-flash{0%{background:var(--accent)}to{background:var(--accent-soft)}}@media(prefers-reduced-motion:reduce){.row-slide{transition:none}.row.crossed .row-slide{animation:none}}.list-add{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.list-add input:not(:focus):placeholder-shown{background:transparent;cursor:pointer}.list-add input:not(:focus)::placeholder{color:var(--ink-muted);font-weight:700}.list-add:not(:focus-within) .list-add-close{display:none}.checked-off{margin-top:var(--space-3)}.checked-off summary{min-height:44px;padding:10px var(--space-2);font-weight:700;color:var(--ink-muted);cursor:pointer}.checked-off ul{display:flex;flex-direction:column;gap:var(--space-1)}.checked-off-row{display:flex;align-items:center;gap:var(--space-2);min-height:46px;padding:var(--space-1) var(--space-3) var(--space-1) 0;border-radius:var(--radius-sm);background:var(--paper-deep);color:var(--ink-muted);font-weight:600}.checked-off-row .row-check{align-self:center}.checked-off-name{flex:1;min-width:0;overflow-wrap:anywhere;text-decoration:line-through}.intake-area{display:flex;flex-direction:column;gap:var(--space-2)}.intake{display:flex;gap:var(--space-2)}.intake-multi{flex-direction:column}.intake-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.messages{display:flex;flex-direction:column;gap:var(--space-1);max-height:40dvh;overflow-y:auto}.messages:empty{display:none}.message{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:var(--ink);color:var(--on-ink)}.message-text{flex:1 1 120px;padding:var(--space-1) 0;font-weight:700;overflow-wrap:anywhere}.message-store{font-weight:400}.message-offers{display:flex;flex-wrap:wrap;gap:var(--space-1)}.offer{padding:0 var(--space-3);background:var(--accent);color:var(--ink);font-size:14px;line-height:18px}.offer.quiet{background:transparent;color:var(--on-ink)}.save-problem{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--danger);color:var(--on-ink);font-weight:700}
