:root{--cream:#f5f2e9;--paper:#fffdf7;--ink:#253c39;--muted:#86938b;--mint:#dcebe2;--mint-deep:#a9cbb9;--line:#e6e6dc;--coral:#d9896b;--shadow:0 18px 50px #52685b12;font-family:'Gowun Dodum',sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 48% -18%,#fffefa 0,#f8f5ed 38%,var(--cream) 82%);min-height:100vh}.app-shell{width:min(1080px,calc(100% - 40px));margin:0 auto;padding:28px 0 22px}.topbar{height:54px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:#dcebe2}.brand-mark svg{width:28px;fill:none;stroke:#477267;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.brand strong,.brand small{display:block}.brand strong{font-size:16px;letter-spacing:-.5px}.brand small{font:600 8px 'DM Sans',sans-serif;letter-spacing:1.6px;color:#84968a;margin-top:2px}.topbar-right{display:flex;align-items:center;gap:8px;color:#8c9890;font-size:11px}.sync-dot{width:7px;height:7px;border-radius:100%;background:#73a78b;box-shadow:0 0 0 3px #73a78b1c}.icon-button,.close-button{border:0;background:transparent;color:inherit;cursor:pointer}.icon-button{width:34px;height:34px;margin-left:6px;display:grid;place-items:center;border-radius:50%;background:#fffdf799}.icon-button svg{width:17px;fill:none;stroke:#72877c;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.intro{display:flex;align-items:end;justify-content:space-between;padding:40px 4px 27px}.eyebrow,.section-caption,.dialog-kicker{font:700 9px 'DM Sans',sans-serif;letter-spacing:1.6px;color:#98a89d}.intro h1{font-size:33px;letter-spacing:-1.6px;line-height:1.24;margin:8px 0 9px;font-weight:400}.intro h1 em{font-style:normal;color:#6f9984}.intro p{margin:0;color:#8b9890;font-size:13px}.today-card{width:153px;height:72px;background:#fdfcf6;border:1px solid #ebe9df;border-radius:17px;padding:12px 14px;position:relative;display:flex;flex-direction:column;justify-content:center;box-shadow:0 5px 20px #4a5c4c08}.today-card span:not(.sun-icon){font-size:10px;color:#91a096}.today-card strong{font-size:13px;margin-top:3px}.sun-icon{position:absolute;right:13px;top:12px;font:20px 'DM Sans',sans-serif;color:#dfa776}.appliance{border-radius:25px;background:#e9eee5;padding:11px;box-shadow:var(--shadow);border:1px solid #e2e7df}.fridge-section{min-height:438px;background:#f7f8f1;border:1px solid #e6ebe2;border-radius:18px 18px 11px 11px;padding:25px 28px 24px;position:relative;overflow:hidden}.fridge-section:before{content:'';position:absolute;right:0;top:0;width:5px;height:100%;background:linear-gradient(#dce9df,#e5ede6);border-radius:0 17px 0 0}.section-heading,.freezer-heading{display:flex;justify-content:space-between;align-items:center}.section-title{display:flex;align-items:center;gap:9px}.section-title h2{margin:0;font-size:19px;letter-spacing:-.5px}.temperature-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#e5f0e9;color:#83a995;font-size:16px}.section-caption{font-size:8px;letter-spacing:1.2px;margin:3px 0 0 2px}.section-heading p,.freezer-heading p{font-size:11px;color:#98a29b;margin:7px 0 0 37px}.section-count{font:500 11px 'DM Sans',sans-serif;color:#92a096;background:#fffdf8;border:1px solid #e8ebe3;padding:7px 10px;border-radius:10px}.category-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:27px}.category-card{cursor:pointer;text-align:left;border:1px solid #e7ebe3;background:#fffefa;border-radius:15px;padding:14px 13px 12px;min-height:127px;color:inherit;transition:transform .2s,border .2s,box-shadow .2s;position:relative}.category-card:hover{transform:translateY(-3px);border-color:#c4d8c9;box-shadow:0 10px 22px #455f4a0e}.category-card:focus-visible,.food-card:focus-visible,button:focus-visible{outline:2px solid #73a78b;outline-offset:2px}.category-top{display:flex;align-items:center;justify-content:space-between}.category-icon{font-size:21px;line-height:1}.category-count{font:600 10px 'DM Sans',sans-serif;color:#91a097;background:#f2f5ef;border-radius:20px;padding:4px 7px}.category-card h3{font-size:13px;margin:12px 0 5px;letter-spacing:-.3px}.category-preview{font-size:10px;color:#9ba69f;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-card .chevron{position:absolute;right:12px;bottom:11px;color:#b0bdb2;font:13px 'DM Sans',sans-serif}.empty-preview{color:#b4bdb6}.food-area{margin-top:26px;display:none}.food-area.active{display:block}.food-area-heading{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e5e9e0;padding-top:18px;margin-bottom:12px}.food-area-heading h3{font-size:14px;margin:0;display:flex;align-items:center;gap:8px}.back-button{border:0;background:none;color:#86978b;cursor:pointer;font:11px 'Gowun Dodum',sans-serif}.food-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.food-card{cursor:pointer;display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid #e7ebe3;border-radius:12px;background:#fffefa;min-width:0}.food-card:hover{border-color:#c4d8c9}.food-thumb{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:#eff4eb;font-size:19px}.food-info{min-width:0;flex:1}.food-info strong,.food-info span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.food-info strong{font-size:12px}.food-info span{font:10px 'DM Sans',sans-serif;color:#9aa49c;margin-top:4px}.expiry-chip{font-size:9px;color:#83a08c;white-space:nowrap}.expiry-chip.soon{color:#d18a6d}.add-card{border:1px dashed #b8cbbd;background:#f4f8f1;color:#72927d;cursor:pointer;border-radius:12px;min-height:62px;display:flex;align-items:center;justify-content:center;gap:8px;font:12px 'Gowun Dodum',sans-serif;transition:background .2s}.add-card:hover{background:#eaf2e9}.plus{font:22px 'DM Sans',sans-serif;font-weight:300}.fridge-empty{grid-column:1/-1;text-align:center;padding:27px;color:#9aa69c;font-size:12px}.freezer-section{margin-top:11px;min-height:164px;background:#dbe7e3;border-radius:11px 11px 18px 18px;padding:22px 28px;position:relative;overflow:hidden}.freezer-section:before{content:'';position:absolute;right:0;top:0;width:5px;height:100%;background:#cfdfd9}.freezer-heading .section-caption{color:#829b90}.freezer-heading p{color:#82988d}.freezer-snow{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#edf4f1;color:#789c8e;font-size:16px}.freezer-count{background:#edf3ef;border-color:#d3e1d9}.freezer-content{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.freezer-food{border:1px solid #d2e0d8;background:#f2f7f2;border-radius:11px;padding:9px 12px;display:flex;align-items:center;gap:8px;cursor:pointer;color:#3e6157;font:11px 'Gowun Dodum',sans-serif}.freezer-food:hover{background:#fff}.freezer-food span:first-child{font-size:17px}.freezer-add{padding:9px 13px;min-height:38px;border:1px dashed #a6c0b1;background:#e6f0e9;border-radius:11px;color:#668d78;cursor:pointer;font:11px 'Gowun Dodum',sans-serif}.freezer-add:hover{background:#f4faf4}.freezer-empty{font-size:11px;color:#82998f}footer{display:flex;justify-content:space-between;gap:20px;padding:18px 5px 0;color:#9ca69e;font-size:10px}footer b{color:#718a7a;font-weight:400}.sample-note{color:#b1b3a9}.dialog{border:0;padding:0;background:transparent;width:min(410px,calc(100% - 32px));max-width:none;color:var(--ink);overflow:visible}.dialog::backdrop{background:#26383266;backdrop-filter:blur(4px)}.dialog form,.detail-card{background:#fffdf7;border:1px solid #eff0e7;border-radius:22px;padding:25px 27px 27px;box-shadow:0 24px 75px #1a302a30}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-kicker{color:#87a08e}.close-button{font:26px 'DM Sans',sans-serif;font-weight:300;line-height:1;color:#99a49b;width:29px;height:29px;border-radius:50%;background:#f2f4ed}.dialog h2{font-size:21px;letter-spacing:-.7px;margin:10px 0 3px}.dialog-subtitle{font-size:11px;color:#98a39a;margin:0 0 21px}.field-label{display:block;font-size:11px;color:#647c70;margin:14px 0 7px}.dialog input,.dialog select{width:100%;height:43px;border:1px solid #e6e9e0;border-radius:10px;background:#fffefa;padding:0 12px;color:#304a42;font:12px 'Gowun Dodum',sans-serif;outline:none}.dialog input:focus,.dialog select:focus{border-color:#9bbca6;box-shadow:0 0 0 3px #9bbca621}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.unit-input{height:43px;position:relative}.unit-input input{padding-right:34px}.unit-input span{position:absolute;right:12px;top:12px;color:#9ba69d;font-size:11px}.form-error{min-height:16px;margin:9px 0 0;color:#c86e58;font-size:10px}.save-button,.edit-button{height:47px;width:100%;border:0;border-radius:12px;background:#6e9581;color:white;cursor:pointer;font:13px 'Gowun Dodum',sans-serif;display:flex;justify-content:center;align-items:center;gap:12px;transition:background .2s}.save-button:hover,.edit-button:hover{background:#587f6b}.save-button span{font:17px 'DM Sans',sans-serif}.save-button:disabled{opacity:.55;cursor:wait}.detail-dialog{width:min(390px,calc(100% - 32px))}.detail-card{text-align:center;position:relative}.detail-card .dialog-top{text-align:left}.detail-emoji{margin:15px auto 7px;width:68px;height:68px;display:grid;place-items:center;font-size:36px;background:#eff4eb;border-radius:21px}.detail-category{font-size:10px;color:#82978b}.detail-card h2{font-size:23px;margin:7px 0 2px}.detail-subtitle{font:11px 'DM Sans',sans-serif;color:#98a39a;margin:5px 0 20px}.detail-facts{text-align:left;border-top:1px solid #eceee6;border-bottom:1px solid #eceee6;display:grid;grid-template-columns:1fr 1fr;padding:14px 0;margin:0 0 16px}.detail-facts div+div{border-left:1px solid #eceee6;padding-left:17px}.detail-facts span,.detail-facts b{display:block}.detail-facts span{font-size:10px;color:#9aa49a}.detail-facts b{font-size:12px;font-weight:400;margin-top:5px}.detail-actions{display:flex;gap:9px}.delete-button{height:44px;padding:0 17px;border:1px solid #eee4dc;border-radius:11px;background:#fffaf5;color:#bd7f65;font:12px 'Gowun Dodum',sans-serif;cursor:pointer}.edit-button{height:44px;flex:1}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#304a42;color:#fff;padding:11px 17px;border-radius:30px;font-size:11px;box-shadow:0 8px 24px #203c3330;transition:all .25s;z-index:5;white-space:nowrap}.toast.show{transform:translate(-50%,0);opacity:1}.loading,.load-error{padding:38px;text-align:center;color:#94a198;font-size:12px}.load-error{color:#bd775f}
@media(max-width:760px){.app-shell{width:min(100% - 24px,600px);padding-top:15px}.intro{padding:31px 4px 21px}.intro h1{font-size:29px}.today-card{width:130px}.fridge-section{min-height:420px;padding:21px 19px 20px}.category-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin-top:22px}.category-card{min-height:113px;padding:12px 10px}.category-card h3{margin-top:9px}.food-list{grid-template-columns:1fr 1fr}.freezer-section{padding:20px 19px;min-height:150px}footer{padding:15px 4px 0}.sample-note{max-width:125px;text-align:right}}
@media(max-width:430px){.app-shell{width:calc(100% - 20px)}.topbar-right{font-size:10px}.intro h1{font-size:26px}.intro p{font-size:11px}.today-card{width:115px;height:65px;padding:10px}.category-grid{grid-template-columns:repeat(2,1fr)}.category-card{min-height:108px}.category-card:last-child{grid-column:1/-1;min-height:94px}.food-list{grid-template-columns:1fr}.section-caption{font-size:7px}.section-title{gap:7px}.section-title h2{font-size:17px}.fridge-section{padding-left:15px;padding-right:15px}.freezer-section{padding-left:15px;padding-right:15px}.food-area-heading h3{font-size:13px}footer{font-size:9px}}
.brand small,.intro,footer{display:none}.topbar-right{gap:10px;font:11px 'DM Sans',sans-serif;color:#809187}.sample-chip{font:10px 'Gowun Dodum',sans-serif;color:#8a9a8e;background:#e8efe7;border-radius:20px;padding:5px 8px}.app-shell{padding-top:24px}.appliance.focused .category-grid,.appliance.focused .section-heading,.appliance.focused .freezer-section{display:none}.appliance.focused .fridge-section{min-height:0;padding-top:23px;padding-bottom:23px;border-radius:18px}.appliance.focused .food-area{margin-top:0}.appliance.focused .food-area-heading{border-top:0;padding-top:0;margin-bottom:14px}
.topbar-right{font:12px 'Gowun Dodum',sans-serif;color:#72877b}.appliance:not(.focused) .category-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:17px}.category-card{min-height:61px;height:61px;padding:7px 6px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:4px}.category-icon{font-size:18px}.category-label{font-size:10px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-count{position:absolute;right:5px;top:4px;font-size:8px;padding:2px 5px}.section-heading,.freezer-heading{align-items:center}.section-title{gap:8px}.add-category{width:22px;height:22px;border:1px dashed #b5caba;border-radius:50%;background:#f5f8f1;color:#759580;cursor:pointer;font:17px 'DM Sans',sans-serif;line-height:1}.add-category:hover{background:#e8f1e8}.appliance.focused .fridge-section,.appliance.focused .freezer-section{display:none;min-height:0;padding:20px 22px;border-radius:18px}.appliance.focused .fridge-section.active-compartment,.appliance.focused .freezer-section.active-compartment{display:block}.appliance.focused .active-compartment .section-heading,.appliance.focused .active-compartment .freezer-heading,.appliance.focused .active-compartment .category-grid{display:none}.appliance.focused .active-compartment .food-area{display:block;margin:0}.appliance.focused .food-area-heading{border:0;padding:0;margin:0 0 12px}.food-area-heading h3{font-size:13px}.food-list{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}.food-card,.add-card{min-height:48px;height:48px;padding:4px;display:flex;flex-direction:column;justify-content:center;gap:1px;border-radius:10px}.food-thumb{width:auto;height:auto;background:transparent;font-size:17px;line-height:1.05}.food-info{width:100%;flex:none}.food-info strong{font-size:9px;text-align:center}.food-info span{display:none}.add-card{min-height:48px}.add-card .plus{font-size:21px}.category-grid:empty{display:none}.icon-choices{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.icon-choice{width:100%;aspect-ratio:1;border:1px solid #e7ebe3;border-radius:10px;background:#fffefa;font-size:19px;cursor:pointer}.icon-choice.selected{background:#e8f1e8;border-color:#86ad91;box-shadow:0 0 0 2px #86ad9133}.icon-choice:hover{border-color:#a9c7b0}.sample-badge{font-size:7px;color:#89978d;line-height:1}.appliance.focused .fridge-section:before,.appliance.focused .freezer-section:before{display:none}
@media(max-width:760px){.app-shell{width:min(100% - 24px,600px)}.appliance:not(.focused) .category-grid{gap:6px}.category-card{min-height:55px;height:55px;padding:6px 3px}.category-icon{font-size:17px}.category-label{font-size:9px}.food-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.food-card,.add-card{height:47px;min-height:47px}.appliance.focused .fridge-section.active-compartment,.appliance.focused .freezer-section.active-compartment{padding:16px 12px}}
@media(max-width:430px){.app-shell{width:calc(100% - 20px)}.topbar{height:45px}.appliance:not(.focused) .category-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.category-card{min-height:52px;height:52px;border-radius:9px;padding:5px 2px;gap:2px}.category-count{right:3px;top:2px;padding:1px 4px}.category-label{font-size:8px;letter-spacing:-.3px}.category-icon{font-size:16px}.section-title h2{font-size:16px}.fridge-section{padding-left:12px;padding-right:12px}.freezer-section{padding-left:12px;padding-right:12px}.appliance.focused .fridge-section.active-compartment,.appliance.focused .freezer-section.active-compartment{padding:14px 10px}.food-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.food-card,.add-card{height:46px;min-height:46px;border-radius:8px}.food-thumb{font-size:16px}.food-info strong{font-size:8px}.food-area-heading h3{font-size:12px}.category-dialog form{padding:22px}}
.appliance:not(.focused) .category-grid{grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:12px;margin-top:20px}.category-card{min-height:76px;height:auto;padding:12px;display:grid;grid-template-columns:30px 1fr auto;grid-template-rows:1fr;align-items:center;justify-content:initial;gap:8px;border-radius:14px}.category-icon{font-size:22px;line-height:1}.category-label{font-size:13px;font-weight:600;white-space:normal;overflow-wrap:anywhere}.category-count{position:static;grid-column:3;grid-row:1;font-size:10px;padding:4px 7px}.category-card:hover{transform:translateY(-2px)}.food-card{position:relative;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab}.food-card.dragging{opacity:.35;cursor:grabbing}.drag-handle{display:none}.trash-drop{min-height:50px;margin-top:13px;border:1px dashed #d6b5a8;border-radius:13px;background:#fbf4ef;color:#a97968;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;transition:background .15s,border-color .15s,transform .15s}.trash-icon{font-size:18px;line-height:1}.trash-drop.drop-active{background:#f4dfd7;border-color:#c97f68;transform:scale(1.01)}.drag-ghost{position:fixed;z-index:10;pointer-events:none;border:1px solid #c5d9cb;border-radius:12px;background:#fffdf7;padding:9px 13px;box-shadow:0 10px 25px #233c2c30;font-size:12px;color:#34534a;white-space:nowrap;transform:translate(0,0)}.confirm-card{background:#fffdf7;border:1px solid #eff0e7;border-radius:22px;padding:25px 27px 23px;box-shadow:0 24px 75px #1a302a30;text-align:center}.confirm-icon{display:grid;place-items:center;width:53px;height:53px;margin:18px auto 9px;border-radius:16px;background:#f8ebe4;color:#bf7963;font-size:27px}.confirm-card h2{font-size:19px;margin:7px 0}.confirm-card p{font-size:13px;color:#809086;margin:0 0 19px}.confirm-actions{display:flex;gap:9px}.cancel-button,.confirm-delete-button{height:44px;flex:1;border:0;border-radius:11px;font:12px 'Gowun Dodum',sans-serif;cursor:pointer}.cancel-button{background:#f0f2ec;color:#657b70}.confirm-delete-button{background:#c98269;color:white}.confirm-delete-button:hover{background:#af6a53}.confirm-delete-button:disabled{opacity:.55;cursor:wait}
@media(max-width:760px){.appliance:not(.focused) .category-grid{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:9px}.category-card{min-height:68px;padding:10px;grid-template-columns:26px 1fr auto;gap:6px}.category-icon{font-size:20px}.category-label{font-size:11px}.food-area.active{padding-bottom:4px}.trash-drop{min-height:46px}.food-card{touch-action:pan-y}.drag-handle{position:absolute;display:block;top:2px;right:2px;width:17px;height:14px;padding:0;border:0;background:transparent;color:#95aa9a;font:13px/1 'DM Sans',sans-serif;touch-action:none;cursor:grab}}
@media(max-width:430px){.appliance:not(.focused) .category-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:7px}.category-card{min-height:64px;padding:9px;grid-template-columns:22px minmax(0,1fr) auto;gap:5px}.category-icon{font-size:18px}.category-label{font-size:10px}.category-count{font-size:9px;padding:3px 5px}.food-card{padding-top:6px}.sample-badge{font-size:6px}.trash-drop{margin-top:10px}.drag-handle{width:16px;height:14px}}
.food-detail-button{width:100%;height:100%;min-width:0;padding:4px 2px;border:0;border-radius:inherit;background:transparent;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer}.food-detail-button:focus-visible{outline:2px solid #73a78b;outline-offset:1px}.food-card.dragging .food-detail-button{pointer-events:none}.drag-handle{z-index:1}
.brand small{display:block}.topbar-right{gap:9px}.top-action{border:1px solid #e2e9e1;background:#fffdf7;color:#536e61;border-radius:10px;padding:7px 12px;cursor:pointer;font:12px 'Gowun Dodum',sans-serif}.top-action:hover,.small-action:hover{background:#edf4ec}
.appliance:not(.focused){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:9px}.fridge-section,.freezer-section,.pantry-section{min-width:0;min-height:0;margin:0;padding:17px 14px;border-radius:15px;overflow:visible}.fridge-section:before,.freezer-section:before{display:none}.freezer-section{background:#dfeae4}.pantry-section{position:relative;background:#f2eee2;border:1px solid #ebe5d6;border-radius:15px;padding:17px 14px}.pantry-cabinet{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#faf3e3;color:#ad9061;font-size:20px}.pantry-heading{display:flex;align-items:center}.appliance:not(.focused) .category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:13px}.category-tile{position:relative;min-width:0}.category-card{min-height:58px;height:auto;padding:8px 21px 8px 8px;grid-template-columns:22px minmax(0,1fr) auto;gap:5px;border-radius:11px}.category-icon{font-size:17px}.category-label{font-size:10px}.category-count{font-size:8px;padding:3px 5px}.category-drag-handle{position:absolute;right:3px;bottom:2px;width:16px;height:15px;padding:0;border:0;background:transparent;color:#9aaa9f;font:12px/1 'DM Sans',sans-serif;touch-action:none;cursor:grab}.category-tile.dragging{opacity:.4}.category-trash-drop{grid-column:1/-1;min-height:43px;border:1px dashed #d6b5a8;border-radius:12px;background:#fbf4ef;color:#a97968;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;transition:background .15s,border-color .15s}.category-trash-drop[hidden]{display:none}.category-trash-drop>span{font-size:18px}.category-trash-drop.drop-active,.basket-drop.drop-active{background:#f4dfd7;border-color:#c97f68;transform:scale(1.01)}
.appliance.focused{display:block}.appliance.focused .fridge-section,.appliance.focused .freezer-section,.appliance.focused .pantry-section{display:none;min-height:0;padding:18px 16px;border-radius:16px}.appliance.focused .fridge-section.active-compartment,.appliance.focused .freezer-section.active-compartment,.appliance.focused .pantry-section.active-compartment{display:block}.appliance.focused .active-compartment .section-heading,.appliance.focused .active-compartment .freezer-heading,.appliance.focused .active-compartment .pantry-heading,.appliance.focused .active-compartment .category-grid{display:none}.appliance.focused .active-compartment .food-area{display:block;margin:0}.appliance.focused .food-area-heading{border:0;padding:0;margin:0 0 12px}.appliance.focused .food-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.food-drop-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.trash-drop,.basket-drop{min-height:45px;margin-top:12px;border:1px dashed #d6b5a8;border-radius:12px;background:#fbf4ef;color:#a97968;display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;transition:background .15s,border-color .15s,transform .15s}.basket-drop{border-color:#b8cfbe;background:#f0f6ef;color:#688775}.basket-drop span:first-child{font-size:16px}.basket-zone{margin-top:12px;border:1px solid #e2e9df;border-radius:17px;background:#fffdf7;box-shadow:0 8px 28px #52685b12;overflow:hidden}.basket-heading{width:100%;min-height:59px;border:0;background:transparent;display:flex;align-items:center;text-align:left;gap:10px;padding:9px 15px;color:var(--ink);cursor:pointer}.basket-mark{font-size:23px}.basket-heading strong,.basket-heading small{display:block}.basket-heading strong{font-size:13px}.basket-heading small{font-size:10px;color:#8b9a90;margin-top:2px}.basket-chevron{margin-left:auto;color:#8da092;transition:transform .2s}.basket-zone.collapsed .basket-chevron{transform:rotate(180deg)}.basket-content{padding:0 14px 13px}.basket-zone.collapsed .basket-content{display:none}.basket-items{display:grid;gap:6px}.basket-row{display:grid;grid-template-columns:minmax(70px,1fr) 90px 72px 28px;gap:6px;align-items:center;background:#f7f8f2;border-radius:10px;padding:6px 8px}.basket-food{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basket-row input,.basket-row select,.recipe-ingredient-row input,.recipe-ingredient-row select,#basket-amount-form input,#basket-amount-form select{height:34px;min-width:0;border:1px solid #e4e9e0;border-radius:8px;background:#fffefa;padding:0 7px;color:#304a42;font:11px 'Gowun Dodum',sans-serif}.basket-remove,.recipe-ingredient-row button{width:26px;height:26px;border:0;border-radius:8px;background:#f4eae5;color:#b87964;cursor:pointer}.basket-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:9px}.basket-clear,.basket-save,.small-action{border:1px solid #dfe7dc;border-radius:9px;background:#f6f8f2;color:#607c6b;padding:7px 11px;cursor:pointer;font:11px 'Gowun Dodum',sans-serif}.basket-save{background:#739780;color:white;border-color:#739780}.basket-detail-button{height:44px;padding:0 12px;border:1px solid #dce9de;border-radius:11px;background:#edf5ed;color:#587e68;font:11px 'Gowun Dodum',sans-serif;cursor:pointer}
.dialog-card{background:#fffdf7;border:1px solid #eff0e7;border-radius:22px;padding:24px 25px;box-shadow:0 24px 75px #1a302a30}.dialog-card h2,.dialog form h2{font-size:20px;margin:13px 0 16px}.dialog-help{font-size:11px;line-height:1.6;color:#829187;margin:10px 0}.share-links{display:grid;gap:7px}.share-link{display:flex;align-items:center;gap:7px;background:#f4f7f1;border-radius:10px;padding:7px 8px}.share-link a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#456e59;font:11px 'DM Sans',sans-serif;white-space:nowrap}.share-link button,.recipe-card-actions button{border:0;border-radius:8px;background:#e7efe6;color:#587661;padding:6px 9px;cursor:pointer;font:10px 'Gowun Dodum',sans-serif}.wide-dialog{width:min(560px,calc(100% - 24px));max-height:90vh;overflow:auto}.recipe-heading{display:flex;align-items:center;justify-content:space-between}.recipe-heading h2{margin:10px 0 12px}.recipe-list{display:grid;gap:8px;max-height:56vh;overflow:auto}.recipe-card{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f6f7f1;border:1px solid #e8ebe2;border-radius:12px;padding:11px}.recipe-card strong,.recipe-card small{display:block}.recipe-card strong{font-size:12px}.recipe-card small{font-size:10px;color:#87958b;margin-top:3px}.recipe-card-actions{display:flex;gap:5px}.empty-state{text-align:center;color:#92a096;font-size:12px;padding:22px}.recipe-ingredients{display:grid;gap:6px}.recipe-ingredient-row{display:grid;grid-template-columns:minmax(90px,1fr) 85px 75px 28px;gap:5px;align-items:center}.recipe-ingredient-row input{width:100%}.dialog textarea{width:100%;border:1px solid #e6e9e0;border-radius:10px;background:#fffefa;padding:10px 12px;color:#304a42;font:12px 'Gowun Dodum',sans-serif;resize:vertical}.basket-amount-form .field-row{grid-template-columns:1fr 100px}
@media(max-width:760px){.app-shell{width:min(100% - 18px,620px);padding-top:13px}.topbar{height:48px}.brand-mark{width:35px;height:35px}.brand strong{font-size:14px}.brand small{font-size:7px}.topbar-right{gap:5px;font-size:9px}.top-action{padding:6px 8px;font-size:10px}.appliance:not(.focused){grid-template-columns:1fr;gap:8px}.fridge-section,.freezer-section,.pantry-section{padding:14px 12px}.appliance:not(.focused) .category-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:7px}.category-card{min-height:55px;padding:7px 20px 7px 8px}.food-list{grid-template-columns:repeat(5,minmax(0,1fr))}.food-drop-row{grid-template-columns:1fr 1fr}.basket-row{grid-template-columns:minmax(55px,1fr) 75px 62px 26px}.appliance.focused .fridge-section.active-compartment,.appliance.focused .freezer-section.active-compartment,.appliance.focused .pantry-section.active-compartment{padding:14px 10px}}
@media(max-width:430px){.app-shell{width:calc(100% - 14px)}.topbar-right{gap:4px}.top-action{padding:6px 7px;font-size:9px}.appliance:not(.focused){padding:7px}.category-trash-drop{min-height:40px}.food-drop-row{gap:5px}.trash-drop,.basket-drop{font-size:9px;min-height:42px}.basket-row{grid-template-columns:minmax(45px,1fr) 62px 54px 24px;gap:4px;padding:5px}.basket-row input,.basket-row select{font-size:10px;padding:0 4px}.recipe-ingredient-row{grid-template-columns:minmax(70px,1fr) 65px 58px 25px;gap:4px}.detail-actions{gap:5px}.basket-detail-button{padding:0 8px;font-size:10px}}

/* PWA home view: compact three-column category cards with every compartment visible. */
.topbar-right #today-label{order:0;white-space:nowrap;color:#829187;font-size:10px}
.topbar-right #recipes-open{order:1}
.topbar-right #share-open{order:2}
.topbar-right #install-open{order:3}
.appliance:not(.focused) .category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}
.category-card{min-height:49px;height:49px;padding:5px 5px;grid-template-columns:18px minmax(0,1fr) auto;grid-template-rows:1fr;gap:4px;border-radius:10px}
.category-icon{font-size:17px}
.category-label{font-size:10px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}
.category-count{position:static;grid-column:auto;grid-row:auto;font-size:8px;padding:2px 4px}
.category-drag-handle{right:1px;bottom:1px;width:13px;height:12px;font-size:10px}
@media(max-width:760px){
  .app-shell{width:calc(100% - 14px);padding-top:7px;padding-bottom:8px}
  .topbar{height:42px}
  .brand{gap:7px}.brand-mark{width:32px;height:32px;border-radius:10px}.brand-mark svg{width:23px}.brand strong{font-size:13px}.brand small{font-size:6px;letter-spacing:1px}
  .topbar-right{gap:4px}.topbar-right #today-label{font-size:9px}.top-action{padding:5px 6px;font-size:9px;border-radius:8px}
  .appliance:not(.focused){grid-template-columns:1fr;gap:6px;padding:5px}
  .fridge-section,.freezer-section,.pantry-section{padding:9px 9px;border-radius:12px}
  .section-title{gap:6px}.section-title h2{font-size:14px}.temperature-icon,.freezer-snow,.pantry-cabinet{width:23px;height:23px;font-size:14px;border-radius:7px}
  .add-category{width:19px;height:19px;font-size:15px}
  .appliance:not(.focused) .category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:7px}
  .category-card{min-height:44px;height:44px;padding:4px 4px;grid-template-columns:16px minmax(0,1fr) auto;gap:3px;border-radius:8px}
  .category-icon{font-size:15px}.category-label{font-size:9px;letter-spacing:-.2px}.category-count{font-size:7px;padding:1px 3px}
  .category-drag-handle{width:12px;height:11px;font-size:9px}
  .category-trash-drop{min-height:32px;font-size:9px}
  .basket-zone{margin-top:5px;border-radius:12px}.basket-heading{min-height:45px;padding:6px 10px;gap:7px}.basket-mark{font-size:19px}.basket-heading strong{font-size:11px}.basket-heading small{font-size:9px}
}
@media(max-width:360px){
  .app-shell{width:calc(100% - 10px)}.brand{gap:5px}.brand-mark{width:29px;height:29px}.brand strong{font-size:12px}.brand small{font-size:5px}.topbar-right{gap:3px}.topbar-right #today-label{font-size:8px}.top-action{padding:4px 5px;font-size:8px}
  .appliance:not(.focused){padding:3px;gap:5px}.fridge-section,.freezer-section,.pantry-section{padding:7px}.category-card{grid-template-columns:14px minmax(0,1fr) auto;gap:2px}.category-label{font-size:8px}.category-count{font-size:6px;padding:1px 2px}
}

/* Full-height layout with a fixed, always-visible drop dock. */
html,body{background:var(--cream);min-height:100%;}
body{height:100dvh;min-height:100dvh;overflow:hidden;background:var(--cream);}
.app-shell{width:min(1080px,calc(100% - 24px));height:100dvh;min-height:0;margin:0 auto;padding:calc(8px + env(safe-area-inset-top)) 0 calc(242px + env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden;}
.topbar{height:62px;min-height:62px;flex:0 0 62px;}
.brand{gap:10px;}
.brand-mark{width:48px;height:48px;border:1px solid #8fb9a0;border-radius:15px;background:#c6e3d1;box-shadow:0 2px 6px #355f4a26;}
.brand-mark svg{width:34px;fill:none;stroke:#245d4a;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;}
.brand strong{font-size:20px;font-weight:700;letter-spacing:-.4px;color:#1d3731;}
.brand small{font-size:9px;font-weight:700;letter-spacing:1.3px;color:#476a58;}
.topbar-right{gap:8px;}
.topbar-right #today-label{font-size:15px;font-weight:700;color:#385449;}
.top-action{min-height:44px;padding:8px 13px;border-radius:12px;font-size:15px;font-weight:700;color:#294d3d;border-color:#a9c8b3;background:#f9fbf6;}
.appliance:not(.focused){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none;gap:8px;flex:1 1 auto;min-height:0;padding:0;margin:0;overflow:hidden;}
.fridge-section,.freezer-section,.pantry-section{display:flex;min-width:0;min-height:0;flex-direction:column;padding:10px;border-radius:16px;overflow:hidden;}
.section-heading,.freezer-heading,.pantry-heading{height:38px;min-height:38px;flex:0 0 38px;display:flex;align-items:center;}
.section-title{gap:9px;}
.section-title h2{font-size:20px;font-weight:700;letter-spacing:-.3px;}
.temperature-icon,.freezer-snow,.pantry-cabinet{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;font-size:23px;}
.add-category{width:42px;height:42px;border:1px solid #8fb9a0;background:#eef6ef;color:#315f49;font-size:27px;line-height:1;}
.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(44px,1fr);grid-auto-flow:row;gap:6px;align-content:stretch;flex:1 1 auto;min-height:0;margin-top:7px;overflow-y:auto;overscroll-behavior:contain;}
.category-tile{width:100%;height:100%;min-width:0;min-height:44px;}
.category-card{width:100%;height:100%;min-height:44px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;justify-content:stretch;gap:6px;padding:7px 8px;border:1px solid #b4cfbd;border-radius:12px;background:#f9fbf6;color:#294b3e;font:700 15px 'Gowun Dodum',sans-serif;text-align:left;touch-action:none;cursor:grab;}
.category-card:hover{border-color:#64967a;background:#fff;box-shadow:0 3px 9px #486e5617;}
.category-card:active{cursor:grabbing;}
.category-tile.dragging .category-card{opacity:.45;}
.category-icon{font-size:26px;line-height:1;}
.category-label{font-size:15px;font-weight:700;line-height:1.15;white-space:normal;overflow-wrap:anywhere;}
.category-count{position:static;grid-column:auto;grid-row:auto;min-width:22px;padding:3px 5px;border:1px solid #c8dccb;border-radius:8px;background:#eaf3e9;color:#42634f;font:700 12px 'DM Sans',sans-serif;text-align:center;}
.bottom-dock{position:fixed;z-index:8;left:50%;bottom:0;transform:translateX(-50%);width:min(1080px,calc(100% - 24px));display:grid;grid-template-columns:1fr;gap:7px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #c8d9cc;border-radius:18px 18px 0 0;background:var(--cream);box-shadow:0 -8px 24px #385d4817;}
.category-trash-drop{width:100%;height:48px;min-height:48px;margin:0;border:1px solid #d2a08d;border-radius:12px;background:#fbf2ec;color:#813f32;font-size:16px;font-weight:700;}
.category-trash-drop>span{font-size:26px;}
.category-trash-drop.drop-active{background:#f4d8cc;border-color:#b95e44;}
.basket-zone{height:176px;min-height:176px;margin:0;display:flex;flex-direction:column;border:1px solid #8eb79a;border-radius:15px;background:#f2f7ef;box-shadow:0 3px 12px #315a4018;overflow:hidden;}
.basket-heading{height:54px;min-height:54px;flex:0 0 54px;padding:5px 12px;gap:10px;}
.basket-mark{font-size:28px;}
.basket-heading strong{font-size:18px;font-weight:700;}
.basket-heading small{font-size:13px;color:#536c5c;}
.basket-content{display:flex;min-height:0;flex:1;flex-direction:column;padding:3px 9px 7px;}
.basket-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:5px;min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;}
.basket-empty{min-height:54px;display:grid;place-items:center;padding:6px 12px;border:1px dashed #94b49a;border-radius:11px;background:#fafcf7;color:#526b5a;font-size:14px;font-weight:600;text-align:center;}
.basket-row{grid-template-columns:minmax(0,1fr) 62px 50px 30px;gap:4px;padding:5px 6px;border:1px solid #d6e3d5;border-radius:10px;}
.basket-food{font-size:14px;font-weight:600;}
.basket-row input,.basket-row select{height:38px;font-size:14px;}
.basket-remove{width:30px;height:30px;font-size:20px;}
.basket-actions{min-height:46px;flex:0 0 46px;align-items:center;gap:8px;margin:4px 0 0;}
.basket-clear,.basket-save{min-height:42px;padding:7px 12px;border-radius:10px;font-size:14px;font-weight:700;}
.basket-drop.drop-active{background:#dfeedd;border-color:#568562;}
.appliance.focused{display:block;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;}
.appliance.focused .fridge-section.active-compartment,.appliance.focused .freezer-section.active-compartment,.appliance.focused .pantry-section.active-compartment{display:flex;min-height:100%;flex-direction:column;padding:12px;}
.appliance.focused .active-compartment .food-area{display:flex;min-height:0;flex:1;flex-direction:column;}
.appliance.focused .food-area-heading{min-height:48px;flex:0 0 48px;align-items:center;margin:0 0 8px;}
.food-area-heading h3{font-size:20px;}
.back-button{min-height:44px;padding:7px 12px;border:1px solid #a9c8b3;border-radius:10px;background:#f6faf4;color:#315f49;font:700 15px 'Gowun Dodum',sans-serif;}
.appliance.focused .food-list{grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:minmax(56px,auto);gap:7px;align-content:start;flex:1;}
.food-card,.add-card{min-height:56px;height:auto;}
.food-thumb{font-size:24px;}
.food-info strong{font-size:13px;}
.add-card{font-size:16px;}
.dialog{max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain;}
.dialog form,.detail-card,.dialog-card{padding:26px 25px;}
.dialog h2,.dialog-card h2,.dialog form h2{font-size:24px;}
.field-label{font-size:15px;}
.dialog input,.dialog select{height:48px;font-size:16px;}
.save-button,.edit-button{height:54px;font-size:16px;}
.close-button{width:36px;height:36px;font-size:29px;}
.dialog-help,.form-error{font-size:14px;}
.dialog textarea{font-size:15px;}
.toast{font-size:14px;padding:13px 19px;}
@media(max-width:760px){
  html,body{background:#f5f2e9;}
  .app-shell{width:100%;height:100dvh;padding:calc(7px + env(safe-area-inset-top)) 7px calc(241px + env(safe-area-inset-bottom));}
  .topbar{height:60px;min-height:60px;flex-basis:60px;gap:8px;}
  .brand{gap:8px;min-width:0;}
  .brand-mark{width:44px;height:44px;flex:0 0 44px;border-radius:14px;}
  .brand-mark svg{width:32px;}
  .brand strong{font-size:19px;white-space:nowrap;}
  .brand small{font-size:8px;letter-spacing:1.1px;}
  .topbar-right{gap:6px;flex:0 0 auto;}
  .topbar-right #today-label{font-size:14px;}
  .top-action{min-height:44px;padding:7px 10px;border-radius:11px;font-size:14px;}
  .appliance:not(.focused){grid-template-columns:minmax(0,1fr);gap:5px;padding:0;}
  .fridge-section,.freezer-section,.pantry-section{padding:6px 8px;border-radius:13px;}
  .section-heading,.freezer-heading,.pantry-heading{height:34px;min-height:34px;flex-basis:34px;}
  .section-title{gap:8px;}
  .section-title h2{font-size:19px;}
  .temperature-icon,.freezer-snow,.pantry-cabinet{width:29px;height:29px;font-size:21px;border-radius:9px;}
  .add-category{width:40px;height:40px;font-size:26px;}
  .category-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(44px,1fr);gap:5px;margin-top:5px;}
  .category-card{min-height:44px;padding:5px 6px;gap:4px;border-radius:10px;font-size:14px;}
  .category-icon{font-size:24px;}
  .category-label{font-size:14px;line-height:1.12;}
  .category-count{min-width:20px;padding:2px 4px;font-size:11px;}
  .bottom-dock{width:100%;gap:6px;padding:7px 8px calc(8px + env(safe-area-inset-bottom));border-radius:17px 17px 0 0;}
  .category-trash-drop{height:46px;min-height:46px;font-size:15px;}
  .category-trash-drop>span{font-size:25px;}
  .basket-zone{height:176px;min-height:176px;border-radius:14px;}
  .basket-heading{height:53px;min-height:53px;flex-basis:53px;padding:5px 11px;}
  .basket-heading strong{font-size:17px;}
  .basket-heading small{font-size:12px;}
  .basket-empty{font-size:13px;}
  .basket-row{grid-template-columns:minmax(0,1fr) 58px 48px 28px;}
  .basket-food,.basket-row input,.basket-row select{font-size:13px;}
  .basket-clear,.basket-save{font-size:13px;}
  .appliance.focused .fridge-section.active-compartment,.appliance.focused .freezer-section.active-compartment,.appliance.focused .pantry-section.active-compartment{padding:8px;}
  .appliance.focused .food-area-heading{min-height:46px;flex-basis:46px;}
  .food-area-heading h3{font-size:19px;}
  .back-button{font-size:14px;}
  .appliance.focused .food-list{grid-template-columns:repeat(5,minmax(0,1fr));}
}
@media(max-width:370px){
  .app-shell{padding-left:5px;padding-right:5px;}
  .brand{gap:5px;}
  .brand-mark{width:40px;height:40px;flex-basis:40px;}
  .brand-mark svg{width:29px;}
  .brand strong{font-size:16px;}
  .brand small{font-size:7px;letter-spacing:.8px;}
  .topbar-right{gap:4px;}
  .topbar-right #today-label{font-size:12px;}
  .top-action{min-height:42px;padding:6px 7px;font-size:13px;}
  .category-card{grid-template-columns:auto minmax(0,1fr) auto;gap:2px;padding:4px;}
  .category-icon{font-size:22px;}
  .category-label{font-size:12px;}
  .category-count{min-width:18px;font-size:10px;}
}

/* Final compact category layout: four equal columns at every viewport. */
.app-shell .appliance:not(.focused) .category-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:minmax(0,1fr);
  overflow-y:hidden;
}
.app-shell .appliance:not(.focused) .category-card{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  min-width:0;
  min-height:0;
  padding:5px 17px 5px 5px;
  text-align:center;
}
.app-shell .appliance:not(.focused) .category-icon{font-size:24px;}
.app-shell .appliance:not(.focused) .category-label{font-size:14px;}
.app-shell .appliance:not(.focused) .category-count{
  position:absolute;
  top:3px;
  right:3px;
  min-width:18px;
  padding:1px 3px;
  font-size:10px;
}
.basket-items:has(.basket-empty){overflow:hidden;}
.basket-items .basket-empty{grid-column:1/-1;width:100%;min-height:72px;}
.basket-row{grid-template-columns:minmax(0,1fr) 58px 32px;grid-template-rows:auto 40px;align-items:center;min-height:82px;}
.basket-food{grid-column:1/-1;grid-row:1;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.2;font-size:14px;}
.basket-row input{grid-column:1;grid-row:2;width:100%;height:38px;}
.basket-row select{grid-column:2;grid-row:2;width:100%;height:38px;}
.basket-remove{grid-column:3;grid-row:2;width:32px;height:32px;}
.food-card,.add-card{min-height:70px;height:auto;}
.food-thumb{font-size:30px;}
.food-info strong{font-size:15px;white-space:normal;overflow-wrap:anywhere;}

/* Keep the fixed dock compact until the basket is explicitly opened. */
html,body{background:var(--cream);}
.app-shell{padding-bottom:calc(126px + env(safe-area-inset-bottom));}
.app-shell.basket-expanded{padding-bottom:calc(242px + env(safe-area-inset-bottom));}
.brand strong{color:#173c31;font-weight:700;}
.brand-mark{background:#b7dbc5;border:1px solid #648e72;box-shadow:0 2px 7px #244b3533;}
.brand-mark svg{stroke:#173f31;stroke-width:3;}
.pantry-section .category-card{padding:8px 5px 5px;overflow:visible;}
.pantry-section .category-label{width:100%;max-width:100%;padding:0 2px;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:keep-all;line-height:1.15;}
.pantry-section .category-grid{overflow:visible;}
.app-shell .appliance:not(.focused) .pantry-section .category-card{padding:8px 5px 5px;overflow:visible;}
.app-shell .appliance:not(.focused) .pantry-section .category-grid{overflow:visible;}
.app-shell .appliance:not(.focused) .pantry-section .category-label{width:100%;max-width:100%;padding:0 2px;white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:keep-all;}
.basket-zone.collapsed{height:52px;min-height:52px;}
.basket-zone.collapsed .basket-heading{height:50px;min-height:50px;flex-basis:50px;padding:4px 12px;}
.basket-heading{width:100%;text-align:left;}

/* Keep iOS's scroll edge on an opaque app-owned header instead of the content. */
.app-shell{padding-top:calc(70px + env(safe-area-inset-top));}
.topbar{position:fixed;z-index:9;top:0;left:50%;transform:translateX(-50%);width:min(1080px,calc(100% - 24px));height:calc(70px + env(safe-area-inset-top));min-height:0;padding-top:env(safe-area-inset-top);background:var(--cream);box-shadow:0 3px 10px #f5f2e9;}
.app-shell .appliance:not(.focused) .category-grid{grid-auto-rows:minmax(44px,1fr);overflow-y:auto;}
.drag-ghost{transform:translate(-50%,-50%);}
.detail-subtitle:empty{display:none;}
.add-category{position:relative;width:44px;height:44px;flex:0 0 44px;border:0;background:transparent;font-size:20px;z-index:0;}
.add-category::before{content:'';position:absolute;z-index:-1;inset:7px;border:1px solid #8fb9a0;border-radius:50%;background:#eef6ef;}
@media(max-width:760px){
  .app-shell{padding-top:calc(67px + env(safe-area-inset-top));}
  .topbar{width:100%;height:calc(67px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 7px 0;}
}
.basket-heading strong{font-size:16px;white-space:nowrap;}
.basket-count{font:600 13px 'DM Sans',sans-serif;color:#557161;white-space:nowrap;}
.basket-chevron{margin-left:auto;font:700 22px/1 'DM Sans',sans-serif;transform:rotate(180deg);}
.basket-zone.collapsed .basket-chevron{transform:none;}
.basket-heading:focus-visible{outline:3px solid #528064;outline-offset:-3px;border-radius:11px;}
.basket-mark{display:block;width:31px;height:31px;flex:0 0 31px;object-fit:contain;}
@media(max-width:760px){
  .app-shell{padding-bottom:calc(124px + env(safe-area-inset-bottom));}
  .app-shell.basket-expanded{padding-bottom:calc(241px + env(safe-area-inset-bottom));}
  .brand strong{font-size:19px;}
  .brand-mark{background:#b7dbc5;border-color:#648e72;}
  .brand-mark svg{stroke:#173f31;stroke-width:3;}
  .basket-zone.collapsed{height:52px;min-height:52px;}
  .basket-zone.collapsed .basket-heading{height:50px;min-height:50px;flex-basis:50px;padding:4px 11px;}
  .basket-heading{gap:9px;}
  .basket-heading strong{font-size:15px;}
  .basket-count{font-size:12px;}
}
.bottom-dock .basket-zone:not(.collapsed){height:205px;min-height:205px;}
.app-shell.basket-expanded{padding-bottom:calc(276px + env(safe-area-inset-bottom));}
@media(max-width:760px){
  .app-shell.basket-expanded{padding-bottom:calc(272px + env(safe-area-inset-bottom));}
}
