:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--font-sans:"Rubik", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Noto Sans Hebrew", "Arial Hebrew", Arial, sans-serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.75rem;--r-control:10px;--r-card:16px;--r-sheet:24px;--r-pill:999px;--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--ease-out:cubic-bezier(.2, .8, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--app-bg:#fbf9f4;--surface:#fff;--surface-2:#f1f0ea;--line:#e2e5dc;--ink:#15201a;--ink-soft:#4a5851;--ink-faint:#6b776f;--brand:#0e6e43;--brand-strong:#0a5735;--brand-tint:#e3f0e8;--brand-fill:#0e6e43;--brand-fill-2:#0a5735;--accent:#e4572e;--accent-strong:#c4441f;--accent-tint:#fce9e1;--success:#0e6e43;--warning:#9a6b00;--warn-tint:#fbeed0;--danger:#c0392b;--danger-tint:#fbe6e3;--aisle-produce:#285800;--aisle-chilled:#2f60be;--aisle-protein:#623b3b;--aisle-bakery:#9a755b;--aisle-pantry:#848702;--aisle-drinks:#7c668a;--aisle-treats:#810a6f;--aisle-home:#4a968a;--aisle-other:#606865;--shadow-sm:0 1px 2px #14281e0f;--shadow-md:0 4px 14px #142d201a;--shadow-lg:0 16px 40px #142d202e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-bg:#0c100e;--surface:#161c18;--surface-2:#1f2722;--line:#2a332d;--ink:#e6ede7;--ink-soft:#a3b0a7;--ink-faint:#83908a;--brand:#45ce8b;--brand-strong:#6fdda6;--brand-tint:#45ce8b29;--brand-fill:#17a365;--brand-fill-2:#128052;--accent:#ff8a5b;--accent-strong:#ffa77e;--accent-tint:#ff8a5b29;--success:#45ce8b;--warning:#e6b23c;--warn-tint:#e6b23c2b;--danger:#f0655a;--danger-tint:#f0655a2b;--aisle-produce:#6cd49c;--aisle-chilled:#4888d5;--aisle-protein:#a67b66;--aisle-bakery:#e6b93e;--aisle-pantry:#739401;--aisle-drinks:#bfacfc;--aisle-treats:#dd6995;--aisle-home:#66a8ae;--aisle-other:#cccfce;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 6px 18px #0000008c;--shadow-lg:0 18px 44px #000000a6}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--app-bg:#fbf9f4;--surface:#fff;--surface-2:#f1f0ea;--line:#e2e5dc;--ink:#15201a;--ink-soft:#4a5851;--ink-faint:#6b776f;--brand:#0e6e43;--brand-strong:#0a5735;--brand-tint:#e3f0e8;--brand-fill:#0e6e43;--brand-fill-2:#0a5735;--accent:#e4572e;--accent-strong:#c4441f;--accent-tint:#fce9e1;--success:#0e6e43;--warning:#9a6b00;--warn-tint:#fbeed0;--danger:#c0392b;--danger-tint:#fbe6e3;--aisle-produce:#285800;--aisle-chilled:#2f60be;--aisle-protein:#623b3b;--aisle-bakery:#9a755b;--aisle-pantry:#848702;--aisle-drinks:#7c668a;--aisle-treats:#810a6f;--aisle-home:#4a968a;--aisle-other:#606865;--shadow-sm:0 1px 2px #14281e0f;--shadow-md:0 4px 14px #142d201a;--shadow-lg:0 16px 40px #142d202e}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-bg:#0c100e;--surface:#161c18;--surface-2:#1f2722;--line:#2a332d;--ink:#e6ede7;--ink-soft:#a3b0a7;--ink-faint:#83908a;--brand:#45ce8b;--brand-strong:#6fdda6;--brand-tint:#45ce8b29;--brand-fill:#17a365;--brand-fill-2:#128052;--accent:#ff8a5b;--accent-strong:#ffa77e;--accent-tint:#ff8a5b29;--success:#45ce8b;--warning:#e6b23c;--warn-tint:#e6b23c2b;--danger:#f0655a;--danger-tint:#f0655a2b;--aisle-produce:#6cd49c;--aisle-chilled:#4888d5;--aisle-protein:#a67b66;--aisle-bakery:#e6b93e;--aisle-pantry:#739401;--aisle-drinks:#bfacfc;--aisle-treats:#dd6995;--aisle-home:#66a8ae;--aisle-other:#cccfce;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 6px 18px #0000008c;--shadow-lg:0 18px 44px #000000a6}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);background-color:var(--app-bg);color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:contain;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y;min-height:100dvh;transition:background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);direction:rtl}input,textarea,select,button{color:inherit;font-family:inherit}input:where(:not([type=checkbox],[type=radio],[type=range],[type=color])),textarea,select{background-color:var(--surface)}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--brand-tint);color:var(--brand-strong)}:where(button,[role=button],summary){cursor:pointer;touch-action:manipulation;font-family:inherit}:where(button:disabled){cursor:default}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.auth-container{min-height:100vh;justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex}.auth-card{background:var(--surface);border-radius:var(--r-sheet);width:100%;max-width:420px;padding:2.5rem;box-shadow:0 4px 24px #0000001a}.auth-card-google{text-align:center;padding:2.5rem 2rem}.auth-logo{margin-bottom:.3rem;font-size:3.5rem;line-height:1}.auth-card h1{text-align:center;font-size:var(--text-2xl);color:var(--ink);margin-bottom:.4rem}.auth-subtitle{text-align:center;color:var(--ink-faint);font-size:var(--text-sm);margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{font-weight:600;font-size:var(--text-sm);margin-bottom:.4rem;display:block}.form-group input{border:2px solid var(--line);border-radius:var(--r-control);width:100%;font-size:var(--text-base);transition:border-color var(--dur-base);padding:.7rem 1rem}.form-group input:focus{border-color:var(--brand);outline:none}.google-login{justify-content:center;margin-bottom:1rem;display:flex}.auth-link{text-align:center;font-size:var(--text-sm);margin-top:1rem}.btn{border-radius:var(--r-control);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--dur-base), transform var(--dur-fast), box-shadow var(--dur-base);touch-action:manipulation;border:none;padding:.65rem 1.4rem;font-weight:600}.btn:active{transform:scale(.96)}.btn-primary{background:linear-gradient(135deg, var(--brand-fill), var(--brand-fill-2));color:#fff;width:100%;box-shadow:0 2px 8px #157a4f40}.btn-primary:hover{background:linear-gradient(135deg, var(--brand-fill-2), var(--brand-fill-2));box-shadow:0 4px 12px #157a4f59}.btn-secondary{background-color:var(--surface-2);color:var(--ink-soft)}.btn-secondary:hover{background-color:var(--line)}.btn-delete{color:var(--danger);font-size:var(--text-lg);border-radius:var(--r-pill);background:0 0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:.3rem .6rem;display:flex}.btn-delete:hover{background-color:var(--danger-tint)}.btn-sm{font-size:var(--text-xs);padding:.4rem .9rem}.home-container{max-width:700px;padding:.8rem 1rem;padding-bottom:calc(5rem + var(--safe-bottom,0px));min-height:100vh;min-height:100dvh;margin:0 auto}.app-header{background:var(--app-bg);z-index:50;padding:.4rem 0;padding-top:max(.4rem, var(--safe-top,0px));justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex;position:sticky;top:0}.app-header h1{font-size:var(--text-xl);font-weight:700}.header-right{align-items:center;gap:.6rem;display:flex}.welcome{color:var(--ink-soft);font-weight:500;font-size:var(--text-xs)}.tab-bar{bottom:0;background:var(--surface);padding:.2rem .5rem;padding-bottom:max(.2rem, var(--safe-bottom,0px));z-index:100;border-top:1px solid var(--line);border-radius:0;margin-bottom:0;display:flex;position:fixed;inset-inline:0;box-shadow:0 -2px 16px #00000014}.tab-item{font-size:var(--text-xs);color:var(--ink-faint);cursor:pointer;transition:color var(--dur-base);z-index:1;touch-action:manipulation;background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.15rem;padding:.5rem .3rem;font-weight:600;display:flex;position:relative}.tab-item:hover{color:var(--ink-soft)}.tab-item.tab-active{color:var(--brand);background:0 0}.tab-emoji{font-size:var(--text-lg);position:relative}.tab-label{white-space:nowrap}.tab-content{min-height:200px;animation:.2s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.add-form-v2{background:var(--surface);border-radius:var(--r-card);border:1px solid #0000000a;flex-direction:column;gap:.4rem;margin-bottom:.8rem;padding:.8rem;display:flex;box-shadow:0 1px 4px #0000000a,0 2px 8px #00000005}.add-form-row-1{gap:.4rem;display:flex}.add-form-row-2{align-items:center;gap:.4rem;display:flex}.add-form-submit{white-space:nowrap;flex-shrink:0;width:auto!important}.add-input{border:2px solid var(--line);border-radius:var(--r-control);font-size:var(--text-base);background:var(--surface);transition:border-color var(--dur-base), box-shadow var(--dur-base);flex:1;padding:.75rem 1rem}.add-input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #157a4f1a}.add-input-wrapper{flex:1;position:relative}.add-input-wrapper .add-input{box-sizing:border-box;width:100%;padding-left:2rem}.dropdown-toggle{inset-inline-end:.4rem;cursor:pointer;font-size:var(--text-xs);color:var(--ink-faint);z-index:2;background:0 0;border:none;padding:.2rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.dropdown-toggle:hover{color:var(--ink-soft)}.add-input-spinner{inset-inline-end:.5rem;border:2px solid var(--line);border-top-color:var(--brand);border-radius:var(--r-pill);z-index:2;width:16px;height:16px;animation:.6s linear infinite spin;position:absolute;top:50%;transform:translateY(-50%)}@keyframes spin{to{transform:translateY(-50%)rotate(360deg)}}.city-autocomplete .dropdown-toggle{inset-inline-end:.4rem;z-index:2;position:absolute;top:50%;transform:translateY(-50%)}.city-autocomplete .add-input{padding-left:2rem}.add-autocomplete,.price-autocomplete,.city-suggestions{top:100%;background:var(--surface);border:1px solid var(--line);border-radius:0 0 var(--r-control) var(--r-control);box-shadow:var(--shadow-md);z-index:100;overscroll-behavior:contain;border-top:none;max-height:200px;position:absolute;inset-inline:0;overflow-y:auto}.quantity-input{border:2px solid var(--line);border-radius:var(--r-control);width:70px;font-size:var(--text-base);text-align:center;padding:.7rem}.quantity-input:focus{border-color:var(--brand);outline:none}.add-form .btn-primary{white-space:nowrap;width:auto}.unit-select{border:2px solid var(--line);border-radius:var(--r-control);font-size:var(--text-base);background:var(--surface);cursor:pointer;min-width:80px;padding:.7rem .5rem}.unit-select:focus{border-color:var(--brand);outline:none}.grocery-group{background:0 0}.group-head{font-size:var(--text-base);color:var(--ink);align-items:center;gap:.6rem;padding:1.15rem 0 .5rem;font-weight:700;display:flex}.group-name{flex:1;align-items:center;gap:.55rem;min-width:0;display:flex}.group-emoji{border-radius:var(--r-pill);background:var(--surface-2);background:color-mix(in oklab, var(--hue,var(--brand)) 18%, transparent);flex-shrink:0;place-items:center;block-size:30px;inline-size:30px;font-size:1rem;line-height:1;display:grid}.group-count{font-size:var(--text-xs);color:var(--ink-soft);font-variant-numeric:tabular-nums;background:var(--surface-2);border-radius:var(--r-pill);padding:.15rem .5rem;font-weight:700}.group-chevron{color:var(--ink-faint);transition:transform var(--dur-base) var(--ease-out)}.group-chevron.is-open{transform:rotate(90deg)}.group-title-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.group-title-toggle:hover{color:var(--brand)}.collapse-icon{font-size:var(--text-xs);color:var(--ink-faint);transition:color var(--dur-base)}.group-title-toggle:hover .collapse-icon{color:var(--brand)}.collapse-all-controls{justify-content:flex-start;gap:.3rem;margin-bottom:.4rem;display:flex}.btn-collapse-all{background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);font-size:var(--text-xs);border-radius:var(--r-control);cursor:pointer;touch-action:manipulation;transition:background var(--dur-base), color var(--dur-base);padding:.3rem .6rem}.btn-collapse-all:hover{background:var(--brand-tint);color:var(--brand);border-color:var(--brand-tint)}.reorder-modal{text-align:start}.reorder-modal-desc{text-align:center;font-size:var(--text-xs);color:var(--ink-faint);margin-bottom:.8rem}.reorder-list{flex-direction:column;gap:.4rem;display:flex}.reorder-item{background:var(--surface-2);border-radius:var(--r-control);transition:background-color var(--dur-base);justify-content:space-between;align-items:center;padding:.6rem .8rem;display:flex}.reorder-item-absent .reorder-item-info{opacity:.55}.reorder-drag-handle{touch-action:none;cursor:grab;color:var(--ink-faint);font-size:var(--text-base);-webkit-user-select:none;user-select:none;border-radius:var(--r-control);margin-inline-end:.1rem;padding:.2rem .35rem;line-height:1}.reorder-drag-handle:active{cursor:grabbing;background:var(--surface-3,#8080802e)}.reorder-item-dragging{opacity:.9;transform:scale(1.02);box-shadow:0 2px 10px #0000002e}.reorder-item-info{font-size:var(--text-sm);align-items:center;gap:.4rem;display:flex}.reorder-item-emoji{font-size:var(--text-base)}.reorder-item-name{font-weight:600}.reorder-item-count{color:var(--ink-faint);font-size:var(--text-xs)}.reorder-item-btns{gap:.3rem;display:flex}.btn-reorder-arrow{background:var(--brand-tint);color:var(--brand);font-size:var(--text-xs);border-radius:var(--r-pill);cursor:pointer;width:44px;height:44px;transition:background-color var(--dur-base), transform var(--dur-fast);touch-action:manipulation;border:none;justify-content:center;align-items:center;font-weight:700;display:flex}.btn-reorder-arrow:hover:not(:disabled){background:var(--brand-tint)}.btn-reorder-arrow:active:not(:disabled){transform:scale(.9)}.btn-reorder-arrow:disabled{opacity:.25;cursor:default}.grocery-group ul{list-style:none}.grocery-item{padding:.3rem .7rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);transition:background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out);flex-direction:column;gap:.2rem;margin-block-end:6px;padding-inline-start:.85rem;display:flex;position:relative;overflow:hidden}.grocery-item:before{content:"";background:var(--hue,var(--brand));inline-size:4px;transition:opacity var(--dur-base) var(--ease-out);position:absolute;inset-block:0;inset-inline-start:0}.grocery-item:last-child{border-bottom:none}.grocery-done{background:0 0;border-color:#0000}.grocery-done:before{opacity:.3}.item-top-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.item-checkbox{appearance:none;border:2px solid var(--line);border-radius:var(--r-pill);background-color:var(--surface);cursor:pointer;block-size:26px;inline-size:26px;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);background-position:50%;background-repeat:no-repeat;background-size:15px 15px;flex-shrink:0;margin:0}.item-checkbox:active{transform:scale(.86)}.item-checkbox:checked{background-color:var(--hue,var(--brand));border-color:var(--hue,var(--brand));animation:check-pop var(--dur-slow) var(--ease-spring);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E")}@keyframes check-pop{0%{transform:scale(.7)}60%{transform:scale(1.2)}to{transform:scale(1)}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .item-checkbox:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c100e' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E")}}:root[data-theme=dark] .item-checkbox:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c100e' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E")}.image-zoom-overlay{z-index:1100}.image-zoom-container{flex-direction:column;align-items:center;gap:.8rem;padding:1.5rem;display:flex}.image-zoom-spinner{border-radius:var(--r-pill);border:4px solid #ffffff4d;border-top-color:#fff;width:48px;height:48px;animation:.8s linear infinite zoom-spin}@keyframes zoom-spin{to{transform:rotate(360deg)}}.image-zoom{object-fit:contain;background:var(--surface);border-radius:var(--r-control);image-rendering:auto;width:280px;height:280px;padding:1rem;box-shadow:0 4px 24px #0003}.image-zoom-credit{color:#ffffffbf;font-size:var(--text-xs);text-align:center;text-shadow:0 1px 4px #00000080;margin:.2rem 0 0}.image-zoom-name{color:#fff;font-size:var(--text-base);text-align:center;text-shadow:0 1px 4px #00000080;margin:0;font-weight:600}.image-zoom-close{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border:1px solid #fff6}.item-name{font-size:var(--text-base);transition:color var(--dur-base), text-decoration var(--dur-base);text-align:start;flex:1;min-width:0;font-weight:600}.search-highlight{background:var(--warn-tint);color:var(--warning);border-radius:var(--r-control);padding:0 1px}.item-name:hover{color:var(--brand)}.grocery-done{opacity:.62}.grocery-done .quantity-controls{background:0 0}.item-name-done{color:var(--ink-faint);text-decoration:line-through}.item-name-done:hover{color:var(--ink-soft)}.quantity-controls{background:var(--surface-2);border-radius:var(--r-pill);flex-shrink:0;align-items:center;gap:0;display:flex}.btn-quantity{color:var(--ink-soft);font-size:var(--text-lg);border-radius:var(--r-pill);cursor:pointer;width:34px;height:44px;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);touch-action:manipulation;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-weight:600;display:flex}.btn-quantity:hover:not(:disabled){color:var(--brand)}.btn-quantity:active:not(:disabled){background-color:var(--brand-tint);color:var(--brand)}.btn-quantity:disabled{opacity:.4;cursor:not-allowed}.item-quantity{color:var(--ink);font-size:var(--text-xs);text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap;background:0 0;min-inline-size:2.9rem;padding:0;font-weight:700}.item-more{width:36px;height:44px;color:var(--ink-faint);font-size:var(--text-lg);border-radius:var(--r-control);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;flex-shrink:0;place-items:center;line-height:1;display:grid}.item-more:active{background:var(--surface-2);color:var(--ink)}.ia-row{border:0;border-block-end:1px solid var(--line);width:100%;min-height:52px;color:var(--ink);font-size:var(--text-base);text-align:start;transition:background var(--dur-fast) var(--ease-out);background:0 0;align-items:center;gap:.75rem;padding:.6rem .2rem;display:flex}.ia-row:last-child{border-block-end:0}.ia-row:active{background:var(--surface-2)}.ia-icon{width:32px;font-size:var(--text-lg);text-align:center;flex-shrink:0;line-height:1}.ia-label{flex:1;font-weight:500}.ia-danger{color:var(--danger)}.ia-select .type-select{flex:1;max-width:55%}.ia-input{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);min-width:0;color:var(--ink);font-size:var(--text-base);flex:1;padding:.5rem .6rem;font-family:inherit}.ia-input:focus{border-color:var(--brand);outline:none}.ia-save{border-radius:var(--r-control);background:var(--brand-fill);color:#fff;min-height:40px;font-size:var(--text-sm);transition:opacity var(--dur-fast) var(--ease-out);border:0;flex-shrink:0;padding:0 .9rem;font-weight:700}.ia-save:disabled{opacity:.4;cursor:default}.ia-rename{flex-wrap:wrap}.ia-error{color:var(--danger);font-size:var(--text-sm);flex-basis:100%;margin-block-start:.45rem;margin-inline-start:calc(32px + .75rem);font-weight:600}.ia-input[aria-invalid=true]{border-color:var(--danger)}.type-select{border:2px solid var(--brand);border-radius:var(--r-control);font-size:var(--text-base);background:var(--surface);cursor:pointer;padding:.3rem .5rem}.type-select:focus{outline:none}.complete-bar{justify-content:center;margin-bottom:.8rem;display:flex}.btn-complete{background:linear-gradient(135deg, var(--brand-fill), var(--brand-fill-2));color:#fff;border-radius:var(--r-control);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--dur-base), transform var(--dur-fast);touch-action:manipulation;border:none;padding:.7rem 1.5rem;font-weight:600;box-shadow:0 2px 8px #4caf5040}.btn-complete:hover{background-color:var(--brand-fill-2)}.btn-complete:active{transform:scale(.97)}.btn-complete:disabled{background-color:var(--brand-tint);cursor:not-allowed}.modal-overlay{top:0;inset-inline:0;z-index:1000;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s ease-out overlayFadeIn;display:flex;position:fixed;bottom:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--surface);border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:1.5rem;padding-bottom:calc(1.5rem + var(--safe-bottom,0px));text-align:center;width:100%;max-width:500px;max-height:92vh;max-height:92dvh;animation:.25s ease-out slideUp;position:relative;overflow-y:auto;box-shadow:0 -4px 32px #0000001f}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.modal-close-btn{top:.5rem;background:var(--surface-2);font-size:var(--text-lg);cursor:pointer;color:var(--ink-soft);border-radius:var(--r-pill);width:44px;height:44px;transition:background var(--dur-base), color var(--dur-base);z-index:1;touch-action:manipulation;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:absolute;inset-inline-end:.5rem}.modal-close-btn:hover{background:var(--line);color:var(--ink)}.modal-card h2{font-size:var(--text-lg);margin-bottom:.8rem}.modal-card p{color:var(--ink-soft);font-size:var(--text-sm);margin-bottom:1.2rem;line-height:1.5}.modal-card .btn{width:auto;min-width:100px}.duplicate-modal-actions{justify-content:center;gap:.5rem;display:flex}.duplicate-modal-actions .btn-primary{width:auto}.smart-modal{text-align:start;max-height:80vh;overflow-y:auto}.smart-modal h2{text-align:center;margin-bottom:.5rem}.smart-modal-desc{text-align:center;color:var(--ink-faint);font-size:var(--text-xs);margin-bottom:1rem}.smart-suggestion-list{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.smart-suggestion{background:var(--surface-2);border-radius:var(--r-control);transition:background-color var(--dur-base);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.smart-suggestion:hover{background:var(--surface-2)}.smart-suggestion.selected{background:var(--brand-tint);border:2px solid var(--brand)}.smart-checkbox{width:20px;height:20px;accent-color:var(--brand);cursor:pointer;flex-shrink:0}.smart-suggestion-emoji{cursor:pointer}.smart-suggestion-info{cursor:pointer;flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.smart-suggestion-name{font-size:var(--text-sm);font-weight:500}.smart-suggestion-qty{flex-shrink:0;align-items:center;gap:.3rem;margin-right:auto;display:flex}.smart-qty-value{text-align:center;min-width:28px;font-size:var(--text-sm);font-weight:600}.smart-qty-unit{font-size:var(--text-xs);color:var(--ink-faint)}.reason-badge{font-size:var(--text-xs);border-radius:var(--r-control);padding:.1rem .4rem;font-weight:600}.reason-frequent{background:var(--brand-tint);color:var(--brand)}.reason-missing{background:var(--warn-tint);color:var(--warning)}.reason-expired{background:var(--danger-tint);color:var(--danger)}.smart-modal-actions{justify-content:center;gap:.5rem;display:flex}.smart-empty{text-align:center;color:var(--ink-faint);font-size:var(--text-sm);padding:1.5rem}.loading{text-align:center;color:var(--ink-faint);font-size:var(--text-base);flex-direction:column;align-items:center;gap:.8rem;padding:3rem;display:flex}.loading:before{content:"";border-radius:var(--r-pill);border:3px solid var(--line);border-top-color:var(--brand);width:28px;height:28px;animation:.7s linear infinite spin-ring}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, color-mix(in srgb, var(--surface-2) 55%, var(--line)) 37%, var(--surface-2) 63%);background-size:400% 100%;animation:1.4s ease-in-out infinite skeleton-sweep;display:block}@keyframes skeleton-sweep{0%{background-position:100% 0}to{background-position:0 0}}.skeleton-wrap{flex-direction:column;gap:12px;display:flex}.skeleton-hero{flex-direction:column;gap:12px;margin-bottom:6px;display:flex}.skeleton-row-actions{gap:9px;display:flex}.skeleton-row-actions>*{flex:1}.skeleton-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);flex-direction:column;gap:14px;padding:14px;display:flex}.skeleton-group-head{justify-content:space-between;align-items:center;display:flex}.skeleton-line{align-items:center;gap:12px;display:flex}.empty-state{text-align:center;color:var(--ink-faint);flex-direction:column;align-items:center;gap:6px;padding:2.5rem 1rem;display:flex}.empty-icon{margin-bottom:2px;font-size:2.5rem;line-height:1}.empty-title{font-size:var(--text-lg);color:var(--ink);font-weight:700}.empty-body{font-size:var(--text-sm);max-width:30ch;line-height:1.5}.empty-action{width:auto;margin-top:10px;padding-inline:1.6rem}.error-message{border-radius:var(--r-control);text-align:center;font-weight:500;font-size:var(--text-sm);margin-bottom:.8rem;padding:.75rem 1rem;animation:.2s ease-out fadeIn}.error-message:not([class*=success]){background:var(--danger-tint);color:var(--danger);border:1px solid var(--danger-tint)}.home-setup{flex-direction:column;align-items:center;gap:1rem;display:flex}.setup-card{background:var(--surface);border-radius:var(--r-card);text-align:center;border:1px solid #0000000a;width:100%;padding:1.2rem 1.5rem;box-shadow:0 1px 4px #0000000a,0 2px 8px #00000005}.setup-card h2{font-size:var(--text-lg);margin-bottom:.5rem}.setup-card p{color:var(--ink-faint);font-size:var(--text-sm);margin-bottom:1rem}.setup-form{gap:.5rem;display:flex}.setup-form-vertical{flex-direction:column}.city-autocomplete{flex:1;position:relative}.city-suggestion-item{cursor:pointer;font-size:var(--text-sm);transition:background-color var(--dur-fast);padding:.5rem .8rem}.city-suggestion-item:hover{background:var(--brand-tint)}.city-edit-inline{flex:1;align-items:center;gap:.3rem;display:flex}.city-edit-input{max-width:150px;font-size:var(--text-xs);padding:.4rem .6rem}.setup-divider{color:var(--ink-faint);font-size:var(--text-sm);padding:.3rem 0}.home-actions-bar{flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem;display:flex}.home-action-btn{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);min-width:0;color:var(--ink);box-shadow:var(--shadow-sm);font-size:var(--text-xs);cursor:pointer;transition:transform var(--dur-fast), background var(--dur-base), border-color var(--dur-base);touch-action:manipulation;white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:.3rem;padding:.62rem .5rem;font-family:inherit;font-weight:650;display:flex}.home-action-btn:active{transform:scale(.96)}.home-action-btn:disabled{opacity:.5;cursor:not-allowed}.home-action-refresh,.home-action-settings,.home-action-history{background:var(--surface);color:var(--ink)}.home-action-refresh:hover,.home-action-settings:hover,.home-action-history:hover{background:var(--surface-2)}.home-action-danger{background:var(--surface);border-color:var(--danger);color:var(--danger)}.home-action-danger:hover{background:var(--danger-tint)}.btn-delete-home{background:var(--danger-tint);color:var(--danger);border-radius:var(--r-control);font-size:var(--text-xs);cursor:pointer;border:none;padding:.4rem .8rem;font-weight:600}.btn-delete-home:hover{background:var(--danger-tint)}.detail-modal-actions{gap:.5rem;margin-top:.8rem;display:flex}.detail-modal-actions .btn{flex:1}.btn-scan{background:var(--brand-tint);color:var(--brand);border-radius:var(--r-control);font-size:var(--text-lg);cursor:pointer;transition:background-color var(--dur-base);touch-action:manipulation;border:none;flex-shrink:0;padding:.5rem .8rem}.btn-scan:hover{background:var(--brand-tint)}.scanner-modal{max-width:500px}.price-modal{text-align:start;max-width:450px;max-height:85vh;overflow-y:auto}.price-list{flex-direction:column;gap:.4rem;margin:.8rem 0;display:flex}.price-row{background:var(--surface-2);border-radius:var(--r-control);justify-content:space-between;align-items:center;padding:.5rem .8rem;display:flex}.price-store{font-size:var(--text-sm);font-weight:500}.price-value{font-size:var(--text-base);color:var(--success);font-weight:700}.price-compare-section{border-top:2px solid var(--line);margin-top:1rem;padding-top:.8rem}.price-search-form{gap:.4rem;margin-bottom:.6rem;display:flex}.price-search-wrapper{position:relative}.price-autocomplete-item{border:none;border-bottom:1px solid var(--surface-2);width:100%;font-size:var(--text-xs);text-align:start;cursor:pointer;direction:rtl;background:0 0;align-items:center;gap:.5rem;padding:.5rem .8rem;display:flex}.autocomplete-image{object-fit:contain;flex-shrink:0;width:24px;height:24px}.price-autocomplete-item:last-child{border-bottom:none}.dropdown-close-btn{background:var(--surface-2);border:none;border-bottom:1px solid var(--line);width:100%;font-size:var(--text-xs);color:var(--ink-faint);cursor:pointer;text-align:center;padding:.35rem .8rem;display:block}.dropdown-close-btn:hover{background:var(--line);color:var(--ink-soft)}.price-autocomplete-item:hover{background:var(--brand-tint)}.price-compare-section h3{font-size:var(--text-base);color:var(--ink-soft);margin:0 0 .5rem}.price-matched-name{font-size:var(--text-xs);color:var(--ink-faint);margin:0 0 .5rem;font-style:italic}.price-store-row{flex-wrap:wrap;gap:.3rem}.price-address{font-size:var(--text-xs);color:var(--ink-faint);flex-basis:100%}.price-values{align-items:center;gap:.4rem;display:flex}.price-sale{color:var(--danger);font-weight:700}.price-original{color:var(--ink-faint);font-size:var(--text-xs);font-weight:400;text-decoration:line-through}.price-sale-desc{font-size:var(--text-xs);color:var(--danger);flex-basis:100%}.price-deal{font-size:var(--text-xs);flex-basis:100%;align-items:center;gap:.35rem;margin-top:.25rem;display:inline-flex}.price-deal-terms{background:var(--accent-tint);color:var(--accent-strong);border-radius:var(--r-pill);white-space:nowrap;padding:.1rem .45rem;font-weight:700}.price-deal-unit{color:var(--ink-soft);white-space:nowrap}.price-form{gap:.4rem;margin-top:.8rem;display:flex}.best-store-modal{text-align:start;max-width:450px;max-height:85vh;overflow-y:auto}.best-store-subtitle{font-size:var(--text-xs);color:var(--ink-faint);margin:-.3rem 0 .5rem}.best-store-list{flex-direction:column;gap:.5rem;margin:.8rem 0;display:flex}.best-store-cheapest{background:var(--brand-tint);border:2px solid var(--success)}.best-store-header{justify-content:space-between;align-items:center;display:flex}.best-store-name{font-size:var(--text-base);font-weight:600}.best-store-total{font-size:var(--text-base);color:var(--ink);font-weight:700}.best-store-cheapest .best-store-total{color:var(--success)}.best-store-meta{font-size:var(--text-xs);color:var(--ink-faint);margin-top:.2rem}.best-store-distance{border-radius:var(--r-pill);background:var(--surface-2);font-size:var(--text-xs);white-space:nowrap;margin-inline-start:.4rem;padding:.05rem .4rem;display:inline-block}.best-store-card{background:var(--surface-2);border-radius:var(--r-control);cursor:pointer;transition:background var(--dur-base);padding:.7rem 1rem}.best-store-card:hover{background:var(--surface-2)}.store-loader{aspect-ratio:1;place-items:center;width:min(15rem,72vw);margin:.5rem auto 1.25rem;display:grid;position:relative;overflow:hidden}.store-loader-orbit{animation:9s linear infinite store-orbit;position:absolute;inset:0}.store-loader-slot{width:2.75rem;height:2.75rem;transform:rotate(var(--angle)) translateY(max(-5.6rem, -26vw));margin:-1.375rem 0 0 -1.375rem;position:absolute;top:50%;left:50%}.store-loader-upright{place-items:center;width:100%;height:100%;animation:9s linear infinite reverse store-orbit;display:grid}.store-loader-emoji{font-size:var(--text-2xl);transform:rotate(var(--counter));animation:1.9s ease-in-out infinite store-bob;animation-delay:var(--delay);line-height:1}.store-loader-core{transition:opacity var(--dur-slow) ease;place-items:center;gap:.55rem;display:grid;position:relative}.store-loader-ring{border-radius:var(--r-pill);border:3px solid var(--brand-tint);border-top-color:var(--brand);width:2.1rem;height:2.1rem;animation:.9s linear infinite store-orbit}.store-loader-text{font-size:var(--text-sm);color:var(--ink-soft);font-weight:700}@keyframes store-orbit{to{transform:rotate(360deg)}}@keyframes store-bob{0%,to{transform:rotate(var(--counter)) scale(1);opacity:.8}50%{transform:rotate(var(--counter)) scale(1.14);opacity:1}}.grocery-fall{pointer-events:none;z-index:5000;position:fixed;inset:0}.grocery-fall-item{font-size:var(--text-2xl);will-change:transform;animation:1.4s cubic-bezier(.4,0,.85,.45) forwards grocery-drop;animation-delay:var(--delay);line-height:1;position:fixed}@keyframes grocery-drop{0%{opacity:1;transform:translateY(0)rotate(0)}85%{opacity:1}to{transform:translateY(105vh) rotate(var(--tumble));opacity:0}}@media (prefers-reduced-motion:reduce){.store-loader-orbit,.store-loader-upright,.store-loader-emoji{animation:none}.store-loader-ring{animation-duration:2.4s}.grocery-fall{display:none}}.best-store-details{border-top:1px solid var(--line);margin-top:.6rem;padding-top:.6rem}.best-store-address-detail{font-size:var(--text-xs);color:var(--ink-soft);margin-bottom:.5rem}.best-store-section-title{font-size:var(--text-xs);color:var(--ink-soft);margin-bottom:.3rem;font-weight:600}.best-store-item-row{font-size:var(--text-xs);color:var(--ink-soft);justify-content:space-between;align-items:center;padding:.2rem 0;display:flex}.best-store-item-price{white-space:nowrap;margin-right:.5rem;font-weight:600}.best-store-item-price .sale-price{color:var(--danger)}.best-store-item-price s{color:var(--ink-faint);margin-left:.3rem;font-weight:400}.best-store-missing{margin-top:.5rem}.best-store-missing-item{font-size:var(--text-xs);color:var(--ink-faint);padding:.15rem 0}.best-store-not-found{background:var(--warn-tint);border-radius:var(--r-control);border:1px solid var(--warn-tint);margin-top:.8rem;padding:.6rem .8rem}.btn-show-all-stores{border:1px dashed var(--line);border-radius:var(--r-control);width:100%;color:var(--brand);font-size:var(--text-xs);cursor:pointer;transition:background var(--dur-base);background:0 0;margin-top:.4rem;padding:.5rem;display:block}.btn-show-all-stores:hover{background:var(--brand-tint)}.expiry-settings-modal{text-align:start;max-width:450px;max-height:85vh;overflow-y:auto}.expiry-settings-desc{font-size:var(--text-xs);color:var(--ink-soft);margin-bottom:.8rem}.expiry-settings-list{flex-direction:column;gap:.5rem;display:flex}.expiry-setting-row{background:var(--surface-2);border-radius:var(--r-control);justify-content:space-between;align-items:center;padding:.5rem .6rem;display:flex}.expiry-setting-type{font-size:var(--text-sm);font-weight:500}.expiry-setting-input-group{align-items:center;gap:.3rem;display:flex}.expiry-setting-input{border:1px solid var(--line);border-radius:var(--r-control);text-align:center;width:60px;font-size:var(--text-sm);padding:.3rem .4rem}.expiry-setting-unit{font-size:var(--text-xs);color:var(--ink-faint)}.expiry-reset-btn{cursor:pointer;font-size:var(--text-base);color:var(--brand);background:0 0;border:none;padding:.1rem .3rem}.expiry-settings-actions{gap:.5rem;margin-top:1rem;display:flex}.expiry-settings-actions .btn{flex:1}.history-manager-modal{text-align:start;max-width:480px;max-height:85vh;overflow-y:auto}.history-manager-desc{font-size:var(--text-xs);color:var(--ink-soft);margin-bottom:.8rem}.history-filter-input{border:1px solid var(--line);border-radius:var(--r-control);width:100%;font-size:var(--text-sm);box-sizing:border-box;margin-bottom:.8rem;padding:.5rem .7rem}.history-items-list{flex-direction:column;gap:.3rem;max-height:50vh;display:flex;overflow-y:auto}.history-item-row{background:var(--surface-2);border-radius:var(--r-control);justify-content:space-between;align-items:center;padding:.5rem .6rem;display:flex}.history-item-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.history-item-name{font-size:var(--text-sm);font-weight:500}.history-item-meta{font-size:var(--text-xs);color:var(--ink-faint)}.confirm-modal{text-align:start;max-width:360px}.confirm-modal p{font-size:var(--text-sm);color:var(--ink-soft);margin:.8rem 0;line-height:1.5}.confirm-actions{gap:.5rem;margin-top:1rem;display:flex}.confirm-actions .btn{flex:1}.recipe-new-btn-row .btn{width:100%}.recipe-actions-bar{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:.8rem;display:flex}.recipe-actions-bar .btn-primary{width:auto}.recipe-actions-bar .btn{font-size:var(--text-xs);padding:.55rem 1rem}.recipe-list{flex-direction:column;gap:.5rem;display:flex}.recipe-form-modal{text-align:start;max-width:500px;max-height:90vh;overflow-y:auto}.recipe-form-modal .form-group,.recipe-paste{margin-bottom:1rem}.recipe-paste-toggle{width:100%}.recipe-paste-box{border:1px dashed var(--line);border-radius:var(--r-control);background:var(--surface-2);padding:.75rem}.recipe-paste-desc{font-size:var(--text-xs);color:var(--ink-faint);margin:0 0 .6rem;line-height:1.4}.recipe-paste-input{resize:vertical;width:100%;font-family:inherit;line-height:1.5}.recipe-paste-meta{font-size:var(--text-xs);color:var(--ink-faint);justify-content:space-between;gap:.5rem;margin-top:.35rem;display:flex}.recipe-paste-actions{gap:.5rem;margin-top:.6rem;display:flex}.recipe-paste-actions .btn{flex:1}.recipe-ing-name-row{margin-bottom:.4rem}.recipe-ing-name-row .add-input{width:100%}.recipe-ing-form{flex-wrap:wrap;align-items:flex-start;gap:.4rem;display:flex}.recipe-ing-form .add-input-wrapper{flex:100%;min-width:0}.recipe-ing-form .quantity-input{width:60px}.recipe-ing-form .unit-select{min-width:70px}.recipe-ing-form .btn-secondary{width:auto;font-size:var(--text-base);padding:.5rem .8rem;font-weight:700}.steps-mode-toggle{gap:.4rem;margin-bottom:.5rem;display:flex}.steps-mode-toggle .btn{font-size:var(--text-xs);flex:1;padding:.4rem .6rem}.recipe-freetext-steps{resize:vertical;width:100%;min-height:120px;line-height:1.7;font-size:var(--text-sm);white-space:pre-wrap}.recipe-ing-list{flex-direction:column;gap:.3rem;margin-top:.5rem;list-style:none;display:flex}.recipe-ing-item{background:var(--surface-2);border-radius:var(--r-control);font-size:var(--text-sm);justify-content:space-between;align-items:center;padding:.4rem .7rem;display:flex}.recipe-ing-item .btn-delete{font-size:var(--text-sm);padding:.2rem .4rem}.recipe-image-preview-wrapper{align-items:center;gap:.5rem;display:flex}.recipe-image-preview{object-fit:cover;border-radius:var(--r-control);border:2px solid var(--line);width:80px;height:80px}.recipe-share-row label{cursor:pointer;direction:rtl;justify-content:flex-end;align-items:center;gap:.4rem;width:fit-content;font-weight:500;display:flex}.recipe-form-actions{gap:.5rem;margin-top:1rem;display:flex}.recipe-form-actions .btn{flex:1}.recipe-step-text{cursor:pointer;flex:1}.recipe-step-text:hover{color:var(--brand)}.recipe-ing-item.editing{background:var(--brand-tint);border:1px solid var(--brand)}.recipe-detail-modal{text-align:start;max-width:500px;max-height:90vh;overflow-y:auto}.recipe-detail-meta{text-align:center;font-size:var(--text-xs);color:var(--ink-faint);margin-top:-.5rem;margin-bottom:1rem}.recipe-detail-image-wrapper{justify-content:center;margin-bottom:1rem;display:flex}.recipe-detail-image{object-fit:contain;border-radius:var(--r-control);max-width:100%;max-height:300px;box-shadow:0 2px 12px #0000001a}.recipe-detail-section{margin-bottom:1rem}.recipe-detail-section h3{font-size:var(--text-base);color:var(--ink);margin-bottom:.5rem}.recipe-detail-ingredients{flex-direction:column;gap:.3rem;list-style:none;display:flex}.recipe-detail-ingredients li{background:var(--surface-2);border-radius:var(--r-control);font-size:var(--text-sm);flex-direction:column;gap:.15rem;padding:.4rem .7rem;display:flex}.recipe-detail-ingredients li.ing-at-home{background:var(--brand-tint)}.ing-home-match{font-size:var(--text-xs);color:var(--success);padding-right:1.4rem}.recipe-detail-steps-list{counter-reset:recipe-step;flex-direction:column;gap:.4rem;list-style:none;display:flex}.recipe-detail-steps-list li{counter-increment:recipe-step;background:var(--surface-2);border-radius:var(--r-control);font-size:var(--text-sm);gap:.4rem;padding:.5rem .8rem;line-height:1.6;display:flex}.recipe-detail-steps-list li:before{content:counter(recipe-step) ".";color:var(--brand);flex-shrink:0;font-weight:700}.recipe-shopping-item{background:var(--surface-2);border-radius:var(--r-control);font-size:var(--text-sm);flex-direction:column;gap:.3rem;padding:.6rem .8rem;display:flex}.recipe-shopping-item-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.recipe-shopping-name-wrapper{flex:1;min-width:0;position:relative}.recipe-shopping-name{cursor:pointer;color:var(--ink);word-break:break-word}.recipe-shopping-name:hover{color:var(--brand)}.recipe-shopping-badge{font-size:var(--text-xs);border-radius:var(--r-control);width:fit-content;padding:.15rem .5rem}.badge-at-home{background:var(--brand-tint);color:var(--success)}.badge-on-list{background:var(--warn-tint);color:var(--warning)}.recipe-search-bar{align-items:center;gap:.4rem;margin-bottom:.8rem;display:flex}.recipe-search-bar .add-input{flex:1;min-width:0}.recipe-search-bar .btn.btn-primary,.recipe-search-bar .btn.btn-secondary,.recipe-search-bar .btn{width:auto;font-size:var(--text-base);flex-shrink:0;padding:.55rem;line-height:1}.recipe-category-select{flex-wrap:wrap;gap:.4rem;display:flex}.recipe-category-select .btn{font-size:var(--text-xs);padding:.4rem .8rem}.recipe-detail-like-row{align-items:center;gap:.4rem;margin-bottom:.5rem;display:flex}.btn-like{font-size:var(--text-xl);cursor:pointer;background:0 0;border:none;padding:0;line-height:1}.like-count{font-size:var(--text-xs);color:var(--ink-faint)}.guide-overlay{-webkit-backdrop-filter:blur(6px);z-index:2000;background:#0009;justify-content:center;align-items:center;padding:1rem;animation:.3s ease-out overlayFadeIn;display:flex;position:fixed;inset:0}.guide-container{--guide-pad-b:1.5rem;background:var(--surface);border-radius:var(--r-sheet);width:100%;max-width:400px;max-height:90vh;flex-direction:column;max-height:90dvh;padding:1.5rem;animation:.3s ease-out slideUp;display:flex;position:relative;overflow-y:auto;box-shadow:0 8px 40px #0003}.guide-skip{top:.8rem;background:var(--surface-2);border-radius:var(--r-sheet);font-size:var(--text-xs);color:var(--ink-faint);cursor:pointer;z-index:1;touch-action:manipulation;transition:background var(--dur-base), color var(--dur-base);border:none;padding:.3rem .9rem;font-weight:600;position:absolute;inset-inline-end:.8rem}.guide-skip:hover{background:var(--line);color:var(--ink-soft)}.guide-progress{justify-content:center;gap:.35rem;margin-bottom:1.2rem;padding-top:.3rem;display:flex}.guide-dot{border-radius:var(--r-pill);background:var(--line);width:8px;height:8px;transition:background var(--dur-slow), transform var(--dur-slow)}.guide-dot-active{background:var(--brand-fill);transform:scale(1.3)}.guide-dot-done{background:var(--brand-fill)}.guide-content{text-align:center;flex:1}.guide-emoji{margin-bottom:.5rem;font-size:3rem;line-height:1}.guide-title{font-size:var(--text-lg);color:var(--ink);margin-bottom:.5rem;font-weight:700}.guide-desc{font-size:var(--text-sm);color:var(--ink-soft);white-space:pre-line;margin-bottom:.8rem;line-height:1.6}.guide-mock{background:var(--app-bg);border-radius:var(--r-card);padding:.8rem}.guide-mock-btn{background:linear-gradient(135deg, var(--brand-fill), var(--brand-fill-2));color:#fff;border-radius:var(--r-control);font-size:var(--text-xs);text-align:center;margin-top:.2rem;padding:.3rem .7rem;font-weight:600}.guide-mock-btn-wide{width:100%;margin-top:.5rem}.guide-mock-recipe-list{flex-direction:column;gap:.4rem;display:flex}.guide-mock-recipe-item{background:var(--surface);border-radius:var(--r-control);align-items:center;gap:.5rem;padding:.5rem .7rem;display:flex;box-shadow:0 1px 3px #0000000d}.guide-mock-recipe-item span:first-child{font-size:var(--text-lg)}.guide-mock-recipe-title{font-size:var(--text-xs);font-weight:600}.guide-mock-recipe-meta{font-size:var(--text-xs);color:var(--ink-faint)}.guide-step-body{text-align:start;flex-direction:column;gap:.6rem;margin-top:.2rem;display:flex}.guide-step-body:empty{display:none}.guide-loading{text-align:center;color:var(--ink-faint);font-size:var(--text-sm);padding:1.2rem 0}.guide-form{flex-direction:column;gap:.5rem;display:flex}.guide-form .add-input{box-sizing:border-box;width:100%}.guide-label{font-size:var(--text-xs);color:var(--ink-soft);margin-bottom:-.2rem;font-weight:600}.guide-note{font-size:var(--text-xs);color:var(--ink-faint);margin:0;line-height:1.5}.guide-error,.guide-ok{border-radius:var(--r-control);font-size:var(--text-xs);padding:.55rem .8rem;font-weight:500;line-height:1.45}.guide-error{background:var(--danger-tint);color:var(--danger)}.guide-error-pre{white-space:pre-line;text-align:start}.guide-ok{background:var(--brand-tint);color:var(--brand)}.guide-badge{background:var(--surface-2);color:var(--ink-faint);border-radius:var(--r-pill);font-size:var(--text-xs);align-self:flex-start;padding:.2rem .7rem;font-weight:600}.guide-modes{background:var(--surface-2);border-radius:var(--r-card);gap:.4rem;padding:.25rem;display:flex}.guide-mode-btn{border-radius:var(--r-control);font-size:var(--text-xs);color:var(--ink-faint);cursor:pointer;touch-action:manipulation;transition:background var(--dur-base), color var(--dur-base);background:0 0;border:none;flex:1;padding:.5rem .6rem;font-weight:600}.guide-mode-btn.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.guide-row{align-items:center;gap:.4rem;display:flex}.guide-row .quantity-input{width:4.5rem}.guide-row-btn{flex:1;width:auto;padding:.65rem 1rem}.guide-chips{flex-wrap:wrap;gap:.35rem;display:flex}.guide-chip{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);font-size:var(--text-xs);color:var(--ink-soft);cursor:pointer;touch-action:manipulation;transition:background var(--dur-base), opacity var(--dur-base);padding:.35rem .75rem}.guide-chip:hover:not(:disabled){background:var(--brand-tint);color:var(--brand)}.guide-chip:disabled{opacity:.45;cursor:default}.guide-card{background:var(--surface-2);border-radius:var(--r-card);flex-direction:column;gap:.45rem;padding:.7rem .8rem;display:flex}.guide-card-title{font-size:var(--text-xs);color:var(--ink);font-weight:700}.guide-done-card{background:var(--brand-tint)}.guide-agenda-row{font-size:var(--text-xs);color:var(--ink-soft);align-items:center;gap:.5rem;display:flex}.guide-kv{font-size:var(--text-xs);color:var(--ink-soft);justify-content:space-between;align-items:center;gap:.6rem;display:flex}.guide-kv strong{color:var(--ink);font-weight:600}.guide-code-row{align-items:center;gap:.45rem;display:flex}.guide-copy-btn{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-control);font-size:var(--text-xs);color:var(--ink-soft);cursor:pointer;touch-action:manipulation;padding:.2rem .55rem;font-weight:600}.guide-items{flex-direction:column;gap:.3rem;max-height:168px;display:flex;overflow-y:auto}.guide-item,.guide-check-row{background:var(--surface);border-radius:var(--r-control);font-size:var(--text-xs);color:var(--ink);justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .6rem;display:flex}.guide-check-row{cursor:pointer;justify-content:flex-start}.guide-check-row span:first-of-type{flex:1}.guide-check-row input{width:18px;height:18px;accent-color:var(--brand-fill)}.guide-item-end{align-items:center;gap:.4rem;display:flex}.guide-item-qty{font-size:var(--text-xs);color:var(--ink-faint);white-space:nowrap}.guide-item-remove{color:var(--danger);font-size:var(--text-sm);cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:.25rem;line-height:1}.guide-expiry-list{background:var(--surface-2);border-radius:var(--r-card);flex-direction:column;gap:.3rem;max-height:240px;padding:.5rem;display:flex;overflow-y:auto}.guide-expiry-row{background:var(--surface);border-radius:var(--r-control);justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .5rem;display:flex}.guide-expiry-type{font-size:var(--text-xs);color:var(--ink)}.guide-expiry-controls{align-items:center;gap:.25rem;display:flex}.guide-step-btn{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface-2);width:28px;height:28px;color:var(--ink);font-size:var(--text-base);cursor:pointer;touch-action:manipulation;line-height:1}.guide-step-btn:disabled{opacity:.4;cursor:default}.guide-expiry-input{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);width:3.2rem;color:var(--ink);font-size:var(--text-xs);text-align:center;padding:.3rem}.guide-reset-btn{color:var(--accent-strong);font-size:var(--text-sm);cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:.2rem}.guide-store-row{background:var(--surface);border-radius:var(--r-control);justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .6rem;display:flex}.guide-store-name{font-size:var(--text-xs);color:var(--ink);flex-direction:column;font-weight:600;display:flex}.guide-store-meta{font-size:var(--text-xs);color:var(--ink-faint);font-weight:400}.guide-store-total{font-size:var(--text-sm);color:var(--success);white-space:nowrap}.guide-footer{bottom:calc(-1 * var(--guide-pad-b));margin-top:.4rem;margin-bottom:calc(-1 * var(--guide-pad-b));padding-top:.4rem;padding-bottom:var(--guide-pad-b);background:var(--surface);position:sticky}.guide-hint{text-align:center;font-size:var(--text-xs);color:var(--ink-faint);background:var(--warn-tint);border-radius:var(--r-control);margin-bottom:.5rem;padding:.35rem .6rem}.guide-actions{gap:.5rem;margin-top:.8rem;display:flex}.guide-btn:disabled{opacity:.5;cursor:default;box-shadow:none}.guide-btn{border-radius:var(--r-card);font-size:var(--text-sm);cursor:pointer;touch-action:manipulation;transition:transform var(--dur-fast), filter var(--dur-base);border:none;flex:1;padding:.7rem 1rem;font-weight:600}.guide-btn:active{transform:scale(.96)}.guide-btn-next{background:linear-gradient(135deg, var(--brand-fill), var(--brand-fill-2));color:#fff;box-shadow:0 2px 8px #157a4f4d}.guide-btn-next:hover{filter:brightness(1.05)}.guide-btn-back{background:var(--surface-2);color:var(--ink-soft)}.guide-btn-back:hover{background:var(--line)}.guide-step-label{text-align:center;font-size:var(--text-xs);color:var(--ink-faint);margin-top:.5rem}.grocery-list{padding-bottom:calc(8rem + var(--safe-bottom,0px))}.fab-ai{bottom:calc(5rem + 68px + var(--safe-bottom,0px));border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);width:56px;height:56px;color:var(--brand);box-shadow:var(--shadow-md);cursor:pointer;z-index:900;touch-action:manipulation;transition:transform var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;padding:0;display:flex;position:fixed;inset-inline-start:1.2rem}.fab-ai:active{transform:scale(.94)}.fab-add{bottom:calc(5rem + var(--safe-bottom,0px));border-radius:var(--r-card);background:linear-gradient(140deg, var(--accent), var(--accent-strong));color:#fff;width:56px;height:56px;font-size:var(--text-2xl);cursor:pointer;z-index:900;touch-action:manipulation;transition:transform var(--dur-base), box-shadow var(--dur-base);border:none;justify-content:center;align-items:center;font-weight:300;line-height:1;display:flex;position:fixed;inset-inline-start:1.2rem;box-shadow:0 8px 22px #ef7f2e6b}.fab-add:active{transform:scale(.9)}.add-panel-backdrop{z-index:1499;background:#00000040;animation:.15s ease-out overlayFadeIn;position:fixed;inset:0}.add-panel{bottom:var(--keyboard-offset,0px);z-index:1500;background:var(--surface);border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));animation:.25s ease-out slideUp;position:fixed;inset-inline:0;transform:translateZ(0);box-shadow:0 -4px 24px #0000001f}.add-panel-close{background:var(--line);border-radius:var(--r-sheet);cursor:pointer;touch-action:manipulation;border:none;width:48px;height:6px;margin:0 auto .6rem;padding:0;font-size:0;display:block}.add-panel-close:hover{background:var(--line)}.add-panel .add-form-v2{margin:0}.add-panel .add-autocomplete-up{max-height:200px;margin-bottom:4px;top:auto;bottom:100%}.pwa-install-banner{bottom:calc(4.5rem + var(--safe-bottom,0px));background:var(--surface);border-radius:var(--r-card);z-index:2000;width:calc(100% - 2rem);max-width:400px;padding:1rem;animation:.3s ease-out slideUp;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #0000002e}.pwa-install-content{align-items:center;gap:.7rem;margin-bottom:.8rem;display:flex}.pwa-install-icon{font-size:var(--text-2xl)}.pwa-install-text{font-size:var(--text-sm);flex-direction:column;gap:.15rem;display:flex}.pwa-install-text strong{font-size:var(--text-base)}.pwa-install-actions{align-items:center;gap:.5rem;display:flex}.pwa-install-btn{flex:1}.pwa-dismiss-btn{color:var(--ink-faint);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.4rem .6rem}.pwa-dismiss-btn:hover{color:var(--ink-soft)}.pwa-dont-remind{font-size:var(--text-xs);color:var(--ink-faint);cursor:pointer;align-items:center;gap:.4rem;margin-top:.5rem;display:flex}.pwa-dont-remind input{cursor:pointer}.pwa-ios-hint{font-size:var(--text-xs);color:var(--ink-soft);flex:1}.home-action-install{background:linear-gradient(135deg, var(--brand-fill), var(--brand-fill-2));color:#fff;border-color:#0000;box-shadow:0 4px 12px #157a4f47}@media (max-width:600px){.home-container{padding:.6rem .8rem;padding-bottom:calc(4.5rem + var(--safe-bottom,0px))}.app-header{text-align:start;flex-direction:row;gap:.3rem}.app-header h1{font-size:var(--text-base)}.header-right{gap:.4rem}.welcome{font-size:var(--text-xs)}.header-right .btn{font-size:var(--text-xs);padding:.35rem .7rem}.tab-item{font-size:var(--text-xs);gap:.1rem;padding:.4rem .3rem}.tab-emoji{font-size:var(--text-base)}.add-input-wrapper{flex:100%;min-width:0}.add-form-v2{padding:.6rem}.add-form-row-2 .quantity-input{width:55px}.add-form-row-2 .unit-select{min-width:65px}.add-input{min-width:0}.quantity-input{flex-shrink:0;width:60px}.unit-select{flex-shrink:0;min-width:70px}.add-form .btn-primary{flex-shrink:0}.grocery-group{padding:.7rem 0}.grocery-item,.item-top-row{gap:.3rem}.item-checkbox{width:26px;height:26px}.item-name{word-break:break-word}.item-quantity{font-size:var(--text-xs)}.quantity-controls{gap:0}.btn-quantity{width:34px;height:44px}.btn-complete{font-size:var(--text-sm);padding:.6rem 1rem}.btn-scan{font-size:var(--text-base);padding:.4rem .6rem}.price-form{flex-wrap:wrap}.modal-card{width:100%;max-width:100%;padding:1.2rem;padding-bottom:calc(1.2rem + var(--safe-bottom,0px));border-radius:var(--r-sheet) var(--r-sheet) 0 0}.modal-card h2{font-size:var(--text-base)}.modal-card p{font-size:var(--text-xs)}.smart-modal{max-height:85vh}.smart-suggestion{gap:.4rem;padding:.5rem .6rem}.smart-suggestion-name,.smart-suggestion-qty{font-size:var(--text-xs)}.smart-qty-value{min-width:24px;font-size:var(--text-xs)}.reason-badge{font-size:var(--text-xs);white-space:nowrap;padding:.1rem .3rem}.setup-card{padding:1rem 1.2rem}.setup-form{flex-wrap:wrap}.setup-form .add-input{flex:100%}.home-actions-bar{gap:.3rem}.home-action-btn{font-size:var(--text-xs);padding:.45rem .3rem}.auth-card{padding:1.5rem}.auth-card h1{font-size:var(--text-xl)}.recipe-form-modal{max-width:95%;padding:1rem}.recipe-form-modal .form-group label{font-size:var(--text-xs)}.recipe-detail-modal{max-width:95%;padding:1rem}.recipe-ing-form .quantity-input{width:55px}.recipe-ing-form .unit-select{min-width:60px;font-size:var(--text-xs)}.recipe-ing-item{font-size:var(--text-xs);padding:.3rem .5rem}.guide-overlay{align-items:flex-end;padding:.5rem}.guide-container{--guide-pad-b:calc(1.2rem + var(--safe-bottom,0px));border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:1.2rem;padding-bottom:var(--guide-pad-b);max-height:92vh;max-height:92dvh}.guide-emoji{font-size:2.5rem}.guide-title{font-size:var(--text-base)}.guide-desc{font-size:var(--text-xs)}}.admin-empty{text-align:center;color:var(--ink-faint);font-size:var(--text-sm);padding:2rem 0}.btn-danger{background:var(--danger);color:#fff;border-radius:var(--r-control);cursor:pointer;border:none;padding:.5rem 1.2rem;font-weight:600}.btn-danger:hover{background:var(--danger)}@supports (-webkit-touch-callout:none){input,select,textarea{font-size:max(1rem,16px)!important}}.theme-toggle-btn{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink);font-size:var(--text-base);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--dur-base), background var(--dur-base), border-color var(--dur-base);touch-action:manipulation;flex-shrink:0;place-items:center;display:grid}.theme-toggle-btn:active{transform:scale(.9)}.theme-toggle-btn:hover{background:var(--surface-2)}.theme-toggle-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.list-tools{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:.3rem;margin:0 0 .2rem;padding-block-end:2px;display:flex;overflow-x:auto}.list-tools::-webkit-scrollbar{display:none}.tool-chip{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);min-height:38px;color:var(--ink-soft);font-family:inherit;font-size:var(--text-xs);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);flex-shrink:0;align-items:center;gap:.3rem;padding:0 .55rem;font-weight:600;display:flex}.tool-chip.key{background:var(--brand-tint);color:var(--brand);border-color:#0000}.tool-chip.quiet{color:var(--ink-faint);background:0 0;border-color:#0000;padding-inline:.5rem}.avatar-btn{border-radius:var(--r-pill);background:var(--brand-fill);color:#fff;block-size:34px;inline-size:34px;font-family:inherit;font-size:var(--text-sm);transition:transform var(--dur-fast) var(--ease-out);border:0;flex-shrink:0;place-items:center;font-weight:700;display:grid}.avatar-btn:active{transform:scale(.94)}.account-sheet .ia-icon{color:var(--ink-soft)}.account-sheet .ia-danger .ia-icon{color:var(--danger)}.tool-chip .group-chevron,.tool-chip .is-open{transition:transform var(--dur-base) var(--ease-out)}.tool-chip .is-open{transform:rotate(90deg)}.tool-chip:active{transform:scale(.97)}.tool-chip:disabled{opacity:.5}.icon{flex-shrink:0}.hero{margin:0 0 10px}.hero-top{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.hero-views{flex-shrink:0;align-self:center;align-items:center;gap:.25rem;margin-inline-start:auto;display:flex}.hero-note{min-width:0}.hero-count{font-size:var(--text-3xl);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.hero-count span{font-size:var(--text-lg);color:var(--ink-faint);letter-spacing:0;font-weight:600}.hero-note{font-size:var(--text-xs);color:var(--ink-faint);font-weight:600}.aisle-bar{gap:3px;height:14px;margin:14px 0 16px;display:flex}.aisle-seg{flex:var(--n,1);background:var(--surface-2);background:color-mix(in oklab, var(--hue,var(--brand)) 20%, transparent);border-radius:var(--r-pill);min-width:10px;overflow:hidden}.aisle-seg>span{height:100%;inline-size:var(--done,0%);background:var(--hue,var(--aisle-other));border-radius:var(--r-pill);transition:inline-size var(--dur-slow) var(--ease-out);display:block}.group-ring i{border-radius:var(--r-pill);background:var(--surface);width:19px;height:19px;font-size:var(--text-xs);color:var(--ink-soft);font-variant-numeric:tabular-nums;place-items:center;font-style:normal;font-weight:800;display:grid}.recipe-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sheet);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--dur-base), box-shadow var(--dur-base);margin-bottom:13px;overflow:hidden}.recipe-card:active{transform:scale(.99)}.rc-media{place-items:center;height:96px;display:grid;position:relative}.rc-g1{background:linear-gradient(140deg,#f4a15a,#e0662f)}.rc-g2{background:linear-gradient(140deg,#63c98a,#2f9d63)}.rc-g3{background:linear-gradient(140deg,#e8896f,#c8503f)}.rc-emoji{filter:drop-shadow(0 6px 10px #0000002e);font-size:2.9rem}.rc-img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.rc-like{top:9px;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;width:32px;height:32px;font-size:var(--text-sm);cursor:pointer;background:#00000047;border:0;place-items:center;display:grid;position:absolute;inset-inline-start:9px}.rc-ring{--p:0;bottom:-15px;border-radius:var(--r-pill);background:conic-gradient(var(--brand) calc(var(--p) * 1%), var(--surface-2) 0);width:48px;height:48px;box-shadow:var(--shadow-md);border:3px solid var(--surface);place-items:center;display:grid;position:absolute;inset-inline-end:14px}.rc-ring i{border-radius:var(--r-pill);background:var(--surface);width:37px;height:37px;font-style:normal;font-weight:800;font-size:var(--text-xs);color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;place-items:center;line-height:1;display:grid}.rc-ring i small{font-size:var(--text-xs);color:var(--ink-faint);font-weight:700;display:block}.rc-body{padding:15px 15px 14px}.rc-title{font-size:var(--text-base);color:var(--ink);letter-spacing:-.01em;font-weight:750}.rc-meta{color:var(--ink-soft);font-size:var(--text-xs);flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;display:flex}.rc-dot{border-radius:var(--r-pill);background:var(--ink-faint);width:3px;height:3px}.rc-ings{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.rc-ing{font-size:var(--text-xs);border-radius:var(--r-control);background:var(--surface-2);color:var(--ink-soft);padding:3px 9px;font-weight:600}.hm-hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sheet);box-shadow:var(--shadow-sm);margin-bottom:16px;padding:20px 18px;position:relative;overflow:hidden}.hm-hero:before{content:"🏡";opacity:.05;top:-14px;font-size:7rem;position:absolute;inset-inline-start:-8px}.hm-hero h3{font-size:var(--text-xl);color:var(--ink);letter-spacing:-.02em;font-weight:800;position:relative}.hm-loc{color:var(--ink-soft);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:5px;margin-top:2px;display:flex;position:relative}.hm-edit-btn{cursor:pointer;font-size:var(--text-xs);background:0 0;border:0;padding:2px 4px}.hm-ticket{border:1.5px dashed var(--brand);border-radius:var(--r-card);background:var(--brand-tint);text-align:start;width:100%;font:inherit;color:inherit;cursor:pointer;transition:transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding:12px 16px;display:flex;position:relative}.hm-ticket:hover{box-shadow:var(--shadow-sm)}.hm-ticket:active{transform:scale(.99)}.hm-ticket .tk-share{font-size:var(--text-base);opacity:.75}.share-code-value{font-size:var(--text-2xl);letter-spacing:.18em;text-align:center;color:var(--brand-strong);background:var(--brand-tint);border:1.5px dashed var(--brand);border-radius:var(--r-card);font-variant-numeric:tabular-nums;direction:ltr;margin:12px 0 14px;padding:10px;font-weight:800}.share-opts{flex-direction:column;gap:10px;display:flex}.share-opt{text-align:start;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);width:100%;color:var(--ink);font:inherit;transition:transform var(--dur-fast) ease, border-color var(--dur-fast) ease;align-items:center;gap:12px;padding:12px 14px;display:flex}.share-opt:hover{border-color:var(--brand)}.share-opt:active{transform:scale(.99)}.share-opt .so-i{font-size:var(--text-lg);line-height:1}.share-opt .so-t{flex-direction:column;gap:2px;display:flex}.share-opt .so-t strong{font-size:var(--text-sm);font-weight:700}.share-opt .so-t small{font-size:var(--text-xs);color:var(--ink-soft)}.hm-ticket .tk-l{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--brand);font-weight:700}.hm-ticket .tk-code{font-size:var(--text-xl);letter-spacing:.18em;color:var(--brand-strong);font-variant-numeric:tabular-nums;direction:ltr;font-weight:800}.hm-members{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;padding:0 4px;display:flex}.hm-members .mm-l{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-weight:700}.hm-avatars{display:flex}.hm-av{border-radius:var(--r-pill);color:#fff;width:36px;height:36px;font-weight:700;font-size:var(--text-xs);border:2.5px solid var(--app-bg);box-shadow:var(--shadow-sm);place-items:center;margin-inline-start:-10px;display:grid;position:relative}.hm-av:first-child{margin:0}.hm-av .crown{top:-8px;font-size:var(--text-xs);position:absolute;inset-inline-end:-4px}.hm-section-label{font-size:var(--text-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);margin:4px 4px 10px;font-weight:700}.hm-tiles{grid-template-columns:1fr 1fr;gap:11px;display:grid}.hm-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);cursor:pointer;text-align:start;transition:transform var(--dur-base);padding:15px 14px;font-family:inherit}.hm-tile:active{transform:scale(.98)}.hm-tile .tl-i{border-radius:var(--r-control);width:40px;height:40px;font-size:var(--text-lg);background:var(--surface-2);place-items:center;margin-bottom:9px;display:grid}.hm-tile.warn .tl-i{background:var(--warn-tint)}.hm-tile.accent .tl-i{background:var(--accent-tint)}.hm-tile.danger .tl-i{background:var(--danger-tint)}.hm-tile h4{font-size:var(--text-sm);color:var(--ink);font-weight:700}.hm-tile p{font-size:var(--text-xs);color:var(--ink-soft);margin-top:2px;line-height:1.35}.hm-tile.danger h4{color:var(--danger)}.hm-tile h4{align-items:center;gap:6px;display:flex}.tl-badge{border-radius:var(--r-pill);background:var(--brand-fill,var(--brand));color:#fff;font-size:var(--text-xs);font-variant-numeric:tabular-nums;padding:1px 7px;font-weight:700;line-height:1.5}.history-totals{gap:10px;margin:0 0 .7rem;display:flex}.history-total{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface-2);text-align:center;flex:1;padding:.55rem .5rem}.ht-num{font-size:var(--text-lg);color:var(--brand);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.2;display:block}.ht-label{font-size:var(--text-xs);color:var(--ink-soft);margin-top:1px;display:block}.notif-settings-modal{max-width:420px}.notif-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:13px 0;display:flex}.notif-row:first-of-type{border-top:none}.notif-row-info{min-width:0}.notif-row-title{font-weight:700;font-size:var(--text-sm);color:var(--ink)}.notif-row-sub{font-size:var(--text-xs);color:var(--ink-soft);margin-top:2px}.notif-switch{border-radius:var(--r-pill);cursor:pointer;background:var(--surface-2);width:52px;height:30px;transition:background var(--dur-base);border:none;flex-shrink:0;padding:0;position:relative}.notif-switch.on{background:var(--brand-fill)}.notif-switch:disabled{opacity:.5;cursor:default}.notif-switch-knob{top:3px;border-radius:var(--r-pill);width:24px;height:24px;transition:inset-inline-start var(--dur-base);background:#fff;position:absolute;inset-inline-start:3px;box-shadow:0 1px 3px #0000004d}.notif-switch.on .notif-switch-knob{inset-inline-start:25px}.notif-time-select{font-family:inherit;font-size:var(--text-base);font-variant-numeric:tabular-nums;border-radius:var(--r-control);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-align:center;flex-shrink:0;min-width:90px;padding:8px 12px;font-weight:700}.ai-actions-row{gap:10px;margin:0 0 14px;display:flex}.ai-list-btn{border:1px solid var(--accent);border-radius:var(--r-card);background:var(--accent-tint);min-width:0;color:var(--accent-strong);font-family:inherit;font-size:var(--text-sm);cursor:pointer;transition:transform var(--dur-fast), background var(--dur-base);touch-action:manipulation;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.7rem .8rem;font-weight:700;display:flex}.ai-list-btn:active{transform:scale(.98)}.receipt-scan-btn{border-color:var(--brand);background:var(--brand-tint,#157a4f1a);color:var(--brand)}.receipt-source-options{grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.8rem;display:grid}.receipt-source-btn{border:1px solid var(--accent);border-radius:var(--r-card);background:var(--accent-tint);color:var(--accent-strong);cursor:pointer;transition:transform var(--dur-fast), background var(--dur-base);touch-action:manipulation;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:1.1rem .7rem;font-family:inherit;display:flex}.receipt-source-btn:active{transform:scale(.98)}.receipt-source-emoji{font-size:var(--text-2xl);line-height:1}.receipt-source-label{font-size:var(--text-sm);font-weight:700}.receipt-source-hint{font-size:var(--text-xs);opacity:.75;font-weight:400}@media (max-width:380px){.receipt-source-options{grid-template-columns:1fr}.receipt-source-btn{flex-direction:row;gap:.5rem;padding:.85rem .7rem}.receipt-source-emoji{font-size:var(--text-lg)}.receipt-source-hint{margin-inline-start:auto}}.receipt-date-row{font-size:var(--text-sm);color:var(--ink-soft,var(--ink));align-items:center;gap:.5rem;margin-bottom:.7rem;display:flex}.ai-prompt-input{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);width:100%;color:var(--ink);font-family:inherit;font-size:var(--text-sm);resize:vertical;margin-bottom:.7rem;padding:.7rem .9rem}.ai-prompt-input:focus{border-color:var(--brand);outline:none}.ai-quota-note{font-size:var(--text-xs);color:var(--ink-soft,#777);text-align:center;margin:-.4rem 0 .8rem}.ai-thinking{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:1.6rem 1rem 1.2rem;display:flex}.ai-thinking-dots{gap:.4rem;margin-bottom:.3rem;display:flex}.ai-thinking-dots span{border-radius:var(--r-pill);background:var(--brand);width:10px;height:10px;animation:1.4s ease-in-out infinite ai-thinking-bounce}.ai-thinking-dots span:nth-child(2){animation-delay:.2s}.ai-thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes ai-thinking-bounce{0%,80%,to{opacity:.45;transform:translateY(0)}40%{opacity:1;transform:translateY(-7px)}}@media (prefers-reduced-motion:reduce){.ai-thinking-dots span{opacity:.8;animation:none}}.ai-thinking .ai-thinking-title{color:var(--ink);margin:0;font-weight:600}.ai-thinking .ai-thinking-note{font-size:var(--text-xs);color:var(--ink-soft);max-width:24rem;margin:0}.ai-prompt-count{font-size:var(--text-xs);color:var(--ink-soft,#777);text-align:start;margin:-.5rem 0 .6rem}.ai-prompt-clipped{font-size:var(--text-xs);color:var(--warning);text-align:start;margin:-.5rem 0 .6rem}.smart-dismiss-btn{border:1px solid var(--line);border-radius:var(--r-control);width:28px;height:28px;color:var(--ink-soft,#888);font-size:var(--text-xs);cursor:pointer;transition:background var(--dur-base), color var(--dur-base);touch-action:manipulation;background:0 0;flex-shrink:0;margin-inline-start:.4rem;line-height:1}.smart-dismiss-btn:active{background:var(--danger-tint,#dc50501f);color:var(--danger,#c0392b)}.checkout-flyer{z-index:4000;font-size:var(--text-2xl);pointer-events:none;will-change:transform, opacity;filter:drop-shadow(0 4px 8px #00000038);line-height:1;position:fixed;transform:translate(-50%,-50%)}.checkout-cart{z-index:4001;pointer-events:none;will-change:transform, opacity;filter:drop-shadow(0 8px 18px #0000004d);font-size:3rem;line-height:1;position:fixed;transform:translate(-50%,-50%)}.dedup-btn{border:1px solid var(--accent);border-radius:var(--r-control);background:var(--accent-tint);width:100%;color:var(--accent-strong);font-family:inherit;font-size:var(--text-sm);cursor:pointer;margin-bottom:.7rem;padding:.65rem 1rem;font-weight:700}.dedup-btn:disabled{opacity:.6;cursor:default}.dedup-working-overlay{z-index:1200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;justify-content:center;align-items:center;padding:1.5rem;animation:.2s ease-out overlayFadeIn;display:flex;position:fixed;inset:0}.dedup-working-card{border-radius:var(--r-sheet);background:var(--surface);text-align:center;flex-direction:column;align-items:center;gap:.7rem;width:100%;max-width:340px;padding:1.8rem 1.4rem;display:flex;box-shadow:0 8px 40px #0000003d}.dedup-working-spinner{border:4px solid var(--line);border-top-color:var(--brand);border-radius:var(--r-pill);width:44px;height:44px;animation:.8s linear infinite zoom-spin}.dedup-working-title{font-size:var(--text-base);color:var(--ink);margin:.2rem 0 0;font-weight:700}.dedup-working-desc{font-size:var(--text-sm);color:var(--ink-soft);margin:0;line-height:1.6}.dedup-working-hint{font-size:var(--text-xs);color:var(--ink-faint);margin:0}.dedup-working-timer{border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-soft);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin-top:.2rem;padding:.25rem .7rem}@media (prefers-reduced-motion:reduce){.dedup-working-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;animation:none}.dedup-working-spinner{animation-duration:2s}}.dedup-note{border-radius:var(--r-control);background:var(--surface-2,#0000000a);color:var(--ink-soft,#666);font-size:var(--text-xs);text-align:center;margin-bottom:.7rem;padding:.55rem .7rem}.dedup-panel{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface-2,#00000005);margin-bottom:.9rem;padding:.7rem}.dedup-panel-desc{font-size:var(--text-xs);color:var(--ink-soft,#777);margin:0 0 .6rem;line-height:1.5}.dedup-groups{flex-direction:column;gap:.5rem;max-height:46vh;display:flex;overflow-y:auto}.dedup-group{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);opacity:.62;transition:opacity var(--dur-base), border-color var(--dur-base);padding:.55rem .6rem}.dedup-group.selected{opacity:1;border-color:var(--brand)}.dedup-group.flagged{border-color:var(--accent)}.dedup-group-head{cursor:pointer;align-items:center;gap:.45rem;display:flex}.dedup-canonical{font-weight:700;font-size:var(--text-sm);flex:1}.dedup-total{font-size:var(--text-xs);color:var(--ink-soft,#888)}.dedup-warning{font-size:var(--text-xs);color:var(--accent-strong);margin-top:.35rem}.dedup-members{font-size:var(--text-xs);color:var(--ink-soft,#777);margin:.4rem 0 0;padding-inline-start:.3rem;list-style:none}.dedup-members li{padding:.1rem 0}.dedup-members li.keeps{color:var(--brand);font-weight:600}.dedup-count{opacity:.7}.dedup-actions{gap:.5rem;margin-top:.7rem;display:flex}.dedup-actions .btn{flex:1}.smart-modal-hint{font-size:var(--text-xs);color:var(--ink-soft,#888);text-align:center;margin:.5rem 0 .2rem}.legal-page{max-width:760px;padding:calc(1.5rem + var(--safe-top)) 1.25rem calc(3rem + var(--safe-bottom));color:var(--ink);margin:0 auto;line-height:1.75}.legal-header{border-bottom:1px solid var(--line);margin-bottom:1.5rem;padding-bottom:1rem}.legal-back{color:var(--brand);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;margin-bottom:.5rem;padding:.3rem 0}.legal-header h1{font-size:var(--text-2xl);font-weight:800}.legal-updated{font-size:var(--text-xs);color:var(--ink-faint);margin-top:.3rem}.legal-content h2{font-size:var(--text-base);margin:2rem 0 .6rem;font-weight:700}.legal-content h3{font-size:var(--text-base);color:var(--ink-soft);margin:1.2rem 0 .4rem;font-weight:700}.legal-content p{margin-bottom:.9rem}.legal-content ul{margin:0 1.2rem 1rem 0;padding:0;list-style:outside}.legal-content li{margin-bottom:.5rem}.legal-content a{color:var(--brand);text-decoration:underline}.legal-content strong{font-weight:700}.legal-footer{border-top:1px solid var(--line);font-size:var(--text-sm);flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:2.5rem;padding-top:1rem;display:flex}.legal-links{font-size:var(--text-xs);color:var(--ink-faint);flex-wrap:wrap;justify-content:center;gap:.3rem 1rem;margin-top:1.25rem;display:flex}.legal-links a{color:var(--ink-soft);text-decoration:underline}@keyframes spin-ring{to{transform:rotate(360deg)}}.item-checkbox:checked,.smart-checkbox:checked{animation:check-pop var(--dur-base) var(--ease-spring)}.modal-card,.add-panel,.guide-container{animation:slideUp var(--dur-slow) var(--ease-spring)}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) and (background:color-mix(in srgb, red 50%, transparent)){.app-header{background:color-mix(in srgb, var(--app-bg) 72%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.35);backdrop-filter:blur(12px)saturate(1.35)}.tab-bar{background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.35);backdrop-filter:blur(14px)saturate(1.35)}}.tab-emoji{border-radius:var(--r-pill);transition:background var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-spring);padding:.15rem .55rem}.tab-item.tab-active .tab-emoji{background:var(--brand-tint);transform:translateY(-2px)scale(1.08)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[role=switch]:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:var(--r-control)}.btn-primary:focus-visible,.fab-add:focus-visible,.tab-item:focus-visible{outline-color:var(--ink)}
