:root{--page:#f7f9f8;--ink:#1f2a2d;--body:#465558;--muted:#718084;--muted-strong:#5b6a6e;--line:#dbe4df;--chip:#edf3ef;--button:#edf1f4;--leaf:#448961;--leaf-dark:#2e6746;--leaf-soft:#e3f2e9;--tomato:#cf5a43;--gold:#c49136;letter-spacing:0;color:var(--body);background:var(--page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}html{background:var(--page)}body{background:var(--page);min-width:320px;min-height:100svh;margin:0}a{color:inherit}#root{min-height:100svh}.app-shell{background:linear-gradient(180deg, #ecf7f1cc, #fff0 220px), var(--page);min-height:100svh}.app-main{width:min(100%,620px);padding:max(18px, env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));box-sizing:border-box;margin:0 auto}.today-panel{background:linear-gradient(90deg,#fffaeffa 0%,#fffaefe6 34%,#fffaef57 52%,#fffaef00 70%),url(/hero-dish-ai.png) 100%/auto 112% no-repeat,#fbf1df;border:1px solid #2e674629;border-radius:26px;min-height:184px;margin:0 0 20px;padding:16px 18px;position:relative;overflow:hidden;box-shadow:0 18px 42px #4e5c5224,inset 0 1px #ffffffe6}.settings-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 0 18px;display:flex}.hero-content{z-index:1;width:min(100%,390px);padding-left:48px;position:relative}.hero-meta-row{align-items:center;gap:10px;margin-bottom:14px;display:flex}.hero-logo{mix-blend-mode:multiply;object-fit:contain;background:#fffaef47;border:1px solid #2e674629;border-radius:50%;flex:none;width:50px;height:50px;padding:0;position:absolute;top:-12px;left:0;box-shadow:0 8px 20px #384c3f1f}.hero-date-pill{min-height:34px;color:var(--leaf-dark);white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:8px;margin-left:8px;padding:0;font-size:.95rem;font-weight:900;display:inline-flex}.hero-date-pill svg{width:34px;height:34px;color:var(--leaf-dark);background:#eae8d8d1;border-radius:50%;padding:8px}.settings-header{display:block}.eyebrow{color:var(--muted);margin:0 0 7px;font-size:.82rem;font-weight:700}h1,h2,h3,p{margin:0}h1{color:var(--ink);font-size:2rem;font-weight:800;line-height:1.08}.today-panel h1{color:#284d39;width:fit-content;margin-left:-10px;font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(2rem,7.1vw,2.78rem);font-weight:900}.hero-slogan{width:fit-content;color:var(--leaf-dark);align-items:center;gap:8px;margin-top:4px;margin-left:-16px;font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(.98rem,3.7vw,1.2rem);font-weight:900;line-height:1.35;display:flex}h2{color:var(--ink);font-size:1.18rem;font-weight:800;line-height:1.2}h3{color:var(--ink);font-size:1.02rem;font-weight:800;line-height:1.25}button,input{font:inherit}button{cursor:pointer;border:0}.summary-row{flex-wrap:wrap;gap:20px;margin-top:12px;display:flex}.today-panel .summary-row{width:calc(100% + 24px);margin-left:-32px}.summary-row span,.recipe-tags span,.stat-pill,.empty-chip{background:var(--chip);min-height:28px;color:var(--muted-strong);white-space:nowrap;border-radius:999px;align-items:center;padding:0 10px;font-size:.78rem;font-weight:700;display:inline-flex}.today-panel .summary-row span{min-height:32px;color:var(--leaf-dark);background:#eae8d8c7;padding:0 18px;font-size:.9rem;font-weight:900;position:relative}.today-panel .summary-row span+span:before{content:"";background:#2e674629;width:1px;height:20px;position:absolute;left:-14px}.primary-action{z-index:2;color:#fff;background:linear-gradient(135deg,#ff8b1f,#e85d15);border:4px solid #ffffffe6;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-width:122px;height:44px;font-size:.96rem;font-weight:900;display:inline-flex;position:absolute;top:12px;right:14px;box-shadow:0 16px 32px #e65c1557}.primary-action:active,.icon-button:active,.small-action-button:active,.text-button:active,.custom-submit:active,.replacement-option:active,.nav-item:active,.segment:active,.removable-chip:active{transform:translateY(1px)}.error-message{color:#9b3326;background:#fff1ef;border-radius:8px;margin:0 0 14px;padding:12px 14px;font-size:.9rem;font-weight:700}.nutrition-strip,.sync-strip,.fridge-strip,.install-hint{border:1px solid var(--line);color:var(--muted-strong);background:#fff;border-radius:8px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex;box-shadow:0 10px 30px #2f3e460f}.nutrition-strip{margin-bottom:18px}.sync-strip,.fridge-strip{align-items:center;margin-bottom:12px}.nutrition-strip svg,.sync-strip svg,.fridge-strip svg,.install-hint svg{color:var(--leaf);flex:none;margin-top:2px}.nutrition-strip p,.sync-strip p,.fridge-strip p,.install-hint p{font-size:.9rem;line-height:1.55}.sync-strip div{min-width:0}.sync-strip strong{color:var(--ink);margin-bottom:2px;font-size:.9rem;display:block}.sync-strip p{color:var(--muted)}.fridge-strip div{flex:1;min-width:0}.fridge-strip strong{color:var(--ink);margin-bottom:2px;font-size:.9rem;display:block}.fridge-strip p{color:var(--muted);overflow-wrap:anywhere}.text-button{background:var(--leaf-soft);min-width:48px;min-height:34px;color:var(--leaf-dark);border-radius:8px;justify-content:center;align-items:center;font-size:.82rem;font-weight:800;display:inline-flex}.meal-section{margin:22px 0 26px}.meal-heading{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.meal-heading p{color:var(--muted);margin-top:3px;font-size:.88rem;line-height:1.45}.meal-icon,.recipe-icon{background:var(--leaf-soft);width:34px;height:34px;color:var(--leaf);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.recipe-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.recipe-card{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:0;padding:10px;box-shadow:0 14px 34px #2f3e4612}.recipe-card:last-child:nth-child(odd){grid-column:1/-1}.recipe-topline{grid-template-columns:30px minmax(0,1fr);align-items:flex-start;gap:8px;display:grid}.recipe-topline h3{overflow-wrap:anywhere;font-size:.96rem;line-height:1.28}.recipe-icon{width:30px;height:30px}.recipe-tags{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.icon-button{background:var(--button);width:38px;height:38px;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.recipe-actions{grid-column:1/-1;justify-content:space-between;align-items:center;gap:6px;margin-top:7px;display:flex}.small-action-button{background:var(--leaf-soft);min-height:32px;color:var(--leaf-dark);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:0 8px;font-size:.76rem;font-weight:800;display:inline-flex}.favorite-button{width:32px;height:32px;color:var(--muted)}.favorite-button.is-active{color:var(--tomato);background:#fff0ed}.ingredient-summary{color:var(--body);overflow-wrap:anywhere;gap:4px;margin-top:9px;font-size:.82rem;line-height:1.48;display:grid}.ingredient-summary strong{color:var(--ink);font-size:.82rem}.ingredient-summary span{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.recipe-block{color:var(--body);margin-top:10px}.inventory-match-row{flex-wrap:wrap;align-items:center;gap:7px;margin-top:8px;display:flex}.inventory-match-row span{color:var(--muted);font-size:.82rem;font-weight:700}.inventory-match-row strong{color:#8a5c12;background:#fff7df;border-radius:999px;align-items:center;min-height:26px;padding:0 9px;font-size:.78rem;display:inline-flex}.recipe-block strong{color:var(--ink);margin-bottom:4px;font-size:.84rem;display:block}.recipe-block p,.recipe-block li,.serving-note,.lactation-note{color:var(--body);overflow-wrap:anywhere;font-size:.92rem;line-height:1.58}.recipe-block ol{margin:0;padding-left:20px}.recipe-details{border-top:1px solid var(--line);margin-top:8px}.recipe-details summary{min-height:32px;color:var(--leaf-dark);cursor:pointer;align-items:center;font-size:.8rem;font-weight:800;list-style:none;display:flex}.recipe-details summary::-webkit-details-marker{display:none}.recipe-details summary:after{content:"展开";background:var(--leaf-soft);color:var(--leaf-dark);border-radius:999px;margin-left:auto;padding:5px 9px;font-size:.76rem}.recipe-details[open] summary:after{content:"收起"}.recipe-detail-body{padding-bottom:2px}.serving-note{color:var(--muted-strong);margin-top:10px}.lactation-note{border-left:3px solid var(--leaf);color:var(--leaf-dark);margin-top:8px;padding-left:10px}.settings-view{gap:14px;display:grid}.settings-group,.history-panel{border:1px solid var(--line);background:#fff;border-radius:8px;padding:14px;box-shadow:0 12px 30px #2f3e460f}.settings-group{justify-content:space-between;align-items:center;gap:14px;display:flex}.settings-group.vertical{flex-direction:column;align-items:stretch}.settings-label{min-width:0}.settings-label strong{color:var(--ink);margin-bottom:4px;font-size:.98rem;display:block}.settings-label span{color:var(--muted);font-size:.84rem;line-height:1.35}.stepper{grid-template-columns:38px 42px 38px;align-items:center;gap:4px;display:inline-grid}.stepper span{color:var(--ink);text-align:center;font-weight:800}.segmented-control{background:var(--button);border-radius:8px;grid-template-columns:repeat(3,minmax(50px,1fr));gap:4px;min-width:170px;padding:4px;display:grid}.segmented-control.two{grid-template-columns:repeat(2,minmax(86px,1fr))}.segmented-control.compact{width:100%;min-width:0}.segment{min-height:34px;color:var(--muted-strong);background:0 0;border-radius:6px;font-size:.8rem;font-weight:800}.segment.is-selected{color:var(--ink);background:#fff;box-shadow:0 5px 12px #2f3e4614}.input-row{grid-template-columns:minmax(0,1fr) 38px;gap:8px;display:grid}.input-row.sync-code-row{grid-template-columns:minmax(0,1fr) auto}.input-row input{border:1px solid var(--line);min-height:40px;color:var(--ink);background:#fff;border-radius:8px;outline:0;padding:0 12px}.field-label input,.field-label textarea,.field-label select{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:#fff;border-radius:8px;outline:0;padding:10px 12px}.field-label input,.field-label select{min-height:40px}.field-label textarea{min-height:78px}.input-row input:focus,.field-label input:focus,.field-label textarea:focus,.field-label select:focus{border-color:var(--leaf);box-shadow:0 0 0 3px #44896129}.add-button{background:var(--leaf);color:#fff}.settings-help{color:var(--muted);overflow-wrap:anywhere;font-size:.84rem;line-height:1.5}.clear-sync-button{justify-self:start}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.removable-chip{background:var(--chip);min-height:32px;color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:0 10px 0 12px;font-size:.82rem;font-weight:800;display:inline-flex}.history-panel h2{margin-bottom:10px}.history-item{border-top:1px solid var(--line);gap:3px;padding:10px 0;display:grid}.history-item span{color:var(--muted);font-size:.78rem;font-weight:700}.history-item strong{color:var(--ink);font-size:.9rem;line-height:1.4}.install-hint{margin-top:18px}.bottom-nav{z-index:20;border-top:1px solid var(--line);width:min(100%,520px);padding:8px 16px calc(8px + env(safe-area-inset-bottom));box-sizing:border-box;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.replacement-backdrop{z-index:50;padding:20px 12px calc(12px + env(safe-area-inset-bottom));background:#1f2a2d52;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.replacement-sheet{background:#fff;border-radius:8px;flex-direction:column;width:min(100%,520px);max-height:min(76svh,680px);display:flex;overflow:hidden;box-shadow:0 -18px 48px #1f2a2d38}.replacement-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 12px;display:flex}.replacement-list{gap:10px;padding:12px;display:grid;overflow:auto}.custom-replacement{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:10px;padding:12px;display:grid}.custom-replacement-heading,.system-candidates-heading{gap:3px;display:grid}.custom-replacement-heading h3,.system-candidates-heading h3{color:var(--ink);font-size:.98rem;line-height:1.3}.custom-replacement-heading p,.system-candidates-heading p,.custom-helper{color:var(--muted);font-size:.82rem;line-height:1.45}.field-label{color:var(--ink);gap:6px;font-size:.84rem;font-weight:800;display:grid}.custom-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:10px;display:grid}.custom-error{color:#9b3326;background:#fff1ef;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:800}.custom-submit{background:var(--leaf);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-height:42px;font-weight:800;display:inline-flex}.system-candidates-heading{padding:4px 2px 0}.replacement-option{border:1px solid var(--line);text-align:left;background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.replacement-option-main{gap:4px;min-width:0;display:grid}.replacement-option-main strong{color:var(--ink);font-size:.95rem;line-height:1.35}.replacement-option-main span,.replacement-option-main em,.replacement-empty{color:var(--muted);font-size:.82rem;line-height:1.45}.replacement-option-main em{color:#8a5c12;font-style:normal}.replacement-pick{background:var(--leaf-soft);min-height:32px;color:var(--leaf-dark);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;font-size:.8rem;font-weight:800;display:inline-flex}.replacement-empty{background:var(--chip);border-radius:8px;padding:14px}.nav-item{min-height:48px;color:var(--muted-strong);background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:7px;font-size:.88rem;font-weight:800;display:inline-flex}.nav-item.is-active{background:var(--leaf-soft);color:var(--leaf-dark)}@media (width>=760px){.app-main{padding-top:30px}}@media (width<=390px){.today-panel{background:linear-gradient(90deg,#fffaeffa 0%,#fffaefe6 48%,#fffaef57 70%,#fffaef00 100%),url(/hero-dish-ai.png) right -72px center/auto 112% no-repeat,#fbf1df;border-radius:22px;min-height:190px;padding:16px}.primary-action{border-width:3px;min-width:98px;height:42px;font-size:.94rem;top:12px;right:12px}.hero-content{width:100%;padding-left:46px}.hero-meta-row{gap:8px;margin-bottom:14px}.hero-logo{width:46px;height:46px}.hero-date-pill{min-height:34px;margin-left:8px;font-size:.94rem}.hero-date-pill svg{width:34px;height:34px;padding:8px}.today-panel h1{width:fit-content;max-width:76%;margin-left:-10px;font-size:2rem}.hero-slogan{margin-top:4px;margin-left:-16px;font-size:.95rem}.summary-row{gap:10px;margin-top:12px}.today-panel .summary-row{width:calc(100% + 18px);margin-left:-30px}.today-panel .summary-row span{min-height:30px;padding:0 12px;font-size:.82rem}.today-panel .summary-row span+span:before{height:16px;left:-8px}.settings-group{flex-direction:column;align-items:stretch}.segmented-control,.segmented-control.two,.stepper{width:100%}.custom-grid{grid-template-columns:1fr}}
