:root{color:#171b18;font-synthesis:none;text-rendering:optimizelegibility;--green:#248a2a;--green-dark:#176d20;--green-pale:#f2f8f1;--orange:#ef641f;--text:#171b18;--muted:#6f756f;--line:#e4e8e4;--surface:#fff;--radius:16px;--shadow:0 12px 38px #172d191a;background:#eef2ee;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{background:#eef2ee}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{color:inherit}button,select{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #248a2a3b}.app-shell{width:100%;max-width:520px;min-height:100dvh;box-shadow:var(--shadow);background:#fff;margin:0 auto;position:relative;overflow:hidden}.app-content{min-height:100dvh;padding-bottom:calc(82px + env(safe-area-inset-bottom))}.page{padding:25px 24px 36px;animation:.2s ease-out page-in}@keyframes page-in{0%{opacity:.2;transform:translateY(4px)}}.topbar{justify-content:space-between;align-items:center;min-height:42px;margin-bottom:18px;display:flex}.brand{color:var(--green-dark);letter-spacing:-.5px;font-size:23px;font-weight:800}h1,h2,p{margin-top:0}h1{letter-spacing:-1px;margin-bottom:20px;font-size:30px;line-height:1.22}h2{font-size:17px}.page-intro{color:var(--muted);margin-top:-12px;margin-bottom:24px;font-size:14px}.title-row{justify-content:space-between;align-items:start;gap:16px;margin-bottom:22px;display:flex}.title-row h1{margin-bottom:6px}.title-row p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.button{border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:15px;font-weight:700;transition:transform .15s,background .15s;display:inline-flex}.button:active{transform:scale(.985)}.button svg{width:20px;height:20px}.button.primary{color:#fff;background:var(--green)}.button.primary:hover{background:var(--green-dark)}.button.secondary{color:var(--green-dark);background:#fff;border-color:#a8cdaa}.button.danger-text{color:#c63d35;background:0 0;margin-right:auto}.button.full{width:100%}.icon-button{background:0 0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:inline-grid}.icon-button:hover{background:#f3f5f3}.round-add{color:#fff;background:var(--green);border:0;border-radius:50%;flex:none;place-items:center;width:45px;height:45px;display:grid}.inventory-summary{background:linear-gradient(135deg,#f8fcf7,#f4faf3);border:1px solid #dce8dc;border-radius:13px;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:14px;padding:16px 10px;display:grid}.inventory-summary div{grid-template-rows:auto auto;grid-template-columns:24px auto;column-gap:6px;min-width:0;display:grid}.inventory-summary svg{width:21px;color:var(--green-dark);grid-row:1/span 2}.inventory-summary span{color:var(--muted);white-space:nowrap;font-size:11px}.inventory-summary strong{font-size:20px;line-height:1.25}.inventory-summary small{font-size:11px;font-weight:500}.plan-cta{text-align:left;background:#fbfefb;border:1px solid #b7d8b7;border-radius:14px;align-items:center;gap:12px;width:100%;margin:12px 0 17px;padding:14px;display:flex}.plan-cta>svg{color:var(--green);margin-left:auto}.plan-cta-icon{width:42px;height:42px;color:var(--green);background:var(--green-pale);border-radius:12px;flex:none;place-items:center;display:grid}.plan-cta span:nth-child(2){flex-direction:column;gap:3px;display:flex}.plan-cta strong{color:var(--green-dark);font-size:19px}.plan-cta small{color:var(--muted);font-size:12px}.filter-tabs{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.filter-tabs::-webkit-scrollbar{display:none}.filter-tabs button{color:#565c56;background:#f3f4f3;border:0;border-radius:21px;flex:1 0 auto;min-width:78px;height:40px;padding:0 15px;font-weight:600}.filter-tabs button.active{color:#fff;background:var(--green)}.section-title{justify-content:space-between;align-items:center;margin:22px 2px 10px;display:flex}.section-title h2{margin:0;font-size:15px}.section-title span{color:var(--muted);font-size:12px}.food-list{flex-direction:column;gap:7px;display:flex}.food-row{border:1px solid var(--line);text-align:left;background:#fff;border-radius:13px;align-items:center;gap:11px;width:100%;min-height:72px;padding:9px 10px;display:flex}.food-row:hover{border-color:#bcd5bd}.food-avatar{color:#fff;background:#8faa7c;border-radius:12px;flex:none;place-items:center;width:48px;height:48px;font-size:18px;font-weight:800;display:grid}.food-avatar.has-photo{background-color:#fff;background-image:url(/assets/ingredient-sprite.png);background-repeat:no-repeat;background-size:400% 300%;border:1px solid #ecefec}.photo-tomato{background-position:0 0}.photo-eggs{background-position:33.333% 0}.photo-greens{background-position:66.667% 0}.photo-mushroom{background-position:100% 0}.photo-potato{background-position:0}.photo-laver{background-position:33.333%}.photo-rice{background-position:66.667%}.photo-scallion{background-position:100%}.photo-milk{background-position:0 100%}.photo-chicken{background-position:33.333% 100%}.photo-pepper{background-position:66.667% 100%}.photo-tofu{background-position:100% 100%}.category-肉蛋{background:#b96e53}.category-主食{background:#bc8d42}.category-乳品{background:#6d95bb}.category-水果{background:#df8153}.category-调味{background:#8d779e}.category-其他{background:#718f89}.food-main{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.food-main strong{font-size:16px}.food-main small{color:var(--muted);font-size:12px}.expiry{color:var(--green);flex:none;font-size:12px}.expiry.warning,.expiry.urgent{color:var(--orange)}.food-row>svg{color:#969c96}.meal-controls{grid-template-columns:1fr 1.2fr;gap:10px;display:grid}.meal-controls label{border:1px solid var(--line);border-radius:12px;align-items:center;gap:7px;height:52px;padding:0 12px;display:flex;position:relative}.meal-controls label>svg{color:#626862;flex:none;width:20px}.meal-controls label>svg:last-child{pointer-events:none;width:16px;margin-left:auto}.meal-controls select{appearance:none;background:0 0;border:0;outline:0;width:100%;min-width:0;height:100%;font-size:15px;font-weight:700}.priority-note{color:#4f574f;border:1px solid #e0e5df;border-radius:12px;align-items:center;gap:9px;height:51px;margin:11px 0 8px;padding:0 13px;font-size:14px;display:flex}.priority-note svg:first-child{width:19px;color:var(--green)}.priority-note svg:last-child{width:20px;color:var(--green);fill:var(--green);stroke:#fff;margin-left:auto}.dish-list{margin-top:11px}.dish-row{border-bottom:1px solid var(--line);gap:14px;min-height:106px;padding:10px 0;display:flex}.dish-visual{color:#6b3928;background:#f1dac5;border-radius:14px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:104px;display:flex}.dish-visual.has-photo{background-color:#fff;background-image:url(/assets/dish-sprite.png);background-repeat:no-repeat;background-size:200% 200%;border:1px solid #ecefec}.dish-tomato-egg{background-position:0 0}.dish-mushroom-greens{background-position:100% 0}.dish-shredded-potato{background-position:0 100%}.dish-laver-soup{background-position:100% 100%}.dish-visual span{font-size:27px;font-weight:900}.dish-visual small{opacity:.75;margin-top:4px;font-size:11px;font-weight:700}.dish-visual.vegetable{color:#2b6832;background:#dcebd7}.dish-visual.soup{color:#766027;background:#f2e8c9}.dish-main{min-width:0;padding:7px 0}.dish-main h2{margin-bottom:8px;font-size:20px}.dish-main p{align-items:center;gap:5px;margin-bottom:6px;font-size:13px;display:flex}.dish-main p svg{color:#fff;background:var(--green);border-radius:50%;width:18px;height:18px;padding:2px}.dish-main .available{color:#3f7241}.dish-main .missing{color:var(--orange)}.dish-main>small{color:#8a8f8a;text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.meal-actions{gap:10px;margin-top:18px;display:grid}.recipe-tabs{margin-bottom:20px}.recipe-tabs button{min-width:65px}.recipe-list{flex-direction:column;display:flex}.recipe-row{border-bottom:1px solid var(--line);gap:14px;padding:16px 0;display:flex}.recipe-icon{width:56px;height:56px;color:var(--green);background:var(--green-pale);border-radius:15px;flex:none;place-items:center;display:grid}.recipe-row h2{margin:1px 0 6px}.recipe-row h2 small{color:var(--green-dark);background:#eaf5e9;border-radius:7px;margin-left:8px;padding:2px 7px;font-size:10px}.recipe-row p{color:#555c55;margin-bottom:5px;font-size:13px}.recipe-row span{color:#929792;font-size:11px}.shopping-group{margin:28px 0 34px}.group-title{align-items:center;gap:10px;margin-bottom:9px;display:flex}.group-title i{background:var(--green);border-radius:4px;width:5px;height:25px}.group-title h2{margin:0;font-size:17px}.shopping-row{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:13px;min-height:65px;display:flex;position:relative}.shopping-row input{opacity:0;pointer-events:none;position:absolute}.checkbox-ui{border:1.5px solid #a8aea8;border-radius:5px;flex:none;place-items:center;width:27px;height:27px;display:grid}.checkbox-ui:has(svg){border-color:var(--green);color:#fff;background:var(--green)}.checkbox-ui svg{width:18px}.shopping-row>span:nth-child(3){flex:1;font-size:16px}.shopping-row>span.checked{color:#9ba09b;text-decoration:line-through}.shopping-row strong{font-size:14px;font-weight:500}.clear-button{margin-top:20px}.settings-section{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px;overflow:hidden}.setting-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:83px;padding:13px 14px;display:flex}.setting-row:last-child{border-bottom:0}.setting-icon{width:39px;height:39px;color:var(--green);background:var(--green-pale);border-radius:11px;flex:none;place-items:center;display:grid}.setting-icon svg{width:20px}.setting-row>span:nth-child(2){flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.setting-row strong,.setting-heading strong{font-size:14px}.setting-row small,.setting-heading small{color:var(--muted);font-size:11px;line-height:1.3}.setting-row select{background:#f4f6f4;border:0;border-radius:8px;max-width:102px;padding:8px;font-weight:650}.avoided-section{padding:14px}.setting-heading{align-items:center;gap:12px;display:flex}.setting-heading>div{flex-direction:column;gap:4px;display:flex}.avoided-section textarea{width:100%;margin-top:13px}.local-note{color:#3e6041;border-radius:var(--radius);background:#f1f7f0;gap:12px;padding:16px;display:flex}.local-note>svg{flex:none}.local-note strong{font-size:14px}.local-note p{margin:5px 0 0;font-size:12px;line-height:1.6}.form-grid{grid-template-columns:1fr 1fr;gap:14px 12px;display:grid}.form-grid label{color:#4f554f;flex-direction:column;gap:7px;font-size:12px;font-weight:650;display:flex}.form-grid label.wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{font-size:16px}input,select,textarea{width:100%;min-width:0;color:var(--text);background:#fff;border:1px solid #dce1dc;border-radius:10px}input,select{height:44px;padding:0 11px}textarea{resize:vertical;padding:11px;line-height:1.55}.modal-actions{justify-content:flex-end;gap:9px;margin-top:20px;display:flex}.empty{min-height:190px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.empty.large{min-height:480px}.empty svg{color:#a4b8a5;width:42px;height:42px}.empty strong{color:#515751}.empty span{max-width:250px;font-size:12px;line-height:1.5}.empty .button{margin-top:14px}.bottom-nav{z-index:20;width:100%;max-width:520px;min-height:calc(72px + env(safe-area-inset-bottom));padding:8px 8px env(safe-area-inset-bottom);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{color:#555b55;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:55px;font-size:10px;display:flex;position:relative}.nav-item.active{color:var(--green);font-weight:800}.nav-icon{place-items:center;display:grid;position:relative}.nav-icon b{color:#fff;background:var(--orange);border:2px solid #fff;border-radius:9px;place-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;display:grid;position:absolute;top:-6px;right:-10px}.nav-item.active:after{content:"";background:var(--green);border-radius:2px;width:30px;height:3px;position:absolute;bottom:0}.modal-layer{z-index:50;background:#0f19106b;justify-content:center;align-items:flex-end;padding:12px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:22px 22px 14px 14px;width:min(100%,496px);max-height:88dvh;padding:20px;animation:.22s ease-out modal-up;overflow-y:auto;box-shadow:0 20px 70px #0003}@keyframes modal-up{0%{opacity:0;transform:translateY(18px)}}.modal-head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-head h2{margin:0;font-size:21px}.toast{z-index:80;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));color:#fff;background:#1a231beb;border-radius:22px;width:max-content;max-width:calc(100% - 40px);padding:11px 17px;font-size:13px;animation:.18s ease-out toast-in;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}}@media (width<=390px){.page{padding-left:17px;padding-right:17px}h1{font-size:27px}.inventory-summary{padding-left:6px;padding-right:6px}.inventory-summary span{font-size:10px}.food-avatar{width:44px;height:44px}.dish-visual{width:88px}.meal-controls{grid-template-columns:1fr 1.25fr}}@media (width>=700px){body{padding:24px}.app-shell{border-radius:24px;min-height:calc(100dvh - 48px)}.app-content{min-height:calc(100dvh - 48px)}.bottom-nav{border-radius:0 0 24px 24px;bottom:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
