:root{--bg:#f7f5ef;--card:#fffaf1;--text:#17211b;--muted:#6b756d;--brand:#2f7d4f;--brand2:#d9f2c7;--line:#e7dfd1;--shadow:0 20px 60px rgba(24,33,27,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at top left,#e9ffd9 0,#f7f5ef 36%,#f7f5ef 100%);color:var(--text)}a{color:inherit;text-decoration:none}main{max-width:1180px;margin:0 auto;padding:34px 20px 70px}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 28px;background:rgba(247,245,239,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(231,223,209,.7)}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:var(--brand);color:white;box-shadow:var(--shadow)}nav{display:flex;align-items:center;gap:18px;color:var(--muted);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--text);color:#fff;padding:13px 20px;font-weight:800;border:1px solid var(--text);box-shadow:0 12px 30px rgba(23,33,27,.15)}.btn.ghost{background:transparent;color:var(--text)}.btn.small{padding:9px 14px;font-size:14px}.hero{display:grid;grid-template-columns:minmax(0,1.3fr) 380px;gap:34px;align-items:center;padding:40px 0}.hero-card{background:rgba(255,250,241,.72);border:1px solid var(--line);border-radius:42px;padding:54px;box-shadow:var(--shadow)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--brand);font-size:13px;font-weight:900}.hero h1,.page-title h1{font-size:clamp(40px,6vw,76px);line-height:.95;margin:12px 0}.lead{font-size:20px;line-height:1.55;color:var(--muted);max-width:760px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.phone-preview{background:#18211b;color:#fff;border-radius:42px;padding:26px;box-shadow:var(--shadow);min-height:470px}.phone-top{width:76px;height:6px;background:#fff3;border-radius:30px;margin:0 auto 28px}.meal{display:flex;flex-direction:column;gap:7px;margin:14px 0;padding:18px;background:#fff1;border:1px solid #fff2;border-radius:24px}.meal span{color:#d8ded9}.stat-row{display:flex;justify-content:space-between;margin-top:14px;padding-top:14px;border-top:1px solid #fff2}.features,.recipe-grid,.planner-mock{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.features article,.recipe-card,.panel,.empty{background:var(--card);border:1px solid var(--line);border-radius:30px;padding:24px;box-shadow:0 12px 35px rgba(24,33,27,.06)}.features p,.recipe-card p,.page-title p,.panel p{color:var(--muted);line-height:1.5}.section-head{display:flex;align-items:end;justify-content:space-between;margin:42px 0 18px}.section-head h2{font-size:34px;margin:0}.recipe-card{display:grid;gap:16px;transition:.18s}.recipe-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.recipe-img,.recipe-hero-img{display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#d9f2c7,#fff0c2);border-radius:24px;aspect-ratio:1.35}.recipe-img span,.recipe-hero-img span{font-size:64px;font-weight:900;color:var(--brand)}.recipe-img img,.recipe-hero-img img{width:100%;height:100%;object-fit:cover}.meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:14px}.meta span{padding:7px 10px;background:#f1eadf;border-radius:999px}.page-title{padding:30px 0}.chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.chip{padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:#fff8;color:var(--muted);font-weight:700}.chip.active{background:var(--brand);color:white;border-color:var(--brand)}.recipe-detail{display:grid;grid-template-columns:460px 1fr;gap:36px;align-items:center}.recipe-hero-img{aspect-ratio:1;border-radius:36px}.nutrition{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.nutrition div{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px}.nutrition b{display:block;font-size:28px}.nutrition span{color:var(--muted)}.two-col{display:grid;grid-template-columns:1fr 1.3fr;gap:22px;margin-top:32px}.list-line{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.step{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.step b,.todo span{display:grid;place-items:center;min-width:34px;height:34px;border-radius:12px;background:var(--brand2);color:var(--brand);font-weight:900}.planner-mock{grid-template-columns:1.2fr .8fr}.panel.dark{background:#18211b;color:white}.panel.dark p{color:#d8ded9}.todo{display:flex;gap:14px;margin:14px 0}.footer{text-align:center;color:var(--muted);padding:26px;border-top:1px solid var(--line)}@media(max-width:860px){.site-header{align-items:flex-start;flex-direction:column}.hero,.recipe-detail,.two-col,.planner-mock{grid-template-columns:1fr}.features,.recipe-grid{grid-template-columns:1fr}.hero-card{padding:30px;border-radius:30px}.phone-preview{min-height:auto}.nutrition{grid-template-columns:repeat(2,1fr)}nav{width:100%;overflow:auto;padding-bottom:4px}.hero h1,.page-title h1{font-size:42px}}
.messages{max-width:1180px;margin:18px auto 0;padding:0 20px}.message{padding:14px 18px;border-radius:18px;background:#fffaf1;border:1px solid var(--line);box-shadow:0 12px 30px rgba(24,33,27,.06);font-weight:700}.message.success{border-color:#b8e4a6;background:#f1ffe9}.message.error{border-color:#ffb5a8;background:#fff0ed}.nav-user{padding:8px 12px;border-radius:999px;background:#fff8;color:var(--text)}.ghost-btn{background:transparent;color:var(--text);box-shadow:none}.page-title.compact h1{font-size:clamp(38px,5vw,62px)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0 28px}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:22px;box-shadow:0 12px 35px rgba(24,33,27,.06)}.stat-card span{display:block;color:var(--muted);font-weight:700}.stat-card b{display:block;font-size:30px;margin-top:8px}.form-card{background:var(--card);border:1px solid var(--line);border-radius:34px;padding:26px;box-shadow:var(--shadow)}.form-card.narrow{max-width:520px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field{display:grid;gap:8px;font-weight:800}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px 15px;font:inherit;color:var(--text);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(47,125,79,.1)}.field small{color:var(--muted);font-weight:600}.field .error{color:#b12a17}.menu-week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px}.day-card{background:#fff8;border:1px solid var(--line);border-radius:24px;padding:16px}.day-card h3{margin:0 0 12px}.meal-line{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid var(--line)}.meal-line:last-child{border-bottom:0}.meal-line span{font-size:13px;color:var(--muted);font-weight:800}.meal-line b{line-height:1.25}.meal-line em{font-style:normal;color:var(--brand);font-weight:800}.shopping-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.shopping-item{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;background:#fff8;border:1px solid var(--line);border-radius:18px;padding:12px}.shopping-item button{width:38px;height:38px;border-radius:14px;border:0;background:var(--brand2);color:var(--brand);font-weight:900;cursor:pointer}.shopping-item.checked{opacity:.55}.shopping-item.checked span{text-decoration:line-through}.fridge-line{align-items:center}.fridge-line span{display:grid}.fridge-line small{color:var(--muted);font-size:13px}.link-danger{border:0;background:#fff0ed;color:#b12a17;border-radius:999px;padding:9px 12px;font-weight:900;cursor:pointer}.empty.big{text-align:center;padding:44px}.empty.big .btn{margin-top:12px}@media(max-width:1080px){.menu-week{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.form-grid,.shopping-list,.stats-grid,.menu-week{grid-template-columns:1fr}.site-header form{display:inline}.section-head{align-items:flex-start;flex-direction:column;gap:8px}}
.section-head.inside{margin:0 0 14px}.small-nutrition{grid-template-columns:repeat(4,1fr);margin:18px 0 0}.compact-card{min-height:180px}.wide-left{grid-template-columns:1fr 1fr}.form-card.inner{box-shadow:none;margin:12px 0 26px;padding:18px;border-radius:24px}.checkbox-field{display:flex!important;align-items:center;gap:10px;min-height:48px}.checkbox-field input{width:auto!important}.checkbox-field span{font-weight:800}.member-card{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line)}.member-card b{font-size:18px}.member-card p{margin:4px 0 10px}.round-status{display:grid;place-items:center;width:38px;height:38px;border-radius:14px;background:#fff}.status-soon{border-color:#f2cc64;background:#fff8df}.status-expired{border-color:#ffb5a8;background:#fff0ed}.category-title{font-size:22px;margin:26px 0 12px}.mini-features{margin-top:26px}.shopping-item small{display:block;color:var(--muted);font-size:13px;margin-top:3px}.shopping-item form{margin:0}.shopping-item input[type=checkbox]{width:auto}.fridge-list{grid-template-columns:1fr}.fridge-line{grid-template-columns:42px 1fr auto}.fridge-line .link-danger{white-space:nowrap}.link-danger:hover{filter:brightness(.96)}@media(max-width:860px){.wide-left{grid-template-columns:1fr}.small-nutrition{grid-template-columns:repeat(2,1fr)}.member-card{flex-direction:column}.fridge-line{grid-template-columns:42px 1fr}.fridge-line form{grid-column:2}.site-header{position:relative}nav a,nav .btn,nav button{white-space:nowrap}}
.invite-card{display:grid;gap:10px;padding:16px 0;border-bottom:1px solid var(--line)}
.invite-card p{margin:4px 0 10px}.copy-input{width:100%;border:1px dashed var(--line);background:#fff;border-radius:14px;padding:11px 12px;color:var(--muted);font:inherit;font-size:13px}.form-card.narrow .field{margin-bottom:14px}.form-card.narrow ul{margin:6px 0 0;color:var(--muted);font-weight:600}.form-card.narrow li{margin:4px 0}.info-note{padding:14px 16px;border-radius:18px;background:#f1ffe9;border:1px solid #b8e4a6;color:var(--brand);font-weight:800}

/* Stage 04 SEO recipes */
.search-form{display:flex;gap:12px;align-items:center;max-width:760px;margin-top:24px}
.search-form input{flex:1;border:1px solid var(--line);border-radius:999px;padding:15px 18px;background:#fffaf1;font:inherit;color:var(--text);outline:none}
.search-form input:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(47,125,79,.12)}
.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:10px 0 28px}
.category-card{background:rgba(255,250,241,.82);border:1px solid var(--line);border-radius:28px;padding:22px;box-shadow:0 12px 35px rgba(24,33,27,.05);transition:.18s}
.category-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.category-card span{font-size:30px}
.category-card h3{margin:12px 0 8px}
.category-card p{color:var(--muted);line-height:1.45;margin:0}
.recipe-card.rich{grid-template-rows:auto 1fr}
.recipe-card-top{display:flex;justify-content:space-between;gap:8px;align-items:center;color:var(--brand);font-weight:900;margin-bottom:8px}
.recipe-card-top small{background:#e8f7dd;border:1px solid #d3edc3;border-radius:999px;padding:6px 10px}
.recipe-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.recipe-facts span{padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:#fffaf1;font-weight:800;color:var(--muted)}
.seo-panel{margin-top:26px}
.seo-recipes{align-items:stretch}
@media(max-width:1020px){.category-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.search-form{flex-direction:column;align-items:stretch}.category-grid{grid-template-columns:1fr}.recipe-facts span{width:100%}}

/* Stage 05 Telegram */
.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:9px 13px;font-weight:900;border:1px solid var(--line)}
.status-pill.ok{background:#f1ffe9;color:var(--brand);border-color:#b8e4a6}.status-pill.warn{background:#fff8df;color:#8d6500;border-color:#f2cc64}
.telegram-steps{display:grid;gap:12px;margin:18px 0}.step-card{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;background:#fff8;border:1px solid var(--line);border-radius:22px;padding:16px}.step-card b{display:grid;place-items:center;width:38px;height:38px;border-radius:14px;background:var(--brand2);color:var(--brand);font-weight:900}.step-card p{margin:4px 0 10px}.step-card code,.telegram-note code{background:#fff;border:1px solid var(--line);border-radius:9px;padding:2px 6px;color:var(--text)}.one-col{grid-template-columns:1fr}.telegram-note{margin-top:18px}.mini-features .btn{margin-top:8px}
@media(max-width:720px){.step-card{grid-template-columns:1fr}.step-card b{width:34px;height:34px}.telegram-steps .copy-input{font-size:12px}}

/* Stage 06/07 — subscription + Apple/Notion/Linear mobile polish */
:root{--glass:rgba(255,255,255,.68);--blur-border:rgba(255,255,255,.8)}
body{background:radial-gradient(circle at 18% 8%,rgba(205,239,190,.62),transparent 34%),radial-gradient(circle at 84% 18%,rgba(255,235,194,.78),transparent 36%),linear-gradient(180deg,#fbfaf6 0%,#f4f2eb 100%)}
.site-header{backdrop-filter:blur(18px);background:rgba(255,250,241,.72);border:1px solid rgba(255,255,255,.7);box-shadow:0 20px 60px rgba(30,38,32,.08)}
.brand-mark{box-shadow:inset 0 -10px 18px rgba(255,255,255,.22),0 14px 30px rgba(47,125,79,.24)}
.panel,.form-card,.recipe-card,.stat-card,.pricing-card,.category-card{background:var(--glass);backdrop-filter:blur(18px);border-color:rgba(225,218,205,.86)}
.btn{transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.btn:hover{transform:translateY(-1px);filter:brightness(1.02)}
.pricing-hero{text-align:center}.pricing-hero p{margin-left:auto;margin-right:auto}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0 34px}.pricing-card{position:relative;border:1px solid var(--line);border-radius:36px;padding:28px;box-shadow:0 20px 60px rgba(24,33,27,.08);display:flex;flex-direction:column;gap:18px;min-height:430px}.pricing-card.featured{transform:translateY(-8px);border-color:rgba(47,125,79,.35);box-shadow:0 32px 90px rgba(47,125,79,.16)}.pricing-card.active{outline:4px solid rgba(47,125,79,.10)}.pricing-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.pricing-head h2,.pricing-card h2{font-size:30px;margin:0}.price{display:flex;align-items:flex-end;gap:6px}.price b{font-size:44px;letter-spacing:-.05em}.price span{color:var(--muted);font-weight:800;margin-bottom:8px}.best-badge{position:absolute;top:18px;right:18px;padding:8px 12px;border-radius:999px;background:#18211b;color:white;font-weight:900;font-size:13px}.clean-list{list-style:none;margin:0;padding:0;display:grid;gap:13px;color:var(--text);font-weight:800}.clean-list li{display:flex;gap:10px;align-items:flex-start}.clean-list li:before{content:'✓';display:grid;place-items:center;min-width:22px;height:22px;border-radius:9px;background:var(--brand2);color:var(--brand);font-weight:900}.wide{width:100%;margin-top:auto}.usage-grid .stat-card b{font-size:28px}.subscription-note{max-width:880px;margin:20px auto}.home-pricing{margin-top:0}.home-pricing .pricing-card{min-height:310px}.home-pricing .pricing-card.featured{transform:none}.form-grid .btn{align-self:end}.list-line small{display:block;color:var(--muted);font-weight:700;margin-top:4px}.panel a{font-weight:900}.mobile-tabbar{display:none}
@media(max-width:980px){.pricing-grid{grid-template-columns:1fr}.pricing-card,.pricing-card.featured{transform:none;min-height:auto}.pricing-head{align-items:center}.best-badge{position:static;width:max-content}.site-header{margin:10px;border-radius:26px}main{padding-left:14px;padding-right:14px}.page-title,.hero{padding-left:0;padding-right:0}.hero h1,.page-title h1{letter-spacing:-.055em}.panel,.form-card,.pricing-card,.recipe-card,.stat-card{border-radius:28px}}
@media(max-width:640px){.site-header nav{display:flex;gap:8px}.site-header nav a,.site-header nav .btn,.site-header nav button{font-size:14px;padding:8px 10px}.price b{font-size:38px}.pricing-card{padding:22px}.hero-card,.panel,.form-card{padding:22px}.stats-grid{gap:10px}.stat-card{padding:18px}.stat-card b{font-size:24px}.nutrition b{font-size:23px}.footer{padding-bottom:90px}}

/* Stage 08 UX navigation polish — guest/app navigation separation */
.nav-toggle{display:none;border:1px solid var(--line);background:#fffaf1;border-radius:14px;padding:9px 12px;font-size:20px;font-weight:900;color:var(--text)}
.site-nav{position:relative}.site-nav form{margin:0}.ghost-btn{background:transparent!important;color:var(--text)!important}.nav-user{padding:8px 10px;border-radius:999px;background:#fff8;color:var(--text);font-weight:900}.nav-more{position:relative}.nav-more summary{cursor:pointer;list-style:none;color:var(--muted);font-weight:800}.nav-more summary::-webkit-details-marker{display:none}.nav-more summary:after{content:'⌄';margin-left:6px}.nav-more[open] summary:after{content:'⌃'}.nav-dropdown{position:absolute;right:0;top:34px;display:grid;gap:4px;min-width:210px;padding:10px;background:rgba(255,250,241,.96);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);z-index:20}.nav-dropdown a{padding:11px 12px;border-radius:14px}.nav-dropdown a:hover{background:#fff}.center-actions{justify-content:center}.pricing-benefits{margin-top:10px}.feature-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:18px;background:#fff8;border:1px solid var(--line);font-size:24px;margin-bottom:12px}.landing-hero .hero-card{min-height:440px;display:flex;flex-direction:column;justify-content:center}.site-header .brand{white-space:nowrap}
@media(max-width:1080px){.site-header{align-items:flex-start}.nav-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:auto}.site-nav{display:none;position:absolute;left:14px;right:14px;top:76px;padding:14px;background:rgba(255,250,241,.98);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:6px}.site-nav.is-open{display:flex}.site-nav a,.site-nav .btn,.site-nav button,.site-nav summary{width:100%;justify-content:flex-start;padding:12px 14px;border-radius:16px}.nav-more{width:100%}.nav-dropdown{position:static;box-shadow:none;border-radius:18px;margin-top:8px;min-width:0;background:#fff8}.nav-user{width:100%;padding:12px 14px}.site-header form{width:100%}}
@media(max-width:760px){main{padding-bottom:110px}.mobile-tabbar{position:fixed;left:10px;right:10px;bottom:10px;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;background:rgba(255,250,241,.92);backdrop-filter:blur(18px);border:1px solid rgba(225,218,205,.9);border-radius:24px;box-shadow:0 20px 60px rgba(24,33,27,.18)}.mobile-tabbar a{display:grid;place-items:center;gap:2px;font-size:11px;font-weight:900;color:var(--muted)}.mobile-tabbar span{font-size:20px}.site-header{padding:12px 14px;margin:8px;border-radius:24px}.brand{font-size:17px}.brand-mark{width:36px;height:36px;border-radius:13px}.hero{grid-template-columns:1fr}.phone-preview{min-height:auto}.features-rich,.pricing-benefits{grid-template-columns:1fr}.footer{padding-bottom:105px}}

/* Stage 08 Smart Meal Engine */
.smart-engine{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0 28px}
.engine-card{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:28px;padding:22px;box-shadow:0 16px 50px rgba(24,33,27,.07)}
.engine-card.primary{background:linear-gradient(145deg,rgba(207,242,211,.85),rgba(255,249,236,.86))}
.engine-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:18px;background:#fff;border:1px solid var(--line);font-size:24px;margin-bottom:14px}
.engine-card h3{margin:0 0 8px;font-size:18px}
.engine-card p{margin:0;color:var(--muted);line-height:1.55}
.engine-report{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;margin:28px 0;padding:26px;border-radius:34px;border:1px solid var(--line);background:linear-gradient(140deg,rgba(255,255,255,.8),rgba(235,249,236,.74));box-shadow:0 18px 60px rgba(24,33,27,.08)}
.engine-report h2{margin:0 0 8px;font-size:30px}
.engine-report p{margin:0;color:var(--muted);line-height:1.6}
.report-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.report-metrics div{background:#fff;border:1px solid var(--line);border-radius:22px;padding:16px}
.report-metrics b{display:block;font-size:26px;color:var(--ink)}
.report-metrics span{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:800}
.engine-rules{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;list-style:none}
.engine-rules li{background:rgba(255,255,255,.68);border:1px solid var(--line);border-radius:16px;padding:10px 12px;color:var(--muted);font-weight:800;font-size:13px}
@media(max-width:980px){.smart-engine{grid-template-columns:repeat(2,1fr)}.engine-report{grid-template-columns:1fr}.engine-rules{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.smart-engine{grid-template-columns:1fr}.report-metrics{grid-template-columns:1fr}.engine-rules{grid-template-columns:1fr}.engine-report{border-radius:26px;padding:18px}.engine-report h2{font-size:24px}}

/* Stage 10 — Weight progress */
.progress-grid{display:grid;grid-template-columns:minmax(0,1.35fr) 420px;gap:22px;margin-top:24px}.progress-panel{min-height:520px}.chart-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}.chart-tabs button{border:1px solid var(--line);background:#fff8;color:var(--muted);border-radius:999px;padding:10px 14px;font-weight:900;cursor:pointer}.chart-tabs button.active{background:var(--text);border-color:var(--text);color:#fff}.weight-chart{display:none;position:relative;height:360px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(246,251,241,.72));overflow:hidden;padding:18px}.weight-chart.active{display:block}.weight-chart:before{content:'';position:absolute;inset:18px;background:linear-gradient(to right,rgba(23,33,27,.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(23,33,27,.055) 1px,transparent 1px);background-size:25% 100%,100% 25%;border-radius:22px;pointer-events:none}.weight-svg{position:absolute;left:18px;right:18px;top:30px;width:calc(100% - 36px);height:260px;color:var(--brand);overflow:visible;filter:drop-shadow(0 10px 18px rgba(47,125,79,.16))}.chart-dot{position:absolute;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:999px;background:var(--brand);border:3px solid #fff;box-shadow:0 10px 24px rgba(47,125,79,.22);z-index:2}.chart-dot span{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);background:#18211b;color:#fff;font-size:11px;font-weight:900;border-radius:999px;padding:4px 7px;opacity:0;transition:.16s;white-space:nowrap}.chart-dot:hover span{opacity:1}.chart-scale{position:absolute;left:18px;top:30px;bottom:70px;display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:900}.chart-caption{position:absolute;left:22px;right:22px;bottom:18px;color:var(--muted);font-weight:800;font-size:13px}.progress-entry b{font-size:18px}.one-col-form{grid-template-columns:1fr}.progress-table{margin-top:22px}.progress-stats .stat-card b{letter-spacing:-.04em}@media(max-width:980px){.progress-grid{grid-template-columns:1fr}.weight-chart{height:330px}.weight-svg{height:230px}}@media(max-width:620px){.progress-grid{gap:14px}.progress-panel{min-height:auto}.weight-chart{height:300px;border-radius:24px}.weight-svg{left:18px;width:calc(100% - 36px);height:210px}.chart-scale{left:12px}.chart-dot span{display:none}}

/* Stage 11 — Fridge movement ledger */
.fridge-stock-card{grid-template-columns:42px minmax(180px,1fr) minmax(420px,1.5fr) auto;align-items:center}.fridge-main{min-width:0}.movement-form{display:grid;grid-template-columns:130px 105px minmax(120px,1fr) auto;gap:8px;align-items:center}.movement-form select,.movement-form input{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 12px;font:inherit;color:var(--text);outline:none}.movement-form input:focus,.movement-form select:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(47,125,79,.1)}.activity-list{display:grid;gap:10px;margin:18px 0}.activity-list.large{gap:12px}.activity-row{display:grid;grid-template-columns:46px 1fr auto;gap:14px;align-items:center;background:#fff8;border:1px solid var(--line);border-radius:22px;padding:14px 16px;box-shadow:0 10px 28px rgba(24,33,27,.045)}.activity-row p{margin:3px 0 0;color:var(--muted);font-weight:700}.activity-row time{color:var(--muted);font-size:13px;font-weight:900;white-space:nowrap}.activity-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:16px;background:var(--brand2);font-size:20px}.movement-use .activity-icon{background:#fff1d2}.movement-remove .activity-icon{background:#fff0ed}.movement-adjust .activity-icon{background:#eef1ff}.filter-row{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.link{color:var(--brand);font-weight:900}.movement-buy b{color:var(--brand)}
@media(max-width:980px){.fridge-stock-card{grid-template-columns:42px 1fr}.fridge-stock-card .movement-form{grid-column:1/-1}.fridge-stock-card form:last-child{grid-column:1/-1}.movement-form{grid-template-columns:1fr 1fr}.movement-form input[name=note],.movement-form .btn{grid-column:1/-1}.filter-row{grid-template-columns:1fr}.activity-row{grid-template-columns:42px 1fr}.activity-row time{grid-column:2}}
@media(max-width:560px){.movement-form{grid-template-columns:1fr}.activity-row{padding:12px}.activity-icon{width:38px;height:38px;border-radius:14px}.fridge-stock-card{gap:10px}}

/* Stage 12 — Family budget */
.budget-hero{background:linear-gradient(135deg,rgba(255,248,225,.88),rgba(233,247,236,.86));border-radius:34px;padding:34px;border:1px solid var(--line);box-shadow:0 18px 60px rgba(24,33,27,.07)}
.budget-summary-grid{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:16px;margin:24px 0}.budget-main-card{background:linear-gradient(145deg,#18211b,#2f7d4f);color:#fff;border-radius:30px;padding:24px;box-shadow:0 20px 70px rgba(24,33,27,.16)}.budget-main-card span{color:rgba(255,255,255,.72);font-weight:900}.budget-main-card b{display:block;font-size:38px;letter-spacing:-.05em;margin:8px 0}.budget-main-card p{margin:10px 0 0;color:rgba(255,255,255,.72)}
.budget-progress{height:12px;border-radius:999px;background:rgba(24,33,27,.09);overflow:hidden;border:1px solid rgba(24,33,27,.06)}.budget-main-card .budget-progress{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.14)}.budget-progress i{display:block;height:100%;max-width:100%;background:linear-gradient(90deg,#71d88a,#ffd166);border-radius:inherit}.budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}.category-bars{display:grid;gap:10px}.category-bar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff8;border:1px solid var(--line);border-radius:18px;padding:13px 14px;font-weight:900}.mini-stats{grid-template-columns:1fr 1fr;margin:14px 0}.budget-dashboard-card,.budget-hint-card{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;margin:22px 0;padding:22px;border-radius:30px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(235,249,236,.74));box-shadow:0 16px 50px rgba(24,33,27,.06)}.budget-dashboard-card h2,.budget-hint-card h3{margin:0 0 8px}.budget-dashboard-card p,.budget-hint-card p{margin:0;color:var(--muted);line-height:1.55}.budget-progress-wrap{min-width:190px;display:grid;gap:7px;text-align:right;font-weight:900;color:var(--muted)}.budget-hint-card{grid-template-columns:auto 1fr auto}.activity-row form{margin:0}.activity-row .btn.small{white-space:nowrap}
@media(max-width:980px){.budget-summary-grid{grid-template-columns:1fr 1fr}.budget-grid{grid-template-columns:1fr}.budget-dashboard-card,.budget-hint-card{grid-template-columns:1fr}.budget-progress-wrap{text-align:left;min-width:0}}
@media(max-width:620px){.budget-summary-grid{grid-template-columns:1fr}.budget-main-card{border-radius:24px;padding:20px}.budget-main-card b{font-size:32px}.budget-dashboard-card,.budget-hint-card{border-radius:24px;padding:18px}.activity-row form,.activity-row time{grid-column:2}}

/* Stage 14 — SEO maximum */
.seo-static-grid,
.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin: 24px 0;
}
.seo-hero {
  background: radial-gradient(circle at 20% 10%, rgba(95, 209, 160, .22), transparent 32%), linear-gradient(135deg, rgba(255,255,255,.96), rgba(245,248,252,.92));
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 32px;
  padding: clamp(28px, 6vw, 64px);
  box-shadow: 0 24px 70px rgba(15,23,42,.08);
}
.card-panel.seo-cluster,
.ingredient-seo-panel {
  margin: 28px 0;
  display: grid;
  gap: 18px;
}
.seo-links {
  align-items: flex-start;
  justify-content: flex-start;
}
.seo-links .chip {
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
}
.ingredient-seo-panel h2 { margin-bottom: 8px; }
@media (max-width: 720px) {
  .seo-static-grid, .category-grid { grid-template-columns: 1fr; }
  .seo-hero { border-radius: 24px; }
}

.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.chip{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#eefdf4;color:#166534;font-weight:700;font-size:13px;border:1px solid #bbf7d0}
.list-line small{display:block;color:#64748b;font-weight:500;margin-top:3px}
.list-line em{font-size:12px;color:#64748b;font-style:normal;background:#f1f5f9;padding:2px 6px;border-radius:999px}
.step-img{width:100%;max-width:420px;border-radius:18px;margin-top:10px;box-shadow:0 18px 50px rgba(15,23,42,.12)}

/* Stage 16 — Mobile-first Apple/Notion/Linear polish */
.nav-toggle{display:none;width:44px;height:44px;border:1px solid rgba(23,33,27,.1);border-radius:16px;background:rgba(255,255,255,.72);box-shadow:0 10px 24px rgba(24,33,27,.08);padding:10px;gap:5px;flex-direction:column;justify-content:center;align-items:center;cursor:pointer}.nav-toggle span{display:block;width:18px;height:2px;border-radius:20px;background:var(--text);transition:.18s}.site-header.menu-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}.site-header.menu-open .nav-toggle span:nth-child(2){opacity:0}.site-header.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-quick-actions{display:none}.mobile-tabbar{display:none}
.compact-card,.stat-card,.panel,.recipe-card,.shopping-item,.activity-row{will-change:transform}.stat-card,.panel,.recipe-card,.form-card,.shopping-item,.activity-row,.budget-dashboard-card,.budget-hint-card{backdrop-filter:blur(16px)}
@media(max-width:760px){
  :root{--shadow:0 16px 45px rgba(24,33,27,.09)}
  body{background:linear-gradient(180deg,#fbfaf6 0,#f5f2ea 100%);font-size:16px;padding-bottom:96px}.app-main{padding:18px 14px 112px;max-width:100%;overflow:hidden}.site-header{position:sticky;top:0;display:grid;grid-template-columns:1fr 44px;align-items:center;gap:12px;padding:12px 14px;background:rgba(251,250,246,.88);border-bottom:1px solid rgba(23,33,27,.06);backdrop-filter:blur(22px)}.brand{font-size:17px}.brand-mark{width:38px;height:38px;border-radius:14px}.nav-toggle{display:flex}.site-nav{grid-column:1/-1;display:none;width:100%;max-height:calc(100vh - 86px);overflow:auto;padding:10px 0 4px;gap:8px;flex-direction:column;align-items:stretch}.site-nav.is-open{display:flex}.site-nav>a,.site-nav details,.site-nav form,.nav-user{width:100%}.site-nav>a,.site-nav details>summary,.nav-user,.site-nav .btn{display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:13px 14px;border-radius:18px;background:rgba(255,255,255,.74);border:1px solid rgba(23,33,27,.06);box-shadow:0 10px 24px rgba(24,33,27,.045)}.site-nav form .btn{width:100%}.nav-more summary{list-style:none;cursor:pointer}.nav-more summary::-webkit-details-marker{display:none}.nav-dropdown{display:grid;gap:8px;margin-top:8px}.nav-dropdown a{padding:13px 14px;border-radius:16px;background:rgba(255,255,255,.62);border:1px solid rgba(23,33,27,.05)}.footer{display:none}.page-title{padding:14px 0 8px}.page-title.compact h1,.page-title h1,.hero h1{font-size:34px;line-height:1.02;letter-spacing:-.055em;margin:8px 0 10px}.lead,.page-title p,.panel p,.recipe-card p{font-size:15px;line-height:1.48}.eyebrow{font-size:11px;letter-spacing:.13em}.actions,.hero-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:16px}.btn{width:100%;min-height:52px;padding:14px 18px;border-radius:18px;font-size:16px}.btn.small{min-height:44px;border-radius:16px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 18px}.stat-card{border-radius:22px;padding:16px;min-height:104px}.stat-card span{font-size:12px}.stat-card b{font-size:24px;line-height:1.05;word-break:break-word}.mobile-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 16px}.mobile-quick-actions a{display:grid;gap:4px;min-height:116px;padding:16px;border-radius:24px;background:rgba(255,255,255,.78);border:1px solid rgba(23,33,27,.07);box-shadow:0 14px 36px rgba(24,33,27,.06)}.mobile-quick-actions span{font-size:24px}.mobile-quick-actions b{font-size:16px}.mobile-quick-actions small{color:var(--muted);font-weight:800}.section-head{margin:26px 0 12px;align-items:flex-start;gap:8px}.section-head h2{font-size:25px;letter-spacing:-.04em}.section-head a{font-weight:900}.features,.recipe-grid,.planner-mock,.two-col,.budget-grid,.progress-grid,.recipe-detail{display:grid;grid-template-columns:1fr!important;gap:12px}.panel,.features article,.recipe-card,.empty,.form-card,.budget-dashboard-card,.budget-hint-card{border-radius:24px;padding:18px;box-shadow:0 14px 38px rgba(24,33,27,.055)}.panel.dark{background:linear-gradient(145deg,#17211b,#26352b)}.nutrition{grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.nutrition div{border-radius:18px;padding:14px}.nutrition b{font-size:23px}.form-grid{grid-template-columns:1fr!important;gap:12px}.field input,.field select,.field textarea{min-height:50px;border-radius:16px;font-size:16px}.menu-week{display:grid;grid-template-columns:1fr;gap:12px}.day-card{border-radius:22px;padding:16px}.shopping-list{display:grid;gap:10px}.shopping-item{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;border-radius:22px;padding:14px}.shopping-item form button{width:42px;height:42px;border-radius:15px;font-size:18px}.shopping-item span{min-width:0}.shopping-item strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shopping-item b{font-size:15px;white-space:nowrap}.fridge-stock-card{grid-template-columns:42px minmax(0,1fr)!important;gap:10px}.fridge-stock-card .movement-form,.fridge-stock-card form:last-child{grid-column:1/-1}.movement-form{grid-template-columns:1fr!important;gap:8px;background:rgba(255,255,255,.64);border:1px solid rgba(23,33,27,.06);border-radius:18px;padding:10px}.movement-form input,.movement-form select{min-height:46px;border-radius:14px}.activity-row{grid-template-columns:42px minmax(0,1fr);border-radius:22px;padding:12px}.activity-row time{grid-column:2;font-size:12px}.activity-icon{width:40px;height:40px;border-radius:15px}.budget-summary-grid{grid-template-columns:1fr!important;gap:10px}.budget-main-card{border-radius:24px;padding:19px}.budget-dashboard-card,.budget-hint-card{grid-template-columns:1fr!important;gap:12px}.progress-grid{margin-top:14px}.weight-chart{height:300px;border-radius:22px}.chart-tabs{display:grid;grid-template-columns:1fr 1fr 1fr}.chart-tabs button{padding:11px 8px}.recipe-img,.recipe-hero-img{border-radius:22px}.recipe-img span,.recipe-hero-img span{font-size:42px}.meta{gap:7px}.meta span,.chip{font-size:12px;padding:7px 9px}.list-line{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 0}.step{gap:10px}.step b{min-width:32px;height:32px}.mobile-tabbar{position:fixed;left:10px;right:10px;bottom:10px;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:7px;border-radius:28px;background:rgba(255,255,255,.88);border:1px solid rgba(23,33,27,.08);box-shadow:0 22px 70px rgba(24,33,27,.18);backdrop-filter:blur(24px)}.mobile-tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;border-radius:22px;color:var(--muted);font-size:10px;font-weight:900}.mobile-tabbar a span{font-size:21px;line-height:1}.mobile-tabbar a b{font-size:10px;font-weight:900}.mobile-tabbar a.is-active{background:#eef9e9;color:var(--brand)}.mobile-tabbar .mobile-primary{background:var(--text);color:#fff;box-shadow:0 14px 30px rgba(23,33,27,.18)}.mobile-tabbar .mobile-primary.is-active{background:var(--brand);color:#fff}.hero-card{padding:26px;border-radius:28px}.phone-preview{display:none}.hero{grid-template-columns:1fr;gap:14px;padding:16px 0}.seo-hero{padding:24px;border-radius:24px}.category-title{font-size:18px;margin:22px 0 10px}.filter-row{grid-template-columns:1fr!important}.mini-stats{grid-template-columns:1fr 1fr!important}.progress-table{overflow:auto}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.nav-user{justify-content:flex-start;color:var(--text)}
}
@media(max-width:380px){.stats-grid,.mobile-quick-actions,.nutrition,.mini-stats{grid-template-columns:1fr!important}.mobile-tabbar{left:6px;right:6px;bottom:6px}.mobile-tabbar a b{display:none}.mobile-tabbar a{min-height:54px}.page-title.compact h1,.page-title h1,.hero h1{font-size:30px}}


/* Stage 16.1 — UI polish: softer actions, accurate anchor scroll, fixed tariff badge */
html{scroll-behavior:smooth;scroll-padding-top:92px}
#features{scroll-margin-top:104px}
.btn,
.site-nav .btn,
button.btn,
a.btn{
  background:linear-gradient(135deg,#2f9b63 0%,#74c86e 100%);
  border-color:rgba(47,155,99,.55);
  color:#fff;
  box-shadow:0 16px 34px rgba(47,155,99,.22);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.btn:hover,
.site-nav .btn:hover,
button.btn:hover,
a.btn:hover{
  transform:translateY(-1px);
  box-shadow:0 22px 44px rgba(47,155,99,.28);
  filter:saturate(1.04);
}
.btn.ghost,
.ghost-btn,
a.btn.ghost,
button.btn.ghost,
.site-nav .ghost-btn{
  background:rgba(255,255,255,.58);
  color:#234633;
  border-color:rgba(47,125,79,.28);
  box-shadow:0 12px 26px rgba(24,33,27,.07);
}
.btn.ghost:hover,
.ghost-btn:hover,
a.btn.ghost:hover,
button.btn.ghost:hover{
  background:#fff;
  border-color:rgba(47,125,79,.42);
  box-shadow:0 18px 36px rgba(24,33,27,.10);
}
button.btn[disabled],.btn[disabled]{opacity:.65;cursor:not-allowed;transform:none;filter:none}
.pricing-card.featured{padding-top:34px}
.pricing-card .best-badge{
  position:static;
  align-self:flex-start;
  margin:-6px 0 -6px;
  background:linear-gradient(135deg,#e9ffd9,#fff0c2);
  color:#245238;
  border:1px solid rgba(47,125,79,.22);
  box-shadow:0 10px 26px rgba(47,125,79,.10);
}
.pricing-head{align-items:flex-start}
.mobile-tabbar .mobile-primary{
  background:linear-gradient(135deg,#2f9b63 0%,#74c86e 100%);
  box-shadow:0 14px 30px rgba(47,155,99,.24);
}
.mobile-tabbar .mobile-primary.is-active{background:linear-gradient(135deg,#2f9b63 0%,#74c86e 100%)}
@media(max-width:860px){
  html{scroll-padding-top:82px}
  #features{scroll-margin-top:88px}
  .pricing-card.featured{padding-top:24px}
  .pricing-card .best-badge{margin:0 0 -4px}
}


/* Stage 16.2 — FitMeal logo integration */
.brand-with-logo{gap:12px}
.brand-logo-mark{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(233,255,217,.72));
  border:1px solid rgba(47,125,79,.14);
  box-shadow:0 14px 32px rgba(47,125,79,.13);
  overflow:hidden;
}
.brand-logo-mark img{
  width:43px;
  height:43px;
  object-fit:contain;
  display:block;
}
.brand-text{
  display:inline-flex;
  align-items:baseline;
  gap:5px;
  letter-spacing:-.02em;
}
.hero-brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:10px 14px;
  border-radius:22px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(47,125,79,.14);
  box-shadow:0 12px 28px rgba(47,125,79,.08);
  margin-bottom:18px;
  color:#245238;
  font-weight:900;
}
.hero-brand img{
  width:58px;
  height:58px;
  object-fit:contain;
}
.hero-brand span{
  display:grid;
  line-height:1.05;
}
.hero-brand small{
  color:var(--muted);
  font-weight:800;
  margin-top:3px;
}
@media(max-width:760px){
  .brand-logo-mark{width:42px;height:42px;border-radius:16px}
  .brand-logo-mark img{width:38px;height:38px}
  .brand-text{font-size:16px}
  .hero-brand{width:100%;justify-content:flex-start;margin-bottom:14px}
  .hero-brand img{width:50px;height:50px}
}
@media(max-width:380px){
  .brand-text b{display:none}
}

/* Stage 16.3 — softer hero preview and corrected logo usage */
.brand-logo-mark{
  background:transparent;
  border:0;
  box-shadow:none;
  border-radius:16px;
}
.brand-logo-mark img{
  width:46px;
  height:46px;
  filter:drop-shadow(0 10px 18px rgba(47,125,79,.14));
}
.hero-logo-strip{
  margin-top:28px;
  width:min(360px,100%);
  padding:16px 18px;
  border-radius:28px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(47,125,79,.12);
  box-shadow:0 14px 34px rgba(47,125,79,.08);
}
.hero-logo-strip img{
  display:block;
  width:100%;
  height:auto;
  max-height:126px;
  object-fit:contain;
  mix-blend-mode:multiply;
}
.phone-preview{
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(236,252,226,.92));
  color:#17211b;
  border:1px solid rgba(47,125,79,.16);
  box-shadow:0 24px 70px rgba(47,125,79,.13);
  position:relative;
  overflow:hidden;
}
.phone-preview:before{
  content:"";
  position:absolute;
  inset:-70px -70px auto auto;
  width:190px;
  height:190px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(116,200,110,.26),rgba(116,200,110,0) 70%);
}
.phone-preview .phone-top{
  background:rgba(47,125,79,.28);
  position:relative;
  z-index:1;
}
.phone-preview h3,
.phone-preview .meal,
.phone-preview .stat-row{
  position:relative;
  z-index:1;
}
.phone-preview .meal{
  background:rgba(255,255,255,.70);
  border:1px solid rgba(47,125,79,.13);
  box-shadow:0 10px 28px rgba(24,33,27,.045);
}
.phone-preview .meal span{
  color:#59665e;
}
.phone-preview .stat-row{
  border-top:1px solid rgba(47,125,79,.14);
}
.phone-preview .stat-row b{
  color:#2f7d4f;
}
@media(max-width:760px){
  .brand-logo-mark img{width:42px;height:42px}
  .hero-logo-strip{margin-top:20px;border-radius:24px;padding:14px 16px}
  .hero-logo-strip img{max-height:100px}
}

/* Stage 16.4 — compact hero and full footer with brand logo */
.landing-hero{
  align-items:center;
  padding:34px 0 24px;
}
.landing-hero .hero-card{
  min-height:0;
  padding:42px 46px;
  border-radius:38px;
}
.landing-hero .hero-card .lead{
  max-width:650px;
}
.landing-hero .actions{
  margin-top:24px;
}
.hero-logo-strip{display:none!important}
.phone-preview{
  min-height:420px;
  padding:24px;
  border-radius:40px;
}
.phone-preview .meal{
  margin:12px 0;
  padding:16px;
  border-radius:22px;
}
.phone-preview .phone-top{
  margin-bottom:24px;
}
.site-footer{
  margin-top:44px;
  padding:42px 24px 22px;
  border-top:1px solid rgba(47,125,79,.12);
  background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,250,241,.78));
  color:var(--text);
}
.footer-inner{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:320px 1fr;
  gap:42px;
  align-items:start;
}
.footer-brand-block{
  display:grid;
  gap:14px;
}
.footer-logo{
  width:168px;
  max-width:100%;
  height:auto;
  display:block;
  mix-blend-mode:multiply;
  filter:drop-shadow(0 12px 22px rgba(47,125,79,.10));
}
.footer-brand-block p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
  max-width:300px;
}
.footer-socials{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:4px;
}
.footer-socials a{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:15px;
  background:rgba(255,255,255,.68);
  border:1px solid rgba(47,125,79,.13);
  color:#2f7d4f;
  font-weight:900;
  box-shadow:0 10px 24px rgba(24,33,27,.05);
}
.footer-links{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
}
.footer-links div{
  display:grid;
  align-content:start;
  gap:10px;
}
.footer-links h4{
  margin:0 0 4px;
  font-size:14px;
  letter-spacing:-.01em;
  color:#17211b;
}
.footer-links a{
  color:var(--muted);
  font-weight:700;
  line-height:1.25;
}
.footer-links a:hover{
  color:#2f7d4f;
}
.footer-bottom{
  max-width:1180px;
  margin:34px auto 0;
  padding-top:18px;
  border-top:1px solid rgba(47,125,79,.12);
  display:flex;
  justify-content:space-between;
  gap:16px;
  color:var(--muted);
  font-size:14px;
}
.footer-bottom b{color:#dc5555}
@media(max-width:980px){
  .footer-inner{grid-template-columns:1fr;gap:28px}
  .footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-brand-block{justify-items:start}
}
@media(max-width:760px){
  .landing-hero{padding:10px 0 18px}
  .landing-hero .hero-card{padding:24px 22px;border-radius:28px}
  .landing-hero .actions{margin-top:18px}
  .site-footer{display:block;margin-top:22px;padding:28px 16px 112px}
  .footer-logo{width:142px}
  .footer-links{grid-template-columns:1fr 1fr;gap:18px 14px}
  .footer-links h4{font-size:13px}
  .footer-links a{font-size:14px}
  .footer-bottom{display:grid;gap:8px;margin-top:26px;font-size:13px}
}
@media(max-width:430px){
  .footer-links{grid-template-columns:1fr}
}


/* Stage 16.5 — calmer hero, wordmark header, readable favicon style */
.site-header .brand-wordmark{
  gap:0;
  padding:8px 2px;
  font-size:22px;
  line-height:1;
  letter-spacing:-.045em;
  font-weight:950;
}
.site-header .brand-wordmark .brand-text{
  display:inline-flex;
  gap:6px;
  align-items:baseline;
  background:linear-gradient(135deg,#0f3b2d 0%,#1e9b70 54%,#91cf28 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  text-shadow:none;
}
.site-header .brand-wordmark b{
  font-weight:950;
}
/* old logo wrappers are hidden in case cached templates still render them */
.site-header .brand-logo-mark{display:none!important}

.landing-hero{
  grid-template-columns:minmax(0, 1fr) 360px;
  gap:44px;
  align-items:center;
  padding-top:46px;
}
.hero-card{
  max-width:650px;
  padding:46px 48px;
  border-radius:32px;
  background:rgba(255,250,241,.78);
  border:1px solid rgba(47,125,79,.10);
  box-shadow:0 26px 70px rgba(24,33,27,.075);
}
.hero-card h1{
  max-width:560px;
  margin:18px 0 18px;
  font-size:clamp(42px,4.45vw,68px);
  line-height:1.03;
  letter-spacing:-.065em;
}
.hero-card .lead{
  max-width:540px;
  font-size:18px;
  line-height:1.55;
}
.hero-card .eyebrow{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:8px 13px;
  border-radius:999px;
  background:rgba(233,255,217,.72);
  color:#127448;
  border:1px solid rgba(47,125,79,.12);
}
.hero-card .actions{margin-top:28px;gap:12px;flex-wrap:wrap}
.hero-card .btn{width:auto;min-height:48px;padding:13px 20px;border-radius:999px}

.phone-preview{
  width:330px;
  padding:30px 26px 24px;
  border-radius:36px;
  background:linear-gradient(145deg,rgba(255,255,255,.80),rgba(229,255,216,.76));
  border:1px solid rgba(47,125,79,.13);
  box-shadow:0 28px 70px rgba(47,125,79,.12);
  transform:none;
}
.phone-preview h3{font-size:18px;margin:12px 0 18px;color:#16231c}
.phone-preview .meal{
  background:rgba(255,255,255,.76);
  border-color:rgba(47,125,79,.11);
  box-shadow:0 10px 26px rgba(24,33,27,.045);
}
.phone-preview .stat-row{color:#35443b;border-top-color:rgba(47,125,79,.12)}
.phone-preview .stat-row b{color:#168652}
.phone-top{background:rgba(47,125,79,.25)}

.footer-logo{max-width:150px;height:auto}
.footer-brand-block p{max-width:300px}

@media(max-width:980px){
  .landing-hero{grid-template-columns:1fr;gap:20px;padding-top:24px}
  .hero-card{max-width:100%;padding:34px 28px;border-radius:28px}
  .phone-preview{display:none}
}
@media(max-width:760px){
  .site-header .brand-wordmark{font-size:20px;padding:8px 0}
  .hero-card{padding:28px 22px;border-radius:26px}
  .hero-card h1{font-size:38px;letter-spacing:-.055em;line-height:1.05}
  .hero-card .lead{font-size:15.5px}
  .hero-card .actions{display:grid;grid-template-columns:1fr;gap:10px}
  .hero-card .btn{width:100%;min-height:52px}
}
@media(max-width:420px){
  .site-header .brand-wordmark{font-size:18px}
  .site-header .brand-wordmark .brand-text{gap:4px}
  .hero-card h1{font-size:34px}
  .hero-card{padding:24px 18px}
}


/* Stage 16.6 — brand wordmark and editable pricing polish */
.brand-wordmark{letter-spacing:-.03em}
.brand-wordmark .brand-text{
  font-family:"Trebuchet MS","Segoe UI",system-ui,-apple-system,sans-serif;
  font-size:22px;
  font-weight:900;
  line-height:1;
  color:#193227;
  text-shadow:0 1px 0 rgba(255,255,255,.65);
}
.brand-wordmark .brand-text span{
  color:#15835a;
  font-weight:900;
}
.brand-wordmark .brand-text b{
  color:#25352e;
  font-weight:800;
}

.pricing-card{position:relative}
.pricing-head{align-items:flex-start}
.plan-subtitle{
  margin:.25rem 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.35;
  max-width:260px;
}
.best-badge{
  top:18px;
  right:18px;
  transform:none;
  z-index:2;
  white-space:nowrap;
}
.pricing-card.featured .pricing-head{padding-top:14px}
.pricing-admin-note{margin-top:24px}
.pricing-admin-note h2{margin-top:0}

@media (max-width:720px){
  .brand-wordmark .brand-text{font-size:20px}
  .pricing-card.featured .pricing-head{padding-top:28px}
  .best-badge{top:14px;right:14px;font-size:12px}
}

/* Stage 16.7 — user-facing subscription benefits */
.pricing-value-note{
  margin-top:28px;
  padding:34px 38px;
  background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(255,250,241,.78));
}
.pricing-value-note h2{
  max-width:820px;
  margin:8px 0 12px;
  font-size:clamp(28px,3.2vw,44px);
  line-height:1.05;
  letter-spacing:-.045em;
}
.pricing-value-note p:not(.eyebrow){
  max-width:860px;
  font-size:18px;
}
.pricing-benefits{
  grid-template-columns:repeat(3,1fr);
  margin-top:16px;
}
.pricing-benefits article{
  background:rgba(255,250,241,.72);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.pricing-benefits article:hover{
  transform:translateY(-2px);
  border-color:rgba(47,125,79,.18);
  box-shadow:0 18px 48px rgba(47,125,79,.10);
}
.pricing-benefits .feature-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:17px;
  background:linear-gradient(135deg,#eefee6,#fff7d8);
  border:1px solid rgba(47,125,79,.12);
  box-shadow:0 10px 24px rgba(47,125,79,.08);
}
@media(max-width:900px){.pricing-benefits{grid-template-columns:1fr 1fr}.pricing-value-note{padding:26px}}
@media(max-width:620px){.pricing-benefits{grid-template-columns:1fr}.pricing-value-note p:not(.eyebrow){font-size:15px}}

/* Stage 17 — health, habits, family wellness */
.wellness-dashboard-card{
  margin: 28px 0;
  padding: 26px;
  border-radius: 30px;
  border: 1px solid rgba(57, 161, 103, .18);
  background: linear-gradient(135deg, rgba(240, 255, 245, .92), rgba(255, 248, 232, .86));
  box-shadow: 0 20px 60px rgba(17, 52, 32, .08);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
}
.wellness-dashboard-card h2{margin:0 0 8px;font-size:clamp(24px,3vw,38px)}
.wellness-dashboard-card p{margin:0;color:var(--muted)}
.wellness-layout{align-items:stretch}
.wellness-stats .stat-card b{font-size:clamp(24px,3vw,34px)}
.habit-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 0;
  border-bottom:1px solid rgba(18,40,30,.08);
}
.habit-line:last-child{border-bottom:0}
.habit-line b{display:block;font-size:16px}
.habit-line small{display:block;color:var(--muted);margin-top:4px}
.pill.good{background:#dcfce7;color:#147a3d;border-color:#bbf7d0}
.small-details{margin-top:16px;border-top:1px solid rgba(18,40,30,.08);padding-top:14px}
.small-details summary{cursor:pointer;font-weight:800;color:#1f7a45}
.compact-form p{margin:0 0 12px}
.compact-form label{display:block;font-weight:800;margin-bottom:6px}
.compact-form input,.compact-form select,.compact-form textarea{width:100%}
.workout-panel{margin-top:28px}
.workout-card .meta{margin-bottom:12px}
.compact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
@media(max-width:780px){
  .wellness-dashboard-card{display:block;padding:20px;border-radius:24px}
  .wellness-dashboard-card .btn{margin-top:16px;width:100%}
  .habit-line{align-items:flex-start;flex-direction:column}
  .habit-line form,.habit-line button{width:100%}
}


/* Stage 18: Smart Day dashboard */
.today-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:22px;
  align-items:stretch;
  margin:20px 0 22px;
}
.today-hero>div:first-child,
.today-score,
.today-card,
.today-insights article{
  background:rgba(255,250,241,.78);
  border:1px solid var(--line);
  box-shadow:0 18px 48px rgba(24,33,27,.08);
}
.today-hero>div:first-child{
  border-radius:34px;
  padding:34px 38px;
}
.today-hero h1{
  font-size:clamp(42px,6vw,76px);
  line-height:.95;
  margin:8px 0 12px;
}
.today-hero p{
  color:var(--muted);
  line-height:1.55;
  max-width:760px;
  margin:0;
}
.today-score{
  border-radius:34px;
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
}
.today-score span{color:var(--muted);font-weight:800}
.today-score b{font-size:54px;line-height:1;color:var(--brand)}
.today-progress,
.goal-row i{
  width:100%;
  height:10px;
  background:#e7efde;
  border-radius:999px;
  overflow:hidden;
  display:block;
}
.today-progress i,
.goal-row em{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#38a66b,#78cf63);
}
.today-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
  align-items:start;
}
.today-card{
  border-radius:32px;
  padding:26px;
}
.today-menu-card{grid-row:span 2}
.card-topline{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:18px;
}
.card-topline h2{
  margin:4px 0 0;
  font-size:28px;
}
.card-topline a{
  color:var(--brand);
  font-weight:900;
  white-space:nowrap;
}
.today-meals{
  display:grid;
  gap:14px;
}
.today-meal{
  display:flex;
  gap:14px;
  align-items:flex-start;
  background:#fffdf8;
  border:1px solid #e8e1d3;
  border-radius:26px;
  padding:18px;
}
.today-meal>span{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:17px;
  background:#eaf8df;
  font-size:24px;
}
.today-meal b{display:block;font-size:17px;margin-bottom:4px}
.today-meal p{margin:0 0 4px;color:var(--text);font-weight:800}
.today-meal small,
.today-list-item small,
.goal-row small{color:var(--muted)}
.today-mini-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:16px;
}
.today-mini-stats div{
  border-radius:20px;
  background:#f3efe5;
  padding:14px;
}
.today-mini-stats b{display:block;font-size:23px}
.today-mini-stats span{color:var(--muted);font-size:13px}
.today-goals{display:grid;gap:13px}
.goal-row{
  background:#fffdf8;
  border:1px solid #e8e1d3;
  border-radius:24px;
  padding:16px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px 14px;
  align-items:center;
}
.goal-row div{display:grid;grid-template-columns:32px 1fr;gap:0 8px;align-items:center}
.goal-row div span{grid-row:span 2;font-size:23px}
.goal-row b{font-size:16px}
.goal-row strong{font-size:18px;color:var(--brand)}
.goal-row i{grid-column:1/-1;height:8px}
.workout-short{
  margin-top:16px;
  border-radius:24px;
  background:linear-gradient(135deg,#effbe7,#fff8e5);
  border:1px solid #e1edd7;
  padding:18px;
}
.workout-short h3{margin:0 0 10px}
.workout-short p{margin:7px 0;color:var(--muted)}
.today-list{display:grid;gap:10px}
.today-list-item{
  display:flex;
  gap:12px;
  align-items:center;
  border:1px solid #e8e1d3;
  background:#fffdf8;
  border-radius:22px;
  padding:14px;
}
.today-list-item>span,
.today-list-item button{
  width:38px;
  height:38px;
  border-radius:14px;
  border:0;
  background:#eaf8df;
  color:var(--brand);
  display:grid;
  place-items:center;
  font-weight:900;
  flex:0 0 auto;
}
.today-list-item b{display:block}
.today-list-item.as-form{
  width:100%;
  font:inherit;
  text-align:left;
}
.today-list-item.as-form button{cursor:pointer;font-size:18px}
.today-empty{
  border-radius:26px;
  padding:24px;
  background:#fffdf8;
  border:1px dashed #d8cebf;
}
.today-empty h3{margin:0 0 8px}
.today-empty p{color:var(--muted);line-height:1.5}
.today-empty.small{padding:16px}
.today-insights{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:18px;
}
.today-insights article{
  border-radius:28px;
  padding:22px;
  display:flex;
  gap:14px;
}
.today-insights article>span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:#eaf8df;
  flex:0 0 auto;
}
.today-insights h3{margin:0 0 8px}
.today-insights p{margin:0;color:var(--muted);line-height:1.45}

@media(max-width:900px){
  .today-hero,.today-grid,.today-insights{grid-template-columns:1fr}
  .today-hero>div:first-child{padding:26px}
  .today-card{padding:20px}
  .today-mini-stats{grid-template-columns:1fr}
  .card-topline{flex-direction:column}
}

/* Stage 19: Family dashboard */
.family-dash-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:22px;
  align-items:stretch;
  margin:20px 0 22px;
}
.family-dash-hero>div:first-child,
.family-score-card,
.family-summary-grid article,
.family-progress-card{
  background:rgba(255,250,241,.78);
  border:1px solid var(--line);
  box-shadow:0 18px 48px rgba(24,33,27,.08);
}
.family-dash-hero>div:first-child{
  border-radius:34px;
  padding:34px 38px;
}
.family-dash-hero h1{
  font-size:clamp(40px,5.5vw,70px);
  line-height:.98;
  margin:8px 0 12px;
}
.family-dash-hero p{color:var(--muted);line-height:1.55;max-width:760px;margin:0}
.family-score-card{
  border-radius:34px;
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
}
.family-score-card span{color:var(--muted);font-weight:800}
.family-score-card b{font-size:54px;line-height:1;color:var(--brand)}
.family-score-card i,
.family-summary-grid article>i,
.member-progress-row i{
  width:100%;height:10px;background:#e7efde;border-radius:999px;overflow:hidden;display:block;
}
.family-score-card em,
.family-summary-grid article>i em,
.member-progress-row i em{
  display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#38a66b,#78cf63);
}
.family-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin:0 0 26px;
}
.family-summary-grid article{
  border-radius:28px;
  padding:20px;
  display:grid;
  grid-template-columns:44px 1fr;
  gap:12px;
  align-items:start;
}
.family-summary-grid article>span{
  width:44px;height:44px;border-radius:17px;background:#eaf8df;display:grid;place-items:center;font-size:24px;
}
.family-summary-grid b{display:block;font-size:28px;color:var(--brand);line-height:1}
.family-summary-grid p{font-weight:900;margin:4px 0 4px}
.family-summary-grid small{color:var(--muted);line-height:1.35}
.family-summary-grid article>i{grid-column:1/-1;height:8px}
.family-member-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}
.family-progress-card{
  border-radius:32px;
  padding:24px;
}
.family-progress-card.child{background:linear-gradient(145deg,rgba(255,250,241,.86),rgba(239,251,231,.82))}
.family-member-head{display:flex;gap:14px;align-items:center;margin-bottom:18px}
.avatar-bubble{width:54px;height:54px;border-radius:20px;background:#eaf8df;display:grid;place-items:center;font-size:27px;box-shadow:inset 0 0 0 1px rgba(47,125,79,.08)}
.family-member-head h3{margin:0;font-size:23px;letter-spacing:-.03em}
.family-member-head p{margin:4px 0 0;color:var(--muted);font-weight:800}
.member-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.member-kpis div{border-radius:20px;background:#f3efe5;padding:14px;min-height:82px}
.member-kpis span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.member-kpis b{font-size:17px;line-height:1.18}
.member-progress-list{display:grid;gap:10px}
.member-progress-row{border-radius:22px;background:#fffdf8;border:1px solid #e8e1d3;padding:14px;display:grid;grid-template-columns:1fr auto;gap:9px 12px;align-items:center}
.member-progress-row div{display:flex;align-items:center;gap:8px;font-weight:900}
.member-progress-row div span{font-size:22px}
.member-progress-row strong{color:var(--brand);font-size:18px}
.member-progress-row i{grid-column:1/-1;height:8px}
.member-progress-row small{grid-column:1/-1;color:var(--muted)}
.family-dash-bottom{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:22px}
.family-menu-mini{display:grid;gap:10px}
.family-menu-mini>div{display:flex;gap:12px;align-items:center;border-radius:22px;background:#fffdf8;border:1px solid #e8e1d3;padding:14px}
.family-menu-mini span{width:40px;height:40px;border-radius:15px;background:#eaf8df;display:grid;place-items:center;font-size:22px;flex:0 0 auto}
.family-menu-mini b{display:block}
.family-menu-mini p{margin:3px 0 0!important;color:var(--muted)!important;font-weight:800}
.family-alert-list{display:grid;gap:10px}
.family-alert-list a{display:grid;grid-template-columns:38px 1fr;gap:2px 12px;align-items:center;border-radius:20px;background:#fffdf8;border:1px solid #e8e1d3;padding:13px;color:var(--text)}
.family-alert-list span{grid-row:span 2;width:38px;height:38px;border-radius:14px;background:#eaf8df;display:grid;place-items:center}
.family-alert-list b{font-size:15px}
.family-alert-list small{color:var(--muted)}
@media(max-width:980px){
  .family-dash-hero,.family-dash-bottom{grid-template-columns:1fr}
  .family-summary-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .family-dash-hero>div:first-child,.family-score-card,.family-progress-card{border-radius:26px;padding:20px}
  .family-summary-grid{grid-template-columns:1fr}
  .member-kpis{grid-template-columns:1fr}
}

/* Stage 20 — Real smart menu engine */
.smart-logic-card{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:center;margin:28px 0;padding:26px;border:1px solid var(--line);border-radius:34px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(232,247,236,.78));box-shadow:0 18px 55px rgba(24,33,27,.07)}
.smart-logic-card h2{margin:4px 0 8px;font-size:32px;letter-spacing:-.03em}.smart-logic-card p{margin:0;color:var(--muted);line-height:1.6}.logic-pills{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.logic-pills span{padding:11px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:900;color:var(--text);box-shadow:0 10px 24px rgba(24,33,27,.045)}
.engine-focus-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 28px}.focus-card{background:rgba(255,250,241,.82);border:1px solid var(--line);border-radius:28px;padding:22px;box-shadow:0 14px 38px rgba(24,33,27,.055)}.focus-card h3{margin:0 0 12px;font-size:22px}.focus-card p{margin:8px 0;color:var(--muted);line-height:1.55}.focus-products{display:flex;gap:9px;flex-wrap:wrap}.focus-products span{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:900}.focus-products small{color:var(--muted);font-weight:800}.engine-rules li:last-child{background:linear-gradient(135deg,#ecffe1,#fff)}
@media(max-width:820px){.smart-logic-card,.engine-focus-grid{grid-template-columns:1fr}.logic-pills{justify-content:flex-start}.smart-logic-card{border-radius:26px;padding:20px}.smart-logic-card h2{font-size:26px}.focus-card{border-radius:24px;padding:18px}}

/* Stage 21 — Auto ingredient swaps */
.auto-swap-panel{
  margin:28px 0;
  padding:26px;
  border:1px solid var(--line);
  border-radius:34px;
  background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(237,250,230,.76));
  box-shadow:0 18px 55px rgba(24,33,27,.07);
}
.auto-swap-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}
.auto-swap-head h2{margin:4px 0 8px;font-size:31px;letter-spacing:-.035em}.auto-swap-head p{margin:0;color:var(--muted);line-height:1.55;max-width:740px}.swap-badge{white-space:nowrap;padding:10px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:900;color:var(--brand);box-shadow:0 10px 24px rgba(24,33,27,.045)}
.active-swaps{margin:0 0 20px}.active-swaps h3{margin:0 0 10px;font-size:18px}.swap-chip-grid{display:flex;flex-wrap:wrap;gap:10px}.swap-chip{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;padding:11px 12px 11px 15px;border-radius:22px;background:#fff;border:1px solid #dcefd2;box-shadow:0 10px 25px rgba(47,125,79,.055)}.swap-chip span{font-weight:900}.swap-chip small{grid-column:1/2;color:var(--muted);font-weight:800}.swap-chip button{grid-row:1/3;grid-column:2/3;width:30px;height:30px;border:0;border-radius:50%;background:#f2eadc;color:#6d6153;font-size:20px;cursor:pointer}.swap-chip button:hover{background:#ffe6df;color:#9b2e1b}
.swap-suggestions{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}.swap-card{border-radius:28px;background:#fffdf8;border:1px solid var(--line);padding:17px;box-shadow:0 14px 34px rgba(24,33,27,.055)}.swap-source{display:grid;gap:4px;margin-bottom:12px}.swap-original{font-size:21px;font-weight:950;letter-spacing:-.02em;color:var(--text)}.swap-source small{color:var(--muted);font-weight:800}.swap-options{display:grid;gap:9px}.swap-option{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:12px;border-radius:20px;background:#f6f2e9;border:1px solid rgba(220,213,199,.9)}.swap-option span{font-weight:850;line-height:1.25}.swap-option small{grid-column:1/2;color:var(--muted);font-weight:750}.swap-option button{grid-row:1/3;grid-column:2/3;border:0;border-radius:999px;background:linear-gradient(135deg,#44ad70,#81d46a);color:#fff;font-weight:950;padding:10px 13px;cursor:pointer;box-shadow:0 10px 20px rgba(68,173,112,.22)}.swap-option button:hover{transform:translateY(-1px)}
@media(max-width:780px){.auto-swap-panel{border-radius:26px;padding:19px}.auto-swap-head{display:grid}.auto-swap-head h2{font-size:25px}.swap-badge{justify-self:start}.swap-option{grid-template-columns:1fr}.swap-option button{grid-row:auto;grid-column:auto;width:100%}.swap-option small{grid-column:auto}.swap-chip{grid-template-columns:1fr auto}}

/* Stage 22 — real analytics */
.analytics-hero{max-width:940px}.analytics-tabs{display:inline-grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:18px;padding:6px;border-radius:999px;background:rgba(255,255,255,.62);border:1px solid rgba(23,33,27,.06)}.analytics-tabs a{padding:10px 16px;border-radius:999px;color:var(--muted);font-weight:900;text-align:center}.analytics-tabs a.active{background:linear-gradient(135deg,#2f9b63 0%,#74c86e 100%);color:#fff;box-shadow:0 12px 26px rgba(47,155,99,.18)}.analytics-top-grid .stat-card small{display:block;margin-top:8px;color:var(--muted);font-weight:800}.analytics-section-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin:18px 0}.analytics-section-grid:nth-of-type(2){grid-template-columns:.85fr 1.15fr}.analytics-card{background:rgba(255,250,241,.78);border:1px solid var(--line);border-radius:32px;padding:24px;box-shadow:0 14px 42px rgba(24,33,27,.06)}.analytics-card h2{margin:6px 0 8px;font-size:28px;letter-spacing:-.04em}.analytics-card p{color:var(--muted);line-height:1.5}.analytics-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.analytics-metric-pill{white-space:nowrap;padding:9px 12px;border-radius:999px;background:#eef9e9;color:var(--brand);font-weight:900;border:1px solid rgba(47,125,79,.14)}.macro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.macro-grid.two{grid-template-columns:repeat(2,1fr)}.macro-grid div,.money-list div,.health-summary div{background:rgba(255,255,255,.7);border:1px solid rgba(23,33,27,.06);border-radius:22px;padding:15px}.macro-grid span,.money-list span,.health-summary span{display:block;color:var(--muted);font-weight:800;font-size:13px}.macro-grid b,.money-list b,.health-summary b{display:block;margin-top:6px;font-size:23px;letter-spacing:-.03em}.money-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.money-list div:last-child{grid-column:1/-1}.mini-chart{height:160px;display:flex;align-items:end;gap:5px;padding:14px;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(233,255,217,.38));border:1px solid rgba(23,33,27,.06);overflow:hidden}.mini-bar{flex:1;min-width:4px;border-radius:999px 999px 6px 6px;background:linear-gradient(180deg,#74c86e,#2f9b63);opacity:.88}.money-chart .mini-bar{background:linear-gradient(180deg,#f4c95d,#e8993f)}.chart-caption,.chart-legend{display:flex;justify-content:space-between;gap:12px;margin-top:9px;color:var(--muted);font-size:13px;font-weight:800}.health-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.dual-chart{height:170px;display:flex;align-items:end;gap:6px;padding:14px;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(233,255,217,.38));border:1px solid rgba(23,33,27,.06);overflow:hidden}.dual-chart-day{flex:1;display:flex;align-items:end;justify-content:center;gap:2px;height:100%;min-width:6px}.dual-chart-day span{width:42%;border-radius:999px 999px 6px 6px;min-height:2px}.dual-chart-day .water{background:linear-gradient(180deg,#8ad7ff,#45a9de)}.dual-chart-day .steps{background:linear-gradient(180deg,#74c86e,#2f9b63)}.chart-legend{justify-content:flex-start}.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.water-dot{background:#45a9de}.steps-dot{background:#2f9b63}.category-row{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-weight:900}.category-row span{color:var(--muted)}.category-row:last-child{border-bottom:0}@media(max-width:900px){.analytics-section-grid,.analytics-section-grid:nth-of-type(2){grid-template-columns:1fr}.macro-grid{grid-template-columns:1fr 1fr}.analytics-card-head{display:grid}.analytics-tabs{display:grid;width:100%;border-radius:22px}.analytics-tabs a{border-radius:17px}.mini-chart,.dual-chart{height:130px}.analytics-card{border-radius:24px;padding:18px}.analytics-card h2{font-size:24px}.money-list,.health-summary{grid-template-columns:1fr}.money-list div:last-child{grid-column:auto}}

/* Stage 23 — family challenges and badges */
.challenge-hero{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:18px;
  align-items:stretch;
  margin:18px 0 22px;
}
.challenge-hero>div:first-child,
.challenge-score,
.active-challenge-card,
.challenge-template-card,
.badge-card{
  background:rgba(255,250,241,.82);
  border:1px solid var(--line);
  box-shadow:0 18px 55px rgba(24,33,27,.065);
}
.challenge-hero>div:first-child{border-radius:34px;padding:34px 38px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(236,250,226,.78))}
.challenge-hero h1{font-size:clamp(42px,6vw,76px);line-height:.96;margin:8px 0 12px;letter-spacing:-.065em}
.challenge-hero p{color:var(--muted);max-width:760px;line-height:1.58;margin:0}
.challenge-score{border-radius:34px;padding:28px;display:flex;flex-direction:column;justify-content:center;gap:10px;background:#fffdf8}
.challenge-score span{color:var(--muted);font-weight:850}.challenge-score b{font-size:56px;line-height:1;color:var(--brand)}
.challenge-score i,.challenge-progress-main i{height:10px;border-radius:999px;background:#e7efde;display:block;overflow:hidden}.challenge-score em,.challenge-progress-main em{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#38a66b,#78cf63)}
.challenge-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 28px}.challenge-stats article{border-radius:26px;background:#fff;border:1px solid var(--line);padding:18px;display:grid;grid-template-columns:44px 1fr;gap:5px 12px;align-items:center}.challenge-stats span{grid-row:span 2;width:44px;height:44px;border-radius:16px;background:#eaf8df;display:grid;place-items:center;font-size:24px}.challenge-stats b{font-size:28px;color:var(--brand);line-height:1}.challenge-stats p{margin:0;color:var(--muted);font-weight:800;font-size:13px}
.active-challenge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px;margin:0 0 30px}.active-challenge-card{border-radius:32px;padding:22px}.challenge-card-head{display:flex;gap:14px;align-items:flex-start}.challenge-emoji{width:54px;height:54px;border-radius:20px;background:linear-gradient(135deg,#eaf8df,#fff);display:grid;place-items:center;font-size:30px;flex:0 0 auto}.challenge-card-head h3{margin:0 0 6px;font-size:22px;letter-spacing:-.03em}.challenge-card-head p{margin:0;color:var(--muted);line-height:1.45;font-weight:750}.challenge-progress-main{margin:18px 0}.challenge-progress-main>div{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:9px}.challenge-progress-main b{font-size:34px;color:var(--brand)}.challenge-progress-main span{color:var(--muted);font-weight:900}.challenge-kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0}.challenge-kpi-row div{border-radius:19px;background:#fff;border:1px solid rgba(23,33,27,.06);padding:12px}.challenge-kpi-row span{display:block;color:var(--muted);font-size:12px;font-weight:850}.challenge-kpi-row b{display:block;margin-top:4px;font-size:18px}.challenge-calendar{display:flex;gap:5px;flex-wrap:wrap;margin:14px 0}.challenge-calendar span{width:22px;height:22px;border-radius:9px;background:#eee9df;border:1px solid rgba(23,33,27,.05);display:grid;place-items:center;font-size:12px;font-weight:950;color:#fff}.challenge-calendar span.done{background:linear-gradient(135deg,#38a66b,#78cf63)}.challenge-calendar span.today{background:#f4c95d}.challenge-calendar span.future{opacity:.55}.challenge-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.challenge-check-form{display:flex;gap:8px;align-items:center;flex:1 1 auto}.challenge-check-form input{width:96px;border-radius:999px;border:1px solid var(--line);padding:11px 12px;font-weight:900;background:#fff}
.challenge-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-bottom:30px}.challenge-template-card{border-radius:30px;padding:20px;display:flex;flex-direction:column;gap:12px}.challenge-template-top{display:flex;justify-content:space-between;align-items:center}.challenge-template-top span{width:52px;height:52px;border-radius:20px;background:#eaf8df;display:grid;place-items:center;font-size:29px}.challenge-template-top small,.template-meta span{color:var(--muted);font-weight:850}.challenge-template-card h3{margin:0;font-size:22px;letter-spacing:-.03em}.challenge-template-card p{margin:0;color:var(--muted);line-height:1.48;flex:1}.template-meta{border-radius:20px;background:#fff;border:1px solid rgba(23,33,27,.06);padding:13px}.template-meta b{display:block;margin-top:4px}.badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.badge-card{border-radius:30px;padding:22px;text-align:center}.badge-card span{width:66px;height:66px;border-radius:24px;background:linear-gradient(135deg,#fff2bf,#eaf8df);display:grid;place-items:center;font-size:36px;margin:0 auto 13px}.badge-card h3{margin:0 0 6px}.badge-card p{margin:0 0 8px;color:var(--muted);font-weight:800}.badge-card small{color:var(--brand);font-weight:900}.challenge-empty{grid-column:1/-1;border-radius:28px;padding:28px;background:#fffdf8;border:1px solid var(--line)}.challenge-empty h3{margin:0 0 7px}.challenge-empty p{margin:0;color:var(--muted)}
@media(max-width:900px){.challenge-hero{grid-template-columns:1fr}.challenge-stats{grid-template-columns:1fr 1fr}.challenge-hero>div:first-child,.challenge-score,.active-challenge-card{border-radius:26px;padding:20px}.challenge-hero h1{font-size:42px}.challenge-score b{font-size:44px}.challenge-kpi-row{grid-template-columns:1fr}.challenge-actions,.challenge-check-form{display:grid;grid-template-columns:1fr}.challenge-check-form input{width:100%;box-sizing:border-box}.challenge-stats article{border-radius:22px}}
@media(max-width:560px){.challenge-stats{grid-template-columns:1fr}.challenge-template-grid,.badge-grid,.active-challenge-grid{grid-template-columns:1fr}.challenge-template-card,.badge-card{border-radius:24px}}


/* Stage 25 — Auto purchase */
.auto-purchase-hero{background:linear-gradient(135deg,#f2fbf5 0%,#fffaf0 100%);border:1px solid rgba(42,127,76,.12)}
.purchase-summary div:nth-child(2){background:linear-gradient(135deg,#effaf3,#ffffff);border-color:rgba(42,127,76,.16)}
.auto-purchase-report{margin-top:22px}
.purchase-list .shopping-item{align-items:center}
.purchase-list .shopping-item b{font-size:1rem;color:#173b25;white-space:nowrap}
.auto-purchase-teaser,.purchase-draft-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:28px 0;padding:24px;border-radius:28px;background:linear-gradient(135deg,#f4fbf6,#ffffff);border:1px solid rgba(42,127,76,.12);box-shadow:0 18px 50px rgba(24,62,36,.06)}
.auto-purchase-teaser h2,.purchase-draft-card h2{margin:6px 0 8px}.auto-purchase-teaser p,.purchase-draft-card p{margin:0;color:var(--muted)}
.draft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 40px}.draft-card{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:22px;background:#fff;border:1px solid rgba(21,32,25,.08);text-decoration:none;color:inherit;box-shadow:0 14px 38px rgba(23,59,37,.06)}.draft-card span{font-size:.78rem;color:#2a7f4c;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.draft-card b{font-size:1rem}.draft-card small{color:var(--muted)}
@media(max-width:820px){.auto-purchase-teaser,.purchase-draft-card{align-items:flex-start;flex-direction:column;padding:18px;border-radius:22px}.draft-grid{grid-template-columns:1fr}.purchase-summary div b{font-size:1.3rem}}

/* Stage 26 — Dynamic public daily menu demo */
.dynamic-demo-card{
  position:relative;
  overflow:hidden;
}
.dynamic-demo-card:after{
  content:"";
  position:absolute;
  inset:auto -44px -56px auto;
  width:150px;
  height:150px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(119,211,111,.22),rgba(119,211,111,0) 68%);
  pointer-events:none;
}
.demo-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:14px;
}
.demo-head h3{
  margin:4px 0 0!important;
  line-height:1.15;
  max-width:210px;
}
.demo-kicker{
  display:inline-flex;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(47,125,79,.09);
  color:#13784a;
  font-size:11px;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.demo-date{
  display:grid;
  place-items:center;
  min-width:48px;
  height:38px;
  padding:0 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(47,125,79,.12);
  color:#13784a;
  font-weight:950;
  box-shadow:0 8px 20px rgba(24,33,27,.04);
}
.demo-meals{display:grid;gap:12px}
.phone-preview .demo-meal{
  position:relative;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:3px 10px;
  align-items:center;
  margin:0;
  padding:15px 16px;
}
.phone-preview .demo-meal .meal-icon{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:14px;
  background:#eef9e9;
  font-size:18px;
}
.phone-preview .demo-meal b{
  font-size:14px;
  line-height:1.15;
}
.phone-preview .demo-meal span:last-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#4d5a52;
}
.demo-tip{
  position:relative;
  margin:16px 0 0;
  padding:13px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.56);
  border:1px solid rgba(47,125,79,.09);
  color:#5d6b61;
  font-size:13px;
  line-height:1.35;
  font-weight:750;
}
@media(max-width:980px){
  .dynamic-demo-card{display:none}
}

/* Stage 27 — onboarding */
.onboarding-shell{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start;max-width:1120px;margin:24px auto 40px}.onboarding-card{background:rgba(255,250,241,.82);border:1px solid var(--line);border-radius:38px;padding:36px;box-shadow:var(--shadow)}.onboarding-card h1{font-size:clamp(34px,5vw,58px);line-height:1;letter-spacing:-.055em;margin:12px 0}.compact-lead{font-size:17px;max-width:760px}.onboarding-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:24px}.onboarding-progress span{height:8px;border-radius:99px;background:#eadfce}.onboarding-progress span.done,.onboarding-progress span.active{background:linear-gradient(90deg,#52bd70,#95d75d)}.onboarding-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.onboarding-choice{position:relative;display:grid;gap:10px;min-height:190px;padding:20px;border:1px solid var(--line);border-radius:28px;background:rgba(255,255,255,.68);cursor:pointer;transition:.18s;box-shadow:0 12px 34px rgba(24,33,27,.045)}.onboarding-choice:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(24,33,27,.08)}.onboarding-choice input{position:absolute;opacity:0;pointer-events:none}.onboarding-choice:has(input:checked){border-color:#52bd70;background:linear-gradient(145deg,#f7fff0,#fffdf6);box-shadow:0 18px 48px rgba(82,189,112,.14)}.choice-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:18px;background:#edf9e8;font-size:24px}.onboarding-choice b{font-size:19px}.onboarding-choice small{color:var(--muted);line-height:1.45;font-weight:700}.onboarding-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:24px}.onboarding-check{display:flex;align-items:center;gap:12px;min-height:58px;padding:14px 16px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.72);font-weight:900}.onboarding-check input{width:20px;height:20px;accent-color:#3aa85f}.onboarding-field-card{display:grid;gap:16px;margin-top:24px;padding:22px;border:1px solid var(--line);border-radius:26px;background:rgba(255,255,255,.68)}.onboarding-hint{padding:14px 16px;border-radius:18px;background:#edf9e8;color:#466051;line-height:1.45;font-weight:700}.inline-check{justify-content:flex-start}.onboarding-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.onboarding-preview{position:sticky;top:92px}.preview-phone{background:linear-gradient(145deg,#f9fff5,#e9fbdd);border:1px solid #d7ead1;border-radius:38px;padding:24px;box-shadow:var(--shadow)}.small-phone-preview .meal{background:rgba(255,255,255,.72);border-color:rgba(23,33,27,.08);color:var(--text)}.small-phone-preview .meal span{color:var(--muted)}.small-phone-preview .stat-row{border-top-color:rgba(23,33,27,.08)}
@media(max-width:920px){.onboarding-shell{grid-template-columns:1fr}.onboarding-preview{display:none}.onboarding-choice-grid{grid-template-columns:1fr}.onboarding-checks{grid-template-columns:1fr}.onboarding-card{border-radius:28px;padding:22px}.onboarding-actions{display:grid;grid-template-columns:1fr}.onboarding-card h1{font-size:34px}}

/* Stage 28 — Smart Menu Engine 2.0 */
.smart-explain-panel,.menu-tune-panel{margin:28px 0;padding:26px;border-radius:32px;background:linear-gradient(135deg,#f7fff1,#fffaf0);border:1px solid rgba(45,132,78,.14);box-shadow:0 22px 60px rgba(24,62,36,.06)}
.smart-explain-head,.menu-tune-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.smart-explain-head h2,.menu-tune-panel h2{margin:6px 0 8px;letter-spacing:-.04em}.smart-explain-head p,.menu-tune-panel p{margin:0;color:var(--muted);font-weight:750;line-height:1.5}.smart-engine-badge{white-space:nowrap;border-radius:999px;background:#eaf8df;border:1px solid rgba(45,132,78,.14);padding:9px 12px;color:#147746;font-weight:950;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.explain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:20px}.explain-card{border-radius:24px;background:rgba(255,255,255,.74);border:1px solid rgba(23,33,27,.07);padding:18px;box-shadow:0 14px 38px rgba(24,62,36,.045)}.explain-card span{width:42px;height:42px;border-radius:16px;background:#edf9e8;display:grid;place-items:center;font-size:22px;margin-bottom:12px}.explain-card h3{font-size:17px;margin:0 0 7px;letter-spacing:-.025em}.explain-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.45;font-weight:750}.tune-actions{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:10px;min-width:420px}.tune-actions form{margin:0}.tune-actions .btn{width:100%;justify-content:center}.btn.soft{background:linear-gradient(135deg,#eef9e8,#ffffff);color:#173b25;border:1px solid rgba(45,132,78,.16);box-shadow:0 12px 30px rgba(24,62,36,.06)}.btn.soft:hover{background:linear-gradient(135deg,#dff6d7,#ffffff);transform:translateY(-1px)}.smart-meal-line{position:relative;padding-right:150px}.inline-tune-form{position:absolute;right:12px;top:50%;transform:translateY(-50%);margin:0}.inline-tune-form button{border:0;border-radius:999px;background:#eef9e8;color:#176b42;padding:8px 11px;font-weight:900;font-size:12px;cursor:pointer;border:1px solid rgba(45,132,78,.12)}.inline-tune-form button:hover{background:#dff6d7}
@media(max-width:900px){.smart-explain-head,.menu-tune-panel{display:block}.smart-engine-badge{display:inline-flex;margin-top:14px}.tune-actions{grid-template-columns:1fr;min-width:0;margin-top:18px}.smart-meal-line{padding-right:0}.inline-tune-form{position:static;transform:none;margin-top:10px}.inline-tune-form button{width:100%}.smart-explain-panel,.menu-tune-panel{border-radius:24px;padding:18px}}

/* Stage 30 — billing/subscription polish */
.subscription-status-panel { margin-top: 22px; }
.inline-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.subscription-badge { min-width: 86px; text-align: center; padding: 12px 14px; border-radius: 20px; background: linear-gradient(135deg, #e8fff2, #d9f8e7); color: #116b3d; font-weight: 800; box-shadow: inset 0 0 0 1px rgba(20, 128, 76, .12); }
.subscription-badge.trial { background: linear-gradient(135deg, #f3f0ff, #e8e0ff); color: #5b3ab8; }
.subscription-badge.danger { background: linear-gradient(135deg, #fff0ed, #ffe0d8); color: #a33a26; }
.inline-form.promo-form { display: flex; gap: 10px; align-items: center; margin-top: 16px; flex-wrap: wrap; }
.inline-form.promo-form input { min-width: min(100%, 280px); border: 1px solid rgba(17, 24, 39, .12); border-radius: 16px; padding: 13px 16px; background: #fff; font: inherit; outline: none; }
.inline-form.promo-form input:focus { border-color: rgba(22, 163, 74, .45); box-shadow: 0 0 0 4px rgba(34, 197, 94, .12); }
.small-top-form { margin-top: 12px; }
.danger-soft { color: #aa3326; border-color: rgba(170, 51, 38, .18); }
.trial-line { margin: 8px 0 14px; display: inline-flex; padding: 6px 10px; border-radius: 999px; background: rgba(34, 197, 94, .10); color: #157347; font-size: .88rem; font-weight: 700; }
.payments-panel { margin-top: 26px; }
.payments-list { display: grid; gap: 8px; }
.table-row.payment-row { display: grid; grid-template-columns: 1.4fr .9fr .9fr .7fr; gap: 14px; align-items: center; padding: 14px 16px; border-radius: 18px; background: rgba(255,255,255,.78); border: 1px solid rgba(17,24,39,.08); }
.table-row.payment-row span, .muted { display: block; color: #6b7280; font-size: .88rem; }
@media (max-width: 760px) {
  .inline-head { flex-direction: column; }
  .subscription-badge { width: 100%; }
  .table-row.payment-row { grid-template-columns: 1fr; gap: 6px; }
  .inline-form.promo-form input, .inline-form.promo-form .btn { width: 100%; }
}


/* Stage 32 — PWA / installable app polish */
.pwa-install-card{
  position:fixed;
  left:50%;
  bottom:22px;
  z-index:80;
  width:min(620px,calc(100% - 28px));
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 34px;
  gap:14px;
  align-items:center;
  padding:14px 14px 14px 18px;
  border-radius:24px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(47,125,79,.16);
  box-shadow:0 24px 80px rgba(24,33,27,.18);
  backdrop-filter:blur(22px);
}
.pwa-install-card[hidden]{display:none!important}
.pwa-install-card b{display:block;color:#173b25;font-size:16px;letter-spacing:-.015em}
.pwa-install-card span{display:block;margin-top:3px;color:var(--muted);font-size:13px;font-weight:750;line-height:1.35}
.pwa-close{width:34px;height:34px;border:0;border-radius:13px;background:#f2f6ef;color:#637065;font-size:20px;font-weight:900;cursor:pointer}
.offline-page{min-height:62vh;display:grid;place-items:center;padding:36px 0}
.offline-card{width:min(760px,100%);padding:42px;border-radius:38px;background:rgba(255,250,241,.84);border:1px solid var(--line);box-shadow:var(--shadow);text-align:left;overflow:hidden;position:relative}
.offline-card:before{content:"";position:absolute;right:-80px;top:-100px;width:250px;height:250px;border-radius:999px;background:radial-gradient(circle,rgba(116,200,110,.22),rgba(116,200,110,0) 70%)}
.offline-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:24px;background:#edf9e8;font-size:30px;margin-bottom:18px}
.mobile-tabbar{padding-bottom:calc(7px + env(safe-area-inset-bottom,0px))!important;bottom:max(10px,env(safe-area-inset-bottom,0px))!important}
body.pwa-standalone .site-header{padding-top:calc(12px + env(safe-area-inset-top,0px))}
@media(display-mode:standalone){
  .pwa-install-card{display:none!important}
}
@media(max-width:760px){
  .pwa-install-card{bottom:calc(92px + env(safe-area-inset-bottom,0px));grid-template-columns:1fr;gap:10px;padding:16px;border-radius:22px}
  .pwa-install-card .btn{width:100%;min-height:48px}
  .pwa-close{position:absolute;right:10px;top:10px;width:30px;height:30px}
  .pwa-install-card b,.pwa-install-card span{padding-right:34px}
  .offline-card{padding:26px;border-radius:28px}.offline-page{min-height:58vh;padding:20px 0}
  .mobile-tabbar{left:8px;right:8px;border-radius:30px;background:rgba(255,255,255,.91)}
}

/* Stage 33 — Smart purchase 2.0 */
.store-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:22px;align-items:end;margin:22px 0;padding:24px;border-radius:30px;background:linear-gradient(135deg,#f8fff2,#fffaf1);border:1px solid rgba(45,132,78,.14);box-shadow:0 18px 54px rgba(24,62,36,.055)}
.store-panel h2{margin:5px 0 8px;letter-spacing:-.035em}.store-panel p{margin:0;color:var(--muted);font-weight:750;line-height:1.5}.store-form{display:grid;gap:10px}.store-form select{height:52px;border-radius:18px;border:1px solid rgba(17,24,39,.12);background:#fff;padding:0 14px;font:inherit;font-weight:800;color:var(--text);outline:none}.store-form select:focus{border-color:rgba(56,160,92,.45);box-shadow:0 0 0 4px rgba(56,160,92,.12)}.purchase-actions{flex-wrap:wrap}.purchase-item{grid-template-columns:minmax(0,1fr) auto}.purchase-item strong{display:block}.purchase-item small{display:block;margin-top:4px;line-height:1.35}.purchase-item-side{display:grid;gap:8px;justify-items:end;align-items:center}.btn.mini{min-height:36px;padding:8px 12px;font-size:12px}.success-line{color:#138b4e!important;font-weight:900}.shopping-item.bought{background:linear-gradient(135deg,#f0fff5,#ffffff);border-color:rgba(22,163,74,.18)}
@media(max-width:820px){.store-panel{grid-template-columns:1fr;border-radius:24px;padding:18px}.purchase-item{grid-template-columns:1fr}.purchase-item-side{justify-items:stretch}.purchase-item-side .btn{width:100%}}

/* Stage 34 — Recipe page scaling, costs and video */
.recipe-detail-modern{align-items:center}.recipe-hero-copy{min-width:0}.servings-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0 16px;padding:16px 18px;border-radius:24px;background:linear-gradient(135deg,#f6fff1,#fffaf0);border:1px solid rgba(45,132,78,.14);box-shadow:0 14px 36px rgba(24,62,36,.055)}.servings-card b{display:block;font-size:16px;letter-spacing:-.02em}.servings-card span{display:block;margin-top:4px;color:var(--muted);font-size:13px;font-weight:750;line-height:1.35}.servings-card select{height:46px;min-width:132px;border-radius:16px;border:1px solid rgba(45,132,78,.2);background:#fff;padding:0 14px;font:inherit;font-weight:900;color:var(--text);outline:none}.servings-card select:focus{border-color:rgba(45,132,78,.48);box-shadow:0 0 0 4px rgba(82,189,112,.14)}.recipe-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}.mini-stat{padding:20px}.mini-stat span,.mini-stat small{display:block;color:var(--muted);font-weight:800;line-height:1.35}.mini-stat b{display:block;margin:8px 0 4px;font-size:clamp(22px,3vw,34px);letter-spacing:-.045em;color:var(--text)}.panel-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head-row h2{margin:0}.panel-head-row span{padding:8px 12px;border-radius:999px;background:#eef9e8;color:#176b42;font-weight:900;font-size:13px}.ingredient-line{align-items:flex-start}.ingredient-line small{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:750}.recipe-video-panel{margin:22px 0}.section-head.compact{margin:0 0 16px}.section-head.compact h2{margin:0}.section-head.compact p{margin:6px 0 0;color:var(--muted);font-weight:750}.video-frame{position:relative;width:100%;padding-top:56.25%;border-radius:28px;overflow:hidden;background:#0e1f16;box-shadow:0 18px 48px rgba(24,33,27,.12)}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-link-card{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid rgba(45,132,78,.14);border-radius:24px;background:linear-gradient(135deg,#f7fff1,#fff);text-decoration:none;color:var(--text)}.video-link-card>span{display:grid;place-items:center;width:52px;height:52px;border-radius:20px;background:#40b866;color:white;font-weight:950}.video-link-card b,.video-link-card small{display:block}.video-link-card small{margin-top:4px;color:var(--muted);font-weight:750}.video-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.video-list a{display:inline-flex;padding:9px 12px;border-radius:999px;background:#f1f8ee;color:#176b42;text-decoration:none;font-weight:900;font-size:13px}.cost-explain-panel{margin:22px 0;background:linear-gradient(135deg,#fffdf6,#f6fff1)}.soft-list{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.soft-list span{padding:9px 12px;border-radius:999px;background:#eef9e8;color:#176b42;font-weight:900;font-size:13px}.cost-explain-panel small{display:block;color:var(--muted);font-weight:800;line-height:1.45}.muted{color:var(--muted)!important}
@media(max-width:860px){.servings-card{display:grid}.servings-card select{width:100%}.recipe-summary-grid{grid-template-columns:1fr}.recipe-detail-modern{gap:18px}.mini-stat{border-radius:24px}.video-frame{border-radius:20px}.soft-list{display:grid}.soft-list span{border-radius:16px}}

/* Stage 35 Price Engine + recipe portions */
.servings-stepper-card{align-items:center;gap:18px}
.servings-stepper{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.servings-stepper input[type=number]{width:92px;height:44px;border:1px solid var(--line);border-radius:16px;background:#fffdf7;font-weight:900;text-align:center;color:var(--ink);font-size:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.servings-stepper button[data-step]{width:44px;height:44px;border:1px solid var(--line);border-radius:16px;background:#ecfdf3;color:#087a42;font-size:22px;font-weight:900;line-height:1;cursor:pointer;transition:.18s ease}
.servings-stepper button[data-step]:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(22,163,74,.14)}
.btn-mini{height:44px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center}
.cost-explain-panel .soft-list{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
@media(max-width:720px){.servings-stepper-card{align-items:stretch}.servings-stepper{width:100%}.servings-stepper input[type=number]{flex:1;min-width:92px}.btn-mini{width:100%}}


/* Stage 36 — legal pages, consent and recipe UX cleanup */
.legal-hero{max-width:1120px;margin-left:auto;margin-right:auto}
.info-grid{display:grid;gap:18px;margin:24px 0}.info-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.info-card span{display:grid;place-items:center;width:54px;height:54px;border-radius:20px;background:#edf9e8;font-size:25px;margin-bottom:14px}.info-card h2{margin:0 0 10px}.info-card p,.legal-section p,.legal-note p{color:var(--muted);font-weight:750;line-height:1.62}.legal-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}.legal-section h2,.legal-note h2{margin-top:0}.numbered-list{display:grid;gap:12px}.numbered-list div{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px;padding:14px;border:1px solid rgba(47,125,79,.1);border-radius:18px;background:rgba(255,255,255,.58)}.numbered-list b{display:grid;place-items:center;width:34px;height:34px;border-radius:14px;background:#eaf8df;color:#13784a}.numbered-list span{font-weight:800;color:#51625a;line-height:1.45}.clean-list{margin:12px 0 0;padding-left:20px;color:var(--muted);font-weight:800;line-height:1.8}.policy-consent{display:flex;align-items:flex-start;gap:12px;margin:4px 0 18px;padding:16px;border:1px solid rgba(47,125,79,.14);border-radius:18px;background:linear-gradient(135deg,#f6fff1,#fffaf0);font-weight:800;line-height:1.45;color:#51625a}.policy-consent input{width:20px;height:20px;margin-top:2px;accent-color:#38a35d;flex:0 0 auto}.policy-consent a{color:#167945;font-weight:950;text-decoration:none}.policy-consent a:hover{text-decoration:underline}.servings-stepper-card .btn-mini{display:none!important}.recipe-detail .cost-explain-panel,.recipe-detail + .cost-explain-panel{display:none!important}
@media(max-width:860px){.info-grid-3,.legal-page-grid{grid-template-columns:1fr}.numbered-list div{grid-template-columns:36px 1fr}.legal-hero{margin-top:10px}}

/* Stage 37 — family restrictions and per-meal attendance */
.member-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.mini-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid rgba(32,104,66,.18);border-radius:999px;color:#176f42;background:rgba(82,190,111,.08);font-weight:800;text-decoration:none}
.narrow-panel{max-width:920px;margin:0 auto 48px}
.attendance-panel{margin:34px auto;max-width:1180px;background:rgba(255,255,255,.78);border:1px solid rgba(33,84,53,.12);border-radius:30px;padding:26px;box-shadow:0 18px 70px rgba(25,57,40,.08)}
.attendance-form{margin-top:18px}.attendance-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.attendance-day{border:1px solid rgba(33,84,53,.1);background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(246,250,239,.82));border-radius:22px;padding:18px}.attendance-day h3{margin:0 0 12px}.attendance-meal{border-top:1px solid rgba(33,84,53,.1);padding-top:13px;margin-top:13px}.attendance-meal:first-of-type{border-top:0;margin-top:0;padding-top:0}.attendance-meal-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.attendance-meal-head span{color:#66746d;font-size:.92rem}.attendance-members{display:grid;gap:8px}.attendance-member{display:grid;grid-template-columns:22px minmax(90px,1fr) 78px;gap:8px;align-items:center;background:rgba(255,255,255,.82);border:1px solid rgba(33,84,53,.1);border-radius:16px;padding:9px 10px;font-weight:800}.attendance-member input[type=number]{height:34px;border-radius:12px;border:1px solid rgba(33,84,53,.16);padding:0 8px;background:#fff}.muted-member{opacity:.58}.muted{color:#6d7a72}.onboarding-checks{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:760px){.attendance-panel{padding:18px;border-radius:24px}.attendance-days{grid-template-columns:1fr}.attendance-meal-head{display:block}.attendance-member{grid-template-columns:22px 1fr 72px}.onboarding-checks{grid-template-columns:1fr}}

/* Stage 38 — shared family access */
.soft-panel{background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(231,255,226,.7));}
.feature-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.feature-row>div{padding:16px;border:1px solid rgba(47,125,79,.16);border-radius:22px;background:rgba(255,255,255,.72);box-shadow:0 14px 30px rgba(30,62,45,.06)}
.feature-row b{display:block;color:#173126;margin-bottom:6px;font-size:15px}
.feature-row span{display:block;color:#6e7871;font-size:14px;line-height:1.45}
.small-text{font-size:13px;margin-top:4px}
@media (max-width: 800px){.feature-row{grid-template-columns:1fr}.feature-row>div{padding:14px}}

.swap-note,
.swap-warning{
  display:block;
  margin-top:6px;
  font-size:12px;
  line-height:1.35;
  color:var(--muted);
  font-style:normal;
}
.swap-warning{
  color:#9f5f00;
}

/* Stage 40 — comfortable weekly menu and cooking flow */
.cook-now-panel{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px;align-items:stretch;margin:28px 0 34px;padding:22px;border:1px solid rgba(47,125,79,.16);border-radius:34px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(233,255,217,.54));box-shadow:0 24px 70px rgba(47,125,79,.10)}
.cook-now-main,.cook-now-side{background:rgba(255,255,255,.72);border:1px solid rgba(23,33,27,.06);border-radius:26px;padding:22px}.cook-now-main h2{font-size:34px;margin:4px 0 14px;letter-spacing:-.04em}.cook-now-recipe h3{font-size:30px;line-height:1.06;margin:7px 0 10px}.cook-meal-type{display:inline-flex;align-items:center;gap:8px;font-weight:900;color:var(--brand);background:#eefbe9;border:1px solid rgba(47,125,79,.12);border-radius:999px;padding:7px 11px}.cook-now-recipe p{max-width:760px;color:var(--muted);line-height:1.55}.cook-now-metrics{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.cook-now-metrics span{font-weight:900;color:#244d35;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 11px}.cook-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.cook-actions form{margin:0}.cook-actions .btn{min-height:48px}.cook-now-side h3{margin:0 0 12px}.cook-ingredients{display:grid;gap:8px;list-style:none;margin:0 0 18px;padding:0}.cook-ingredients li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(23,33,27,.08)}.cook-ingredients span{font-weight:800}.cook-ingredients b{white-space:nowrap;color:var(--brand)}.cook-steps{margin:0;padding-left:20px;color:var(--muted);line-height:1.45}.cook-steps li{margin:8px 0}.week-head{align-items:flex-start}.week-head p{color:var(--muted);max-width:760px}.week-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:34px}.week-day-card{background:rgba(255,255,255,.74);border:1px solid rgba(23,33,27,.08);border-radius:30px;padding:18px;box-shadow:0 14px 44px rgba(24,33,27,.055)}.week-day-card.today{background:linear-gradient(135deg,rgba(233,255,217,.86),rgba(255,250,241,.84));border-color:rgba(47,125,79,.24);box-shadow:0 20px 60px rgba(47,125,79,.11)}.week-day-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.week-day-head span{display:block;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);font-size:12px;font-weight:900}.week-day-head h3{margin:2px 0 0;font-size:25px}.day-progress{display:grid;place-items:center;width:72px;height:72px;border-radius:24px;background:#fff;border:1px solid rgba(23,33,27,.08)}.day-progress b{font-size:20px}.day-progress small{font-size:11px;color:var(--muted);font-weight:900}.day-progress-bar{height:8px;border-radius:999px;background:rgba(47,125,79,.10);overflow:hidden}.day-progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(135deg,#2f9b63,#74c86e)}.day-mini-stats{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.day-mini-stats span{font-size:13px;font-weight:900;color:#315541;background:#fff;border:1px solid rgba(23,33,27,.07);border-radius:999px;padding:7px 10px}.week-meals{display:grid;gap:10px}.week-meal-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;padding:13px;border:1px solid rgba(23,33,27,.08);border-radius:22px;background:rgba(255,255,255,.70)}.week-meal-card.status-prepared{background:rgba(239,255,232,.92);border-color:rgba(47,155,99,.22)}.week-meal-card.status-skipped{opacity:.72;background:rgba(245,242,234,.9)}.meal-status-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:16px;background:#fff;border:1px solid rgba(23,33,27,.06);font-size:21px}.meal-content{min-width:0}.meal-topline{display:flex;justify-content:space-between;gap:10px;align-items:center}.meal-topline span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.meal-topline em{font-style:normal;font-size:12px;font-weight:900;color:var(--brand);background:#eefbe9;border-radius:999px;padding:5px 8px;white-space:nowrap}.week-meal-card.status-skipped .meal-topline em{color:#7a6f5d;background:#f4efe5}.meal-content h4{font-size:18px;line-height:1.15;margin:5px 0 7px}.meal-content p{margin:0;color:var(--muted);font-size:13px;line-height:1.42;font-weight:700}.meal-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.meal-card-actions form{margin:0}.meal-card-actions button{border:1px solid rgba(47,125,79,.16);background:#eefbe9;color:#24643f;border-radius:999px;padding:7px 10px;font-weight:900;cursor:pointer}.meal-card-actions button:hover{background:#dcf7d5}.week-meal-card.status-prepared .meal-card-actions button,.week-meal-card.status-skipped .meal-card-actions button{background:#fff}.smart-meal-line{display:none}.empty.small{padding:16px;border-radius:20px}.muted{color:var(--muted)}
@media(max-width:980px){.cook-now-panel{grid-template-columns:1fr}.week-board{grid-template-columns:1fr}.cook-actions{display:grid;grid-template-columns:1fr}.cook-actions .btn{width:100%}}
@media(max-width:760px){.cook-now-panel{padding:12px;border-radius:26px;margin:16px 0 24px}.cook-now-main,.cook-now-side{padding:17px;border-radius:22px}.cook-now-main h2{font-size:26px}.cook-now-recipe h3{font-size:24px}.cook-now-metrics{display:grid;grid-template-columns:1fr 1fr}.week-day-card{border-radius:24px;padding:14px}.week-day-head h3{font-size:22px}.day-progress{width:62px;height:62px;border-radius:20px}.week-meal-card{grid-template-columns:38px minmax(0,1fr);padding:11px}.meal-status-icon{width:38px;height:38px}.meal-topline{align-items:flex-start;flex-direction:column;gap:4px}.meal-card-actions{display:grid;grid-template-columns:1fr 1fr}.meal-card-actions form,.meal-card-actions button{width:100%}.meal-card-actions button{min-height:38px}.cook-now-metrics span{font-size:13px}}

/* Stage 41 — searchable product selector for refrigerator/product forms */
.native-select-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.searchable-select{
  position:relative;
  display:grid;
  gap:7px;
  width:100%;
}
.searchable-select-input{
  width:100%;
  min-height:52px;
  padding:14px 16px;
  border-radius:18px;
  border:1px solid rgba(47,125,79,.22);
  background:rgba(255,255,255,.82);
  color:var(--text);
  font:inherit;
  font-weight:800;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 8px 22px rgba(24,33,27,.035);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.searchable-select-input:focus{
  border-color:rgba(47,155,99,.62);
  background:#fff;
  box-shadow:0 0 0 4px rgba(47,155,99,.12),0 12px 28px rgba(24,33,27,.06);
}
.searchable-select-list{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  right:0;
  z-index:50;
  display:grid;
  gap:5px;
  max-height:292px;
  overflow:auto;
  padding:8px;
  border-radius:20px;
  border:1px solid rgba(47,125,79,.16);
  background:rgba(255,250,241,.98);
  box-shadow:0 22px 55px rgba(24,33,27,.18);
  backdrop-filter:blur(18px);
}
.searchable-select-option{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:42px;
  padding:10px 12px;
  border:0;
  border-radius:14px;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-weight:850;
  text-align:left;
  cursor:pointer;
}
.searchable-select-option:hover,
.searchable-select-option:focus{
  background:#eef9e9;
  color:#176a42;
  outline:none;
}
.searchable-select-empty{
  padding:13px 12px;
  color:var(--muted);
  font-weight:800;
  line-height:1.35;
}
.searchable-select-helper{
  color:var(--muted);
  font-weight:750;
  line-height:1.3;
}
@media(max-width:860px){
  .searchable-select-input{min-height:52px;border-radius:16px;font-size:16px}
  .searchable-select-list{max-height:250px;border-radius:18px}
  .searchable-select-option{min-height:46px}
}

/* Stage 41.2: clearer daily progress and quick health input */
.goal-row.with-actions { gap: 10px; }
.quick-health-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.quick-health-actions form { display: inline-flex; gap: 6px; align-items: center; }
.quick-health-actions button,
.quick-steps-form button {
  border: 1px solid rgba(46, 125, 79, .22);
  background: rgba(73, 190, 104, .12);
  color: #15713d;
  border-radius: 999px;
  padding: 9px 13px;
  font-weight: 800;
  cursor: pointer;
}
.quick-health-actions input,
.quick-steps-form input {
  border: 1px solid rgba(20, 48, 36, .14);
  border-radius: 999px;
  padding: 10px 13px;
  background: rgba(255,255,255,.82);
  min-width: 120px;
}
.quick-steps-form { display: flex; gap: 8px; margin-top: 10px; align-items: center; flex-wrap: wrap; }
.quick-steps-form.wide input { min-width: 260px; }
.quick-health-box { background: rgba(255,255,255,.58); border: 1px solid rgba(20,48,36,.10); border-radius: 24px; padding: 16px; margin-bottom: 16px; }
.muted { color: var(--muted); }
@media (max-width: 720px) {
  .quick-health-actions, .quick-steps-form { width: 100%; }
  .quick-health-actions form, .quick-steps-form, .quick-steps-form input, .quick-steps-form button { width: 100%; }
  .quick-health-actions button, .quick-steps-form button { justify-content: center; width: 100%; }
}

/* Stage 42: holiday menus and shared family cabinet polish */
.holiday-hero,
.holiday-detail-hero{
  background:linear-gradient(135deg, rgba(255,245,226,.95), rgba(234,255,239,.95));
  border:1px solid rgba(47,125,79,.12);
}
.holiday-engine .engine-card.primary{background:linear-gradient(135deg,#2f7d4f,#65c86b);color:#fff;}
.holiday-layout{align-items:start;}
.holiday-help .todo span{
  width:34px;height:34px;border-radius:12px;background:rgba(255,255,255,.16);display:inline-flex;align-items:center;justify-content:center;font-weight:900;
}
.holiday-menu-grid .recipe-card{position:relative;overflow:hidden;}
.holiday-menu-grid .recipe-card:before{content:'🎉';position:absolute;right:18px;top:14px;font-size:28px;opacity:.16;}
.compact-actions{margin-top:12px;gap:8px;flex-wrap:wrap;}
.holiday-today-meals{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));}
.compact-holiday-grid{margin-bottom:28px;}
.family-cabinet-note{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0;
}
.family-cabinet-note div{border:1px solid rgba(47,125,79,.14);background:rgba(255,255,255,.68);border-radius:18px;padding:14px;}
.family-cabinet-note b{display:block;margin-bottom:4px;}
@media(max-width:720px){
  .holiday-layout{grid-template-columns:1fr;}
  .holiday-today-meals{grid-template-columns:1fr;}
}

/* Stage 43: simple Telegram connection and per-user notification times */
.telegram-connect-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px;
  border:1px solid rgba(47,125,79,.14);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(235,255,241,.92),rgba(255,255,255,.78));
  margin-bottom:16px;
}
.telegram-connect-card h3{margin:3px 0 5px;font-size:1.35rem;}
.telegram-status-icon{font-size:36px;width:62px;height:62px;border-radius:22px;background:#fff;display:grid;place-items:center;box-shadow:0 14px 30px rgba(34,87,56,.12);}
.telegram-username-form{margin:14px 0 16px;}
.simple-flow{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));}
.legacy-telegram-box{margin:16px 0;padding:14px 16px;border-radius:18px;border:1px dashed rgba(47,125,79,.22);background:rgba(255,255,255,.58);}
.legacy-telegram-box summary{cursor:pointer;font-weight:900;color:#25633f;}
.legacy-telegram-box .copy-input{margin-top:10px;}
.notification-settings{display:grid;gap:12px;}
.notification-row{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(150px,.65fr);
  gap:10px;
  align-items:end;
  padding:12px;
  border:1px solid rgba(20,48,36,.09);
  border-radius:18px;
  background:rgba(255,255,255,.58);
}
.notification-settings .full-row{padding:12px;border:1px solid rgba(20,48,36,.09);border-radius:18px;background:rgba(255,255,255,.58);}
.success-text{color:#177344;font-weight:800;}
.small-text{font-size:.92rem;}
@media(max-width:720px){
  .telegram-connect-card{align-items:flex-start;}
  .telegram-status-icon{width:52px;height:52px;border-radius:18px;font-size:28px;}
  .notification-row{grid-template-columns:1fr;}
}

/* Stage 44: personal/family recipe book and menu source selector */
.recipe-book-hero{
  background:linear-gradient(135deg,rgba(239,255,244,.96),rgba(255,250,235,.92));
  border:1px solid rgba(47,125,79,.12);
}
.recipe-catalog-actions{margin-top:14px;}
.recipe-card-link{display:grid;grid-template-columns:150px 1fr;gap:16px;color:inherit;text-decoration:none;min-height:100%;}
.recipe-catalog-card,.recipe-book-card{display:flex;flex-direction:column;gap:12px;}
.recipe-catalog-card .recipe-card-link,.recipe-book-card .recipe-card-link{flex:1;}
.recipe-book-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid rgba(20,48,36,.08);padding-top:12px;margin-top:auto;}
.recipe-book-actions form{margin:0;}
.book-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:rgba(47,125,79,.12);color:#1f6b43;font-weight:900;padding:8px 12px;}
.recipe-book-detail-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 8px;}
.recipe-book-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;}
.recipe-book-toolbar h2{margin:0 0 4px;}
.compact-search{display:flex;gap:8px;min-width:min(440px,100%);}
.compact-search input{min-width:0;}
.recipe-book-grid{margin-top:12px;}
.recipe-book-empty{margin-top:18px;}
.danger-soft{border-color:rgba(185,28,28,.20)!important;color:#b91c1c!important;background:rgba(254,226,226,.65)!important;}
.form-card select[name="recipe_source"]{
  border:1px solid rgba(20,48,36,.14);
  border-radius:16px;
  padding:12px 14px;
  background:#fff;
  font-weight:800;
}
@media(max-width:820px){
  .recipe-card-link{grid-template-columns:1fr;}
  .recipe-book-toolbar{display:grid;grid-template-columns:1fr;}
  .compact-search{width:100%;}
  .recipe-book-actions{align-items:stretch;}
  .recipe-book-actions form,.recipe-book-actions button{width:100%;}
}

/* Stage 45: monetization and native ad slots */
.ad-slot{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
  margin:24px 0;
}
.ad-slot.compact{margin:18px 0;}
.ad-card{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:14px;
  align-items:center;
  min-height:108px;
  padding:16px;
  border-radius:26px;
  border:1px solid rgba(47,125,79,.14);
  background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(238,255,244,.82));
  box-shadow:0 18px 45px rgba(24,33,27,.07);
  color:inherit;
  text-decoration:none;
  overflow:hidden;
  position:relative;
}
.ad-card:before{
  content:'';
  position:absolute;
  inset:auto -32px -52px auto;
  width:150px;
  height:150px;
  border-radius:50%;
  background:rgba(47,125,79,.08);
  pointer-events:none;
}
.ad-card:hover{transform:translateY(-1px);box-shadow:0 24px 55px rgba(24,33,27,.1);}
.ad-media{
  width:64px;
  height:64px;
  border-radius:22px;
  background:#fff;
  display:grid;
  place-items:center;
  overflow:hidden;
  box-shadow:0 12px 30px rgba(34,87,56,.1);
  font-size:30px;
}
.ad-media img{width:100%;height:100%;object-fit:cover;display:block;}
.ad-copy{position:relative;z-index:1;min-width:0;}
.ad-topline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px;}
.ad-topline span{
  display:inline-flex;
  border-radius:999px;
  padding:5px 9px;
  background:rgba(47,125,79,.11);
  color:#21633f;
  font-size:.72rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.ad-topline em{font-style:normal;color:var(--muted);font-weight:800;font-size:.86rem;}
.ad-copy h3{margin:0 0 5px;font-size:1.05rem;line-height:1.15;}
.ad-copy p{margin:0;color:var(--muted);line-height:1.35;}
.ad-copy strong{display:inline-flex;margin-top:8px;color:#176a42;font-size:.92rem;}
@media(max-width:720px){
  .ad-slot{grid-template-columns:1fr;margin:16px 0;}
  .ad-card{grid-template-columns:52px 1fr;border-radius:22px;padding:14px;}
  .ad-media{width:52px;height:52px;border-radius:18px;font-size:25px;}
  .ad-copy h3{font-size:1rem;}
}

/* Stage 46 — recipe cards, rating and comments */
.recipe-card-v2{position:relative;overflow:hidden;padding:0;display:flex;flex-direction:column;min-height:100%}
.recipe-card-v2 .recipe-card-link{display:flex;flex-direction:column;gap:0;color:inherit;text-decoration:none;height:100%}
.recipe-card-v2 .recipe-card-body-v2{padding:16px 17px 14px;display:grid;gap:10px;min-height:220px}
.recipe-card-v2 h3{margin:0;font-size:20px;letter-spacing:-.025em;line-height:1.15}
.recipe-card-v2 p{margin:0;color:var(--muted)}
.recipe-media-thumb{position:relative;min-height:188px;background:linear-gradient(145deg,#eef8e8,#fff7df);overflow:hidden}
.recipe-media-thumb img{width:100%;height:100%;min-height:188px;object-fit:cover;display:block;transition:transform .28s ease}
.recipe-card-v2:hover .recipe-media-thumb img{transform:scale(1.035)}
.video-thumb-fallback{display:grid;place-items:center;gap:8px;min-height:188px;width:100%;height:100%;background:radial-gradient(circle at 35% 20%,#fffbe6 0,#f0ffe8 42%,#e9f3ff 100%);color:#245238;font-weight:900;text-align:center}
.video-thumb-fallback span{display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:#fff;box-shadow:0 16px 38px rgba(24,33,27,.14);font-size:26px}
.video-thumb-fallback small{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:#59715f}
.video-badge,.rating-badge,.hero-video-pill{position:absolute;z-index:2;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900;background:rgba(255,255,255,.9);color:#21472e;border:1px solid rgba(47,125,79,.14);box-shadow:0 12px 28px rgba(24,33,27,.12);backdrop-filter:blur(12px);font-style:normal;text-decoration:none}.video-badge{left:12px;top:12px}.rating-badge{right:12px;top:12px}.hero-video-pill{left:16px;bottom:16px}.recipe-card-stats{display:grid;grid-template-columns:1fr;gap:6px}.recipe-card-stats span{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#496151;font-weight:800}.recipe-card-stats b{font-size:18px;color:#17211b}.recipe-card-social{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}.recipe-card-social span{padding:7px 9px;border-radius:999px;background:#f4f8ef;color:#536756;font-size:12px;font-weight:900}.recipe-book-added-note{margin-top:-6px;padding:0 12px 6px;color:var(--muted)}.recipe-book-cell{display:grid;gap:8px}.recipe-detail-v2{align-items:stretch}.recipe-hero-media-v2{position:relative;min-height:480px;overflow:hidden}.recipe-hero-media-v2 img{width:100%;height:100%;object-fit:cover}.hero-video-fallback{min-height:480px;border-radius:inherit}.recipe-rating-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0}.recipe-rating-summary b{font-size:16px}.recipe-rating-summary small{color:var(--muted);font-weight:800}.rating-stars{--rating:0%;position:relative;display:inline-block;font-size:22px;letter-spacing:2px;line-height:1;color:#d4d8cc}.rating-stars:before{content:'★★★★★';position:absolute;inset:0;width:var(--rating);overflow:hidden;color:#f5b301}.rating-stars span{color:#d4d8cc}.recipe-facts-v2{display:flex;flex-wrap:wrap;gap:8px}.recipe-facts-v2 span{border-radius:999px;padding:8px 10px;background:#f5f9ef;color:#455c4d;font-weight:900}.recipe-summary-grid-v2{grid-template-columns:repeat(4,minmax(0,1fr))}.recipe-story-panel p{font-size:17px;line-height:1.65;color:#3e5145}.recipe-cook-layout{align-items:start}.ingredients-panel-v2,.cooking-steps-panel-v2{position:relative}.ingredient-line-v2{align-items:start}.ingredient-line-v2 strong{display:block}.ingredient-line-v2 em{font-size:12px;color:#8a6a1b;background:#fff7d2;border-radius:999px;padding:3px 7px;font-style:normal;font-weight:900}.step-card-v2{align-items:start;padding:14px 0;border-bottom:1px solid rgba(23,33,27,.07)}.step-card-v2:last-child{border-bottom:0}.step-card-v2>div{display:grid;gap:8px}.step-card-v2 p{margin:0;line-height:1.6}.step-meta-row{display:flex;flex-wrap:wrap;gap:7px}.step-meta-row small{display:inline-flex;border-radius:999px;padding:6px 9px;background:#f5f8ee;color:#536756;font-weight:900}.step-img{max-width:100%;border-radius:18px;margin-top:6px;box-shadow:0 14px 34px rgba(24,33,27,.10)}.recipe-feedback-layout{align-items:start;margin-top:18px}.rating-form,.comment-form{display:grid;gap:12px}.rating-form select,.comment-form select{min-height:50px;border-radius:16px;border:1px solid rgba(23,33,27,.12);padding:0 13px;background:#fff;font-weight:800}.comment-form textarea,.rating-form textarea{width:100%;border-radius:16px;border:1px solid rgba(23,33,27,.12);padding:13px;background:#fff;font:inherit;resize:vertical}.comment-form input[type=file]{width:100%;padding:12px;border-radius:16px;border:1px dashed rgba(47,125,79,.28);background:#fbfdf8}.reply-target{padding:10px 12px;border-radius:16px;background:#eef9e9;color:#245238;font-weight:800}.comments-panel{margin-top:18px}.comments-tree{display:grid;gap:14px}.comment-card{border:1px solid rgba(23,33,27,.08);border-radius:22px;padding:15px;background:rgba(255,255,255,.72);box-shadow:0 10px 28px rgba(24,33,27,.045)}.comment-card.depth-1{margin-left:22px;background:#fbfdf8}.comment-card.depth-2,.comment-card.depth-3{margin-left:28px;background:#fff}.comment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.comment-head b{display:flex;align-items:center;gap:6px}.comment-head small{display:block;color:var(--muted);font-weight:800;margin-top:2px}.comment-emoji{font-size:20px}.reply-link{font-size:13px;font-weight:900;color:#2f7d4f;text-decoration:none}.comment-card p{margin:12px 0 0;line-height:1.58}.comment-images{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.comment-images img{width:92px;height:92px;object-fit:cover;border-radius:16px;box-shadow:0 8px 20px rgba(24,33,27,.10)}.comment-children{display:grid;gap:12px;margin-top:12px}.video-frame{position:relative;overflow:hidden;border-radius:24px;background:#0d1510;box-shadow:0 18px 46px rgba(24,33,27,.15)}.video-frame:before{content:'';display:block;padding-top:56.25%}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-link-card{display:flex;align-items:center;gap:14px;padding:18px;border-radius:22px;background:#f5f9ef;color:#17211b;text-decoration:none}.video-link-card>span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#fff;box-shadow:0 12px 24px rgba(24,33,27,.10)}.video-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.video-list a{padding:9px 11px;border-radius:999px;background:#f5f9ef;color:#245238;font-weight:900;text-decoration:none}
@media(max-width:860px){.recipe-summary-grid-v2{grid-template-columns:1fr 1fr}.recipe-hero-media-v2,.hero-video-fallback{min-height:320px}.recipe-card-v2 .recipe-card-body-v2{min-height:auto}.recipe-media-thumb,.recipe-media-thumb img,.video-thumb-fallback{min-height:170px}.comment-card.depth-1,.comment-card.depth-2,.comment-card.depth-3{margin-left:10px}.comment-head{flex-direction:column}.recipe-feedback-layout{grid-template-columns:1fr!important}.hero-video-pill{left:12px;bottom:12px}.recipe-book-actions{display:flex;flex-wrap:wrap;gap:8px}}
@media(max-width:480px){.recipe-summary-grid-v2{grid-template-columns:1fr}.recipe-card-social span{font-size:11px}.comment-images img{width:78px;height:78px}.recipe-hero-media-v2,.hero-video-fallback{min-height:260px}}

/* Stage 47 — billing, checkout and manual payment flow */
.billing-v2-status{position:relative;overflow:hidden}.billing-v2-status:after{content:'';position:absolute;right:-70px;top:-70px;width:190px;height:190px;border-radius:50%;background:rgba(47,125,79,.07);pointer-events:none}.pending-payments-panel{border-color:rgba(245,179,1,.26);background:linear-gradient(135deg,#fffdf4,#ffffff)}.billing-invoice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.invoice-card{display:grid;gap:12px;padding:16px;border-radius:22px;border:1px solid rgba(23,33,27,.09);background:#fff;box-shadow:0 12px 32px rgba(24,33,27,.055)}.invoice-card small{font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.invoice-card h3{margin:4px 0 4px}.invoice-card p{margin:0;color:var(--muted)}.invoice-card>b{font-size:24px;color:#17211b}.period-preview-row{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.period-preview-row span{display:inline-flex;border-radius:999px;background:#f3f9ef;color:#365943;padding:7px 9px;font-size:12px;font-weight:900}.checkout-layout{align-items:start}.checkout-form,.checkout-summary,.invoice-detail-card{display:grid;gap:18px}.choice-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.choice-card{display:flex!important;align-items:center;gap:10px;padding:14px;border-radius:20px;border:1px solid rgba(23,33,27,.10);background:#fff;box-shadow:0 10px 24px rgba(24,33,27,.04);cursor:pointer;font-weight:900}.choice-card:hover{border-color:rgba(47,125,79,.3);transform:translateY(-1px)}.choice-card input{width:18px;height:18px;accent-color:#2f7d4f}.payment-method-cards{grid-template-columns:1fr}.small-section-head{margin-top:8px}.summary-price-card{padding:18px;border-radius:24px;background:linear-gradient(135deg,#eef9e9,#fff7d5);display:grid;gap:4px}.summary-price-card span{color:var(--muted);font-weight:900}.summary-price-card b{font-size:40px;line-height:1;color:#17211b}.summary-price-card small{font-weight:900;color:#22643f}.summary-price-card em{font-style:normal;color:var(--muted);text-decoration:line-through}.checkout-note,.payment-method-box,.invoice-text-box,.success-note{padding:16px;border-radius:22px;background:#f7fbf3;border:1px solid rgba(47,125,79,.10)}.checkout-note p,.payment-method-box p{margin:8px 0 0;color:var(--muted);line-height:1.55}.payment-method-box h3,.invoice-text-box h3{margin:0 0 8px}.payment-method-box pre,.invoice-text-box pre{white-space:pre-wrap;word-break:break-word;margin:10px 0 0;padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(23,33,27,.08);font:inherit;line-height:1.45;color:#25362b}.invoice-text-box pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.mini-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:12px}.mini-feature-grid span{display:flex;align-items:center;gap:8px;border-radius:18px;background:#f5f9ef;padding:12px;color:#3f5747;font-weight:900}.mini-feature-grid span:before{content:'✓';display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#2f7d4f;color:#fff;font-size:12px}.mini-feature-grid.vertical{grid-template-columns:1fr}.form-errors,.field-error{color:#a33131;font-weight:800}.success-note{background:#edf9ed;color:#225b3a;font-weight:900}.payment-row a{font-weight:900;color:#2f7d4f;text-decoration:none}.billing-roadmap{background:linear-gradient(135deg,#ffffff,#f3faf0)}
@media(max-width:760px){.choice-cards{grid-template-columns:1fr}.summary-price-card b{font-size:32px}.invoice-card{border-radius:18px}.billing-invoice-grid{grid-template-columns:1fr}}

/* Stage 48 — internal admin cabinet */
.admin-hero .actions,.admin-recipe-form .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.admin-card{padding:24px}.admin-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-quick-grid a{display:grid;gap:6px;min-height:118px;padding:18px;border-radius:24px;background:rgba(255,255,255,.72);border:1px solid rgba(23,33,27,.08);box-shadow:0 12px 30px rgba(24,33,27,.045)}.admin-quick-grid span{font-size:26px}.admin-quick-grid b{font-size:18px}.admin-quick-grid small,.admin-line small,.admin-recipe-row p{color:var(--muted);font-weight:800;line-height:1.4}.admin-status-list{display:grid;gap:10px}.admin-status-list div{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.admin-status-list div:last-child{border-bottom:0}.admin-status-list span{color:var(--muted);font-weight:800}.admin-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.admin-line:last-child{border-bottom:0}.admin-line.warn{background:rgba(255,250,225,.6);border-radius:18px;padding:13px;margin:4px 0;border-bottom:0}.admin-filter{margin-bottom:18px}.admin-recipe-row{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.admin-recipe-row:last-child{border-bottom:0}.admin-thumb{width:86px;height:74px;border-radius:22px;overflow:hidden;background:#eef9e9;display:grid;place-items:center;color:var(--brand);font-size:30px;font-weight:900}.admin-thumb img{width:100%;height:100%;object-fit:cover}.admin-recipe-row h3{margin:0 0 4px}.admin-recipe-row p{margin:0 0 10px}.admin-row-actions{display:grid;gap:8px}.admin-form-section{margin:0 0 26px;padding:0 0 22px;border-bottom:1px solid var(--line)}.admin-form-section:last-of-type{border-bottom:0}.admin-form-section h2{margin:0 0 16px;font-size:26px;letter-spacing:-.04em}.wide-field{grid-column:1/-1}.admin-recipe-form .checkbox-field{justify-content:flex-start}.admin-recipe-form ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.admin-recipe-form ul li{padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.7);border:1px solid var(--line);font-weight:800}.admin-recipe-form ul input{width:auto!important;margin-right:5px}.admin-stats small{display:block;margin-top:6px;color:var(--muted);font-weight:800}@media(max-width:900px){.admin-grid{grid-template-columns:1fr}.admin-quick-grid{grid-template-columns:1fr}.admin-recipe-row{grid-template-columns:70px minmax(0,1fr)}.admin-row-actions{grid-column:1/-1;display:flex;flex-wrap:wrap}.admin-thumb{width:70px;height:64px}.admin-line{grid-template-columns:1fr}.admin-line .btn{justify-self:start}.wide-field{grid-column:auto}}

/* stage49: recipe detail cleanup, star rating and home catalog */
.recipe-detail-clean{grid-template-columns:minmax(280px,420px) minmax(0,1fr);align-items:start;gap:34px;margin-top:10px;overflow:visible}.recipe-detail-clean .recipe-detail-media{width:100%;max-width:420px;min-height:0;aspect-ratio:1/1;position:relative;z-index:1;border-radius:34px;box-shadow:0 18px 46px rgba(24,33,27,.10)}.recipe-detail-clean .recipe-detail-media img{display:block;width:100%;height:100%;object-fit:cover}.recipe-detail-clean .hero-video-fallback{min-height:0;height:100%;width:100%;display:grid;place-items:center}.recipe-detail-intro{position:relative;z-index:2;min-width:0}.recipe-detail-intro h1{font-size:clamp(34px,4.2vw,58px);line-height:1.02;margin:8px 0 12px;letter-spacing:-.05em}.clean-rating-summary{display:flex;align-items:center;gap:12px;margin:14px 0 16px;padding:12px 14px;border-radius:22px;background:rgba(255,255,255,.64);border:1px solid rgba(23,33,27,.07);width:max-content;max-width:100%}.clean-rating-summary>div:last-child{display:grid;gap:2px}.display-stars{font-size:25px}.rating-stars.mini{font-size:14px;letter-spacing:1px}.rating-stars.micro{font-size:13px;letter-spacing:.5px;vertical-align:-1px}.rating-badge-stars{gap:5px}.card-stars-line{display:inline-flex!important;align-items:center;gap:6px}.recipe-feedback-clean{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.35fr);gap:22px;margin-top:22px;align-items:start}.rating-form-clean{gap:16px}.star-rating-input{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:5px;margin:2px 0 6px}.star-rating-input input{position:absolute;opacity:0;pointer-events:none}.star-rating-input label{font-size:38px;line-height:1;color:#d4d8cc;cursor:pointer;transition:transform .12s ease,color .12s ease;text-shadow:0 7px 18px rgba(24,33,27,.08)}.star-rating-input label:hover,.star-rating-input label:hover~label,.star-rating-input input:checked~label{color:#f5b301}.star-rating-input label:hover{transform:translateY(-1px) scale(1.05)}.emoji-picker{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}.emoji-picker input{position:absolute;opacity:0;pointer-events:none}.emoji-picker label{display:inline-flex;align-items:center;justify-content:center;min-width:46px;min-height:44px;padding:9px 12px;border-radius:16px;border:1px solid rgba(23,33,27,.1);background:#fff;color:#17211b;font-size:23px;font-weight:900;cursor:pointer;box-shadow:0 8px 20px rgba(24,33,27,.04);transition:.14s}.emoji-picker label span{font-size:13px;color:var(--muted);white-space:nowrap}.emoji-picker input:checked+label{border-color:rgba(47,125,79,.45);background:#eef9e8;box-shadow:0 0 0 4px rgba(82,189,112,.12)}.emoji-picker label:hover{transform:translateY(-1px)}.comment-form-clean .field>span,.rating-panel-clean .field>span{font-weight:900;color:#17211b}.comment-form-clean textarea,.rating-panel-clean textarea{min-height:108px}.rating-panel-clean textarea{min-height:84px}.home-catalog-hero{padding-bottom:16px}.home-catalog-hero h1{max-width:980px}.home-catalog-hero .lead,.home-catalog-hero p{max-width:850px}.home-seo-shortcuts{margin:12px 0 20px}.compact-category-grid{margin:6px 0 20px}.home-catalog-chips{margin-top:10px}.home-recipes-head{align-items:flex-end}.home-recipe-grid{margin-top:0}.home-seo-cluster{margin-top:28px}.service-benefits{margin:8px 0 26px}.recipe-card .rating-stars:before{pointer-events:none}.recipe-card .rating-stars span{pointer-events:none}
@media(max-width:980px){.recipe-detail-clean{grid-template-columns:minmax(240px,360px) minmax(0,1fr);gap:24px}.recipe-detail-clean .recipe-detail-media{max-width:360px}.recipe-feedback-clean{grid-template-columns:1fr}.recipe-detail-intro h1{font-size:clamp(31px,5vw,46px)}}
@media(max-width:860px){.recipe-detail-clean{grid-template-columns:1fr!important}.recipe-detail-clean .recipe-detail-media{max-width:none;aspect-ratio:1.28/1;border-radius:26px}.clean-rating-summary{width:100%;align-items:flex-start}.recipe-feedback-clean{grid-template-columns:1fr}.star-rating-input label{font-size:34px}.emoji-picker label{min-width:43px}.home-seo-shortcuts,.compact-category-grid{grid-template-columns:1fr 1fr!important}.home-recipes-head{display:grid}.recipe-detail-intro h1{font-size:34px}}
@media(max-width:520px){.home-seo-shortcuts,.compact-category-grid{grid-template-columns:1fr!important}.recipe-detail-clean .recipe-detail-media{aspect-ratio:1/1}.clean-rating-summary{display:grid}.star-rating-input label{font-size:31px}.recipe-summary-grid-v2{grid-template-columns:1fr!important}}


/* Stage 56 — compact home recipe shortcuts + fixed mobile menu default state */
.home-category-panel{
  margin:10px 0 14px;
  padding:14px;
  border:1px solid rgba(231,223,209,.75);
  border-radius:30px;
  background:linear-gradient(135deg,rgba(255,255,255,.56),rgba(246,251,241,.46));
  box-shadow:0 16px 42px rgba(24,33,27,.045);
}
.home-category-panel-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin:0 0 10px;
}
.home-category-panel-head .eyebrow{margin:0 0 3px;font-size:10px}
.home-category-panel-head h2{margin:0;font-size:22px;letter-spacing:-.035em}
.home-category-all{color:var(--brand);font-weight:900;white-space:nowrap;font-size:14px}
.home-seo-shortcuts,
.compact-category-grid{margin:0!important;gap:10px!important}
.home-seo-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))!important;margin-bottom:10px!important}
.compact-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.home-seo-shortcuts .category-card,
.compact-category-grid .category-card{
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-height:78px;
  padding:13px 15px!important;
  border-radius:21px!important;
  box-shadow:0 9px 24px rgba(24,33,27,.04)!important;
}
.home-seo-shortcuts .category-card:hover,
.compact-category-grid .category-card:hover{transform:translateY(-1px)}
.home-seo-shortcuts .category-card span,
.compact-category-grid .category-card span{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:#eef9e8;
  font-size:23px!important;
  grid-row:1 / span 2;
}
.home-seo-shortcuts .category-card h3,
.compact-category-grid .category-card h3{
  margin:0!important;
  font-size:15px;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.home-seo-shortcuts .category-card p,
.compact-category-grid .category-card p{
  font-size:13px;
  line-height:1.25!important;
  margin:2px 0 0!important;
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.home-catalog-chips{margin:8px 0 12px!important}.home-recipes-head{margin-top:22px!important}

@media(max-width:1080px){
  .site-header{flex-direction:row!important;align-items:center!important;position:sticky!important;top:0!important}
  .site-header .site-nav{display:none!important;position:absolute!important;left:10px!important;right:10px!important;top:calc(100% + 8px)!important;max-height:calc(100vh - 110px);overflow:auto;z-index:60}
  .site-header .site-nav.is-open{display:flex!important}
  .site-header .nav-toggle{display:inline-flex!important}
}
@media(max-width:920px){
  .home-seo-shortcuts,.compact-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:640px){
  .site-header .site-nav{display:none!important}.site-header .site-nav.is-open{display:flex!important}
  .home-category-panel{padding:11px;border-radius:24px;margin-top:6px}
  .home-category-panel-head{align-items:center;margin-bottom:8px}
  .home-category-panel-head h2{font-size:18px}.home-category-all{font-size:13px}
  .home-seo-shortcuts,.compact-category-grid{display:flex!important;gap:8px!important;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 2px 4px;margin-left:-2px!important;margin-right:-2px!important}
  .home-seo-shortcuts .category-card,.compact-category-grid .category-card{flex:0 0 172px;scroll-snap-align:start;min-height:70px;padding:11px 12px!important;border-radius:19px!important;grid-template-columns:34px minmax(0,1fr)}
  .home-seo-shortcuts .category-card span,.compact-category-grid .category-card span{width:34px;height:34px;border-radius:13px;font-size:20px!important}
  .home-seo-shortcuts .category-card h3,.compact-category-grid .category-card h3{font-size:14px}
  .home-seo-shortcuts .category-card p,.compact-category-grid .category-card p{font-size:12px}
  .home-recipes-head{margin-top:16px!important}
}

/* Stage 57 — visual Recipe Studio rows */
.visual-recipe-section .section-headline{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}
.visual-recipe-section .section-headline p,.visual-editor-head p,.helpline{margin:4px 0 0;color:var(--muted);font-weight:800;line-height:1.45}
.visual-editor-block{padding:18px;border:1px solid rgba(23,33,27,.08);border-radius:28px;background:rgba(255,255,255,.55);margin:16px 0;box-shadow:0 14px 32px rgba(24,33,27,.035)}
.visual-editor-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.visual-editor-head h3{margin:0;font-size:21px;letter-spacing:-.03em}.btn.small{padding:11px 15px;font-size:13px}.compact-check{margin:0 0 12px}.ingredient-rows,.step-rows{display:grid;gap:10px}.ingredient-row{display:grid;grid-template-columns:minmax(180px,1.4fr) 110px 92px minmax(120px,.8fr) minmax(160px,1fr) 90px 42px;gap:8px;align-items:end;padding:10px;border-radius:22px;background:#fff;border:1px solid rgba(23,33,27,.08)}.ingredient-row label,.step-row label{display:grid;gap:5px;margin:0;font-weight:900;color:#17211b}.ingredient-row label span,.step-row label span{font-size:12px;color:#68726a;text-transform:uppercase;letter-spacing:.04em}.ingredient-row input,.ingredient-row select,.step-row input,.step-row textarea{width:100%;border:1px solid rgba(23,33,27,.12);border-radius:16px;background:#fffaf3;padding:12px 12px;font-weight:850;color:#17211b;outline:none}.ingredient-row input:focus,.ingredient-row select:focus,.step-row input:focus,.step-row textarea:focus{border-color:rgba(47,125,79,.5);box-shadow:0 0 0 4px rgba(82,189,112,.12)}.mini-check{display:flex!important;align-items:center;gap:6px;align-self:center;font-size:13px;color:#68726a;text-transform:none!important;letter-spacing:0!important}.mini-check input{width:auto!important}.icon-btn{width:40px;height:40px;border-radius:15px;border:1px solid rgba(23,33,27,.1);background:#fff;display:grid;place-items:center;font-size:22px;line-height:1;font-weight:900;cursor:pointer}.icon-btn.danger{color:#9b2f2f}.icon-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(24,33,27,.08)}.step-row{display:grid;grid-template-columns:42px minmax(260px,1.5fr) 110px minmax(180px,1fr) minmax(180px,1fr) 42px;gap:10px;align-items:start;padding:12px;border-radius:24px;background:#fff;border:1px solid rgba(23,33,27,.08)}.step-number{width:38px;height:38px;border-radius:15px;background:linear-gradient(135deg,#2f9b63,#74c86e);color:#fff;display:grid;place-items:center;font-weight:950;box-shadow:0 12px 24px rgba(47,155,99,.18);margin-top:21px}.step-text textarea{min-height:94px;resize:vertical}.step-image-field small{color:var(--muted);font-size:12px;font-weight:800;text-transform:none;letter-spacing:0}.legacy-bulk-editor{margin-top:16px;padding:14px 16px;border-radius:22px;background:rgba(255,255,255,.54);border:1px dashed rgba(47,125,79,.26)}.legacy-bulk-editor summary{cursor:pointer;font-weight:950;color:#245238}.legacy-bulk-editor .form-grid{margin-top:14px}.compact-video-block{padding-bottom:12px}
@media(max-width:1120px){.ingredient-row{grid-template-columns:minmax(180px,1fr) 100px 82px minmax(120px,1fr);}.ingredient-row label:nth-of-type(5){grid-column:1/3}.ingredient-row .mini-check{grid-column:3/4}.ingredient-row .icon-btn{grid-column:4/5}.step-row{grid-template-columns:42px minmax(220px,1fr) 100px}.step-row label:nth-of-type(3),.step-row label:nth-of-type(4){grid-column:2/4}.step-row .icon-btn{grid-column:3/4;justify-self:end}}
@media(max-width:720px){.visual-editor-head{display:grid}.visual-editor-head .btn{justify-self:start}.ingredient-row,.step-row{grid-template-columns:1fr;gap:9px}.ingredient-row label:nth-of-type(5),.ingredient-row .mini-check,.ingredient-row .icon-btn,.step-row label:nth-of-type(3),.step-row label:nth-of-type(4),.step-row .icon-btn{grid-column:auto}.step-number{margin:0;width:34px;height:34px}.icon-btn{justify-self:start}.visual-editor-block{padding:13px;border-radius:22px}.ingredient-row,.step-row{padding:10px;border-radius:19px}}
