:root{--bg:#fbfcff;--card:#fff;--text:#111e3c;--muted:#808795;--accent:#32b475;--soft:#f2f4f8;--line:#eef0f4;color-scheme:light}main{position:relative;max-width:540px;padding:24px 16px calc(160px + env(safe-area-inset-bottom))}h1{font-size:28px;letter-spacing:-.8px;line-height:1.12}.app-topbar{position:absolute;right:16px;top:20px;padding:0;display:flex;gap:8px;z-index:1}.app-topbar>span{display:none}.app-topbar button{background:#f2f4f8;border-radius:50%;height:38px;min-height:38px;width:38px;font-size:24px;color:var(--text)}#list-page{display:flex;flex-direction:column}#list-page>header{order:-3;padding-right:82px;margin:0 0 8px}.title-row{margin:0;gap:0}.title-row h1{font-size:28px}.icon-button{min-width:28px;width:28px;min-height:32px;height:32px;font-size:16px}.page-subtitle{margin:5px 0 0;font-size:12px;line-height:1.4;color:var(--muted)}.page-subtitle span{color:var(--accent)}.list-toolbar{order:-2;margin:5px 0 9px;gap:8px}.list-toolbar>button:first-child,.list-toolbar>.link{min-height:28px;font-size:10px;padding:4px 10px;background:#f3f6f7;border:0;color:#627383}#list-visibility{display:none}.progress-card{border:1px solid #f0f1f5;background:#fff;padding:12px 68px 12px 14px;border-radius:14px;position:relative;min-height:61px;box-shadow:0 2px 5px #12223803}.progress-card>div{font-size:12px;font-weight:650;color:var(--text)}.progress-card strong{color:var(--muted);font-size:11px;font-weight:500}.basket-art{position:absolute;right:6px;top:-3px;width:54px;height:68px}progress{height:8px;border-radius:99px;background:#e8ebf0;margin-top:9px}progress::-webkit-progress-bar{background:#e8ebf0}progress::-webkit-progress-value{background:linear-gradient(90deg,#46c28c,#31b976)}.connection{margin:0 3px;font-size:9px;min-height:24px}.connection .link{font-size:9px;min-height:24px}.tabs{margin:0 0 10px;gap:5px}.tabs button{font-size:10px;min-height:26px;padding:5px 11px;background:#f2f4f8;color:#78818d}.tabs button.selected{background:#e1f6eb;color:#248a5a}.tabs span{font-size:9px}.category-group{border-radius:13px;background:var(--category);padding:0 2px 2px;margin-bottom:10px;overflow:hidden;--category:#eeeafa}.category-group.produce{--category:#e9f8ef}.category-group.dairy{--category:#e5f3fc}.category-group.meat{--category:#fce8ec}.category-group.bakery{--category:#fdf2e2}.category-group.drinks{--category:#ece8ff}.category-group.household{--category:#e2f8f2}.category-group.grocery{--category:#f7f1dc}.category-heading{padding:0;margin:0}.category-fold{width:100%;display:flex;align-items:center;gap:7px;background:none;padding:3px 8px;min-height:30px;font-size:13px;font-weight:750;color:var(--text);border-radius:0;text-align:left}.category-fold>.product-art{width:19px;height:28px;flex-shrink:0}.category-fold>span:not(.product-art){font-size:10px;font-weight:500;margin-left:auto;color:#54616c}.category-fold>.fold-arrow{margin-left:4px!important;font-size:15px!important}.item{display:grid;grid-template-columns:42px minmax(0,1fr) auto 32px;gap:7px;min-height:57px;padding:2px 7px 2px 4px;margin:0 0 2px;border:1px solid #f0f1f5;border-radius:12px;background:#ffffffee;animation:none;box-shadow:0 1px 3px #12223803}.item:last-child{margin-bottom:0}.product-art{display:inline-block;background-image:url('/static/art/products.png');background-size:600% 400%;background-repeat:no-repeat;flex-shrink:0;width:42px;height:60px}.product-icon{width:42px;height:54px;background-color:transparent;border-radius:0;font-size:0;mix-blend-mode:multiply}.item-main{background:transparent;border-radius:0;min-height:46px;padding:5px 0;text-align:left;display:block;color:var(--text);font-weight:400}.item-name{font-size:12px;font-weight:650;line-height:1.25}.item-extra,.item-note{margin:2px 0 0;font-size:10px;font-weight:400;line-height:1.2;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.item-note{white-space:normal}.item-extra+.item-note{-webkit-line-clamp:1}.item-detail{font-size:10px;font-weight:400;color:#697583;margin:0;white-space:nowrap;text-align:right;max-width:65px;overflow-wrap:anywhere;white-space:normal}.pending-dot{font-size:9px;color:#a48142}.check{height:40px;min-height:40px;width:32px;min-width:32px;font-size:13px}.check:before{inset:10px 5px;border-width:1.5px;border-color:#bbc5c7;background:#fff}.item.done{background:#f8f9fbec}.item.done .item-name,.item.done .item-extra,.item.done .item-note,.item.done .item-detail{color:#a4acb5}.item.done .product-icon{opacity:.4;filter:none}.item.done .check:before{background:#6bcea0;border-color:#6bcea0}.item-actions{display:none}.add-dock{max-width:540px;bottom:calc(59px + env(safe-area-inset-bottom));padding:10px 16px 9px;background:linear-gradient(transparent,#fbfcfff5 28%)}.primary,.add-dock>.primary{background:linear-gradient(105deg,#30b778,#39bc80);border:0;border-radius:99px;color:#fff;box-shadow:0 5px 14px #32b47520;font-size:14px;font-weight:650;min-height:46px}.add-dock>.primary{min-height:48px}.bottom-nav{max-width:540px;border-radius:19px 19px 0 0;border-top:1px solid #f3f4f7;box-shadow:0 -4px 14px #13263a04;padding:6px 14px calc(6px + env(safe-area-inset-bottom))}.bottom-nav button{font-size:10px;gap:2px;min-height:45px;color:#8593a2}.bottom-nav button[aria-current]{color:#26a46a;background:none}.bottom-nav svg{width:22px;height:22px}.bottom-nav button[aria-current] svg{stroke-width:2.3}footer{font-size:10px;color:#8d96a0;margin-top:5px}footer>p{font-size:9px;margin-top:15px;line-height:1.5}#clear{font-size:10px}.sheet{background:#fbfcff;border:0;box-shadow:0 -8px 50px #17284120}.sheet-heading h2{color:var(--text)}.sheet-heading button{background:#f1f3f8;color:#526076}#item-dialog{height:100dvh;max-height:100dvh;max-width:540px;border-radius:0;margin:0 auto;padding:22px 15px calc(24px + env(safe-area-inset-bottom));overflow-y:auto}#item-dialog .sheet-heading{justify-content:center;position:relative;padding:9px 44px;margin-bottom:18px}#form-title{font-size:25px}#close-item{position:absolute;left:0;font-size:0!important;width:38px!important;height:38px!important;min-height:38px}#close-item:after{content:'‹';font-size:29px}#item-form>label{margin:18px 0 9px;font-size:13px;font-weight:750}#item-form>label:first-of-type{margin-top:0}#item-form input,#item-form textarea,#item-form select{background:#f8f9fc;border:1px solid #eceef4;color:#1f2e48;font-size:14px;border-radius:12px;min-height:44px}.name-with-art{display:flex;align-items:center;gap:9px;padding:8px;background:white;border-radius:16px;box-shadow:0 3px 12px #14254705}.name-with-art .product-art{width:40px;height:56px;mix-blend-mode:multiply}.name-with-art input{flex:1}#category{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;min-height:0;padding:0;border:0}#category-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}button.category-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 2px;gap:2px;border:1.5px solid transparent;border-radius:12px;background:#f1edff;font-size:9px;line-height:1.2;min-height:70px}.category-tile .product-art{width:30px;height:43px;mix-blend-mode:multiply}.category-tile.produce{background:#e9f7ef}.category-tile.dairy{background:#e8f4fc}.category-tile.meat{background:#fcebf0}.category-tile.bakery{background:#fcf3e4}.category-tile.household{background:#e5f9f3}.category-tile.grocery{background:#f7f4e3}.category-tile.selected{border-color:#30b778}.category-tile.selected:focus-visible{outline-offset:1px}#category-hint{background:#eef8f2;padding:10px;border-radius:10px;color:#6d8a7a;font-size:11px}.form-bottom{grid-template-columns:1.4fr 1fr}.quantity-control{background:#f4f5f9;border-radius:12px}.quantity-control button{background:transparent;color:var(--text);min-width:35px}.quantity-control input{border:none!important;background:transparent!important;font-weight:650;text-align:center}.form-bottom .primary{grid-column:1/-1;min-height:48px}.optional-fields{gap:10px}#delete-item{display:block;margin:14px auto 0;background:transparent;font-size:12px}#cancel{display:none}.recipe-search{display:flex;gap:8px;margin:14px 0}.recipe-search input{background:#f3f5fa;border:0;min-height:40px;font-size:12px;padding:10px 12px}.recipe-search select{width:100px;background:#f3f5fa;border:0;min-height:40px;font-size:10px;padding:6px}#discover-page{padding-top:0}#discover-page>.eyebrow{display:none}#discover-title{margin:3px 80px 0 0;font-size:28px}#discover-intro{font-size:11px;margin:5px 65px 12px 0;line-height:1.45}.suggestion-section{border-radius:16px;background:#fff9eb;padding:11px 9px;margin:12px 0}.suggestion-section.repeat{background:#eafbF1}.suggestion-section h2{font-size:15px;margin:0 0 4px;letter-spacing:-.3px}.suggestion-section>p{font-size:10px;color:var(--muted);margin:0 0 8px}.suggestion-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-height:350px;overflow:auto}.suggestion-product{background:#fff;border-radius:12px;padding:5px 3px;display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}.suggestion-product>.product-art{width:40px;height:60px}.suggestion-product>span:not(.product-art){font-size:10px;color:#253349;line-height:1.2;min-height:24px}.suggestion-product small{color:#89929b;font-size:9px;margin:3px 0}.suggestion-product button{color:#239761;background:#fff;border:1px solid #66bb91;border-radius:99px;padding:3px 4px;min-height:25px;font-size:9px;line-height:1;width:100%;margin-top:auto}.discovery-card{position:relative;display:grid;grid-template-columns:34% minmax(0,1fr);gap:10px;padding:8px;border:0;border-radius:17px;background:#fff;box-shadow:0 3px 9px #15213a06;margin:12px 0;overflow:hidden}.food-copy{min-width:0}.discovery-card h2{margin:0 0 4px;font-size:17px;line-height:1.1}.discovery-card .food-title{display:block;background:transparent;box-shadow:none;border-radius:0;min-height:0;padding:0;margin:0;width:auto;text-align:left;font-size:17px;line-height:1.15;font-weight:750;color:var(--text)}.discovery-card p{font-size:10px;line-height:1.35;margin:4px 0;color:#818b9a}.discovery-card .ingredient-preview{font-size:9px;min-height:0;color:#969eaa;margin-bottom:8px}.discovery-card .primary{font-size:10px;min-height:32px;margin:3px 0 0;padding:6px;white-space:normal;width:100%}.food-art{width:100%;aspect-ratio:1/1;align-self:center;background-repeat:no-repeat}.kit-art{background-image:url('/static/art/kits.png');background-size:200% 200%;mix-blend-mode:multiply}.kit-card{padding:10px 9px;background:#fff7e4;grid-template-columns:37% minmax(0,1fr);gap:5px;box-shadow:none}.kit-card.kit-1{background:#fff0f2}.kit-card.kit-2{background:#edf9ef}.kit-card .food-title{font-size:18px}.kit-card .food-art{align-self:center}.recipe-art{background-image:url('/static/art/recipes.png');background-size:210% 210%;border-radius:12px;align-self:stretch;aspect-ratio:auto;min-height:122px}.art-0{background-position:0% 0%}.art-1{background-position:100% 0%}.art-2{background-position:0% 100%}.art-3{background-position:100% 100%}.recipe-card{grid-template-columns:33% minmax(0,1fr)}.recipe-card .food-title{padding-right:45px;font-size:15px}.time-badge{position:absolute;right:9px;top:10px;font-size:8px;color:#7b8794;background:#f3f5fa;border-radius:20px;padding:4px 7px;z-index:1}.recipe-card.recipe-0{background:#eaf8f1;min-height:205px;grid-template-columns:56% 44%;padding:15px 9px 12px 13px;gap:0}.recipe-0 .food-art{grid-column:2;grid-row:1;margin:-15px -9px -12px 0;width:calc(100% + 9px);height:calc(100% + 27px);border-radius:0;background-size:250% 220%;background-position:0% 0%;mask-image:linear-gradient(90deg,transparent,#000 26%)}.recipe-0 .food-copy{grid-column:1;grid-row:1;z-index:1;padding-top:1px}.recipe-0 .food-title{font-size:21px;padding-right:0;margin:14px -40px 9px 0}.recipe-0 p{font-size:11px;margin-right:-6px}.recipe-0 .ingredient-preview{font-size:9px;margin-top:9px}.recipe-0 .add-ingredients{font-size:10px;min-height:34px;margin-top:10px;width:120%}.day-badge{color:#2b9e68;background:#ffffffaa;border-radius:20px;padding:5px 8px;font-size:10px;font-weight:650}.recipe-0 .time-badge{background:#ffffffdd}#discover-feedback{position:sticky;top:6px;z-index:2;background:#ddf7e9;box-shadow:0 3px 9px #173c2710;color:#26774b;font-size:12px}#recipe-add{min-height:44px}#item-search{background:#f3f5fa;border:0;font-size:13px;min-height:38px;margin-bottom:8px}#undo-toast{bottom:calc(130px + env(safe-area-inset-bottom));background:#26744e}#members input{accent-color:#32b475}
@media(max-width:370px){main{padding-left:11px;padding-right:11px}h1,.title-row h1,#discover-title{font-size:25px}.app-topbar{right:11px;gap:5px}.app-topbar button{width:34px;min-height:34px;height:34px}#list-page>header{padding-right:74px}.item{grid-template-columns:36px minmax(0,1fr) auto 28px;gap:5px}.product-icon{width:36px;height:52px}.item-name{font-size:11px}.item-note,.item-extra,.item-detail{font-size:9px}.check{width:28px;min-width:28px}.check:before{inset:10px 3px}.category-fold{font-size:12px}.add-dock{padding-left:11px;padding-right:11px}.discovery-card .food-title{font-size:14px}.recipe-0 .food-title{font-size:19px}.recipe-card .food-title{padding-right:40px}.recipe-0 .food-title{padding-right:0}.kit-card .food-title{font-size:16px}.suggestion-grid{gap:4px}.suggestion-product button{font-size:8px}.discovery-card .primary{font-size:9px}.recipe-search select{width:86px}.optional-fields{gap:7px}#category-tiles{gap:5px}.category-tile{font-size:8px!important}.recipe-0 .food-title{margin-right:-28px}}
.p0{background-position:0% 0.0%;}
.p1{background-position:20% 0.0%;}
.p2{background-position:40% 0.0%;}
.p3{background-position:60% 0.0%;}
.p4{background-position:80% 0.0%;}
.p5{background-position:100% 0.0%;}
.p6{background-position:0% 33.333333333333336%;}
.p7{background-position:20% 33.333333333333336%;}
.p8{background-position:40% 33.333333333333336%;}
.p9{background-position:60% 33.333333333333336%;}
.p10{background-position:80% 33.333333333333336%;}
.p11{background-position:100% 33.333333333333336%;}
.p12{background-position:0% 66.66666666666667%;}
.p13{background-position:20% 66.66666666666667%;}
.p14{background-position:40% 66.66666666666667%;}
.p15{background-position:60% 66.66666666666667%;}
.p16{background-position:80% 66.66666666666667%;}
.p17{background-position:100% 66.66666666666667%;}
.p18{background-position:0% 100.0%;}
.p19{background-position:20% 100.0%;}
.p20{background-position:40% 100.0%;}
.p21{background-position:60% 100.0%;}
.p22{background-position:80% 100.0%;}
.p23{background-position:100% 100.0%;}
#save{width:100%;margin-top:20px}.form-bottom{padding:12px;background:#fff;border-radius:16px;box-shadow:0 3px 12px #14254705}.form-bottom label{font-size:12px;color:var(--text)}#item-dialog .sheet-heading{margin-bottom:10px}
.p24{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:0.0% 0.0%;}
.p25{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:33.333333333333336% 0.0%;}
.p26{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:66.66666666666667% 0.0%;}
.p27{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:100.0% 0.0%;}
.p28{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:0.0% 33.333333333333336%;}
.p29{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:33.333333333333336% 33.333333333333336%;}
.p30{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:66.66666666666667% 33.333333333333336%;}
.p31{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:100.0% 33.333333333333336%;}
.p32{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:0.0% 66.66666666666667%;}
.p33{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:33.333333333333336% 66.66666666666667%;}
.p34{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:66.66666666666667% 66.66666666666667%;}
.p35{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:100.0% 66.66666666666667%;}
.p36{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:0.0% 100.0%;}
.p37{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:33.333333333333336% 100.0%;}
.p38{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:66.66666666666667% 100.0%;}
.p39{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:100.0% 100.0%;}
.product-icon{clip-path:inset(3% 1% 4% 1%)}.discovery-card p{font-size:11px}.discovery-card .ingredient-preview{font-size:10px}.kit-card .primary{font-size:11px}.recipe-0 .ingredient-preview{font-size:10px}.time-badge{font-size:9px}.category-tile.meat .product-art{background-image:url("/static/art/products-extra.png");background-size:400% 400%;background-position:100% 33.333333%;}

.product-art{clip-path:inset(4% 7% 5% 7%)}#item-dialog{padding-bottom:calc(92px + env(safe-area-inset-bottom))}#quick-save{position:absolute;right:0;top:4px;background:var(--accent);color:white;font-size:23px;width:40px;height:40px;min-height:40px;border-radius:50%}#auto-category{font-size:10px;min-height:24px;margin-top:5px;color:#278657}#category-hint{margin-top:4px}.form-nav{position:fixed}.item-main:focus-visible{outline-color:#32b475}.sheet input:focus-visible,.sheet textarea:focus-visible{outline:2px solid #59c592;outline-offset:1px}

.recipe-placeholder{display:grid;place-items:center;background:#eaf8f1;border-radius:12px;font-size:44px;overflow:hidden;min-height:122px}.recipe-placeholder img{width:100%;height:100%;object-fit:cover}.ingredient-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}#recipe-more,#recipe-refresh{display:block;width:100%;margin:10px 0}#recipe-catalog-status:empty{display:none}
