:root{color:#17372a;font-synthesis:none;text-rendering:optimizelegibility;--forest:#1d5b3d;--forest-dark:#123d2a;--leaf:#74a777;--mint:#dce9d7;--cream:#f8f6ef;--paper:#fffefa;--coral:#e8896f;--gold:#e9bd65;--ink-soft:#65766d;--line:#1d5b3d1f;--shadow:0 20px 60px #2046321a;background:#f8f6ef;font-family:Microsoft YaHei UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #e9bd65}.no-scroll{overflow:hidden}.hero{color:#fdfdf8;background:radial-gradient(circle at 78% 35%,#80b58238,#0000 26%),linear-gradient(128deg,#153f2c 0%,#1c593c 58%,#2b704e 100%);min-height:610px;padding:0 max(24px,50vw - 590px);position:relative;overflow:hidden}.hero:after{content:"";background:var(--cream);border-radius:50% 50% 0 0;height:105px;position:absolute;bottom:-58px;left:-3%;right:-3%}.hero-orb{border:1px solid #ffffff14;border-radius:50%;position:absolute}.hero-orb-one{width:390px;height:390px;top:70px;right:8%}.hero-orb-two{width:570px;height:570px;top:-20px;right:-3%}.topbar{z-index:2;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;height:88px;display:flex;position:relative}.brand{color:#fff;letter-spacing:.04em;align-items:center;gap:11px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.brand-mark,.footer-brand{width:34px;height:34px;color:var(--forest-dark);background:var(--gold);border-radius:11px 11px 11px 4px;place-items:center;font-weight:800;display:grid}.history-pill{color:#dbe9df;background:#ffffff0f;border:1px solid #ffffff24;border-radius:99px;align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:flex}.history-pill i{background:#99d39c;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 5px #99d39c1a}.hero-content{z-index:2;grid-template-columns:1.05fr .95fr;align-items:center;min-height:445px;padding-bottom:64px;display:grid;position:relative}.hero-copy{padding:42px 0 50px}.hero-kicker{color:#cddfd3;letter-spacing:.05em;align-items:center;gap:10px;margin:0 0 20px;font-size:13px;display:flex}.hero-kicker span{background:var(--gold);width:25px;height:1px}.hero h1{letter-spacing:-.055em;margin:0;font-size:clamp(48px,5vw,70px);font-weight:700;line-height:1.18}.hero h1 em{color:#f4cf82;font-style:normal}.hero-description{color:#cbddd1;max-width:510px;margin:24px 0 28px;font-size:16px;line-height:1.9}.generate-button{min-width:248px;height:58px;color:var(--forest-dark);background:var(--gold);cursor:pointer;border:0;border-radius:17px 17px 17px 5px;justify-content:center;align-items:center;gap:12px;padding:0 26px;font-weight:800;transition:transform .2s,background .2s,box-shadow .2s;display:inline-flex;box-shadow:0 12px 34px #08201440}.generate-button:hover{background:#f1c979;transform:translateY(-2px);box-shadow:0 16px 38px #08201447}.generate-button:disabled{cursor:wait;opacity:.85}.spark-icon{width:22px;height:22px}.spark-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linejoin:round;width:100%}.is-spinning .spark-icon{animation:.8s linear infinite twinkle}@keyframes twinkle{to{transform:rotate(180deg)scale(.8)}}.hero-meta{color:#abc4b4;gap:25px;margin-top:16px;font-size:11px;display:flex}.hero-meta span{padding-left:14px;position:relative}.hero-meta span:before{content:"✓";color:#9bc79f;position:absolute;left:0}.error-message{color:#ffe9df;background:#83231461;border-radius:10px;max-width:520px;margin:15px 0 0;padding:10px 14px;font-size:13px}.hero-visual{height:390px;position:relative}.plate{background:#eef2e7;border-radius:50%;width:300px;height:300px;position:absolute;top:42px;right:55px;transform:rotate(-7deg);box-shadow:0 30px 80px #031c0e6b,inset 0 0 0 25px #f9faf5,inset 0 0 0 27px #dce5d8}.plate:after{content:"";background:#b6d09e;border-radius:58% 42% 53% 47%;width:120px;height:85px;position:absolute;bottom:45px;right:48px;transform:rotate(12deg);box-shadow:inset -15px -10px 25px #2b643f2e}.plate-food{z-index:2;filter:drop-shadow(0 7px 7px #27442c2e);position:absolute}.food-green{background:radial-gradient(circle at 25% 30%,#9cc784 0 9%,#0000 10%),radial-gradient(circle at 55% 25%,#8dbc78 0 14%,#0000 15%),radial-gradient(circle at 70% 62%,#6eaa69 0 18%,#0000 19%),#7db46d;border-radius:55% 45% 60% 40%;width:130px;height:105px;top:43px;left:43px}.food-coral{background:repeating-linear-gradient(15deg,#0000 0 16px,#78321921 17px 19px),#dd8d64;border-radius:47% 53% 38% 62%;width:125px;height:96px;top:60px;right:42px}.food-gold{background:radial-gradient(circle at 30% 35%,#f7df88 0 5%,#0000 6%),#e8bd5c;border-radius:45%;width:98px;height:88px;bottom:47px;left:57px}.leaf{z-index:4;color:#356e48;font-family:serif;font-size:55px;position:absolute;transform:rotate(-35deg)}.leaf-one{top:130px;left:25px}.leaf-two{bottom:90px;right:32px;transform:rotate(145deg)}.floating-label{z-index:4;color:var(--forest-dark);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffaed;border-radius:14px;align-items:center;gap:11px;padding:12px 15px;font-size:11px;line-height:1.5;display:flex;position:absolute;box-shadow:0 15px 40px #051f123b}.floating-label strong{color:var(--coral);font-size:28px}.label-one{top:36px;left:12px}.label-two{bottom:42px;right:0}.check{color:#fff;background:var(--leaf);border-radius:50%;place-items:center;width:29px;height:29px;font-weight:800;display:grid}.content-wrap{max-width:1180px;margin:0 auto;padding:32px 24px 95px;scroll-margin-top:20px}.menu-intro{justify-content:space-between;align-items:end;margin:10px 0 30px;display:flex}.eyebrow{color:#71917d;letter-spacing:.16em;margin:0 0 7px;font-size:10px;font-weight:800}.menu-intro h2,.shopping-card h2{color:var(--forest-dark);letter-spacing:-.04em;margin:0;font-size:30px}.menu-intro>p{color:var(--ink-soft);text-align:right;margin:0;font-size:12px;line-height:1.8}.meal-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.meal-card,.shopping-card{background:var(--paper);box-shadow:var(--shadow);border:1px solid #1d5b3d12;border-radius:24px}.meal-card{overflow:hidden}.meal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:25px 28px 20px;display:flex}.meal-header h2{color:var(--forest-dark);letter-spacing:-.05em;margin:0;font-size:27px}.meal-count{color:#5b7c68;background:#eff4eb;border-radius:10px;padding:7px 11px;font-size:11px;font-weight:600}.dish-list{padding:9px 14px 13px}.dish-row{width:100%;min-height:69px;color:inherit;border-bottom:1px dashed #1d5b3d1c;border-radius:12px;align-items:center;gap:12px;padding:9px 10px;transition:background .2s;display:flex}.dish-row:hover{background:#f4f7ef}.dish-number{border-radius:12px;flex:none;place-items:center;width:39px;height:39px;font-family:Georgia,serif;font-size:14px;font-weight:700;display:grid}.dish-number-1{color:#b45944;background:#f8dfd8}.dish-number-2{color:#977126;background:#f6e8bd}.dish-number-3{color:#4e7b50;background:#dcebd8}.dish-open{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:3px;padding:7px 0;display:flex}.dish-open small,.staple-row small{color:#8a978f;letter-spacing:.07em;font-size:9px}.dish-open strong,.staple-row strong{color:#254c39;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.replace-dish-button{color:#688375;cursor:pointer;background:#edf3ea;border:0;border-radius:10px;flex-direction:column;flex:none;align-items:center;gap:2px;width:55px;padding:6px 3px;transition:color .2s,background .2s,transform .2s;display:flex}.replace-dish-button:hover{color:var(--forest);background:#dfeadc;transform:translateY(-1px)}.replace-dish-button:disabled{cursor:wait;opacity:.62}.replace-dish-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.replace-dish-button span{white-space:nowrap;font-size:8px}.replace-dish-button.is-replacing svg{animation:.6s linear infinite dish-spin}@keyframes dish-spin{to{transform:rotate(360deg)}}.chevron{color:#99aa9f;width:19px}.chevron svg,.bag-icon svg,.close-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:100%}.staple-row{background:#f7f5ea;border-radius:13px;align-items:center;gap:13px;min-height:61px;margin-top:4px;padding:9px 12px;display:flex}.staple-row>div{flex-direction:column;flex:1;gap:2px;display:flex}.staple-icon{color:#8d6b26;background:#f0d795;border-radius:50%;place-items:center;width:36px;height:36px;font-size:11px;font-weight:800;display:grid}.staple-note{color:#849087;font-size:10px}.nutrition-strip{color:#fff;background:#194c35;grid-template-columns:repeat(4,1fr);padding:17px 18px;display:grid}.nutrition-stat{border-right:1px solid #ffffff1f;flex-direction:column;align-items:center;gap:3px;display:flex}.nutrition-stat:last-child{border:0}.nutrition-stat span{color:#c7d8cd;font-size:9px}.nutrition-stat strong{color:#fff;margin-right:2px;font-size:16px}.nutrition-stat small{color:#99b3a3;font-size:9px}.shopping-card{margin-top:25px;padding:28px}.shopping-header{justify-content:space-between;align-items:center;display:flex}.shopping-title-wrap{align-items:center;gap:14px;display:flex}.bag-icon{width:48px;height:48px;color:var(--forest);background:var(--mint);border-radius:15px;place-items:center;padding:12px;display:grid}.total-weight{flex-direction:column;align-items:end;gap:2px;display:flex}.total-weight small{color:#89978f;font-size:10px}.total-weight strong{color:var(--forest);font-size:24px}.shopping-hint{color:#829087;margin:14px 0 24px 63px;font-size:11px}.shopping-groups{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.shopping-group{background:#f7f7f1;border-radius:17px;padding:17px}.shopping-group h3{color:#365b47;align-items:center;gap:8px;margin:0 0 12px;font-size:12px;display:flex}.shopping-group h3 small{color:#9ba69f;margin-left:auto;font-weight:500}.group-dot{border-radius:50%;width:8px;height:8px}.group-dot.coral{background:var(--coral)}.group-dot.green{background:var(--leaf)}.group-dot.gold{background:var(--gold)}.shopping-item{color:#536b5d;border-top:1px dashed #dfe4dc;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;font-size:12px;display:flex}.shopping-item>span{flex-direction:column;display:flex}.shopping-item small{color:#9ba69f;margin-top:2px;font-size:8px}.shopping-item strong{color:#294e3a;white-space:nowrap;font-size:12px}.shopping-footnote{color:#9aa69e;text-align:center;margin:20px 0 0;font-size:10px}.empty-state{text-align:center;max-width:560px;margin:50px auto 100px;padding:45px 24px}.empty-state>span{color:var(--forest);background:var(--mint);border-radius:99px;padding:6px 12px;font-size:11px;font-weight:700;display:inline-block}.empty-state h2{color:var(--forest-dark);margin:18px 0 10px;font-size:30px}.empty-state p{color:var(--ink-soft);font-size:14px;line-height:1.8}footer{color:#90aa9a;text-align:left;background:#123b29;justify-content:center;align-items:center;gap:15px;min-height:150px;display:flex}footer p{margin:0;font-size:10px;line-height:1.8}.footer-brand{flex:none}.sheet-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#081f14a3;place-items:end center;padding:24px;animation:.2s ease-out fade-in;display:grid;position:fixed;inset:0}.recipe-sheet{width:min(680px,100%);max-height:min(88vh,820px);padding:34px 34px calc(30px + env(safe-area-inset-bottom));background:var(--paper);border-radius:27px 27px 12px 12px;animation:.28s cubic-bezier(.2,.8,.2,1) sheet-in;position:relative;overflow-y:auto;box-shadow:0 25px 90px #03140a73}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-in{0%{opacity:.4;transform:translateY(60px)}}.sheet-grabber{background:#d9dfd8;border-radius:9px;width:44px;height:4px;margin:-19px auto 22px;display:none}.close-button{color:#698073;cursor:pointer;background:#edf1ea;border:0;border-radius:50%;width:38px;height:38px;padding:10px;position:absolute;top:22px;right:22px}.recipe-sheet h2{color:var(--forest-dark);letter-spacing:-.045em;margin:0 52px 6px 0;font-size:31px}.recipe-calories{color:var(--forest);margin-top:9px;font-size:12px}.recipe-calories strong{font-size:22px}.recipe-calories span{color:#8d9b93;margin-left:5px}.recipe-section{margin-top:27px}.recipe-section h3{color:#315842;margin:0 0 12px;font-size:14px}.ingredient-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.ingredient-item{color:#5c6f64;background:#f4f5ef;border-radius:11px;justify-content:space-between;gap:10px;padding:11px 13px;font-size:12px;display:flex}.ingredient-item>span{flex-direction:column;display:flex}.ingredient-item small{color:#9aa69f;font-size:8px}.ingredient-item strong{color:#2f5841;white-space:nowrap}.seasoning-list{border-left:3px solid var(--gold);color:#64756b;background:#f9f5e9;margin:0;padding:14px;font-size:12px;line-height:1.8}.steps-list{margin:0;padding:0;list-style:none}.steps-list li{gap:12px;margin-bottom:13px;display:flex}.steps-list li>span{color:#fff;background:var(--forest);border-radius:8px;flex:none;place-items:center;width:25px;height:25px;font-size:10px;font-weight:800;display:grid}.steps-list p{color:#607268;margin:1px 0 0;font-size:12px;line-height:1.7}.recipe-macros{background:#173f2d;border-radius:15px;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:25px;padding:15px;display:grid}.recipe-macros>div{border-right:1px solid #ffffff1f;flex-direction:column;align-items:center;gap:3px;display:flex}.recipe-macros>div:last-child{border:0}.recipe-macros span{color:#9cb4a4;font-size:9px}.recipe-macros strong{color:#fff;font-size:14px}@media (width<=900px){.hero{min-height:auto}.hero-content{grid-template-columns:1fr;padding-bottom:92px}.hero-copy{max-width:610px;padding-bottom:10px}.hero-visual{opacity:.23;pointer-events:none;position:absolute;bottom:15px;right:-110px;transform:scale(.8)}.meal-grid{grid-template-columns:1fr}.shopping-groups{grid-template-columns:1fr 1fr}}@media (width<=600px){.hero{padding:0 20px}.topbar{height:70px}.brand{font-size:15px}.brand-mark{width:30px;height:30px}.history-pill{padding:7px 10px;font-size:10px}.hero-content{min-height:500px;padding-bottom:74px}.hero-copy{padding-top:50px}.hero-kicker{font-size:11px}.hero h1{font-size:clamp(39px,11vw,50px);line-height:1.22}.hero-description{margin:20px 0 25px;font-size:14px;line-height:1.8}.generate-button{width:100%;height:58px}.hero-meta{justify-content:center;gap:12px;font-size:9px}.hero-visual{bottom:-30px;right:-155px;transform:scale(.7)}.content-wrap{padding:22px 14px 70px}.menu-intro{align-items:flex-start;margin-bottom:20px}.menu-intro h2{font-size:23px}.menu-intro>p{display:none}.meal-grid{gap:14px}.meal-card,.shopping-card{border-radius:20px}.meal-header{padding:21px 20px 16px}.meal-header h2{font-size:24px}.dish-list{padding:8px 8px 10px}.dish-row{gap:9px;min-height:65px;padding:8px 6px}.dish-open strong{font-size:14px}.replace-dish-button{width:52px}.nutrition-strip{padding:15px 8px}.nutrition-stat strong{font-size:14px}.shopping-card{margin-top:14px;padding:21px 17px}.shopping-card h2{font-size:25px}.bag-icon{width:43px;height:43px}.total-weight strong{font-size:20px}.shopping-hint{margin:12px 0 20px}.shopping-groups{grid-template-columns:1fr;gap:10px}.shopping-group{padding:15px}.empty-state{margin:20px auto 70px}.empty-state h2{font-size:26px}.sheet-backdrop{align-items:end;padding:0}.recipe-sheet{max-height:91vh;padding:28px 20px calc(24px + env(safe-area-inset-bottom));border-radius:25px 25px 0 0}.sheet-grabber{display:block}.close-button{top:19px;right:17px}.recipe-sheet h2{font-size:27px}.ingredient-grid{grid-template-columns:1fr}footer{min-height:130px;padding-bottom:env(safe-area-inset-bottom)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
