@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";.connection-banner[data-v-c0404211]{border:1px solid var(--line);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:1rem;max-width:1320px;margin:1rem auto 0;padding:.75rem 1rem;display:flex}.connection-banner.is-offline[data-v-c0404211]{background:#fff8e8;border-color:#e8d5a2}.connection-copy[data-v-c0404211]{align-items:flex-start;gap:.75rem;display:flex}.connection-copy>svg[data-v-c0404211]{color:#936613;flex-shrink:0}.connection-copy strong[data-v-c0404211]{font-size:.9rem}.connection-copy p[data-v-c0404211],.connection-online-copy[data-v-c0404211]{margin:.3rem 0;font-size:.8rem;line-height:1.5}.connection-copy small[data-v-c0404211]{color:#766443;line-height:1.5;display:block}.connection-online-copy[data-v-c0404211]{color:var(--muted)}.connection-banner button[data-v-c0404211]{flex-shrink:0;align-items:center;gap:.5rem;display:inline-flex}@media (width<=1400px){.connection-banner[data-v-c0404211]{margin-left:4vw;margin-right:4vw}}@media (width<=600px){.connection-banner.is-offline[data-v-c0404211]{flex-direction:column;align-items:stretch}.connection-banner.is-offline button[data-v-c0404211]{align-self:flex-start}}.purchase-workspace[data-v-ff475e0d]{--purchase-green:#27634f;--purchase-soft:#edf5f0;--purchase-border:#dce6e0;color:var(--ink)}.purchase-heading[data-v-ff475e0d]{justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1.7rem;display:flex}.purchase-heading h1[data-v-ff475e0d]{letter-spacing:-.035em;font-size:clamp(2.2rem,4.5vw,3.4rem);line-height:1.12}.purchase-heading p[data-v-ff475e0d]:not(.eyebrow){color:var(--muted);margin:.7rem 0 0;font-size:.95rem;line-height:1.6}.purchase-jump[data-v-ff475e0d]{color:var(--purchase-green);white-space:nowrap;border-bottom:1px solid #b7d3c5;align-items:center;gap:.65rem;padding:.7rem 0;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-flex}.purchase-range[data-v-ff475e0d]{border:1px solid var(--purchase-border);background:#fff;border-radius:18px;flex-wrap:wrap;align-items:center;gap:1.2rem;padding:1.1rem 1.35rem;display:flex}.purchase-range-label[data-v-ff475e0d]{color:var(--purchase-green);align-items:center;gap:.7rem;margin-right:auto;display:flex}.purchase-range-label div[data-v-ff475e0d]{gap:.3rem;display:grid}.purchase-range-label strong[data-v-ff475e0d]{font-size:.85rem}.purchase-range-label small[data-v-ff475e0d]{color:var(--muted);font-size:.73rem}.purchase-date-fields[data-v-ff475e0d]{align-items:center;gap:.65rem;display:flex}.purchase-date-fields label[data-v-ff475e0d]{color:var(--muted);gap:.3rem;font-size:.68rem;font-weight:700;display:grid}.purchase-date-fields input[data-v-ff475e0d]{border:1px solid var(--purchase-border);width:145px;min-width:0;min-height:40px;color:var(--ink);background:#f8faf9;border-radius:9px;padding:.5rem .6rem;font-size:.8rem}.purchase-date-fields>span[data-v-ff475e0d]{color:#93a99d;margin-top:1rem}.purchase-range .secondary-button[data-v-ff475e0d]{align-items:center;gap:.45rem;min-height:44px;font-size:.78rem;display:inline-flex}.purchase-presets[data-v-ff475e0d]{gap:.3rem;display:flex}.purchase-presets button[data-v-ff475e0d],.purchase-bulk button[data-v-ff475e0d]{min-height:44px;color:var(--purchase-green);background:0 0;border:0;padding:.65rem .7rem;font-size:.76rem;font-weight:700}.purchase-summary[data-v-ff475e0d]{flex-wrap:wrap;gap:.7rem 1.7rem;margin:1.3rem 0 1.6rem;display:flex}.purchase-summary>span[data-v-ff475e0d]{color:var(--muted);align-items:center;gap:.4rem;font-size:.8rem;display:flex}.purchase-summary strong[data-v-ff475e0d]{color:var(--ink)}.purchase-summary .purchase-summary-warning[data-v-ff475e0d]{color:#8c591b}.purchase-summary .purchase-summary-ready[data-v-ff475e0d]{color:var(--purchase-green)}.purchase-columns[data-v-ff475e0d]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(1.25rem,3vw,2.5rem);display:grid}.purchase-menu[data-v-ff475e0d],.purchase-list[data-v-ff475e0d]{min-width:0}.purchase-section-title[data-v-ff475e0d]{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.4rem;display:flex}.purchase-step[data-v-ff475e0d]{color:var(--purchase-green);letter-spacing:.14em;font-size:.65rem;font-weight:800}.purchase-section-title h2[data-v-ff475e0d]{letter-spacing:-.025em;margin-top:.45rem;font-size:clamp(1.5rem,2.4vw,1.9rem)}.purchase-section-title p[data-v-ff475e0d]{color:var(--muted);margin:.4rem 0 0;font-size:.78rem}.purchase-bulk[data-v-ff475e0d]{align-self:flex-end;gap:.1rem;display:flex}.purchase-bulk button[data-v-ff475e0d]:disabled{opacity:.4}.purchase-days[data-v-ff475e0d]{gap:1.4rem;display:grid}.purchase-day-heading[data-v-ff475e0d]{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.65rem;display:flex}.purchase-day-heading h3[data-v-ff475e0d]{text-transform:capitalize;color:var(--muted);font-family:inherit;font-size:.77rem;font-weight:700}.purchase-day-heading button[data-v-ff475e0d]{border:1px solid var(--purchase-border);min-height:36px;color:var(--purchase-green);background:#fff;border-radius:8px;align-items:center;gap:.45rem;padding:.4rem .6rem;font-size:.72rem;display:inline-flex}.purchase-dish[data-v-ff475e0d]{border:1px solid var(--purchase-border);cursor:pointer;background:#fff;border-radius:16px;align-items:center;gap:.8rem;min-height:95px;margin-top:.5rem;padding:.95rem;transition:background .12s,border-color .12s;display:flex;position:relative}.purchase-dish.selected[data-v-ff475e0d]{background:var(--purchase-soft);border-color:#b8d2c3}.purchase-dish[data-v-ff475e0d]:active{background:#e0eee6}.purchase-dish input[data-v-ff475e0d],.purchase-product input[data-v-ff475e0d]{opacity:0;width:1px;height:1px;position:absolute}.purchase-checkbox[data-v-ff475e0d]{color:#0000;background:#fff;border:1.5px solid #a9bbb1;border-radius:7px;flex:0 0 22px;place-items:center;width:22px;height:22px;display:grid}.selected .purchase-checkbox[data-v-ff475e0d],.checked .purchase-checkbox[data-v-ff475e0d]{background:var(--purchase-green);border-color:var(--purchase-green);color:#fff}input:focus-visible+.purchase-checkbox[data-v-ff475e0d]{outline:3px solid var(--focus-ring);outline-offset:4px}.purchase-dish-photo[data-v-ff475e0d]{color:#6c9581;background:#fff;border:1px solid #dde7e1;border-radius:12px;flex:0 0 48px;place-items:center;width:48px;height:48px;display:grid}.purchase-dish-photo img[data-v-ff475e0d]{object-fit:cover;border-radius:inherit;width:100%;height:100%}.purchase-dish-copy[data-v-ff475e0d]{gap:.25rem;min-width:0;display:grid}.purchase-dish-copy small[data-v-ff475e0d]{color:var(--muted);font-size:.65rem}.purchase-dish-copy strong[data-v-ff475e0d]{overflow-wrap:anywhere;font-size:.9rem;line-height:1.4}.purchase-dish-copy>span[data-v-ff475e0d]{color:var(--purchase-green);font-size:.7rem}.purchase-dish-copy .purchase-missing-tag[data-v-ff475e0d]{color:#8c591b}.purchase-list[data-v-ff475e0d]{border:1px solid var(--purchase-border);background:#fff;border-radius:22px;padding:clamp(1.1rem,2.5vw,1.8rem);scroll-margin-top:100px;box-shadow:0 6px 30px #1f483b06}.purchase-list-icon[data-v-ff475e0d]{background:var(--purchase-soft);width:46px;height:46px;color:var(--purchase-green);border-radius:14px;flex:0 0 46px;place-items:center;display:grid}.purchase-missing[data-v-ff475e0d]{background:#fffaef;border:1px solid #ead7af;border-radius:13px;margin-bottom:1.2rem;padding:1rem}.purchase-missing-heading[data-v-ff475e0d]{color:#845316;align-items:flex-start;gap:.5rem;font-size:.8rem;line-height:1.45;display:flex}.purchase-missing-heading svg[data-v-ff475e0d]{flex:none}.purchase-missing p[data-v-ff475e0d]{color:#765e3b;margin:.5rem 0;font-size:.75rem;line-height:1.6}.purchase-missing ul[data-v-ff475e0d]{margin:.7rem 0;padding:0;list-style:none}.purchase-missing li[data-v-ff475e0d]{border-top:1px solid #eddfc4;justify-content:space-between;align-items:center;gap:.75rem;font-size:.75rem;display:flex}.purchase-missing li span[data-v-ff475e0d]{overflow-wrap:anywhere}.purchase-missing li button[data-v-ff475e0d]{color:#845316;background:0 0;border:0;min-height:44px;padding:.5rem .2rem;font-weight:700}.purchase-missing .primary-button[data-v-ff475e0d]{align-items:center;gap:.5rem;min-height:44px;font-size:.78rem;display:inline-flex}.purchase-missing .purchase-generation-warning[data-v-ff475e0d]{border-top:1px solid #ead7af;margin-top:.8rem;padding-top:.8rem}.purchase-progress[data-v-ff475e0d]{margin:.8rem 0 1rem}.purchase-progress>div[data-v-ff475e0d]:first-child{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.purchase-progress strong[data-v-ff475e0d]{color:var(--purchase-green);font-size:1.15rem}.purchase-progress div>span[data-v-ff475e0d]{color:var(--muted);font-size:.75rem}.purchase-progress-track[data-v-ff475e0d]{background:#eaf0ec;border-radius:5px;height:5px;margin-top:.75rem}.purchase-progress-track span[data-v-ff475e0d]{border-radius:inherit;background:var(--purchase-green);height:100%;transition:width .15s;display:block}.purchase-list-controls[data-v-ff475e0d]{border-bottom:1px solid var(--purchase-border);flex-wrap:wrap;justify-content:space-between;gap:.5rem;padding:.25rem 0 .8rem;display:flex}.purchase-list-controls label[data-v-ff475e0d]{color:var(--muted);cursor:pointer;align-items:center;gap:.5rem;min-height:44px;font-size:.75rem;display:flex}.purchase-list-controls input[data-v-ff475e0d]{width:18px;height:18px;accent-color:var(--purchase-green)}.purchase-list-controls button[data-v-ff475e0d],.purchase-all-done button[data-v-ff475e0d]{color:var(--purchase-green);background:0 0;border:0;min-height:44px;font-size:.73rem;font-weight:700}.purchase-store[data-v-ff475e0d]{margin-top:1.3rem}.purchase-store-heading[data-v-ff475e0d]{align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.purchase-store-heading img[data-v-ff475e0d]{object-fit:contain;border:1px solid var(--purchase-border);background:#fff;border-radius:8px;width:32px;height:32px;padding:.15rem}.purchase-store-heading img.supermarket-logo-dark[data-v-ff475e0d]{background:#17643a}.purchase-store-heading h3[data-v-ff475e0d]{font-family:inherit;font-size:.86rem}.purchase-store-heading>span[data-v-ff475e0d]{color:var(--muted);margin-left:auto;font-size:.68rem}.purchase-product[data-v-ff475e0d]{cursor:pointer;border-bottom:1px solid #ecf0ed;align-items:center;gap:.75rem;min-height:64px;padding:.85rem .15rem;display:flex;position:relative}.purchase-product>span[data-v-ff475e0d]:last-child{gap:.3rem;min-width:0;display:grid}.purchase-product strong[data-v-ff475e0d]{overflow-wrap:anywhere;font-size:.87rem;line-height:1.4}.purchase-product small[data-v-ff475e0d]{color:var(--muted);overflow-wrap:anywhere;font-size:.7rem;line-height:1.55}.purchase-product.checked strong[data-v-ff475e0d]{color:#718278;text-decoration:line-through}.purchase-product.checked small[data-v-ff475e0d]{opacity:.7}.purchase-excluded[data-v-ff475e0d]{border-top:1px solid var(--purchase-border);margin-top:1.5rem;padding:.9rem 0}.purchase-excluded summary[data-v-ff475e0d]{color:var(--muted);cursor:pointer;align-items:center;gap:.5rem;min-height:44px;font-size:.76rem;display:flex}.purchase-excluded summary>span[data-v-ff475e0d]{background:#f0f3f1;border-radius:8px;margin-left:auto;padding:.3rem .6rem}.purchase-excluded p[data-v-ff475e0d],.purchase-excluded small[data-v-ff475e0d]{color:var(--muted);font-size:.7rem;line-height:1.5}.purchase-excluded>div[data-v-ff475e0d]{gap:.2rem;margin-top:.7rem;font-size:.78rem;display:grid}.purchase-share[data-v-ff475e0d]{border-top:1px solid var(--purchase-border);flex-wrap:wrap;gap:.6rem;margin-top:1.2rem;padding-top:1.2rem;display:flex}.purchase-share button[data-v-ff475e0d]{justify-content:center;align-items:center;gap:.5rem;min-height:44px;font-size:.78rem;display:inline-flex}.purchase-share>small[data-v-ff475e0d]{color:var(--muted);width:100%;margin-top:.25rem;font-size:.68rem;line-height:1.55}.purchase-empty[data-v-ff475e0d],.purchase-loading[data-v-ff475e0d],.purchase-all-done[data-v-ff475e0d]{text-align:center;min-height:240px;color:var(--muted);align-content:center;justify-items:center;gap:.75rem;padding:1.5rem .5rem;display:grid}.purchase-empty svg[data-v-ff475e0d],.purchase-loading svg[data-v-ff475e0d],.purchase-all-done svg[data-v-ff475e0d]{color:var(--purchase-green)}.purchase-empty h3[data-v-ff475e0d]{color:var(--ink);font-size:1.3rem}.purchase-empty p[data-v-ff475e0d]{max-width:30ch;margin:0;font-size:.8rem;line-height:1.6}.purchase-empty .secondary-button[data-v-ff475e0d]{align-items:center;gap:.5rem;margin-top:.4rem;display:inline-flex}.purchase-loading[data-v-ff475e0d]{min-height:160px;font-size:.85rem}.purchase-all-done[data-v-ff475e0d]{min-height:150px;font-size:.85rem}.purchase-alert[data-v-ff475e0d]{color:#845316;background:#fffaef;border:1px solid #ead7af;border-radius:12px;align-items:center;gap:.8rem;margin-top:1rem;padding:1rem;display:flex}.purchase-alert>svg[data-v-ff475e0d]{flex:none}.purchase-alert strong[data-v-ff475e0d]{font-size:.8rem}.purchase-alert p[data-v-ff475e0d]{margin:.35rem 0 0;font-size:.78rem;line-height:1.5}.purchase-alert .text-button[data-v-ff475e0d]{flex:none;margin-left:auto}button[data-v-ff475e0d]:disabled{opacity:.5}@media (width<=900px){.purchase-range[data-v-ff475e0d]{gap:.8rem}.purchase-range-label[data-v-ff475e0d]{width:100%}.purchase-columns[data-v-ff475e0d]{gap:1.2rem}.purchase-section-title[data-v-ff475e0d]{gap:.6rem}.purchase-bulk[data-v-ff475e0d]{flex-direction:column;gap:0}.purchase-bulk button[data-v-ff475e0d]{min-height:36px;padding:.4rem .6rem}}@media (width<=700px){.purchase-heading[data-v-ff475e0d]{flex-direction:column;align-items:flex-start;gap:.8rem;margin-bottom:1.25rem}.purchase-heading h1[data-v-ff475e0d]{font-size:2.25rem}.purchase-heading p[data-v-ff475e0d]:not(.eyebrow){font-size:.86rem}.purchase-jump[data-v-ff475e0d]{border:1px solid var(--purchase-border);background:#fff;border-radius:10px;padding:.65rem .85rem;font-size:.78rem}.purchase-jump svg[data-v-ff475e0d]{flex:none}.purchase-range[data-v-ff475e0d]{padding:1rem}.purchase-date-fields[data-v-ff475e0d]{gap:.5rem;width:100%}.purchase-date-fields label[data-v-ff475e0d]{flex:1;min-width:0}.purchase-date-fields input[data-v-ff475e0d]{box-sizing:border-box;width:100%;font-size:16px}.purchase-range .secondary-button[data-v-ff475e0d]{flex:1;justify-content:center}.purchase-summary[data-v-ff475e0d]{gap:.7rem 1.1rem;margin:1.1rem 0 1.5rem}.purchase-summary>span[data-v-ff475e0d]{font-size:.73rem}.purchase-columns[data-v-ff475e0d]{grid-template-columns:minmax(0,1fr);gap:2rem}.purchase-bulk[data-v-ff475e0d]{flex-direction:row}.purchase-bulk button[data-v-ff475e0d]{min-height:44px}.purchase-days[data-v-ff475e0d]{gap:1.2rem}.purchase-dish[data-v-ff475e0d]{gap:.7rem;padding:.85rem}.purchase-dish-copy strong[data-v-ff475e0d]{font-size:.88rem}.purchase-list[data-v-ff475e0d]{border-radius:18px}.purchase-alert[data-v-ff475e0d]{flex-wrap:wrap}.purchase-alert>div[data-v-ff475e0d]{flex:1;min-width:0}}@media (width<=380px){.purchase-date-fields[data-v-ff475e0d]{flex-direction:column;gap:.6rem}.purchase-date-fields label[data-v-ff475e0d]{grid-template-columns:42px minmax(0,1fr);align-items:center;width:100%;display:grid}.purchase-date-fields>span[data-v-ff475e0d]{display:none}}@media (width<=360px){.purchase-heading h1[data-v-ff475e0d]{font-size:1.9rem}.purchase-dish-photo[data-v-ff475e0d]{flex-basis:38px;width:38px;height:38px}.purchase-date-fields input[data-v-ff475e0d]{padding:.5rem .2rem}.purchase-share button[data-v-ff475e0d]{flex:1}}@media (prefers-reduced-motion:reduce){.purchase-dish[data-v-ff475e0d],.purchase-progress-track span[data-v-ff475e0d]{transition:none}}:root{color:#1c2925;font-synthesis:none;--ink:#1c2925;--muted:#77827c;--green:#2c6b4c;--soft-green:#e9f2eb;--line:#e1e7e1;--yellow:#f5c95e;background:#f7f8f4;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea{font:inherit}.app-shell{min-height:100vh}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1440px;height:76px;margin:auto;padding:0 4vw;display:flex}.brand-mark{align-items:center;gap:.75rem;display:flex}.brand-mark>span{color:#fff;background:var(--green);letter-spacing:.05em;border-radius:13px;place-items:center;width:39px;height:39px;font-size:.75rem;font-weight:700;display:grid}.brand-mark strong,.brand-mark small{display:block}.brand-mark strong{font-size:.95rem}.account-actions{align-items:center;gap:.8rem;display:flex}.user-name{color:var(--muted);font-size:.8rem}main{max-width:1440px;margin:auto;padding:4.25rem 4vw 6rem}.page-heading{justify-content:space-between;align-items:flex-end;margin-bottom:2.5rem;display:flex}h1,h2{letter-spacing:-.04em;margin:0;font-family:Fraunces,serif}h1{font-size:clamp(2.5rem,5vw,4.5rem);line-height:.95}.page-heading .muted{max-width:38rem;margin:.85rem 0 0}.settings-button,.secondary-button,.primary-button,.google-button{border:0;border-radius:999px;padding:.8rem 1.1rem;font-weight:600}.settings-button{border:1px solid var(--line);color:var(--ink);background:#fff}.icon-button,.round-button{color:var(--muted);background:0 0;border:0}.icon-button{font-size:1.5rem;line-height:1}.round-button{border:1px solid var(--line);background:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-size:1.1rem;display:grid}.welcome-icon{background:#fdf1c9;border-radius:24px;place-items:center;width:70px;height:70px;margin:0 auto 2rem;font-size:2rem;display:grid;transform:rotate(-8deg)}.welcome-card .eyebrow{margin-bottom:1rem}.welcome-card h1{font-size:clamp(2.8rem,7vw,5.5rem)}.welcome-copy{max-width:520px;margin:1.5rem auto 2.25rem;font-size:1.05rem}.week-grid{grid-template-columns:minmax(0,980px);justify-content:center;gap:.8rem;padding-bottom:.5rem;display:grid}.day-card{border:1px solid var(--line);background:#fff;border-radius:21px;grid-template-columns:185px minmax(0,1fr) 90px;align-items:center;min-width:0;padding:1rem 1.15rem;transition:border-color .2s,transform .2s;display:grid}.day-card.today{border-color:var(--yellow);box-shadow:0 8px 24px #f5c95e1c}.day-header{justify-content:space-between;align-items:flex-start;min-height:59px;padding-right:1rem;display:flex}.day-header>div{align-items:center;gap:.55rem;display:flex}.day-number{color:var(--green);font-family:Fraunces,serif;font-size:1.5rem}.day-header strong,.day-header small{text-transform:capitalize;display:block}.day-header strong{font-size:.82rem}.day-header small{color:var(--muted);margin-top:.15rem;font-size:.68rem}.today-pill{color:#80691e;background:#fff5ce;border-radius:6px;padding:.22rem .4rem;font-size:.58rem;font-weight:700}.meal-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem;padding:0 1rem;display:grid}.meal-card{background:#f7f9f6;border:1px solid #0000;border-radius:13px;min-height:90px;padding:.7rem;transition:all .2s}.meal-card:hover{border-color:#bdd8c4;transform:translateY(-1px)}.meal-top{justify-content:space-between;align-items:center;display:flex}.meal-name{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.67rem;font-weight:700}.meal-name span{margin-right:.3rem}.dish-chip{color:var(--ink);text-overflow:ellipsis;font-size:.78rem;font-weight:600;line-height:1.3;overflow:hidden}.meal-reminder{color:var(--green);align-items:center;gap:.2rem;margin-top:.55rem;font-size:.68rem;font-weight:700;display:inline-flex}.meal-reminder .material-symbols-rounded{font-size:.9rem}.meal-reminder svg{flex:none}.meal-note{color:var(--muted);margin-top:.35rem;font-size:.7rem;line-height:1.35;display:block}.empty-meal{color:#9ba69f;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;margin-top:.7rem;padding:0;font-size:.74rem;display:flex}.empty-meal span{color:var(--green);font-size:1.2rem}.edit-day{width:100%;color:var(--green);text-align:left;background:0 0;border:0;padding:.4rem 0;font-size:.72rem;font-weight:700}.edit-day span{float:right;font-size:1rem}.infinite-status{min-height:64px;color:var(--muted);justify-content:center;align-items:center;gap:.6rem;font-size:.76rem;display:flex}.loading-card{min-height:180px;color:var(--muted);border:1px solid var(--line);background:#fff;justify-content:center;align-items:center;gap:.7rem;display:flex}.spinner{border:2px solid #dbe7dd;border-top-color:var(--green);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{z-index:10;background:#17231f66;border:0;place-items:end center;width:100%;max-width:none;height:100%;max-height:none;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:25px;width:min(100%,620px);max-height:min(90vh,760px);padding:1.5rem;overflow:hidden;box-shadow:0 20px 60px #17231f33}.modal-header,.modal-footer,.editor-meal-heading{justify-content:space-between;align-items:center;display:flex}.modal-header .eyebrow{margin-bottom:.35rem}.text-button{color:var(--green);background:0 0;border:0;font-size:.75rem;font-weight:600}.editor-dishes{gap:.45rem;margin:.8rem 0;display:grid}.dish-input-row{gap:.4rem;display:flex}.dish-input-row input,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fbfcfa;border-radius:10px;outline:none;padding:.7rem .8rem}.dish-input-row input:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #2c6b4c18}.remove-button{color:#b9776d;background:#fff0ed;border:0;border-radius:9px;width:34px}.editor-meal textarea{margin-top:.5rem;font-size:.78rem}.meal-more-options{border-top:1px solid var(--line);margin-top:.75rem}.meal-more-options summary{color:var(--green);cursor:pointer;padding:.75rem 0 .15rem;font-size:.76rem;font-weight:700;list-style:none}.meal-more-options summary::-webkit-details-marker{display:none}.meal-more-options summary:before{content:"＋";margin-right:.35rem;font-size:.9rem;display:inline-block}.meal-more-options[open] summary:before{content:"−"}.more-options-content{padding-bottom:.2rem}.reminder-check{border:1px solid var(--line);cursor:pointer;background:#fbfcfa;border-radius:10px;align-items:center;gap:.65rem;padding:.65rem .75rem;display:flex}.reminder-check input{accent-color:var(--green);flex:none}.reminder-check strong,.reminder-check small{display:block}.reminder-check strong{color:var(--ink);font-size:.78rem}.reminder-check small{color:var(--muted);margin-top:.12rem;font-size:.68rem;font-weight:400}.reminder-fields{grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);gap:.6rem;display:grid}.reminder-fields .field-label{padding-top:.7rem}.reminder-fields input,.reminder-settings input[type=time]{border:1px solid var(--line);width:100%;color:var(--ink);background:#fbfcfa;border-radius:9px;outline:none;padding:.65rem .7rem;font-weight:400}.reminder-fields input:focus,.reminder-settings input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2c6b4c18}.field-label{color:var(--muted);gap:.45rem;padding-top:1rem;font-size:.8rem;font-weight:600;display:grid}.field-label textarea{font-weight:400}.modal-footer{justify-content:flex-end;gap:.7rem;padding-top:1rem}.modal-footer button{min-width:120px}.settings-card{max-width:500px}.settings-intro{color:var(--muted);font-size:.9rem;line-height:1.5}.meal-settings{gap:.6rem;margin:1.4rem 0;display:grid}.meal-setting{border:1px solid var(--line);cursor:pointer;border-radius:13px;align-items:center;gap:.75rem;padding:.85rem;display:flex}.meal-setting input{accent-color:var(--green)}.setting-icon{font-size:1.3rem}.meal-setting strong,.meal-setting small{display:block}.meal-setting strong{font-size:.85rem}.meal-setting small{color:var(--muted);margin-top:.12rem;font-size:.7rem}.checkmark{color:var(--green);opacity:0;margin-left:auto;font-weight:700}.meal-setting:has(input:checked) .checkmark{opacity:1}.settings-note{color:var(--muted);font-size:.75rem}.reminder-settings{border:1px solid var(--line);background:#fff;border-radius:16px;margin-top:1.5rem;padding:1.1rem}.reminder-settings .muted{margin:.65rem 0 .9rem;font-size:.78rem}.default-reminder-check{margin-bottom:.15rem}.reminder-settings>.field-label{padding-top:.8rem}.settings-page-heading{max-width:980px;margin:0 auto 2.5rem}@media (width<=820px){.day-card{grid-template-columns:155px minmax(0,1fr) 76px;padding-inline:.85rem}.meal-list{grid-template-columns:1fr;padding-inline:.6rem}}@media (width<=620px){.topbar{height:66px;padding:0 1.15rem}.user-name{display:none}main{padding:2.5rem 1rem 4rem}.page-heading{align-items:flex-start;gap:1rem}.settings-button span{display:none}.settings-button{padding:.7rem .85rem}.day-card{padding:1rem;display:block}.day-header{border-bottom:1px solid var(--line);padding-bottom:.85rem;padding-right:0}.meal-list{padding:.8rem 0}.edit-day{padding-top:0}.modal-backdrop{padding:0}.modal-card{border-radius:25px 25px 0 0;max-height:94vh}}.shopping-page{max-width:1120px;margin:0 auto}.shopping-heading{margin-bottom:2rem}.shopping-wizard-progress{border:1px solid var(--line);background:#fff;border-radius:17px;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:-.7rem auto 1.25rem;padding:.35rem;display:grid}.shopping-wizard-step{color:var(--muted);background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;padding:.65rem .7rem;font-size:.75rem;font-weight:600;display:flex}.shopping-wizard-step span{border:1px solid #d3ddd4;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.68rem;display:grid}.shopping-wizard-step.active{color:var(--green);background:var(--soft-green)}.shopping-wizard-step.active span,.shopping-wizard-step.completed span{border-color:var(--green);color:#fff;background:var(--green)}.shopping-wizard-step.completed{color:var(--green)}.shopping-wizard-step:disabled{cursor:not-allowed;opacity:.52}.shopping-error-details{color:#7f3c31;background:#fff5f2;border:1px solid #f0c3ba;border-radius:13px;margin:0 0 1rem;padding:.75rem .9rem}.shopping-error-details summary{cursor:pointer;font-size:.75rem;font-weight:700}.shopping-error-details pre{white-space:pre-wrap;word-break:break-word;border-top:1px solid #f0c3ba;max-height:220px;margin:.7rem 0 0;padding-top:.7rem;font:.68rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.shopping-generate-top,.shopping-result-empty .primary-button{align-items:center;gap:.45rem;display:inline-flex}.shopping-generate-top:disabled,.shopping-result-empty .primary-button:disabled{cursor:not-allowed;opacity:.5}.shopping-layout{grid-template-columns:minmax(0,1.04fr) minmax(330px,.96fr);align-items:start;gap:1rem;display:grid}.shopping-builder,.shopping-result{border:1px solid var(--line);background:#fff;border-radius:24px;min-width:0;padding:clamp(1.1rem,3vw,1.55rem);box-shadow:0 12px 32px #1c292508}.shopping-section-heading{align-items:flex-start;gap:.8rem;margin-bottom:1.35rem;display:flex}.shopping-section-heading h2{font-size:clamp(1.55rem,3vw,2rem)}.shopping-section-heading .muted{margin:.55rem 0 0;font-size:.78rem}.shopping-section-heading .eyebrow{margin-bottom:.35rem;font-size:.62rem}.shopping-section-icon{width:42px;height:42px;color:var(--green);background:var(--soft-green);border-radius:14px;flex:none;place-items:center;display:grid}.shopping-section-icon.result-icon{color:#9b741b;background:#fff5ce}.shopping-day-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.shopping-day-option{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fbfcfa;border-radius:14px;gap:.25rem;padding:.85rem .85rem .85rem 2.25rem;transition:all .2s;display:grid;position:relative}.shopping-day-option:hover{border-color:#b7d5bd;transform:translateY(-1px)}.shopping-day-option.selected{background:var(--soft-green);border-color:#a9cdb1}.shopping-day-option strong{text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:.76rem;overflow:hidden}.shopping-day-option small{color:var(--muted);font-size:.64rem}.shopping-day-check{color:#0000;background:#fff;border:1px solid #cbd6cc;border-radius:5px;place-items:center;width:18px;height:18px;display:grid;position:absolute;top:.9rem;left:.8rem}.shopping-day-option.selected .shopping-day-check{border-color:var(--green);color:#fff;background:var(--green)}.shopping-meal-selection{gap:.55rem;max-height:none;display:grid;overflow:visible}.shopping-meal-option{width:100%;min-width:0;color:var(--ink);border:1px solid var(--line);text-align:left;background:#fbfcfa;border-radius:14px;align-items:center;gap:.65rem;padding:.75rem .8rem .75rem 2.55rem;transition:all .2s;display:flex;position:relative}.shopping-meal-option:hover{border-color:#b7d5bd;transform:translateY(-1px)}.shopping-meal-option.selected{background:var(--soft-green);border-color:#a9cdb1}.shopping-meal-check{color:#0000;background:#fff;border:1px solid #cbd6cc;border-radius:5px;place-items:center;width:18px;height:18px;display:grid;position:absolute;top:50%;left:.8rem;transform:translateY(-50%)}.shopping-meal-option.selected .shopping-meal-check{border-color:var(--green);color:#fff;background:var(--green)}.shopping-meal-option .meal-icon{width:32px;height:32px;color:var(--green);background:#fff;border-radius:10px;flex:none;place-items:center;display:grid}.shopping-meal-option-copy{gap:.2rem;min-width:0;display:grid}.shopping-meal-option-copy small{color:var(--muted);text-transform:capitalize;font-size:.64rem}.shopping-meal-option-copy strong{text-overflow:ellipsis;font-size:.76rem;line-height:1.35;overflow:hidden}.shopping-selection-footer{border-top:1px solid var(--line);color:var(--green);justify-content:space-between;align-items:center;gap:.7rem;margin-top:1rem;padding-top:.9rem;font-size:.72rem;font-weight:700;display:flex}.shopping-wizard-actions{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:.7rem;margin-top:1.25rem;padding-top:1rem;font-size:.7rem;display:flex}.shopping-wizard-actions .primary-button,.shopping-wizard-actions .secondary-button{align-items:center;gap:.35rem;display:inline-flex}.shopping-wizard-actions button:disabled{cursor:not-allowed;opacity:.5}.shopping-selection-footer span:first-child{align-items:center;gap:.3rem;display:inline-flex}.shopping-selection-note{color:var(--muted);text-align:right;font-size:.66rem;font-weight:400}.shopping-meal-preview{gap:.45rem;max-height:260px;margin-top:1rem;padding-right:.2rem;display:grid;overflow-y:auto}.shopping-meal-preview-large{max-height:430px}.shopping-meal-preview-row{background:#f7f9f6;border-radius:11px;align-items:flex-start;gap:.6rem;padding:.65rem .7rem;display:flex}.shopping-meal-preview-row .meal-icon{flex:none;margin-top:.12rem}.shopping-meal-preview-row div{gap:.18rem;min-width:0;display:grid}.shopping-meal-preview-row small{color:var(--muted);text-transform:capitalize;font-size:.63rem}.shopping-meal-preview-row strong{text-overflow:ellipsis;font-size:.74rem;line-height:1.35;overflow:hidden}.shopping-no-meals,.shopping-empty,.shopping-loading{min-height:110px;color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:.5rem;font-size:.76rem;display:flex}.shopping-empty{align-content:center;display:grid}.shopping-empty strong,.shopping-empty span{display:block}.shopping-empty svg{color:var(--green);margin:0 auto}.shopping-empty span{font-size:.68rem}.shopping-no-meals{background:#fbfcfa;border-radius:12px;min-height:75px;padding:.8rem}.shopping-generating{min-height:340px;color:var(--muted);text-align:center;align-content:center;justify-items:center;gap:.55rem;display:grid}.shopping-generating strong{color:var(--ink);font-size:.95rem}.shopping-generating span{font-size:.72rem}.shopping-generating-orbit{color:#9b741b;background:#fff9e5;border:1px solid #e6d6a3;border-radius:22px;place-items:center;width:64px;height:64px;margin-bottom:.35rem;animation:1.4s ease-in-out infinite shopping-pulse;display:grid}@keyframes shopping-pulse{50%{transform:scale(1.06)rotate(4deg);box-shadow:0 8px 24px #f5c95e44}}.shopping-result-empty{text-align:center;align-content:center;justify-items:center;min-height:340px;display:grid}.shopping-result-empty-icon{color:#9b741b;background:#fff9e5;border-radius:22px;place-items:center;width:64px;height:64px;margin-bottom:1rem;display:grid}.shopping-result-empty h3{letter-spacing:-.03em;margin:0;font-family:Fraunces,serif;font-size:1.45rem}.shopping-result-empty p{max-width:250px;color:var(--muted);margin:.65rem 0 1.15rem;font-size:.74rem;line-height:1.5}.shopping-result-toolbar{border-bottom:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:.9rem;font-size:.73rem;display:flex}.shopping-result-toolbar strong{color:var(--green);font-size:1.1rem}.shopping-result-toolbar .secondary-button{align-items:center;gap:.3rem;padding:.55rem .75rem;font-size:.7rem;display:inline-flex}.shopping-alexa-link{color:#4b5d9b;background:#eef0ff;text-decoration:none}.shopping-groups,.shopping-items-list{gap:1rem;max-height:none;padding:1rem .2rem .4rem 0;display:grid;overflow:visible}.shopping-group h3{color:var(--green);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .4rem;font-size:.67rem}.shopping-item{cursor:pointer;border-bottom:1px solid #eef1ed;align-items:center;gap:.6rem;padding:.6rem 0;display:flex}.shopping-item input{opacity:0;pointer-events:none;position:absolute}.shopping-item-check{color:#0000;background:#fff;border:1px solid #cbd6cc;border-radius:6px;flex:none;place-items:center;width:19px;height:19px;display:grid}.shopping-item.checked .shopping-item-check{border-color:var(--green);color:#fff;background:var(--green)}.shopping-item-copy{justify-content:space-between;align-items:baseline;gap:.75rem;width:100%;min-width:0;display:flex}.shopping-item-copy strong{text-overflow:ellipsis;font-size:.79rem;line-height:1.3;overflow:hidden}.shopping-item-copy small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);flex:none;font-size:.68rem;overflow:hidden}.shopping-item.checked .shopping-item-copy strong{color:#9ba69f;text-decoration:line-through}.shopping-supermarket-group{padding-top:.25rem}.shopping-supermarket-heading{color:var(--ink);align-items:center;gap:.55rem;padding:.35rem 0 .2rem;display:flex}.shopping-supermarket-heading img{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:9px;width:34px;height:34px}.shopping-supermarket-heading img.supermarket-logo-dark,.supermarket-select img.supermarket-logo-dark{background:#17643a}.shopping-supermarket-heading div{gap:.12rem;display:grid}.shopping-supermarket-heading strong{font-size:.82rem}.shopping-supermarket-heading small{color:var(--muted);font-size:.66rem}.shopping-excluded-section{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:1rem}.shopping-excluded-heading{color:var(--muted);align-items:center;gap:.4rem;margin-bottom:.55rem;display:flex}.shopping-excluded-heading strong{font-size:.76rem}.shopping-excluded-heading small{margin-left:auto;font-size:.65rem}.shopping-disabled-items{margin-top:0}.disabled-shopping-item{color:#a6ada7;opacity:.72;background:#f5f6f4;border-color:#e4e8e3}.disabled-shopping-item .shopping-item-check{color:#a6ada7;background:#e9ece8;border-color:#d7ddd7}.disabled-shopping-item .shopping-item-copy strong{color:#929b94;text-decoration:line-through}.shopping-regenerate{color:var(--green);background:0 0;border:0;align-items:center;gap:.35rem;margin-top:1rem;padding:.35rem 0;font-size:.72rem;font-weight:700;display:inline-flex}.shopping-result-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;margin-top:1rem;display:flex}.shopping-result-actions .secondary-button{align-items:center;gap:.35rem;padding:.55rem .75rem;font-size:.7rem;display:inline-flex}.shopping-error-modal{width:min(100%,590px)}.shopping-error-heading{align-items:center;gap:.7rem;display:flex}.shopping-error-heading h2{font-size:clamp(1.3rem,3vw,1.75rem)}.shopping-error-icon{color:#a4493d;background:#fff0ed;border-radius:14px;place-items:center;width:42px;height:42px;display:grid}.shopping-error-message{color:var(--ink);margin:1.1rem 0;font-size:.86rem;line-height:1.5}.shopping-error-modal .shopping-error-details{margin-bottom:0}@media (width<=860px){.shopping-layout{grid-template-columns:1fr}.shopping-result-empty,.shopping-generating{min-height:250px}}@media (width<=620px){.shopping-heading{display:block}.shopping-generate-top{justify-content:center;width:100%;margin-top:.4rem}.shopping-day-picker{grid-template-columns:1fr}.shopping-wizard-step strong{display:none}.shopping-wizard-actions{flex-direction:column;align-items:stretch}.shopping-wizard-actions button{justify-content:center}.shopping-result-actions{flex-direction:column;align-items:stretch}.shopping-result-actions button{justify-content:center}.shopping-selection-footer{flex-direction:column;align-items:flex-start}.shopping-selection-note{text-align:left}}.option-badge{border-radius:999px;align-items:center;width:fit-content;padding:.3rem .55rem;font-size:.68rem;font-weight:700;display:inline-flex}.option-blue{color:#245c82;background:#e8f3fb}.option-green{color:#286443;background:#e7f5e9}.option-orange{color:#8a5b18;background:#fff2d8}.option-rose{color:#8d4557;background:#fde9ee}.option-violet{color:#674b88;background:#f1eafa}.option-slate{color:#53616d;background:#edf1f3}.editor-options{border:1px solid var(--line);background:#fbfcfa;border-radius:13px;padding:.9rem}.editor-options>.field-label{padding:0 0 .65rem}.option-check{cursor:pointer;align-items:center;gap:.35rem;margin:.2rem .35rem .2rem 0;display:inline-flex}.option-check input,.option-active input{accent-color:var(--green)}.group-settings,.daily-option-manager{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.2rem}.section-heading{justify-content:space-between;align-items:center;gap:.7rem;display:flex}.section-heading h3{margin:0;font-size:1rem}.section-heading .eyebrow{margin:0 0 .25rem}.owner-pill{color:var(--green);background:var(--soft-green);border-radius:999px;padding:.3rem .55rem;font-size:.65rem;font-weight:700}.group-code{border:1px solid var(--line);background:#fbfcfa;border-radius:11px;justify-content:space-between;align-items:center;gap:.6rem;margin:.8rem 0;padding:.65rem .75rem;display:flex}.group-code code{color:var(--ink);letter-spacing:.12em;font-size:1rem;font-weight:800}.group-supermarket-card{border:1px solid var(--line);background:#fbfcfa;border-radius:16px;grid-template-columns:minmax(0,1fr) minmax(180px,230px) auto;align-items:center;gap:.85rem;margin:1rem 0;padding:1rem;display:grid}.group-supermarket-copy{gap:.25rem;display:grid}.group-supermarket-copy .eyebrow{margin:0}.group-supermarket-copy h4{margin:0;font-size:.92rem}.group-supermarket-copy span{color:var(--muted);font-size:.7rem;line-height:1.4}.supermarket-select{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:.45rem;min-width:0;padding:.25rem .4rem;display:flex}.supermarket-select img{object-fit:contain;border-radius:7px;flex:none;width:30px;height:30px}.supermarket-select select{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;padding:.45rem .25rem;font-size:.72rem}@media (width<=620px){.group-supermarket-card{grid-template-columns:1fr}.group-supermarket-card .secondary-button{justify-content:center}}.inline-form{gap:.45rem;margin:.7rem 0;display:flex}.inline-form input,.option-form input,.option-form select{border:1px solid var(--line);min-width:0;color:var(--ink);background:#fbfcfa;border-radius:9px;outline:none;flex:1;padding:.65rem .7rem}.group-members{color:var(--muted);gap:.3rem;margin:.8rem 0;font-size:.76rem;display:grid}.group-members strong{color:var(--ink);font-size:.8rem}.group-members small{color:#a16d43}.danger-button{color:#a04d42;background:0 0;border:0;padding:.55rem 0;font-size:.75rem;font-weight:700}.option-form{gap:.5rem;margin:.8rem 0 1rem;display:grid}.option-form-row{align-items:center;gap:.45rem;display:flex}.option-form-row select{flex:1}.option-active{color:var(--muted);white-space:nowrap;align-items:center;gap:.25rem;font-size:.73rem;display:inline-flex}.option-admin-list{gap:.45rem;display:grid}.option-admin-row{border:1px solid var(--line);border-radius:10px;align-items:center;gap:.5rem;padding:.55rem .6rem;display:flex}.option-admin-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.68rem;overflow:hidden}@media (width<=520px){.option-form-row{flex-wrap:wrap}.option-form-row select,.option-form-row input{min-width:42%}.option-admin-row{flex-wrap:wrap}.option-admin-row small{flex-basis:100%;order:3}.reminder-fields{grid-template-columns:1fr;gap:0}}.modal-header-actions{align-items:center;gap:.45rem;display:flex}.roulette-trigger{color:#fff;background:linear-gradient(135deg,#1769e8,#674fd0);border:0;border-radius:999px;align-items:center;gap:.35rem;min-height:38px;padding:.55rem .78rem;font-size:.76rem;font-weight:800;display:inline-flex;box-shadow:0 8px 18px #1769e833}.roulette-backdrop{z-index:20;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#081733b8;place-items:center;padding:1rem}.roulette-card{border-color:#ffffffd9;width:min(100%,570px);max-height:94vh;padding:clamp(1rem,3vw,1.5rem)}.roulette-card .modal-header{padding-bottom:.8rem}.roulette-card h2{font-size:clamp(1.7rem,5vw,2.25rem)}.roulette-intro{color:#4e6587;text-align:center;justify-content:center;align-items:center;gap:.45rem;margin:.9rem auto .65rem;font-size:.77rem;display:flex}.roulette-intro svg{color:#e29d1e;flex:none}.roulette-meal-select{color:var(--muted);justify-content:center;align-items:center;gap:.55rem;font-size:.76rem;font-weight:700;display:flex}.roulette-meal-select select{color:var(--ink);background:#f5f8fd;border:1px solid #d6e2f0;border-radius:10px;outline:none;padding:.48rem .7rem;font-size:.8rem;font-weight:700}.roulette-stage{aspect-ratio:1;background:linear-gradient(145deg,#fff,#d8e9ff);border-radius:50%;width:min(76vw,350px);margin:1.1rem auto .8rem;padding:8px;position:relative;box-shadow:0 18px 40px #143e7729,0 0 0 1px #7ca9dd59}.roulette-stage:before,.roulette-stage:after{content:"";pointer-events:none;border:1px dashed #1769e840;border-radius:50%;position:absolute;inset:3%}.roulette-stage:after{background:radial-gradient(circle,#0000 65%,#ffffff8c 66%,#0000 67%);border:0;inset:0}.roulette-wheel{z-index:1;border:5px solid #fff;border-radius:50%;width:100%;height:100%;transition:transform 4.8s cubic-bezier(.12,.72,.1,1);position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #0d36782e,inset 0 0 28px #0624592e}.roulette-wheel svg{width:100%;height:100%;display:block}.roulette-wheel-label{fill:#fff;letter-spacing:-.01em;paint-order:stroke;stroke:#0f30662e;stroke-width:1.8px;font-family:DM Sans,sans-serif;font-size:7px;font-weight:800}.roulette-center{z-index:2;color:#153c7e;text-transform:uppercase;letter-spacing:.06em;background:#fffffff0;border:5px solid #fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:78px;height:78px;font-size:.62rem;font-weight:800;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 5px 16px #0d367838}.roulette-center svg{color:#1769e8;width:25px;height:25px;margin-bottom:.18rem}.roulette-pointer{z-index:4;filter:drop-shadow(0 3px 3px #091c3d40);border:14px solid #0000;border-top:28px solid #15264a;border-bottom:0;width:0;height:0;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.roulette-pointer:after{content:"";background:#f7bd4f;border:3px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;top:5px;left:-7px}.roulette-status,.roulette-empty{min-height:45px;color:var(--muted);text-align:center;background:#f5f8fd;border-radius:14px;justify-content:center;align-items:center;gap:.45rem;font-size:.78rem;display:flex}.roulette-spin-icon{animation:1s linear infinite roulette-spin}.roulette-empty{color:#8c5a31;background:#fff7e7;padding:.7rem 1rem}.roulette-empty p{margin:0;line-height:1.4}.roulette-result{color:#153c7e;text-align:center;background:linear-gradient(135deg,#edf5ff,#f9f0ff);border:1px solid #d5e5fa;border-radius:16px;gap:.15rem;padding:.85rem 1rem;display:grid}.roulette-result span{color:#6680a3;letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;font-weight:800}.roulette-result strong{color:#1769e8;letter-spacing:-.03em;font-family:Fraunces,Georgia,serif;font-size:1.55rem}.roulette-result small{color:#687b99;font-size:.72rem}.roulette-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.9rem;display:flex}.roulette-actions button{min-height:43px}.roulette-repeat{color:#674fd0;background:#f1edff;border:1px solid #ddd4ff;border-radius:999px;align-items:center;gap:.35rem;padding:.7rem .9rem;font-size:.78rem;font-weight:800;display:inline-flex}.roulette-select{align-items:center;gap:.35rem;display:inline-flex}.roulette-spin-button{justify-content:center;align-items:center;gap:.4rem;min-width:190px;display:inline-flex}.roulette-footnote{color:#8b9bb3;text-align:center;margin:.8rem 0 0;font-size:.68rem;line-height:1.4}@keyframes roulette-spin{to{transform:rotate(360deg)}}@media (width<=520px){.roulette-backdrop{padding:0}.roulette-card{border-radius:25px 25px 0 0;max-height:100vh;overflow-y:auto}.roulette-stage{width:min(82vw,330px);margin-top:.95rem}.roulette-actions{grid-template-columns:1fr 1fr;display:grid}.roulette-actions .roulette-spin-button,.roulette-actions .roulette-select{grid-column:1/-1}.roulette-actions .secondary-button,.roulette-actions .roulette-repeat{width:100%}}.slot-machine{background:linear-gradient(150deg,#183c83 0%,#1769e8 52%,#674fd0 100%);border:5px solid #f7bd4f;border-radius:24px 24px 20px 20px;width:min(100%,450px);margin:1.1rem auto .8rem;padding:1rem .9rem .85rem;position:relative;overflow:hidden;box-shadow:0 18px 36px #14377540,inset 0 0 0 2px #fff3}.slot-machine:before{content:"";pointer-events:none;border:1px solid #ffffff3b;border-radius:16px;position:absolute;inset:10px}.slot-machine-top,.slot-machine-bottom{z-index:1;color:#ffe49a;justify-content:center;align-items:center;gap:.7rem;display:flex;position:relative}.slot-machine-top{letter-spacing:.16em;text-shadow:0 2px #0c235959;margin-bottom:.7rem;font-size:.7rem;font-weight:900}.slot-light{background:#f7bd4f;border:2px solid #fff2bd;border-radius:50%;width:9px;height:9px;animation:1.2s ease-in-out infinite alternate slot-blink;box-shadow:0 0 9px #ffe89a}.slot-light:last-child{animation-delay:.6s}.slot-reels{z-index:1;background:#102c66;border:3px solid #f5d477;border-radius:15px;grid-template-columns:minmax(0,1fr);gap:.45rem;width:min(100%,330px);margin:auto;padding:.55rem;display:grid;position:relative;box-shadow:inset 0 4px 9px #05133973,0 3px #ffffff26}.slot-reel-window{background:#fff;border:3px solid #dbe8f9;border-radius:10px;height:64px;position:relative;overflow:hidden;box-shadow:inset 0 4px 10px #1b3d6f29,0 2px #0619484d}.slot-reel-window:after{content:"";pointer-events:none;border-top:1px solid #1769e82e;border-bottom:1px solid #1769e82e;border-radius:7px;position:absolute;inset:0}.slot-reel-track{will-change:transform;transition:transform 2.6s cubic-bezier(.12,.72,.1,1)}.slot-reel-track.reel-no-transition{transition:none}.slot-reel-item{color:#153c7e;text-align:center;place-items:center;height:64px;padding:0 .35rem;font-family:Fraunces,Georgia,serif;font-size:clamp(.9rem,2.8vw,1.2rem);font-weight:700;line-height:1.08;display:grid;overflow:hidden}.slot-machine-bottom{color:#f7bd4f;letter-spacing:.25em;gap:.35rem;margin-top:.7rem;font-size:1.2rem}.slot-machine.spinning .slot-light{animation-duration:.35s}@keyframes slot-blink{0%{opacity:.5;transform:scale(.85)}to{opacity:1;transform:scale(1.1)}}@media (width<=520px){.slot-machine{margin-top:.95rem;padding-inline:.65rem}.slot-reels{gap:.3rem;padding:.4rem}.slot-reel-item{padding-inline:.2rem;font-size:.72rem}}html{background:#f6f9fd;min-width:320px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:active{transform:scale(.97)}.material-symbols-rounded{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";font-variation-settings:"FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24;direction:ltr;font-family:Material Symbols Rounded;font-size:1.25em;font-style:normal;font-weight:400;line-height:1}.topbar{z-index:5;-webkit-backdrop-filter:blur(22px)saturate(150%);backdrop-filter:blur(22px)saturate(150%);background:#f6f9fddb;border-bottom:1px solid #d5e1f0d1;min-height:74px;padding:.8rem max(1.15rem,4vw);position:sticky;top:0}.brand-mark{align-items:center;gap:.75rem}.brand-icon{color:#fff;background:var(--blue);border-radius:15px;place-items:center;width:40px;height:40px;display:grid;font-size:1.45rem!important}.brand-mark strong{color:var(--ink);letter-spacing:-.02em;font-size:1rem}.brand-mark small{color:var(--muted);margin-top:.12rem;font-size:.72rem}.account-actions{gap:.5rem}.user-name{max-width:12rem;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.round-icon-button{width:42px;height:42px;color:var(--ink);border:1px solid var(--line);background:#ffffffc7;border-radius:50%;place-items:center;padding:0;display:grid}.round-icon-button .material-symbols-rounded{font-size:1.35rem}main{width:min(100%,980px);margin:0 auto;padding:2.5rem 1.15rem 6rem}.settings-main{padding-top:0;padding-bottom:0}.page-heading{margin-bottom:1.1rem}.eyebrow{color:var(--blue);letter-spacing:.16em;margin:0 0 .45rem;font-size:.68rem;font-weight:700}h1,h2{letter-spacing:-.04em;font-family:Fraunces,Georgia,serif}h1{color:var(--ink);font-size:clamp(2.15rem,8vw,3.6rem);line-height:.98}h2{font-size:1.75rem}.muted,.welcome-copy{color:var(--muted);line-height:1.5}.page-heading .muted{max-width:38rem;margin:.7rem 0 0;font-size:.9rem}.settings-button,.secondary-button,.primary-button,.google-button{border-radius:999px;justify-content:center;align-items:center;gap:.4rem;min-height:44px;padding:.75rem 1rem;font-weight:700;display:inline-flex}.settings-button{color:var(--ink);background:var(--surface);border:1px solid var(--line)}.google-button,.primary-button{color:#fff;background:var(--blue);box-shadow:0 10px 24px #1769e833}.secondary-button{color:var(--blue-dark);background:var(--soft-blue)}.google-g{color:#4285f4;background:#fff;border-radius:50%;place-items:center;width:1.25rem;height:1.25rem;font-weight:700;display:grid}.icon-button,.text-button{background:0 0;border:0}.icon-button{color:var(--muted);padding:.3rem;font-size:1.5rem;line-height:1}.welcome-card{text-align:center;max-width:640px;margin:10vh auto}.welcome-icon{width:70px;height:70px;color:var(--blue);background:var(--soft-blue-strong);border-radius:24px;place-items:center;margin:0 auto 2rem;display:grid}.welcome-icon .material-symbols-rounded{font-size:2rem}.week-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin:.5rem auto .65rem;display:flex}.week-label{text-align:center;flex:1;min-width:0}.week-label strong,.week-label span{display:block}.week-label strong{color:var(--ink);letter-spacing:-.035em;font-family:Fraunces,Georgia,serif;font-size:clamp(1.2rem,5vw,1.65rem)}.week-label span{color:var(--muted);margin-top:.18rem;font-size:.74rem}.week-progress{align-items:center;gap:.35rem;margin:0 0 1.25rem;display:flex}.progress-segment{background:#e5edf5;border-radius:999px;flex:1;height:7px}.progress-segment.complete{background:var(--blue)}.week-progress small{color:var(--muted);flex:none;margin-left:.45rem;font-size:.74rem}.alert,.loading-card{border-radius:16px;margin:1rem 0;padding:.85rem 1rem;font-size:.85rem}.error-alert{color:#9b3e50;background:#fff0f2}.notice-alert{color:var(--blue-dark);background:var(--soft-blue)}.snackbar{z-index:50;color:#fff;background:#1f5fbf;border:1px solid #ffffff47;border-radius:13px;align-items:center;gap:.55rem;width:max-content;max-width:min(100vw - 2rem,520px);padding:.8rem 1rem;font-size:.82rem;font-weight:700;animation:.2s ease-out snackbar-in;display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 14px 34px #13397040}.snackbar svg{color:#cfe4ff;flex:none}@keyframes snackbar-in{0%{opacity:0;transform:translate(-50%,.5rem)}to{opacity:1;transform:translate(-50%)}}.error-backdrop{place-items:center}.error-modal{width:min(100%,480px)}.error-modal-heading{align-items:center;gap:.7rem;display:flex}.error-modal-heading h2{font-size:clamp(1.2rem,3vw,1.55rem)}.error-modal-icon{color:#a4493d;background:#fff0ed;border-radius:14px;flex:none;place-items:center;width:42px;height:42px;display:grid}.error-modal-message{color:var(--ink);margin:1.1rem 0;font-size:.86rem;line-height:1.5}.loading-card{min-height:180px;color:var(--muted);background:var(--surface);border:1px solid var(--line);justify-content:center;align-items:center;gap:.7rem;display:flex}.spinner{border:2px solid #d8e6f6;border-top-color:var(--blue);border-radius:50%;width:18px;height:18px}.week-grid{gap:.85rem;padding-bottom:.5rem;display:grid}.day-card{border:1px solid var(--line);background:#ffffffed;border-radius:22px;min-width:0;padding:1.15rem;display:block;box-shadow:0 9px 25px #20436e09}.day-card.today{background:#f0f7ff;border-color:#bddaff;box-shadow:0 10px 28px #1769e814}.day-card.drop-target{border-color:var(--blue);box-shadow:0 0 0 3px #1769e829}.day-header{border-bottom:1px solid #dfe8f2;justify-content:space-between;align-items:flex-start;gap:1rem;min-height:0;padding:0 0 .8rem;display:flex}.day-heading-copy strong,.day-heading-copy small{text-transform:capitalize;display:block}.day-heading-copy strong{color:var(--ink);letter-spacing:-.025em;font-size:1.25rem}.day-card.today .day-heading-copy strong{color:var(--blue)}.day-heading-copy small{color:var(--muted);margin-top:.22rem;font-size:.8rem}.today-pill{color:#fff;background:var(--blue);border-radius:999px;flex:none;padding:.42rem .72rem;font-size:.74rem;font-weight:700}.day-options{flex-wrap:wrap;gap:.4rem;margin:.8rem 0 0;display:flex}.option-badge{border-radius:999px;align-items:center;gap:.25rem;width:fit-content;padding:.34rem .58rem;font-size:.68rem;font-weight:700;display:inline-flex}.option-symbol{font-size:.92rem}.day-note{color:var(--blue-dark);background:#ddedffb8;border-radius:14px;align-items:flex-start;gap:.65rem;margin:.8rem 0 0;padding:.72rem .8rem;display:flex}.day-note>.material-symbols-rounded{color:var(--blue);flex:none;margin-top:.12rem}.day-note strong,.day-note span{display:block}.day-note strong{font-size:.73rem}.day-note span{margin-top:.15rem;font-size:.8rem;line-height:1.35}.meal-list{gap:0;margin-top:.25rem;padding:0;display:grid}.meal-card{touch-action:pan-y;background:0 0;border:0;border-bottom:1px solid #e4ebf3;border-radius:0;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:.75rem;min-height:76px;padding:.8rem 0;display:grid}.meal-card:last-child{border-bottom:0}.meal-icon{width:38px;height:38px;color:var(--blue-dark);background:#e8f3ff;border-radius:50%;place-items:center;font-size:1.25rem;display:grid}.meal-content{min-width:0}.meal-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.meal-name{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;font-weight:700}.dish-list{gap:.18rem;margin-top:.18rem;display:grid}.dish-chip{width:100%;min-height:2.35rem;color:var(--ink);cursor:grab;text-overflow:ellipsis;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #0000;border-radius:10px;align-items:center;padding:.45rem .55rem;font-size:.94rem;font-weight:700;line-height:1.28;transition:background-color .15s,border-color .15s,transform .1s ease-out;display:flex;overflow:hidden}.dish-chip:hover{background:#f8fbff;border-color:#c9dced}.dish-chip:focus-visible{outline-offset:2px;outline:3px solid #3989cd59}.dish-chip:active{cursor:grabbing;transform:scale(.98)}@media (prefers-reduced-motion:reduce){.dish-chip{transition:background-color .15s,border-color .15s}.dish-chip:active{transform:none}}.meal-card.drop-target{background:var(--soft-blue);outline:2px dashed var(--blue);outline-offset:-2px;border-radius:14px}.meal-note{color:var(--muted);text-overflow:ellipsis;margin-top:.18rem;font-size:.76rem;line-height:1.35;display:block;overflow:hidden}.empty-meal{color:var(--blue);background:0 0;border:0;align-items:center;gap:.3rem;margin-top:.25rem;padding:0;font-size:.8rem;font-weight:700;display:inline-flex}.empty-meal .material-symbols-rounded{font-size:1.05rem}.edit-day{width:100%;color:var(--blue);text-align:left;background:0 0;border:0;border-top:1px solid #dfe8f2;align-items:center;gap:.4rem;margin-top:.75rem;padding:.65rem 0 0;font-size:.8rem;font-weight:700;display:inline-flex}.edit-day span{margin-left:auto}.modal-backdrop{z-index:10;background:#0d1e3985;border:0;place-items:end center;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid #ffffffa6;border-radius:25px;width:min(100%,620px);max-height:min(90vh,760px);padding:1.25rem;overflow:hidden;box-shadow:0 22px 70px #0d1e3940}.modal-header,.modal-footer,.editor-meal-heading{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.modal-header{border-bottom:1px solid var(--line);padding-bottom:1rem}.editor-scroll{max-height:58vh;padding:.75rem 0;overflow-y:auto}.editor-meal{border-bottom:1px solid var(--line);padding:1rem 0}.editor-meal-heading{color:var(--ink);font-size:.9rem;font-weight:700}.editor-meal-heading>span{align-items:center;gap:.25rem;display:inline-flex}.text-button{color:var(--blue);align-items:center;gap:.2rem;padding:.35rem 0;font-size:.78rem;font-weight:700;display:inline-flex}.text-button .material-symbols-rounded{font-size:1rem}.dish-input-row input,textarea,.inline-form input,.option-form input,.option-form select{width:100%;min-width:0;color:var(--ink);border:1px solid var(--line);background:#fbfdff;border-radius:11px;outline:none;padding:.75rem .8rem}.dish-input-row input:focus,textarea:focus,.inline-form input:focus,.option-form input:focus,.option-form select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1769e824}.remove-button{width:38px;min-width:38px;color:var(--danger);background:#fff0f2;border:0;border-radius:10px;place-items:center;padding:0;display:grid}.remove-button .material-symbols-rounded{font-size:1.1rem}.add-first-dish{width:100%;color:var(--blue);background:var(--soft-blue);border:1px dashed #afd2ff;border-radius:11px;margin:.8rem 0;padding:.75rem}.settings-page{max-width:980px;margin:auto;padding:2.5rem 1.15rem 6rem}.settings-content{max-width:720px;margin:0 auto}.settings-page-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2rem;display:flex}.meal-setting{background:var(--surface);border-color:var(--line);border-radius:15px}.meal-setting:has(input:checked){background:var(--soft-blue);border-color:#bddaff}.meal-setting input,.option-check input,.option-active input{accent-color:var(--blue)}.setting-icon,.checkmark{color:var(--blue)}.owner-pill{color:var(--blue-dark);background:var(--soft-blue)}.group-settings,.daily-option-manager,.reminder-settings{border-color:var(--line)}.option-active input{accent-color:var(--blue)}.inline-form input:focus,.option-form input:focus,.option-form select:focus{border-color:var(--blue)}@media (width<=620px){.topbar{min-height:66px;padding-inline:1rem}.user-name{display:none}main{padding:2rem 1rem 6rem}.page-heading{margin-bottom:.9rem}.page-heading .muted{font-size:.82rem}.week-toolbar{margin-top:.35rem}.round-button{width:38px;height:38px}.day-card{border-radius:19px;padding:1rem}.meal-card{min-height:72px}.modal-backdrop{padding:0}.modal-card{border-radius:25px 25px 0 0;max-height:94vh}.settings-page{padding:2rem 1rem 5rem}.settings-page-heading{align-items:flex-start}.settings-button span:last-child{display:none}.option-form-row{flex-wrap:wrap}.option-form-row select,.option-form-row input{min-width:42%}.option-admin-row{flex-wrap:wrap}.option-admin-row small{flex-basis:100%;order:3}.reminder-fields{grid-template-columns:1fr;gap:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}button:active{transform:none}}.ingredients-redesign-page{width:min(100%,1180px);padding-top:3.6rem}.ingredients-redesign-heading{margin-bottom:2rem}.ingredients-redesign-heading .secondary-button{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.ingredients-redesign-page .primary-button,.ingredient-editor-card .primary-button,.ingredient-stats-card .primary-button{color:#fff;background:var(--green);box-shadow:0 8px 20px #2c6b4c22}.ingredients-redesign-page .secondary-button,.ingredient-editor-card .secondary-button,.ingredient-stats-card .secondary-button{color:var(--green);background:var(--soft-green)}.ingredients-create-inline{margin:-.8rem 0 1.2rem}.ingredients-redesign-toolbar{align-items:stretch;margin:0 0 1.1rem}.ingredients-search-field{border-radius:12px;min-height:48px}.ingredient-table{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}.ingredient-table-head,.ingredient-table-row{grid-template-columns:minmax(250px,1.35fr) 90px 112px 64px 150px 76px 110px 58px;align-items:center;column-gap:.75rem;padding:0 1rem;display:grid}.ingredient-table-head{min-height:48px;color:var(--ink);border-bottom:1px solid var(--line);background:#fbfcfa;font-size:.72rem;font-weight:700}.ingredient-table-head small{color:var(--muted);font-size:.75rem}.ingredient-action-heading{text-align:center}.ingredient-table-row{border-bottom:1px solid var(--line);min-height:74px;transition:background .18s}.ingredient-table-row:last-child{border-bottom:0}.ingredient-table-row:hover{background:#fbfdfb}.ingredient-name-cell{align-items:center;gap:.7rem;min-width:0;display:flex}.ingredient-table-icon{width:44px;height:44px;color:var(--green);background:var(--soft-green);border-radius:12px;flex:none;place-items:center;display:grid}.ingredient-name-cell>div{min-width:0}.ingredient-name-cell strong,.ingredient-name-cell small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ingredient-name-cell strong{color:var(--ink);font-size:.86rem}.ingredient-name-cell small{color:var(--muted);margin-top:.25rem;font-size:.67rem}.ingredient-number-cell{gap:.2rem;display:grid}.ingredient-number-cell strong{color:var(--ink);font-size:.86rem}.ingredient-supermarket-cell{place-items:center;min-width:0;display:grid}.ingredient-supermarket-logo{border:1px solid var(--line);background:#fff;border-radius:9px;place-items:center;width:34px;height:34px;display:grid;overflow:hidden}.ingredient-supermarket-logo img{object-fit:contain;width:100%;height:100%;padding:.2rem}.ingredient-supermarket-logo img.supermarket-logo-dark{background:#17643a}.ingredient-editor-supermarket-select{width:100%;margin-top:.1rem}.ingredient-editor-supermarket-select select{font-size:.85rem}.ingredient-number-cell small{color:var(--muted);font-size:.65rem}.ingredient-shopping-cell,.ingredient-action-cell{place-items:center;display:grid}.ingredient-shopping-cell .ingredient-shopping-toggle,.ingredient-action-cell .ingredient-delete-button{margin:0}.ingredient-editor-card,.ingredient-stats-card{border-radius:18px;width:min(100%,620px);padding:1.35rem 1.5rem 1.1rem}.ingredient-editor-header,.ingredient-stats-header{padding-bottom:.85rem}.ingredient-editor-header h2,.ingredient-stats-header h2{font-size:1.75rem}.ingredient-editor-content{gap:1rem;padding:1.25rem 0 1.1rem;display:grid}.ingredient-editor-icon{width:64px;height:64px;color:var(--green);background:var(--soft-green);border-radius:17px;place-items:center;display:grid}.ingredient-editor-check{color:var(--ink);border:1px solid var(--line);background:#fbfcfa;border-radius:11px;align-items:flex-start;gap:.55rem;padding:.8rem;font-size:.75rem;display:flex}.ingredient-editor-check input{accent-color:var(--green);margin-top:.15rem}.ingredient-editor-check span{gap:.25rem;display:grid}.ingredient-editor-check small{color:var(--muted);font-size:.68rem;line-height:1.45}.ingredient-stats-scroll{max-height:min(58vh,560px);padding:1.2rem 0 1.1rem;overflow-y:auto}.ingredient-stats-hero{align-items:center;gap:.8rem;margin-bottom:1.1rem;display:flex}.ingredient-stats-icon{width:58px;height:58px;color:var(--green);background:var(--soft-green);border-radius:15px;flex:none;place-items:center;display:grid}.ingredient-stats-hero p{color:var(--muted);margin:.25rem 0 0;font-size:.76rem}.ingredient-stats-kpis{margin-bottom:1.2rem}.ingredient-stats-dishes{gap:.45rem;display:grid}.ingredient-stats-dish{color:var(--ink);background:#fbfcfa;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.65rem;font-size:.75rem;display:grid}.ingredient-stats-dish-icon{width:30px;height:30px;color:var(--green);background:var(--soft-green);border-radius:8px;place-items:center;display:grid}.ingredient-stats-dish strong{color:var(--muted);font-size:.68rem}.ingredient-stats-empty{padding:1rem 0;display:block}.ingredient-pagination{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;font-size:.74rem;display:flex}@media (width<=820px){.ingredients-redesign-page{width:min(100%,980px)}.ingredient-table{overflow-x:auto}.ingredient-table-head,.ingredient-table-row{min-width:1160px}}@media (width<=640px){.ingredients-redesign-page{padding-top:2rem}.ingredients-redesign-heading{flex-direction:column;align-items:flex-start;gap:1rem}.ingredients-redesign-heading .secondary-button{justify-content:center;width:100%}.ingredients-redesign-toolbar{flex-direction:column;align-items:stretch}.ingredients-redesign-toolbar .select-field{width:100%}.ingredient-pagination{flex-direction:column;align-items:flex-start}.ingredient-table{background:0 0;border:0;overflow:visible}.ingredient-table-head{display:none}.ingredient-table-row{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name name name""dishes usage market""shopping shopping shopping""edit stats delete";gap:.7rem .6rem;min-width:0;min-height:0;margin-bottom:.75rem;padding:.9rem;display:grid}.ingredient-table-row:last-child{border-bottom:1px solid var(--line)}.ingredient-name-cell{grid-area:name}.ingredient-dishes-cell{grid-area:dishes}.ingredient-usage-cell{grid-area:usage}.ingredient-supermarket-cell{grid-area:market}.ingredient-shopping-cell{grid-area:shopping;justify-items:stretch}.ingredient-shopping-cell .ingredient-shopping-toggle{justify-content:center;width:100%}.ingredient-action-cell{justify-items:stretch}.ingredient-action-cell:nth-last-child(3){grid-area:edit}.ingredient-action-cell:nth-last-child(2){grid-area:stats}.ingredient-action-cell:last-child{grid-area:delete}.ingredient-action-cell .table-action-button,.ingredient-action-cell .ingredient-delete-button{width:100%;min-height:38px}.ingredient-number-cell{border:1px solid var(--line);background:#fbfcfa;border-radius:10px;min-width:3.6rem;padding:.45rem .55rem}.ingredient-editor-card,.ingredient-stats-card{padding:1rem}}.dishes-redesign-page{width:min(100%,1180px);padding-top:3.6rem}.dishes-page-heading{margin-bottom:2rem}.dishes-page-heading h1{font-size:clamp(2.8rem,5vw,4.2rem)}.dishes-page-heading .muted{max-width:39rem}.dishes-page-heading .primary-button{white-space:nowrap;align-items:center;gap:.45rem;display:inline-flex}.dishes-redesign-page .primary-button,.dish-editor-card .primary-button,.dish-stats-card .primary-button,.dish-recipe-card .primary-button{color:#fff;background:var(--green);box-shadow:0 8px 20px #2c6b4c22}.dishes-redesign-page .secondary-button,.dish-editor-card .secondary-button,.dish-stats-card .secondary-button,.dish-recipe-card .secondary-button{color:var(--green);background:var(--soft-green)}.dishes-create-inline{margin:-.8rem 0 1.2rem}.dish-create-type-field,.dish-create-category-field{flex:0 0 170px;min-height:38px}.dishes-toolbar{align-items:stretch;margin:0 0 1.1rem}.dishes-search-field{border-radius:12px;min-height:48px}.select-field{min-width:170px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;display:inline-flex;position:relative}.select-field select{width:100%;min-height:46px;color:var(--ink);appearance:none;background:0 0;border:0;outline:0;padding:0 2rem 0 .85rem;font-size:.76rem;font-weight:600}.select-field svg{pointer-events:none;color:var(--muted);position:absolute;right:.7rem}.dish-table{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}.dish-table-head,.dish-table-row{grid-template-columns:minmax(280px,1.6fr) minmax(210px,1.25fr) minmax(140px,.85fr) 88px 118px 64px;align-items:center;column-gap:.9rem;padding:0 1rem;display:grid}.dish-table-head{min-height:48px;color:var(--ink);border-bottom:1px solid var(--line);background:#fbfcfa;font-size:.72rem;font-weight:700}.dish-table-head small{color:var(--muted);font-size:.75rem}.dish-action-heading,.dish-favorite-heading{text-align:center}.dish-favorite-heading{color:var(--green)}.dish-table-row{border-bottom:1px solid var(--line);min-height:74px;transition:background .18s}.dish-table-row:last-child{border-bottom:0}.dish-table-row:not(.dish-table-skeleton):hover{background:#fbfdfb}.dish-name-cell,.dish-ingredients-cell{align-items:center;min-width:0;display:flex}.dish-name-cell{gap:.72rem}.dish-name-cell>div:last-child{min-width:0}.dish-name-cell strong,.dish-name-cell small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dish-name-cell strong{color:var(--ink);font-size:.86rem}.dish-name-cell small{color:var(--muted);margin-top:.25rem;font-size:.67rem}.dish-table-photo{width:52px;height:52px;color:var(--green);background:var(--soft-green);border-radius:12px;flex:none;place-items:center;display:grid;overflow:hidden}.dish-table-photo img{object-fit:cover;width:100%;height:100%;display:block}.dish-ingredients-cell{flex-wrap:wrap;gap:.35rem}.ingredient-pill{color:#55705c;text-overflow:ellipsis;white-space:nowrap;background:#eef4ee;border-radius:7px;max-width:9rem;padding:.3rem .48rem;font-size:.65rem;overflow:hidden}.ingredient-pill-more{color:var(--muted);background:#f3f5f2}.purchased-pill{color:#7a5a2c;background:#fbf2df}.dish-recipe-cell{align-items:center;min-width:0;display:flex}.recipe-read-button{min-height:34px;color:var(--green);background:var(--soft-green);white-space:nowrap;border:1px solid #c4d9c5;border-radius:9px;align-items:center;gap:.4rem;padding:.45rem .65rem;font-size:.68rem;font-weight:700;display:inline-flex}.recipe-read-button:hover,.recipe-read-button:focus-visible{background:#e6f0e6;border-color:#9fbea3}.dish-action-cell{place-items:center;display:grid}.table-action-button{width:36px;height:36px;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:10px;place-items:center;display:grid}.table-action-button:hover,.table-action-button:focus-visible{color:var(--green);border-color:#b8d1bc;box-shadow:0 0 0 3px #2c6b4c18}.table-favorite-button{color:#78877d}.table-favorite-button.active,.table-favorite-button:hover{color:#4f7a56;background:#eff6ef}.dish-pagination{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;font-size:.74rem;display:flex}.pagination-controls{align-items:center;gap:.35rem;display:flex}.pagination-button{min-width:34px;height:34px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;padding:0 .45rem;font-size:.75rem;display:grid}.pagination-button:hover:not(:disabled){border-color:var(--line);background:var(--surface)}.pagination-button.active{color:#fff;background:var(--green)}.pagination-button:disabled{color:#b7c0b9;cursor:not-allowed}.dish-table-skeleton{gap:1rem}.dish-table-skeleton .skeleton-line{border-radius:5px;height:.7rem}.dish-table-skeleton .skeleton-dish-photo{width:52px;height:52px}.dish-modal-backdrop{background:#17231f7a;place-items:center;padding:1.25rem}.dish-editor-card,.dish-stats-card,.dish-recipe-card{border-radius:18px;width:min(100%,720px);padding:1.35rem 1.5rem 1.1rem}.dish-stats-card{width:min(100%,700px)}.dish-recipe-card{width:min(100%,640px)}.dish-editor-header,.dish-stats-header,.dish-recipe-header{padding-bottom:.85rem}.dish-editor-header h2,.dish-stats-header h2,.dish-recipe-header h2{font-size:1.75rem}.dish-editor-tabs{border-bottom:1px solid var(--line);gap:1.25rem;display:flex}.dish-editor-tabs button{min-height:48px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:.35rem;padding:0;font-size:.76rem;font-weight:600;display:inline-flex}.dish-editor-tabs button.active,.dish-editor-tabs button:hover{color:var(--green);border-bottom-color:var(--green)}.dish-editor-scroll,.dish-stats-scroll,.dish-recipe-scroll{max-height:min(56vh,540px);padding:1.2rem 0 1.1rem;overflow-y:auto}.dish-recipe-scroll{max-height:min(58vh,560px)}.dish-recipe-meta{color:var(--muted);align-items:center;gap:.7rem;margin-bottom:1rem;font-size:.72rem;display:flex}.dish-recipe-text{color:var(--ink);border:1px solid var(--line);white-space:pre-wrap;background:#fbfcfa;border-radius:12px;margin:0;padding:1rem 1.05rem;font-size:.84rem;line-height:1.7}.dish-editor-photo-layout{grid-template-columns:minmax(220px,.9fr) minmax(250px,1fr);gap:1.35rem;display:grid}.dish-editor-photo-column,.dish-editor-fields{align-content:start;gap:.75rem;display:grid}.field-kicker,.stats-category{color:var(--green);letter-spacing:.1em;text-transform:uppercase;font-size:.66rem;font-weight:700}.dish-editor-photo{width:100%;min-height:220px;color:var(--green);background:#f0f5f0;border-radius:13px;place-items:center;display:grid;overflow:hidden}.dish-editor-photo-shell{border-radius:13px;position:relative;overflow:hidden}.dish-editor-photo-shell.uploading .dish-editor-photo{filter:saturate(.72)brightness(.82)}.dish-photo-upload-overlay{color:#fff;text-align:center;background:#1c292594;place-content:center;justify-items:center;gap:.45rem;padding:1rem;display:grid;position:absolute;inset:0}.dish-photo-upload-overlay .spinner{border-color:#fff #ffffff6b #ffffff6b;width:26px;height:26px}.dish-photo-upload-overlay strong{font-size:.82rem}.dish-photo-upload-overlay small{opacity:.86;font-size:.68rem}.dish-editor-photo img{object-fit:cover;width:100%;height:260px;display:block}.photo-upload-button{min-height:40px;color:var(--green);cursor:pointer;background:#fff;border:1px solid #adc8b1;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.6rem .8rem;font-size:.75rem;font-weight:700;display:inline-flex}.photo-upload-button.uploading{cursor:wait;color:var(--muted);background:#f6f8f6}.photo-upload-button .spin-icon{animation:.8s linear infinite spin}.photo-upload-button input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.photo-remove-button{color:#9a4e4e;background:#fff7f6;border:1px solid #e6c8c8;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;min-height:38px;padding:.55rem .8rem;font-size:.72rem;font-weight:700;display:inline-flex}.dish-purchased-notice{min-height:260px;color:var(--green);text-align:center;background:#f5f8f5;border-radius:12px;align-content:center;place-items:center;padding:2rem;display:grid}.dish-purchased-notice h3{color:var(--ink);margin:.8rem 0 .4rem}.dish-purchased-notice p{max-width:30rem;color:var(--muted);margin:0;font-size:.8rem;line-height:1.5}.dish-purchased-help{color:#7a5a2c;background:#fbf2df;border-radius:10px;align-items:flex-start;gap:.45rem;margin:0;padding:.7rem .75rem;font-size:.72rem;line-height:1.45;display:flex}.field-label{color:var(--ink);gap:.4rem;font-size:.76rem;font-weight:600;display:grid}.field-label input,.field-label select,.field-label textarea{width:100%;color:var(--ink);border:1px solid var(--line);resize:vertical;background:#fbfcfa;border-radius:9px;outline:0;padding:.7rem .75rem;font-size:.82rem;font-weight:400}.field-label input:focus,.field-label select:focus,.field-label textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #2c6b4c18}.dish-editor-check{color:var(--ink);align-items:center;gap:.45rem;margin-top:.2rem;font-size:.76rem;display:flex}.dish-editor-check input{accent-color:var(--green)}.field-help{color:var(--muted);margin:0;font-size:.68rem;line-height:1.45}.dish-editor-tab-content{min-height:260px}.dish-tab-intro,.stats-section-heading,.stats-hero{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.dish-tab-intro h3,.dish-stats-scroll h3{color:var(--ink);margin:.3rem 0 0;font-size:1rem}.dish-tab-intro+.muted{margin:.7rem 0 1rem;font-size:.78rem}.dish-editor-footer,.dish-stats-footer{border-top:1px solid var(--line);padding-top:.9rem}.dish-editor-footer .primary-button,.dish-stats-footer .primary-button{align-items:center;gap:.35rem;display:inline-flex}.stats-hero{border-bottom:1px solid var(--line);align-items:center;margin-bottom:1.35rem;padding:.3rem 0 .8rem}.dish-stats-photo{width:68px;height:68px;color:var(--green);background:var(--soft-green);border-radius:12px;flex:none;place-items:center;display:grid;overflow:hidden}.dish-stats-photo img{object-fit:cover;width:100%;height:100%}.stats-hero>div:nth-child(2){flex:1}.stats-hero p{color:var(--muted);margin:.35rem 0 0;font-size:.76rem}.stats-heart{color:#5b815f}.dish-rating-card{background:#f7faf7;border:1px solid #dce8dd;border-radius:13px;margin:0 0 1.35rem;padding:1rem}.dish-rating-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.dish-rating-heading h3{margin-top:.25rem}.dish-rating-heading p:not(.field-kicker){color:var(--muted);margin:.35rem 0 0;font-size:.72rem;line-height:1.45}.dish-rating-summary{text-align:right;border-left:1px solid #dce8dd;flex:none;min-width:110px;padding-left:1rem}.dish-rating-summary strong{color:var(--ink);font-size:1.45rem;line-height:1;display:block}.dish-rating-summary strong small{color:var(--muted);margin-left:.12rem;font-size:.72rem;font-weight:600}.dish-rating-summary span,.dish-rating-summary>small{color:var(--muted);font-size:.63rem;display:block}.dish-rating-summary span{color:var(--green);margin-top:.35rem;font-weight:700}.dish-rating-summary>small{margin-top:.18rem}.dish-rating-control{border-top:1px solid #dce8dd;flex-wrap:wrap;align-items:center;gap:.55rem .8rem;margin-top:1rem;padding-top:.85rem;display:flex}.dish-rating-stars{align-items:center;gap:.12rem;display:inline-flex}.dish-rating-star{color:#9eb1a0;cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;width:34px;height:34px;padding:0;transition:color .14s,background-color .14s,transform .14s;display:inline-grid}.dish-rating-star:hover,.dish-rating-star:focus-visible,.dish-rating-star.active{color:#d99831}.dish-rating-star:hover,.dish-rating-star:focus-visible{background:#f1e8d8;transform:translateY(-1px)}.dish-rating-star:disabled{cursor:wait;opacity:.62}.dish-rating-mine,.dish-rating-saving{color:var(--muted);font-size:.69rem}.dish-rating-mine{font-weight:600}.dish-rating-saving{margin-left:auto}.stats-kpi-grid{grid-template-columns:repeat(4,1fr);gap:.55rem;margin:.9rem 0 1.5rem;display:grid}.stats-kpi{border:1px solid var(--line);border-radius:10px;min-width:0;padding:.8rem .75rem}.stats-kpi span,.stats-kpi small{color:var(--muted);font-size:.64rem;line-height:1.3;display:block}.stats-kpi strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:.6rem 0 .2rem;font-size:1.15rem;display:block;overflow:hidden}.stats-section{margin-top:1.4rem}.stats-section-heading{align-items:baseline}.stats-section-heading span{color:var(--muted);font-size:.67rem}.stats-chart{background:#fff;border-bottom:1px solid #b8c7bb;justify-content:space-between;align-items:end;height:150px;margin-top:.8rem;padding:.75rem .4rem 0;display:flex}.stats-chart-column{flex-direction:column;flex:1;justify-content:end;align-items:center;gap:.35rem;height:100%;display:flex}.stats-chart-bar{background:#8cab91;border-radius:5px 5px 0 0;width:min(22px,52%);min-height:7px;display:block}.stats-chart-column small{color:var(--muted);font-size:.59rem}.stats-breakdown{gap:.7rem;margin-top:.85rem;display:grid}.stats-breakdown-row{color:var(--ink);grid-template-columns:110px 1fr 38px;align-items:center;gap:.55rem;font-size:.74rem;display:grid}.stats-breakdown-row strong{text-align:right;font-size:.72rem}.stats-breakdown-track{background:#edf2ed;border-radius:99px;height:9px;overflow:hidden}.stats-breakdown-track i{border-radius:inherit;background:#86a78b;height:100%;display:block}.stats-extra{grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1.5rem;display:grid}.stats-extra>div{color:var(--green);background:#f5f8f5;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:.45rem;padding:.75rem;font-size:.68rem;display:grid}.stats-extra span{color:var(--muted)}.stats-extra strong{color:var(--ink);font-size:.74rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=820px){.dishes-redesign-page{width:min(100%,980px)}.dish-table{overflow-x:auto}.dish-table-head,.dish-table-row{min-width:1010px}}@media (width<=640px){.dishes-redesign-page{padding-top:2rem}.dishes-page-heading{flex-direction:column;align-items:flex-start;gap:1rem}.dishes-page-heading .primary-button{justify-content:center;width:100%}.dishes-toolbar{flex-direction:column}.dishes-create-inline{flex-wrap:wrap}.dishes-create-inline input{flex:calc(100% - 2rem)}.dish-create-type-field,.dish-create-category-field{flex:100%}.select-field{width:100%}.dish-pagination{flex-direction:column;align-items:flex-start}.dish-editor-card,.dish-stats-card,.dish-recipe-card{padding:1rem}.dish-editor-tabs{gap:.9rem;overflow-x:auto}.dish-editor-tabs button{flex:none}.dish-editor-photo-layout,.stats-kpi-grid,.stats-extra{grid-template-columns:1fr 1fr}.dish-rating-heading{flex-direction:column}.dish-rating-summary{text-align:left;border-top:1px solid #dce8dd;border-left:0;width:100%;padding:.7rem 0 0}.dish-rating-summary strong,.dish-rating-summary span,.dish-rating-summary>small{margin-right:.4rem;display:inline-block}.dish-rating-summary span,.dish-rating-summary>small{margin-top:0}.dish-rating-saving{margin-left:0}.dish-editor-photo-layout{grid-template-columns:1fr}.stats-kpi strong{font-size:.95rem}}@media (prefers-reduced-transparency:reduce){.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#f6f9fd}}@media (prefers-contrast:more){.topbar,.day-card,.meal-card,.meal-setting,.modal-card{border-color:#6d7e97}.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}}.meal-alert-list{gap:.65rem;display:grid}.meal-alert-row{border:1px solid var(--line);background:#fbfdff;border-radius:12px;padding:.7rem}.meal-alert-row .reminder-check{background:0 0;border:0;padding:0}.meal-alert-meta{color:var(--blue-dark,var(--green));justify-content:flex-end;align-items:center;gap:.6rem;margin-top:.4rem;font-size:.75rem;font-weight:700;display:flex}.meal-alert-meta .remove-button{width:30px;min-width:30px;height:30px}.send-alert-button{color:var(--accent,#2457d6);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.25rem;padding:0;font-size:.76rem;display:inline-flex}.send-alert-button:disabled{opacity:.55;cursor:wait}.alert-variable-hint{color:var(--muted,#6b7280);margin:-.45rem 0 .15rem;font-size:.78rem}.alert-variable-hint code{color:inherit;font-size:.75rem}.alert-message{color:var(--muted);margin:.45rem 0 0;font-size:.75rem;line-height:1.35}.add-alert-button{width:100%;color:var(--blue,var(--green));background:var(--soft-blue,var(--soft-green));border:1px dashed #afd2ff;border-radius:11px;align-items:center;gap:.3rem;margin-top:.7rem;padding:.7rem;font-size:.78rem;font-weight:700;display:inline-flex}.global-alert-manager{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.2rem}.global-alert-manager .muted{margin:.65rem 0 .9rem;font-size:.8rem}.alert-form{gap:.6rem;margin:.8rem 0 1rem;display:grid}.alert-form>input,.alert-form select,.alert-form input[type=number]{width:100%;min-width:0;color:var(--ink);border:1px solid var(--line);background:#fbfdff;border-radius:10px;outline:none;padding:.7rem .75rem}.alert-form input:focus,.alert-form select:focus{border-color:var(--blue,var(--green));box-shadow:0 0 0 3px #1769e824}.alert-form-row{align-items:center;gap:.6rem;display:flex}.alert-form-row .field-label{flex:1;padding-top:0}.alert-form-row .option-active{flex:1}.alert-order{max-width:100px}.alert-admin-list{gap:.5rem;display:grid}.alert-admin-row{border:1px solid var(--line);background:var(--surface,#fff);border-radius:11px;align-items:center;gap:.55rem;padding:.65rem .7rem;display:flex}.alert-admin-row>div{flex:1;min-width:0}.alert-admin-row strong,.alert-admin-row small{display:block}.alert-admin-row strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.alert-admin-row small{color:var(--muted);margin-top:.15rem;font-size:.7rem}@media (width<=520px){.alert-form-row{flex-wrap:wrap}.alert-form-row .field-label,.alert-form-row .option-active{flex-basis:calc(50% - .3rem)}.alert-order{max-width:none}}.settings-tabs{background:var(--surface,#fff);border:1px solid var(--line);border-radius:15px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.45rem;margin-bottom:1.25rem;padding:.35rem;display:grid}.settings-tab{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:.35rem;padding:.65rem .55rem;font-size:.77rem;font-weight:700;display:inline-flex}.settings-tab:hover{color:var(--blue,var(--green));background:var(--soft-blue,var(--soft-green))}.settings-tab.active{color:var(--blue-dark,var(--green));background:var(--soft-blue,var(--soft-green));box-shadow:inset 0 0 0 1px #bddaff}.notification-menu,.notification-trigger{position:relative}.notification-badge{color:#fff;background:#e05b55;border:2px solid #f6f9fd;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 .2rem;font-size:.6rem;font-weight:800;line-height:1;display:grid;position:absolute;top:-2px;right:-2px}.notifications-panel{z-index:20;background:var(--surface,#fff);border:1px solid var(--line);border-radius:17px;width:min(390px,100vw - 2rem);position:absolute;top:calc(100% + .7rem);right:0;overflow:hidden;box-shadow:0 18px 45px #1f3a5f2e}.notifications-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:.7rem;padding:.9rem 1rem;display:flex}.notifications-header strong,.notifications-header small{display:block}.notifications-header strong{color:var(--ink);font-size:.88rem}.notifications-header small{color:var(--muted);margin-top:.2rem;font-size:.7rem}.notifications-header .text-button{text-align:right;font-size:.68rem}.notification-list{max-height:min(62vh,440px);display:grid;overflow-y:auto}.notification-item{border-bottom:1px solid #edf2f7;align-items:flex-start;gap:.7rem;padding:.85rem 1rem;display:flex}.notification-item:last-child{border-bottom:0}.notification-item.unread{background:#f2f7ff}.notification-copy{flex:1;min-width:0}.notification-copy strong,.notification-copy small{display:block}.notification-copy strong{color:var(--ink);font-size:.76rem;font-weight:700;line-height:1.35}.notification-copy small{color:var(--muted);margin-top:.28rem;font-size:.67rem}.notification-item .text-button{flex:none;padding:.1rem 0;font-size:.67rem}.notifications-empty{color:var(--muted);text-align:center;padding:1.5rem 1rem;font-size:.78rem}.notification-settings{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.2rem}.notification-settings>.muted{margin:.65rem 0 .9rem;font-size:.8rem}.notification-master{background:var(--soft-blue,#eef5ff);border:1px solid #d4e5fb;border-radius:12px;align-items:center;gap:.65rem;padding:.8rem;display:flex}.notification-master input,.notification-type-option input{accent-color:var(--blue,var(--green))}.notification-master span,.notification-master strong,.notification-master small{display:block}.notification-master strong{color:var(--ink);font-size:.78rem}.notification-master small{color:var(--muted);margin-top:.18rem;font-size:.68rem}.notification-type-list{gap:.45rem;margin:1rem 0;display:grid}.notification-type-list>.field-label{padding:0 0 .15rem}.notification-type-option{color:var(--ink);align-items:center;gap:.5rem;font-size:.75rem;display:flex}.day-alert-icons{color:var(--blue,var(--green));background:var(--soft-blue,var(--soft-green));border-radius:999px;align-items:center;gap:.25rem;margin-left:.7rem;padding:.3rem .45rem;display:inline-flex}.meal-alert-time{align-items:center;gap:.25rem;display:inline-flex}.alert-admin-title{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:.4rem;display:grid}.alert-admin-title svg{grid-row:1/span 2}.alert-admin-title strong,.alert-admin-title small{grid-column:2}@media (width<=520px){.notifications-panel{width:calc(100vw - 2rem);position:fixed;top:66px;right:1rem}}.settings-content>.modal-footer{border-top:1px solid var(--line);margin-top:1.5rem}@media (width<=560px){.settings-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-tab{justify-content:flex-start;padding-inline:.75rem}}.edit-day svg{margin-left:auto}.meal-more-options summary:before{content:none!important}.reminder-check input{accent-color:var(--blue)}.settings-page{padding-top:2.5rem}.settings-content{max-width:820px}.settings-tabs{margin-bottom:1rem;box-shadow:0 8px 24px #20436e0a}.settings-tab-panel,.settings-section-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1.35rem;box-shadow:0 10px 28px #20436e0b}.settings-tab-panel{min-height:0}.settings-tab-panel .meal-settings{margin:0}.calendar-export-settings{margin-top:1rem}.calendar-export-settings>.muted{margin:.55rem 0 1.1rem;font-size:.82rem}.meal-time-settings{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.calendar-export-button{align-items:center;gap:.45rem;display:inline-flex}.calendar-feed-link-box{gap:.75rem;display:grid}.calendar-feed-link-box input{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-feed-actions{flex-wrap:wrap;gap:.55rem;display:flex}.calendar-feed-actions a{text-decoration:none}.calendar-export-settings>.calendar-export-note{margin-top:.7rem;display:block}.settings-note{margin:1rem 0 0}.global-alert-manager,.notification-settings,.daily-option-manager{border-top:0;margin-top:0;padding-top:1.35rem}.options-settings{gap:1rem;display:grid}.options-settings>.daily-option-manager{margin-top:0}.section-heading h3{color:var(--ink);letter-spacing:-.02em;font-size:1.15rem}.global-alert-manager>.muted,.daily-option-manager>.muted,.notification-settings>.muted{margin:.55rem 0 1.1rem;font-size:.82rem}.alert-form,.option-form{background:#f8fbff;border:1px solid #dfeaf7;border-radius:16px;margin:0;padding:1rem}.alert-form{gap:.85rem}.alert-form-primary,.option-form-primary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.alert-form-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:.75rem;display:grid}.alert-form-row .field-label{padding-top:0}.alert-form-settings{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(90px,.45fr)}.field-label{color:var(--ink);padding-top:0;font-size:.76rem}.field-label>input,.field-label>select{margin-top:.1rem}.field-hint{color:var(--muted);font-size:.68rem;font-weight:500}.settings-page .field-label>input,.settings-page .field-label>select,.settings-page .field-label>textarea,.editor-scroll .field-label>input,.editor-scroll .field-label>select,.editor-scroll .field-label>textarea{width:100%;min-height:44px;color:var(--ink);font:inherit;background:#fff;border:1px solid #cfdbea;border-radius:12px;outline:none;margin-top:.1rem;padding:.75rem .85rem;font-size:.88rem;font-weight:500;line-height:1.25;transition:border-color .18s,box-shadow .18s,background .18s;box-shadow:inset 0 1px 2px #20436e09}.settings-page .field-label>textarea,.editor-scroll .field-label>textarea{resize:vertical;min-height:76px}.settings-page .field-label>input::placeholder,.settings-page .field-label>textarea::placeholder,.editor-scroll .field-label>input::placeholder,.editor-scroll .field-label>textarea::placeholder{color:#8796aa;opacity:1}.settings-page .field-label>input:focus,.settings-page .field-label>select:focus,.settings-page .field-label>textarea:focus,.editor-scroll .field-label>input:focus,.editor-scroll .field-label>select:focus,.editor-scroll .field-label>textarea:focus{background:#fff;border-color:#76aef1;box-shadow:0 0 0 3px #1769e821,inset 0 1px 2px #20436e09}.settings-page .field-label>input:hover,.settings-page .field-label>select:hover,.settings-page .field-label>textarea:hover,.editor-scroll .field-label>input:hover,.editor-scroll .field-label>select:hover,.editor-scroll .field-label>textarea:hover{border-color:#aec5df}.settings-page input[type=time]::-webkit-calendar-picker-indicator{opacity:.65;cursor:pointer}.editor-scroll input[type=time]::-webkit-calendar-picker-indicator{opacity:.65;cursor:pointer}.alert-form input,.alert-form select,.option-form input,.option-form select{background:#fff;border-color:#d8e5f2;min-height:44px}.alert-form .primary-button,.option-form .primary-button{width:100%}.icon-picker-field{gap:.35rem}.icon-picker{background:#fff;border:1px solid #d8e5f2;border-radius:13px;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:.45rem;padding:.65rem;display:grid}.icon-choice{color:#6680a3;background:#f5f8fc;border:1px solid #0000;border-radius:10px;place-items:center;width:100%;min-height:42px;padding:0;transition:color .18s,background .18s,border-color .18s,transform .18s;display:grid}.icon-choice:hover,.icon-choice:focus-visible{color:var(--blue);background:var(--soft-blue);border-color:#bddaff;outline:none}.icon-choice.selected{color:var(--blue-dark);background:var(--soft-blue-strong);border-color:#7eb5fa;box-shadow:0 0 0 2px #1769e81f}.icon-choice:active{transform:scale(.94)}.option-form-row{grid-template-columns:minmax(0,1fr) auto minmax(90px,.4fr);align-items:end;gap:.75rem;display:grid}.option-form-row .field-label{padding-top:0}.option-form-row>input{min-height:44px}.option-active{min-height:44px;color:var(--ink);background:#fff;border:1px solid #d8e5f2;border-radius:11px;align-self:end;padding:.7rem .8rem}.alert-form-settings .option-active{height:44px;min-height:44px;padding-block:0}.option-admin-list,.alert-admin-list{margin-top:1rem}.option-admin-row,.alert-admin-row{background:#fff;border-color:#dce7f2;border-radius:13px;padding:.75rem}.option-admin-row small,.alert-admin-row small{line-height:1.35}.alert-admin-row{gap:.7rem}.alert-admin-row-open{border-bottom-color:#0000;border-radius:13px 13px 0 0}.alert-accordion-panel{background:#fff;border:1px solid #dce7f2;border-top:0;border-radius:0 0 13px 13px;margin-top:-.5rem;padding:.75rem}.alert-accordion-panel .alert-form{margin:0}.alert-admin-icon{width:38px;height:38px;color:var(--blue);background:var(--soft-blue);border-radius:11px;flex:0 0 38px;place-items:center;display:grid}.alert-admin-title{flex:1}.alert-admin-title>svg{display:none}.notification-master{background:var(--soft-blue);border-color:#cfe2fa;padding:.9rem}.notification-type-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:1.15rem 0}.notification-type-option{border:1px solid var(--line);background:#fbfdff;border-radius:11px;padding:.65rem .75rem}@media (width<=620px){.settings-page{padding-top:1.5rem}.settings-section-card,.settings-tab-panel{border-radius:17px;padding:1rem}.alert-form-primary,.option-form-primary,.alert-form-row,.alert-form-settings,.meal-time-settings,.option-form-row{grid-template-columns:1fr}.alert-order{max-width:none}.notification-type-list{grid-template-columns:1fr}.icon-picker{grid-template-columns:repeat(7,minmax(0,1fr))}.icon-choice{min-height:38px}}.telegram-page{max-width:720px;margin:0 auto;padding:0 1.15rem 5rem}.telegram-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1.35rem;box-shadow:0 10px 26px #20436e0a}.telegram-card-heading{align-items:center;gap:.8rem;display:flex}.telegram-card-heading h2{color:var(--ink);letter-spacing:-.035em;margin-top:.15rem;font-family:Fraunces,Georgia,serif;font-size:1.65rem}.telegram-logo{color:#168dcc;background:#e4f5ff;border-radius:16px;place-items:center;width:52px;height:52px;display:grid}.telegram-card>.muted{margin:.9rem 0 1.15rem;font-size:.84rem;line-height:1.5}.telegram-unavailable,.telegram-connected{border-radius:13px;align-items:center;gap:.65rem;padding:.85rem;display:flex}.telegram-unavailable{color:#8b5d13;background:#fff8e8;border:1px solid #f2dfab}.telegram-unavailable div,.telegram-connected div{min-width:0}.telegram-unavailable strong,.telegram-unavailable span,.telegram-connected strong,.telegram-connected small{display:block}.telegram-unavailable strong,.telegram-connected strong{color:var(--ink);font-size:.8rem}.telegram-unavailable span,.telegram-connected small{color:var(--muted);margin-top:.18rem;font-size:.7rem}.telegram-connected{color:#168dcc;background:#effaff;border:1px solid #bfeafa}.telegram-status-dot{background:#32b67a;border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 4px #32b67a21}.telegram-actions{flex-wrap:wrap;gap:.65rem;margin-top:.75rem;display:flex}.telegram-help,.telegram-expiry{color:var(--muted);margin:.8rem 0 0;font-size:.7rem;display:block}.telegram-help code{color:var(--blue-dark);background:var(--soft-blue);border-radius:5px;padding:.12rem .3rem}.telegram-steps{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1rem 0 1.1rem;display:grid}.telegram-steps span{color:var(--muted);align-items:center;gap:.4rem;font-size:.7rem;line-height:1.25;display:flex}.telegram-steps b{color:#168dcc;background:#e4f5ff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:.7rem;display:grid}.telegram-connect-button{background:#168dcc;justify-content:center;width:100%}@media (width<=520px){.telegram-page{padding-inline:1rem}.telegram-steps{grid-template-columns:1fr;gap:.7rem}}.telegram-reminder-button{color:#168dcc;background:#e4f5ff;border:1px solid #bfeafa;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.8rem 1.1rem;font-weight:600;display:inline-flex}.telegram-reminder-button:disabled{cursor:wait;opacity:.65}@media (width<=560px){.modal-footer{flex-wrap:wrap}.modal-footer .telegram-reminder-button{flex:1 0 100%}.modal-footer button{min-width:0}}.shared-day-page{max-width:720px;margin:0 auto}.shared-day-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:clamp(1.25rem,4vw,2rem);box-shadow:0 12px 30px #20436e0f}.shared-day-error{text-align:center}.shared-day-error .muted{margin-bottom:0}.day-editor-card{width:min(100%,860px);max-height:min(92vh,900px);padding:clamp(1.25rem,3vw,2rem)}.day-editor-card .modal-header{align-items:flex-start;padding-bottom:1.35rem}.day-editor-card .modal-header h2{max-width:12ch;color:var(--ink);font-size:clamp(2rem,5vw,3.55rem);line-height:.96}.day-editor-card .editor-scroll{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;max-height:min(66vh,620px);padding:1.25rem 0 1rem;display:grid}.day-editor-card .editor-options,.day-editor-card .day-notes-field{grid-column:1/-1}.day-editor-card .editor-options{background:#f8fbff;border:1px solid #dce8f5;border-radius:17px;margin:0 0 .1rem;padding:1rem 1.1rem}.editor-section-heading,.more-options-section-heading{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.editor-section-heading strong,.editor-section-heading small,.more-options-section-heading strong,.more-options-section-heading small{display:block}.editor-section-kicker{color:var(--blue);letter-spacing:.12em;margin-bottom:.18rem;font-size:.62rem;font-weight:800;display:block}.editor-section-heading strong,.more-options-section-heading strong{color:var(--ink);font-size:.83rem}.editor-section-count,.more-options-section-heading small{color:var(--muted);font-size:.68rem}.option-check-list{flex-wrap:wrap;gap:.45rem;margin-top:.8rem;display:flex}.day-editor-card .option-check{background:#fff;border:1px solid #dce8f5;border-radius:999px;margin:0;padding:.24rem .42rem .24rem .3rem}.day-editor-card .option-check input{margin:0 0 0 .15rem}.day-editor-card .editor-meal{border:1px solid var(--line);background:#fff;border-radius:18px;min-width:0;margin:0;padding:1.1rem;box-shadow:0 7px 20px #20436e09}.day-editor-card .editor-meal-heading{align-items:flex-start}.editor-meal-title{align-items:center;gap:.6rem;min-width:0;display:inline-flex}.editor-meal-title>span:last-child{min-width:0}.editor-meal-title strong,.editor-meal-title small{display:block}.editor-meal-title strong{color:var(--ink);font-size:.92rem}.editor-meal-title small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:.2rem;font-size:.68rem;font-weight:500;overflow:hidden}.editor-meal-icon,.more-options-icon{color:var(--blue);background:var(--soft-blue);border-radius:11px;flex:none;place-items:center;display:grid}.editor-meal-icon{width:36px;height:36px}.meal-add-button{white-space:nowrap;flex:none;padding:.3rem 0}.day-editor-card .editor-dishes{gap:.55rem;margin:.95rem 0 0}.day-editor-card .dish-input-row{gap:.55rem}.day-editor-card .dish-input-row input{background:#fbfdff;min-height:46px}.day-editor-card .meal-more-options{border-top:1px solid #e5edf5;margin-top:.95rem}.day-editor-card .meal-more-options summary{color:var(--ink);justify-content:space-between;align-items:center;gap:.8rem;padding:.85rem 0 .1rem;display:flex}.day-editor-card .meal-more-options summary:before{display:none}.more-options-summary-copy{align-items:center;gap:.55rem;min-width:0;display:inline-flex}.more-options-icon{color:#5c769b;background:#f0f5fb;border-radius:9px;width:30px;height:30px}.more-options-summary-copy strong,.more-options-summary-copy small{text-align:left;display:block}.more-options-summary-copy strong{font-size:.78rem}.more-options-summary-copy small{color:var(--muted);margin-top:.15rem;font-size:.66rem;font-weight:500}.more-options-chevron{color:var(--muted);flex:none;transition:transform .18s}.meal-more-options[open] .more-options-chevron{transform:rotate(180deg)}.day-editor-card .more-options-content{background:#f8fbff;border:1px solid #e1eaf4;border-radius:14px;margin-top:.75rem;padding:.9rem}.more-options-section-heading{align-items:flex-start;margin-bottom:.8rem}.more-options-section-heading small{margin-top:.2rem}.compact-add-alert{white-space:nowrap;width:auto;margin-top:0;padding:.52rem .65rem;font-size:.7rem}.day-editor-card .meal-alert-list{gap:.6rem}.day-editor-card .meal-alert-row{background:#fff;border-color:#dce7f2;padding:.8rem}.day-editor-card .reminder-check{background:0 0;border:0;padding:0}.day-editor-card .meal-alert-meta{flex-wrap:wrap;justify-content:flex-start;gap:.55rem .75rem}.day-editor-card .reminder-fields{border-top:1px solid #e9eff6;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-top:.8rem;padding-top:.75rem}.day-editor-card .reminder-fields .field-label{padding-top:0}.day-editor-card .custom-icon-picker-field,.day-editor-card .meal-note-field{border-top:1px solid #e9eff6;margin-top:.75rem;padding-top:.75rem}.day-editor-card .custom-icon-picker-field{gap:.35rem}.day-editor-card .icon-picker{grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:.35rem;padding:.5rem}.day-editor-card .meal-note-field{gap:.35rem}.day-editor-card .meal-note-field textarea{min-height:72px}.day-editor-card .day-notes-field{background:#f8fbff;border:1px solid #dce8f5;border-radius:17px;margin-top:.1rem;padding:1rem 1.1rem}.day-editor-card .day-notes-field textarea{min-height:96px;margin-top:.15rem}.day-editor-card .modal-footer{border-top:1px solid var(--line);margin-top:.1rem;padding-top:1rem;position:relative}@media (width<=760px){.day-editor-card .editor-scroll{grid-template-columns:1fr}.day-editor-card .reminder-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.day-editor-card{padding:1.15rem 1rem 1rem}.day-editor-card .modal-header{padding-bottom:1.1rem}.day-editor-card .modal-header h2{font-size:clamp(1.9rem,10vw,2.8rem)}.day-editor-card .editor-scroll{max-height:66vh;padding-top:1rem}.day-editor-card .editor-meal{padding:1rem}.day-editor-card .editor-meal-heading{align-items:center}.meal-add-button{font-size:.7rem}.more-options-section-heading{flex-direction:column;align-items:stretch;gap:.6rem}.compact-add-alert{justify-content:center;width:100%}.day-editor-card .reminder-fields{grid-template-columns:1fr}.day-editor-card .modal-footer{gap:.55rem}.day-editor-card .modal-footer .secondary-button,.day-editor-card .modal-footer .primary-button{flex:1}}.shared-day-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1.1rem;display:flex}.shared-day-heading h1{text-transform:capitalize;font-size:clamp(2rem,6vw,3rem)}.shared-day-icon{width:58px;height:58px;color:var(--blue);background:var(--soft-blue-strong);border-radius:18px;flex:none;place-items:center;display:grid}.shared-meal-list{gap:0;margin-top:.35rem;display:grid}.shared-meal{border-bottom:1px solid var(--line);grid-template-columns:38px minmax(0,1fr);align-items:start;gap:.75rem;padding:1rem 0;display:grid}.shared-meal>div{min-width:0}.shared-meal strong{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;display:block}.shared-dishes{gap:.2rem;margin-top:.25rem;display:grid}.shared-dishes span{color:var(--ink);font-size:1rem;font-weight:700;line-height:1.3}.shared-meal small{color:var(--muted);margin-top:.3rem;line-height:1.4;display:block}.shared-day-card .day-note{margin-top:1rem}.shared-day-expiry{color:var(--muted);text-align:center;margin:1rem 0 0;font-size:.75rem}.app-nav{align-items:center;gap:.25rem;margin-left:auto;margin-right:1rem;display:flex}.app-nav button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:11px;align-items:center;gap:.35rem;padding:.55rem .75rem;font-size:.75rem;font-weight:700;display:inline-flex}.app-nav button:hover,.app-nav button.active{color:var(--blue-dark);background:var(--soft-blue)}.navigation-menu{margin-left:auto;margin-right:.8rem;position:relative}.menu-trigger{min-height:42px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:.4rem;padding:.65rem .85rem;font-size:.76rem;font-weight:700;display:inline-flex}.menu-trigger:hover,.menu-trigger[aria-expanded=true]{color:var(--blue-dark);background:var(--soft-blue);border-color:#bddaff}.navigation-panel{z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:16px;width:190px;padding:.4rem;display:grid;position:absolute;top:calc(100% + .65rem);right:0;box-shadow:0 18px 45px #1f3a5f2e}.navigation-panel button{width:100%;min-height:42px;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:.65rem;padding:.65rem .7rem;font-size:.78rem;font-weight:700;display:flex}.navigation-panel button:hover,.navigation-panel button.active{color:var(--blue-dark);background:var(--soft-blue)}.brand-link{color:inherit;border-radius:16px;text-decoration:none;transition:opacity .2s}.brand-link:hover{opacity:.82}.brand-link:focus-visible{outline-offset:4px;outline:3px solid #1769e859}.brand-icon{object-fit:cover;flex:none;overflow:hidden}.welcome-icon{padding:0;overflow:hidden}.welcome-icon img{object-fit:cover;width:100%;height:100%;display:block}.loading-card.app-loading-card{text-align:center;flex-direction:column;gap:.85rem;min-height:300px}.loading-logo{object-fit:cover;border-radius:25px;width:86px;height:86px;display:block;box-shadow:0 12px 24px #1769e82e}.loading-copy{gap:.2rem;display:grid}.loading-copy strong{color:var(--ink);letter-spacing:-.03em;font-family:Fraunces,Georgia,serif;font-size:1.35rem}.loading-copy span{color:var(--muted);font-size:.82rem}.install-banner{z-index:15;width:min(100% - 2rem,440px);color:var(--ink);-webkit-backdrop-filter:blur(18px)saturate(140%);backdrop-filter:blur(18px)saturate(140%);background:#fffffff2;border:1px solid #cfe0f5;border-radius:18px;align-items:center;gap:.75rem;padding:.75rem;display:flex;position:fixed;bottom:1rem;right:max(1rem,4vw);box-shadow:0 18px 45px #1f3a5f33}.install-banner img{border-radius:13px;flex:none;width:44px;height:44px}.install-banner>div{flex:1;gap:.12rem;min-width:0;display:grid}.install-banner strong{font-size:.8rem}.install-banner span{color:var(--muted);font-size:.68rem;line-height:1.3}.install-button{white-space:nowrap;min-height:38px;padding-inline:.8rem;font-size:.72rem}.install-dismiss{flex:none;padding:.25rem;font-size:1rem}@media (width<=560px){.install-banner{width:calc(100% - 1.5rem);bottom:.75rem;right:.75rem}.install-button{padding-inline:.65rem}.install-button svg{display:none}}.catalog-page,.calendar-page{padding-bottom:2rem}.catalog-heading,.calendar-heading{align-items:flex-end}.dish-create-form{background:var(--surface);border:1px solid var(--line);border-radius:17px;align-items:center;gap:.7rem;margin:1.25rem 0 1rem;padding:.65rem .75rem .65rem 1rem;display:flex;box-shadow:0 9px 25px #20436e09}.dish-create-form>svg{color:var(--blue);flex:none}.dish-create-form input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;padding:.55rem 0}.dish-create-form input:focus{box-shadow:none}.catalog-toolbar{align-items:center;gap:.65rem;margin:1.3rem 0;display:flex}.search-field{color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:12px;flex:1;align-items:center;gap:.55rem;padding:.72rem .85rem;display:flex}.search-field input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0}.filter-button{min-height:44px;color:var(--muted);background:var(--surface);border:1px solid var(--line);white-space:nowrap;border-radius:12px;align-items:center;gap:.4rem;padding:.65rem .8rem;font-size:.75rem;font-weight:700;display:inline-flex}.filter-button.active{color:var(--blue-dark);background:var(--soft-blue);border-color:#bddaff}.dish-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.dish-library-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:center;gap:.7rem;min-width:0;padding:.85rem;display:flex;box-shadow:0 8px 20px #20436e06}.dish-library-icon{width:42px;height:42px;color:var(--blue);background:var(--soft-blue);border-radius:13px;flex:none;place-items:center;display:grid}.dish-library-copy{flex:1;min-width:0}.dish-library-copy strong,.dish-library-copy small{display:block}.dish-library-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.dish-library-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:.25rem;font-size:.7rem;overflow:hidden}.favorite-button{color:#9aacbf;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;padding:0;display:grid}.favorite-button:hover,.favorite-button.active{color:#e55d79;background:#fff0f3}.dish-library-photo{background:#eaf0eb;border-radius:13px;flex:none;width:58px;height:58px;display:block;overflow:hidden}.dish-library-photo img{object-fit:cover;width:100%;height:100%;display:block}.dish-photo-actions{flex-direction:column;flex:none;align-items:stretch;gap:.3rem;display:flex}.photo-action-button{min-height:32px;color:var(--blue-dark);background:var(--soft-blue);cursor:pointer;white-space:nowrap;border:1px solid #c4dcf7;border-radius:999px;justify-content:center;align-items:center;gap:.3rem;padding:.4rem .6rem;font-size:.68rem;font-weight:700;display:inline-flex}.photo-action-button input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.photo-action-button.danger{color:#a04b4b;background:#fff5f4;border-color:#ebcaca}.photo-action-button:disabled{cursor:wait;opacity:.55}.photo-upload-status{color:var(--muted);text-align:center;font-size:.66rem}.global-loading-indicator{z-index:4;min-height:34px;color:var(--blue-dark,var(--green));background:#f2f7fd;border-bottom:1px solid #dbe7f5;align-items:center;gap:.55rem;padding:.4rem 4vw;font-size:.75rem;font-weight:600;display:flex;position:relative;overflow:hidden}.global-loading-indicator .spinner{border-width:2px;flex:none;width:14px;height:14px}.global-loading-track{background:#dce9f7;height:2px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.global-loading-track>span{background:var(--blue,var(--green));width:32%;height:100%;animation:1.35s ease-in-out infinite loading-progress;display:block}.dish-ingredients-status{color:var(--green)!important}.dish-ingredients-button{color:var(--green);background:var(--soft-green);border-color:#c7dfcd;flex:none}.dish-ingredients-editor-card{width:min(620px,100vw - 2rem)}.dish-ingredients-editor-scroll{max-height:min(58vh,540px);padding:.25rem 1.4rem 1.2rem;overflow:auto}.dish-ingredients-editor-scroll>.muted{margin:0 0 1rem;font-size:.84rem}.dish-ingredients-list{gap:.55rem;display:grid}.ingredient-row{align-items:center;gap:.55rem;display:flex}.ingredient-row>span{width:1.65rem;height:1.65rem;color:var(--green);background:var(--soft-green);border-radius:50%;flex:none;place-items:center;font-size:.72rem;font-weight:700;display:grid}.ingredient-row input{min-width:0;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:10px;outline:0;flex:1;padding:.7rem .8rem}.ingredient-row input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2c6b4c18}.ingredient-remove-button{color:#a04b4b;flex:none;place-items:center;width:34px;height:34px;display:grid}.add-ingredient-button{margin-top:.9rem}.dish-ingredients-footer{align-items:center;gap:.75rem}.dish-ingredients-footer>div{gap:.55rem;margin-left:auto;display:flex}@media (width<=760px){.dish-library-card{flex-wrap:wrap}.dish-library-copy{min-width:calc(100% - 110px)}.dish-ingredients-button,.dish-photo-actions{flex:auto}.dish-ingredients-footer{flex-direction:column;align-items:stretch}.dish-ingredients-footer>div{margin-left:0}.dish-ingredients-footer>div>*{flex:1}}.ingredients-page{padding-bottom:2rem}.ingredients-heading{align-items:flex-end}.ingredient-create-form{background:var(--surface);border:1px solid var(--line);border-radius:17px;align-items:center;gap:.7rem;margin:1.25rem 0 1rem;padding:.65rem .75rem .65rem 1rem;display:flex;box-shadow:0 9px 25px #20436e09}.ingredient-create-form>svg{color:var(--green);flex:none}.ingredient-create-form input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;padding:.55rem 0}.ingredients-toolbar{align-items:center;gap:.8rem;margin:1.3rem 0;display:flex}.ingredients-count{color:var(--muted);flex:none;font-size:.78rem;font-weight:700}.ingredient-merge-page{padding-bottom:2rem}.dishes-heading-actions{align-items:center;gap:.65rem;display:flex}.ingredient-merge-page-heading{align-items:center}.ingredient-merge-layout{grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);align-items:start;gap:1rem;display:grid}.ingredient-merge-picker,.ingredient-merge-summary{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1rem;box-shadow:0 9px 25px #20436e09}.ingredient-merge-picker-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;display:flex}.ingredient-merge-picker-heading h2,.ingredient-merge-summary h2{color:var(--ink);font-size:1.25rem}.ingredient-merge-picker-heading p,.ingredient-merge-summary p{color:var(--muted);margin:.4rem 0 0;font-size:.76rem;line-height:1.5}.ingredient-merge-selection-count{color:var(--green);background:var(--soft-green);border-radius:999px;flex:none;padding:.35rem .55rem;font-size:.68rem;font-weight:700}.ingredient-merge-search{margin-bottom:.7rem}.ingredient-merge-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;max-height:540px;padding-right:.2rem;display:grid;overflow-y:auto}.ingredient-merge-option{cursor:pointer;background:#fbfcfa;border:1px solid #0000;border-radius:11px;align-items:center;gap:.55rem;min-width:0;padding:.65rem;display:flex}.ingredient-merge-option:hover,.ingredient-merge-option.selected{background:var(--soft-green);border-color:#bdd8c4}.ingredient-merge-option input{opacity:0;pointer-events:none;position:absolute}.ingredient-merge-option-check{color:#0000;background:#fff;border:1px solid #cbd6cc;border-radius:6px;flex:none;place-items:center;width:19px;height:19px;display:grid}.ingredient-merge-option.selected .ingredient-merge-option-check{color:#fff;background:var(--green);border-color:var(--green)}.ingredient-merge-option-copy{min-width:0}.ingredient-merge-option-copy strong,.ingredient-merge-option-copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ingredient-merge-option-copy strong{color:var(--ink);font-size:.78rem}.ingredient-merge-option-copy small{color:var(--muted);margin-top:.15rem;font-size:.65rem}.ingredient-merge-no-results{color:var(--muted);text-align:center;padding:1.25rem 0;font-size:.78rem}.ingredient-merge-summary{position:sticky;top:1rem}.ingredient-merge-summary-icon{width:45px;height:45px;color:var(--green);background:var(--soft-green);border-radius:13px;place-items:center;margin-bottom:.8rem;display:grid}.ingredient-merge-keep-field{color:var(--muted);gap:.35rem;margin-top:1rem;font-size:.68rem;font-weight:700;display:grid}.ingredient-merge-keep-field select{width:100%;color:var(--ink);border:1px solid var(--line);font:inherit;background:#fff;border-radius:10px;padding:.65rem .7rem;font-size:.77rem}.ingredient-merge-submit,.ingredient-merge-clear{width:100%;margin-top:.7rem}.ingredients-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;display:grid}.ingredient-catalog-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:center;gap:.75rem;min-width:0;padding:.9rem;display:flex;box-shadow:0 8px 20px #20436e06}.ingredient-catalog-icon{width:42px;height:42px;color:var(--green);background:var(--soft-green);border-radius:13px;flex:none;place-items:center;display:grid}.ingredient-catalog-copy{flex:1;min-width:0}.ingredient-catalog-copy strong,.ingredient-catalog-copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ingredient-catalog-copy strong{color:var(--ink);font-size:.9rem}.ingredient-catalog-copy small{color:var(--muted);margin-top:.25rem;font-size:.7rem}.ingredient-shopping-toggle{color:var(--muted);border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:#f7f9f6;border-radius:999px;flex:none;align-items:center;gap:.25rem;padding:.38rem .5rem;font-size:.62rem;font-weight:700;display:inline-flex}.ingredient-shopping-toggle.active{color:#9a641e;background:#fff6dc;border-color:#efd38d}.ingredient-shopping-toggle:focus-visible{outline-offset:2px;outline:2px solid #2c6b4c55}.ingredient-delete-button{color:#a04b4b;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid}.ingredient-delete-button:hover{background:#fff1ef}.ingredient-delete-button:disabled{cursor:wait;opacity:.5}.ingredients-empty-state{margin-top:1rem}@media (width<=980px){.ingredients-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.dishes-heading-actions{width:100%}.dishes-heading-actions>button{flex:1;justify-content:center}.ingredient-create-form{flex-wrap:wrap;align-items:stretch}.ingredient-create-form input{flex-basis:calc(100% - 2rem)}.ingredient-create-form .primary-button{width:100%}.ingredients-toolbar{flex-direction:column;align-items:stretch}.ingredient-merge-layout{grid-template-columns:1fr}.ingredient-merge-summary{position:static}.ingredient-merge-options{grid-template-columns:1fr}.ingredient-merge-submit,.ingredient-merge-clear{width:100%}.ingredients-grid{grid-template-columns:1fr}.ingredient-shopping-toggle span{display:none}}.empty-state{color:var(--muted);text-align:center;background:var(--surface);border:1px dashed #cbd9e8;border-radius:20px;justify-items:center;margin:2rem 0;padding:3.5rem 1.5rem;display:grid}.empty-state>svg{color:var(--blue)}.empty-state h2{color:var(--ink);margin-top:1rem;font-size:1.45rem}.empty-state p{max-width:27rem;margin:.55rem 0 0;font-size:.85rem}.calendar-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin:1.3rem 0 1rem;display:flex}.calendar-toolbar>div{text-align:center;min-width:0}.calendar-toolbar strong,.calendar-toolbar small{text-transform:capitalize;display:block}.calendar-toolbar strong{color:var(--ink);letter-spacing:-.035em;font-family:Fraunces,Georgia,serif;font-size:clamp(1.35rem,5vw,1.8rem)}.calendar-toolbar small{color:var(--muted);margin-top:.2rem;font-size:.72rem}.calendar-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 10px 26px #20436e0a}.calendar-weekdays,.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{border-bottom:1px solid var(--line);padding:.85rem .7rem .55rem}.calendar-weekdays span{color:var(--muted);text-align:center;font-size:.7rem;font-weight:800}.calendar-grid{padding:.35rem .7rem .7rem}.calendar-week{border-bottom:1px solid #edf2f7}.calendar-week:last-child{border-bottom:0}.calendar-day{min-height:78px;color:var(--ink);background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:flex-start;align-items:center;gap:.3rem;padding:.7rem .25rem .5rem;display:flex;position:relative}.calendar-day:not(:disabled):hover{background:var(--soft-blue)}.calendar-day:disabled{cursor:default}.calendar-day-outside{color:#b8c4d1}.calendar-number{border-radius:50%;place-items:center;width:29px;height:29px;font-size:.82rem;font-weight:700;display:grid}.calendar-day-today .calendar-number{color:#fff;background:var(--blue)}.calendar-day-configured:not(.calendar-day-today) .calendar-number{color:var(--blue);background:var(--soft-blue)}.calendar-meals{min-height:17px;color:var(--blue);gap:.18rem;display:flex}.calendar-meal-dot{background:#e5f1ff;border-radius:50%;place-items:center;width:17px;height:17px;display:grid}.calendar-loading{min-height:420px;color:var(--muted);justify-content:center;align-items:center;gap:.65rem;font-size:.82rem;display:flex}.calendar-legend{color:var(--muted);gap:1rem;margin:.8rem .2rem;font-size:.72rem;display:flex}.calendar-legend span{align-items:center;gap:.35rem;display:inline-flex}.legend-dot,.legend-today{border-radius:50%;width:10px;height:10px;display:inline-block}.legend-dot{background:var(--soft-blue);border:1px solid #bddaff}.legend-today{background:var(--blue)}.calendar-detail-content{max-height:58vh;padding:.7rem 0;overflow-y:auto}.calendar-detail-meal{border-bottom:1px solid var(--line);grid-template-columns:38px minmax(0,1fr);gap:.75rem;padding:.85rem 0;display:grid}.calendar-detail-meal>div{min-width:0}.calendar-detail-meal .meal-icon{width:38px;height:38px}.detail-dish-list{gap:.2rem;margin-top:.35rem;display:grid}.detail-dish-list strong{color:var(--ink);font-size:.95rem}.detail-empty,.calendar-detail-meal small{color:var(--muted);margin-top:.35rem;font-size:.78rem;display:block}.calendar-detail-meal small{line-height:1.4}.calendar-detail-content .day-note{margin:.9rem 0 0}.tuppers-page{max-width:1120px;margin:0 auto;padding-bottom:2rem}.tuppers-heading{margin-bottom:1.8rem}.tupper-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.45rem;display:grid}.tupper-summary-card{border:1px solid var(--line);background:#fff;border-radius:17px;align-items:center;gap:.75rem;padding:1rem;display:flex}.tupper-summary-icon,.tupper-empty-icon{width:42px;height:42px;color:var(--green);background:var(--soft-green);border-radius:13px;flex:none;place-items:center;display:grid}.tupper-summary-icon.portions{color:#8b6d19;background:#fff5ce}.tupper-summary-icon.soon{color:#bd6a33;background:#fff0df}.tupper-summary-card>div:last-child{min-width:0}.tupper-summary-card strong,.tupper-summary-card span{display:block}.tupper-summary-card strong{font-family:Fraunces,serif;font-size:1.55rem;line-height:1}.tupper-summary-card span{color:var(--muted);margin-top:.25rem;font-size:.72rem}.tuppers-toolbar{align-items:center;gap:.7rem;margin-bottom:1.2rem;display:flex}.tuppers-toolbar .search-field{max-width:380px}.tupper-filters{border:1px solid var(--line);background:#fff;border-radius:13px;gap:.2rem;padding:.25rem;display:flex;overflow-x:auto}.tupper-filters button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:9px;padding:.55rem .7rem;font-size:.72rem;font-weight:700}.tupper-filters button:hover,.tupper-filters button.active{color:var(--green);background:var(--soft-green)}.tuppers-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.tupper-card{border:1px solid var(--line);background:#fff;border-left:4px solid #a4cfad;border-radius:18px;min-width:0;padding:1.05rem;box-shadow:0 9px 23px #1c292509}.tupper-card.status-soon{border-left-color:#e6ad54}.tupper-card.status-expired{border-left-color:#d27c6e}.tupper-card.status-empty{opacity:.72;border-left-color:#b8c1bb}.tupper-card-header{align-items:center;gap:.55rem;display:flex}.tupper-card-icon{width:38px;height:38px;color:var(--green);background:var(--soft-green);border-radius:12px;flex:none;place-items:center;display:grid}.status-soon .tupper-card-icon{color:#bd6a33;background:#fff0df}.status-expired .tupper-card-icon{color:#ad5045;background:#fff0ed}.tupper-status{color:var(--green);background:var(--soft-green);border-radius:7px;padding:.28rem .45rem;font-size:.63rem;font-weight:700}.status-soon .tupper-status{color:#a35a25;background:#fff0df}.status-expired .tupper-status{color:#a34c41;background:#fff0ed}.status-empty .tupper-status,.status-unknown .tupper-status{color:var(--muted);background:#f2f5f2}.tupper-card-actions{gap:.15rem;margin-left:auto;display:flex}.card-icon-button{width:32px;height:32px;color:var(--muted);background:0 0;border:0;border-radius:9px;place-items:center;display:grid}.card-icon-button:hover{color:var(--green);background:var(--soft-green)}.card-icon-button.danger:hover{color:#ad5045;background:#fff0ed}.tupper-card h2{text-overflow:ellipsis;white-space:nowrap;margin:.85rem 0 0;font-size:1.35rem;overflow:hidden}.tupper-notes{min-height:1.25em;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:.35rem 0 0;font-size:.76rem;line-height:1.4;overflow:hidden}.tupper-portion-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:1rem;padding:.8rem 0;display:flex}.tupper-portion-row>div:first-child{align-items:baseline;gap:.35rem;display:flex}.tupper-portion-row strong{font-family:Fraunces,serif;font-size:1.65rem;line-height:1}.tupper-portion-row span{color:var(--muted);font-size:.75rem}.portion-controls{gap:.25rem;display:flex}.portion-controls button{width:30px;height:30px;color:var(--green);background:var(--soft-green);border:0;border-radius:8px;place-items:center;font-size:1.1rem;line-height:1;display:grid}.portion-controls button:hover{background:#d5e9d9}.portion-controls button:disabled{cursor:not-allowed;color:#a9b3ab;background:#f2f5f2}.tupper-dates{grid-template-columns:1fr 1fr;gap:.7rem;padding-top:.8rem;display:grid}.tupper-dates div{min-width:0}.tupper-dates span,.tupper-dates strong{display:block}.tupper-dates span{color:var(--muted);font-size:.66rem}.tupper-dates strong{color:var(--ink);text-transform:capitalize;margin-top:.2rem;font-size:.8rem}.status-soon .tupper-dates div:last-child strong{color:#a35a25}.status-expired .tupper-dates div:last-child strong{color:#a34c41}.tupper-card-footer{color:var(--muted);justify-content:space-between;align-items:center;gap:.7rem;margin-top:.9rem;font-size:.68rem;display:flex}.tupper-card-footer>span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.25rem;min-width:0;display:inline-flex;overflow:hidden}.tupper-card-footer small{text-align:right}.tupper-empty-state .tupper-empty-icon{width:58px;height:58px;margin-bottom:.1rem}.tupper-empty-state .primary-button{align-items:center;gap:.4rem;margin-top:1.15rem;display:inline-flex}.tupper-editor-card{width:min(100%,620px)}.tupper-editor-scroll{gap:1rem;max-height:62vh;padding:1.2rem 0;display:grid;overflow-y:auto}.tupper-editor-scroll .field-label>input,.tupper-editor-scroll .field-label>textarea{width:100%;min-height:44px;color:var(--ink);border:1px solid var(--line);background:#fbfcfa;border-radius:11px;outline:none;margin-top:.35rem;padding:.72rem .8rem}.tupper-editor-scroll .field-label>textarea{resize:vertical}.tupper-editor-scroll .field-label>input:focus,.tupper-editor-scroll .field-label>textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #2c6b4c18}.tupper-form-grid{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.tupper-form-hint{color:var(--muted);align-items:center;gap:.35rem;margin:-.2rem 0 0;font-size:.68rem;display:flex}.tupper-form-hint svg{color:var(--green);flex:none}@media (width<=760px){.tupper-summary{grid-template-columns:1fr}.tupper-summary-card{padding:.8rem .9rem}.tupper-summary-card strong{font-size:1.35rem}.tuppers-toolbar{flex-direction:column;align-items:stretch}.tuppers-toolbar .search-field{max-width:none}.tupper-filters{width:100%}.tupper-filters button{flex:1}}@media (width<=560px){.tuppers-heading .primary-button{padding-inline:.75rem}.tuppers-heading .primary-button span{display:none}.tuppers-grid{grid-template-columns:1fr}.tupper-card-footer{flex-direction:column;align-items:flex-start;gap:.3rem}.tupper-card-footer small{text-align:left}.tupper-form-grid{grid-template-columns:1fr}}@media (width<=760px){.navigation-menu{margin-right:.2rem}.menu-trigger span{display:none}.account-actions{gap:.25rem}}@media (width<=560px){.catalog-heading .primary-button{padding-inline:.75rem}.catalog-heading .primary-button span{display:none}.dish-catalog-grid{grid-template-columns:1fr}.catalog-toolbar{flex-direction:column;align-items:stretch}.filter-button{justify-content:center}.calendar-day{min-height:64px}.calendar-grid,.calendar-weekdays{padding-inline:.25rem}.calendar-meal-dot{width:15px;height:15px}.calendar-meal-dot svg{width:11px;height:11px}}.app-loading-screen{z-index:100;background:radial-gradient(circle at 50% 38%,#d9eaffeb,#0000 34rem),#f6f9fd;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0;overflow:hidden}.app-loading-screen:before,.app-loading-screen:after{content:"";pointer-events:none;border:1px solid #1769e814;border-radius:50%;width:18rem;height:18rem;position:absolute}.app-loading-screen:before{transform:translate(-23rem,-14rem)}.app-loading-screen:after{transform:translate(25rem,16rem)scale(1.45)}.app-loading-content{z-index:1;text-align:center;justify-items:center;width:min(100%,280px);display:grid;position:relative}.app-loading-logo-wrap{margin-bottom:1.25rem;position:relative}.app-loading-logo-wrap .loading-logo{z-index:1;border-radius:27px;width:88px;height:88px;animation:2.4s ease-in-out infinite loading-float;position:relative;box-shadow:0 18px 34px #1769e833}.app-loading-pulse{border:1px solid #1769e833;border-radius:38px;animation:2.4s ease-out infinite loading-pulse;position:absolute;inset:-14px}.app-loading-content .loading-copy{gap:.3rem}.app-loading-content .loading-copy strong{font-size:1.55rem}.app-loading-content .loading-copy span{font-size:.8rem}.loading-progress{background:#dfeaf7;border-radius:999px;width:116px;height:4px;margin-top:1.45rem;overflow:hidden}.loading-progress span{background:var(--blue);border-radius:inherit;width:42%;height:100%;animation:1.5s ease-in-out infinite loading-progress;display:block}@keyframes loading-float{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-5px)rotate(2deg)}}@keyframes loading-pulse{0%{opacity:.7;transform:scale(.88)}70%,to{opacity:0;transform:scale(1.12)}}@keyframes loading-progress{0%{transform:translate(-130%)}55%,to{transform:translate(310%)}}.dashboard-skeleton-grid{pointer-events:none}.skeleton-line,.skeleton-circle,.skeleton-pill,.skeleton-square,.skeleton-edit{background:linear-gradient(100deg,#e7eef6 20%,#f8fbff 45%,#e7eef6 70%) 0 0/260% 100%;animation:1.45s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-line{border-radius:999px;height:.72rem}.skeleton-circle{border-radius:50%;flex:none;width:38px;height:38px}.skeleton-pill{border-radius:999px;width:42px;height:26px}.skeleton-day-card{opacity:.92}.skeleton-day-card .day-header{padding-bottom:.8rem}.skeleton-day-name{width:7.5rem;height:1rem}.skeleton-day-date{width:5.2rem;height:.65rem;margin-top:.45rem}.skeleton-meal-card{cursor:default}.skeleton-meal-card .meal-content{align-content:start;gap:.42rem;padding-top:.1rem;display:grid}.skeleton-meal-label{width:4.5rem;height:.55rem}.skeleton-meal-title{width:min(72%,16rem);height:.85rem}.skeleton-meal-meta{width:5.5rem;height:.55rem}.skeleton-edit{width:6.5rem;height:.7rem;margin-top:.85rem}.catalog-skeleton-grid{pointer-events:none}.skeleton-dish-photo{background:linear-gradient(100deg,#e7eef6 20%,#f8fbff 45%,#e7eef6 70%) 0 0/260% 100%;border-radius:13px;flex:none;width:58px;height:58px;animation:1.45s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-dish-card .dish-library-copy{gap:.42rem;display:grid}.skeleton-dish-title{width:70%;height:.8rem}.skeleton-dish-meta{width:42%;height:.58rem}.skeleton-dish-heart{background:#dfeaf7;border-radius:50%;flex:none;width:28px;height:28px;animation:1.45s ease-in-out infinite skeleton-shimmer;display:block}.shopping-skeleton-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.skeleton-shopping-day{pointer-events:none;min-height:64px}.skeleton-square{border-radius:5px;width:18px;height:18px;position:absolute;top:.9rem;left:.8rem}.skeleton-shopping-title{width:72%;height:.72rem}.skeleton-shopping-meta{width:52%;height:.58rem}.calendar-skeleton-grid{padding:.35rem .7rem .7rem}.calendar-skeleton-week{border-bottom:1px solid #edf2f7;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-skeleton-week:last-child{border-bottom:0}.calendar-skeleton-cell{flex-direction:column;align-items:center;gap:.45rem;min-height:78px;padding:.7rem .25rem .5rem;display:flex}.calendar-skeleton-cell .skeleton-circle{width:29px;height:29px}.skeleton-calendar-dot{width:26px;height:.45rem}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (width<=620px){.shopping-skeleton-list{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.app-loading-logo-wrap .loading-logo,.app-loading-pulse,.loading-progress span,.skeleton-line,.skeleton-circle,.skeleton-pill,.skeleton-square,.skeleton-edit,.skeleton-dish-photo,.skeleton-dish-heart,.photo-upload-button .spin-icon,.global-loading-track>span{animation:none}}:root{color:#15264a;--ink:#15264a;--muted:#687b99;--blue:#1769e8;--blue-dark:#0d3678;--soft-blue:#eaf3ff;--soft-blue-strong:#d9eaff;--surface:#fff;--line:#e3ebf4;--danger:#a84f5b;background:#f6f9fd}html{background:#f6f9fd}.topbar{background:#f6f9fde6;border-bottom-color:#d5e1f0d1}.day-editor-card{flex-direction:column;width:min(100%,1040px);max-height:min(92dvh,900px);padding:clamp(1.35rem,2.5vw,1.9rem);display:flex}.day-editor-backdrop{place-items:center;padding:clamp(.5rem,2vw,1rem)}.day-editor-card .modal-header,.day-editor-card .modal-footer{flex-shrink:0}.day-editor-help{color:#526784;max-width:60ch;margin:.65rem 0 0;font-size:.85rem;line-height:1.5}.day-editor-card .modal-header h2{max-width:24ch;font-size:clamp(2.1rem,4vw,3.25rem)}.day-editor-card .editor-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:start;gap:1rem;min-height:0;max-height:none}.day-editor-card .editor-scroll.meal-count-1{grid-template-columns:minmax(0,1fr)}.day-editor-card .editor-scroll.meal-count-3 .editor-meal:last-of-type{grid-column:1/-1}.day-editor-card .editor-options,.day-editor-card .day-notes-field{background:#f8fbff;border-color:#dce8f5}.day-editor-card .editor-meal{box-shadow:0 8px 22px #20436e0d}.day-editor-card .editor-meal-icon,.day-editor-card .more-options-icon{color:var(--blue);background:var(--soft-blue)}.day-editor-card .meal-more-options{border-top-color:#e5edf5}.day-editor-card .more-options-content{background:#f8fbff;border-color:#e1eaf4}.day-editor-card .option-check,.day-editor-card .meal-alert-row{border-color:#dce7f2}.day-editor-card .meal-alert-row{overflow-wrap:anywhere;min-width:0;padding:0}.day-editor-card .day-alert-expanded{border-color:#8bbafa}.day-alert-heading{align-items:center;gap:.5rem;padding:.35rem .55rem;display:flex}.day-alert-title{min-width:0;font:inherit;flex:1;margin:0}.day-alert-toggle{width:100%;min-height:44px;color:var(--blue-dark);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:.55rem;padding:.45rem .2rem;display:flex}.day-alert-toggle>svg,.day-alert-chevron{flex-shrink:0}.day-alert-summary{flex:1;min-width:0}.day-alert-summary strong,.day-alert-summary small{line-height:1.45;display:block}.day-alert-summary strong{font-size:.9rem}.day-alert-summary small{color:#526784;font-size:.78rem;font-weight:500}.day-alert-expanded .day-alert-chevron{transform:rotate(180deg)}.day-alert-enabled{color:#526784;cursor:pointer;flex-shrink:0;align-items:center;gap:.35rem;min-height:44px;padding:.35rem;font-size:.78rem;display:flex}.day-alert-enabled input{width:18px;height:18px;accent-color:var(--blue);margin:0}.day-alert-panel{border-top:1px solid var(--line);padding:.85rem}.day-editor-card .day-alert-panel .reminder-fields{border-top:0;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0;padding-top:0}.day-alert-name-field{grid-column:1/-1}.day-alert-empty,.day-alert-help{color:#526784;margin:0 0 .7rem;font-size:.85rem;line-height:1.5}.day-alert-error{color:#a33142;background:#fff1f3;border:1px solid #e3a6af;border-radius:8px;margin:0 0 .75rem;padding:.65rem;font-size:.85rem;line-height:1.5}.day-editor-card .icon-picker{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}.day-editor-card .icon-choice{min-height:44px}.day-alert-actions,.day-save-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.day-alert-actions{border-top:1px solid var(--line);justify-content:space-between;margin-top:.85rem;padding-top:.65rem}.day-editor-card .send-alert-button,.day-alert-remove{border:1px solid var(--line);background:var(--surface);border-radius:9px;justify-content:center;align-items:center;gap:.35rem;min-height:44px;padding:.5rem .65rem;font-size:.8rem;font-weight:700;display:inline-flex}.day-alert-remove{color:#a33142}.day-save-actions{margin-left:auto}.day-editor-card button,.day-editor-card .meal-more-options>summary,.day-editor-card .option-check{min-height:44px}.day-editor-card .meal-more-options>summary{border-radius:8px}.day-editor-card :is(button,input,select,textarea,summary):focus-visible{outline:3px solid var(--blue-dark);outline-offset:2px}.day-editor-card .option-check:has(input:checked){border-color:#8bbafa;box-shadow:0 0 0 2px #1769e814}.day-editor-card .dish-input-row input,.day-editor-card .field-label>input,.day-editor-card .field-label>select,.day-editor-card .field-label>textarea{background:#fbfdff;border-color:#d8e5f2}.day-editor-card .field-label>input:focus,.day-editor-card .field-label>select:focus,.day-editor-card .field-label>textarea:focus{border-color:#76aef1;box-shadow:0 0 0 3px #1769e821}.day-editor-card .modal-footer{background:var(--surface)}.settings-page{max-width:1180px}.settings-page-heading,.settings-content{max-width:980px}.settings-tab-panel,.settings-section-card{box-shadow:0 10px 28px #20436e0d}.settings-tab.active,.settings-tab:hover,.notification-master{color:var(--blue-dark);background:var(--soft-blue)}.meal-setting:has(input:checked){color:var(--blue-dark);background:var(--soft-blue)}.settings-tab.active{box-shadow:inset 0 0 0 1px #bddaff}.settings-page .field-label>input:focus,.settings-page .field-label>select:focus,.settings-page .field-label>textarea:focus{border-color:#76aef1;box-shadow:0 0 0 3px #1769e821}button:not(:disabled):focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #1769e847}@media (width>=1100px){.day-editor-card .editor-scroll.meal-count-2,.day-editor-card .editor-scroll.meal-count-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.day-editor-card .editor-scroll{grid-template-columns:minmax(0,1fr)}.day-editor-card .editor-scroll.meal-count-3 .editor-meal:last-of-type{grid-column:auto}}@media (width<=560px){.day-editor-card{max-height:calc(100dvh - 1rem);padding:1rem .85rem}.day-editor-card .modal-header{flex-wrap:wrap;gap:.6rem}.day-editor-card .modal-header h2{font-size:clamp(1.8rem,8vw,2.5rem)}.day-editor-card .modal-header-actions{justify-content:flex-end;width:100%}.day-editor-card .editor-meal,.day-editor-card .more-options-content{padding:.7rem}.day-editor-card .day-alert-panel .reminder-fields{grid-template-columns:minmax(0,1fr)}.day-alert-heading{gap:.25rem}.day-alert-enabled{flex-direction:column;justify-content:center;gap:.25rem;min-width:44px;padding:.25rem}.day-editor-card .modal-footer{flex-wrap:wrap}.day-save-actions{width:100%}}.dashboard-task-notice{text-align:left;width:min(100%,980px);color:var(--blue-dark);background:var(--soft-blue);border:1px solid #cfe2fb;border-radius:18px;align-items:center;gap:.85rem;margin:0 auto 1rem;padding:.9rem 1rem;display:flex}.dashboard-task-notice>span:nth-child(2){flex-direction:column;flex:1;gap:.12rem;display:flex}.dashboard-task-notice small{color:var(--muted)}.dashboard-task-notice-icon{width:2.4rem;height:2.4rem;color:var(--blue);background:#fff;border-radius:12px;place-items:center;display:grid}.tasks-page{max-width:1180px;margin:0 auto}.tasks-heading{max-width:980px;margin-inline:auto}.tasks-toolbar{justify-content:flex-end;max-width:980px;margin:0 auto 1.5rem;display:flex}.task-filters{background:#edf3fa;border-radius:999px;flex-wrap:wrap;gap:.45rem;padding:.3rem;display:flex}.task-filters button{color:var(--muted);background:0 0;border:0;border-radius:999px;align-items:center;gap:.4rem;padding:.55rem .8rem;font-size:.82rem;font-weight:600;display:inline-flex}.task-filters button.active,.task-filters button:hover{color:var(--blue-dark);background:#fff;box-shadow:0 3px 12px #20436e14}.task-filters button span{color:#fff;background:var(--blue);border-radius:999px;place-items:center;min-width:1.25rem;height:1.25rem;font-size:.68rem;display:grid}.tasks-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:980px;margin:0 auto;display:grid}.task-card{border:1px solid var(--line);background:#fff;border-radius:22px;flex-direction:column;min-height:235px;padding:1.25rem;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 28px #20436e0d}.task-card:before{content:"";background:#9fb1c8;width:5px;position:absolute;inset:0 auto 0 0}.task-card.task-low:before{background:#78a98b}.task-card.task-medium:before{background:#e5af45}.task-card.task-high:before{background:#d5686e}.task-card.task-status-completed,.task-card.task-status-cancelled{opacity:.7}.task-card-topline,.task-card-footer{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.task-importance{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;display:inline-flex}.task-importance i{background:#9fb1c8;border-radius:50%;width:.55rem;height:.55rem}.task-high .task-importance i{background:#d5686e}.task-medium .task-importance i{background:#e5af45}.task-low .task-importance i{background:#78a98b}.task-card-actions{gap:.2rem;display:flex}.task-card h2{margin:1rem 0 .5rem;font-size:1.55rem;line-height:1.05}.task-description{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.task-meta{color:var(--muted);flex-direction:column;flex:1;gap:.45rem;margin:1rem 0;font-size:.8rem;display:flex}.task-meta span{align-items:center;gap:.4rem;display:flex}.task-meta .overdue{color:#b34f5d;font-weight:700}.task-card-footer{border-top:1px solid #edf1f5;padding-top:.85rem}.task-card-footer small{color:var(--muted)}.task-status-select{align-items:center;display:inline-flex;position:relative}.task-status-select select{color:var(--blue-dark);background:var(--soft-blue);appearance:none;border:0;border-radius:999px;padding:.42rem 1.8rem .42rem .65rem;font-size:.78rem;font-weight:700}.task-status-select svg{pointer-events:none;position:absolute;right:.48rem}.tasks-empty-state{max-width:980px;margin:1rem auto}.task-editor-card{width:min(100%,720px)}.task-editor-scroll{gap:1rem;max-height:min(70vh,680px);display:grid;overflow-y:auto}.task-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.task-all-members-check{background:var(--soft-blue);border:1px solid #d7e8fa;border-radius:14px;align-items:flex-start;gap:.7rem;padding:.85rem .95rem;display:flex}.task-all-members-check input{margin-top:.2rem}.task-all-members-check span{flex-direction:column;gap:.2rem;display:flex}.task-all-members-check small{color:var(--muted)}.task-reminders-editor{border:1px solid var(--line);background:#f8fbff;border-radius:17px;padding:1rem}.task-reminders-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.task-reminders-heading h3{margin:.25rem 0 0;font-size:1.15rem}.task-reminder-editor-row{border-top:1px solid #e3ebf4;grid-template-columns:1.1fr .7fr .7fr auto;align-items:end;gap:.65rem;margin-top:.85rem;padding-top:.85rem;display:grid}.task-reminder-editor-row .field-label{gap:.3rem}.task-reminder-remove{margin-bottom:.35rem}.task-reminder-due-hint{color:var(--muted);grid-column:span 2;align-self:center;font-size:.78rem}@media (width<=680px){.tasks-grid{grid-template-columns:1fr}.tasks-toolbar{justify-content:flex-start}.task-filters{border-radius:18px}.task-editor-grid{grid-template-columns:1fr}.task-reminder-editor-row{grid-template-columns:1fr 1fr auto}.task-reminder-editor-row .field-label:first-child,.task-reminder-due-hint{grid-column:1/-1}}.shortcut-settings{gap:1rem;display:grid}.shortcut-settings>.section-heading{margin-bottom:0}.shortcut-settings>.muted{margin:-.55rem 0 0}.shortcut-ai-copy-row{justify-items:start;gap:.45rem;display:grid}.shortcut-ai-copy-row .field-help{margin:0}.shortcut-key-card,.shortcut-method-card{border:1px solid var(--line);background:var(--surface,#fff);border-radius:16px;gap:.9rem;padding:1.1rem;display:grid}.shortcut-key-card h4,.shortcut-method-card h4{color:var(--text,#20302a);margin:.2rem 0;font-size:1rem}.shortcut-key-card p,.shortcut-method-heading p{margin:.3rem 0 0}.shortcut-key-field{margin:0}.shortcut-key-input-row{align-items:center;gap:.5rem;display:flex}.shortcut-key-input-row input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.shortcut-key-actions{flex-wrap:wrap;gap:.6rem;display:flex}.shortcut-feedback{color:var(--green,#27634a);font-size:.84rem}.shortcut-feedback-error{color:var(--danger,#a83b35)}.shortcut-method-heading{align-items:center;gap:.75rem;display:flex}.shortcut-method-badge{color:#176643;letter-spacing:.04em;background:#e5f4eb;border-radius:8px;flex:none;padding:.4rem .55rem;font-size:.72rem;font-weight:800}.shortcut-method-post{color:#76530c;background:#fff2d3}.shortcut-method-card>.field-label{margin:0}.shortcut-method-card>.field-help,.shortcut-response-help{color:var(--muted);margin:-.45rem 0 0;font-size:.82rem;line-height:1.5}.shortcut-errors-card>p{color:var(--muted);margin:0;font-size:.84rem}.shortcut-request-example{background:var(--soft,#f3f6f3);border-radius:10px;padding:.8rem;overflow:auto}.shortcut-request-example pre{overflow-wrap:anywhere;white-space:pre-wrap;margin:.55rem 0 0;font-size:.84rem}.shortcut-setup-note{margin:0;line-height:1.55}@media (width<=560px){.shortcut-key-input-row{flex-direction:column;align-items:stretch}.shortcut-key-input-row .secondary-button{align-self:flex-start}.shortcut-key-actions>button{flex:auto}}:root{--muted:#526581;--focus-ring:#145ac4}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background:#f6f9fd;min-height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;min-height:100%;overflow-x:hidden}body:has(dialog[open]){overflow:hidden}html{scrollbar-gutter:stable}button,input,select,textarea{font:inherit}button,[role=button],summary{touch-action:manipulation}button:disabled{cursor:not-allowed}.skip-link{z-index:100;color:#fff;background:#15264a;border-radius:12px;padding:.8rem 1.1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}#main-content:focus{outline:none}:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}button:not(:disabled):focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-color:var(--focus-ring)}.search-field:focus-within,.select-field:focus-within{border-color:var(--focus-ring);box-shadow:0 0 0 3px #145ac41a}.navigation-panel{width:min(260px,100vw - 2rem);max-height:calc(100dvh - 100px);overflow-y:auto}.navigation-panel button,.menu-trigger,.settings-tab{min-height:44px}.navigation-panel button[aria-current=page]{box-shadow:inset 3px 0 var(--blue)}:where(.round-icon-button,.table-action-button,.table-favorite-button,.pagination-button,.card-icon-button,.modal-header .icon-button){flex-shrink:0;place-items:center;min-width:44px;min-height:44px;display:inline-grid}.modal-backdrop::backdrop{background:0 0}.modal-backdrop{overscroll-behavior:contain;touch-action:none;height:100dvh}.modal-backdrop .modal-card{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;max-height:calc(100dvh - 2rem);overflow-y:auto}.modal-header{gap:1rem}.modal-header>div{min-width:0}.modal-header h2{overflow-wrap:anywhere}.modal-footer{flex-wrap:wrap;gap:.65rem}.dish-editor-tabs{flex-shrink:0;overflow-x:auto}.dish-editor-tabs button{flex-shrink:0;min-height:44px}.page-heading{gap:1.5rem}.page-heading>div{min-width:0}.catalog-toolbar,.ingredients-toolbar{flex-wrap:wrap}.search-field{min-width:min(100%,230px)}.dish-table{overflow:visible}.ingredient-table{overflow-x:auto}.dish-table-head,.dish-table-row{grid-template-columns:minmax(180px,1.6fr) minmax(130px,1.2fr) minmax(100px,.8fr) 64px 88px 44px;column-gap:.65rem;min-width:0}.ingredient-table-head,.ingredient-table-row{min-width:1100px}.dish-name-cell strong,.ingredient-name-cell strong{white-space:normal;overflow-wrap:anywhere}.dish-pagination,.ingredient-pagination,.pagination-controls{flex-wrap:wrap}.empty-state .secondary-button{margin-top:.75rem}@media (width<=640px){.topbar{height:auto;min-height:calc(66px + env(safe-area-inset-top));padding-top:calc(.65rem + env(safe-area-inset-top));padding-right:max(1rem, env(safe-area-inset-right));padding-left:max(1rem, env(safe-area-inset-left))}main{padding-bottom:max(5rem, calc(4rem + env(safe-area-inset-bottom)))}.page-heading{flex-direction:column;align-items:stretch;gap:1rem}.page-heading>button{justify-content:center}.catalog-toolbar>*,.ingredients-toolbar>*{width:100%;min-width:0}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}.dish-create-form,.ingredient-create-form{flex-wrap:wrap}.dish-create-form .select-field{flex:100%}.dish-create-form>button,.ingredient-create-form>button{justify-content:center;width:100%}.modal-backdrop{padding:.5rem max(.5rem, env(safe-area-inset-right)) .5rem max(.5rem, env(safe-area-inset-left))}.modal-backdrop .modal-card{border-radius:20px;max-height:calc(100dvh - 1rem)}.modal-footer>button{flex:auto;justify-content:center}.dish-table,.ingredient-table{background:0 0;border:0;overflow:visible}.dish-table-head,.ingredient-table-head{clip-path:inset(50%);white-space:nowrap;width:1px;min-width:0;height:1px;position:absolute;overflow:hidden}.dish-table-row,.ingredient-table-row{border:1px solid var(--line);background:var(--surface);border-radius:16px;grid-template-columns:minmax(0,1fr) repeat(3,44px);gap:.75rem .5rem;min-width:0;margin-bottom:.75rem;padding:1rem}.dish-name-cell,.dish-ingredients-cell,.ingredient-name-cell{grid-column:1/-1}.dish-ingredients-cell{flex-wrap:wrap}.dish-name-cell small,.ingredient-name-cell small{white-space:normal;line-height:1.5}.ingredient-table-row{grid-template-columns:repeat(3,minmax(0,1fr))}.ingredient-shopping-cell{grid-column:1/-1}.ingredient-shopping-toggle{justify-content:center;width:100%;min-height:44px}.ingredient-table-row .dish-action-cell{justify-content:center}.dish-recipe-cell{min-width:0}.recipe-read-button{white-space:normal;text-align:left}}@media (forced-colors:active){button,.select-field,.search-field{border:1px solid buttontext}[aria-current=page],[aria-pressed=true],[aria-selected=true]{outline:2px solid highlight}}main.settings-main{width:100%;max-width:1440px;padding-inline:0}@media (width<=640px){.settings-page-heading .settings-button span:last-child,.ingredient-shopping-toggle span{display:inline}.task-filters button,.tupper-filters button{min-height:44px}.tuppers-heading .primary-button{margin-top:0}}@media (width<=380px){.tupper-filters{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}main:has(.dishes-redesign-page,.ingredients-redesign-page){width:min(100%,1280px)}.dishes-redesign-page,.ingredients-redesign-page{margin-inline:auto;padding-top:1rem}@media (width>=641px){.ingredient-table-head,.ingredient-table-row{grid-template-columns:minmax(220px,1.4fr) 70px 95px 112px 138px 70px 100px 58px}.ingredient-table-head>span{white-space:normal}}.autocomplete-control{flex:auto;min-width:0}.autocomplete-control>.autocomplete-input{width:100%;min-width:0;min-height:46px;color:var(--ink);background:#fbfdff;border:1px solid #d8e5f2;border-radius:11px;outline:none;padding:.65rem .8rem;font-size:16px;display:block}.autocomplete-control>input::placeholder{color:var(--muted)}.autocomplete-control>input:focus{border-color:#76aef1;box-shadow:0 0 0 3px #1769e821}.autocomplete-options{background:var(--surface,#fff);-webkit-overflow-scrolling:touch;border:1px solid #b8d2ee;border-radius:12px;gap:.2rem;max-height:min(32dvh,240px);margin:.35rem 0 0;padding:.3rem;list-style:none;display:grid;overflow-y:auto;box-shadow:0 10px 24px #15264a1f}.autocomplete-options>li{min-height:44px;color:var(--ink);cursor:pointer;overflow-wrap:anywhere;border-radius:8px;align-items:center;gap:.55rem;padding:.55rem .7rem;font-size:.9rem;display:flex}.autocomplete-options>li.active,.autocomplete-options>li:hover{color:#fff;background:var(--blue)}.autocomplete-option-action{color:var(--blue);flex:none;font-size:.75rem;font-weight:700}.autocomplete-options>li.active .autocomplete-option-action,.autocomplete-options>li:hover .autocomplete-option-action{color:#fff}.autocomplete-options>.autocomplete-no-options{color:var(--muted);cursor:default;font-size:.8rem}.dish-input-row,.ingredient-row{align-items:flex-start}.dish-input-row .remove-button{flex:none;align-self:flex-start;min-height:46px}.ingredient-row>span{margin-top:.45rem}.ingredient-row .autocomplete-control{flex:auto}.ingredient-row .ingredient-remove-button{align-self:flex-start;margin-top:.35rem}.topbar,.install-banner{-webkit-backdrop-filter:blur(22px)saturate(150%)}.install-banner{-webkit-backdrop-filter:blur(18px)saturate(140%)}@media (width<=640px){.snackbar{bottom:max(.85rem, calc(.75rem + env(safe-area-inset-bottom)));max-width:calc(100vw - max(2rem, env(safe-area-inset-left) + env(safe-area-inset-right) + 1.5rem))}.install-banner{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, calc(.75rem + env(safe-area-inset-bottom)));left:max(.75rem, env(safe-area-inset-left));width:auto}.navigation-panel{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 5.5rem);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-backdrop .modal-card{max-height:calc(100dvh - env(safe-area-inset-top) - .5rem);padding-bottom:max(1rem, calc(.75rem + env(safe-area-inset-bottom)))}}@supports (-webkit-touch-callout:none){.modal-backdrop{isolation:isolate;min-height:-webkit-fill-available}.modal-backdrop .modal-card,.navigation-panel,.autocomplete-options{-webkit-overflow-scrolling:touch}}@supports not (height:100dvh){.app-shell,.modal-backdrop{min-height:-webkit-fill-available}.modal-backdrop{height:-webkit-fill-available}}.modal-backdrop.day-editor-backdrop{touch-action:pan-y;min-height:0;overflow:hidden}.modal-backdrop .day-editor-card{flex-direction:column;min-height:0;max-height:calc(100dvh - 2rem);padding:0;display:flex;overflow:hidden}.day-editor-card .modal-header,.day-editor-card .modal-footer{flex:none;margin:0;padding:1rem 1.5rem}.day-editor-card .modal-header{align-items:center}.day-editor-card .modal-header h2{letter-spacing:-.025em;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.15}.day-editor-card .editor-scroll{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;max-height:none;padding:1rem 1.5rem;scroll-padding-block:1rem;overflow-y:auto}.day-editor-card .editor-scroll>*{min-width:0}.day-editor-card .modal-footer{justify-content:flex-end;box-shadow:0 -8px 24px #15264a0f}.day-editor-card .day-save-actions{gap:.65rem;display:flex}.day-editor-card .modal-footer .telegram-reminder-button{margin-right:auto}.day-editor-card .modal-footer button,.day-editor-card .roulette-trigger,.day-editor-card .icon-button,.day-editor-card .meal-add-button,.day-editor-card .remove-button,.day-editor-card .icon-choice,.day-editor-card .option-check{min-height:44px}.day-editor-card .remove-button{min-width:44px}.day-editor-card .meal-more-options summary{min-height:48px}.day-editor-card .meal-alert-meta{flex-wrap:wrap}.day-editor-card .reminder-check{min-width:0}.day-editor-card .reminder-check strong{overflow-wrap:anywhere}.day-editor-card button:not(:disabled):active{transform:scale(.97)}@media (width<=760px){.day-editor-card .editor-scroll{grid-template-columns:minmax(0,1fr)}.day-editor-card .editor-meal-heading{flex-wrap:wrap}.day-editor-card .field-label>input,.day-editor-card .field-label>select,.day-editor-card .field-label>textarea,.day-editor-card .autocomplete-input{font-size:1rem}}@media (width<=760px),(height<=500px) and (pointer:coarse){.modal-backdrop.day-editor-backdrop{padding:0}.modal-backdrop .day-editor-card{border:0;border-radius:0;width:100%;height:100dvh;max-height:100dvh}.day-editor-card .modal-header{padding:max(.75rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) .75rem max(1rem, env(safe-area-inset-left));gap:.5rem}.day-editor-card .modal-header h2{font-size:1.5rem}.day-editor-card .roulette-trigger{padding:.55rem}.day-editor-card .editor-scroll{padding:.85rem max(1rem, env(safe-area-inset-right)) 1rem max(1rem, env(safe-area-inset-left));gap:.85rem}.day-editor-card .editor-options,.day-editor-card .editor-meal{padding:.85rem}.day-editor-card .option-check-list{gap:.5rem}.day-editor-card .editor-section-heading{flex-wrap:wrap}.day-editor-card .meal-add-button{padding:.5rem;font-size:.8rem}.day-editor-card .dish-input-row{align-items:flex-start}.day-editor-card .dish-input-row .remove-button{width:48px;min-width:48px;height:48px;min-height:48px}.day-editor-card .modal-footer{padding:.65rem max(1rem, env(safe-area-inset-right)) max(.65rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));gap:.5rem}.day-editor-card .day-save-actions{flex:1 0 100%}.day-editor-card .day-save-actions button{flex:1;justify-content:center}.day-editor-card .modal-footer .telegram-reminder-button{flex:1 0 100%}.day-editor-card .autocomplete-input{min-height:48px}}@media (prefers-reduced-motion:reduce){.day-editor-card button:not(:disabled):active{transform:none}}@media (width<=560px){.ingredient-row .ingredient-remove-button{width:44px;min-height:46px}.autocomplete-control>.autocomplete-input{min-height:48px}}@media (width>=641px) and (width<=1050px){.dish-table{background:0 0;border:0}.dish-table-head{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.dish-table-row{border:1px solid var(--line);background:var(--surface);border-radius:16px;grid-template-columns:minmax(0,1fr) repeat(3,44px);gap:.7rem;margin-bottom:.75rem;padding:1rem}.dish-name-cell,.dish-ingredients-cell{grid-column:1/-1}.dish-ingredients-cell{flex-wrap:wrap}.dish-name-cell small{white-space:normal}}main:has(.shopping-page){width:min(100%,1240px)}.dish-merge-page .ingredient-merge-options{max-height:none;overflow:visible}@media (width>=641px) and (width<=1050px){.dishes-page-heading{flex-direction:column;align-items:flex-start}.dishes-heading-actions{flex-wrap:wrap}}
