
:root{
 --bg:#FFF8F1;--surface:#FFFEFC;--ink:#2F211B;--muted:#806F66;--line:#F0DED4;
 --coral:#E86645;--coral2:#F08E65;--saffron:#F2B73D;--berry:#7A3D61;--plum:#533047;
 --peach:#FFD9C7;--cream:#FFF0E4;--rose:#F7E6EF;--success:#4E8C67;--warn:#B78216;--danger:#B84F48;
 --shadow:0 20px 55px rgba(82,46,32,.11);--soft:0 9px 26px rgba(82,46,32,.07);
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Tahoma,Arial,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh;overflow-x:hidden}
button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}.ambient{position:fixed;border-radius:50%;filter:blur(70px);opacity:.25;z-index:-1}.ambient-a{width:260px;height:260px;background:#FFB89B;right:-90px;top:-80px}.ambient-b{width:300px;height:300px;background:#D9B4CC;left:-140px;bottom:40px}
.boot{position:fixed;z-index:200;left:50%;top:16px;transform:translateX(-50%);background:#2F211B;color:white;border-radius:14px;padding:9px 14px;font-size:11px;box-shadow:var(--soft)}.fatal{padding:20px;background:#fee;color:#700}
.app-shell{max-width:980px;margin:auto;min-height:100vh}.topbar{height:74px;display:grid;grid-template-columns:1fr auto auto;gap:9px;align-items:center;padding:10px 16px;position:sticky;top:0;z-index:35;background:rgba(255,248,241,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(240,222,212,.7)}
.brand{display:flex;align-items:center;gap:9px;background:none;border:0;text-align:right}.brand-mark,.logo-orb{width:44px;height:44px;display:grid;place-items:center;border-radius:16px;color:white;background:linear-gradient(145deg,var(--coral),#C64D35);font-size:22px;font-weight:950;box-shadow:0 10px 24px rgba(232,102,69,.24)}.brand b{font-size:17px}.brand small{display:block;color:var(--muted);font-size:12px}.budget-pill{border:0;border-radius:16px;background:linear-gradient(135deg,#FFF0E7,#FBE8F0);padding:8px 12px;text-align:right;min-width:104px}.budget-pill small{font-size:12px;color:var(--muted);display:block}.budget-pill b{font-size:12px;color:var(--berry)}.round-icon{border:1px solid var(--line);background:rgba(255,255,255,.76);width:38px;height:38px;border-radius:13px;display:grid;place-items:center;font-weight:900}
.content{padding:10px 16px 108px}.view{display:none;animation:fade .22s ease}.view.active{display:block}@keyframes fade{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}
.bottom-nav{position:fixed;z-index:40;bottom:10px;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 24px));display:grid;grid-template-columns:repeat(4,1fr);padding:7px;background:rgba(255,255,255,.9);border:1px solid rgba(240,222,212,.8);border-radius:24px;box-shadow:0 18px 45px rgba(75,42,30,.15);backdrop-filter:blur(18px)}.nav-btn{border:0;background:none;border-radius:17px;padding:8px 4px;color:#9A877B;display:grid;gap:2px;place-items:center;font-size:12px}.nav-btn i{font-style:normal;font-size:18px}.nav-btn.active{background:linear-gradient(135deg,#FFF0E7,#F8EAF1);color:var(--coral);font-weight:900}
.eyebrow{text-transform:none;font-size:12px;letter-spacing:.2px;color:var(--coral);font-weight:900}.page-title{font-size:30px;line-height:1.15;margin:5px 0}.page-sub{font-size:12px;color:var(--muted);margin:0 0 16px;max-width:620px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 2px 9px}.section-head h2{font-size:16px;margin:0}.section-head button{border:0;background:none;color:var(--coral);font-size:12px;font-weight:900}
.hero{position:relative;overflow:hidden;background:linear-gradient(140deg,#6B3655,#8F4E6F 58%,#C86B59);color:white;border-radius:30px;padding:20px;box-shadow:0 24px 55px rgba(100,53,75,.2)}.hero:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(255,202,171,.13);left:-55px;top:-75px}.hero .kicker{font-size:12px;opacity:.76;font-weight:800}.hero h1{font-size:25px;line-height:1.35;margin:5px 0 10px;max-width:700px}.hero-chips{display:flex;gap:6px;flex-wrap:wrap}.chip{padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.13);font-size:12px}.hero-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.btn{border:0;border-radius:15px;padding:11px 14px;font-size:11px;font-weight:900;transition:.18s transform,.18s box-shadow}.btn:active{transform:scale(.98)}.btn.primary{background:linear-gradient(135deg,var(--coral),#D84E34);color:white;box-shadow:0 10px 24px rgba(232,102,69,.22)}.btn.light{background:white;color:var(--plum)}.btn.soft{background:#FFF0E8;color:#A74B35}.btn.berry{background:#F2E6EE;color:var(--berry)}.btn.full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}
.card{background:rgba(255,255,255,.87);border:1px solid var(--line);border-radius:24px;padding:15px;box-shadow:var(--soft);backdrop-filter:blur(10px)}.glass{background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(255,245,238,.8))}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{padding:12px;border-radius:18px;background:#FFF6F0;min-width:0}.stat:nth-child(2){background:#F7EEF4}.stat:nth-child(3){background:#FFF5D9}.stat small{font-size:12px;color:var(--muted);display:block}.stat b{display:block;margin-top:3px;font-size:16px}.stat .good{color:var(--success)}
.summary-banner{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:20px;background:linear-gradient(135deg,#FFF2E8,#F7EAF2);border:1px solid #F3DDD5;margin:10px 0}.summary-banner .icon{width:40px;height:40px;border-radius:14px;background:white;display:grid;place-items:center;font-size:20px;box-shadow:var(--soft)}.summary-banner b{font-size:12px;display:block}.summary-banner small{font-size:12px;color:var(--muted)}
.meal-strip{display:grid;grid-template-columns:repeat(5,minmax(108px,1fr));gap:8px;overflow:auto;padding-bottom:4px}.meal-mini{border:1px solid var(--line);background:white;border-radius:20px;padding:12px;text-align:right;min-height:128px;box-shadow:0 5px 16px rgba(77,43,31,.04)}.meal-mini.main{background:linear-gradient(145deg,#FFF8F3,#FFF0E6)}.meal-mini .meal-ico{font-size:20px}.meal-mini small{display:block;color:var(--muted);font-size:12px;margin:4px 0}.meal-mini b{font-size:11px;line-height:1.45;display:block}.microtag{display:inline-flex;margin-top:6px;border-radius:999px;padding:4px 6px;background:#F6EAF1;color:var(--berry);font-size:12px;font-weight:800}.microtag.gold{background:#FFF3D1;color:#896612}
.progress{height:7px;border-radius:99px;background:#F4E7E0;overflow:hidden}.progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--coral),var(--saffron));transition:.35s width}.progress.berry i{background:linear-gradient(90deg,var(--berry),#B57696)}
.day-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:5px}.day-tab{min-width:67px;border:1px solid var(--line);background:white;border-radius:17px;padding:9px 7px;text-align:center}.day-tab b{font-size:12px;display:block}.day-tab span{font-size:13px;font-weight:900;color:var(--coral)}.day-tab.active{background:linear-gradient(145deg,#FFF0E8,#F8EAF1);border-color:#F1B9A8;box-shadow:inset 0 0 0 1px rgba(232,102,69,.1)}
.timeline{position:relative;margin-top:10px}.timeline:before{content:"";position:absolute;right:17px;top:18px;bottom:20px;width:2px;background:#F1DDD2}.meal-card{position:relative;margin-right:36px;margin-bottom:9px;border-radius:22px;background:white;border:1px solid var(--line);padding:13px;box-shadow:0 6px 19px rgba(77,43,31,.045)}.meal-card:before{content:"";position:absolute;right:-25px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--coral);border:4px solid var(--bg)}.meal-card.snack:before{background:var(--saffron)}.meal-card.locked{box-shadow:inset 0 0 0 2px rgba(122,61,97,.18),0 6px 19px rgba(77,43,31,.045)}.meal-top{display:flex;gap:8px;justify-content:space-between}.meal-type{font-size:12px;color:var(--coral);font-weight:900}.meal-card h3{font-size:13px;margin:4px 0}.meal-card p{font-size:12px;color:var(--muted);margin:0}.actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.pill-btn{border:0;border-radius:11px;padding:7px 9px;background:#FFF1E9;color:var(--coral);font-size:12px;font-weight:900}.pill-btn.alt{background:#F4E8F0;color:var(--berry)}.pill-btn.gold{background:#FFF3D1;color:#86620B}
.insights{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.insight{padding:11px;border-radius:18px;background:#FFF8F3;border:1px solid #F2E2D9}.insight b{font-size:12px;display:flex;align-items:center;gap:6px}.insight small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.dot{width:8px;height:8px;border-radius:50%;background:var(--success)}.dot.warn{background:var(--saffron)}.dot.bad{background:var(--danger)}
.shopping-summary{display:grid;grid-template-columns:1.25fr .75fr;gap:8px}.shop-total{background:linear-gradient(135deg,var(--berry),#A05C7E);color:white;border-radius:24px;padding:16px;box-shadow:0 16px 32px rgba(122,61,97,.17)}.shop-total small{font-size:12px;opacity:.8}.shop-total b{display:block;font-size:27px;margin:3px 0}.ring-card{display:grid;place-items:center;background:white;border-radius:24px;border:1px solid var(--line);box-shadow:var(--soft)}.ring{--p:0;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--coral) calc(var(--p)*1%),#F2E6DF 0);position:relative}.ring:after{content:"";position:absolute;inset:8px;background:white;border-radius:50%}.ring b{position:relative;z-index:1;font-size:13px}.category{margin-top:12px}.category-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.category-head h3{font-size:13px;margin:0}.category-head span{font-size:12px;color:var(--muted)}.shop-item{width:100%;border:0;background:none;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 4px;border-bottom:1px solid #F5E9E2;text-align:right}.check{width:27px;height:27px;border-radius:9px;border:2px solid #E6D6CE;background:white;display:grid;place-items:center}.shop-item.done{opacity:.45;text-decoration:line-through}.shop-item.done .check{background:var(--coral);border-color:var(--coral);color:white}.shop-name b{font-size:11px;display:block}.shop-name small,.shop-qty small{font-size:12px;color:var(--muted)}.shop-qty{text-align:left}.shop-qty b{font-size:12px;display:block}
.member-card{width:100%;border:1px solid var(--line);background:white;border-radius:20px;padding:11px;display:flex;align-items:center;gap:10px;text-align:right;margin-bottom:7px;box-shadow:0 5px 14px rgba(77,43,31,.035)}.avatar{width:43px;height:43px;border-radius:15px;background:linear-gradient(145deg,#FFD5C2,#F7BDA5);display:grid;place-items:center;color:#8A432F;font-weight:950}.member-card:nth-of-type(even) .avatar{background:linear-gradient(145deg,#EFD8E6,#DBBED1);color:var(--berry)}.member-info{flex:1}.member-info b{font-size:12px}.member-info small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.empty{text-align:center;padding:32px 20px;border-radius:28px;background:white;border:1px solid var(--line);box-shadow:var(--soft)}.empty .emoji{font-size:42px}.empty h2{font-size:18px;margin:8px}.empty p{font-size:11px;color:var(--muted);max-width:410px;margin:0 auto 14px}
.modal{position:fixed;inset:0;z-index:80;display:none}.modal.open{display:flex}.onboarding{align-items:center;justify-content:center;padding:14px;background:linear-gradient(145deg,#FFF5ED,#F9E9E0 52%,#F1E3EC)}.on-card{width:min(610px,100%);background:rgba(255,255,255,.91);border:1px solid rgba(255,255,255,.9);border-radius:32px;padding:18px;box-shadow:0 30px 80px rgba(80,45,33,.18);backdrop-filter:blur(20px)}.on-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.on-head b{font-size:15px}.on-head small{font-size:12px;color:var(--muted);display:block}.on-head>span{font-size:12px;color:var(--muted);font-weight:900}.on-card>.progress{margin:14px 0 18px}.on-step h1{font-size:25px;line-height:1.22;margin:0 0 6px}.on-step>p{font-size:11px;color:var(--muted);margin:0 0 15px}.stepper{display:grid;grid-template-columns:1fr auto 40px auto;gap:7px;align-items:center;background:#FFF8F3;border-radius:18px;padding:11px;margin:7px 0}.stepper b{font-size:12px}.stepper small{display:block;color:var(--muted);font-size:12px}.round-step{width:33px;height:33px;border:0;border-radius:11px;background:white;box-shadow:var(--soft);font-size:18px}.count{font-weight:950;text-align:center}.on-actions{display:flex;gap:8px;justify-content:space-between;margin-top:16px}.budget-number{text-align:center;margin:13px}.budget-number b{font-size:42px;color:var(--coral)}.budget-number span{font-size:12px;color:var(--muted)}.range{width:100%;accent-color:var(--coral)}.quick-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}.quick-stat{background:#FFF6F0;border-radius:16px;padding:10px;text-align:center}.quick-stat:nth-child(2){background:#F7EDF3}.quick-stat b{display:block;font-size:13px}.quick-stat small{font-size:12px;color:var(--muted)}
.cuisine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cuisine-card{border:1px solid var(--line);background:white;border-radius:20px;padding:14px 10px;text-align:right;min-height:115px;transition:.18s}.cuisine-card:active{transform:scale(.98)}.cuisine-card.selected{border-color:#EEAE9C;box-shadow:inset 0 0 0 2px rgba(232,102,69,.1);background:#FFF7F2}.cuisine-emoji{font-size:26px}.cuisine-card b{font-size:12px;display:block;margin-top:7px}.cuisine-card small{font-size:12px;color:var(--muted);display:block;margin-top:3px}.blend-list{display:grid;gap:7px;margin-top:11px}.blend-card{border:1px solid var(--line);background:white;border-radius:16px;padding:10px;display:flex;justify-content:space-between;align-items:center;text-align:right}.blend-card b{font-size:12px}.blend-card small{font-size:12px;color:var(--muted)}.choice-summary{display:grid;gap:8px}.choice-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border-radius:17px;background:#FFF7F2;padding:11px}.choice-row:nth-child(even){background:#F7EDF3}.choice-row span{font-size:12px;color:var(--muted)}.choice-row b{font-size:11px;text-align:left}
.loader{align-items:center;justify-content:center;background:rgba(47,33,27,.36);backdrop-filter:blur(8px);padding:18px}.loader-card{width:min(390px,100%);background:white;border-radius:30px;padding:24px;text-align:center;box-shadow:var(--shadow)}.loader-orb{width:74px;height:74px;border-radius:25px;background:linear-gradient(145deg,var(--coral),var(--berry));display:grid;place-items:center;margin:0 auto 12px;animation:pulse 1.5s infinite}.loader-orb span{font-size:31px;font-weight:950;color:white}@keyframes pulse{50%{transform:scale(1.05);box-shadow:0 0 0 13px rgba(232,102,69,.08)}}.loader-card h2{font-size:20px;margin:0}.loader-card p{font-size:12px;color:var(--muted)}.loader-progress{height:7px;background:#F2E5DE;border-radius:99px;overflow:hidden;margin:14px 0}.loader-progress i{display:block;width:8%;height:100%;background:linear-gradient(90deg,var(--coral),var(--saffron));transition:.35s}.loader-stages{display:flex;justify-content:center;gap:4px;flex-wrap:wrap}.loader-stages span{font-size:12px;padding:5px 7px;border-radius:999px;background:#F8EFEA;color:var(--muted)}.loader-stages span.done{background:#EAF4ED;color:var(--success)}
.ready-modal{align-items:center;justify-content:center;padding:16px;background:rgba(47,33,27,.35);backdrop-filter:blur(8px)}.ready-card{position:relative;width:min(500px,100%);background:linear-gradient(150deg,#FFFDFC,#FFF2E9 62%,#F4E7EF);border-radius:32px;padding:24px;box-shadow:0 30px 80px rgba(74,42,30,.22);text-align:center}.close-x{position:absolute;left:14px;top:14px;border:0;background:white;width:34px;height:34px;border-radius:12px}.ready-icon{width:64px;height:64px;margin:0 auto 9px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,#65A078,#3E7D59);color:white;font-size:27px;box-shadow:0 12px 28px rgba(65,130,88,.2)}.ready-card h1{font-size:23px;margin:5px 0 14px}.ready-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;text-align:right}.ready-stat{padding:12px;border-radius:17px;background:white;box-shadow:0 4px 14px rgba(77,43,31,.04)}.ready-stat small{font-size:12px;color:var(--muted);display:block}.ready-stat b{font-size:15px}.ready-actions{display:flex;gap:8px;margin-top:15px}.ready-actions .btn{flex:1}
.sheet{align-items:flex-end;justify-content:center;background:rgba(47,33,27,.32);backdrop-filter:blur(5px)}.sheet-panel{width:min(900px,100%);max-height:88vh;overflow:auto;background:#FFFDFC;border-radius:30px 30px 0 0;padding:11px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -20px 60px rgba(55,30,22,.18);animation:up .23s ease}@keyframes up{from{transform:translateY(28px);opacity:.5}to{transform:none;opacity:1}}.handle{width:42px;height:5px;border-radius:99px;background:#E5D7CF;margin:0 auto 9px}.sheet-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:-11px;background:#FFFDFC;padding:7px 0;z-index:2}.sheet-head h2{font-size:18px;margin:0}.sheet-section{margin:13px 0}.sheet-section h3{font-size:12px;margin:0 0 7px}.note{padding:10px;border-radius:14px;background:#FFF5E9;color:#72594D;font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.input{width:100%;border:1px solid var(--line);background:white;border-radius:14px;padding:10px;font-size:11px}.meal-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.detail-stat{padding:9px;border-radius:15px;background:#FFF6F0;text-align:center}.detail-stat:nth-child(even){background:#F7EDF3}.detail-stat b{display:block;font-size:12px}.detail-stat small{font-size:12px;color:var(--muted)}.ingredient{display:flex;justify-content:space-between;gap:10px;padding:8px 2px;border-bottom:1px solid #F4E8E1;font-size:12px}.swap-option{border:1px solid var(--line);background:white;border-radius:19px;padding:12px;margin:7px 0}.swap-title{display:flex;justify-content:space-between;gap:7px}.swap-title h3{font-size:12px;margin:0}.swap-option p{font-size:12px;color:var(--muted);margin:5px 0}.option-row{display:flex;gap:6px;flex-wrap:wrap}.option{border:1px solid var(--line);background:white;border-radius:13px;padding:8px 10px;font-size:12px}.option.selected{background:#FFF0E8;color:var(--coral);border-color:#F0B7A6;font-weight:900}.nutrition-list{display:grid;gap:7px}.nut-row{display:grid;grid-template-columns:100px 1fr 45px;gap:7px;align-items:center;font-size:12px}.nut-bar{height:7px;background:#F2E6DF;border-radius:99px;overflow:hidden}.nut-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--coral),var(--saffron));border-radius:99px}.nut-row.good .nut-bar i{background:linear-gradient(90deg,#5C9971,#7AB28B)}.nut-row.warn .nut-bar i{background:linear-gradient(90deg,#D3A128,#F2C150)}.unit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.unit-card{border-radius:16px;padding:10px;background:#FFF6F0}.unit-card:nth-child(even){background:#F7EDF3}.unit-card small{font-size:12px;color:var(--muted)}.unit-card b{font-size:11px;display:block}
.toast{position:fixed;z-index:150;left:50%;bottom:96px;transform:translate(-50%,15px);opacity:0;background:#30221C;color:white;border-radius:14px;padding:9px 13px;font-size:12px;transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:660px){.content{padding-inline:12px}.topbar{padding-inline:12px}.page-title{font-size:27px}.meal-strip{grid-template-columns:repeat(5,112px)}.stats,.insights{grid-template-columns:1fr 1fr}.stats .stat:last-child,.insights .insight:last-child{grid-column:span 2}.cuisine-grid{grid-template-columns:1fr}.cuisine-card{min-height:auto;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.cuisine-card .cuisine-emoji{grid-row:span 2}.meal-detail-stats{grid-template-columns:repeat(2,1fr)}.shopping-summary{grid-template-columns:1.2fr .8fr}.form-grid{grid-template-columns:1fr}.ready-grid{grid-template-columns:1fr 1fr}}

/* v7.1 — guided flow / impact surfaces */
.step-kicker{display:inline-flex;padding:5px 8px;border-radius:999px;background:#FFF0E8;color:var(--coral);font-size:12px;font-weight:950;margin-bottom:8px}
.flow-hint{margin-top:10px;text-align:center;color:var(--muted);font-size:12px}
.budget-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}
.budget-presets button{border:1px solid var(--line);background:white;border-radius:17px;padding:10px 6px;box-shadow:0 4px 14px rgba(77,43,31,.035)}
.budget-presets b{display:block;font-size:12px}.budget-presets small{font-size:12px;color:var(--muted)}
.impact-card{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:18px;background:linear-gradient(135deg,#FFF2E8,#F7EAF2);border:1px solid #F1DDD5;margin-top:10px}
.impact-card>span{font-size:18px}.impact-card p{margin:0}.impact-card b{display:block;font-size:12px}.impact-card small{display:block;font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5}
.impact-card.strong{background:linear-gradient(135deg,#FFF0E6,#F4E4EE)}
.final-orb{width:150px;height:150px;border-radius:42px;margin:4px auto 14px;display:grid;place-items:center;align-content:center;background:radial-gradient(circle at 30% 25%,#FFF6E9 0,#F7DFD4 42%,#E8C9D8 100%);box-shadow:0 24px 60px rgba(122,61,97,.16);border:1px solid rgba(255,255,255,.9)}
.final-orb span{font-size:24px}.final-orb b{font-size:25px;color:var(--plum)}.final-orb small{font-size:12px;color:var(--muted)}
.mini-proof,.ready-proof{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:10px}
.mini-proof span,.ready-proof span{font-size:12px;border-radius:999px;padding:6px 8px;background:#FFF6F0;color:#8A5B49;border:1px solid #F0DED4}
.btn.glow{box-shadow:0 13px 30px rgba(232,102,69,.28),0 0 0 5px rgba(232,102,69,.055)}
.ready-stat em{display:block;font-style:normal;font-size:12px;color:var(--muted);margin-top:3px}
.ready-stat.hero-stat{background:linear-gradient(145deg,#FFF0E6,#F7E7EE)}
.nutrition-hero{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nutrition-hero>div{padding:13px;border-radius:18px;background:#FFF4EC}
.nutrition-hero>div:nth-child(2){background:#F6EAF2}.nutrition-hero small{font-size:12px;color:var(--muted);display:block}.nutrition-hero b{font-size:20px}
.member-nutrition{display:grid;gap:6px}.member-nut{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border-radius:15px;background:#FFF8F3;border:1px solid #F3E3DA}.member-nut:nth-child(even){background:#FAF0F5}
.member-nut b{display:block;font-size:12px}.member-nut small{font-size:12px;color:var(--muted)}.member-nut strong{font-size:12px;color:var(--berry)}
@media(hover:hover){.cuisine-card:hover,.blend-card:hover,.budget-presets button:hover,.meal-card:hover,.member-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(82,46,32,.09);border-color:#EECABA}}

.stat em,.nutrition-hero em{display:block;font-style:normal;font-size:12px;color:var(--muted);margin-top:3px}
.good{color:var(--success)!important}.warn{color:var(--warn)!important}.bad{color:var(--danger)!important}
.summary-banner.attention{background:linear-gradient(135deg,#FFF6DC,#FFF0E5);border-color:#F1D49B}
.summary-banner.risk{background:linear-gradient(135deg,#FFF0EC,#F9E2E3);border-color:#EAB8B5}

/* v7.2 — Dual planning routes + Meal Composer */
.path-hero{padding:18px 0}.path-hero>h2{font-size:25px;margin:6px 0}.path-hero>p{color:var(--muted);font-size:12px;line-height:1.6;max-width:620px}
.path-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.path-card{border:0;text-align:right;padding:18px;border-radius:27px;min-height:180px;display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden;box-shadow:0 18px 45px rgba(89,51,35,.09);transition:.2s transform,.2s box-shadow}
.path-card:before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;left:-35px;top:-55px;background:rgba(255,255,255,.35)}
.path-card.auto{background:linear-gradient(145deg,#FFEEE3,#FFD7C5);color:#633528}.path-card.manual{background:linear-gradient(145deg,#F7E8F0,#EED2E2);color:#60344F}
.path-card>span{font-size:30px;position:relative}.path-card b{font-size:18px;margin-top:auto}.path-card small{font-size:12px;line-height:1.55;opacity:.78;margin-top:4px}.path-card em{font-style:normal;font-size:12px;font-weight:900;margin-top:12px}
.quick-route{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.quick-route button{display:flex;align-items:center;gap:9px;text-align:right;border:1px solid #F0DDD4;background:linear-gradient(145deg,#FFF9F5,#FFF0E9);border-radius:18px;padding:10px 12px}.quick-route button:nth-child(2){background:linear-gradient(145deg,#FBF5F9,#F6E8F0)}.quick-route span{font-size:20px}.quick-route b{display:block;font-size:12px}.quick-route small{font-size:12px;color:var(--muted)}
.composer-modal{align-items:stretch!important;justify-content:stretch!important;background:rgba(47,30,24,.28);backdrop-filter:blur(18px);overflow:hidden!important;overscroll-behavior:none}
.composer-shell{width:min(920px,100%);height:100dvh;max-height:100dvh;margin:auto;background:linear-gradient(180deg,#FFF9F4,#FFFDFB);overflow:hidden;position:relative;display:flex;flex-direction:column;min-width:0;max-width:100vw}
.composer-head{position:relative;z-index:20;display:grid;grid-template-columns:42px minmax(0,1fr) 44px;gap:10px;align-items:center;padding:12px 16px;background:rgba(255,249,244,.96);backdrop-filter:blur(16px);border-bottom:1px solid rgba(232,209,197,.75);flex:0 0 auto;min-width:0;touch-action:none}
.composer-head h2{margin:0;font-size:18px}.composer-head small{font-size:12px;color:var(--muted)}.composer-brand{width:40px;height:40px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#EF8B67,#B95F6E);color:white;font-size:20px;font-weight:950;box-shadow:0 10px 25px rgba(185,95,110,.22)}
.composer-content{width:100%;max-width:900px;margin:0 auto;padding:14px 16px 128px;box-sizing:border-box;flex:1 1 auto;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y}.composer-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#F3EAE5;padding:4px;border-radius:15px;width:min(320px,100%);margin-bottom:12px}.composer-tabs button{border:0;background:transparent;border-radius:11px;padding:8px 13px;font-size:12px;font-weight:900}.composer-tabs button.active{background:white;box-shadow:0 5px 14px rgba(74,42,30,.08)}.composer-tabs b{background:#E98968;color:white;border-radius:999px;padding:1px 5px}
.composer-stage{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.75fr);gap:14px;align-items:start}.composer-main,.composer-insight{background:rgba(255,255,255,.78);border:1px solid rgba(235,214,202,.85);border-radius:27px;padding:16px;box-shadow:0 18px 50px rgba(91,56,39,.06)}.composer-insight{position:sticky;top:82px}
.composer-title-row{display:flex;justify-content:space-between;align-items:end;margin:8px 0}.composer-title-row h3{font-size:15px;margin:2px 0}.composer-title-row>small{font-size:12px;color:var(--muted)}.live-badge{font-size:12px;color:#A85A68;background:#F9EAF0;padding:6px 8px;border-radius:999px}
.meal-type-pills,.group-pills{display:flex;gap:6px;flex-wrap:wrap;overflow:visible;padding-bottom:4px;min-width:0}.meal-type-pills button,.group-pills button{white-space:nowrap;border:1px solid var(--line);background:white;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900}.meal-type-pills button.active,.group-pills button.active{background:#703E58;color:white;border-color:#703E58;box-shadow:0 7px 18px rgba(112,62,88,.18)}
.composer-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:15px;padding:7px 10px;margin:9px 0;background:#FFFCFA}.composer-search input{border:0;outline:0;background:transparent;width:100%;font:inherit;font-size:12px}
.food-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:none;overflow:visible;padding:2px;min-width:0}.food-option{border:1px solid #F0E2DB;background:white;border-radius:17px;padding:9px;text-align:right;display:grid;grid-template-columns:28px 1fr 18px;gap:7px;align-items:center;min-height:62px}.food-option.selected{border-color:#D37A62;background:#FFF3EC;box-shadow:inset 0 0 0 1px #D37A62}.food-icon{font-size:19px}.food-option b{display:block;font-size:12px}.food-option small{font-size:12px;color:var(--muted)}.food-option i{font-style:normal;font-size:16px;color:#C86755}
.selected-foods{display:grid;gap:6px;min-width:0}.selected-food{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:8px;background:#FFF8F3;border-radius:15px;padding:8px 9px;border:1px solid #F3E4DC;min-width:0}.selected-food>span{min-width:0;overflow-wrap:anywhere}.selected-food b{display:block;font-size:12px}.selected-food small{font-size:12px;color:var(--muted)}.mini-stepper{display:flex;align-items:center;gap:5px}.mini-stepper button,.remove-x{border:0;width:25px;height:25px;border-radius:9px;background:white;font-weight:900}.mini-stepper b{font-size:12px;min-width:28px;text-align:center}.remove-x{color:#B85A58;background:#FCECEA}.selection-empty{text-align:center;padding:20px;font-size:12px;color:var(--muted);border:1px dashed #E9D7CD;border-radius:16px}
.composer-score{display:grid;grid-template-columns:76px 1fr;gap:10px;align-items:center}.score-orb{width:72px;height:72px;border-radius:23px;display:grid;place-items:center;align-content:center;background:#FFF0E6;color:#9B5742}.score-orb.great{background:#E7F5ED;color:#38725A}.score-orb.good{background:#FFF4D7;color:#927226}.score-orb.warn{background:#FCE9E6;color:#A24B49}.score-orb b{font-size:24px;line-height:1}.score-orb small{font-size:12px}.composer-score h3{font-size:13px;margin:0}.composer-score p{font-size:12px;color:var(--muted);line-height:1.45}
.composer-money{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:11px 0}.composer-money>div{padding:9px;border-radius:14px;background:#FFF6F0}.composer-money>div:nth-child(2){background:#F8EEF3}.composer-money .risk{background:#FCE8E4}.composer-money small{display:block;font-size:12px;color:var(--muted)}.composer-money b{font-size:11px}
.budget-impact{margin:8px 0}.budget-impact>div{display:flex;justify-content:space-between;font-size:12px;font-weight:900}.budget-impact>i{display:block;height:6px;border-radius:999px;background:linear-gradient(90deg,#E97858,#E0A43E);margin-top:5px;max-width:100%}
.weakest-card{padding:10px;border-radius:17px;background:linear-gradient(145deg,#FFF2E9,#F8EAF1);margin:10px 0}.weakest-card span,.weakest-card strong,.weakest-card small{display:block}.weakest-card span{font-size:12px;color:var(--muted)}.weakest-card b{font-size:12px}.weakest-card strong{font-size:12px;color:#9F5362;margin-top:2px}.weakest-card small{font-size:12px;color:var(--muted)}
.nut-mini-bars{display:grid;gap:6px}.nut-mini-bars>div{display:grid;grid-template-columns:70px 1fr 32px;gap:6px;align-items:center;font-size:12px}.nut-mini-bars i{height:6px;background:#F1E8E3;border-radius:999px;overflow:hidden}.nut-mini-bars em{display:block;height:100%;background:linear-gradient(90deg,#D9705A,#B76379);border-radius:999px}.nut-mini-bars b{text-align:left}
.smart-add{margin-top:12px}.smart-add>button{width:100%;border:1px solid #F0DDD4;background:#FFFAF6;border-radius:15px;padding:8px;display:grid;grid-template-columns:26px 1fr;gap:7px;text-align:right;margin-top:5px}.smart-add>button:first-of-type{background:linear-gradient(145deg,#FFF0E5,#F7E8F0);border-color:#EBCABD}.smart-add b{display:block;font-size:12px}.smart-add small{font-size:12px;color:var(--muted)}
.composer-footer{position:fixed;bottom:0;left:50%;right:auto;transform:translateX(-50%);z-index:25;width:min(900px,100vw);max-width:100vw;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,250,246,.97);backdrop-filter:blur(18px);border-top:1px solid #EAD9D0;overflow:hidden}.composer-name label{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}.composer-footer-actions{display:flex;gap:7px;align-items:end}.saved-meals{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.saved-meal{background:white;border:1px solid var(--line);border-radius:21px;padding:13px}.saved-meal h3{font-size:12px;margin:5px 0}.saved-meal p{font-size:12px;color:var(--muted)}.danger-soft{color:#A64F4D!important;background:#FDECE9!important}
.featured-option{background:linear-gradient(145deg,#FFF0E6,#F5E5EF)!important;border-color:#EFCDBF!important}
@media(max-width:780px){.composer-stage{grid-template-columns:1fr}.composer-insight{position:static}.food-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.composer-footer{grid-template-columns:1fr}.composer-footer-actions{display:grid;grid-template-columns:1fr 1fr}.path-grid{grid-template-columns:1fr}.saved-meals{grid-template-columns:1fr}}
@media(max-width:430px){.food-grid{grid-template-columns:1fr}.composer-content{padding-left:10px;padding-right:10px}.composer-main,.composer-insight{padding:12px;border-radius:22px}.composer-money{grid-template-columns:1fr 1fr}.composer-money>div:nth-child(3){grid-column:1/-1}.composer-footer{padding-left:10px;padding-right:10px}.composer-footer-actions{grid-template-columns:1fr 1fr}.meal-type-pills button,.group-pills button{flex:1 1 auto}}

.texture-note{margin-top:7px;padding:8px 10px;border-radius:14px;background:#FFF5DC;color:#7C6326;font-size:12px;line-height:1.5;border:1px solid #F0D89D}
.composer-target label{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
.composer-target{min-width:140px}
@media(min-width:781px){.composer-footer{grid-template-columns:minmax(180px,1fr) 150px auto}}

.mode-choice{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0 16px}.mode-choice button{border:1px solid var(--line);background:#FFFDFC;border-radius:18px;padding:10px;text-align:right;display:grid;grid-template-columns:27px 1fr;column-gap:7px}.mode-choice button.active{background:linear-gradient(145deg,#FFF0E6,#F6E7EF);border-color:#E3AC9B;box-shadow:0 9px 22px rgba(155,86,72,.10)}.mode-choice span{font-size:19px;grid-row:1/3}.mode-choice b{font-size:12px}.mode-choice small{font-size:12px;color:var(--muted)}


/* v7.3 UX Excellence layer */
:root{--tap:44px}
button,[role="button"]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(185,95,110,.25);outline-offset:2px}
.bottom-nav .nav-btn,.round-icon,.pill-btn,.btn{min-height:44px}
.view{animation:viewIn .18s ease both}@keyframes viewIn{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:none}}
.toast.undoable{cursor:pointer;padding-inline:18px}.toast.undoable:after{content:"تراجع";font-weight:950;margin-inline-start:12px;text-decoration:underline}
.tiny-muted{font-size:12px;color:var(--muted);margin-top:5px}
.shop-item-row{display:grid;grid-template-columns:46px 1fr;align-items:stretch;border-top:1px solid #F2E7E1;min-height:66px}.shop-item-row:first-of-type{border-top:0}.shop-item-row.done{opacity:.48}.shop-check{border:0;background:transparent;display:grid;place-items:center;min-width:44px}.shop-main{border:0;background:transparent;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;text-align:right;padding:10px 4px 10px 8px;width:100%}.shop-main .shop-name em{display:block;font-style:normal;font-size:12px;color:#A55E70;margin-top:3px}.shop-main .shop-qty{text-align:left}
.member-card-v2{background:white;border:1px solid var(--line);border-radius:21px;margin-bottom:9px;overflow:hidden;box-shadow:0 9px 22px rgba(89,51,35,.045)}.member-main{width:100%;border:0;background:transparent;display:grid;grid-template-columns:42px 1fr 20px;gap:9px;align-items:center;text-align:right;padding:11px}.member-inline{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #F2E7E1}.member-inline button{border:0;border-inline-start:1px solid #F2E7E1;background:#FFFDFC;padding:8px 5px;min-height:48px}.member-inline button:first-child{border-inline-start:0}.member-inline small,.member-inline b{display:block}.member-inline small{font-size:12px;color:var(--muted)}.member-inline b{font-size:12px;margin-top:2px}.editable-stat{border:0;background:transparent;border-radius:14px}.editable-stat:hover{background:#FFF5EF}.editable-stat em{display:block;font-style:normal;font-size:12px;color:#A55E70}
.direct-edit{text-align:center}.direct-edit h3{font-size:17px;margin:5px 0}.direct-edit p{font-size:12px;color:var(--muted)}.direct-stepper{display:grid;grid-template-columns:52px 1fr 52px;gap:8px;align-items:center;margin:18px 0}.direct-stepper button{height:52px;border:0;border-radius:16px;background:#FFF0E8;font-size:22px;font-weight:950}.direct-stepper b{font-size:20px}.direct-edit>.input{font-size:16px;text-align:center;margin-bottom:10px}
.mini-stepper b{min-width:92px;font-size:12px;white-space:nowrap}.selected-food{grid-template-columns:1fr auto 30px}
.sheet-panel,.composer-shell{overscroll-behavior:contain}.sheet-panel:before{content:"اسحبي لأسفل للإغلاق";display:block;text-align:center;font-size:12px;color:var(--muted);margin-top:-2px;margin-bottom:3px;opacity:.7}
@media(max-width:520px){.member-inline{grid-template-columns:repeat(2,1fr)}.member-inline button:nth-child(3),.member-inline button:nth-child(4){border-top:1px solid #F2E7E1}.shop-main{grid-template-columns:1fr auto}.bottom-nav{padding-bottom:max(7px,env(safe-area-inset-bottom))}.content{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* v8.0 Food Universe */
.universe-hero{padding:4px 2px 14px}.universe-hero h3{font-size:24px;margin:6px 0}.universe-hero p{color:var(--muted);line-height:1.7}.universe-search{display:flex;gap:8px;position:sticky;top:0;background:var(--bg,#fffaf5);padding:8px 0;z-index:2}.universe-search input{flex:1;min-height:48px;border:1px solid rgba(0,0,0,.1);border-radius:16px;padding:0 14px;font:inherit}.universe-search button,.filter-chip{min-height:44px;border:0;border-radius:999px;padding:0 15px;background:#f1ebe4;font:inherit;font-weight:700}.filter-scroll{display:flex;gap:8px;overflow:auto;padding:5px 0;scrollbar-width:none}.filter-chip{white-space:nowrap}.filter-chip.active{background:#1e4b3d;color:white}.universe-count{font-size:12px;color:var(--muted);padding:10px 2px}.universe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.universe-card{text-align:right;border:1px solid rgba(0,0,0,.07);border-radius:18px;padding:14px;background:white;min-height:112px;display:flex;flex-direction:column;gap:6px;justify-content:center}.universe-card span{font-size:11px;color:#9a6d38}.universe-card b{font-size:15px;line-height:1.4}.universe-card small{color:var(--muted);line-height:1.4}@media(max-width:390px){.universe-grid{grid-template-columns:1fr}}


/* v8.0B — dynamic discovery + direct manipulation */
.day-navigator{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;align-items:center;margin-bottom:8px}.day-navigator>button{width:44px;height:44px;border:0;border-radius:15px;background:#fff;border:1px solid var(--line);font-size:25px}.day-navigator>span{text-align:center}.day-navigator small,.day-navigator b{display:block}.day-navigator small{font-size:12px;color:var(--muted)}.day-navigator b{font-size:14px;margin-top:2px}
.hero-title{display:block;border:0;background:transparent;color:inherit;font:inherit;font-size:clamp(25px,6vw,42px);font-weight:950;text-align:right;padding:2px 0 8px;width:100%}.hero-title:active,.meal-name-tap:active{transform:scale(.99)}.hero-chips .chip{border:1px solid rgba(255,255,255,.26);cursor:pointer}.hero-chips button.chip:hover{background:rgba(255,255,255,.17)}
.meal-name-tap{border:0;background:transparent;text-align:right;padding:2px 0;font:inherit;font-size:16px;font-weight:950;color:inherit;min-height:36px}.meal-meta-taps{display:flex;gap:5px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px}.meal-meta-taps button{border:0;background:#FFF4EC;border-radius:999px;padding:5px 8px;color:inherit;font:inherit;font-size:12px;min-height:30px}
.universe-shortcuts{display:flex;gap:7px;overflow:auto;margin-top:12px;scrollbar-width:none}.universe-shortcuts button{border:0;border-radius:14px;min-height:40px;padding:0 12px;background:#f3ece7;font:inherit;font-weight:800;white-space:nowrap}.universe-shortcuts button.active{background:#1e4b3d;color:#fff}.universe-shortcuts b{font-size:12px;margin-inline-start:3px}.universe-count{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.universe-count b{font-size:15px;color:var(--text)}.universe-count span{font-size:12px}
.universe-card{position:relative;padding:0!important;overflow:hidden;min-height:126px}.universe-card.validated{border-color:#cfe3d8;box-shadow:0 10px 26px rgba(44,101,76,.07)}.universe-main{border:0;background:transparent;width:100%;height:100%;min-height:126px;text-align:right;padding:14px 44px 14px 14px;display:flex;flex-direction:column;gap:6px;justify-content:center;font:inherit;color:inherit}.universe-main span{font-size:11px;color:#9a6d38}.universe-main b{font-size:15px;line-height:1.45}.universe-main small{font-size:12px;color:var(--muted);line-height:1.45}.fav-btn{position:absolute;top:10px;left:10px;width:36px;height:36px;border:0;border-radius:12px;background:#fff4ef;font-size:22px;display:grid;place-items:center;color:#a26b63}.fav-btn.active{background:#f8e4e7;color:#b84f67}.universe-empty{grid-column:1/-1;padding:34px 18px;text-align:center;background:#fff;border:1px dashed var(--line);border-radius:20px}.universe-empty b,.universe-empty span{display:block}.universe-empty span{color:var(--muted);margin-top:5px;font-size:11px}
.dish-detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.fav-detail{border:0;border-radius:14px;padding:9px 12px;background:#fff0ec;font:inherit;font-weight:900}.fav-detail.active{background:#f8e4e7;color:#ae4962}.verified-badge,.discovery-badge{border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900}.verified-badge{background:#e8f5ed;color:#397157}.discovery-badge{background:#fff4d9;color:#876922}.dish-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.dish-facts button{border:1px solid var(--line);border-radius:16px;background:#fff;padding:11px;text-align:right;min-height:72px}.dish-facts small,.dish-facts b{display:block}.dish-facts small{font-size:12px;color:var(--muted)}.dish-facts b{font-size:11px;margin-top:5px}
@media(max-width:520px){.dish-facts{grid-template-columns:1fr}.universe-main{min-height:112px}.universe-card{min-height:112px}}

.stat-tap,.insight-tap,.card-tap{border:0;font:inherit;color:inherit;text-align:right;cursor:pointer}.stat-tap{background:transparent;width:100%;border-radius:14px}.stat-tap:active,.insight-tap:active,.card-tap:active{transform:scale(.99)}.insight-tap{width:100%;background:inherit}.shop-total.card-tap,.ring-card.card-tap{background:inherit}.stat-tap em{display:block;font-size:12px;color:#a55e70;font-style:normal;margin-top:3px}
/* v8.0G Phase7 — Pantry & component UX */
.section-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.section-actions button{min-height:40px}
.support-row{gap:12px;align-items:center}.support-row>span:first-child{display:flex;flex-direction:column;gap:3px}.support-row small{color:var(--muted,#746d66);font-size:.74rem}.support-pantry-input{width:92px!important;padding:7px!important}
.universe-card.validated .universe-main small{font-weight:650}
@media(max-width:390px){.section-actions{gap:5px}.section-actions button{font-size:.78rem;padding-inline:8px}.support-row{align-items:flex-start;flex-direction:column}.support-row>span:last-child{width:100%;display:flex;justify-content:flex-end;align-items:center;gap:6px}}

/* YEKFI v8.0H — Phase 8 Meal Ecosystem */
.ecosystem-inline{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 2px}.eco-chip{border:1px dashed var(--line,#d7d7d7);background:rgba(255,255,255,.62);border-radius:999px;padding:7px 10px;font-size:12px;min-height:38px}.eco-chip.filled{border-style:solid;background:rgba(245,247,242,.95);font-weight:700}.ecosystem-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}.ecosystem-slot{border:1px solid var(--line,#ddd);border-radius:16px;background:rgba(255,255,255,.78);padding:12px;text-align:right;width:100%}.ecosystem-slot.empty{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;border-style:dashed;min-height:74px}.ecosystem-slot.empty span{font-size:23px;grid-row:1/3}.ecosystem-slot.empty b,.ecosystem-slot.empty small{display:block}.ecosystem-slot.filled{padding:0;overflow:hidden}.ecosystem-main{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;width:100%;padding:12px;text-align:right}.ecosystem-main span{font-size:22px;grid-row:1/3}.ecosystem-main b,.ecosystem-main small{display:block}.eco-actions{display:flex;gap:8px;padding:0 12px 12px}.eco-actions button{flex:1;border:0;border-radius:12px;padding:9px;background:rgba(0,0,0,.055);min-height:40px}.meal-card .ecosystem-inline{padding-inline:2px}.meal-card .eco-chip{background:rgba(255,255,255,.78)}
@media(min-width:620px){.ecosystem-grid{grid-template-columns:repeat(3,1fr)}}


/* =========================================================
   YEKFI BRAND UI SYSTEM v1.0
   Visual-only layer. No application logic is changed.
   Primary: Olive Green #3F4B34
   Accent: Apricot Gold #D4A047
   ========================================================= */
:root{
  --brand-olive:#3F4B34;
  --brand-olive-2:#556344;
  --brand-deep:#242A1E;
  --brand-gold:#D4A047;
  --brand-gold-hi:#F2C56B;
  --brand-gold-soft:#F4E3BE;
  --brand-cream:#F7F2E8;
  --brand-paper:#FFFCF6;
  --brand-sand:#EEE5D5;
  --brand-ink:#23261F;
  --brand-muted:#727568;

  /* Map legacy theme tokens into the approved brand system */
  --bg:var(--brand-cream);
  --surface:var(--brand-paper);
  --ink:var(--brand-ink);
  --muted:var(--brand-muted);
  --line:#DDD4C3;
  --coral:var(--brand-gold);
  --coral2:var(--brand-gold-hi);
  --saffron:#C79735;
  --berry:var(--brand-olive);
  --plum:var(--brand-deep);
  --peach:#F2D9AD;
  --cream:#F7F2E8;
  --rose:#E9E4D8;
  --success:#4F7857;
  --warn:#A97716;
  --danger:#B6524C;
  --shadow:0 22px 55px rgba(35,42,30,.12);
  --soft:0 8px 24px rgba(35,42,30,.075);
}

html{background:var(--brand-cream)}
body{
  background:
    radial-gradient(circle at 92% 0%,rgba(212,160,71,.09),transparent 24rem),
    radial-gradient(circle at 0% 80%,rgba(63,75,52,.055),transparent 30rem),
    var(--brand-cream);
  color:var(--brand-ink);
  font-family:"SF Arabic","Noto Sans Arabic",Tahoma,Arial,Inter,system-ui,-apple-system,sans-serif;
}
::selection{background:rgba(212,160,71,.28);color:var(--brand-deep)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(212,160,71,.32);outline-offset:2px
}

/* Branded launch experience */
.brand-splash{
  position:fixed;inset:0;z-index:9999;display:grid;place-items:center;
  background:
    radial-gradient(circle at 50% 38%,rgba(242,197,107,.13),transparent 17rem),
    linear-gradient(150deg,#313929 0%,#242A1E 58%,#171B14 100%);
  animation:yekfiSplash 1.75s cubic-bezier(.4,0,.2,1) forwards;
}
.brand-splash-inner{text-align:center;transform:translateY(-2vh)}
.splash-logo{
  width:min(210px,40vw);height:auto;display:block;margin:0 auto 22px;
  filter:drop-shadow(0 22px 35px rgba(0,0,0,.3));
  animation:yekfiLogoEnter .8s cubic-bezier(.2,.85,.25,1) both;
}
.splash-wordmark{width:min(230px,44vw);height:auto;filter:brightness(0) invert(1);opacity:.96}
.splash-tagline{color:var(--brand-gold-hi);font-size:17px;font-weight:800;margin-top:13px;letter-spacing:.05px}
.splash-en{color:rgba(255,255,255,.55);font-size:12px;margin-top:6px;letter-spacing:.45px}
@keyframes yekfiLogoEnter{from{opacity:0;transform:scale(.86) translateY(10px)}to{opacity:1;transform:none}}
@keyframes yekfiSplash{
  0%,66%{opacity:1;visibility:visible}
  100%{opacity:0;visibility:hidden;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){
  .brand-splash{animation-duration:.7s}.splash-logo{animation:none}
}

/* Decorative ambient changed from pink/purple to brand atmosphere */
.ambient-a{background:rgba(212,160,71,.32);opacity:.18}
.ambient-b{background:rgba(63,75,52,.25);opacity:.16}

/* App chrome */
.app-shell{max-width:980px}
.topbar{
  height:78px;padding:9px 14px;
  background:rgba(247,242,232,.91);
  border-bottom:1px solid rgba(63,75,52,.10);
  box-shadow:0 7px 24px rgba(36,42,30,.045);
  backdrop-filter:blur(22px) saturate(1.08);
}
.brand{gap:9px;padding:0;min-width:0}
.brand-icon{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(36,42,30,.18))}
.brand-copy{display:grid;gap:1px;justify-items:start;direction:ltr}
.brand-wordmark{width:82px;height:20px;object-fit:contain;object-position:left center}
.brand-copy small{
  color:var(--brand-olive);font-size:12px;font-weight:800;direction:rtl;
  opacity:.78;white-space:nowrap
}
.brand-mark{display:none}
.budget-pill{
  background:linear-gradient(145deg,#FFF9ED,#F1DFC0);
  border:1px solid rgba(212,160,71,.25);
  box-shadow:0 5px 15px rgba(83,64,31,.06)
}
.budget-pill small{color:#77705F}
.budget-pill b{color:var(--brand-deep)}
.round-icon{
  border-color:rgba(63,75,52,.14);
  background:rgba(255,252,246,.85);
  color:var(--brand-deep);
  box-shadow:0 3px 10px rgba(36,42,30,.04)
}
.round-icon:active{background:var(--brand-sand)}

/* Navigation: quiet by default, brand only on selected state */
.bottom-nav{
  background:rgba(255,252,246,.94);
  border-color:rgba(63,75,52,.12);
  box-shadow:0 18px 46px rgba(36,42,30,.16);
}
.nav-btn{color:#8A8B82}
.nav-btn.active{
  color:var(--brand-gold-hi);
  background:linear-gradient(145deg,var(--brand-olive),var(--brand-deep));
  box-shadow:0 7px 16px rgba(36,42,30,.15)
}
.nav-btn.active i{filter:saturate(.8)}
.eyebrow{color:#9B7324}
.section-head button{color:#8E6920}

/* Hero is the strongest brand surface, not every card */
.hero{
  background:
    radial-gradient(circle at 10% 10%,rgba(242,197,107,.12),transparent 14rem),
    linear-gradient(140deg,#556344 0%,#3F4B34 52%,#242A1E 100%);
  color:#FFFDF7;
  border:1px solid rgba(242,197,107,.18);
  box-shadow:0 26px 58px rgba(36,42,30,.22);
}
.hero:after{background:rgba(212,160,71,.10)}
.chip{background:rgba(255,255,255,.10);border:1px solid rgba(242,197,107,.12)}
.btn.primary{
  background:linear-gradient(135deg,var(--brand-gold-hi),var(--brand-gold));
  color:#2D301F;
  box-shadow:0 10px 24px rgba(170,116,24,.20);
}
.btn.primary:hover{box-shadow:0 12px 28px rgba(170,116,24,.27)}
.btn.light{background:#FFFDF7;color:var(--brand-deep)}
.btn.soft{background:#F0E5D0;color:#5F552F}
.btn.berry{background:#E5E9DE;color:var(--brand-olive)}

/* Surface system: white/cream, restrained brand border */
.card,.meal-mini,.meal-card,.member-card,.ring-card,.empty{
  background:rgba(255,252,246,.94);
  border-color:rgba(63,75,52,.10);
  box-shadow:0 7px 22px rgba(36,42,30,.055);
}
.glass{background:linear-gradient(145deg,rgba(255,253,248,.96),rgba(246,240,228,.87))}
.stat{background:#F3ECDC}
.stat:nth-child(2){background:#E8EDDF}
.stat:nth-child(3){background:#F5E3BC}
.stat b{color:var(--brand-deep)}
.summary-banner{
  background:linear-gradient(135deg,#F6EBCF,#E9EDDF);
  border-color:rgba(63,75,52,.09)
}
.summary-banner .icon{background:#FFFDF7}
.meal-mini.main{background:linear-gradient(145deg,#FFFDF7,#F5E7CA)}
.microtag{background:#E5EBDD;color:var(--brand-olive)}
.microtag.gold{background:#F5E4BA;color:#765316}

/* Indicators */
.progress{background:#E9E2D5}
.progress i{background:linear-gradient(90deg,var(--brand-olive-2),var(--brand-gold))}
.progress.berry i{background:linear-gradient(90deg,var(--brand-deep),var(--brand-olive-2))}
.day-tab{border-color:rgba(63,75,52,.10);background:#FFFDF8}
.day-tab span,.meal-type{color:#916A21}
.day-tab.active{
  background:linear-gradient(145deg,#F6E8C6,#E7ECD9);
  border-color:rgba(212,160,71,.42);
  box-shadow:inset 0 0 0 1px rgba(212,160,71,.13)
}
.timeline:before{background:#DDD6C9}
.meal-card:before{background:var(--brand-gold);border-color:var(--brand-cream)}
.meal-card.snack:before{background:var(--brand-olive-2)}
.meal-card.locked{box-shadow:inset 0 0 0 2px rgba(63,75,52,.14),0 6px 19px rgba(36,42,30,.05)}
.pill-btn{background:#F1E5C9;color:#795718}
.pill-btn.alt{background:#E5EBDD;color:var(--brand-olive)}
.pill-btn.gold{background:#F5E4BA;color:#765316}
.insight{background:#FBF7EF;border-color:rgba(63,75,52,.09)}

/* Shopping: premium olive total with gold progress */
.shop-total{
  background:
    radial-gradient(circle at 0 0,rgba(242,197,107,.12),transparent 10rem),
    linear-gradient(145deg,var(--brand-olive-2),var(--brand-deep));
  color:white;box-shadow:0 17px 35px rgba(36,42,30,.18)
}
.ring{background:conic-gradient(var(--brand-gold) calc(var(--p)*1%),#E8E1D5 0)}
.shop-item{border-bottom-color:#ECE6DA}
.shop-item.done .check{background:var(--brand-olive);border-color:var(--brand-olive)}
.check{border-color:#D8D0C2}

/* Family */
.avatar{
  background:linear-gradient(145deg,#F1D9A8,#D8B665);color:#4D452D
}
.member-card:nth-of-type(even) .avatar{
  background:linear-gradient(145deg,#DCE4D1,#B8C5A7);color:var(--brand-olive)
}

/* Onboarding is light, calm and clearly branded */
.onboarding{
  background:
    radial-gradient(circle at 75% 15%,rgba(212,160,71,.17),transparent 23rem),
    radial-gradient(circle at 5% 90%,rgba(63,75,52,.11),transparent 26rem),
    linear-gradient(145deg,#FBF6EC,#EFE8DA);
}
.on-card{
  background:rgba(255,252,246,.95);
  border-color:rgba(255,255,255,.88);
  box-shadow:0 30px 80px rgba(36,42,30,.16)
}
.logo-orb{
  background:none!important;box-shadow:none!important;border-radius:0!important;
  width:48px!important;height:48px!important
}
.logo-orb img{width:48px;height:48px;display:block}
.stepper,.choice-row,.quick-stat{background:#F5EFE3}
.quick-stat:nth-child(2),.choice-row:nth-child(even){background:#E9EDE1}
.budget-number b{color:var(--brand-olive)}
.range{accent-color:var(--brand-gold)}
.cuisine-card.selected{
  border-color:rgba(212,160,71,.50);
  box-shadow:inset 0 0 0 2px rgba(212,160,71,.10);
  background:#FFF9EC
}

/* Generation loader: logo becomes the focal brand animation */
.loader{background:rgba(24,29,20,.48)}
.loader-card{background:#FFFDF8}
.loader-orb{
  width:82px;height:82px;border-radius:24px;background:none;box-shadow:none;
  animation:yekfiPulse 1.55s infinite
}
.loader-orb img{width:82px;height:82px;display:block;filter:drop-shadow(0 11px 16px rgba(36,42,30,.18))}
@keyframes yekfiPulse{50%{transform:scale(1.035);filter:brightness(1.03)}}
.loader-progress{background:#E7E1D6}
.loader-progress i{background:linear-gradient(90deg,var(--brand-olive),var(--brand-gold-hi))}
.loader-stages span{background:#F1EBDD}
.loader-stages span.done{background:#DDE9DB;color:#426548}

/* Ready confirmation */
.ready-modal{background:rgba(24,29,20,.42)}
.ready-card{
  background:
    radial-gradient(circle at 50% 0,rgba(212,160,71,.10),transparent 16rem),
    linear-gradient(150deg,#FFFDF8,#F2EBDC 70%,#E9EDDF);
}
.ready-icon{background:none;box-shadow:none;width:68px;height:68px}
.ready-icon img{width:68px;height:68px}
.ready-stat{background:#FFFDF8}

/* Sheets and form elements */
.sheet{background:rgba(24,29,20,.35)}
.sheet-panel,.sheet-head{background:#FFFCF6}
.handle{background:#CFC6B8}
.note{background:#F5E8CB;color:#665B40}
.input{background:#FFFDF9;border-color:#DCD4C6}
.input:focus{border-color:var(--brand-gold)}
.detail-stat{background:#F3EDDF}
.detail-stat:nth-child(even){background:#E8EDDF}
.ingredient{border-bottom-color:#EAE3D7}

/* Composer brand */
.composer-brand{
  background:none!important;box-shadow:none!important;color:transparent!important;
  width:48px!important;height:48px!important;border-radius:0!important
}
.composer-brand img{width:48px;height:48px;display:block}

/* Preserve warning/danger semantic colors; everything else follows brand */
.danger,.bad{color:var(--danger)}
.good{color:var(--success)}

/* Avoid brand saturation on desktop: content stays calm, chrome does the branding */
@media(min-width:720px){
  .content{padding-top:14px}
  .card{box-shadow:0 9px 28px rgba(36,42,30,.06)}
}
@media(max-width:460px){
  .brand-wordmark{width:72px}
  .brand-copy small{font-size:12px}
  .budget-pill{min-width:94px;padding:7px 9px}
}


/* =========================================================
   YEKFI VISUAL HARMONY + CONTRAST HARDENING v1.1
   Goal: premium brand presence without olive/gold saturation.
   ========================================================= */
:root{
  --brand-muted:#62675A;        /* >= 5.2:1 on cream */
  --brand-gold-text:#765316;    /* >= 6.2:1 on cream */
  --brand-border:rgba(63,75,52,.14);
  --brand-surface:#FFFCF6;
  --brand-surface-soft:#F3EEE3;
}

/* Gold is an accent/material, not body copy on light cards */
.eyebrow,.section-head button,.meal-type,.day-tab span{color:var(--brand-gold-text)}
.card,.stat,.summary-banner,.meal-mini,.meal-card,.insight,.member-card,.member-card-v2,
.quick-stat,.choice-row,.detail-stat,.unit-card,.universe-card,.ecosystem-slot,.support-card{
  color:var(--brand-ink)
}
.card small,.stat small,.summary-banner small,.meal-mini small,.meal-card p,.insight small,
.member-info small,.shop-name small,.shop-qty small,.tiny-muted,.quick-stat small,.choice-row span,
.detail-stat small,.field label,.universe-card small,.ecosystem-slot small{
  color:var(--brand-muted)
}

/* Clean card hierarchy: 90% neutral, 10% branded emphasis */
.card,.meal-card,.meal-mini,.member-card,.member-card-v2,.universe-card,.ecosystem-slot{
  background:var(--brand-surface);
  border:1px solid var(--brand-border);
}
.stat{background:#F4EFE5}
.stat:nth-child(2){background:#EBEFE4}
.stat:nth-child(3){background:#F4E7C9}
.summary-banner{background:#F2EBDD;border-color:var(--brand-border)}
.summary-banner.attention{background:#F6E9C7;border-color:rgba(167,119,22,.24)}
.summary-banner.risk{background:#F8E8E2;border-color:rgba(182,82,76,.24)}
.summary-banner.package-note{
  background:linear-gradient(135deg,#F6E9C7,#EEF0E6);
  border:1px solid rgba(212,160,71,.34)
}
.summary-banner.package-note .icon{
  background:var(--brand-olive);color:var(--brand-gold-hi);
  box-shadow:none
}

/* Dark brand surfaces must carry only high-contrast light/gold content */
.hero,.shop-total,.nav-btn.active{
  color:#FFFDF7
}
.hero .kicker,.hero p,.hero small,.hero .chip,.shop-total small,.shop-total span{
  color:rgba(255,253,247,.82)
}
.hero .eyebrow{color:var(--brand-gold-hi)}
.shop-total .microtag.gold{
  background:rgba(255,255,255,.11);
  color:#FFF7E6;
  border:1px solid rgba(242,197,107,.24)
}
.nav-btn.active span,.nav-btn.active i{color:var(--brand-gold-hi)}

/* Primary actions: dark olive text on gold gives stronger contrast than white */
.btn.primary{color:var(--brand-deep)}
.btn.soft{color:#514B3B}
.pill-btn{color:var(--brand-gold-text)}
.pill-btn.alt{color:var(--brand-olive)}
.pill-btn.gold{color:#624712}

/* Interactive light surfaces */
.round-icon,.day-tab,.input,.blend-card,.cuisine-card,.shop-item-row{
  color:var(--brand-ink)
}
.input::placeholder{color:#7C8074}
.input,select.input,textarea.input{border-color:#D4CBBB}
.input:focus{box-shadow:0 0 0 3px rgba(212,160,71,.14)}

/* Header: unify icon, wordmark and budget into one visual language */
.topbar{
  border-bottom:1px solid rgba(63,75,52,.12);
}
.brand-icon{width:46px;height:46px}
.brand-wordmark{filter:none}
.budget-pill{
  color:var(--brand-deep);
  border-color:rgba(212,160,71,.30);
}
.budget-pill b{font-weight:900}

/* Shopping budget status */
.shop-total b{color:#FFFDF7}
.shop-total{border:1px solid rgba(242,197,107,.16)}
.ring-card .tiny-muted{color:var(--brand-muted)}
.ring b{color:var(--brand-deep)}

/* Ready state */
.ready-proof{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:11px}
.ready-proof span{
  background:#E7ECDF;color:#3D563F;border:1px solid rgba(79,120,87,.16);
  padding:6px 8px;border-radius:999px;font-size:12px;font-weight:800
}
.ready-stat{color:var(--brand-ink)}
.ready-stat em{color:var(--brand-muted);font-size:12px;font-style:normal}

/* Onboarding: selected state reads clearly without large color blocks */
.cuisine-card.selected{color:var(--brand-deep)}
.cuisine-card.selected b{color:var(--brand-deep)}
.range{accent-color:#B98227}

/* Semantic colors remain semantic and never get converted to brand gold */
.good,.positive{color:#356846!important}
.warn,.attention-text{color:#7A5A18!important}
.bad,.negative,.danger{color:#A3423D!important}

/* Reduce decorative noise: no competing gradients on secondary cards */
.glass{background:rgba(255,252,246,.96)}
.quick-stat,.choice-row,.detail-stat{box-shadow:none}

/* Stronger typography hierarchy */
.page-title{color:var(--brand-deep);font-weight:900;letter-spacing:-.35px}
.section-head h2{color:var(--brand-deep);font-weight:900}
.page-sub{color:var(--brand-muted);line-height:1.75}
.card h2,.card h3,.meal-card h3,.category-head h3{color:var(--brand-deep)}

/* Small-screen branding stays elegant rather than crowded */
@media(max-width:390px){
  .brand-icon{width:40px;height:40px}
  .brand-wordmark{width:66px;height:17px}
  .brand-copy small{display:none}
  .topbar{grid-template-columns:1fr auto auto;gap:6px}
}


/* =========================================================
   YEKFI HOME STOCK — Shopping Experience v1.3
   ========================================================= */
.shopping-mode-switch{
  display:grid;grid-template-columns:1fr 1fr;gap:4px;
  padding:4px;margin:4px 0 14px;
  background:#EAE4D8;border:1px solid rgba(63,75,52,.10);
  border-radius:17px;
}
.shopping-mode-switch button{
  min-height:42px;border:0;border-radius:13px;background:transparent;
  color:var(--brand-muted);font-size:11px;font-weight:850;
}
.shopping-mode-switch button.active{
  background:var(--brand-surface);color:var(--brand-deep);
  box-shadow:0 5px 14px rgba(36,42,30,.09);
}
.home-summary-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 12px
}
.home-summary-card{
  min-width:0;padding:13px 11px;border-radius:19px;
  background:var(--brand-surface);border:1px solid var(--brand-border);
  box-shadow:0 6px 18px rgba(36,42,30,.045)
}
.home-summary-card.primary{
  background:linear-gradient(145deg,#4E5C40,#313A2A);
  border-color:rgba(242,197,107,.16);color:#FFFDF7
}
.home-summary-card small{display:block;font-size:12px;color:var(--brand-muted);line-height:1.4}
.home-summary-card.primary small,.home-summary-card.primary em{color:rgba(255,253,247,.72)}
.home-summary-card b{display:block;font-size:19px;margin:4px 0;color:inherit}
.home-summary-card em{display:block;font-style:normal;font-size:12px;color:var(--brand-muted);line-height:1.45}

.home-filter-bar{
  display:flex;gap:6px;overflow:auto;padding:3px 0 8px;scrollbar-width:none
}
.home-filter-bar::-webkit-scrollbar{display:none}
.home-filter-bar button{
  flex:0 0 auto;border:1px solid var(--brand-border);background:var(--brand-surface);
  color:var(--brand-muted);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:850
}
.home-filter-bar button.active{
  background:var(--brand-olive);border-color:var(--brand-olive);color:#FFFDF7
}
.home-stock-toolbar{
  min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:3px 2px 6px;color:var(--brand-muted);font-size:12px
}
.home-stock-toolbar b{color:var(--brand-deep);font-size:11px}
.home-stock-toolbar button{
  border:0;background:none;color:var(--brand-gold-text);font-weight:900;font-size:12px
}

.home-stock-list{padding:5px 12px}
.home-stock-row{
  display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;align-items:center;
  padding:10px 0;border-bottom:1px solid #ECE5D9
}
.home-stock-row:last-child{border-bottom:0}
.home-stock-check{
  width:30px;height:30px;border-radius:10px;border:1.5px solid rgba(63,75,52,.22);
  background:#F8F4EB;color:var(--brand-olive);display:grid;place-items:center;
  font-weight:950
}
.home-stock-check:active{background:#E8EEDF}
.home-stock-main{display:flex;align-items:center;justify-content:space-between;gap:9px;min-width:0}
.home-stock-main>div:first-child{min-width:0}
.home-stock-main b{display:block;font-size:11px;color:var(--brand-deep)}
.home-stock-main small{display:block;font-size:12px;color:var(--brand-muted);margin-top:2px}
.home-stock-main em{display:block;font-size:12px;color:#777166;font-style:normal;margin-top:3px;line-height:1.45}
.home-stock-value{flex:0 0 auto;text-align:left}
.home-stock-value b{font-size:12px}
.home-stock-value small{font-size:12px;color:var(--brand-gold-text)}

.home-stock-group{
  background:var(--brand-surface);border:1px solid var(--brand-border);
  border-radius:20px;padding:10px 12px;margin-bottom:9px;
  box-shadow:0 5px 17px rgba(36,42,30,.035)
}
.home-house-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;
  border-top:1px solid #ECE5D9;padding:8px 0
}
.home-house-row:first-of-type{border-top:0}
.home-house-row.disabled{opacity:.56}
.home-house-main{
  border:0;background:none;padding:2px 0;display:flex;align-items:center;
  justify-content:space-between;gap:8px;text-align:right;min-width:0
}
.home-house-main>span:first-child{min-width:0}
.home-house-main b{display:block;font-size:12px;color:var(--brand-deep)}
.home-house-main small{display:block;margin-top:3px;font-size:12px;color:var(--brand-muted);line-height:1.4}
.home-mini-action{
  min-width:58px;min-height:32px;padding:5px 7px;border-radius:10px;
  border:1px solid rgba(63,75,52,.12);background:#F4EFE5;
  color:var(--brand-olive);font-size:12px;font-weight:900
}
.home-status{
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  border-radius:999px;padding:5px 7px;font-size:12px;font-weight:900;white-space:nowrap
}
.home-status.enough{background:#E4EDDF;color:#3C6842}
.home-status.due{background:#F6E1DC;color:#994840}
.home-status.soon{background:#F5E7C5;color:#765618}
.home-status.unknown{background:#EEE9DF;color:#686A62}
.home-status.off{background:#ECEBE7;color:#777872}

.home-empty{
  padding:24px 16px;border:1px dashed rgba(63,75,52,.18);border-radius:20px;
  background:rgba(255,252,246,.65);text-align:center;margin:8px 0
}
.home-empty span{font-size:25px;display:block;margin-bottom:5px}
.home-empty b{font-size:11px;color:var(--brand-deep);display:block}
.home-empty small{display:block;font-size:12px;color:var(--brand-muted);margin-top:4px}

.home-item-head{
  display:flex;justify-content:space-between;align-items:center;
  margin:4px 0 13px
}
.home-item-head small{color:var(--brand-muted);font-size:12px}
.home-inline-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}
.home-inline-actions .btn{padding:10px 7px;font-size:12px}
.home-principle{margin-top:14px}

@media(max-width:520px){
 .home-summary-grid{grid-template-columns:1fr 1fr}
 .home-summary-card.primary{grid-column:1/-1}
}
@media(max-width:370px){
 .home-stock-main{align-items:flex-start}
 .home-stock-value{max-width:72px}
 .home-inline-actions{grid-template-columns:1fr}
}

.home-toolbar-actions{display:flex;align-items:center;gap:8px}
.home-toolbar-actions button{white-space:nowrap}
.setup-home{width:100%;text-align:right;border:1px solid rgba(212,160,71,.26);cursor:pointer}
.home-setup-list{display:grid;gap:7px;margin-top:10px}
.home-setup-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;
  padding:10px;border-radius:15px;background:#F7F2E8;border:1px solid rgba(63,75,52,.10)
}
.home-setup-row b{display:block;font-size:12px;color:var(--brand-deep)}
.home-setup-row small{display:block;font-size:12px;color:var(--brand-muted);margin-top:2px}
.home-setup-row>div{display:flex;gap:4px}
.home-setup-row button{
  border:1px solid rgba(63,75,52,.12);background:#FFFDF8;color:var(--brand-olive);
  border-radius:9px;padding:6px 7px;font-size:12px;font-weight:850
}
.home-setup-row button:nth-child(2){color:#8B5E18}
.home-setup-row button:nth-child(3){color:#74756F}
@media(max-width:430px){
 .home-setup-row{grid-template-columns:1fr}
 .home-setup-row>div{display:grid;grid-template-columns:repeat(3,1fr)}
 .home-stock-toolbar{align-items:flex-start}
 .home-toolbar-actions{gap:4px;flex-wrap:wrap;justify-content:flex-end}
}


/* =========================================================
   v1.4 — Weekly total contrast + shopping hierarchy
   ========================================================= */
.premium-total-wrap{
  grid-template-columns:minmax(0,1fr) 92px;
  gap:9px;
  align-items:stretch;
  margin:9px 0 12px;
}
.premium-total{
  position:relative;
  overflow:hidden;
  min-height:124px;
  display:flex!important;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  text-align:right;
  padding:17px 18px!important;
  border-radius:24px!important;
  background:
    radial-gradient(circle at 12% 10%,rgba(242,197,107,.18),transparent 9rem),
    linear-gradient(145deg,#4B5940 0%,#34402E 55%,#242A1E 100%)!important;
  border:1px solid rgba(242,197,107,.24)!important;
  box-shadow:0 18px 36px rgba(36,42,30,.19)!important;
}
.premium-total::after{
  content:"";
  position:absolute;inset:auto -28px -54px auto;
  width:120px;height:120px;border-radius:50%;
  border:1px solid rgba(242,197,107,.13);
}
.premium-total .total-kicker{
  display:block;color:#F4E2B8!important;
  font-size:12px;font-weight:900;letter-spacing:.1px;
}
.premium-total .total-amount{
  display:block;color:#FFFDF7!important;
  font-size:31px!important;line-height:1.1;
  margin:5px 0 6px!important;font-weight:950;
}
.premium-total .total-sub{
  display:inline-flex;
  color:#FFF8E8!important;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(242,197,107,.20);
  border-radius:999px;padding:5px 8px;
  font-size:12px;font-weight:850;
}
.premium-total .total-detail{
  display:block;color:rgba(255,253,247,.75)!important;
  font-size:12px;margin-top:7px;line-height:1.45
}
.premium-progress{
  min-height:124px;padding:10px 5px;
  background:#FFFDF8!important;
  border:1px solid rgba(63,75,52,.14)!important;
}
.premium-progress .ring{width:64px;height:64px}
.premium-progress .ring b{color:var(--brand-deep)!important}
.premium-progress small{
  display:block;text-align:center;color:#62675A!important;
  line-height:1.45;font-weight:800
}
@media(max-width:390px){
 .premium-total-wrap{grid-template-columns:minmax(0,1fr) 82px}
 .premium-total{padding:15px!important}
 .premium-total .total-amount{font-size:28px!important}
 .premium-progress .ring{width:58px;height:58px}
}


/* =========================================================
   YEKFI CONSUMER EXPERIENCE HARDENING — P0 v1.5
   Typography / touch / store execution / launch speed
   ========================================================= */
:root{
 --cx-body:16px;
 --cx-secondary:14px;
 --cx-caption:12px;
 --cx-title:28px;
 --cx-section:19px;
 --cx-touch:44px;
}

/* Operational typography floor. Explicit overrides intentionally win
   over legacy micro-type without forcing icon geometry to grow. */
.content,.sheet,.modal{font-size:var(--cx-body);line-height:1.48}
.page-title{font-size:var(--cx-title)!important;line-height:1.22!important;letter-spacing:-.25px}
.page-sub{font-size:var(--cx-secondary)!important;line-height:1.6!important}
.eyebrow{font-size:var(--cx-caption)!important;letter-spacing:.1px!important}
.section-head h2,.category-head h3{font-size:var(--cx-section)!important;line-height:1.3!important}
.section-head button,.section-actions button,.category-head span,
.summary-banner small,.note,.tiny-muted,.field label,
.shop-name small,.shop-name em,.shop-qty small,
.home-stock-main small,.home-stock-main em,.home-house-main small,
.home-summary-card small,.home-summary-card em,.home-stock-toolbar,
.home-status,.home-mini-action,.home-filter-bar button,
.shopping-mode-switch button,.total-kicker,.total-sub,.total-detail,
.member-info small,.member-inline small,.stat small,.stat em{
 font-size:var(--cx-caption)!important;line-height:1.45!important;
}
.summary-banner b,.shop-name b,.home-stock-main b,.home-house-main b,
.member-info b,.member-inline b{font-size:15px!important;line-height:1.35!important}
.shop-qty b{font-size:17px!important}
.brand-copy small{font-size:11px!important}
.bottom-nav .nav-btn span{font-size:12px!important}
.budget-pill small{font-size:11px!important}
.budget-pill b{font-size:15px!important}

/* 44px minimum hit area for operational controls */
button,.btn,.nav-btn,.day-tab,.shopping-mode-switch button,
.home-filter-bar button,.home-mini-action,.shop-check,.shop-main,
.section-actions button,.section-head>button,.home-stock-check,
.home-house-main,.home-setup-row button{
 min-height:var(--cx-touch);
}
.round-icon{min-width:var(--cx-touch);min-height:var(--cx-touch)}
.shop-check{min-width:48px;width:48px;height:48px;border-radius:15px}
.shop-check .check{width:27px;height:27px}
.shop-item-row{grid-template-columns:48px minmax(0,1fr);gap:11px;padding:12px 0}
.shop-main{padding:6px 0}
.home-stock-check{width:44px;height:44px}
.home-stock-row{grid-template-columns:44px minmax(0,1fr)}
.section-actions{gap:5px;flex-wrap:wrap}
.section-actions button{padding:8px 10px}

/* Faster brand launch: enough to register identity, never blocks daily use */
.brand-splash{animation:yekfiSplashFast .42s ease-out forwards!important}
.splash-logo{animation:none!important}
@keyframes yekfiSplashFast{
 0%,36%{opacity:1;visibility:visible}
 100%{opacity:0;visibility:hidden;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){
 .brand-splash{animation-duration:.16s!important}
}

/* Dedicated store execution mode */
.store-mode-cta{
 width:100%;min-height:70px;margin:4px 0 14px;padding:12px 15px;
 display:grid;grid-template-columns:42px minmax(0,1fr) 22px;gap:10px;align-items:center;
 text-align:right;border:1px solid rgba(63,75,52,.16);border-radius:20px;
 background:#FFFDF8;color:var(--brand-deep);
 box-shadow:0 7px 18px rgba(36,42,30,.055)
}
.store-mode-cta>span:first-child{font-size:24px}
.store-mode-cta b{display:block;font-size:16px}
.store-mode-cta small{display:block;font-size:12px;color:var(--brand-muted);margin-top:2px}
.store-mode-cta strong{font-size:22px;color:var(--brand-gold-text)}

.store-mode-head{
 position:sticky;top:0;z-index:20;margin:-12px -14px 8px;padding:10px 14px;
 min-height:64px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;
 background:rgba(247,242,232,.97);border-bottom:1px solid var(--brand-border);
 backdrop-filter:blur(18px)
}
.store-mode-head>span{text-align:center}
.store-mode-head>span b{display:block;font-size:16px;color:var(--brand-deep)}
.store-mode-head>span small{display:block;font-size:12px;color:var(--brand-muted)}
.store-exit{
 min-height:44px;border:0;background:#FFFDF8;border-radius:13px;
 padding:7px 10px;color:var(--brand-olive);font-size:13px;font-weight:900
}
.store-total{font-size:18px;color:var(--brand-deep);white-space:nowrap}
.store-search{
 display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:6px;align-items:center;
 margin:8px 0 7px;padding:5px 6px 5px 10px;background:#FFFDF8;
 border:1px solid var(--brand-border);border-radius:16px
}
.store-search>span{font-size:22px;color:var(--brand-muted);text-align:center}
.store-search input{
 min-width:0;height:44px;border:0;outline:0;background:transparent;
 color:var(--brand-deep);font:inherit;font-size:16px
}
.store-search button{
 min-height:40px;border:0;border-radius:11px;padding:7px 10px;
 background:#EEE9DF;color:var(--brand-muted);font-size:12px;font-weight:850
}
.store-search button.active{background:var(--brand-olive);color:#FFFDF7}
.store-progress{height:5px;border-radius:99px;background:#E6E1D6;overflow:hidden;margin:0 1px 12px}
.store-progress span{display:block;height:100%;background:var(--brand-gold);border-radius:inherit}
.store-category{margin-bottom:12px}
.store-category .category-head{min-height:46px}
.store-category .shop-item-row{min-height:74px}
.store-category .shop-name b{font-size:17px!important}
.store-category .shop-name small{font-size:13px!important;margin-top:3px}
.store-category .shop-name em{font-size:12px!important;margin-top:4px}
.store-category .shop-qty b{font-size:18px!important}
.store-category .shop-qty small{font-size:13px!important}

/* Weekly hero readability after typography reset */
.premium-total .total-kicker{font-size:12px!important}
.premium-total .total-amount{font-size:32px!important}
.premium-total .total-sub{font-size:12px!important}
.premium-total .total-detail{font-size:12px!important}
.premium-progress small{font-size:12px!important}

@media(max-width:390px){
 :root{--cx-body:15px;--cx-secondary:13px;--cx-caption:12px;--cx-title:25px;--cx-section:18px}
 .store-mode-head{grid-template-columns:auto 1fr}
 .store-total{grid-column:1/-1;text-align:center;margin-top:-4px}
 .store-search{grid-template-columns:26px minmax(0,1fr)}
 .store-search button{grid-column:1/-1;width:100%}
}


/* =========================================================
   YEKFI CX HARDENING — P1 v1.6
   Simplification / hierarchy / restrained iconography
   ========================================================= */
.today-status-line{
 display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:2px 0 12px
}
.today-status-line>span{
 display:inline-flex;min-height:34px;align-items:center;padding:6px 10px;
 border-radius:999px;background:#F0EBE1;color:var(--brand-muted);
 font-size:12px;font-weight:800
}
.today-status-line button{
 margin-inline-start:auto;border:0;background:none;color:var(--brand-gold-text);
 font-size:12px;font-weight:900;padding:6px 8px
}

/* Main overflow menu: fewer choices at first glance */
.menu-primary{display:grid;gap:8px}
.menu-route{
 width:100%;min-height:62px;display:grid;grid-template-columns:40px minmax(0,1fr);
 align-items:center;gap:10px;text-align:right;padding:10px 12px;
 border:1px solid var(--brand-border);border-radius:17px;background:#FFFDF8;color:var(--brand-deep)
}
.menu-route.featured{background:#F1E4C8;border-color:rgba(212,160,71,.28)}
.menu-route .ui-icon{
 width:36px;height:36px;display:grid;place-items:center;border-radius:11px;
 background:#ECE8DD;color:var(--brand-olive);font-size:18px;font-weight:900
}
.menu-route b{display:block;font-size:15px}
.menu-route small{display:block;font-size:12px;color:var(--brand-muted);margin-top:2px}
.advanced-menu{margin-top:10px;border-top:1px solid var(--brand-border);padding-top:8px}
.advanced-menu>summary{
 min-height:44px;display:flex;align-items:center;cursor:pointer;
 color:var(--brand-muted);font-size:13px;font-weight:850
}
.advanced-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-bottom:4px}
.advanced-actions button{
 border:1px solid var(--brand-border);border-radius:12px;background:#F7F2E8;
 color:var(--brand-deep);font-size:12px;font-weight:800;padding:8px
}

/* Meal cards: two immediate decisions, everything else secondary */
.meal-actions-primary{
 display:grid;grid-template-columns:1fr 1fr 48px;gap:7px;align-items:center;margin-top:10px
}
.meal-actions-primary>.pill-btn{min-height:46px;font-size:13px!important}
.meal-more{position:relative}
.meal-more>summary{
 list-style:none;min-width:48px;min-height:46px;display:grid;place-items:center;
 border:1px solid var(--brand-border);border-radius:13px;background:#F7F2E8;
 color:var(--brand-deep);font-size:18px;font-weight:900;cursor:pointer
}
.meal-more>summary::-webkit-details-marker{display:none}
.meal-more>div{
 position:absolute;z-index:12;left:0;top:50px;width:170px;padding:6px;
 background:#FFFDF8;border:1px solid var(--brand-border);border-radius:14px;
 box-shadow:0 14px 30px rgba(36,42,30,.15)
}
.meal-more>div button{
 width:100%;min-height:44px;border:0;background:transparent;text-align:right;
 color:var(--brand-deep);font-size:13px;font-weight:800;border-radius:9px;padding:7px 9px
}
.meal-more>div button:active{background:#F1ECE2}

/* Inline secondary actions do not compete with primary routes */
.inline-more{position:relative}
.inline-more>summary{
 list-style:none;min-height:44px;display:flex;align-items:center;padding:7px 10px;
 border:1px solid var(--brand-border);border-radius:11px;background:#F7F2E8;
 color:var(--brand-muted);font-size:12px;font-weight:850;cursor:pointer
}
.inline-more>summary::-webkit-details-marker{display:none}
.inline-more>div{
 position:absolute;z-index:12;left:0;top:47px;width:155px;padding:5px;
 background:#FFFDF8;border:1px solid var(--brand-border);border-radius:13px;
 box-shadow:0 12px 28px rgba(36,42,30,.14)
}
.inline-more>div button{
 display:block;width:100%;min-height:44px;border:0;background:transparent;
 color:var(--brand-deep);font-size:12px;font-weight:800;text-align:right;padding:7px
}

/* Reduce visual noise: symbols are supporting cues, not the information architecture */
.summary-banner .icon{font-size:18px!important;opacity:.78}
.meal-ico{font-size:20px!important}
.microtag{font-size:12px!important}

/* Exception-driven Home Stock: unknown setup remains a single task card,
   while the attention count represents actual due purchases only. */
.setup-home{box-shadow:none!important;background:#FFF9ED!important}
.home-stock-toolbar{font-size:12px!important}
.home-stock-toolbar b{font-size:15px!important}

@media(max-width:390px){
 .advanced-actions{grid-template-columns:1fr}
 .meal-actions-primary{grid-template-columns:1fr 1fr 46px}
 .meal-more>div,.inline-more>div{left:auto;right:0}
}


/* =========================================================
   YEKFI CX HARDENING — P1.2 v1.7
   Unified visual language / quieter interaction surfaces
   ========================================================= */
.ui-svg{
 width:1.15em;height:1.15em;display:inline-block;vertical-align:-.16em;
 fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round
}
.bottom-nav .ui-svg{width:22px;height:22px;stroke-width:1.9}
.round-icon .ui-svg{width:22px;height:22px}
.menu-route .ui-icon .ui-svg{width:20px;height:20px}
.summary-banner .icon .ui-svg{width:20px;height:20px}
.store-icon{display:grid;place-items:center}
.store-icon .ui-svg{width:25px;height:25px;color:var(--brand-olive)}

.hero-meta{
 display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 13px;color:var(--brand-muted)
}
.hero-meta span{
 padding:5px 8px;border-radius:999px;background:rgba(255,253,248,.74);
 border:1px solid rgba(63,75,52,.09);font-size:12px;font-weight:800
}
.hero-actions .btn .ui-svg{margin-inline-end:5px}
.btn.primary-lite{
 background:var(--brand-olive);color:#FFFDF7;border-color:var(--brand-olive)
}

/* Exception-led home stock summary: only two numbers compete for attention. */
.home-focus-grid{
 display:grid;grid-template-columns:1.25fr 1fr;gap:8px;margin:10px 0 8px
}
.home-focus-card{
 min-height:92px;padding:14px;border-radius:20px;background:#FFFDF8;
 border:1px solid var(--brand-border);box-shadow:0 6px 17px rgba(36,42,30,.035)
}
.home-focus-card.primary{
 background:linear-gradient(145deg,#4C593F,#303A2A);color:#FFFDF7;
 border-color:rgba(242,197,107,.17)
}
.home-focus-card small{display:block;font-size:12px;color:var(--brand-muted)}
.home-focus-card.primary small,.home-focus-card.primary em{color:rgba(255,253,247,.72)}
.home-focus-card b{display:block;font-size:27px;line-height:1.1;margin:5px 0}
.home-focus-card em{display:block;font-size:12px;font-style:normal;color:var(--brand-muted)}
.home-facts{
 display:flex;gap:6px;overflow:auto;padding:2px 0 8px;scrollbar-width:none
}
.home-facts::-webkit-scrollbar{display:none}
.home-facts span{
 flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;min-height:36px;
 padding:6px 9px;border-radius:999px;background:#F2EDE3;color:var(--brand-muted);
 font-size:12px;font-weight:800
}
.home-facts .ui-svg{width:15px;height:15px;color:var(--brand-olive)}

/* Fewer decorative symbols; icon system carries navigation and actions. */
.menu-route.featured .ui-icon{
 background:rgba(212,160,71,.22);color:var(--brand-gold-text)
}
.bottom-nav .nav-btn i{font-style:normal;display:grid;place-items:center}

/* Clean action hierarchy */
.meal-actions-primary>.pill-btn:first-child{font-weight:900}
.store-mode-cta strong{opacity:.55}
.summary-banner .icon{display:grid;place-items:center}

/* Less card noise */
.card,.home-stock-group,.member-card-v2{box-shadow:0 5px 16px rgba(36,42,30,.03)!important}
.insights{gap:7px}
.insight{border-color:rgba(63,75,52,.1)!important}

@media(max-width:390px){
 .home-focus-grid{grid-template-columns:1fr 1fr}
 .home-focus-card{padding:12px;min-height:88px}
 .home-focus-card b{font-size:24px}
}


/* =========================================================
   YEKFI CX HARDENING — P1.3 v1.8
   Household Collaboration — local-first interaction model
   ========================================================= */
.household-hub-entry{
 width:100%;min-height:76px;margin:5px 0 13px;padding:12px 14px;
 display:grid;grid-template-columns:46px minmax(0,1fr) 20px;gap:10px;align-items:center;
 text-align:right;border:1px solid rgba(212,160,71,.24);border-radius:21px;
 background:linear-gradient(145deg,#FFF9EC,#F4E9D4);color:var(--brand-deep);
 box-shadow:0 7px 18px rgba(36,42,30,.045)
}
.hub-entry-icon{
 width:44px;height:44px;display:grid;place-items:center;border-radius:14px;
 background:var(--brand-olive);color:#FFFDF7
}
.hub-entry-icon .ui-svg{width:23px;height:23px}
.household-hub-entry b{display:block;font-size:16px}
.household-hub-entry small{display:block;margin-top:3px;font-size:12px;color:var(--brand-muted)}
.household-hub-entry strong{font-size:22px;color:var(--brand-gold-text)}

.hub-hero{
 display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;
 padding:12px;border-radius:19px;background:linear-gradient(145deg,#46523B,#293225);
 color:#FFFDF7
}
.hub-hero>span:first-child{
 width:44px;height:44px;display:grid;place-items:center;border-radius:14px;
 background:rgba(242,197,107,.16);color:var(--brand-gold-hi)
}
.hub-hero .ui-svg{width:23px;height:23px}
.hub-hero b{display:block;font-size:17px}
.hub-hero small{display:block;font-size:12px;color:rgba(255,253,247,.7);margin-top:2px}
.hub-hero button{
 min-height:44px;border:1px solid rgba(255,255,255,.16);border-radius:12px;
 background:rgba(255,255,255,.08);color:#FFFDF7;font-size:12px;font-weight:900;padding:7px 9px
}
.hub-privacy{
 margin:8px 0 10px;padding:10px 12px;border-radius:14px;
 background:#F3EEE3;border:1px solid var(--brand-border)
}
.hub-privacy b{display:block;font-size:12px;color:var(--brand-olive)}
.hub-privacy small{display:block;font-size:12px;line-height:1.55;color:var(--brand-muted);margin-top:2px}
.hub-quick{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}
.hub-quick button{
 min-height:50px;border:1px solid var(--brand-border);border-radius:14px;
 background:#FFFDF8;color:var(--brand-deep);font-size:13px;font-weight:850
}
.hub-quick .ui-svg{margin-inline-end:5px}
.hub-person,.hub-request,.hub-activity{
 display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;
 min-height:58px;padding:8px 0;border-bottom:1px solid rgba(63,75,52,.08)
}
.hub-avatar{
 width:38px;height:38px;display:grid;place-items:center;border-radius:50%;
 background:#E8E1D3;color:var(--brand-olive);font-size:15px;font-weight:900
}
.hub-person b,.hub-request b,.hub-activity b{display:block;font-size:14px}
.hub-person small,.hub-request small,.hub-activity small{
 display:block;font-size:12px;color:var(--brand-muted);margin-top:2px
}
.hub-person button,.hub-request button{
 min-height:40px;border:0;border-radius:11px;background:#F0EBE1;
 color:var(--brand-muted);font-size:12px;font-weight:850;padding:7px 9px
}
.hub-request{grid-template-columns:minmax(0,1fr) auto}
.hub-request .ui-svg{width:15px;height:15px}
.hub-activity{grid-template-columns:12px minmax(0,1fr)}
.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-gold)}
.sheet-section>h3{font-size:16px;margin:13px 0 7px;color:var(--brand-deep)}

@media(max-width:390px){
 .hub-quick{grid-template-columns:1fr}
 .hub-hero{grid-template-columns:44px minmax(0,1fr)}
 .hub-hero button{grid-column:1/-1}
}

/* YEKFI CX P1.4 v1.9 — Real-device usability pilot */
.pilot-intro{padding:12px 13px;border-radius:16px;background:#F3EEE3;border:1px solid var(--brand-border);margin-bottom:10px}.pilot-intro b{display:block;font-size:14px}.pilot-intro small{display:block;font-size:12px;line-height:1.55;color:var(--brand-muted);margin-top:3px}.pilot-tasks{display:grid;gap:7px}.pilot-tasks>button{min-height:62px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:9px;align-items:center;text-align:right;border:1px solid var(--brand-border);border-radius:16px;background:#FFFDF8;color:var(--brand-deep);padding:9px 11px}.pilot-tasks>button>span:first-child{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#EEE8DC;color:var(--brand-olive)}.pilot-tasks .ui-svg{width:20px;height:20px}.pilot-tasks b{display:block;font-size:14px}.pilot-tasks small{display:block;font-size:12px;color:var(--brand-muted);margin-top:2px}.pilot-active{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;padding:12px;border-radius:17px;background:linear-gradient(145deg,#46523B,#293225);color:#FFFDF7}.pilot-active b{display:block;font-size:15px}.pilot-active small{display:block;font-size:12px;color:rgba(255,255,255,.7);margin-top:2px}.pilot-active button{min-height:44px;border:0;border-radius:11px;padding:7px 9px;font-size:12px;font-weight:900}.pilot-bench{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}.pilot-bench span{padding:9px 6px;border-radius:13px;background:#F5F0E7;text-align:center}.pilot-bench b{display:block;font-size:14px;color:var(--brand-deep)}.pilot-bench small{display:block;font-size:11px;color:var(--brand-muted);margin-top:2px}.pilot-result{display:flex;justify-content:space-between;gap:8px;align-items:center;min-height:52px;padding:8px 0;border-bottom:1px solid rgba(63,75,52,.08)}.pilot-result b{display:block;font-size:13px}.pilot-result small{display:block;font-size:12px;color:var(--brand-muted);margin-top:2px}.pilot-result strong{font-size:12px}.pilot-result.pass strong{color:#48623F}.pilot-result.fail strong{color:#9A3F36}@media(max-width:390px){.pilot-active{grid-template-columns:1fr 1fr}.pilot-active>span{grid-column:1/-1}.pilot-bench{grid-template-columns:1fr 1fr 1fr}}


/* YEKFI v2.2 — Budget recovery: continuation first, same cuisine */
.budget-recovery{
 display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px;align-items:center;
 padding:13px;border-radius:18px;background:linear-gradient(145deg,#FFF9EC,#F4E9D4);
 border:1px solid rgba(212,160,71,.22);margin-bottom:9px
}
.recovery-mark{
 width:44px;height:44px;display:grid;place-items:center;border-radius:14px;
 background:var(--brand-olive);color:#FFFDF7
}
.recovery-mark .ui-svg{width:22px;height:22px}
.budget-recovery b{display:block;font-size:16px;color:var(--brand-deep)}
.budget-recovery small{display:block;margin-top:3px;font-size:12px;line-height:1.5;color:var(--brand-muted)}
.recovery-numbers{
 display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:7px;margin:8px 0 10px
}
.recovery-numbers span{
 padding:10px;border-radius:14px;background:#FFFDF8;border:1px solid var(--brand-border)
}
.recovery-numbers small{display:block;font-size:12px;color:var(--brand-muted)}
.recovery-numbers b{display:block;font-size:17px;margin-top:3px;color:var(--brand-deep)}
.recovery-rule{
 display:flex;gap:7px;align-items:flex-start;margin:9px 0;padding:9px 10px;border-radius:13px;
 background:#F3EEE3;color:var(--brand-muted);font-size:12px;line-height:1.55
}
.recovery-rule .ui-svg{flex:0 0 auto;width:17px;height:17px;margin-top:1px;color:var(--brand-olive)}

/* v2.3 — explicit budget consent remains secondary to same-cuisine optimization */
.budget-consent-btn{margin-top:7px}

/* v2.4 — unused budget is an opportunity, not a spending target */
.value-opportunity{margin-top:9px}
.value-opportunity .icon .ui-svg{width:20px;height:20px}
.value-upgrade-btn{margin:7px 0 9px}

/* v2.5 — nutrient gap intervention */
.calcium-gap{margin-top:9px}
.calcium-gap .icon{font-weight:800;font-size:12px;letter-spacing:-.02em}
.calcium-gap-btn{margin:7px 0 9px}
.calcium-hero{padding:13px;border-radius:17px;background:#F3EEE3;margin-bottom:9px}
.calcium-hero b{display:block;font-size:18px;color:var(--brand-deep)}
.calcium-hero small{display:block;font-size:12px;line-height:1.55;color:var(--brand-muted);margin-top:3px}
.calcium-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:12px;border:1px solid var(--brand-border);border-radius:16px;margin:8px 0;background:#FFFDF8}
.calcium-option b{display:block;font-size:14px}.calcium-option small{display:block;font-size:12px;line-height:1.5;color:var(--brand-muted);margin-top:3px}
.calcium-option.booster{grid-template-columns:1fr}


/* =========================================================
   YEKFI v2.7 — MOBILE OVERLAY / BUDGET FLOW HARDENING
   Every full-screen decision surface owns its scroll.
   Prevents clipped summary/budget screens and frozen body.
   ========================================================= */
:root{--app-vh:100dvh}
.modal.open{
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.onboarding.open,
.ready-modal.open{
  align-items:flex-start!important;
  justify-content:center;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  height:100dvh;
  max-height:100dvh;
  padding:max(10px,env(safe-area-inset-top)) 10px max(16px,env(safe-area-inset-bottom))!important;
}
.onboarding .on-card,
.ready-modal .ready-card{
  flex:0 0 auto;
  width:min(610px,100%)!important;
  max-width:100%;
  max-height:none!important;
  margin:auto 0;
  box-sizing:border-box;
}
.ready-modal .ready-card{width:min(500px,100%)!important}
.ready-modal #readyStats{min-width:0}
.ready-modal .ready-actions{
  position:sticky;
  bottom:0;
  z-index:4;
  margin:14px -8px -8px;
  padding:10px 8px calc(8px + env(safe-area-inset-bottom));
  background:linear-gradient(to top,#FFFDF8 72%,rgba(255,253,248,.94) 86%,rgba(255,253,248,0));
}
.sheet.open{
  overflow:hidden!important;
  height:100dvh;
  max-height:100dvh;
}
.sheet-panel{
  max-height:min(88dvh,calc(100dvh - env(safe-area-inset-top) - 8px))!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  scrollbar-gutter:stable;
}
#sheetContent{min-width:0;overflow-wrap:anywhere}
@media(max-width:520px){
  .onboarding.open,.ready-modal.open{padding-left:7px!important;padding-right:7px!important}
  .onboarding .on-card,.ready-modal .ready-card{
    border-radius:24px;
    padding:15px!important;
  }
  .ready-card h1{font-size:21px!important;line-height:1.28}
  .ready-icon{width:52px;height:52px;margin-bottom:4px}
  .ready-icon img{width:52px;height:52px}
  .ready-grid{grid-template-columns:1fr 1fr;gap:6px}
  .ready-stat{padding:9px}
  .summary-banner{padding:10px!important}
  .recovery-numbers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ready-actions{gap:6px}
  .ready-actions .btn{min-width:0}
}
@media(max-height:700px){
  .ready-icon{width:44px;height:44px}.ready-icon img{width:44px;height:44px}
  .ready-card h1{margin:3px 0 8px!important}
  .ready-stat{padding:7px}
  .ready-modal .ready-actions{margin-top:8px}
}

html.modal-active,body.modal-active{overflow:hidden!important;max-height:100dvh}

/* v2.8 — visible protein rotation proof */
.protein-proof{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:9px 0;padding:9px 10px;border-radius:14px;background:#F3EEE3;text-align:right}
.protein-proof b{width:100%;font-size:13px;color:var(--brand-deep)}
.protein-proof span{font-size:12px;padding:5px 8px;border-radius:999px;background:#FFFDF8;border:1px solid var(--brand-border)}

/* YEKFI v3.0 — Calendar-aware Today Intelligence */
.today-intel{margin:12px 0 16px;padding:12px;border-radius:20px;background:linear-gradient(145deg,#F3EEE3,#E9EDDF);border:1px solid rgba(63,75,52,.10)}
.today-intel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.today-intel-head b{font-size:15px;color:var(--brand-deep)}.today-intel-head small{font-size:12px;color:var(--muted)}
.intel-row{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;padding:8px 0;border-top:1px solid rgba(63,75,52,.08)}
.intel-row>span{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;background:#FFFDF8;font-size:18px}
.intel-row b{display:block;font-size:13px}.intel-row small{display:block;font-size:12px;color:var(--muted);margin-top:2px;line-height:1.45}
.day-navigator span b{line-height:1.3}

/* YEKFI v3.1 — persistent New Plan entry */
.topbar-actions{display:flex;align-items:center;gap:7px;min-width:0}
.new-plan-btn{min-height:44px;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 11px;border:0;border-radius:15px;background:var(--brand-deep);color:#fff;white-space:nowrap}
.new-plan-btn span{font-size:20px;line-height:1}.new-plan-btn b{font-size:12px}
.new-plan-intro{padding:5px 2px 12px}.new-plan-intro b{display:block;font-size:16px}.new-plan-intro small{display:block;font-size:12px;line-height:1.65;color:var(--muted);margin-top:5px}
.new-plan-options{display:grid;gap:8px}.new-plan-options>button{min-height:68px;width:100%;display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;text-align:right;padding:10px;border:1px solid var(--brand-border);border-radius:17px;background:#FFFDF8}
.new-plan-options>button>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#F3EEE3;font-size:19px}.new-plan-options b{display:block;font-size:14px}.new-plan-options small{display:block;font-size:12px;color:var(--muted);line-height:1.45;margin-top:2px}
@media(max-width:430px){.topbar{gap:5px}.new-plan-btn{padding:0 9px}.new-plan-btn b{display:none}.budget-pill{padding-inline:8px}.budget-pill small{font-size:11px}}

/* YEKFI v4.0 — Accounts + real household cloud */
.cloud-status{width:100%;min-height:64px;display:grid;grid-template-columns:34px 1fr 18px;gap:9px;align-items:center;text-align:right;margin:10px 0;padding:10px;border:1px solid var(--brand-border);border-radius:17px;background:#FFFDF8}
.cloud-status.live{background:#F0F4E9;border-color:rgba(63,75,52,.20)}
.cloud-status>span:first-child{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;background:#F3EEE3;font-size:17px}
.cloud-status b,.cloud-account b,.cloud-house b{display:block;font-size:13px}.cloud-status small,.cloud-account small,.cloud-empty small{display:block;font-size:12px;color:var(--muted);line-height:1.5;margin-top:2px}
.cloud-state{padding:13px;border-radius:17px;background:#F3EEE3;margin-bottom:12px}.cloud-state b{display:block;font-size:15px}.cloud-state small{display:block;font-size:12px;color:var(--muted);line-height:1.6;margin-top:4px}
.cloud-account{display:grid;grid-template-columns:42px 1fr;gap:9px;align-items:center;padding:8px 0 12px}
.cloud-house{display:grid;gap:2px;padding:12px;border:1px solid var(--brand-border);border-radius:17px;background:#FFFDF8;margin-bottom:10px}.cloud-house small{font-size:11px;color:var(--muted)}.cloud-house em{font-size:11px;color:var(--brand);font-style:normal}
.cloud-empty{padding:12px 2px}.cloud-empty b{display:block;font-size:14px}.or-line{display:flex;align-items:center;gap:8px;margin:10px 0;color:var(--muted);font-size:11px}.or-line:before,.or-line:after{content:"";height:1px;background:var(--brand-border);flex:1}
.invite-code{text-align:center;padding:18px;border-radius:19px;background:#F3EEE3;margin:8px 0 12px}.invite-code small{display:block;font-size:12px;color:var(--muted)}.invite-code b{display:block;font-size:28px;letter-spacing:4px;margin-top:5px}

/* YEKFI v4.2 — Consumer Simplicity Pass */
.daily-focus{margin-top:10px}
.today-intel.compact{margin:10px 0 14px}
.today-intel.compact .intel-row{width:100%;grid-template-columns:34px 1fr 16px;border:0;border-top:1px solid rgba(63,75,52,.08);background:transparent;text-align:right;padding:9px 0}
.today-intel.compact .intel-row strong{font-size:18px;color:var(--muted)}
.meal-strip.compact .meal-mini .microtag{display:none}
.house-pulse,.week-pulse{width:100%;display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;text-align:right;margin-top:14px;padding:12px;border:1px solid var(--brand-border);border-radius:18px;background:#FFFDF8}
.house-pulse span,.week-pulse span{min-width:0}.house-pulse small,.week-pulse small{display:block;font-size:11px;color:var(--muted)}.house-pulse b,.week-pulse b{display:block;font-size:13px;margin-top:2px}.house-pulse strong,.week-pulse strong{font-size:11px;color:var(--brand);white-space:nowrap}
.meal-meta-simple{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.meal-meta-simple span{font-size:11px;color:var(--muted);background:var(--soft);padding:4px 7px;border-radius:9px}
.family-quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0 16px}.family-quick-actions button{min-height:48px;border:1px solid var(--brand-border);border-radius:15px;background:#FFFDF8;font-size:12px;display:flex;align-items:center;justify-content:center;gap:5px}
.member-card-v2 .member-inline{grid-template-columns:repeat(2,1fr)}
@media(max-width:430px){.house-pulse,.week-pulse{grid-template-columns:1fr 1fr}.house-pulse strong,.week-pulse strong{grid-column:1/-1}.family-quick-actions{grid-template-columns:1fr 1fr}.family-quick-actions button:last-child{grid-column:1/-1}}

/* v4.4 Meal Execution Intelligence */
.cook-hero{display:flex;gap:12px;align-items:center;padding:14px;border-radius:18px;background:var(--soft);margin-bottom:10px}.cook-hero>span{font-size:30px}.cook-hero div{display:grid;gap:2px}.cook-hero small,.cook-hero em{font-size:11px;color:var(--muted);font-style:normal}.cook-hero b{font-size:17px}.cook-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.cook-actions button,.ingredient-choice button,.substitute-list button{min-height:48px;border:1px solid var(--brand-border);background:#fff;border-radius:14px;padding:10px 12px}.cook-steps{display:grid;gap:10px;padding-inline-start:24px}.cook-steps li{line-height:1.7}.ingredient-choice,.substitute-list{display:grid;gap:7px}.ingredient-choice button,.substitute-list button{display:flex;align-items:center;justify-content:space-between;text-align:right}.substitute-list button span{display:grid;gap:3px}.substitute-list small{font-size:11px;color:var(--muted)}.acceptance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.acceptance-grid button{min-height:110px;border:1px solid var(--brand-border);background:#fff;border-radius:18px;display:grid;place-items:center;gap:3px;font-size:24px;padding:10px}.acceptance-grid b{font-size:13px}.acceptance-grid small{font-size:11px;color:var(--muted)}
@media(max-width:430px){.acceptance-grid{grid-template-columns:1fr}.acceptance-grid button{min-height:64px;grid-template-columns:32px 1fr;text-align:right}.acceptance-grid small{grid-column:2}}
/* v4.5 Price Intelligence + Life Change */
.price-observe-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.price-observe-row+.input,.price-observe-row{margin-bottom:8px}@media(max-width:430px){.price-observe-row{grid-template-columns:1fr}}

/* v4.6 Recipe Import */
.import-text{resize:vertical;line-height:1.6}.import-score{display:flex;align-items:center;gap:10px;padding:12px;border-radius:16px;margin-bottom:10px;background:var(--soft)}.import-score b{font-size:22px}.import-score.risk{border:1px solid #d7a55a}.import-match{display:flex;justify-content:space-between;align-items:center;padding:10px 4px;border-bottom:1px solid rgba(63,75,52,.09)}.import-match span{display:grid;gap:3px}.import-match small{font-size:11px;color:var(--muted)}.import-match.ok> :last-child{font-weight:800}.import-match.bad> :last-child{font-weight:800}

.budget-period-toggle{display:flex;gap:8px;margin:8px 0 12px}.budget-period-toggle .option{min-height:44px;flex:1}.budget-direct{display:flex;align-items:center;gap:10px;margin:10px 0}.budget-number-input{font-size:22px!important;font-weight:800;min-height:52px;text-align:center;max-width:220px}.budget-direct span{font-weight:700}

/* v4.8 Nutrition Guardian */
.guardian-gaps{display:grid;gap:8px;margin:12px 0}.guardian-gap{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border:1px solid var(--brand-border);border-radius:14px;background:#fff}.guardian-gap span{display:grid;gap:2px}.guardian-gap small{font-size:11px;color:var(--muted)}.guardian-gap strong{font-size:17px}.guardian-gap.critical{border-width:2px}.guardian-gap.gap{background:var(--soft)}

/* v4.9 Recovery Search Experience */
.loader-card{position:relative;overflow:hidden}
.loader-card::before,.loader-card::after{content:"";position:absolute;border:1px solid rgba(63,75,52,.18);border-radius:50%;pointer-events:none;animation:yekfiSearchPulse 2.2s ease-out infinite}
.loader-card::before{width:88px;height:88px;top:18px;left:calc(50% - 44px)}
.loader-card::after{width:126px;height:126px;top:-1px;left:calc(50% - 63px);animation-delay:.65s}
.loader-progress{overflow:hidden}
.loader-progress i{position:relative;transition:width .35s ease}
.loader-progress i::after{content:"";position:absolute;inset:0;width:38%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:yekfiScan 1.15s linear infinite}
.loader-stages span.done::before{content:"✓ ";font-weight:800}
.recovery-search-result{display:flex;gap:12px;align-items:center;padding:14px;border-radius:16px;background:var(--soft);margin-bottom:12px}
.recovery-search-result .recovery-mark{font-size:24px;animation:yekfiRotate 1.3s linear infinite}
.recovery-search-result div:last-child{display:grid;gap:4px}
.recovery-options{display:grid;gap:9px;margin:12px 0}
.recovery-choice{width:100%;min-height:62px;text-align:right;display:grid;gap:4px;padding:12px 14px;border:1px solid var(--brand-border);border-radius:15px;background:#fff}
.recovery-choice b{font-size:14px}.recovery-choice small{font-size:12px;line-height:1.55;color:var(--muted)}
@keyframes yekfiSearchPulse{0%{transform:scale(.7);opacity:.55}100%{transform:scale(1.45);opacity:0}}
@keyframes yekfiScan{from{transform:translateX(230%)}to{transform:translateX(-330%)}}
@keyframes yekfiRotate{to{transform:rotate(-360deg)}}
@media (prefers-reduced-motion:reduce){.loader-card::before,.loader-card::after,.loader-progress i::after,.recovery-search-result .recovery-mark{animation:none}}

/* v5.0 Pilot Clarity & Correctness */
.setup-profile-box{margin:16px 0;padding:14px;border:1px solid rgba(63,75,52,.14);border-radius:18px;background:rgba(255,255,255,.72)}
.setup-profile-box .section-head{margin:0 0 6px}.setup-profile-box .section-head h3{margin:0;font-size:16px}.setup-profile-box .tiny-muted{margin:0 0 10px;line-height:1.6}
.setup-profile-row{display:grid;grid-template-columns:minmax(72px,1fr) 96px 84px;gap:8px;align-items:center;padding:8px 0;border-top:1px solid rgba(63,75,52,.08)}
.setup-profile-row:first-of-type{border-top:0}.setup-profile-row b{font-size:14px}.setup-profile-row .input{min-height:44px;padding:8px 10px}
.profile-trust{margin:12px 0;padding:12px 14px;border-radius:16px;display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;background:#f7f5ee;border:1px solid rgba(63,75,52,.12)}
.profile-trust b{font-size:13px}.profile-trust span{font-size:12px;color:#61655c}.profile-trust button{grid-column:2;grid-row:1/3;min-height:40px;border:0;border-radius:12px;padding:0 12px;background:#fff;color:#3F4B34;font-weight:700}
.profile-trust.review{background:#fff4df}.profile-trust.exact{background:#eef4ea}
.profile-review-card{width:100%;min-height:64px;margin:12px 0 18px;border:1px solid rgba(63,75,52,.12);border-radius:18px;background:#fff;padding:12px 14px;display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;text-align:right;color:inherit}
.profile-review-card>span:nth-child(1){width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#f2eee1;color:#3F4B34;font-weight:800}.profile-review-card b{display:block;font-size:14px}.profile-review-card small{display:block;margin-top:3px;line-height:1.45;color:#6c7067}.profile-review-card strong{font-size:20px;color:#7d806f}
.profile-review-person{width:100%;min-height:56px;border:0;border-bottom:1px solid rgba(63,75,52,.08);background:transparent;padding:10px 2px;display:flex;align-items:center;justify-content:space-between;text-align:right;color:inherit}.profile-review-person span{display:block}.profile-review-person b,.profile-review-person small{display:block}.profile-review-person small{margin-top:3px;color:#73776f}
.day-tabs .day-tab b{white-space:nowrap}
@media(max-width:390px){.setup-profile-row{grid-template-columns:1fr 88px 76px;gap:6px}.setup-profile-row .input{font-size:16px}}

/* v5.0 — single-surface post-generation confirmation */
.generation-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;margin:10px 0 16px;border:1px solid rgba(63,75,52,.18);border-radius:18px;background:rgba(242,197,107,.14)}
.generation-notice>span{display:grid;gap:3px;min-width:0}.generation-notice b{font-size:15px}.generation-notice small{font-size:12px;line-height:1.45;color:var(--muted,#6d7269)}
.generation-notice>div{display:flex;align-items:center;gap:8px;flex:0 0 auto}.generation-notice .icon-btn{width:44px;height:44px;border:0;background:transparent;border-radius:50%;font-size:22px}
@media(max-width:430px){.generation-notice{align-items:flex-start}.generation-notice>div{flex-direction:column;align-items:stretch}.generation-notice .btn{min-height:44px}}
.generation-notice.needs-review{background:rgba(212,160,71,.16);border-color:rgba(154,100,27,.32)}
/* Ensure dismiss controls meet the 44pt operational target used across the app. */
.close-x{width:44px;min-width:44px;height:44px;min-height:44px}

/* v5.1 — Unified Pilot Hardening: transparent recovery policy */
.plan-policy-note{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 14px}.plan-policy-note span{font-size:11px;border:1px solid #E2DED2;border-radius:999px;padding:5px 8px;background:#F8F5ED;color:#67695E}

/* v5.2 — Pilot Journey Reliability: truthful plan states */
.empty-state-page{padding:26px 4px 18px;max-width:680px;margin:0 auto}
.empty-state-page .eyebrow{display:block;margin-bottom:8px}
.empty-state-page h1{font-size:30px;line-height:1.25;margin:0 0 10px;color:var(--ink)}
.empty-state-page p{font-size:14px;line-height:1.75;color:var(--muted);margin:0 0 18px;max-width:620px}
.plan-pending{padding:22px 18px;border:1px solid rgba(63,75,52,.13);border-radius:24px;background:rgba(255,255,255,.66);box-shadow:0 10px 34px rgba(49,54,42,.05)}
.planning-truth{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 18px}
.planning-truth span{min-height:34px;display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#F3EFE3;border:1px solid #E4DDCC;font-size:12px;color:#4F5748;font-weight:700}
.pending-actions{display:flex;gap:10px;flex-wrap:wrap}.pending-actions .btn{min-height:48px;flex:1 1 180px}
@media(max-width:430px){.empty-state-page h1{font-size:27px}.plan-pending{padding:20px 16px}.pending-actions{display:grid;grid-template-columns:1fr}.pending-actions .btn{width:100%}}
/* v6 Registry-first alternatives — compact, decision-oriented, one-hand friendly */
.registry-alternatives{margin:14px 0 2px;padding:14px;border:1px solid var(--line,#e6e2d8);border-radius:18px;background:var(--card,#fff)}
.registry-alt-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.registry-alt-head span{display:grid;gap:3px}.registry-alt-head small{opacity:.72;line-height:1.45}
.registry-alt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.registry-alt-chip{min-height:56px;border:1px solid var(--line,#e6e2d8);border-radius:14px;background:var(--soft,#f7f6f1);padding:9px 10px;text-align:right;display:grid;gap:3px}.registry-alt-chip b{font-size:13px}.registry-alt-chip small{font-size:11px;opacity:.72}
@media(max-width:520px){.registry-alt-grid{grid-template-columns:1fr}.registry-alt-chip{min-height:50px}}
/* v6.1 — Price Intelligence truth surface */
.price-truth-card{margin:10px 0 14px;padding:12px 14px;border:1px solid var(--brand-border);border-radius:18px;background:#FFFDF7;display:grid;grid-template-columns:1fr auto;gap:8px 14px;align-items:center}.price-truth-card div{min-width:0}.price-truth-card small{display:block;color:var(--muted);font-size:11px}.price-truth-card b{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.price-truth-card p{grid-column:1/-1;margin:0;color:var(--muted);font-size:12px;line-height:1.55}.field-label{display:block;margin:0 0 6px;color:var(--muted);font-size:12px}@media(max-width:430px){.price-truth-card{grid-template-columns:1fr}}


/* v6.2 — Weekly budget clarity + iPhone keyboard stability */
.budget-entry-card{display:block;margin:12px 0;padding:14px;border:1px solid var(--brand-border,#e7ddd2);border-radius:18px;background:#fff}.budget-entry-card>span{display:block;font-size:13px;font-weight:800;color:var(--muted);margin-bottom:6px}.budget-entry-card .budget-direct{margin:0}.budget-entry-card .budget-direct b{font-size:16px;white-space:nowrap}.budget-number-input{width:min(260px,100%);max-width:100%!important;font-size:22px!important;box-sizing:border-box}.budget-policy-title{margin:16px 2px 8px}.budget-policy-title b{display:block;font-size:14px}.budget-policy-title small{display:block;font-size:12px;color:var(--muted);margin-top:3px;line-height:1.55}.budget-policy-grid{display:grid;grid-template-columns:1fr;gap:8px}.budget-policy-card{width:100%;min-height:70px;border:1px solid var(--brand-border,#e7ddd2);border-radius:17px;background:#fff;padding:12px;display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;text-align:right}.budget-policy-card>span{width:34px;height:34px;border-radius:11px;background:var(--soft,#f5efe8);display:grid;place-items:center;font-weight:900}.budget-policy-card b{display:block;font-size:14px}.budget-policy-card small{display:block;font-size:12px;color:var(--muted);line-height:1.5;margin-top:2px}.budget-policy-card.selected{border:2px solid var(--brand,#657052);background:#fbfdf8}.budget-policy-grid.compact .budget-policy-card{min-height:62px}.budget-decision-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.budget-decision-summary span{padding:11px;border-radius:14px;background:var(--soft,#f5efe8)}.budget-decision-summary small{display:block;font-size:11px;color:var(--muted)}.budget-decision-summary b{display:block;font-size:14px;margin-top:3px}.selected-policy{cursor:default;background:#f7f8f3!important;border-style:solid!important}.recovery-search-result.static-result .recovery-mark{animation:none!important}
@media (max-width:640px){
  .onboarding{align-items:flex-start!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;padding:max(8px,env(safe-area-inset-top)) 8px max(10px,env(safe-area-inset-bottom))!important}
  .on-card{width:100%!important;max-height:none!important;margin:0!important;border-radius:24px!important;overflow:visible!important}
  input,select,textarea,.input{font-size:16px!important}
  .budget-number-input{font-size:22px!important;min-height:56px!important}
}
@supports (-webkit-touch-callout:none){input,select,textarea{font-size:16px!important}}

/* v6.3 boot/runtime integrity */
.runtime-recovery-card{max-width:680px;margin:24px auto;padding:24px 20px;border:1px solid rgba(112,72,48,.14);border-radius:26px;background:rgba(255,255,255,.82);box-shadow:0 14px 42px rgba(49,54,42,.07)}
.runtime-recovery-card h1{margin:6px 0 10px;font-size:28px;line-height:1.25;color:var(--ink)}
.runtime-recovery-card p{margin:0 0 18px;color:var(--muted);line-height:1.75}
.boot.fatal{background:#fff3ef;color:#713d31;border-color:#e9c3b8}


/* =========================================================
   YEKFI v7.3.1 — Real Household Pilot UX Hardening
   Contract: vertical content; horizontal gestures only navigate days.
   ========================================================= */
html,body,.app-shell,.content,.view{max-width:100%;overflow-x:hidden!important}
.content{touch-action:pan-y}
.view{min-width:0}
.day-navigator>button:disabled{opacity:.28;cursor:default}
.day-tabs.fixed-days{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;overflow:visible!important;width:100%;padding:2px 0 7px}
.day-tabs.fixed-days .day-tab{min-width:0;width:100%;padding:8px 3px;border-radius:14px;overflow:hidden}
.day-tabs.fixed-days .day-tab b{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:390px){.day-tabs.fixed-days{gap:3px}.day-tabs.fixed-days .day-tab{padding-inline:1px}.day-tabs.fixed-days .day-tab b{font-size:9px}}

.budget-pill em{display:block;margin-top:2px;font-style:normal;font-size:9.5px;line-height:1.25;color:var(--muted);white-space:nowrap}
@media(max-width:430px){.budget-pill em{font-size:9px;max-width:104px;overflow:hidden;text-overflow:ellipsis}}

.premium-meal-hero{display:grid;grid-template-columns:minmax(108px,.42fr) minmax(0,1fr);gap:16px;align-items:stretch;padding:14px}
.premium-meal-hero:after{pointer-events:none}.premium-meal-hero .hero-copy{align-self:center;min-width:0;position:relative;z-index:2}
.meal-visual{width:100%;min-width:0;aspect-ratio:16/10;border-radius:18px;overflow:hidden;position:relative;background:#EEE8DB;display:grid;place-items:center}
.meal-visual img{width:100%;height:100%;object-fit:cover;display:block}
.meal-visual.fallback{background:linear-gradient(145deg,#F4EEE2,#E7E8D9);border:1px solid rgba(63,75,52,.08)}
.meal-visual.fallback span{font-size:32px;filter:drop-shadow(0 5px 10px rgba(50,50,30,.12))}.meal-visual.fallback small{position:absolute;bottom:8px;right:9px;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.75);font-size:9px;color:#555d4e;font-weight:800}
.meal-visual.fallback.fish{background:linear-gradient(145deg,#E6F2EF,#D5E7E1)}.meal-visual.fallback.meat{background:linear-gradient(145deg,#F5E9E1,#EAD8CC)}.meal-visual.fallback.chicken{background:linear-gradient(145deg,#F8EFD7,#EBDDCA)}.meal-visual.fallback.legume{background:linear-gradient(145deg,#EEE7D5,#DDD7BF)}.meal-visual.fallback.snack{background:linear-gradient(145deg,#EEF2DF,#DFE9D2)}
.hero-visual{aspect-ratio:4/3;min-height:150px}
.today-meals-head{margin-top:16px;margin-bottom:8px}.today-meal-stack{display:grid;gap:10px;width:100%}
.today-meal-row{display:grid;grid-template-columns:108px minmax(0,1fr);gap:10px;padding:8px;border:1px solid var(--brand-border,var(--line));border-radius:20px;background:#FFFDF8;box-shadow:0 6px 18px rgba(45,50,38,.04);min-width:0}
.today-meal-row.support{background:#FAFBF5}.today-meal-row.next{box-shadow:inset 0 0 0 1px rgba(196,153,59,.34),0 8px 22px rgba(45,50,38,.05)}
.today-meal-row .meal-visual{aspect-ratio:1.2/1}.today-meal-main{border:0;background:transparent;text-align:right;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:4px}
.today-meal-main span{min-width:0}.today-meal-main small,.today-meal-main b,.today-meal-main em{display:block}.today-meal-main small{font-size:11px;color:var(--brand,#657052);font-weight:850}.today-meal-main b{font-size:14px;margin:4px 0;color:var(--brand-deep,#3F4B34);overflow-wrap:anywhere}.today-meal-main em{font-style:normal;font-size:10px;color:var(--muted)}.today-meal-main strong{color:var(--brand);font-size:18px}
@media(max-width:430px){.premium-meal-hero{grid-template-columns:1fr;gap:10px}.hero-visual{min-height:174px;aspect-ratio:16/9}.today-meal-row{grid-template-columns:92px minmax(0,1fr)}}

.timeline{min-width:0}.week-meal-visual{margin-bottom:9px}.week-meal-visual .meal-visual{aspect-ratio:16/7;max-height:150px}.meal-card{min-width:0;overflow:hidden}.meal-top>div{min-width:0}.meal-name-tap{max-width:100%;overflow-wrap:anywhere}

.shopping-domains{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 14px}
.shopping-domains button{min-width:0;border:1px solid var(--brand-border,var(--line));border-radius:18px;background:#FFFDF8;padding:11px 8px;text-align:right;display:grid;grid-template-columns:30px 1fr;column-gap:7px;align-items:center}
.shopping-domains button>span{font-size:20px;grid-row:1/3}.shopping-domains b,.shopping-domains small{display:block;min-width:0}.shopping-domains b{font-size:11px;color:var(--brand-deep)}.shopping-domains small{font-size:9.5px;color:var(--muted);margin-top:2px}.shopping-domains button.active{background:#F2F4EA;border-color:#A7AF94;box-shadow:inset 0 0 0 1px rgba(63,75,52,.12)}
@media(max-width:520px){.shopping-domains{grid-template-columns:1fr 1fr}.shopping-domains button{min-height:64px}}

.guardian-working{min-height:220px;display:grid;place-items:center;align-content:center;text-align:center;gap:9px;padding:28px 12px}.guardian-working b{font-size:16px}.guardian-working small{max-width:380px;color:var(--muted);line-height:1.6}.guardian-spinner{width:38px;height:38px;border-radius:50%;border:4px solid #E3E4D8;border-top-color:var(--brand,#657052);animation:guardianSpin .8s linear infinite}@keyframes guardianSpin{to{transform:rotate(360deg)}}

/* v7.4.1 Composer viewport contract: one vertical scroll surface, no horizontal page drift. */
.composer-modal,.composer-shell,.composer-head,.composer-content,.composer-stage,.composer-main,.composer-insight,.composer-footer{box-sizing:border-box;max-width:100%}
.composer-main,.composer-insight,.composer-title-row,.composer-search,.food-option{min-width:0}
.composer-content::-webkit-scrollbar{width:6px}
.composer-content::-webkit-scrollbar-thumb{background:#E4D3CA;border-radius:999px}


/* v7.6.2 Friends Pilot RC1 */
.friends-onboard-note{margin:10px 0 13px;padding:11px 12px;border:1px solid rgba(184,137,52,.28);border-radius:16px;background:#FBF6E8}.friends-onboard-note b,.friends-onboard-note small{display:block}.friends-onboard-note b{font-size:13px;color:#6F531F}.friends-onboard-note small{margin-top:3px;font-size:11.5px;line-height:1.55;color:var(--brand-muted)}
.pilot-menu-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:12px;padding:11px 12px;border-radius:17px;background:linear-gradient(145deg,#4C5A40,#2F382A);color:#fff}.pilot-menu-banner span{min-width:0}.pilot-menu-banner b,.pilot-menu-banner small{display:block}.pilot-menu-banner b{font-size:14px}.pilot-menu-banner small{margin-top:2px;font-size:10.5px;color:rgba(255,255,255,.72);overflow-wrap:anywhere}.pilot-menu-banner button{min-height:44px;border:0;border-radius:12px;padding:8px 10px;background:#F6E9C6;color:#4B3A19;font-weight:900}
.friends-pilot-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px;border-radius:18px;background:linear-gradient(145deg,#46523B,#293225);color:#fff}.friends-pilot-hero b,.friends-pilot-hero small{display:block}.friends-pilot-hero small{margin-top:3px;color:rgba(255,255,255,.72);font-size:11px}.friends-pilot-hero em{font-style:normal;font-size:11px;font-weight:900;padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.12)}.pilot-truth{margin:10px 0;padding:11px 12px;border-radius:15px;background:#F8F2E5;border:1px solid #E7D9B7}.pilot-truth b,.pilot-truth small{display:block}.pilot-truth b{font-size:13px;color:#584722}.pilot-truth small{margin-top:4px;line-height:1.6;font-size:11.5px;color:#6E6554}.pilot-center-actions{display:grid;gap:7px}.pilot-issue-row{padding:9px 0;border-bottom:1px solid rgba(63,75,52,.09)}.pilot-issue-row b,.pilot-issue-row small,.pilot-issue-row p{display:block}.pilot-issue-row small{margin-top:2px;font-size:10.5px;color:var(--brand-muted)}.pilot-issue-row p{margin:5px 0 0;font-size:12px;line-height:1.55;color:var(--brand-deep)}
@media(max-width:390px){.pilot-menu-banner,.friends-pilot-hero{grid-template-columns:1fr}.pilot-menu-banner button{width:100%}}

/* v7.6.3 Friends Pilot RC2 — install/offline/session hardening */
.yekfi-network-banner{position:fixed;z-index:2200;top:max(8px,env(safe-area-inset-top));left:50%;transform:translate(-50%,-130%);width:min(92vw,520px);padding:9px 12px;border-radius:14px;background:#7E4D21;color:#FFF9EF;font-size:11.5px;font-weight:800;line-height:1.45;text-align:center;box-shadow:0 10px 26px rgba(38,32,24,.18);transition:transform .22s ease;pointer-events:none}.yekfi-network-banner.show{transform:translate(-50%,0)}
.pilot-runtime-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:9px 0 10px}.pilot-runtime-grid span{min-width:0;padding:9px 5px;border-radius:13px;background:#F2EEE4;border:1px solid rgba(63,75,52,.08);text-align:center}.pilot-runtime-grid b,.pilot-runtime-grid small{display:block}.pilot-runtime-grid b{font-size:11px;line-height:1.25;overflow-wrap:anywhere}.pilot-runtime-grid small{font-size:9.5px;margin-top:3px;color:var(--brand-muted)}.pilot-runtime-grid span.ok{background:#EDF3E8;border-color:#D8E6D1}.pilot-runtime-grid span.ok b{color:#44613D}.pilot-runtime-grid span.warn{background:#FFF0E1;border-color:#EBD2B8}.pilot-runtime-grid span.warn b{color:#905722}
.pilot-session-state{margin:9px 0;padding:11px 12px;border-radius:14px;background:#EDF3E8;border:1px solid #D8E6D1}.pilot-session-state b,.pilot-session-state small{display:block}.pilot-session-state b{font-size:13px;color:#44613D}.pilot-session-state small{margin-top:3px;font-size:10.5px;line-height:1.5;color:var(--brand-muted)}.pilot-session-state.done{background:#F4F0E5;border-color:#E6D9BC}.pilot-session-state.done b{color:#705B2A}.danger-note{background:#FCEBE7!important;border-color:#E7C2BA!important;color:#7D3D34!important}
@media(max-width:360px){.pilot-runtime-grid{grid-template-columns:1fr}.yekfi-network-banner{font-size:10.5px}}

/* =========================================================
   YEKFI v7.7.0 — CONSUMER UX 9.6 HARDENING
   Goal: progressive disclosure, readable Arabic, calm hierarchy,
   intentional horizontal navigation only, and measurable touch UX.
   ========================================================= */
:root{
  --ux-body:15px;
  --ux-secondary:13px;
  --ux-caption:12px;
  --ux-radius-card:18px;
  --ux-radius-control:14px;
}

/* Persistent chrome: keep only the frequent information. */
.topbar{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;height:72px;padding-block:9px}
.topbar-actions{gap:0}
.budget-pill{min-width:118px;padding:7px 11px;border-radius:15px;background:#F0EEE5;border:1px solid rgba(63,75,52,.08)}
.budget-pill small{font-size:11px!important}
.budget-pill b{font-size:15px!important;line-height:1.25}
.budget-pill em{font-size:10.5px!important;max-width:132px!important;color:#6F705F!important}
@media(max-width:390px){
  .topbar{padding-inline:10px;gap:6px}
  .brand-copy small{display:none}
  .budget-pill{min-width:105px;padding-inline:9px}
}

/* Readability floor for actual consumer copy. */
.on-step-lead p,.ux-budget-card>small,.ux-policy-title small,.budget-policy-card small,
.cuisine-card small,.blend-card small,.ux-house-total small,.ux-trust-strip span,
.today-meal-main em,.today-meal-main small,.meal-meta-simple span,.meal-more button{
  font-size:var(--ux-secondary)!important;
  line-height:1.55!important;
}
.today-meal-main b,.meal-name-tap{font-size:15px!important;line-height:1.45!important}
.page-sub{max-width:42rem}

/* Onboarding: one decision family per step. */
.onboarding{background:linear-gradient(145deg,#F6F2E8,#EEE9DD 54%,#E9EBDD)}
.on-card{width:min(620px,100%);padding:18px 20px 20px;border-radius:28px;background:rgba(255,253,248,.96);box-shadow:0 24px 70px rgba(46,49,39,.13)}
.on-head b{font-size:15px}.on-head small{font-size:12px}.on-card>.progress{height:6px;margin:13px 0 18px}
.ux-on-step{display:grid;gap:14px}
.on-step-lead{display:grid;gap:6px}.on-step-lead .step-kicker{margin:0}.on-step-lead h1{font-size:28px;line-height:1.2;margin:0;color:var(--brand-deep)}.on-step-lead p{margin:0;color:var(--brand-muted);max-width:46ch}
.ux-mode-choice{margin:0;gap:9px}.ux-mode-choice button{min-height:82px;padding:12px;border-radius:17px;grid-template-columns:30px minmax(0,1fr);align-content:center}.ux-mode-choice button>span{width:28px;height:28px;display:grid;place-items:center;color:var(--brand-olive)}.ux-mode-choice .ui-svg{width:22px;height:22px}.ux-mode-choice b{font-size:14px}.ux-mode-choice small{font-size:12px!important;line-height:1.4!important}
.house-count-list{display:grid;gap:8px}.ux-stepper{margin:0;min-height:66px;border-radius:17px;padding:10px 12px;background:#F2EEE4}.ux-stepper b{font-size:14px}.ux-stepper small{font-size:12px!important}.ux-stepper .round-step{width:44px;height:44px;border-radius:13px;font-size:20px}.ux-stepper .count{font-size:18px;min-width:32px}
.ux-house-total{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;padding:11px 13px;border-radius:16px;background:#E9EDE1;color:var(--brand-deep)}.ux-house-total span{font-size:12px;color:var(--brand-muted)}.ux-house-total b{font-size:16px}.ux-house-total small{grid-column:1/-1;color:var(--brand-muted)}
.ux-on-actions{margin-top:0}.ux-on-actions .btn{min-width:118px}

.ux-profile-box{margin:0;padding:10px 14px 4px;border-radius:18px;background:#FFFDF8;border:1px solid rgba(63,75,52,.12)}
.setup-profile-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 0 8px}.setup-profile-head b{display:block;font-size:14px}.setup-profile-head small{display:block;font-size:12px;color:var(--brand-muted)}.setup-profile-head em{font-style:normal;font-size:11px;color:var(--brand-olive);background:#EEF0E6;padding:5px 8px;border-radius:999px}
.ux-profile-box .setup-profile-row{grid-template-columns:minmax(82px,1fr) 104px 92px;gap:8px;padding:9px 0}.ux-profile-box .setup-profile-row b{font-size:14px}.ux-profile-box .input{min-height:46px;border-radius:13px}

.ux-budget-card{display:grid;gap:4px;margin:0;padding:14px 16px;border-radius:18px;background:#F2EEE4;border:1px solid rgba(63,75,52,.10)}
.ux-budget-card>span{font-size:13px;font-weight:800}.ux-budget-card .budget-direct{margin:4px 0}.ux-budget-card>small{color:var(--brand-muted)}
.ux-policy-title{margin:0;display:grid;gap:2px}.ux-policy-title b{font-size:14px}.ux-policy-title small{color:var(--brand-muted)}
.ux-budget-policy{gap:9px}.ux-budget-policy .budget-policy-card{min-height:78px;padding:11px 12px;border-radius:17px}.ux-budget-policy .budget-policy-card b{font-size:14px}

.ux-cuisine-grid{gap:8px;margin:0}.ux-cuisine-grid .cuisine-card{min-height:68px;padding:10px 12px;border-radius:17px}.ux-cuisine-grid .cuisine-card b{font-size:14px}.ux-cuisine-grid .cuisine-emoji{font-size:25px}.blend-disclosure{margin-top:2px;border-top:1px solid rgba(63,75,52,.08);padding-top:8px}.blend-disclosure summary{min-height:44px;display:flex;align-items:center;color:var(--brand-olive);font-size:13px;font-weight:800;cursor:pointer}.ux-blend-list{margin:4px 0 0}.ux-blend-list .blend-card{min-height:58px;border-radius:15px}
.ux-final-step{gap:13px}.ux-final-orb{margin:0;padding:16px;border-radius:20px}.ux-final-orb .ui-svg{width:24px;height:24px}.ux-choice-summary{gap:6px}.ux-choice-summary .choice-row{min-height:50px;border-radius:14px;padding:10px 12px}.ux-choice-summary .choice-row span{font-size:12px!important}.ux-choice-summary .choice-row b{font-size:14px}
.ux-trust-strip{display:grid;gap:6px;padding:11px 13px;border-radius:16px;background:#EEF1E7;color:#4A5541}.ux-trust-strip span{display:block}

@media(max-width:640px){
  .on-card{min-height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(18px,env(safe-area-inset-bottom)));display:flex;flex-direction:column}
  #onContent{flex:1;display:flex}#onContent>.ux-on-step{width:100%;align-content:start}
}
@media(max-width:390px){
  .on-card{padding:14px 14px 16px;border-radius:22px}
  .on-card>.progress{margin:10px 0 14px}
  .on-step-lead h1{font-size:25px}
  .ux-mode-choice{grid-template-columns:1fr 1fr}
  .ux-profile-box .setup-profile-row{grid-template-columns:minmax(72px,1fr) 91px 79px;gap:6px}
  .ux-budget-policy{grid-template-columns:1fr}
}

/* Week: horizontal movement is explicitly day navigation, never layout overflow. */
.day-strip{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 1px 9px;margin:2px 0 4px;touch-action:pan-x}
.day-strip::-webkit-scrollbar{display:none}.day-chip{flex:0 0 64px;min-width:64px;min-height:52px;scroll-snap-align:center;border:1px solid rgba(63,75,52,.11);border-radius:15px;background:#F7F4EC;color:var(--brand-muted);display:grid;place-items:center;gap:1px;padding:6px 5px}.day-chip small{font-size:10.5px}.day-chip b{font-size:12.5px}.day-chip.active{background:var(--brand-deep);color:#fff;border-color:var(--brand-deep);box-shadow:0 7px 18px rgba(48,57,42,.16)}.day-chip.active small{color:rgba(255,255,255,.72)}
.ux-meal-actions{justify-content:space-between;align-items:center}.ux-meal-actions .pill-btn{min-width:94px}.ux-meal-actions .pill-btn .ui-svg{width:16px;height:16px;margin-left:4px;vertical-align:middle}.meal-card{border-radius:18px;box-shadow:0 4px 14px rgba(45,50,38,.035)}
.meal-more summary{min-width:44px;min-height:44px;display:grid;place-items:center;border-radius:13px;background:#F2EEE4;color:var(--brand-deep)}

/* Today: calm information hierarchy. */
.ux-hero-meta{display:flex;gap:7px;flex-wrap:wrap}.ux-hero-meta span{padding:6px 9px;border-radius:999px;background:#F0EEE5;color:#5F6758;font-size:12px!important}.today-meal-row{box-shadow:none;border-color:rgba(63,75,52,.09);border-radius:17px}.today-meal-row:not(.next){background:rgba(255,253,248,.68)}
.today-meal-main small{font-size:12px!important}.today-meal-main b{font-size:15px!important}.today-meal-main em{font-size:12px!important;color:#78786A}

/* Avoid micro-copy in key financial surfaces. */
.total-kicker,.total-sub,.total-detail,.shop-name small,.shop-name em,.shop-qty small{font-size:12px!important;line-height:1.45!important}

/* No accidental horizontal layout drift. */
.on-card,.ux-on-step,.ux-profile-box,.ux-budget-card,.ux-cuisine-grid,.ux-choice-summary,.timeline,.meal-card{min-width:0;max-width:100%}

/* =========================================================
   v7.7.0 — Consumer UX 9.6 Hardening / Wave 2
   Measured corrections from certified HH7 Gulf runtime QA.
   ========================================================= */
/* Critical touch targets: meal title and optional ecosystem additions are real actions. */
.meal-name-tap{
  min-height:44px!important;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding-block:6px!important;
}
.eco-chip{
  min-height:44px!important;
  padding-block:9px!important;
}

/* Arabic readability floor on consumer surfaces. Tiny engineering metadata stays in advanced/pilot sheets only. */
.meal-visual.fallback small{font-size:11.5px!important;line-height:1.25!important}
.shopping-domains small{font-size:11.5px!important;line-height:1.35!important}
.shopping-domains b{font-size:12.5px!important;line-height:1.35!important}
.day-chip small{font-size:11.5px!important;line-height:1.25!important}
.day-chip b{font-size:13px!important;line-height:1.25!important}
.budget-pill em{font-size:11.5px!important;line-height:1.25!important}

/* Keep compact metadata readable without turning cards into dashboards. */
#today .eyebrow,#week .eyebrow,#shopping .eyebrow,#family .eyebrow{font-size:12px!important}
#today .muted,#week .muted,#shopping .muted,#family .muted{line-height:1.55}

/* v7.7.0 Wave 3 — Store-mode containment and accessible touch contract */
.store-mode-head{
  margin:0 0 8px!important;
  padding:10px 8px!important;
  width:100%;
  max-width:100%;
  border:1px solid var(--brand-border);
  border-radius:16px;
}
.store-search button{min-height:44px!important}
/* v7.7.0 Wave 4 — robust 44px gate with rendering tolerance */
#today .hero-actions .btn{min-height:46px!important}
#shopping .section-actions>button{min-height:46px!important}

/* v7.7.0 — Measured usability instrument (not a consumer feature surface) */
.ux-active-measure{grid-template-columns:1fr!important}
.ux-active-measure>span{grid-column:auto!important}
.ux-active-measure button{width:100%;min-height:46px!important}
.ux-ease-question{margin:14px 0 10px;font-size:15px;font-weight:850;color:var(--brand-deep);text-align:center}
.ux-ease-scale{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:5px;direction:ltr}
.ux-ease-scale button{min-width:44px;min-height:48px;border:1px solid var(--brand-border);border-radius:13px;background:#FFFDF8;color:var(--brand-deep);font-size:16px;font-weight:900}
.ux-ease-anchors{display:flex;justify-content:space-between;margin-top:7px;color:var(--brand-muted);font-size:12px}
@media(max-width:360px){.ux-ease-scale{grid-template-columns:repeat(7,minmax(40px,1fr));gap:3px}.ux-ease-scale button{min-width:40px}}
@media(max-width:360px){.ux-ease-scale{grid-template-columns:repeat(4,minmax(44px,1fr));gap:5px}.ux-ease-scale button{min-width:44px}}
.meal-name-tap{min-height:46px!important}
.ux-stepper .round-step:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}


/* v7.7.0 Wave 5 — measured 9.6 evidence + calm containment */
.premium-meal-hero:after{content:none!important}
.premium-meal-hero,.premium-meal-hero>*{min-width:0;max-width:100%}
.house-pulse small,.week-pulse small{font-size:12.5px!important;line-height:1.35!important}
.house-pulse strong,.week-pulse strong{font-size:12px!important;line-height:1.35!important}
.pilot-menu-banner small{font-size:11.5px!important}
.ux-measured-score{margin:10px 0 14px;padding:12px;border:1px solid var(--brand-border);border-radius:17px;background:#FFFDF8;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ux-measured-score>span{padding:8px;border-radius:12px;background:#F3EFE5;text-align:center}.ux-measured-score small{display:block;font-size:11.5px;color:var(--brand-muted)}.ux-measured-score b{display:block;margin-top:3px;font-size:16px;color:var(--brand-deep)}
.ux-measured-score em{grid-column:1/-1;font-style:normal;font-size:12px;line-height:1.45;text-align:center;color:var(--brand-muted)}
.ux-measured-score.pass{background:#EEF4EA;border-color:#B8C8AB}.ux-measured-score.pass em{color:#44583C;font-weight:800}
@media(max-width:360px){.ux-measured-score{grid-template-columns:1fr}.ux-measured-score em{grid-column:auto}}


/* v7.7.0 Wave 7 — accessibility contrast + resilient focus semantics */
:root{
  --brand-muted:#6B6E61;
  --warn:#80600F;
  --danger:#A94B46;
}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{
  outline:2px solid #FFFCF6!important;
  outline-offset:2px!important;
  box-shadow:0 0 0 5px var(--brand-olive)!important;
}
.nav-btn[aria-current="page"]{font-weight:900}
.day-chip[aria-current="date"]{background:var(--brand-deep);color:#fff;border-color:var(--brand-deep);box-shadow:0 7px 18px rgba(48,57,42,.16)}
.day-chip[aria-current="date"] small{color:rgba(255,255,255,.82)}

/* v7.7.0 Wave 8 — standardized post-task usability evidence */
.ux-sus-list{display:grid;gap:10px;margin:10px 0 12px}
.ux-sus-item{margin:0;padding:11px 12px;border:1px solid var(--brand-border);border-radius:16px;background:#FFFDF8;min-width:0}
.ux-sus-item legend{padding:0 4px;color:var(--brand-deep);font-size:13px;font-weight:850;line-height:1.55}
.ux-sus-scale{display:grid;grid-template-columns:repeat(5,minmax(44px,1fr));gap:6px;margin-top:8px;direction:ltr}
.ux-sus-scale label{position:relative;min-width:44px;min-height:46px;cursor:pointer}
.ux-sus-scale input{position:absolute;opacity:0;pointer-events:none}
.ux-sus-scale span{width:100%;height:100%;min-height:46px;display:grid;place-items:center;border:1px solid var(--brand-border);border-radius:12px;background:#F5F0E6;color:var(--brand-deep);font-weight:900}
.ux-sus-scale input:checked+span{background:var(--brand-deep);color:#fff;border-color:var(--brand-deep)}
.ux-sus-scale input:focus-visible+span{outline:2px solid #FFFCF6;outline-offset:2px;box-shadow:0 0 0 5px var(--brand-olive)}
@media(max-width:340px){.ux-sus-scale{gap:4px}.ux-sus-item{padding-inline:9px}}


/* v9.8.0 — keyboard skip link */
.skip-link{
 position:fixed;z-index:400;top:max(8px,env(safe-area-inset-top));right:12px;
 transform:translateY(-160%);padding:10px 14px;border-radius:12px;
 background:#1F3525;color:#FFFDF8;font-size:14px;font-weight:850;text-decoration:none;
 box-shadow:0 8px 24px rgba(23,40,28,.24);
}
.skip-link:focus{transform:translateY(0)}
