:root{color:#142a18;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f6fbf6;font-family:ui-rounded,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(160deg,#f8fcf7 0%,#eef8ef 50%,#fbf7f7 100%);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:max(18px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));position:relative;overflow:hidden auto}.ambient{pointer-events:none;z-index:0;position:fixed}.ambient-one{background:linear-gradient(90deg,#ffffff94,#e2f6e138),repeating-linear-gradient(90deg,#0000 0 32px,#598e5b12 33px 35px);border:1px solid #5b8e5d14;border-radius:8px;width:210px;height:245px;top:58px;right:-42px;transform:rotate(-8deg)}.ambient-two{display:none}.screen{z-index:1;width:min(100%,430px);min-height:calc(100vh - 34px);margin:0 auto;position:relative}.home-screen{padding-bottom:176px}.hero{grid-template-columns:minmax(0,1fr) auto;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 4px 8px;display:grid}.hero>div{min-width:0}.home-screen .hero{padding:clamp(10px,1.5vh,16px) 4px 6px}.brand-mark{color:#3f8b44;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}h1{color:#183b20;letter-spacing:0;margin:8px 0 10px;font-size:clamp(40px,13vw,56px);line-height:.98}.home-screen h1{margin:6px 0 8px;font-size:clamp(36px,11vw,50px)}.settings-header h1{margin:0;font-size:24px;line-height:1.2}.config-pill,.chip,.tag,.pwa-panel span{color:#266431;background:#f2faf1eb;border:1px solid #4d914d3d;align-items:center;display:inline-flex}.config-pill{border-radius:999px;width:fit-content;margin:0;padding:7px 13px;font-size:16px;font-weight:700}.icon-button{color:#203a25;background:#ffffffc2;border:1px solid #48734a29;border-radius:8px;place-items:center;width:44px;height:44px;display:inline-grid}.home-screen .icon-button{width:42px;height:42px}.elevated{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 8px 20px #355f371f}.ingredient-panel,.settings-panel,.pwa-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffbd;border:1px solid #5989562e;border-radius:8px;box-shadow:0 14px 36px #48774817}.ingredient-panel{margin-top:8px;padding:15px}.home-screen .ingredient-panel{margin-top:6px;padding:12px}.section-title{color:#193c20;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:18px;font-weight:800;display:flex}.home-screen .section-title{margin-bottom:8px;font-size:17px}.section-title small,.panel-note,.hint,.empty{color:#63766a;font-size:13px;line-height:1.55}.ingredient-form{grid-template-columns:1fr 42px;gap:8px;margin-bottom:10px;display:grid}.home-screen .ingredient-form{grid-template-columns:1fr 40px;margin-bottom:8px}.ingredient-form input{color:#1c2d20;background:#ffffffdb;border:1px solid #5989562e;border-radius:8px;outline:none;min-width:0;height:42px;padding:0 12px}.home-screen .ingredient-form input{height:40px}.ingredient-form input:focus{border-color:#64a66a;box-shadow:0 0 0 3px #64a66a21}.ingredient-form button{color:#fff;background:#4d9855;border:0;border-radius:8px;place-items:center;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.home-screen .chips{gap:6px}.chip{border-radius:999px;min-height:32px;padding:0 11px;font-size:14px}.home-screen .chip{min-height:30px;padding:0 10px}.chip.selected{background:#e9f7e8;border-color:#4f9e5a}.menu-list{gap:10px;margin-top:14px;display:grid}.home-screen .menu-list{gap:8px;margin-top:10px}.recipe-card{background:#ffffffd6;border:1px solid #5989562b;border-radius:8px;grid-template-columns:76px 1fr 46px;align-items:center;gap:12px;min-height:116px;padding:10px;display:grid;box-shadow:0 12px 26px #48774817}.home-screen .recipe-card{grid-template-columns:68px 1fr 42px;gap:10px;min-height:96px;padding:8px}.recipe-art{color:#fff;background:linear-gradient(135deg,#ff8475eb,#ffc066eb),radial-gradient(circle at 26% 22%,#ffffffb3,#0000 26%);border-radius:8px;place-items:center;width:76px;height:76px;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #fff6}.home-screen .recipe-art{width:68px;height:68px}.recipe-art img{object-fit:cover;width:100%;height:100%;display:block}.recipe-line{align-items:center;gap:8px;min-width:0;margin-bottom:8px;display:flex}.home-screen .recipe-line{margin-bottom:5px}.recipe-copy{min-width:0}.recipe-line h2{color:#162b1a;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:20px;line-height:1.2;overflow:hidden}.home-screen .recipe-line h2{font-size:18px}.recipe-copy p{color:#52645a;margin:0;font-size:14px;line-height:1.45}.home-screen .recipe-copy p{font-size:13px}.tag{border-radius:6px;flex:none;min-height:25px;padding:0 8px;font-size:12px;font-weight:700}.tag.spicy{color:#9d3d39;background:#fff0ef;border-color:#e7706a3d}.tag.clear{color:#34733d;background:#edf8ef;border-color:#4b975c38}.tag.soup{color:#36677d;background:#edf8fb;border-color:#5991b538}.recipe-actions{gap:8px;display:grid}.home-screen .recipe-actions{gap:6px}.mini-action{color:#214225;background:#f9fff8;border:1px solid #53875233;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.home-screen .mini-action{width:34px;height:34px}.mini-action.active{color:#fff;background:#438c4c}.mini-action.danger{color:#d94d55;background:#fff7f7;border-color:#e8646b47}.primary-button{color:#fff;background:linear-gradient(#fb7f85 0%,#ef696d 100%);border:0;border-radius:28px;justify-content:center;align-items:center;gap:10px;width:calc(100% - 32px);min-height:64px;margin:16px auto 8px;font-size:22px;font-weight:900;display:flex;box-shadow:0 18px 32px #ec656a47}.home-action-dock{z-index:3;left:50%;bottom:calc(78px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffafae0;border:1px solid #f4858b33;border-radius:30px;width:min(100% - 32px,430px);padding:8px;position:fixed;transform:translate(-50%);box-shadow:0 16px 36px #4f755029}.home-action-dock .primary-button{border-radius:24px;width:100%;min-height:54px;margin:0;font-size:20px}.hint{text-align:center;margin:0 0 12px}.home-action-dock .hint{margin:6px 4px 0;font-size:12px}.bottom-nav{padding:9px 8px max(9px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffd1;border:1px solid #59895624;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.home-screen .bottom-nav{z-index:3;left:50%;bottom:max(8px, env(safe-area-inset-bottom));width:min(100% - 32px,430px);margin:0;position:fixed;transform:translate(-50%)}.nav-item{color:#66736a;background:0 0;border:0;justify-items:center;gap:4px;font-size:12px;display:grid}.nav-item.active{color:#3d9348;font-weight:800}.settings-screen{align-content:start;gap:14px;padding-top:12px;display:grid}.settings-header{text-align:center;grid-template-columns:48px 1fr 48px;align-items:center;display:grid}.settings-panel{padding:16px}.preset-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.preset,.text-button{color:#173b1f;background:#ffffffc7;border:1px solid #59895633}.preset{border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:62px;font-size:16px;font-weight:800;display:flex}.preset.selected,.text-button{color:#2f7b38;background:#edf8ec;border-color:#4c9a55}.text-button{border-radius:999px;min-height:34px;padding:0 12px;font-size:14px;font-weight:800}.stepper-row{color:#1c3421;justify-content:space-between;align-items:center;min-height:52px;font-size:17px;font-weight:800;display:flex}.stepper{background:#fff;border:1px solid #59895633;border-radius:8px;grid-template-columns:42px 50px 42px;align-items:center;display:grid;overflow:hidden}.stepper button{color:#32793b;background:0 0;border:0;place-items:center;height:40px;display:grid}.stepper strong{color:#173b1f;border-inline:1px solid #59895624;place-items:center;height:40px;font-size:18px;display:grid}.panel-note{margin:10px 0 0}.blacklist{gap:8px;margin-top:10px;display:grid}.collapse-toggle{color:#255b2c;background:#f6fcf6e6;border:1px solid #59895629;border-radius:8px;justify-content:space-between;align-items:center;width:100%;min-height:42px;padding:0 12px;font-size:14px;font-weight:800;display:flex}.blacklist-row{background:#ffffffb8;border:1px solid #59895621;border-radius:8px;justify-content:space-between;align-items:center;min-height:44px;padding:0 10px;display:flex}.blacklist-row span{align-items:center;gap:8px;display:inline-flex}.blacklist-row button{color:#47564d;background:0 0;border:0;place-items:center;width:34px;height:34px;display:grid}.empty{margin:0}.pwa-panel{color:#17431f;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:15px;display:grid}.pwa-panel p{color:#607168;margin:4px 0 0;font-size:13px}.pwa-panel span{border-radius:6px;min-height:29px;padding:0 9px;font-size:12px;font-weight:800}.library-screen{align-content:start;gap:14px;padding-top:12px;display:grid}.library-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffbd;border:1px solid #5989562e;border-radius:8px;min-height:0;padding:16px;box-shadow:0 14px 36px #48774817}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.category-card{color:#17351d;text-align:left;background:#ffffffc7;border:1px solid #59895624;border-radius:8px;gap:8px;min-height:134px;padding:14px;display:grid}.category-card span{color:#34783e;align-items:center;gap:8px;font-weight:900;display:flex}.category-card strong{color:#17351d;font-size:26px;line-height:1}.category-card em{color:#64736a;font-size:13px;font-style:normal;line-height:1.35}.recipe-library-list{content-visibility:auto;gap:8px;max-height:min(64vh,620px);padding-right:2px;display:grid;overflow:auto}.recipe-library-list.compact{max-height:min(70vh,680px)}.library-row{background:#ffffffc2;border:1px solid #59895621;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:72px;padding:9px 10px;display:grid}.recipe-open{min-width:0;color:inherit;text-align:left;background:0 0;border:0;padding:0}.recipe-open span{align-items:center;gap:8px;min-width:0;display:flex}.recipe-open strong{color:#17351d;min-width:0;font-size:16px;line-height:1.25}.recipe-open small{color:#3d7f46;background:#edf8ef;border-radius:6px;flex:none;padding:2px 7px;font-size:12px;font-weight:800}.recipe-open em{color:#627067;text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:13px;font-style:normal;line-height:1.35;display:block;overflow:hidden}.star-rating{align-items:center;gap:2px;display:inline-flex}.star-button{color:#c9b9a2;background:0 0;border:0;border-radius:6px;place-items:center;width:27px;height:27px;display:grid}.star-button.active{color:#f2a34f}.star-button.active svg{fill:currentColor}.baby-screen{align-content:start;gap:14px;padding-top:12px;display:grid}.baby-panel,.baby-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffc2;border:1px solid #5989562e;border-radius:8px;box-shadow:0 14px 36px #48774814}.baby-panel{padding:16px}.age-tabs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.age-tab{color:#27592d;background:#ffffffd6;border:1px solid #59895633;border-radius:8px;min-height:42px;font-size:14px;font-weight:800}.age-tab.selected{color:#fff;background:#4c9a55;border-color:#4c9a55}.baby-list{gap:10px;display:grid}.baby-card{grid-template-columns:54px 1fr;align-items:center;gap:12px;min-height:104px;padding:12px;display:grid}.baby-icon{color:#fff;background:linear-gradient(135deg,#74b981,#f39aa2);border-radius:8px;place-items:center;width:54px;height:54px;display:grid}.baby-card p,.baby-card small{color:#5b6c62;margin:0;font-size:13px;line-height:1.45;display:block}.primary-button.secondary{background:linear-gradient(#58a763 0%,#448f4f 100%);box-shadow:0 18px 32px #448f4f38}.modal-backdrop{z-index:4;padding:18px 16px max(18px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#13241647;place-items:end center;display:grid;position:fixed;inset:0}.recipe-modal{background:#fbfdf9;border:1px solid #5989562e;border-radius:8px;gap:16px;width:min(100%,390px);padding:18px;display:grid;position:relative;box-shadow:0 26px 70px #24402842}.modal-close{color:#254229;background:#ffffffdb;border:1px solid #4b714f2e;border-radius:8px;place-items:center;width:38px;height:38px;display:grid;position:absolute;top:12px;right:12px}.modal-art{aspect-ratio:1;width:min(100%,288px);height:auto;margin:4px auto 0}.modal-copy{justify-items:start;gap:8px;display:grid}.modal-copy h2{color:#15331b;margin:0;font-size:26px;line-height:1.15}.modal-copy p{color:#5e6e64;margin:0;font-size:14px}.toast{z-index:5;left:50%;bottom:max(26px, env(safe-area-inset-bottom));color:#1f4726;text-align:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f6fff5f0;border:1px solid #3a7a4038;border-radius:8px;width:min(100% - 32px,390px);padding:13px 16px;position:fixed;transform:translate(-50%);box-shadow:0 16px 38px #375d3a33}@media (width>=780px){.app-shell{place-items:center;padding:32px;display:grid}.screen{background:#f8fcf794;border:1px solid #223a261c;border-radius:34px;min-height:auto;padding:22px;box-shadow:0 30px 80px #2a4e3029}.home-screen{padding-bottom:22px}.home-action-dock{width:100%;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;margin-top:14px;padding:0;position:static;transform:none}.home-action-dock .primary-button{border-radius:28px;width:calc(100% - 32px);min-height:64px;margin:0 auto;font-size:22px}.home-action-dock .hint{margin:8px 0 12px}.home-screen .bottom-nav{width:100%;margin-top:12px;position:static;transform:none}}@media (width<=380px){.recipe-card{grid-template-columns:64px 1fr 42px}.recipe-art{width:64px;height:64px}.library-row{grid-template-columns:1fr}.star-rating{justify-self:start}.recipe-line{flex-wrap:wrap}.preset-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:no-preference){.recipe-card,.settings-panel,.primary-button{transition:transform .18s,box-shadow .18s,border-color .18s}.recipe-card:hover,.settings-panel:hover{transform:translateY(-1px)}.primary-button:active{transform:translateY(1px)scale(.995)}}
