:root{--c-bg:#f7f5f3;--c-surface:#fff;--c-surface-sunk:#f0ece8;--c-border:#e8e3de;--c-hairline:#efeae5;--c-text:#1a1817;--c-text-muted:#6e6862;--c-text-faint:#a9a29b;--c-accent:#b35408;--c-accent-weak:#fdf0e4;--c-accent-text:#a94d07;--c-danger:#a5271a;--c-on-accent:#fff;--c-backdrop:color-mix(in srgb, var(--c-text) 35%, transparent);--m-grau:#8b847d;--m-blau:#3f6fb5;--m-gelb:#c9962a;--m-rot:#b4453c;--m-gruen:#5d8a4e;--m-petrol:#3f8a90;--m-lila:#7d6aa8;--cat-obst-gemuese:#6f9152;--cat-brot-gebaeck:#b1793f;--cat-backen:#a98a5e;--cat-vorrat:#8d6f52;--cat-kuehlung:#59909e;--cat-molkerei:#7f96b5;--cat-tiefkuehl:#5f87b0;--cat-getraenke:#4f8f88;--cat-haushalt:#8a7f9c;--cat-suesses:#b06a86;--cat-ohne:#a9a29b;--shadow-sm:0 1px 2px #1a18170d;--shadow-md:0 6px 20px -8px #1a18172e;--shadow-add:0 3px 10px -2px #b3540873;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-card:16px;--r-full:999px;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:15px;--fs-lg:18px;--fs-xl:25px;--fs-input:16px;--fw-normal:400;--fw-medium:500;--fw-bold:600;--lh-tight:1.25;--lh-normal:1.5;--touch-min:44px;--dur-fast:.15s;--dur-base:.2s;--ease:cubic-bezier(.2, 0, .2, 1);--safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom)}@media (prefers-color-scheme:dark){:root{--c-bg:#131211;--c-surface:#1e1c1b;--c-surface-sunk:#272423;--c-border:#35312f;--c-hairline:#2b2827;--c-text:#f2efec;--c-text-muted:#a39d98;--c-text-faint:#6d6763;--c-accent:#e08a3c;--c-accent-weak:#2e2118;--c-accent-text:#eb9a52;--c-danger:#e0705f;--c-on-accent:#1c1207;--c-backdrop:color-mix(in srgb, var(--c-text) 35%, transparent);--m-grau:#9a938b;--m-blau:#6b93d0;--m-gelb:#d9ab48;--m-rot:#cf6459;--m-gruen:#7da96d;--m-petrol:#5faab0;--m-lila:#9b88c4;--cat-obst-gemuese:#6f9152;--cat-brot-gebaeck:#b1793f;--cat-backen:#a98a5e;--cat-vorrat:#8d6f52;--cat-kuehlung:#59909e;--cat-molkerei:#7f96b5;--cat-tiefkuehl:#5f87b0;--cat-getraenke:#4f8f88;--cat-haushalt:#8a7f9c;--cat-suesses:#b06a86;--cat-ohne:#a9a29b;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 6px 20px -8px #0009;--shadow-add:0 3px 10px -2px #b3540873}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{background:var(--c-bg);color:var(--c-text);font-family:-apple-system,system-ui,sans-serif;font-size:var(--fs-md);line-height:var(--lh-normal)}body{background:var(--c-bg);overscroll-behavior:none;min-width:320px}button,input,textarea{color:inherit;font:inherit}input,textarea{font-size:var(--fs-input)}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:var(--s-1) solid var(--c-accent);outline-offset:var(--s-1)}.button{min-width:var(--touch-min);min-height:var(--touch-min);padding:var(--s-2) var(--s-4);border-radius:var(--r-md);font-weight:var(--fw-bold);transition:opacity var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);border:0}.button--lg{min-height:var(--s-7);padding-inline:var(--s-5)}.button--primary{background:var(--c-accent);color:var(--c-on-accent)}.button--secondary{background:var(--c-accent-weak);color:var(--c-accent-text)}.button--ghost{color:var(--c-text);background:0 0}.button--danger{background:var(--c-danger);color:var(--c-on-accent)}.button:disabled{cursor:default;opacity:.55}.button__loading{min-width:var(--s-5);vertical-align:bottom;animation:1s steps(4,end) infinite loading-dots;display:inline-block;overflow:hidden}@keyframes loading-dots{0%{width:0}to{width:var(--s-5)}}.text-field{gap:var(--s-1);display:grid}.text-field__label{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.text-field__input{width:100%;min-height:var(--s-7);padding:var(--s-3) var(--s-4);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface-sunk);font-size:var(--fs-input)}.error-state{color:var(--c-danger);font-size:var(--fs-sm)}.error-state .button{margin-top:var(--s-2)}.loading-state{gap:var(--s-3);width:100%;padding:var(--s-5);display:grid}.loading-state__line{height:var(--s-4);border-radius:var(--r-sm);background:var(--c-surface-sunk)}.loading-state__line:last-child{width:70%}.empty-state{min-height:50vh;padding:var(--s-6) var(--s-5);text-align:center;place-content:center;display:grid}.empty-state__title,.empty-state__hint{margin:0}.empty-state__title{font-weight:var(--fw-bold)}.empty-state__hint{margin-top:var(--s-1);color:var(--c-text-muted)}.app-shell{min-height:100dvh;padding:var(--safe-top) 0 calc(var(--s-7) + var(--s-2) + var(--safe-bottom));background:var(--c-bg);overscroll-behavior:none}.app-shell__content{width:min(100%,760px);min-height:calc(100dvh - var(--safe-top) - var(--s-7) - var(--s-2) - var(--safe-bottom));margin-inline:auto}.screen-header{min-height:var(--s-7);padding:var(--s-2) var(--s-4);border-bottom:1px solid var(--c-border);background:var(--c-bg);align-items:center;display:flex}.screen-header__title{font-size:var(--fs-xl);line-height:var(--lh-tight);flex:1;margin:0}.screen-header__right{align-items:center;gap:var(--s-1);display:flex}.icon-button,.screen-header__back{min-width:var(--touch-min);min-height:var(--touch-min);padding:var(--s-2);border-radius:var(--r-full);background:0 0;border:0;place-items:center;display:inline-grid}.screen-header__back+.screen-header__title{font-size:var(--fs-lg)}.sync-badge{color:var(--c-text-muted);font-size:var(--fs-xs);white-space:nowrap}.tab-bar{z-index:10;height:calc(var(--s-7) + var(--s-2) + var(--safe-bottom));padding-bottom:var(--safe-bottom);border-top:1px solid var(--c-border);background:var(--c-surface);grid-template-columns:repeat(2,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab-bar__item{min-width:var(--touch-min);min-height:calc(var(--s-7) + var(--s-2));padding:var(--s-1) var(--s-2);color:var(--c-text-muted);font-size:var(--fs-2xs);line-height:var(--lh-tight);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;display:flex}.tab-bar__item--active{color:var(--c-accent)}.tab-bar__icon{width:var(--s-7);border-radius:var(--r-full);height:25px}.tab-bar__item--active .tab-bar__icon{background:var(--c-accent-weak)}.login-screen{min-height:100dvh;padding:calc(var(--safe-top) + var(--s-5)) var(--s-5) calc(var(--safe-bottom) + var(--s-5));background:var(--c-bg);place-items:center;display:grid}.login-form{gap:var(--s-4);width:min(100%,400px);display:grid}.login-form__title{margin:0 0 var(--s-2);font-size:var(--fs-xl);line-height:var(--lh-tight)}.sheet-backdrop{z-index:20;background:var(--c-backdrop);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{overscroll-behavior:contain;width:min(100%,760px);max-height:92dvh;padding:var(--s-2) var(--s-4) calc(var(--s-4) + var(--safe-bottom));border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--c-surface);box-shadow:var(--shadow-md);animation:sheet-in var(--dur-base) var(--ease);overflow-y:auto}.sheet__handle{width:var(--s-6);height:var(--s-1);margin:0 auto var(--s-3);border-radius:var(--r-full);background:var(--c-border)}.settings-row{min-height:var(--touch-min);padding:var(--s-3) 0;border-bottom:1px solid var(--c-border)}.settings-row:last-child{border-bottom:0}.settings-row .button{width:100%;color:var(--c-danger);text-align:left;justify-content:flex-start;padding-inline:0}.settings-row--split .button{width:auto;color:var(--c-accent-text);text-align:end;justify-content:flex-end}.homescreen-hint{gap:var(--s-4);padding:0 0 var(--s-2);display:grid}.homescreen-hint h2,.homescreen-hint p{margin:0}.homescreen-hint h2{font-size:var(--fs-lg);line-height:var(--lh-tight)}.toast{top:calc(var(--safe-top) + 52px);z-index:15;width:max-content;max-width:calc(100% - (2 * var(--s-4)));min-height:38px;padding:var(--s-1) var(--s-1) var(--s-1) var(--s-3);border:1px solid var(--c-border);border-radius:var(--r-full);background:var(--c-surface);box-shadow:var(--shadow-md);color:var(--c-text);font-size:var(--fs-sm);animation:toast-in var(--dur-fast) var(--ease);justify-content:space-between;align-items:center;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast__action .button{min-height:30px;padding:var(--s-1) var(--s-2);color:var(--c-accent-text);position:relative}.toast__action .button:after{height:var(--touch-min);content:"";position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.screen-body{padding:0 0 var(--s-5)}.screen-body--with-quick-add{padding-bottom:calc(var(--s-7) + var(--s-6) + var(--s-5) + var(--safe-bottom))}.screen-body--with-target-market{padding-bottom:calc(var(--s-7) + var(--s-7) + var(--s-6) + var(--s-5) + var(--safe-bottom))}.list-groups{gap:var(--s-2);padding:var(--s-2) var(--s-3) 0;display:grid}.list-card{border:1px solid var(--c-hairline);border-radius:var(--r-card);background:var(--c-surface);box-shadow:var(--shadow-sm);overflow:hidden}.catalog-search{padding:var(--s-3) var(--s-4)}.catalog-limit-hint{padding:var(--s-4);color:var(--c-text-muted);font-size:var(--fs-sm);text-align:center;margin:0}.list{margin:0;padding:0;list-style:none}.section-header{padding:7px var(--s-3) 5px;color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.05em;line-height:var(--lh-tight);text-transform:uppercase;align-items:center;gap:7px;margin:0;display:flex}.section-header__dot{border-radius:var(--r-full);flex:none;width:6px;height:6px}.section-header--primary{padding:var(--s-1) 0 0;color:var(--c-text);font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:normal;text-transform:none}.list-row{border-top:1px solid var(--c-hairline);background:var(--c-surface);position:relative;overflow:hidden}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.list-row>.visually-hidden:focus{z-index:2;top:var(--s-1);right:var(--s-4);width:auto;height:auto;min-height:var(--touch-min);padding:var(--s-2) var(--s-3);clip-path:none;border-radius:var(--r-md);background:var(--c-surface);color:var(--c-danger);white-space:normal;overflow:visible}.list-row__swipe-hint{inset:0 var(--s-4) 0 auto;color:var(--c-danger);font-size:var(--fs-sm);font-weight:var(--fw-medium);align-items:center;display:flex;position:absolute}.list-row__surface{background:var(--c-surface);touch-action:pan-y;transition:transform var(--dur-fast) var(--ease);position:relative}.list-row--swiping .list-row__surface{transition:none}.list-row__main{align-items:center;gap:var(--s-3);min-height:40px;padding:var(--s-1) var(--s-3);display:flex}.list-row__leading{flex:none;display:flex}.list-row__body{text-align:start;flex:1;gap:2px;min-width:0;padding:0;display:grid}.list-row__body--button{cursor:pointer;background:0 0;border:0}.list-row__body--inline{align-items:baseline;gap:7px;display:flex}.list-row__body--inline .list-row__title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-row__body--inline .list-row__subtitle{flex:none}.list-row__title{overflow-wrap:anywhere;color:var(--c-text);font-size:var(--fs-md);font-weight:550;line-height:var(--lh-tight)}.list-row__title--struck{text-decoration:line-through}.list-row--dimmed .list-row__title,.list-row--dimmed .list-row__subtitle,.list-row--dimmed .list-row__qty{color:var(--c-text-faint)}.list-row__subtitle{color:var(--c-text-faint);font-size:var(--fs-xs);align-items:center;gap:4px;display:inline-flex}.list-row__trailing{flex:none}.list-row__qty{min-width:var(--s-5);padding:2px var(--s-2);border-radius:var(--r-full);background:var(--c-surface-sunk);color:var(--c-text-muted);font-size:var(--fs-sm);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;place-items:center;display:inline-grid}.list-row--highlighted .list-row__surface{animation:row-highlight .9s var(--ease)}@keyframes row-highlight{0%{background:var(--c-accent-weak)}to{background:var(--c-surface)}}.list-row__expanded{padding:0 var(--s-4) var(--s-4) calc(var(--s-2) + var(--touch-min))}.item-details{gap:var(--s-3);justify-items:start;display:grid}.item-details__chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.market-dot{border-radius:var(--r-full);background:var(--m-grau);flex:none;width:5px;height:5px;display:inline-block}.chip__leading{align-items:center;margin-right:4px;display:inline-flex}.picker__label-with-dot{align-items:center;gap:var(--s-2);display:inline-flex}.checkbox{min-width:40px;min-height:40px;margin-block:calc(-1 * var(--s-1));background:0 0;border:0;place-items:center;display:grid}.checkbox__box{border:2px solid var(--c-border);border-radius:var(--r-full);width:22px;height:22px;color:var(--c-on-accent);place-items:center;display:grid}.checkbox__box svg{width:var(--s-4);height:var(--s-4)}.checkbox--checked .checkbox__box{border-color:var(--c-accent);background:var(--c-accent)}.chip{border:1px solid var(--c-border);border-radius:var(--r-full);background:var(--c-surface);min-height:0;color:var(--c-text);font-size:var(--fs-sm);white-space:nowrap;align-items:center;padding:5px 11px;display:inline-flex;position:relative}.chip:after,.segmented__item:after{height:var(--touch-min);content:"";position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.chip--selected{border-color:var(--c-accent);background:var(--c-accent-weak);color:var(--c-accent-text)}.stepper{align-items:center;gap:var(--s-1);border:1px solid var(--c-border);border-radius:var(--r-full);display:inline-flex}.stepper__button{min-width:var(--touch-min);min-height:var(--touch-min);border-radius:var(--r-full);font-size:var(--fs-lg);background:0 0;border:0}.stepper__button:disabled{color:var(--c-text-faint)}.stepper__value{min-width:var(--s-5);text-align:center;font-variant-numeric:tabular-nums}.quick-add{z-index:12;right:0;bottom:calc(var(--s-7) + var(--s-2) + var(--safe-bottom));gap:var(--s-2);width:min(100%,760px);padding:var(--s-2) var(--s-4);border-top:1px solid var(--c-border);background:var(--c-bg);margin-inline:auto;display:grid;position:fixed;left:0}.quick-add__bar{align-items:end;gap:var(--s-2);display:flex}.quick-add__bar .text-field{flex:1}.quick-add__bar .text-field__input{height:var(--touch-min);min-height:var(--touch-min);padding-block:var(--s-2);box-shadow:var(--shadow-sm)}.quick-add__button{min-width:var(--touch-min);min-height:var(--touch-min);border-radius:var(--r-full);background:var(--c-accent);box-shadow:var(--shadow-add);color:var(--c-on-accent);border:0;place-items:center;display:grid}.quick-add__button:disabled{background:var(--c-surface-sunk);color:var(--c-text-faint)}.suggestion-row{gap:var(--s-2);padding-bottom:var(--s-1);scrollbar-width:none;display:flex;overflow-x:auto}.suggestion-row::-webkit-scrollbar{display:none}.target-market-row{gap:var(--s-2);padding-bottom:var(--s-1);scrollbar-width:none;display:flex;overflow-x:auto}.target-market-row>*{flex:none}.target-market-row::-webkit-scrollbar{display:none}.target-market-form{gap:var(--s-3);display:grid}.text-field__label--hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.picker{margin:0;padding:0;list-style:none}.picker__option{justify-content:space-between;align-items:center;gap:var(--s-3);width:100%;min-height:var(--touch-min);padding:var(--s-3) var(--s-1);border:0;border-bottom:1px solid var(--c-border);color:var(--c-text);font-size:var(--fs-md);text-align:start;background:0 0;display:flex}.picker li:last-child .picker__option{border-bottom:0}.picker__item--separated{margin-top:var(--s-2);border-top:1px solid var(--c-border)}.picker__option--current{color:var(--c-accent-text);font-weight:var(--fw-medium)}.picker__state{color:var(--c-text-muted);font-size:var(--fs-sm)}.archive-row{justify-content:space-between;align-items:center;gap:var(--s-3);min-height:var(--touch-min);padding:var(--s-2) var(--s-4);border-bottom:1px solid var(--c-border);display:flex}.archive-row__body{gap:2px;min-width:0;display:grid}.archive-row__title{overflow-wrap:anywhere}.archive-row__meta{color:var(--c-text-muted);font-size:var(--fs-xs)}.archive-row .button{color:var(--c-accent-text);flex:none}.segmented{gap:var(--s-1);margin:var(--s-3) var(--s-4) 0;padding:var(--s-1);border-radius:var(--r-full);background:var(--c-surface-sunk);display:flex}.segmented__item{min-height:var(--s-6);padding:0 var(--s-2);border-radius:var(--r-full);color:var(--c-text-muted);font-size:var(--fs-sm);white-space:nowrap;background:0 0;border:0;flex:1;position:relative}.segmented__item--active{background:var(--c-surface);color:var(--c-text);font-weight:var(--fw-medium)}.list-row__subtitle--danger{color:var(--c-danger)}.task-due{align-items:center;gap:var(--s-3);display:flex}.task-due__label{color:var(--c-text-muted);font-size:var(--fs-sm)}.task-due__input{min-height:var(--touch-min);padding:var(--s-2) var(--s-3);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface-sunk);color:var(--c-text);font-size:var(--fs-input)}.item-details__caption{color:var(--c-text-muted);font-size:var(--fs-sm);align-self:center}.editor{gap:var(--s-4);padding:var(--s-4);display:grid}.editor__actions{gap:var(--s-2);flex-wrap:wrap;display:flex}.text-field__input--area{min-height:calc(var(--s-7) * 2);padding:var(--s-3) var(--s-4);font-family:inherit;font-size:var(--fs-input);line-height:var(--lh-normal);resize:vertical}.history__title{margin:0 0 var(--s-2);font-size:var(--fs-lg);line-height:var(--lh-tight)}.history__body{max-height:40dvh;margin:0 0 var(--s-4);padding:var(--s-3);border-radius:var(--r-md);background:var(--c-surface-sunk);font-family:inherit;font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto}.settings-row--split{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.settings-row__state{color:var(--c-text-muted);font-size:var(--fs-sm);text-align:end}.settings-row__hint{margin-top:var(--s-1);color:var(--c-text-muted);font-size:var(--fs-sm);display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.task-detail{gap:var(--s-4);justify-items:stretch;display:grid}.task-detail .task-due,.task-detail .item-details__chips{justify-self:start}.task-detail .editor__actions{padding-top:var(--s-2)}.checklist{gap:var(--s-2);display:grid}.checklist__header{justify-content:space-between;align-items:baseline;display:flex}.checklist__title{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-text-muted)}.checklist__count{font-size:var(--fs-sm);color:var(--c-text-muted);font-variant-numeric:tabular-nums}.checklist__list{border-radius:var(--r-md);background:var(--c-surface-sunk);margin:0;padding:0;list-style:none}.checklist__item{align-items:center;gap:var(--s-1);min-height:var(--touch-min);padding-right:var(--s-1);border-bottom:1px solid var(--c-hairline);display:flex}.checklist__item:last-child{border-bottom:0}.checklist__text{min-width:0;font-size:var(--fs-md);overflow-wrap:anywhere;flex:auto}.checklist__item--done .checklist__text{color:var(--c-text-faint);text-decoration:line-through}.checklist__remove{min-width:var(--touch-min);min-height:var(--touch-min);border-radius:var(--r-full);color:var(--c-text-faint);background:0 0;border:0;flex:none;place-items:center;display:inline-grid}
