@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+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: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+??,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}:root{--roots-font:"Figtree Variable", system-ui, sans-serif;--roots-color-background:#f6f3ee;--roots-color-surface:#fff;--roots-color-text:#23201c;--roots-color-text-muted:#6b645b;--roots-color-border:#e3ddd3;--roots-color-accent:#3f7a5a;--roots-color-accent-text:#fff;--roots-color-accent-soft:#dcebe2;--roots-color-warning:#a35a1f;--roots-color-focus:#2f6fb3;--roots-color-overlay:#23201c73;--roots-space-1:.25rem;--roots-space-2:.5rem;--roots-space-3:.75rem;--roots-space-4:1rem;--roots-space-6:1.5rem;--roots-space-8:2rem;--roots-radius:.75rem;--roots-touch-target:3rem}@media (prefers-color-scheme:dark){:root{--roots-color-background:#1b1a18;--roots-color-surface:#262421;--roots-color-text:#f1ede6;--roots-color-text-muted:#b2aa9f;--roots-color-border:#3a3631;--roots-color-accent:#7cba95;--roots-color-accent-text:#14231a;--roots-color-accent-soft:#2c4536;--roots-color-warning:#e0a46c;--roots-color-focus:#8ab8e8;--roots-color-overlay:#0009}}*,:before,:after{box-sizing:border-box}html{color-scheme:light dark;-webkit-text-size-adjust:100%}body{min-height:100dvh;font-family:var(--roots-font);color:var(--roots-color-text);background:var(--roots-color-background);margin:0;font-size:1.0625rem;line-height:1.5}button{font:inherit}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.roots-button[data-v-7d6b54c3]{min-height:var(--roots-touch-target);padding:0 var(--roots-space-6);border-radius:var(--roots-radius);cursor:pointer;border:1px solid #0000;font-weight:600}.roots-button[data-v-7d6b54c3]:disabled{opacity:.6;cursor:default}.roots-button[data-v-7d6b54c3]:focus-visible{outline:3px solid var(--roots-color-focus);outline-offset:2px}.roots-button--primary[data-v-7d6b54c3]{background:var(--roots-color-accent);color:var(--roots-color-accent-text)}.roots-button--secondary[data-v-7d6b54c3]{background:var(--roots-color-surface);border-color:var(--roots-color-border);color:var(--roots-color-text)}.roots-button--quiet[data-v-7d6b54c3]{color:var(--roots-color-accent);padding:0 var(--roots-space-3);background:0 0}.roots-icon[data-v-89a2e3ef]{flex:none;display:block}.toast-region[data-v-a21f3315]{inset:auto var(--roots-space-4) calc(var(--roots-space-4) + env(safe-area-inset-bottom));pointer-events:none;justify-content:center;display:flex;position:fixed}.toast[data-v-a21f3315]{align-items:center;gap:var(--roots-space-4);width:100%;max-width:32rem;padding:var(--roots-space-2) var(--roots-space-2) var(--roots-space-2) var(--roots-space-4);border-radius:var(--roots-radius);background:var(--roots-color-text);color:var(--roots-color-background);pointer-events:auto;display:flex}.toast__message[data-v-a21f3315]{flex:1}.toast__undo[data-v-a21f3315]{min-height:var(--roots-touch-target);padding:0 var(--roots-space-4);border-radius:var(--roots-radius);color:inherit;cursor:pointer;background:0 0;border:none;font-weight:700;text-decoration:underline}.add[data-v-72e09c08]{gap:var(--roots-space-2);display:grid}.add__input[data-v-72e09c08]{min-height:3.25rem;padding:0 var(--roots-space-4);border:1px solid var(--roots-color-border);border-radius:var(--roots-radius);background:var(--roots-color-surface);color:var(--roots-color-text);font:inherit;font-size:1.125rem}.add__input[data-v-72e09c08]:focus-visible{outline:3px solid var(--roots-color-focus);outline-offset:1px}.add__suggestions[data-v-72e09c08]{border:1px solid var(--roots-color-border);border-radius:var(--roots-radius);background:var(--roots-color-surface);margin:0;padding:0;list-style:none;overflow:hidden}.add__suggestions li+li[data-v-72e09c08]{border-top:1px solid var(--roots-color-border)}.suggestion[data-v-72e09c08]{align-items:center;gap:var(--roots-space-3);width:100%;min-height:var(--roots-touch-target);padding:0 var(--roots-space-4);color:var(--roots-color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.suggestion[data-v-72e09c08]:focus-visible{outline:3px solid var(--roots-color-focus);outline-offset:-3px}.suggestion__name[data-v-72e09c08]{flex:1}.suggestion__state[data-v-72e09c08]{color:var(--roots-color-text-muted);font-size:.9375rem}.suggestion--new[data-v-72e09c08]{color:var(--roots-color-accent);font-weight:600}.need[data-v-21692ae2]{align-items:center;gap:var(--roots-space-2);padding:var(--roots-space-1) 0;border-top:1px solid var(--roots-color-border);display:flex}.need[data-v-21692ae2]:first-child{border-top:none}.need--flash[data-v-21692ae2]{animation:1.2s ease-out flash-21692ae2}@keyframes flash-21692ae2{0%{background:var(--roots-color-accent-soft)}to{background:0 0}}.need__main[data-v-21692ae2]{min-height:var(--roots-touch-target);padding:var(--roots-space-2) var(--roots-space-1);color:var(--roots-color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;display:grid}.need__main[data-v-21692ae2]:focus-visible,.step[data-v-21692ae2]:focus-visible{outline:3px solid var(--roots-color-focus);outline-offset:-2px;border-radius:var(--roots-radius)}.need__name[data-v-21692ae2]{font-size:1.125rem;font-weight:600}.need__detail[data-v-21692ae2]{color:var(--roots-color-text-muted);font-size:.9375rem}.need__stepper[data-v-21692ae2]{align-items:center;display:flex}.need__quantity[data-v-21692ae2]{text-align:center;font-variant-numeric:tabular-nums;min-width:2ch;font-size:1.125rem;font-weight:600}.step[data-v-21692ae2]{width:var(--roots-touch-target);height:var(--roots-touch-target);color:var(--roots-color-accent);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;display:grid}.step[data-v-21692ae2]:disabled{opacity:.4;cursor:default}.step--remove[data-v-21692ae2]{color:var(--roots-color-text-muted)}@media (prefers-reduced-motion:reduce){.need--flash[data-v-21692ae2]{animation:none}}.field[data-v-c3b354ae]{gap:var(--roots-space-1);display:grid}.field__label[data-v-c3b354ae]{font-weight:600}.field__input[data-v-c3b354ae]{min-height:var(--roots-touch-target);padding:0 var(--roots-space-3);border:1px solid var(--roots-color-border);border-radius:var(--roots-radius);background:var(--roots-color-surface);color:var(--roots-color-text);font:inherit}.field__input[data-v-c3b354ae]:focus-visible{outline:3px solid var(--roots-color-focus);outline-offset:1px}.field__input[aria-invalid=true][data-v-c3b354ae]{border-color:var(--roots-color-warning)}.field__hint[data-v-c3b354ae],.field__error[data-v-c3b354ae]{margin:0;font-size:.9375rem}.field__hint[data-v-c3b354ae]{color:var(--roots-color-text-muted)}.field__error[data-v-c3b354ae]{color:var(--roots-color-warning)}.sheet-overlay{background:var(--roots-color-overlay);position:fixed;inset:0}.sheet{gap:var(--roots-space-3);max-height:90dvh;padding:var(--roots-space-6) var(--roots-space-4) calc(var(--roots-space-4) + env(safe-area-inset-bottom));border-radius:var(--roots-radius) var(--roots-radius) 0 0;background:var(--roots-color-surface);color:var(--roots-color-text);display:grid;position:fixed;inset:auto 0 0;overflow-y:auto}@media (width>=40rem){.sheet{inset:10vh var(--roots-space-4) auto;border-radius:var(--roots-radius);max-width:30rem;margin:0 auto}}.sheet__title{margin:0;font-size:1.375rem}.sheet__meta{color:var(--roots-color-text-muted);margin:0}.sheet__form{gap:var(--roots-space-4);display:grid}.sheet__quantity{align-items:flex-end;gap:var(--roots-space-2);display:flex}.sheet__quantity>:first-child{flex:1}.sheet__steps{gap:var(--roots-space-2);display:flex}.sheet__product{gap:var(--roots-space-3);padding:var(--roots-space-4) 0 0;border:none;border-top:1px solid var(--roots-color-border);margin:0;display:grid}.sheet__legend{padding:0;font-weight:650}.sheet__hide{color:var(--roots-color-warning);justify-self:start;padding:0}.sheet__actions{align-items:center;gap:var(--roots-space-2);flex-wrap:wrap;display:flex}.sheet__remove{color:var(--roots-color-warning);padding:0}.sheet__spacer{flex:1}.picks[data-v-b79d72f7]{gap:var(--roots-space-3);display:grid}.picks__title[data-v-b79d72f7]{color:var(--roots-color-text-muted);margin:0;font-size:1rem}.picks__list[data-v-b79d72f7]{gap:var(--roots-space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chip[data-v-b79d72f7]{min-height:2.75rem;padding:0 var(--roots-space-4);border:1px solid var(--roots-color-border);background:var(--roots-color-surface);color:var(--roots-color-text);font:inherit;cursor:pointer;border-radius:999px}.chip[data-v-b79d72f7]:focus-visible,.picks__more[data-v-b79d72f7]:focus-visible{outline:3px solid var(--roots-color-focus);outline-offset:2px}.picks__more[data-v-b79d72f7]{min-height:var(--roots-touch-target);color:var(--roots-color-accent);font:inherit;cursor:pointer;background:0 0;border:none;justify-self:start;padding:0;font-weight:600}.groceries[data-v-0f704c07]{max-width:40rem;padding:var(--roots-space-4) var(--roots-space-4) 6rem;gap:var(--roots-space-4);margin:0 auto;display:grid}.groceries__header[data-v-0f704c07]{justify-content:space-between;align-items:center;gap:var(--roots-space-4);display:flex}.groceries__title[data-v-0f704c07]{overflow-wrap:anywhere;margin:0;font-size:1.5rem;font-weight:650}.icon-link[data-v-0f704c07]{width:var(--roots-touch-target);height:var(--roots-touch-target);color:var(--roots-color-text);border-radius:50%;place-items:center;display:grid}.icon-link[data-v-0f704c07]:focus-visible{outline:3px solid var(--roots-color-focus)}.status[data-v-0f704c07]{min-height:1.5rem;margin:calc(-1 * var(--roots-space-2)) 0;color:var(--roots-color-text-muted);font-size:.9375rem}.status__dismiss[data-v-0f704c07]{margin-left:var(--roots-space-2);color:var(--roots-color-accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.panel[data-v-0f704c07]{gap:var(--roots-space-3);padding:var(--roots-space-4);border:1px solid var(--roots-color-border);border-radius:var(--roots-radius);background:var(--roots-color-surface);margin:0;display:grid}.panel p[data-v-0f704c07]{margin:0}.list[data-v-0f704c07]{padding:var(--roots-space-2) var(--roots-space-4);border:1px solid var(--roots-color-border);border-radius:var(--roots-radius);background:var(--roots-color-surface)}.list__title[data-v-0f704c07]{align-items:center;gap:var(--roots-space-2);margin:var(--roots-space-2) 0;font-size:1.125rem;display:flex}.list__count[data-v-0f704c07]{padding:0 var(--roots-space-2);background:var(--roots-color-accent-soft);border-radius:999px;font-size:.875rem}.list__empty[data-v-0f704c07]{margin:var(--roots-space-2) 0 var(--roots-space-3);color:var(--roots-color-text-muted)}.list__items[data-v-0f704c07]{margin:0;padding:0;list-style:none}.skeleton[data-v-0f704c07]{gap:var(--roots-space-3);display:grid}.skeleton__line[data-v-0f704c07]{border-radius:var(--roots-radius);background:var(--roots-color-border);opacity:.6;height:3rem}.auth[data-v-0ebedc6e]{max-width:26rem;padding:var(--roots-space-8) var(--roots-space-4);margin:0 auto}.auth__brand[data-v-0ebedc6e]{margin:0 0 var(--roots-space-4);font-size:1.5rem;font-weight:650}.auth__card[data-v-0ebedc6e]{gap:var(--roots-space-4);padding:var(--roots-space-6);border:1px solid var(--roots-color-border);border-radius:var(--roots-radius);background:var(--roots-color-surface);display:grid}.auth__title[data-v-0ebedc6e]{margin:0;font-size:1.375rem}.form[data-v-d684f324]{gap:var(--roots-space-4);display:grid}.message[data-v-d684f324]{color:var(--roots-color-warning);margin:0}.invite-overlay{background:var(--roots-color-overlay);position:fixed;inset:0}.invite-dialog{inset:auto var(--roots-space-4) var(--roots-space-4);gap:var(--roots-space-4);max-width:28rem;padding:var(--roots-space-6);border-radius:var(--roots-radius);background:var(--roots-color-surface);color:var(--roots-color-text);margin:0 auto;display:grid;position:fixed}@media (width>=40rem){.invite-dialog{inset:20vh var(--roots-space-4) auto}}.invite-dialog__title{margin:0;font-size:1.25rem}.invite-dialog__lead{color:var(--roots-color-text-muted);margin:0}.invite-dialog__form,.invite-dialog__result{gap:var(--roots-space-4);display:grid}.invite-dialog__result p{margin:0}.invite-dialog__error{color:var(--roots-color-warning);margin:0}.invite-dialog__link{min-height:var(--roots-touch-target);padding:0 var(--roots-space-3);border:1px solid var(--roots-color-border);border-radius:var(--roots-radius);background:var(--roots-color-background);color:var(--roots-color-text);font:inherit;font-size:.875rem}.invite-dialog__actions{justify-content:flex-end;gap:var(--roots-space-2);display:flex}.settings[data-v-e7ee1e78]{max-width:40rem;padding:var(--roots-space-4);gap:var(--roots-space-4);margin:0 auto;display:grid}.settings__header[data-v-e7ee1e78]{align-items:center;gap:var(--roots-space-2);display:flex}.settings__title[data-v-e7ee1e78]{margin:0;font-size:1.5rem;font-weight:650}.settings__error[data-v-e7ee1e78]{color:var(--roots-color-warning);margin:0}.settings__sign-out[data-v-e7ee1e78]{justify-self:start}.icon-link[data-v-e7ee1e78]{width:var(--roots-touch-target);height:var(--roots-touch-target);color:var(--roots-color-text);border-radius:50%;place-items:center;display:grid}.icon-link[data-v-e7ee1e78]:focus-visible{outline:3px solid var(--roots-color-focus)}.panel[data-v-e7ee1e78]{gap:var(--roots-space-3);padding:var(--roots-space-4);border:1px solid var(--roots-color-border);border-radius:var(--roots-radius);background:var(--roots-color-surface);margin:0;display:grid}.panel p[data-v-e7ee1e78]{margin:0}.panel__header[data-v-e7ee1e78]{justify-content:space-between;align-items:center;gap:var(--roots-space-3);flex-wrap:wrap;display:flex}.panel__title[data-v-e7ee1e78]{margin:0;font-size:1.125rem}.members[data-v-e7ee1e78]{gap:var(--roots-space-2);margin:0;padding:0;list-style:none;display:grid}.members__item[data-v-e7ee1e78]{column-gap:var(--roots-space-3);padding:var(--roots-space-3) 0;border-top:1px solid var(--roots-color-border);grid-template-columns:1fr auto;display:grid}.members__item[data-v-e7ee1e78]:first-child{border-top:none}.members__name[data-v-e7ee1e78]{font-weight:600}.members__you[data-v-e7ee1e78]{margin-left:var(--roots-space-2);color:var(--roots-color-text-muted);font-weight:400}.members__email[data-v-e7ee1e78]{color:var(--roots-color-text-muted);overflow-wrap:anywhere;grid-column:1;font-size:.9375rem}.members__badge[data-v-e7ee1e78]{padding:var(--roots-space-1) var(--roots-space-2);border-radius:var(--roots-radius);background:var(--roots-color-background);color:var(--roots-color-text-muted);grid-area:1/2/span 2;align-self:center;font-size:.875rem}.form[data-v-32645786]{gap:var(--roots-space-4);display:grid}.form__error[data-v-32645786]{color:var(--roots-color-warning);margin:0}.hint[data-v-32645786]{color:var(--roots-color-text-muted);margin:0;font-size:.9375rem}
