
:root{
  --forest:#173b2d;--forest2:#24503b;--cream:#f6efe4;--paper:#fffaf2;
  --orange:#a95412;--muted:#657069;--line:#ddd2c2;--sage:#dce7d9;
  --danger:#8c4038;--shadow:0 16px 45px rgba(23,59,45,.12)
}
*{box-sizing:border-box}
html,body{margin:0;background:#ebe3d5;color:var(--forest);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{min-height:100vh}
.app{max-width:470px;min-height:100vh;margin:auto;background:linear-gradient(#fbf7ef,#f3ecdf);padding-bottom:90px}
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:11px;padding:13px 15px;background:#fbf7eff2;backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.logo{width:48px;height:48px;border-radius:14px;background:var(--forest);display:grid;place-items:center;color:white;font-weight:900;font-size:11px;text-align:center}
.brand{flex:1}.brand b{font-size:17px}.brand small{display:block;font-size:8px;letter-spacing:.13em;color:var(--muted);margin-top:3px}
.lang{border:1px solid var(--line);background:white;border-radius:999px;padding:8px 9px;font-weight:800;color:var(--forest)}
main{padding:15px}
.screen{display:none}.screen.on{display:block}
h1,h2,.serif{font-family:Georgia,"Times New Roman",serif}
h1{font-size:35px;line-height:1;margin:7px 0 12px}h2{font-size:28px;line-height:1.05;margin:7px 0 12px}
h3{margin:0 0 7px;font-size:17px}p{line-height:1.48}
.ey{font-size:10px;text-transform:uppercase;letter-spacing:.17em;font-weight:900;color:var(--orange)}
.muted{color:var(--muted)}.small{font-size:12px}
.hero{background:linear-gradient(180deg,#2c5942,#173b2d);color:white;border-radius:29px;padding:25px 20px;box-shadow:var(--shadow)}
.hero .ey{color:#ffd39f}.hero h1{margin-bottom:8px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:21px;padding:15px;margin:11px 0;box-shadow:0 7px 22px #433b2c12}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.metric{font-family:Georgia,serif;font-size:31px}
.btn{border:0;background:var(--forest);color:white;border-radius:16px;padding:14px 15px;font-weight:900;width:100%;margin-top:10px;font-size:14px}
.btn.o{background:var(--orange)}.btn.light{background:white;color:var(--forest);border:1px solid var(--line)}
input,select,textarea{width:100%;border:1px solid var(--line);background:white;padding:12px;border-radius:14px;color:var(--forest);font-size:14px}
textarea{min-height:88px;resize:vertical}
.field{margin:11px 0}.field label{display:block;font-size:11px;font-weight:900;margin-bottom:6px}
.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid var(--line);background:white;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:800;color:var(--forest)}
.chip.on{background:var(--forest);color:white;border-color:var(--forest)}
.list{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.food{background:white;border:1px solid var(--line);border-radius:17px;padding:12px;cursor:pointer;min-height:100px}
.food .emoji{font-size:29px}.food b{display:block;margin-top:5px}
.pill{display:inline-block;background:var(--sage);border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;margin-top:6px}
.pill.out{background:#f6dfc6;color:#7c4518}.pill.lock{background:#f0e5e2;color:#743d37}
.row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center}
.row:last-child{border-bottom:0}
.qty{display:flex;gap:6px;align-items:center}.qty button{border:1px solid var(--line);background:white;width:30px;height:30px;border-radius:9px}
.notice{border-radius:16px;background:#f6ebe7;border:1px solid #ead0c9;color:#714039;padding:12px;font-size:11px;line-height:1.45}
.success{border-radius:16px;background:#e7f0e6;border:1px solid #cbdcc9;color:#28523a;padding:12px;font-size:11px;line-height:1.45}
.months{display:flex;flex-wrap:wrap;gap:5px}.mo{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:white;font-size:9px;font-weight:900}.mo.on{background:var(--forest);color:white;border-color:var(--forest)}
.pathgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.path{background:white;border:1px solid var(--line);border-radius:17px;padding:12px;min-height:110px}.path.sel{outline:3px solid rgba(215,134,54,.35);background:#fff6e9}
.progress{height:11px;background:#e6dfd3;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:var(--forest);border-radius:999px}
.bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(470px,100%);display:grid;grid-template-columns:repeat(5,1fr);background:#fffdf8f2;backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:8px 7px calc(8px + env(safe-area-inset-bottom));z-index:30}
.bottom button{border:0;background:transparent;color:var(--muted);font-size:10px}.bottom span{display:block;font-size:19px}.bottom button.on{color:var(--forest);font-weight:900}
.hidden{display:none!important}
details{background:white;border:1px solid var(--line);border-radius:16px;padding:10px 12px;margin:8px 0}
summary{font-weight:900;cursor:pointer}
.adminStatus{display:flex;gap:7px;flex-wrap:wrap}.statusBtn{border:1px solid var(--line);background:white;border-radius:10px;padding:7px 9px;font-size:10px;font-weight:800}.statusBtn.approved{background:var(--forest);color:white}
[dir="rtl"]{font-family:Arial,sans-serif}


/* =========================
   V1.21 VISUAL POLISH
   ========================= */
:root{
  --nsb-green:#173b2d;
  --nsb-green-2:#2f6b4f;
  --nsb-orange:#ec6f31;
  --nsb-cream:#fff8ed;
  --nsb-cream-2:#f5efe5;
  --nsb-line:#e5ddd0;
  --nsb-text:#173b2d;
  --nsb-muted:#6e7a73;
  --nsb-white:#ffffff;
  --nsb-shadow:0 14px 40px rgba(23,59,45,.08);
}
html{background:var(--nsb-cream)}
body{
  background:
    radial-gradient(circle at 20% 0%, rgba(236,111,49,.06), transparent 28%),
    linear-gradient(180deg,#fffaf2 0%,#fff8ed 100%);
  color:var(--nsb-text);
}
.topbar{
  background:rgba(255,248,237,.88);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(23,59,45,.06);
}
.brand{
  letter-spacing:-.04em;
}
.brand small{
  letter-spacing:.11em;
  font-weight:700;
}
.screen{
  padding-bottom:104px;
}
.card{
  border:1px solid rgba(23,59,45,.08);
  box-shadow:var(--nsb-shadow);
  border-radius:22px;
  background:rgba(255,255,255,.92);
}
.ey{
  font-size:11px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--nsb-green-2);
  font-weight:850;
}
h1,h2,h3{
  letter-spacing:-.035em;
}
h1{
  line-height:1.02;
}
.hero{
  border-radius:28px !important;
  background:
    linear-gradient(140deg,rgba(23,59,45,.98),rgba(41,91,68,.97)) !important;
  box-shadow:0 20px 50px rgba(23,59,45,.18);
  overflow:hidden;
  position:relative;
}
.hero::after{
  content:"";
  position:absolute;
  width:180px;height:180px;
  border-radius:50%;
  background:rgba(236,111,49,.16);
  right:-80px;top:-65px;
}
.hero>*{position:relative;z-index:1}
.btn{
  min-height:48px;
  border-radius:16px;
  font-weight:850;
  box-shadow:none;
}
.btn:not(.light){
  background:linear-gradient(135deg,var(--nsb-orange),#f18045);
}
.btn.light{
  background:#f1f5ee;
  color:var(--nsb-green);
  border:1px solid rgba(23,59,45,.07);
}
.metric{
  letter-spacing:-.04em;
}
.notice{
  border-radius:18px;
}
.list .card,.planDay,.checkRow{
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
@media (hover:hover){
  .list .card:hover,.planDay:hover,.checkRow:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 35px rgba(23,59,45,.1);
  }
}
input,select,textarea{
  border-radius:14px !important;
  border:1px solid var(--nsb-line) !important;
  background:rgba(255,255,255,.96) !important;
}
.cameraBox{
  border-radius:26px;
  overflow:hidden;
  box-shadow:var(--nsb-shadow);
}
.fileButton{
  border-radius:16px;
  background:linear-gradient(135deg,var(--nsb-green),var(--nsb-green-2));
  font-weight:850;
}
.bottomnav{
  left:12px !important;
  right:12px !important;
  bottom:10px !important;
  width:auto !important;
  border-radius:24px;
  background:rgba(255,255,255,.92) !important;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(23,59,45,.09);
  box-shadow:0 14px 36px rgba(23,59,45,.15);
  overflow:hidden;
}
.bottomnav button{
  padding:10px 4px 9px !important;
  border-radius:16px;
}
.bottomnav button.active,
.bottomnav button[aria-current="page"]{
  background:#edf4eb;
  color:var(--nsb-green);
}
.pill{
  border-radius:999px;
}
.progress{
  height:8px;
  background:#edf0e8;
  border-radius:999px;
  overflow:hidden;
}
.progress span{
  background:linear-gradient(90deg,var(--nsb-green-2),#66a06f);
}
.success{
  border-radius:18px;
  background:#eaf4e7;
  color:var(--nsb-green);
}
.warn{
  border-radius:18px;
}
@media(max-width:520px){
  main{padding-left:14px !important;padding-right:14px !important}
  .card{border-radius:20px}
  .hero{padding:22px !important}
  h1{font-size:34px}
  .grid2{gap:10px}
}


/* =========================
   V1.22 VISUAL HOTFIX
   Uses actual app selectors
   ========================= */
.app{
  max-width:520px;
  background:
    radial-gradient(circle at 82% 4%,rgba(236,111,49,.10),transparent 25%),
    linear-gradient(180deg,#fffaf2 0%,#f7f0e5 100%);
}
.top{
  padding:14px 16px;
  background:rgba(255,250,242,.94);
  border-bottom:1px solid rgba(23,59,45,.08);
  box-shadow:0 5px 24px rgba(23,59,45,.04);
}
.logo{
  width:50px;height:50px;
  border-radius:16px;
  background:linear-gradient(145deg,#173b2d,#2e664b);
  box-shadow:0 8px 20px rgba(23,59,45,.18);
}
.brand b{font-size:18px;letter-spacing:-.045em}
.brand small{font-size:7.5px;letter-spacing:.15em}
main{padding:16px}
.hero{
  border-radius:30px;
  padding:27px 22px;
  background:
    radial-gradient(circle at 92% 12%,rgba(236,111,49,.22),transparent 27%),
    linear-gradient(145deg,#173b2d 0%,#2d644a 100%);
  box-shadow:0 18px 44px rgba(23,59,45,.20);
}
.hero h1{font-size:38px;letter-spacing:-.05em}
.hero p{font-size:14px;max-width:350px}
.card{
  border-radius:23px;
  border:1px solid rgba(23,59,45,.08);
  background:rgba(255,253,248,.96);
  box-shadow:0 10px 30px rgba(23,59,45,.07);
  padding:16px;
}
.food{
  border-radius:19px;
  background:linear-gradient(180deg,#fff,#fffaf4);
  border-color:rgba(23,59,45,.08);
  box-shadow:0 7px 20px rgba(23,59,45,.045);
}
.btn{
  border-radius:17px;
  min-height:48px;
  background:linear-gradient(135deg,#173b2d,#2e664b);
}
.btn.o,.fileButton{
  background:linear-gradient(135deg,#e76e30,#f08a4e);
}
.btn.light{
  background:#f0f4eb;
  border-color:rgba(23,59,45,.08);
}
.cameraBox{
  border:none!important;
  background:linear-gradient(145deg,#e8efe5,#f5eadc)!important;
  box-shadow:0 12px 34px rgba(23,59,45,.09);
}
.bottom{
  bottom:10px;
  width:min(496px,calc(100% - 20px));
  border:1px solid rgba(23,59,45,.10);
  border-radius:24px;
  padding:7px 7px calc(7px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);
  box-shadow:0 15px 40px rgba(23,59,45,.17);
}
.bottom button{
  min-height:52px;
  border-radius:16px;
  padding:5px 3px;
}
.bottom button.on{
  background:#edf4ea;
  color:#173b2d;
}
.bottom span{font-size:20px;margin-bottom:2px}
.progress{height:9px;background:#e9ece4}
.progress i{
  background:linear-gradient(90deg,#2e664b,#79a46e);
}
.notice{
  background:#fff1e9;
  border-color:#f0d3c5;
  color:#704634;
}
.pill{
  box-shadow:inset 0 0 0 1px rgba(23,59,45,.04);
}
@media(max-width:520px){
  .app{max-width:none}
  main{padding:13px 14px 112px}
  .hero{padding:24px 20px}
  .hero h1{font-size:35px}
  .top{padding-left:14px;padding-right:14px}
}


/* =========================
   V1.23 VISUAL ALIGNMENT
   approved mockup direction
   ========================= */
.impactCard{
  background:linear-gradient(145deg,#1d4a37 0%,#2f6b4f 100%);
  color:white;
  border:none;
  box-shadow:0 18px 40px rgba(23,59,45,.18);
}
.impactCard .ey,.impactCard .muted{color:#dce9df}
.impactGrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:12px;
}
.impactGrid>div{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.08);
  padding:12px 8px;
  border-radius:16px;
  text-align:center;
}
.impactGrid b{
  display:block;
  font-size:20px;
  letter-spacing:-.04em;
  margin-bottom:3px;
}
.impactGrid small{
  display:block;
  font-size:9px;
  line-height:1.2;
  color:#e7f0e9;
}
#home .grid2 .btn.light{
  min-height:58px;
  text-align:left;
  padding-left:14px;
  font-size:13px;
}
#scan h1,#pantry h1,#plan h1,#profile h1,#ingredients h1{
  font-size:31px;
}
.cameraBox{
  min-height:360px!important;
  border-radius:28px!important;
}
.cameraPlaceholder .big{
  font-size:48px!important;
}
#manualConfirm.card,#visionStatus.card{
  border-radius:22px;
}
.food{
  padding:14px;
}
.food .row b{
  font-size:15px;
}
.planDay{
  border-radius:18px;
  border:1px solid rgba(23,59,45,.07);
  background:#fffdfa;
  box-shadow:0 6px 18px rgba(23,59,45,.04);
}
.checkRow{
  border-radius:17px;
  border:1px solid rgba(23,59,45,.07);
  background:#fffdfa;
}
#profile .card{
  overflow:hidden;
}
.bottom{
  max-width:500px;
}
.bottom button{
  font-size:10px;
  font-weight:760;
}
.bottom span{
  display:block;
  font-size:20px;
}
@media(max-width:390px){
  .impactGrid{gap:6px}
  .impactGrid b{font-size:17px}
  .impactGrid small{font-size:8px}
  .hero h1{font-size:33px}
}


/* V1.25 RELEASE HARDENING */
.networkState{
  position:sticky;
  top:74px;
  z-index:8;
  width:max-content;
  max-width:calc(100% - 28px);
  margin:7px auto -2px;
  padding:5px 10px;
  border-radius:999px;
  font-size:10px;
  font-weight:850;
  background:#e9f2e7;
  color:#173b2d;
  border:1px solid rgba(23,59,45,.08);
  opacity:.92;
}
.networkState.offline{
  background:#fff0e6;
  color:#7b442e;
  border-color:#edd0c1;
}
#passwordRecoveryPanel{
  border:1px solid rgba(236,111,49,.20);
  box-shadow:0 14px 38px rgba(23,59,45,.10);
}
#passwordRecoveryPanel h3{margin:.35rem 0}


/* V1.27 CONSUMER RELEASE CANDIDATE */
.skipLink{
  position:fixed;left:12px;top:-60px;z-index:200;
  background:#173b2d;color:white;padding:10px 14px;border-radius:12px;
}
.skipLink:focus{top:12px}
.toast{
  position:fixed;
  left:50%;bottom:90px;z-index:180;
  transform:translateX(-50%);
  width:min(420px,calc(100% - 28px));
  padding:12px 15px;
  border-radius:16px;
  background:#173b2d;color:white;
  box-shadow:0 18px 45px rgba(23,59,45,.24);
  font-size:13px;font-weight:750;
  text-align:center;
}
.onboarding{
  position:fixed;inset:0;z-index:170;
  display:flex;align-items:flex-end;justify-content:center;
  padding:18px;
  background:rgba(18,35,28,.48);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.onboarding.hidden{display:none}
.onboardingCard{
  width:min(500px,100%);
  max-height:92vh;overflow:auto;
  background:#fffaf2;
  padding:24px;
  border-radius:30px;
  box-shadow:0 28px 75px rgba(12,35,25,.28);
}
.onboardingLogo img{
  width:68px;height:68px;border-radius:20px;
  box-shadow:0 10px 25px rgba(23,59,45,.15);
}
.onboardingCard h1{font-size:32px;margin:.45rem 0 .7rem}
.onboardPoints{
  display:grid;gap:9px;margin:18px 0;
}
.onboardPoints>div{
  display:flex;gap:10px;align-items:flex-start;
  padding:12px 13px;border-radius:16px;
  background:#f0f4eb;border:1px solid rgba(23,59,45,.07);
  font-size:13px;font-weight:730;
}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{
  outline:3px solid rgba(236,111,49,.45)!important;
  outline-offset:2px;
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* V1.30 PANTRY + FEEDBACK */
.pantryEntry{
  padding:12px 0;
  border-bottom:1px solid rgba(23,59,45,.09);
}
.pantryEntry:last-child{border-bottom:0}
.pantryMeta{margin-top:9px}
textarea{
  width:100%;box-sizing:border-box;resize:vertical;
  border:1px solid rgba(23,59,45,.12);background:#fffdfa;
  border-radius:14px;padding:11px;font:inherit;color:inherit;
}


/* =========================
   V1.38 VISUAL RELEASE
   premium catalogue + responsive refinement
   ========================= */
:root{--v38-shadow:0 20px 60px rgba(28,52,39,.11);--v38-soft:#f0eadf;--v38-gold:#c89a55}
body{background:radial-gradient(circle at 15% 5%,#fff8ec 0,#ede4d7 42%,#e6ddcf 100%)}
.app{box-shadow:0 0 0 1px rgba(83,74,57,.08),0 30px 90px rgba(70,58,42,.12);overflow:hidden}
.top{padding:12px 16px;background:rgba(255,250,242,.9);border-bottom-color:rgba(109,96,73,.12)}
.brandMark{width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,#fffdf7,#ede3d1);border:1px solid rgba(66,81,57,.15);display:grid;place-items:center;box-shadow:0 7px 20px rgba(35,62,45,.08)}
.brandMark img{width:38px;height:38px;object-fit:contain}
.brand b{font-family:Georgia,serif;letter-spacing:.035em}.brand small{letter-spacing:.16em}
.heroPremium{position:relative;overflow:hidden;padding:27px 22px 20px;background:radial-gradient(circle at 85% 20%,rgba(187,153,90,.22),transparent 32%),linear-gradient(150deg,#315c46 0,#173b2d 56%,#102b21 100%)}
.heroPremium:after{content:'❋';position:absolute;right:-18px;bottom:-46px;font-size:160px;opacity:.045;transform:rotate(-12deg)}
.heroTopline{display:flex;align-items:center;justify-content:space-between;gap:12px}.heroPremium .ey{color:#f0c990}.heroBadge{font-size:9px;letter-spacing:.07em;text-transform:uppercase;border:1px solid rgba(255,255,255,.24);padding:7px 9px;border-radius:999px;color:#f5ead8;background:rgba(255,255,255,.06)}
.heroPremium h1{font-size:38px;line-height:.98;letter-spacing:-.025em;margin:22px 0 13px;color:#fff}.heroPremium h1 em{font-weight:400;color:#f1d2a0}.heroPremium p{color:#dfe9e1;max-width:390px;font-size:14px;margin:0 0 17px}.heroActions{display:grid;grid-template-columns:1.15fr .85fr;gap:9px}.heroPremium .btn{margin:0;min-height:48px}.heroPrimary{background:#fff!important;color:var(--forest)!important}.heroSecondary{background:transparent!important;border:1px solid rgba(255,255,255,.32)!important;color:white!important}.heroProof{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px;padding-top:15px;border-top:1px solid rgba(255,255,255,.15);font-size:10px;color:#d9e5dc}.heroProof span{white-space:nowrap}
.sectionHeading{display:flex;align-items:center;justify-content:space-between;gap:12px}.sectionHeading h3{margin-top:4px}.actionHub{padding:16px}.actionGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.actionTile{min-height:105px;text-align:left;border:1px solid #e5ddd0;background:linear-gradient(160deg,#fffdf8,#f8f1e6);border-radius:18px;padding:12px;color:var(--forest);display:flex;flex-direction:column;gap:3px;transition:.2s transform,.2s box-shadow}.actionTile:active{transform:scale(.98)}.actionIcon{width:34px;height:34px;border-radius:12px;background:#e4ecdf;display:grid;place-items:center;font-size:18px;margin-bottom:5px}.actionTile b{font-size:12px}.actionTile small{font-size:9px;line-height:1.3;color:var(--muted)}
.catalogueHero,.sectionHero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:4px 0 15px}.catalogueHero h1,.sectionHero h1{margin-bottom:8px}.catalogueHero p,.sectionHero p{margin:0;max-width:500px}.catalogueCount{min-width:90px;text-align:center;padding:12px 10px;border-radius:18px;background:linear-gradient(145deg,#e4ebdd,#fff8eb);border:1px solid var(--line)}.catalogueCount b{font-family:Georgia,serif;font-size:24px}.catalogueCount span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.categoryChips{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 10px;scrollbar-width:none}.categoryChips::-webkit-scrollbar{display:none}.catalogChip{white-space:nowrap;border:1px solid var(--line);background:#fffaf2;color:var(--forest);border-radius:999px;padding:9px 12px;font-size:10px;font-weight:800}.catalogChip.on{background:var(--forest);border-color:var(--forest);color:white}
.catalogueControls{padding:11px;margin-top:0}.searchWrap{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:0 11px}.searchWrap span{font-size:20px;color:var(--muted)}.searchWrap input{border:0;padding-left:0;outline:0}.catalogueSelectors{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.foodListMeta{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);padding:7px 3px 10px}.foodListMeta b{color:var(--forest);font-size:13px}.foodListMeta span{font-size:10px}
.foodCatalogue{grid-template-columns:1fr;gap:8px}.foodCard{width:100%;min-height:82px;display:grid;grid-template-columns:56px 1fr 22px;align-items:center;text-align:left;gap:11px;padding:10px 11px;border-radius:18px;box-shadow:0 5px 16px rgba(56,48,37,.045)}.foodVisual,.pantryVisual,.planFoodIcon,.shoppingFoodIcon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:25px;border:1px solid rgba(44,65,50,.08)}.foodBody{min-width:0}.foodBody small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.foodBody b{font-size:14px;margin:3px 0 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.foodArrow{font-size:25px;color:#9c988e}.loadMore{max-width:300px;margin:16px auto 3px;display:block}
.cat-verdura{background:linear-gradient(145deg,#e3efdc,#f5f2df)}.cat-frutta{background:linear-gradient(145deg,#f7e3d1,#fff3db)}.cat-legumi{background:linear-gradient(145deg,#eee0cb,#f9f0df)}.cat-cereali{background:linear-gradient(145deg,#efe5c9,#faf4e4)}.cat-pesce{background:linear-gradient(145deg,#dcebea,#eef6f2)}.cat-carne{background:linear-gradient(145deg,#f1ddd7,#faf0ea)}.cat-latticini{background:linear-gradient(145deg,#eef0e6,#fffaf0)}.cat-uova{background:linear-gradient(145deg,#f7edd0,#fff8e8)}.cat-erbe{background:linear-gradient(145deg,#dfe9d8,#eef4e7)}.cat-dispensa{background:linear-gradient(145deg,#e8e0d5,#f7f0e7)}
.ingredientDetail{margin-top:18px;padding-top:10px;border-top:1px solid var(--line)}.ingredientHero{position:relative;display:flex;align-items:center;gap:15px;border-radius:24px;padding:18px;border:1px solid rgba(45,66,50,.10);box-shadow:0 12px 35px rgba(48,58,45,.07)}.ingredientIcon{width:78px;height:78px;border-radius:23px;background:rgba(255,255,255,.62);display:grid;place-items:center;font-size:39px;box-shadow:inset 0 0 0 1px rgba(50,65,50,.08)}.ingredientHeroCopy{flex:1}.ingredientHero h2{font-size:31px;margin:4px 0 8px}.ingredientMonths{margin-top:9px}.detailClose{position:absolute;right:11px;top:10px;border:0;background:rgba(255,255,255,.6);width:30px;height:30px;border-radius:50%;font-size:20px;color:var(--forest)}.detailIntro{padding:16px 5px 8px}.detailIntro p{margin:4px 0}.premiumPaths{grid-template-columns:1fr;gap:7px}.premiumPath{min-height:0;display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start;padding:13px}.pathIcon{width:38px;height:38px;border-radius:12px;background:#edf0e4;display:grid;place-items:center;font-size:18px}.premiumPath b{font-size:11px;letter-spacing:.08em}.premiumPath p{margin:4px 0 2px}.premiumPath.isLocked{background:#f8f3ee}.safetyCard{margin-top:10px}.addPantryCard{padding:16px}.smallRound{width:34px!important;height:34px!important;font-size:18px!important}.quantityField{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);padding:6px 10px;border-radius:14px}.quantityField label{font-size:10px;font-weight:900}.quantityField input{border:0;text-align:right;padding:8px}.quantityField span{font-weight:900}
.compactHero{align-items:center;margin-bottom:10px}.roundIcon{width:52px;height:52px;border-radius:18px;background:linear-gradient(145deg,#dfe9d8,#f8efdc);border:1px solid var(--line);display:grid;place-items:center;font-size:22px}.miniStat{min-width:62px;height:62px;border-radius:19px;background:var(--forest);color:white;display:grid;place-items:center;text-align:center;font:700 22px Georgia,serif}.miniStat span{display:block;font:700 8px Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#d7e5db;margin-top:-8px}
.pantryGrid{display:grid;gap:9px}.pantryCard{background:var(--paper);border:1px solid var(--line);border-radius:21px;padding:13px;box-shadow:0 7px 22px rgba(67,59,44,.055)}.pantryCardTop{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center}.pantryTitle{min-width:0}.pantryTitle small,.pantryTitle span{display:block;color:var(--muted);font-size:9px}.pantryTitle b{display:block;font-size:14px;margin:2px 0}.pantryWeight{font-family:Georgia,serif;font-size:17px}.priorityBar{height:3px;background:#eee7db;border-radius:99px;margin:11px 0}.priorityBar span{display:block;height:100%;border-radius:99px;width:55%;background:#c9a45e}.priority-high .priorityBar span{width:100%;background:#c6654d}.priority-medium .priorityBar span{width:65%;background:#c9a45e}.priority-low .priorityBar span{width:30%;background:#7ca27d}.premiumQty{justify-content:center;margin:4px 0 7px}.premiumQty button{width:35px;height:35px;border-radius:12px}.pantryMeta{display:grid;grid-template-columns:.7fr 1.3fr;gap:8px}.pantryMeta .field{margin:6px 0}.pantryActions{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:9px;margin-top:7px}.textAction{border:0;background:transparent;color:var(--forest);font-weight:800;font-size:10px}.dangerText{color:#8c4038}
.planGrid{display:grid;gap:8px}.planCard{background:var(--paper);border:1px solid var(--line);border-radius:19px;padding:11px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:10px}.dayBadge{width:44px;height:44px;border-radius:14px;background:#173b2d;color:white;display:grid;place-items:center;font-weight:900;font-size:11px}.planFood{display:flex;align-items:center;gap:9px}.planFoodIcon{width:42px;height:42px;border-radius:13px;font-size:20px}.planFood b,.planFood small{display:block}.planFood b{font-size:12px}.planFood small{font-size:9px;color:var(--muted);margin-top:3px}.sourcePill{font-size:8px;font-weight:900;border-radius:999px;padding:6px 8px;background:#e5eadf;color:#315441}.seasonSource{background:#f3e8d5;color:#785733}
.shoppingCard{display:grid;gap:10px}.shoppingNotice{display:flex;align-items:center;gap:10px;background:#e8f0e4;border:1px solid #d0dfcb;border-radius:17px;padding:12px}.shoppingNotice>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:white}.shoppingNotice b,.shoppingNotice small{display:block}.shoppingNotice small{color:#577060;font-size:9px;margin-top:2px}.shoppingGroup{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:12px}.shoppingGroupTitle{display:flex;align-items:center;gap:7px;padding:2px 2px 9px;border-bottom:1px solid var(--line)}.shoppingRow{display:grid;grid-template-columns:20px 42px 1fr 20px;align-items:center;gap:9px;padding:10px 1px;border-bottom:1px solid #eee6da}.shoppingRow:last-child{border-bottom:0}.shoppingRow input{width:18px;height:18px}.shoppingFoodIcon{width:40px;height:40px;border-radius:12px;font-size:19px}.shoppingRow b,.shoppingRow small{display:block}.shoppingRow b{font-size:12px}.shoppingRow small{font-size:9px;color:var(--muted);margin-top:2px}.shoppingPlus{font-size:19px;color:#8e928a}
.emptyState{grid-column:1/-1;text-align:center;background:var(--paper);border:1px dashed #d6c9b7;border-radius:22px;padding:27px 18px;color:var(--forest)}.emptyState>span{width:54px;height:54px;border-radius:18px;background:#e8eddf;display:grid;place-items:center;margin:0 auto 10px;font-size:24px}.emptyState b,.emptyState small{display:block}.emptyState small{color:var(--muted);margin-top:5px;line-height:1.4}

@media (min-width:700px){
 .app{max-width:760px}.bottom{width:min(760px,100%)}main{padding:22px 28px}.foodCatalogue{grid-template-columns:1fr 1fr}.premiumPaths{grid-template-columns:1fr 1fr}.pantryGrid{grid-template-columns:1fr 1fr}.planGrid{grid-template-columns:1fr 1fr}.heroPremium{padding:35px 32px}.heroPremium h1{font-size:48px}.actionGrid{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1050px){
 .app{max-width:1180px}.bottom{width:min(1180px,100%)}.top{padding-left:30px;padding-right:30px}main{padding:28px 42px}.screen.on{max-width:1080px;margin:0 auto}.foodCatalogue{grid-template-columns:repeat(3,1fr)}.premiumPaths{grid-template-columns:repeat(3,1fr)}.pantryGrid{grid-template-columns:repeat(2,1fr)}.planGrid{grid-template-columns:repeat(2,1fr)}.heroPremium{min-height:370px;display:flex;flex-direction:column;justify-content:center;padding-right:42%}.heroPremium:before{content:'NON SI\\A BUTTA';white-space:pre;position:absolute;right:6%;top:24%;font:400 48px/1.05 Georgia,serif;letter-spacing:.05em;color:rgba(255,255,255,.055);text-align:center}.heroActions{max-width:520px}.actionGrid{grid-template-columns:repeat(6,1fr)}.catalogueHero{align-items:center}
}


/* =========================
   V1.38.1 VISUAL QA HOTFIX
   ========================= */
.lang{width:auto!important;min-width:72px;max-width:88px;flex:0 0 auto;padding-left:12px;padding-right:28px}
.brand{min-width:0}
.brand b{display:block;line-height:1.03}
.brand small{line-height:1.15;max-width:230px}
.top{min-height:76px}
.screen{scroll-margin-top:96px}

@media(max-width:420px){
  .top{gap:9px;padding:10px 12px}
  .brandMark{width:44px;height:44px;flex:0 0 44px}
  .brandMark img{width:34px;height:34px}
  .brand b{font-size:16px;letter-spacing:.02em}
  .brand small{font-size:6.8px;letter-spacing:.11em;max-width:155px}
  .lang{min-width:62px;max-width:70px;padding:8px 24px 8px 9px;font-size:12px}
  .networkState{top:68px}
}

@media(min-width:1050px){
  .app{position:relative;padding-bottom:42px}
  main{padding-left:132px;padding-bottom:54px}
  .bottom{
    left:calc(50% - 570px);right:auto;bottom:28px;transform:none;
    width:84px!important;max-width:84px;grid-template-columns:1fr;
    gap:4px;padding:8px;border-radius:26px;
  }
  .bottom button{min-height:66px;padding:7px 3px}
  .bottom span{font-size:19px}
  .bottom i{font-size:9px}
  .screen.on{max-width:980px}
}


/* =========================
   V1.38.2 HOTFIX2 — APPROVED MOCKUP ALIGNMENT
   source of truth: light green/white mobile proposal
   ========================= */
:root{
  --mock-green:#147a1c;
  --mock-green-dark:#116f19;
  --mock-green-soft:#eef7ec;
  --mock-orange:#f28a25;
  --mock-bg:#f7f8f5;
  --mock-card:#ffffff;
  --mock-text:#151a16;
  --mock-muted:#687069;
  --mock-line:#e5e9e2;
}
html,body{background:#eef1eb;color:var(--mock-text)}
body{background:#eef1eb}
.app{max-width:470px;background:var(--mock-bg);box-shadow:0 22px 70px rgba(29,44,31,.14);padding-bottom:88px}
.top{min-height:58px;padding:8px 14px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--mock-line);box-shadow:none}
.brandMark{width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#f5f8f2;box-shadow:none}
.brandMark img{width:30px;height:30px}
.brand b{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;letter-spacing:.01em;color:var(--mock-text)}
.brand small{font-size:6.5px;letter-spacing:.10em;color:#6d756e}
.lang{min-width:58px!important;max-width:66px!important;border-color:var(--mock-line)!important;background:#fff!important;color:var(--mock-text)!important;border-radius:12px!important}
.networkState{position:fixed;top:62px;left:50%;transform:translateX(-50%);z-index:25;margin:0;font-size:9px;padding:4px 8px;opacity:.86}
main{padding:14px 14px 106px}
.screen{padding-bottom:12px}
h1,h2,h3,.serif{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mock-text);letter-spacing:-.03em}
h1{font-size:23px;line-height:1.12;margin:6px 0 15px}
h2{font-size:16px;line-height:1.2;margin:0}
.ey{color:var(--mock-green);font-size:9px;letter-spacing:.12em}
.muted{color:var(--mock-muted)}
.card{background:#fff;border:1px solid var(--mock-line);box-shadow:0 4px 16px rgba(31,44,32,.035);border-radius:14px}
.btn{background:linear-gradient(180deg,#16851f,#116f19);border-radius:9px;min-height:44px;font-size:12px}
.btn:not(.light){background:linear-gradient(180deg,#16851f,#116f19)}
.btn.o{background:#fff3e6;color:#a95412;border:1px solid #f4d6b6}
.btn.light{background:#fff;color:var(--mock-text);border:1px solid var(--mock-line)}
input,select,textarea{border-radius:9px!important;border-color:var(--mock-line)!important;background:#fff!important;color:var(--mock-text)!important}
.visuallyHidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Home matching approved phone mockup */
.homeWelcome{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 2px 13px}
.homeGreeting{font-size:18px;font-weight:800;letter-spacing:-.03em}
.homeWelcome small{display:block;margin-top:3px;font-size:8px;letter-spacing:.1em;color:var(--mock-muted)}
.iconButton,.addIconButton,.backButton{border:0;background:transparent;color:var(--mock-text);display:grid;place-items:center}
.iconButton{width:38px;height:38px;border-radius:50%;font-size:18px}
.homeImpactCard{background:linear-gradient(150deg,#147a1c 0%,#116f19 100%);border-radius:12px;color:#fff;padding:13px 14px;margin-bottom:20px;box-shadow:0 8px 20px rgba(20,128,28,.15)}
.homeImpactHead{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:800;margin-bottom:11px;opacity:.95}
.homeImpactGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.homeImpactGrid>div{padding:2px 3px}
.homeImpactGrid b{display:block;font-size:17px;line-height:1.1;margin-bottom:4px}
.homeImpactGrid small{display:block;color:#eff9ef;font-size:7.5px;line-height:1.25}
.mockSection{margin:0 0 22px}
.mockSection>h2,.mockSectionHead h2{font-size:14px;font-weight:800;margin-bottom:10px}
.mockQuickGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mockAction{border:1px solid #dce9d9;background:#f1f8ef;color:#167a1d;min-height:48px;border-radius:8px;padding:9px 10px;display:flex;align-items:center;gap:8px;text-align:left}
.mockAction span{font-size:16px;width:22px;text-align:center}.mockAction b{font-size:10px;line-height:1.15}
.mockAction.green{background:#edf7eb;border-color:#d8ead5;color:#13781b}.mockAction.orange{background:#fff2e5;border-color:#f6d9b8;color:#a95412}
.mockSectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.mockSectionHead h2{margin:0}.textLink{border:0;background:transparent;color:var(--mock-green);font-size:9px;font-weight:700;padding:10px 6px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.homeSeasonList{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.seasonMini{border:0;background:transparent;padding:0;text-align:center;color:var(--mock-text);min-width:0}
.seasonMiniIcon{width:58px;height:58px;max-width:100%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;margin:0 auto 5px;font-size:28px;border:1px solid var(--mock-line);background:#fff}
.seasonMini b{display:block;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seasonEmpty{grid-column:1/-1;background:#fff;border:1px dashed var(--mock-line);padding:14px;border-radius:10px;font-size:10px;color:var(--mock-muted)}
.catalogueShortcut{width:100%;border:1px solid var(--mock-line);background:#fff;border-radius:11px;padding:11px 12px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;color:var(--mock-text);text-align:left}
.catalogueShortcut>span:first-child{width:28px;height:28px;border-radius:8px;background:var(--mock-green-soft);color:var(--mock-green);display:grid;place-items:center;font-size:16px}
.catalogueShortcut b,.catalogueShortcut small{display:block}.catalogueShortcut b{font-size:10.5px}.catalogueShortcut small{font-size:8px;color:var(--mock-muted);margin-top:2px}

/* Native-like screen headers */
.mockScreenTitle{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;min-height:42px;margin:0 0 12px;text-align:center}
.mockScreenTitle h1{font-size:16px;margin:0;font-weight:800}.backButton{font-size:28px;justify-self:start;min-width:44px;min-height:44px}.addIconButton{font-size:24px;justify-self:end;min-width:44px;min-height:44px}
.screenLead{text-align:center;font-size:10px;color:var(--mock-muted);margin:-7px 12px 14px}

/* Camera screen */
#scan>.ey{display:none}#scan>h1{text-align:center;font-size:16px;margin:4px 0 12px}
#scan .cameraBox{min-height:430px!important;border-radius:14px!important;background:linear-gradient(160deg,#23341f,#0d110d)!important;box-shadow:none!important;border:0!important;position:relative}
#scan .cameraPlaceholder{color:#fff}#scan .cameraPlaceholder .big{font-size:42px!important}#scan .cameraPlaceholder p{color:#d4ddd4}
#scan .fileButton{background:#16851f;border-radius:10px;margin:12px auto 0;max-width:260px}

/* Catalogue */
.catalogueHero{align-items:center}.catalogueHero h1{font-size:20px}.catalogueCount{background:#f1f7ef;border-color:#dce9d9;border-radius:10px}.catalogueCount b{font-family:Inter,sans-serif;font-size:18px;color:var(--mock-green)}
.categoryChips{padding-bottom:8px}.catalogChip{background:#fff;border-color:var(--mock-line);color:var(--mock-text);border-radius:8px}.catalogChip.on{background:var(--mock-green);border-color:var(--mock-green);color:#fff}
.catalogueControls{border-radius:11px}.searchWrap{border-radius:9px;border-color:var(--mock-line)}
.foodCard{border-radius:10px;box-shadow:none;border-color:var(--mock-line);background:#fff}.foodVisual{border-radius:9px}.foodArrow{color:#aab0aa}

/* Seasonality */
.seasonControls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.seasonCountry,.seasonMonthMirror{height:37px;border:1px solid var(--mock-line);background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--mock-text);font-size:9px;font-weight:700}.seasonMonthTitle{display:none}.seasonSourceMeta{font-size:9px;color:var(--mock-muted);margin:0 0 9px}.seasonSourceMeta .sourceState{margin-bottom:5px}.seasonListMock{display:grid;gap:7px}.seasonRowMock{width:100%;display:grid;grid-template-columns:46px 1fr 9px;align-items:center;gap:10px;border:1px solid var(--mock-line);background:#fff;border-radius:9px;padding:8px;text-align:left;color:var(--mock-text)}.seasonRowIcon{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;font-size:23px}.seasonRowMock b,.seasonRowMock small{display:block}.seasonRowMock b{font-size:10px}.seasonRowMock small{font-size:8px;color:var(--mock-muted);margin-top:3px}.seasonRowMock i{width:7px;height:7px;border-radius:50%;background:var(--mock-green)}

/* Pantry */
.pantrySummaryRow{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--mock-line);padding:0 2px 10px;margin-bottom:9px}.pantrySummaryRow b{font-size:13px}.pantrySummaryRow b br{display:none}.pantrySummaryRow b span{font-size:9px;color:var(--mock-muted);font-weight:500;margin-left:3px}.pantrySummaryRow small{display:block;font-size:8px;color:var(--mock-muted);margin-top:3px}.pantryCard{border-radius:9px;box-shadow:none;border-color:var(--mock-line);padding:9px}.pantryVisual{border-radius:8px}.pantryTitle b{font-size:11px}.pantryWeight{font-family:Inter,sans-serif;font-size:11px}.pantryMeta{grid-template-columns:1fr 1fr}

/* Plan & shopping */
.planObjective{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--mock-line);border-radius:10px;padding:13px;margin-bottom:10px}.planObjective small,.planObjective b{display:block}.planObjective small{font-size:8px;color:var(--mock-muted);margin-bottom:5px}.planObjective b{font-size:10.5px}.planObjective>span{width:42px;height:42px;border-radius:50%;border:6px solid #d7ebd4;color:var(--mock-green);display:grid;place-items:center;font-size:14px}
.planCard{border-radius:9px;box-shadow:none;border-color:var(--mock-line);background:#fff}.dayBadge{border-radius:8px;background:#eff7ed;color:var(--mock-green)}.sourcePill{background:#eef7ec;color:var(--mock-green)}
.shoppingGroup,.shoppingNotice{border-radius:9px;box-shadow:none}.shoppingRow{grid-template-columns:20px 40px 1fr 14px}.shoppingRow input{accent-color:var(--mock-green)}

/* Profile and auth */
.profileIdentity{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--mock-line);border-radius:10px;padding:12px;margin-bottom:10px}.profileAvatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(145deg,#d8efd4,#f3f8ef);color:var(--mock-green);display:grid;place-items:center;font-size:20px;font-weight:800}.profileIdentity b,.profileIdentity small{display:block}.profileIdentity b{font-size:12px}.profileIdentity small{font-size:8.5px;color:var(--mock-muted);margin-top:3px}
#profile>.card{border-radius:10px;box-shadow:none}#authBox .grid2{grid-template-columns:1fr 1fr}

/* Locked editorial content: no operational text behind the lock */
.premiumPath.isLocked{background:#f6f7f5;border-color:#e5e8e3}.premiumPath.isLocked .pathIcon{background:#ecefec;color:#697169}.premiumPath.isLocked p{color:#7d837e}

/* Bottom nav matching approved mockup */
.bottom{bottom:0;width:min(470px,100%);border-radius:0;padding:7px 7px calc(7px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--mock-line);background:rgba(255,255,255,.98);box-shadow:0 -3px 16px rgba(31,44,32,.045);backdrop-filter:none}
.bottom button{min-height:50px;border-radius:8px;color:#687069;font-size:8px}.bottom button.on{background:transparent;color:var(--mock-green);font-weight:800}.bottom span{font-size:16px;margin-bottom:3px}.bottom i{font-style:normal}

.onboardingCard{background:#fff;border-radius:18px}.onboardPoints>div{background:#f4f8f2;border-color:var(--mock-line);border-radius:10px}

@media(max-width:390px){
 .homeSeasonList{gap:5px}.seasonMiniIcon{width:52px;height:52px;font-size:24px}.homeImpactGrid small{font-size:7px}.mockAction{padding:8px}.brand small{display:none}
}
@media(min-width:700px){
 .app{max-width:760px}.bottom{width:min(760px,100%)}.homeSeasonList{grid-template-columns:repeat(4,110px);justify-content:start}.mockQuickGrid{grid-template-columns:repeat(4,1fr)}
}
@media(min-width:1050px){
 .app{max-width:760px}.bottom{left:50%;right:auto;bottom:0;transform:translateX(-50%);width:min(760px,100%)!important;max-width:none;grid-template-columns:repeat(5,1fr);gap:0;padding:7px;border-radius:0}.bottom button{min-height:50px}.screen.on{max-width:680px}main{padding:20px 36px 106px}
}


/* HOTFIX2 — Profile / Login / Language screens */
.profileMenu{background:#fff;border:1px solid var(--mock-line);border-radius:10px;overflow:hidden;margin-bottom:10px}.profileMenu button{width:100%;min-height:46px;border:0;border-bottom:1px solid var(--mock-line);background:#fff;display:grid;grid-template-columns:26px 1fr auto 14px;align-items:center;gap:7px;padding:9px 11px;text-align:left;color:var(--mock-text)}.profileMenu button:last-child{border-bottom:0}.profileMenu button>span{font-size:15px;color:var(--mock-green);text-align:center}.profileMenu button b{font-size:10px}.profileMenu button small{font-size:8px;color:var(--mock-muted)}.profileMenu button i{font-style:normal;color:#a4aaa5}.profileSettingsCard{margin-top:10px}.accountSummaryCard{margin-top:10px}.accountConnected{display:flex;align-items:center;gap:9px;background:#eff8ed;border:1px solid #d9ead6;border-radius:9px;padding:10px}.accountConnected>span{width:28px;height:28px;border-radius:50%;background:var(--mock-green);color:#fff;display:grid;place-items:center}.accountConnected b,.accountConnected small{display:block}.accountConnected b{font-size:10px}.accountConnected small{font-size:8px;color:var(--mock-muted);margin-top:2px}
.loginBrand{text-align:center;padding:14px 14px 9px}.loginBrand img{width:64px;height:64px;border-radius:18px}.loginBrand h2{font-size:18px;margin:12px 0 6px}.loginBrand p{font-size:9px;color:var(--mock-muted);max-width:260px;margin:0 auto;line-height:1.4}.loginAuthCard{background:#fff;border:1px solid var(--mock-line);border-radius:12px;padding:14px}.loginAuthCard .btn{margin-top:8px}.passwordLink{width:100%;border:0;background:transparent;color:var(--mock-green);font-size:9px;font-weight:700;padding:12px 4px 4px}.loginConnected{margin-bottom:10px}
.languageList{background:#fff;border:1px solid var(--mock-line);border-radius:10px;overflow:hidden}.languageList button{width:100%;height:49px;border:0;border-bottom:1px solid var(--mock-line);background:#fff;display:grid;grid-template-columns:28px 1fr 24px;align-items:center;gap:8px;padding:0 12px;text-align:left;color:var(--mock-text)}.languageList button:last-child{border-bottom:0}.languageList button span{font-size:18px}.languageList button b{font-size:10.5px}.languageList button i{font-style:normal;color:transparent;text-align:right}.languageList button.on{background:#f6faf4}.languageList button.on i{color:var(--mock-green);font-weight:900}.languageHint{margin-top:18px;background:#eff8ed;border:1px solid #dcebd9;border-radius:9px;padding:11px;text-align:center;color:#47644a;font-size:8.5px}
.diagnosticHero{text-align:center;padding:12px 0 15px}.diagnosticHero>span{width:54px;height:54px;border-radius:50%;background:var(--mock-green);color:#fff;display:grid;place-items:center;margin:0 auto 9px;font-size:28px}.diagnosticHero b,.diagnosticHero small{display:block}.diagnosticHero b{font-size:14px}.diagnosticHero small{font-size:8.5px;color:var(--mock-muted);margin-top:4px}
#diagnosticResults.card,#feedbackCard.card{box-shadow:none;border-radius:10px}

/* V1.38.2 HOTFIX2.1 — approved mobile mockup alignment */
@media(max-width:768px){
  .top{display:none!important}
  .app{padding-top:0}
  main{padding-top:0}
  #home.screen{padding-top:18px}
  .mockListScreen{padding-top:16px}
  #profile .profileIdentity{margin-top:10px}
  #profile{min-height:calc(100dvh - 72px)}
  #profile .profileMenu{margin-bottom:0}
  .homeGreeting{margin-top:0}
  .homeQuickGrid{gap:8px}
  .homeQuickGrid button{min-height:62px;padding:10px 12px}
  .homeImpact{padding:14px 16px}
  .homeImpactStats{padding-top:10px}
  .bottom{height:70px;padding-bottom:max(5px,env(safe-area-inset-bottom))}
  .bottom button{min-height:56px}
}


/* HOTFIX2.2 — compact approved-mockup pantry + plan */
.pantryTabs{height:34px;display:flex;align-items:flex-end;border-bottom:1px solid var(--mock-line);margin:-1px 0 7px;padding:0 2px}.pantryTabs span{height:34px;display:flex;align-items:center;padding:0 8px;font-size:9px;font-weight:800;color:var(--mock-text);border-bottom:2px solid transparent}.pantryTabs span.on{color:var(--mock-green);border-bottom-color:var(--mock-green)}.pantryTabs b{font:inherit;margin-left:2px}
.pantryGrid{gap:0;background:#fff;border:1px solid var(--mock-line);border-radius:10px;overflow:visible}.pantryRow{background:#fff;border:0;border-bottom:1px solid var(--mock-line);padding:9px 10px}.pantryRow:last-child{border-bottom:0}.pantryRowMain{display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:center}.pantryRow .pantryVisual{width:44px;height:44px;font-size:23px}.pantryRow .pantryTitle b{font-size:10.5px;margin:0 0 2px}.pantryRow .pantryTitle span{font-size:8.5px;color:var(--mock-muted)}.pantryRow .pantryTitle small{font-size:7.5px;margin-top:2px}.pantryRowSide{display:grid;grid-template-columns:auto 22px;align-items:center;gap:6px}.pantryRow .pantryWeight{font-size:10.5px;white-space:nowrap}.pantryDetails{position:relative}.pantryDetails>summary{list-style:none;width:22px;height:30px;display:grid;place-items:center;cursor:pointer;color:#70766f;font-size:18px;border-radius:7px}.pantryDetails>summary::-webkit-details-marker{display:none}.pantryDetails[open]>summary{background:#f0f7ee;color:var(--mock-green)}.pantryEditPanel{position:absolute;z-index:12;right:-4px;top:34px;width:min(310px,calc(100vw - 54px));background:#fff;border:1px solid var(--mock-line);border-radius:10px;padding:10px;box-shadow:0 14px 34px rgba(24,45,27,.15)}.pantryEditPanel .premiumQty{margin:0 0 6px}.pantryEditPanel .pantryMeta{grid-template-columns:1fr 1fr}.pantryEditPanel .pantryActions{padding-top:7px}.pantryFooterActions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.pantryFooterActions .btn{margin:0;min-height:42px;font-size:9px}
.planPeriod{font-size:9px;color:var(--mock-text);margin:-3px 0 9px;padding:0 2px}.planGrid{display:grid;gap:6px}.planRow{display:grid!important;grid-template-columns:42px 42px 1fr 13px!important;align-items:center!important;gap:9px!important;min-height:64px!important;padding:8px 9px!important;background:#fff;border:1px solid var(--mock-line);border-radius:9px;box-shadow:none!important}.planRow .dayBadge{width:38px;height:28px;display:grid;place-items:center;border-radius:8px;background:#eff7ed;color:var(--mock-green);font-size:8px!important;font-weight:800;line-height:1;white-space:nowrap}.planRow .planFoodIcon{width:40px;height:40px;border-radius:9px;font-size:21px}.planCopy{min-width:0}.planCopy b,.planCopy small{display:block}.planCopy b{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planCopy small{font-size:8px;color:var(--mock-muted);margin-top:3px}.planChevron{font-size:18px;color:#a5aaa5}.planObjective{margin-bottom:9px}
@media(max-width:768px){.pantryFooterActions{display:none}.pantryGrid{margin-bottom:12px}.planGrid{grid-template-columns:1fr!important}}

/* HOTFIX2.2 final Home alignment to approved reference */
@media(max-width:768px){
  .homeWelcome small{display:none}
  .homeWelcome{padding:5px 2px 8px}
  .homeGreeting{font-size:16px}
  .iconButton{width:32px;height:32px;font-size:16px}
  .homeImpactCard{padding:11px 12px;margin-bottom:13px;border-radius:10px}
  .homeImpactHead{margin-bottom:9px}
  .mockSection{margin-bottom:14px}
  .mockSection>h2,.mockSectionHead h2{font-size:11px;margin-bottom:7px}
  .mockQuickGrid{grid-template-columns:1fr 1fr;gap:6px}
  .mockQuickGrid .mockAction:nth-child(1),.mockQuickGrid .mockAction:nth-child(4){grid-column:1/-1}
  .mockAction{min-height:39px;padding:7px 9px;border-radius:7px}
  .mockAction span{font-size:14px;width:19px}.mockAction b{font-size:8.5px}
  .seasonMiniIcon{width:46px;height:46px;font-size:22px;margin-bottom:4px}
  .seasonMini b{font-size:7.5px}
  .homeSeasonList{gap:5px}
  .catalogueShortcut{margin-top:2px}
}


/* HOTFIX2.3 — approved recognition-result screen */
.visionResultPhoto{position:relative;background:#f4f5f2;border:1px solid var(--mock-line);border-radius:12px;overflow:hidden;min-height:176px;margin:8px 0 12px;display:grid;place-items:center}
.visionResultPhoto img{width:100%;height:176px;object-fit:cover;display:block}
.visionConfidence{position:absolute;left:10px;bottom:9px;border-radius:999px;background:rgba(255,255,255,.96);border:1px solid #dfe8dc;padding:5px 8px;font-size:8px;font-weight:800;color:var(--mock-green)}
.visionResultBlock{margin:9px 0}.visionResultLabel{font-size:8.5px;font-weight:800;margin:0 0 5px;color:var(--mock-text)}
.visionCandidateMain{width:100%;display:grid;grid-template-columns:1fr 22px;align-items:center;text-align:left;gap:8px;border:1px solid var(--mock-line);background:#fff;border-radius:8px;padding:10px 11px;color:var(--mock-text);font-weight:800;font-size:10.5px}
.visionCheck{width:18px;height:18px;border-radius:5px;background:var(--mock-green);color:#fff;display:grid;place-items:center;font-size:10px}
.visionCandidateList{display:grid;gap:5px}.visionCandidateRow{width:100%;display:grid;grid-template-columns:22px 1fr auto;gap:7px;align-items:center;text-align:left;border:0;border-bottom:1px solid #eef0ec;background:#fff;padding:7px 4px;color:var(--mock-text);font-size:9.5px}.visionCandidateRow:last-child{border-bottom:0}.visionCandidateRow small{background:#f0f5ee;color:#617063;border-radius:999px;padding:4px 7px;font-size:8px}.visionCandidateIcon{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:#f3f6f1}.visionCandidateName{min-width:0}
.visionNoAlternative{border:1px dashed var(--mock-line);border-radius:8px;padding:11px;color:var(--mock-muted);font-size:9px;background:#fafbf9}
.visionHint{background:#eff8eb;border:1px solid #dcebd6;color:#4c6650;border-radius:8px;text-align:center;font-size:8.5px;padding:8px 10px;margin:9px 0}
.visionConfirmButton{width:100%;border-radius:9px;margin-top:10px}
.visionConfirmButton:disabled{opacity:.48;cursor:not-allowed}.visionManualLabel{display:block;margin:10px 0 5px;font-size:11px;font-weight:800}.visionManualSelect{display:block;width:100%;min-height:44px;border:1px solid var(--mock-line);border-radius:9px;background:#fff;padding:9px;color:var(--mock-text)}
.shoppingTabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#edf2ea;border-radius:11px;margin:0 0 10px}.shoppingTabs button{min-height:40px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:800}.shoppingTabs button.on{background:#fff;color:var(--mock-green);box-shadow:0 1px 5px rgba(36,69,43,.1)}.pantryShoppingRow{grid-template-columns:20px 42px 1fr 10px}

.visionResultScreen .mockScreenTitle h1{font-size:15px;line-height:1.15;white-space:nowrap}.visionResultScreen .mockScreenTitle{margin-bottom:4px}

/* HOTFIX2.3.5 — approved-mockup visual fidelity, no data/feature changes */
.seasonSourceMeta{margin:-1px 0 9px}
.seasonSourceCompact{width:100%;min-height:44px;border:0;border-radius:8px;background:#f3f8ef;color:var(--mock-green);display:grid;grid-template-columns:18px 1fr 14px;align-items:center;gap:6px;padding:6px 9px;text-align:left;font-size:8px;font-weight:750}
.seasonSourceCompact span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seasonSourceCompact i{font-style:normal;font-size:15px;color:#6f8a74}
.planObjective{display:grid;grid-template-columns:1fr 54px;align-items:center;gap:10px;background:#fff;border:1px solid var(--mock-line);border-radius:10px;padding:11px 12px;margin-bottom:9px}
.planObjective>div{min-width:0}
.planObjective small,.planObjective b,.planObjectiveMeta{display:block}
.planObjective small{font-size:8px;color:var(--mock-muted);margin-bottom:3px}
.planObjective b{font-size:10px;line-height:1.3}
.planObjectiveMeta{font-size:7.5px;color:var(--mock-green);font-weight:750;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planProgressRing{--plan-progress:0%;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--mock-green) var(--plan-progress),#dcebd9 0);position:relative;justify-self:end}
.planProgressRing:after{content:'';position:absolute;inset:5px;background:#fff;border-radius:50%}
.planProgressRing b{position:relative;z-index:1;font-size:9px;color:var(--mock-green)}
