/* Responsive compositions retained from the Nova experiment.
   The current main theme, typography and control sizes remain authoritative. */
.screen{gap:20px;padding-top:24px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.card{padding:20px;gap:16px}.card.list8{padding:0 16px;gap:0}
.row{gap:12px}.stack{gap:12px}
.menu-slot8{padding:14px 16px;gap:12px}.menu-slot8 .open{gap:6px}
.day header{padding:14px 16px;gap:12px;align-items:flex-start}
.day header b{white-space:normal;overflow:visible;text-overflow:clip}
.item{padding:14px 16px;gap:12px}
.profile8 .profnav8{gap:12px;background:transparent;overflow:visible}
.profile8 .duser{margin:0 0 8px;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.profile8 .dhead{margin:4px 0;padding:0}
.profile8 .ditem{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--card);gap:16px}
.fam8{padding:16px;gap:12px}
.sheet{padding-left:20px;padding-right:20px;gap:20px}
.ingr{padding:12px 0;gap:12px}
.recipe-form-wrap fieldset{display:flex;flex-direction:column;gap:20px}
.recipe-form-wrap fieldset>.row{align-items:flex-start}.recipe-form-wrap .stepn{margin-top:6px}
.recipe-products{margin:24px 0}.recipe-products h3{margin-bottom:8px}
.recipe-products>.row{padding:8px 0;border-bottom:1px solid var(--line)}
.recipe-import-body{padding:16px;display:flex;flex-direction:column;gap:12px}
.note{flex-wrap:wrap;align-items:center}.note>.grow{flex-basis:180px}.note>.btn{flex-shrink:0}
/* Rectangular, mutually exclusive store choices keep the existing theme colors. */
.store-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;background:transparent;border:0;padding:0;overflow:visible}
.store-tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;border:2px solid var(--line);border-radius:10px;background:var(--card);padding:10px;min-height:44px;white-space:normal;box-shadow:none}
.store-tabs button b{font-size:20px;color:var(--fg)}
.store-tabs button[aria-selected=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:none}
.store-tabs button:hover:not(:disabled):not([aria-selected=true]){border-color:var(--muted)}
.compare>button{border:2px solid var(--line);border-radius:10px;padding:12px;background:var(--card);opacity:1!important}
.compare>button[aria-selected=true]{border-color:var(--accent);background:var(--accent-soft)}
/* v8.21: search, amount and «+» in one row; who ate it sits next to the heading */
.ate8 form{display:grid;grid-template-columns:minmax(0,1fr) 72px 44px;gap:8px;align-items:center}
.ate8 #kadd{grid-column:1;grid-row:1}
.ate8 select{max-width:50%;width:auto}
.ate8 #kqty8{grid-column:2;grid-row:1;width:72px!important}
.ate8 form>button{grid-column:3;grid-row:1}
@media(max-width:380px){.screen{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.menu-slot8{padding:12px;gap:8px}}
@media(min-width:1024px){
 .app[data-layout=app]{max-width:none;width:calc(100% - 240px);margin:0 0 0 240px;min-height:100dvh}
 .app[data-layout=app]>.screen{width:100%;max-width:1280px;margin:0 auto;padding:32px 40px 64px;gap:24px;align-content:start}
 .app[data-layout=app]>.appbar{padding-left:40px;padding-right:40px}
 .tabs{position:fixed;top:0;left:0;right:auto;bottom:0;width:240px;padding:24px 12px;border-top:0;border-right:1px solid var(--line);background:var(--card)}
 .tabs nav{display:flex;flex-direction:column;max-width:none;gap:6px}
 .tabs button{flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:10px 12px;font-size:14px;border-radius:10px;min-height:40px}
 .tabs button[aria-current=page]{background:var(--accent-soft)}
 .tabs button:hover{background:var(--accent-soft)}
 .tabs button svg{width:20px;height:20px;flex:none}.tabs .badge{position:static;margin-left:auto;text-align:center;min-width:20px}
 .app[data-layout=app][data-view=menu]>.screen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
 .app[data-layout=app][data-view=menu]>.screen>*{grid-column:1/-1}.app[data-layout=app][data-view=menu]>.screen>.day{grid-column:auto}
 .app[data-layout=app][data-view=today]>.screen{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}
 .app[data-layout=app][data-view=today]>.screen>*{grid-column:1/-1}.app[data-layout=app][data-view=today]>.screen>.hero,.app[data-layout=app][data-view=today]>.screen>.day.today{grid-column:auto}
 .app[data-layout=app][data-view=today] .hero8 .heroimg{aspect-ratio:16/10;max-height:340px}
 .app[data-layout=app][data-view=shop]>.screen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
 .app[data-layout=app][data-view=shop]>.screen>*{grid-column:1/-1}.app[data-layout=app][data-view=shop]>.screen>.cat{grid-column:auto}
 .app[data-layout=app][data-view=profile]>.screen{max-width:1100px}.profile8 .profnav8{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .profile8 .duser,.profile8 .dhead{grid-column:1/-1}
 .app[data-layout=app][data-view=pRecipe]>.screen,.app[data-layout=app][data-view=pFamily]>.screen,.app[data-layout=app][data-view=pFood]>.screen,.app[data-layout=app][data-view=pBudget]>.screen,.app[data-layout=app][data-view=pDays]>.screen,.app[data-layout=app][data-view=pRecipes]>.screen,.app[data-layout=app][data-view=pNotify]>.screen,.app[data-layout=app][data-view=autocart]>.screen{max-width:920px}
 .app[data-layout=app][data-view=home]>.screen{max-width:1040px}
 .scrim{align-items:center;padding:32px}.sheet{max-width:820px;max-height:90dvh;border-radius:16px;padding:24px;gap:24px}
 .sheet .cover{max-height:300px}.grab{display:none}.pop8wrap{align-items:center;padding:32px}
 .cook{max-width:none}.cookhead,.cookbody,.cookfoot{width:100%;max-width:920px;margin:0 auto;padding-left:32px;padding-right:32px}
 .cookbody{padding-top:32px;padding-bottom:32px}
 .toast{left:calc(50% + 120px);bottom:24px;max-width:480px}
 .savebar{max-width:720px;width:100%;margin:0 auto;border:1px solid var(--line);border-bottom:0;border-radius:16px 16px 0 0;padding:20px}
 .app[data-layout=onboarding]{max-width:800px}
 .app[data-layout=onboarding]>.screen{width:100%;max-width:720px;margin:0 auto;padding:40px 32px}
 .ate8 form{display:flex}.ate8 select{width:auto;min-width:100px;max-width:200px}
}
@media(min-width:1560px){.app[data-layout=app][data-view=menu]>.screen{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* v8.25.2: menu cards keep their size; only the desktop grid is tighter */
@media(min-width:1024px){.app[data-layout=app][data-view=menu]>.screen{max-width:1100px}}
@media(min-width:1200px){.app[data-layout=app][data-view=menu]>.screen{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1280px}}

/* The first generated menu uses the full desktop menu width, without a sidebar. */
@media(min-width:1024px){
 .app[data-preview=true]{max-width:none;width:100%;margin:0 auto}
 .app[data-preview=true]>.screen.preview8{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;width:100%;max-width:1100px;padding:32px 40px 24px;gap:24px}
 .app[data-preview=true]>.screen.preview8>*{grid-column:1/-1}
 .app[data-preview=true]>.screen.preview8>.day{grid-column:auto}
}
@media(min-width:1200px){
 .app[data-preview=true]>.screen.preview8{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1280px}
}

/* Categories flow independently; action buttons keep their content width on desktop. */
.shopping-categories{display:flex;flex-direction:column;gap:20px;min-width:0}
@media(min-width:1024px){
 .shopping-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1px;grid-auto-flow:row dense;column-gap:24px;row-gap:0;align-items:start}
 .shopping-categories>.cat{padding-bottom:24px;align-self:start;min-width:0}
 .btn,.btn.block{width:fit-content;max-width:100%;align-self:flex-start;justify-self:start;flex:0 1 auto}
 .app[data-layout=onboarding]>.authscreen{display:flex;flex:0 0 auto;min-height:0;gap:16px;align-items:flex-start}
}
/* v8.26: profile rows of one compact height */
.profile8 .ditem{min-height:64px;padding:10px 14px;gap:12px;align-items:center}
.profile8 .ditem .small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile8 .ditem .grow{min-width:0}
.ready8 .sub8{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--line)}
.okdot8{width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-fg);display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.freq8{padding:4px 0}
/* v8.28: tighter dish rows and day headers (pictures keep their size) */
.menu-slot8{padding:8px 12px;gap:10px}.menu-slot8 .open{gap:2px}
.menu-slot8 .dish{font-size:16px;line-height:1.25;display:block;overflow:visible} /* v8.31: long names wrap fully, the row grows */
.day header{padding:8px 12px;align-items:center}
.meal8 .mealhead8{padding-top:6px;padding-bottom:0}

/* ============ v8.31: fresh design layer — calm white cards on a light sage ground, healthy greens ============ */
:root{
  --bg:#f2f5f0; --card:#ffffff; --fg:#17201a; --muted:#6a746d; --line:#e3e9e0;
  --accent:#2f7d52; --accent-fg:#ffffff; --accent-soft:#e7f3eb;
  --leaf1:#a9dcbc; --leaf2:#6cc193; --leaf3:#2f7d52; --leaf4:#1d5a39;
  --saffron:#d9962a; --saffron-soft:#fcf1dc;
  --shadow:0 1px 2px rgba(18,32,22,.04),0 8px 24px rgba(18,32,22,.06);
  --radius:18px;
}
body{background:var(--bg)}
.card,.day,.fam8,.agg8,.profile8 .ditem,.profile8 .duser,.item{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--card)}
.card h3,.day header b{font-size:17px;font-weight:600;letter-spacing:-.01em}
.card>.small.muted:first-of-type{margin-top:-6px}
.day{overflow:hidden}
.day header{background:var(--card);border-bottom:1px solid var(--line)}
.day.today header{background:var(--accent-soft)}
.mealhead8{color:var(--muted);font-weight:600}
.pill{border-radius:999px}
.pill.grey{background:transparent;border:1px solid var(--line);color:var(--fg);font-weight:600}
.btn{border-radius:12px;font-weight:600}
.btn.ghost{background:var(--card);border:1px solid var(--line)}
.iconbtn{border-radius:12px;border:1px solid var(--line);background:var(--card)}
.seg,.store-tabs{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:3px}
.seg button[aria-selected=true]{background:var(--card);color:var(--fg);box-shadow:0 1px 3px rgba(18,32,22,.12);border-radius:9px}
.chip{border-radius:999px;border:1px solid var(--line);background:var(--card)}
.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.progress{background:var(--line);border-radius:999px;overflow:hidden}
.progress i{background:var(--accent);border-radius:999px}
.tabs{background:var(--card);border-top:1px solid var(--line)}
.tabs .badge{background:var(--saffron);color:#fff}
.tabs .badge.dish8{background:var(--accent);color:var(--accent-fg)}
.eyebrow{color:var(--muted);letter-spacing:.08em}
.note{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}
.note.ready8{background:var(--accent-soft);border-color:transparent}
.note.ready8>b{background:var(--accent);color:var(--accent-fg);width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none}
.cooked8.kc8{background:var(--accent-soft);border:1px solid transparent}
/* stat row like in dashboards */
.budget8{font-variant-numeric:tabular-nums;color:var(--muted)}.budget8 b{color:var(--fg);font-size:18px}
.budget8.over8 b{color:var(--danger)}
.shophead8{align-items:center}
/* the welcome screen */
.welcome8{position:fixed;inset:0;z-index:30;background:#3f8f3c url(img9/frigo-new.png) center/cover no-repeat;display:flex;flex-direction:column;justify-content:space-between}
.welcome8::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,40,20,.35) 0%,rgba(10,40,20,0) 22%,rgba(10,40,20,0) 72%,rgba(10,40,20,.6) 100%);pointer-events:none}
.welcomebody8{position:relative;display:flex;flex-direction:column;gap:12px;align-items:stretch;padding:0 max(24px,env(safe-area-inset-left,0px)) calc(28px + env(safe-area-inset-bottom,0px));max-width:480px;width:100%;margin:0 auto}
.motto8{position:relative;margin:0;padding:calc(36px + env(safe-area-inset-top,0px)) 24px 0;color:#fff;font-family:"Lobster","Literata",Georgia,cursive;font-size:44px;line-height:1.1;font-weight:400;text-align:center;letter-spacing:-.01em;text-shadow:0 2px 12px rgba(0,0,0,.35);margin-bottom:8px}
.welcomego8{background:var(--accent);color:#fff;border:0;min-height:52px;font-size:17px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.welcomelogin8{background:none;border:0;color:#fff;font-weight:600;font-size:16px;padding:10px;text-shadow:0 1px 6px rgba(0,0,0,.4)}
/* the help slide as cards */
.helpscreen8 .helptitle8 h1{font-size:28px;line-height:1.15}
.helpscreen8 .help8{gap:12px}
.helpscreen8 .helprow8{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;gap:14px}
.helpscreen8 .helppic8{width:84px;height:84px}
.helpscreen8 .helptxt8 b{font-size:17px}
.helpscreen8 .helptxt8 span{font-size:14px}
/* prep */
.pcircs8{gap:8px}
.pcirc8{background:var(--bg);border-radius:14px;padding:8px 4px}
.pchip8{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;background:var(--accent-soft);margin-right:8px;font-size:16px}
.prephead8{display:flex;align-items:center;font-size:16px;font-weight:600;margin-top:14px}
.preping8{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.preping8 .ingpic8,.preping8 .thumb{flex:none}
.soupopen8{display:flex;gap:12px;align-items:flex-start;flex:1;min-width:0;background:none;border:0;padding:0;text-align:left;color:inherit}
.prepstore8{background:var(--bg);border-radius:12px;padding:8px 10px}
.ingpic8{border-radius:12px;background:var(--accent-soft)}

.buybox8{margin:0;background:var(--accent-soft);color:var(--fg);border-radius:12px;padding:8px 12px;font-size:13px;line-height:1.4}
.buybox8>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* v8.32 prep rows */
.pls8{display:flex;flex-direction:column;gap:2px}
.pl8{font-size:13px;line-height:1.35}
.pll8{color:var(--muted);margin-right:6px}
.pll8::after{content:":"}
.pcn8{font-weight:700;font-size:14px;color:var(--fg)}
.mascot8{background:var(--accent-soft);border-radius:50%;overflow:visible}
.mascotimg8{position:absolute;inset:0;border-radius:50%;background:url(img9/mascot.webp) center/contain no-repeat;box-shadow:inset 0 0 0 3px var(--card)}
.mbadge8{position:absolute;left:-6px;bottom:-4px;width:44px;height:44px;border-radius:14px;background:var(--card);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;padding:4px}
.mbadge8 svg{width:100%;height:100%}
/* v8.32: store comparison folds behind an arrow */
.cmpfold8>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}
.cmpfold8>summary::-webkit-details-marker{display:none}
.cmpfold8>summary h3{margin:0;flex:1}
.cmpfold8[open]>summary .chev8{transform:rotate(90deg)}
.cmpfold8[open]>summary{margin-bottom:8px}

.onboarding-login8{align-self:center;background:none;border:0;padding:10px;color:#6fcb98;text-decoration:underline;font:inherit;cursor:pointer}
/* v8.33: help ticks fill in one by one */
.helpscreen8 .helptxt8{flex:1;min-width:0}
.hchk8{flex:none;align-self:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--line);background:var(--card);position:relative;animation:hchk8fill .3s ease var(--d,0s) forwards}
.hchk8::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/16px no-repeat;transform:scale(0);animation:hchk8tick .4s cubic-bezier(.3,1.6,.5,1) var(--d,0s) forwards}
@keyframes hchk8fill{to{background:var(--accent);border-color:var(--accent)}}
@keyframes hchk8tick{to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.hchk8,.hchk8::after{animation-duration:.01s}}
body:has(.splash8) .hchk8,body:has(.splash8) .hchk8::after{animation-play-state:paused}

.store-missing{display:flex;align-items:flex-start;gap:10px;color:var(--fg)}
.store-missing-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;border:1.5px solid currentColor;border-radius:50%;color:var(--muted);font-weight:700;line-height:1}
.store-missing p{margin:0}
.store-missing ul{margin:8px 0;padding-left:20px;list-style:disc}
.store-missing li+li{margin-top:4px}
/* v8.33: category icon sits exactly in the middle of its progress ring */
.pring8{position:relative;display:block;width:64px;height:64px}
.pring8 .pcic8{position:absolute;inset:0;top:0;display:flex;align-items:center;justify-content:center;font-size:24px;line-height:1}

.tp8{padding:0;gap:0}
.tp8-open,.tp8-close{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;min-height:32px}
.tp8-open{display:flex;align-items:center;gap:6px;padding:6px 4px 6px 12px;min-width:0;flex:1;text-align:left;border-radius:999px 0 0 999px}
.tp8-close{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;padding:4px;border-radius:0 999px 999px 0}

/* A category has one border and rounded silhouette; rows only divide its interior. */
.shopping-items8{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card)}
.shopping-items8>.item{border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;margin:0}
.shopping-items8>.item:last-child{border-bottom:0}

/* Shared quantity input: unit belongs to the field; increment buttons stay outside it. */
.quantity-control8{display:inline-flex;align-items:stretch;gap:4px;width:148px;max-width:100%;min-width:0;flex:none;vertical-align:middle}
.quantity-value8{display:flex;align-items:center;gap:3px;flex:1;min-width:0;padding:0 7px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
.quantity-value8:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.quantity-control8 .quantity-value8 input[type=number]{appearance:textfield;-moz-appearance:textfield;flex:1;width:100%!important;min-width:0;min-height:44px;height:44px;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;outline:none;background:transparent;text-align:right;font-variant-numeric:tabular-nums}
.quantity-control8 input::-webkit-inner-spin-button,.quantity-control8 input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.quantity-unit8{flex:none;color:var(--muted);font-size:12px;white-space:nowrap;user-select:none}
.quantity-adjust8{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;min-height:44px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--accent);font-size:20px;line-height:1;cursor:pointer}
@media(hover:hover){.quantity-adjust8:hover:not(:disabled){background:var(--accent-soft)}}
.field>.quantity-control8{width:100%;max-width:240px}
.ingr:has(>.quantity-control8),.ingrow8{gap:8px}
.ingr>.grow,.ingrow8>.grow{min-width:0;overflow-wrap:anywhere}
.ate8 form{grid-template-columns:minmax(0,1fr) auto}
.ate8 form #kadd{grid-column:1/-1;grid-row:1}
.ate8 form>.quantity-control8{grid-column:1;grid-row:2;justify-self:start}
.ate8 form>.addbtn8{grid-column:2;grid-row:2}
.platerow8{display:grid;grid-template-columns:32px minmax(0,1fr) 40px}
.platerow8>.grow{grid-column:2/-1}
.platerow8>.quantity-control8{grid-column:2;grid-row:2}
.platerow8>.addbtn8{grid-column:3;grid-row:2}
@media(max-width:480px){
 .list8 .prow8{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;gap:8px;height:auto;min-height:64px;padding:12px 0}
 .list8 .prow8>.quantity-control8{grid-column:2/-1;grid-row:2}
 .list8 .prow8>.iconbtn{grid-column:3;grid-row:1}
 .macin8{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
}
label.row:has(>.quantity-control8){flex-wrap:wrap}

@media(min-width:1024px){
 .welcome8{background-size:auto min(100dvh,900px)}
}
.measure-scrim8{z-index:110}
.measure-sheet8{width:100%;max-width:480px;max-height:85dvh;gap:16px}
input[data-measure-editor]{cursor:pointer}

/* ===== v9 design: «Меню» и «Сегодня» — calm green, white rounded cards, 3D buttons, Nunito ===== */
:root,#app{--g9:#2E8A50;--g9d:#1E6338;--g9s:#E5F2E8;--ink9:#121814;--mut9:#5C6A61;--ln9:#E3EAE4;--st9:#DCE5DE;--card9:#fff;--bg9:#F2F5F1}
#app .screen{font-family:'Nunito','Golos Text',system-ui,sans-serif;gap:12px;color:var(--ink9)}
#app .screen :is(h1,h2,h3,b,.dish,button,.pill,input,select){font-family:inherit}
#app h1.range8{font-size:30px;font-weight:900;letter-spacing:-.5px;color:var(--ink9);margin:0;text-transform:none}
#app .card{border-radius:24px;border:1px solid var(--ln9);background:var(--card9);box-shadow:0 8px 22px rgba(18,24,20,.05)}
/* header */
#app[data-view="menu"] .menuhead8 .pill{background:var(--g9s);color:var(--g9d);border:0;font-weight:800;border-radius:999px}
#app[data-view="menu"] .menuhead8 .pill.warn{background:#121814;color:#fff}
#app[data-view="menu"] .menuhead8 .iconbtn{width:42px;height:42px;border-radius:14px;background:var(--card9);border:1px solid var(--ln9);color:var(--g9d);box-shadow:0 3px 0 var(--st9);display:inline-flex;align-items:center;justify-content:center}
.todayhead9{display:flex;flex-direction:column;gap:2px}
.todaysub9{font-size:15px;font-weight:700;color:var(--mut9);line-height:1.4}
#app[data-view="today"] .kc8,#app[data-view="menu"] .kc8{border-radius:999px;background:var(--card9);border:1px solid var(--ln9);box-shadow:0 3px 0 var(--st9)}
/* day chips + all dishes */
#app[data-view="menu"] .daychips8{gap:6px}
#app[data-view="menu"] .daychips8 button{border-radius:16px;border:1px solid var(--ln9);background:var(--card9);box-shadow:0 3px 0 var(--st9);padding:6px 0 7px;color:var(--ink9);font-weight:900}
#app[data-view="menu"] .daychips8 button span{color:var(--mut9);font-weight:700;font-size:12px}
#app[data-view="menu"] .daychips8 button[aria-selected=true]{background:var(--g9);border-color:var(--g9);color:#fff;box-shadow:0 4px 0 var(--g9d),inset 0 1px 0 rgba(255,255,255,.25)}
#app[data-view="menu"] .daychips8 button[aria-selected=true] span{color:#fff;opacity:.85}
#app[data-view="menu"] .agg8{border-radius:18px;border:1px solid var(--ln9);box-shadow:0 3px 0 var(--st9);padding:10px 14px;background:var(--card9)}
#app[data-view="menu"] .agg8 summary{font-weight:800}
#app[data-view="menu"] .agg8 .pill{background:var(--g9s);color:var(--g9d);border:0;font-weight:800}
/* day = a heading line + separate meal cards */
#app .day.day9{background:transparent;border:0;box-shadow:none;border-radius:0;overflow:visible;display:flex;flex-direction:column;gap:12px;padding:0}
.dayline9{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 10px;padding:6px 4px 0}
.dayline9 h2{min-width:0}
.dayline9 h2{margin:0;font-size:18px;font-weight:900;text-transform:capitalize}
.kc9{font-size:14px;font-weight:800;color:var(--g9d);white-space:nowrap}
.kc9.low9{color:#8A6A00}
.mcard9{background:var(--card9);border-radius:28px;padding:14px 14px 10px;box-shadow:0 10px 28px rgba(18,24,20,.06);display:flex;flex-direction:column;gap:6px;border:0}
#app .mcard9 .mealhead8{display:flex;align-items:center;gap:8px;padding:0 2px 4px}
#app .mcard9 .mealhead8 b{font-size:18px;font-weight:900;text-transform:none;letter-spacing:0;color:var(--ink9)}
#app .mcard9 .mealhead8 .small{font-size:13px;font-weight:700;text-transform:none;letter-spacing:0}
.micon9{width:34px;height:34px;border-radius:50%;background:var(--g9s);color:var(--g9d);display:inline-flex;align-items:center;justify-content:center;flex:none}
.mkcal9{margin-left:auto;text-transform:none;letter-spacing:0;font-size:13px;font-weight:800;color:var(--mut9);white-space:nowrap}
/* dish rows */
#app .mcard9 .menu-slot8{padding:6px 0;gap:10px;min-height:0;border:0;background:transparent;align-items:center;border-radius:0}
#app .mcard9 .menu-slot8+.menu-slot8{border-top:1px solid #EEF2EE}
#app .mcard9 .menu-slot8 .thumb{width:72px;height:72px;min-width:72px;border-radius:20px;overflow:hidden;position:relative}
#app .menu-slot8 .thumb svg{width:100%;height:100%;display:block}
#app .menu-slot8 .open{gap:5px}
#app .menu-slot8 .dish{font-size:16px;font-weight:800;line-height:1.25;color:var(--ink9)}
#app .menu-slot8 .meta8{font-size:13px;font-weight:700;color:var(--mut9);gap:10px}
#app .buy8{background:var(--g9s);color:var(--g9d);border:0;border-radius:999px;padding:2px 8px;font-weight:800}
.left9{display:inline-flex;padding:2px 8px;border-radius:999px;background:#EEF0EE;color:#3E4A42;font-size:12px;font-weight:800}
.done9{color:var(--g9d);font-weight:800}
#app .menu-slot8.cooked .thumb::after{content:'✓';position:absolute;right:4px;bottom:4px;width:22px;height:22px;border-radius:50%;background:var(--g9);color:#fff;border:2px solid #fff;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center}
#app[data-view="menu"] .menu-slot8 .drag{color:#B3BDB6;width:16px;min-width:16px;padding:0;font-size:18px}
#app .dishrowaction8 .iconbtn{width:44px;height:44px;border-radius:50%;background:var(--card9);border:1px solid var(--ln9);color:var(--g9d);box-shadow:0 3px 0 var(--st9)}
#app .dishrowaction8 .iconbtn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--st9)}
#app .dishrowaction8 .btn.small{min-height:40px;border-radius:14px;padding:0 14px;font-size:14px}
#app .eat{min-height:40px;border-radius:14px;padding:0 14px;font-weight:900;border:1px solid var(--ln9);background:var(--card9);color:var(--ink9);box-shadow:0 3px 0 var(--st9)}
#app .eat[aria-pressed=true]{background:var(--g9s);color:var(--g9d);border-color:transparent;box-shadow:none}
/* warnings: soft yellow */
#app[data-view="menu"] .warn8,#app[data-view="menu"] .screen>.note:not(.ready8){background:#FFF6DB;border:1px solid #F3E2A8;border-radius:18px;color:#3D3313}
#app[data-view="menu"] .note.ready8{border-radius:22px}
/* 3D buttons */
#app .btn{border-radius:18px;min-height:50px;font-weight:900;font-size:16px;background:var(--g9);color:#fff;border:0;box-shadow:0 4px 0 var(--g9d),0 10px 20px rgba(30,99,56,.22),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .08s,box-shadow .08s}
#app .btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--g9d),inset 0 2px 4px rgba(0,0,0,.15)}
#app .btn.ghost{background:var(--card9);color:var(--ink9);border:1px solid var(--ln9);box-shadow:0 4px 0 var(--st9),0 10px 18px rgba(18,24,20,.05)}
#app .btn.ghost:active{box-shadow:0 1px 0 var(--st9)}
#app .btn.small{min-height:40px;font-size:14px}
/* empty states */
.empty9{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:26px 22px}
.empty9 h2{margin:0;font-size:21px;font-weight:900}
.empty9 p{margin:0;font-size:14px;font-weight:600;line-height:1.45}
.empty9 .btn{align-self:stretch}
.empty9.dashed9{border:2px dashed #D5E3D9;box-shadow:none}
.empty9.small9{padding:16px}
.empty9 .btn.ghost{align-self:center;padding:0 20px}
.mascot9{width:100px;height:100px;border-radius:50%;border:4px solid var(--g9s);background:transparent url(img9/mascot.webp) center/contain no-repeat;display:block}
.eicon9{width:52px;height:52px;border-radius:50%;background:var(--g9s);color:var(--g9d);display:flex;align-items:center;justify-content:center}
.eicon9 svg{width:26px;height:26px}
.eyebrow9{font-size:12px;font-weight:900;letter-spacing:.6px;color:var(--mut9)}
.eatlist9{padding:4px 16px}
.eatrow9{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #EEF2EE}
.eatrow9:last-child{border-bottom:0}
.eatrow9 .okdot8{width:22px;height:22px;font-size:12px;background:var(--g9)}
/* «Сегодня»: hero */
.hero9{padding:12px;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 30px rgba(18,24,20,.08)!important}
.heroimg9{position:relative;display:block;width:100%;height:200px;border:0;padding:0;border-radius:20px;overflow:hidden;background:none;cursor:pointer}
.heroimg9 svg{width:100%;height:100%;display:block}
.herochip9{position:absolute;left:10px;top:10px;padding:6px 11px;border-radius:999px;background:#fff;color:var(--g9d);font-size:13px;font-weight:900;box-shadow:0 4px 12px rgba(18,24,20,.15)}
.herochip9.on{background:var(--g9);color:#fff}
.herobody9{padding:0 6px 6px;display:flex;flex-direction:column;gap:10px}
.herobody9 h2{margin:0;font-size:22px;font-weight:900;line-height:1.2}
.herobody9 .kc9{color:var(--mut9);padding-top:3px}
.herobtns9{display:grid;grid-template-columns:2fr 1fr;gap:10px}
/* «Что ещё съели» — compact */
#app[data-view="today"] .ate8{padding:14px;gap:10px}
#app[data-view="today"] .ate8 h3{font-size:16px;font-weight:900}
#app[data-view="today"] .ate8 :is(input,select){border-radius:14px;border:1px solid var(--ln9)}
#app[data-view="today"] .ate8 .chip{border-radius:999px}
/* prep: pictures in rings and on products, small ticks */
.pimg9{width:34px;height:34px;display:block}
#app[data-view="today"] .pcirc8{border-radius:18px;background:var(--bg9);padding:10px 4px}
#app[data-view="today"] .pcirc8.full9{background:var(--g9s)}
#app[data-view="today"] .pring8 .pcic8{font-size:0}
#app[data-view="today"] .pring8 circle:last-child{stroke:var(--g9)}
.pfull9{position:absolute;right:-2px;bottom:-2px;width:20px;height:20px;border-radius:50%;background:var(--g9);color:#fff;border:2px solid var(--g9s);font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center}
.pdone9{color:var(--g9d);font-weight:900}
.ppic9{width:52px;height:52px;border-radius:16px;background:var(--bg9);display:flex;align-items:center;justify-content:center;flex:none}
.ppic9 img{width:42px;height:42px;display:block}
#app[data-view="today"] .prep8{border-radius:28px}
#app[data-view="today"] .preping8{border-radius:20px;align-items:center}
#app[data-view="today"] .preping8 .chk{width:22px;height:22px;min-width:22px;border-radius:50%}
#app[data-view="today"] .prephead8{font-size:18px;font-weight:900}
/* dish-ready snack */
.snack9{position:fixed;left:16px;right:16px;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:60;max-width:520px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:22px;background:#121814;color:#fff;box-shadow:0 14px 32px rgba(18,24,20,.32);font-family:'Nunito',system-ui,sans-serif;animation:snack9 .25s ease}
.snack9 .grow{display:flex;flex-direction:column;gap:1px;min-width:0}
.snack9 b{font-size:15px;font-weight:900}
.snack9 .grow span{font-size:13px;font-weight:700;color:#B9C6BE;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.snackpic9{position:relative;width:48px;height:48px;flex:none;border-radius:14px}
.snackpic9 svg{width:48px;height:48px;border-radius:14px;display:block}
.snackpic9 i{position:absolute;right:-8px;top:-8px;min-width:28px;height:24px;padding:0 6px;box-sizing:border-box;border-radius:999px;background:var(--accent);color:#fff;border:2px solid #121814;font-size:12px;font-weight:900;font-style:normal;display:flex;align-items:center;justify-content:center}
.snackbtn9{padding:8px 12px;border-radius:12px;background:#fff;color:#121814;font:inherit;font-size:13px;font-weight:900;border:0;flex:none}
@keyframes snack9{from{transform:translateY(16px);opacity:0}}
@media (min-width:1024px){.snack9{bottom:24px}}
/* ===== v9 design: «Покупки», «Запасы», шторки, тосты ===== */
#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]){--g9:#2E8A50;--g9d:#1E6338;--g9s:#E5F2E8;--ink9:#121814;--mut9:#5C6A61;--ln9:#E3EAE4;--st9:#DCE5DE;--card9:#fff;--bg9:#F2F5F1}
#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]) .screen{font-family:'Nunito','Golos Text',system-ui,sans-serif;gap:12px;color:var(--ink9)}
#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]) .screen :is(h1,h2,h3,b,button,.pill,input,select,label){font-family:inherit}
#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]) h1.range8{font-size:30px;font-weight:900;letter-spacing:-.5px;margin:0;color:var(--ink9)}
#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]) .card{border-radius:24px;border:1px solid var(--ln9);background:var(--card9);box-shadow:0 8px 22px rgba(18,24,20,.05)}
#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]) .btn{border-radius:18px;min-height:50px;font-weight:900;font-size:16px;background:var(--g9);color:#fff;border:0;box-shadow:0 4px 0 var(--g9d),0 10px 20px rgba(30,99,56,.22),inset 0 1px 0 rgba(255,255,255,.25);display:inline-flex;align-items:center;justify-content:center;gap:8px}
#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]) .btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--g9d)}
#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]) .btn.ghost,#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]) .btn.secondary{background:var(--card9);color:var(--ink9);border:1px solid var(--ln9);box-shadow:0 4px 0 var(--st9)}
#app:is([data-view="shop"],[data-view="home"],[data-view="autocart"]) .btn svg{width:20px;height:20px}
#app:is([data-view="shop"],[data-view="home"]) .pill{background:var(--g9s);color:var(--g9d);border:0;font-weight:800;border-radius:999px}
.head9{display:flex;align-items:flex-start;gap:10px}.head9>.todayhead9{flex:1}
.head9 .iconbtn{width:42px;height:42px;border-radius:14px;background:var(--card9);border:1px solid var(--ln9);color:var(--g9d);box-shadow:0 3px 0 var(--st9)}
.muted9{font-size:15px;font-weight:700;color:var(--mut9)}.muted9 b{color:var(--ink9);font-weight:900}
#app[data-view="shop"] .pricecard{padding:18px;border-radius:28px;display:flex;flex-direction:column;gap:10px}
#app[data-view="shop"] .budget8{font-size:15px;font-weight:700;color:var(--mut9);white-space:nowrap}
#app[data-view="shop"] .budget8 b{font-size:24px;font-weight:900;color:var(--ink9);letter-spacing:-.4px}
#app[data-view="shop"] .progress{height:10px;border-radius:99px;background:var(--g9s)}#app[data-view="shop"] .progress i{background:var(--g9)}
#app[data-view="shop"] .over9 .progress i{background:#F2C94C;width:100%!important}
.warn9{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:18px;background:#FFF6DB;border:1px solid #F3E2A8;color:#3D3313;font-size:13px;font-weight:700;line-height:1.45}
.wdot9{width:24px;height:24px;border-radius:50%;background:#121814;color:#FFE58A;display:flex;align-items:center;justify-content:center;flex:none;font-weight:900}
.btns9{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btns9 .btn{min-height:46px!important;font-size:14px!important}
@media(max-width:1023px){#app[data-view="shop"] .shopping-categories{display:flex;flex-direction:column;gap:12px}}
.card9{background:var(--card9);border-radius:28px;padding:14px 16px 6px;box-shadow:0 10px 28px rgba(18,24,20,.06);border:0}
.cathead9{display:flex;align-items:center;gap:10px;padding-bottom:6px}.cathead9 h3{margin:0;flex:1;font-size:18px;font-weight:900;text-transform:none;letter-spacing:0;color:var(--ink9)}
.catpic9{width:40px;height:40px;border-radius:14px;background:var(--bg9);display:flex;align-items:center;justify-content:center;flex:none}.catpic9 img{width:32px;height:32px;display:block}
#app[data-view="shop"] .shopping-items8{background:transparent;border:0;box-shadow:none;padding:0}
#app[data-view="shop"] .item{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border:0;border-top:1px solid #EEF2EE;border-radius:0;background:transparent}
#app[data-view="shop"] .item .chk{appearance:none;-webkit-appearance:none;width:22px;height:22px;min-width:22px;margin:1px 0 0;border-radius:50%;border:2px solid #C9D6CD;background:#fff}
#app[data-view="shop"] .item .chk:checked{background:var(--g9);border-color:var(--g9)}
#app[data-view="shop"] .item .nm{font-size:16px;font-weight:800;color:var(--ink9)}#app[data-view="shop"] .item .qty{font-size:15px;font-weight:900;white-space:nowrap}
#app[data-view="shop"] .item label{display:flex;flex-direction:column;gap:3px}
.home9{align-self:flex-start;padding:1px 8px;border-radius:999px;background:var(--g9s);color:var(--g9d);font-size:12px;font-weight:800}
.pack9{font-size:12px;font-weight:700;color:#3E4A42}
#app[data-view="shop"] .for8{font-size:12px;font-weight:600;color:var(--mut9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.done9{padding:4px 16px}.done9 summary{display:flex;align-items:center;gap:10px;padding:10px 0;cursor:pointer;list-style:none}.done9 summary::-webkit-details-marker{display:none}
.done9 .okdot8{width:22px;height:22px;font-size:12px;background:var(--g9)}.chev9{display:inline-flex;transition:transform .15s;color:var(--mut9);font-weight:900;font-size:18px}.done9[open] .chev9,.chev9.up{transform:rotate(90deg)}
.donerow9{display:flex;gap:10px;padding:9px 0;border-top:1px solid #EEF2EE;font-weight:700;color:var(--mut9)}
.mascot9.ok9{position:relative}
/* «Запасы» */
.seg9{display:grid!important;grid-template-columns:1fr 1fr;padding:4px;border-radius:18px;background:#E4EBE5;border:0}
.seg9 button{min-height:40px;border-radius:14px;border:0;background:transparent;color:var(--mut9);font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;gap:6px}
.seg9 button[aria-selected=true]{background:#fff;color:var(--ink9);font-weight:900;box-shadow:0 3px 0 var(--st9)}
.cnt9{min-width:22px;padding:1px 7px;box-sizing:border-box;border-radius:999px;background:#D3DDD5;color:#3E4A42;font-size:12px;font-weight:900}
.seg9 button[aria-selected=true] .cnt9{background:var(--g9);color:#fff}
.search9{display:flex;align-items:center;gap:10px;height:50px;padding:0 14px;border-radius:18px;background:var(--card9);border:1px solid var(--ln9);box-shadow:0 3px 0 var(--st9);color:var(--mut9)}
.search9 input{flex:1;min-width:0;border:0!important;outline:none;background:transparent!important;box-shadow:none!important;font-size:15px;font-weight:600;padding:0!important;min-height:0!important;color:var(--ink9)}
.search9:focus-within{border:2px solid var(--g9);box-shadow:0 0 0 4px var(--g9s)}
.found9{padding:4px 14px!important;display:flex;flex-direction:column}
.foundrow9{display:flex;align-items:center;gap:12px;padding:10px 0;border:0;border-bottom:1px solid #EEF2EE;background:none;text-align:left;font:inherit;color:var(--ink9);cursor:pointer}
.foundrow9:last-child{border-bottom:0}.foundrow9 .grow{display:flex;flex-direction:column;gap:1px}.foundrow9 b{font-size:15px;font-weight:800}
.plus9{width:38px;height:38px;border-radius:50%;background:var(--g9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;box-shadow:0 3px 0 var(--g9d);flex:none}
.foundrow9[aria-selected=true] .plus9{background:var(--g9s);color:var(--g9d);box-shadow:none;font-size:16px}
.use9{font-size:12px;font-weight:800;color:var(--g9d)}.idle9{font-size:12px;font-weight:600;color:var(--mut9)}
.photo9.card{padding:6px 14px 14px;border-radius:28px;display:flex;flex-direction:column;gap:10px}
.photohead9{display:flex;align-items:center;gap:10px;width:100%;padding:8px 2px 0;border:0;background:none;font:inherit;color:var(--ink9);text-align:left;cursor:pointer}
.photohead9 .grow{display:flex;flex-direction:column}.photohead9 b{font-size:18px;font-weight:900}
.photo9.closed .photohead9{padding:10px 14px;border:1px solid var(--ln9);border-radius:22px;background:var(--card9);box-shadow:0 3px 0 var(--st9)}
.photo9.closed .photohead9 b{font-size:16px}
.picon9{width:40px;height:40px;border-radius:14px;background:var(--g9s);color:var(--g9d);display:flex;align-items:center;justify-content:center;flex:none}
.ptiles9{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ptile9{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;border-radius:22px;border:1px solid var(--ln9);background:var(--card9);color:var(--ink9);font:inherit;text-align:left;box-shadow:0 5px 0 var(--st9);cursor:pointer}
.ptile9 b{font-size:15px;font-weight:900}.ptile9 span:last-child{font-size:12px;font-weight:700;color:var(--mut9);line-height:1.3}
.ptile9.main{background:var(--g9);border-color:var(--g9);color:#fff;box-shadow:0 5px 0 var(--g9d),inset 0 1px 0 rgba(255,255,255,.25)}
.ptile9.main .picon9{background:rgba(255,255,255,.18);color:#fff}.ptile9.main span:last-child{color:#fff;opacity:.85}
.stock9 .prow8{display:flex;align-items:center;gap:8px;padding:10px 0;border-top:1px solid #EEF2EE}
.stock9 .prname8{display:flex;flex-direction:column;gap:2px;min-width:0}.stock9 .prname8 b{font-size:16px;font-weight:800}
.stock9 .pqtyinput8{width:72px;border-radius:14px;border:1px solid var(--ln9);font-weight:900;text-align:center;box-shadow:0 2px 0 var(--st9)}
.unit9{width:26px}
.del9{width:32px!important;height:32px!important;min-width:32px;border-radius:50%!important;border:0!important;background:var(--bg9)!important;color:var(--mut9)!important;box-shadow:none!important;font-size:13px}
.grow9{flex:1;min-height:260px;justify-content:center}
.leftcard9{padding:14px!important;display:flex;flex-direction:column;gap:12px}
.leftcard9 .thumb{width:72px;height:72px;min-width:72px;border-radius:20px;overflow:hidden}.leftcard9 .thumb svg{width:100%;height:100%;display:block}
.leftcard9 b{font-size:16px;font-weight:800;display:block;margin-bottom:5px}.chips9{display:flex;flex-wrap:wrap;gap:6px}
.chips9 .buy8{background:var(--g9s);color:var(--g9d);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:800}
.tag9{padding:2px 8px;border-radius:999px;background:var(--bg9);color:#3E4A42;font-size:12px;font-weight:800}
.leftcard9 .herobtns9 .btn{min-height:44px!important;font-size:15px!important}
/* «Меню»: блюдо из запасов */
.stock9chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--g9s,#E5F2E8);color:var(--g9d,#1E6338);font-size:12px;font-weight:900}
.stock9chip::before{content:'';width:10px;height:12px;border:2px solid currentColor;border-radius:3px;box-sizing:border-box}
/* sheets (all bottom dialogs) + toasts */
.sheet9wrap{align-items:flex-end!important;padding:0!important}
.pop8wrap .pop8{font-family:'Nunito','Golos Text',system-ui,sans-serif}
.sheet9{max-width:520px!important;border-radius:28px 28px 0 0!important;padding:12px 20px calc(26px + env(safe-area-inset-bottom,0px))!important;align-items:center;text-align:center;gap:12px!important;border:0!important}
.sheet9 h2{margin:0;font-size:21px;font-weight:900}.sheet9 .btn{width:100%}
.sheet9 .row .thumb{width:56px;height:56px;min-width:56px;border-radius:16px;overflow:hidden}.sheet9 .row .thumb svg{width:100%;height:100%}
.sheet9 .row{text-align:left}
.grab9{width:44px;height:5px;border-radius:99px;background:#DCE5DE}
.sheet9 .mascot9{width:80px;height:80px;border-width:4px}
.sheet9 .btn{border-radius:18px;min-height:52px;font-weight:900;background:#2E8A50;color:#fff;border:0;box-shadow:0 5px 0 #1E6338}
.sheet9 .btn.ghost{background:#fff;color:#121814;border:1px solid #E3EAE4;box-shadow:0 4px 0 #DCE5DE}
.sheet9 .btn.dark9{background:#121814;box-shadow:0 4px 0 #000}
.sheet9 .linkbtn{color:#5C6A61;font-weight:800;font-size:15px;padding:6px}
.toast{border-radius:20px!important;background:#121814!important;color:#fff!important;padding:13px 18px!important;font-weight:800;box-shadow:0 14px 32px rgba(18,24,20,.3);font-family:'Nunito','Golos Text',system-ui,sans-serif}
/* «Заказ продуктов» */
#app[data-view="autocart"] .cmp8{border-radius:28px}
#app[data-view="autocart"] .store-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:none;border:0;padding:0}
#app[data-view="autocart"] .store-tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border-radius:22px;background:var(--card9);border:2px solid var(--ln9);color:var(--ink9);font-weight:900;box-shadow:0 3px 0 var(--st9);min-height:0}
#app[data-view="autocart"] .store-tabs button[aria-selected=true]{border-color:var(--g9);box-shadow:0 3px 0 var(--g9d);background:var(--card9);color:var(--ink9)}
#app[data-view="autocart"] .store-tabs button b{font-size:22px}
#app[data-view="autocart"] .store-tabs button:disabled{opacity:.55}
#app[data-view="autocart"] .store-missing{background:var(--bg9);border-radius:18px;padding:12px 14px;border:0}
@media(min-width:1024px){#app[data-view="shop"] .shopping-categories>.cat.card9{padding-bottom:6px;border-bottom:16px solid transparent;background-clip:padding-box;box-shadow:none;border-radius:28px 28px 28px 28px/28px 28px 28px 28px}}
/* ===== v9.1: exactly as the approved prototypes ===== */
#app{font-family:'Nunito','Golos Text',system-ui,sans-serif}
#app :is(h1,h2,h3,h4,b,button,input,select,textarea,.pill,.chip){font-family:inherit}
#app .screen{gap:12px;color:var(--ink9)}
#app .appbar:empty{display:none}
@media (max-width:1023px){#app .screen{padding-top:calc(22px + env(safe-area-inset-top,0px))}}
#app .sr9{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.head9{display:flex;align-items:flex-start;gap:10px}.head9>.todayhead9{flex:1;min-width:0}
#app h1.range8{font-size:30px;font-weight:900;letter-spacing:-.5px;line-height:1.1;color:var(--ink9);margin:0}
/* tab bar: floating card, active tab gets a soft pill behind the icon */
@media (max-width:1023px){
 #app .tabs.tabs9{left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom,0px));border:0;border-radius:24px;background:var(--card9);box-shadow:0 12px 30px rgba(18,24,20,.14);padding:0 6px}
 #app .tabs9 nav{height:68px;align-items:center}
 #app .screen{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
}
#app .tabs9 button{padding:0;gap:3px;color:var(--mut9);font-size:11px;font-weight:700;justify-content:center}
#app .tabs9 .ti9{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:30px;border-radius:999px;transition:background .2s}
#app .tabs9 .ti9 svg{width:22px;height:22px}
#app .tabs9 button[aria-current=page]{color:var(--g9d);font-weight:900}
#app .tabs9 button[aria-current=page] .ti9{background:var(--g9s)}
#app .tabs9 .badge{position:absolute;top:-4px;left:28px;right:auto;min-width:20px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:999px;background:#121814;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--card9);line-height:1}
@media (min-width:1024px){#app .tabs9 .ti9{width:auto;height:auto;background:none!important}#app .tabs9 button[aria-current=page]{background:var(--g9s)}#app .tabs9 .badge{position:static;margin-left:auto}#app .tabs9 button{justify-content:flex-start;font-size:14px}}
/* calories pill on «Сегодня» */
.kpill9{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--card9);border:1px solid var(--ln9);box-shadow:0 3px 0 var(--st9);font-size:14px;font-weight:700;color:var(--mut9);flex:none;cursor:pointer}
.kpill9 svg{color:var(--g9);flex:none}.kpill9 b{font-weight:900;color:var(--ink9)}
.kpill9.ok9{background:var(--g9);border-color:var(--g9);color:#fff;box-shadow:0 3px 0 var(--g9d)}.kpill9.ok9 b{color:#fff}
/* «Что ещё съели» */
#app .ate9{background:var(--card9);border-radius:24px;padding:14px;box-shadow:0 8px 22px rgba(18,24,20,.05);display:flex;flex-direction:column;gap:10px;border:0}
.atehead9{display:flex;align-items:center;gap:8px}.atehead9 h2{margin:0;flex:1;font-size:16px;font-weight:900}
.who9{display:flex;padding:3px;border-radius:999px;background:var(--bg9)}
.who9 button{padding:5px 12px;border-radius:999px;border:0;background:transparent;color:var(--mut9);font-size:13px;font-weight:800;min-height:0}
.who9 button[aria-pressed=true]{background:var(--card9);color:var(--ink9);font-weight:900;box-shadow:0 2px 0 var(--st9)}
#app .kform9{display:flex;gap:8px;align-items:center}
#app .kform9 input[type=search]{flex:1;min-width:0;height:44px;box-sizing:border-box;padding:0 14px;border-radius:14px;border:1px solid var(--ln9);background:#F7F9F7;font-size:15px;font-weight:600;color:var(--ink9)}
#app .kform9 .quantity-control8{flex:none;max-width:150px}
.addbtn9,.cambtn9{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex:none;padding:0;cursor:pointer}
.addbtn9{border:0;background:var(--g9);color:#fff;box-shadow:0 3px 0 var(--g9d)}
.cambtn9{border:1px solid var(--ln9);background:var(--card9);color:var(--g9d);box-shadow:0 3px 0 var(--st9)}
.addbtn9:active,.cambtn9:active{transform:translateY(2px);box-shadow:none}
#app .ate9 #kmsg:empty{display:none}
/* hero */
.herochip9{display:inline-flex;align-items:center;gap:6px;padding:6px 11px 6px 8px}
.herochip9.on{padding-left:9px}
.heronote9{margin:0;font-size:13px;font-weight:700;color:var(--mut9);line-height:1.4}
.herobtns9 .btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px}
.herobtns9 .btn.ghost{font-size:15px;font-weight:800}
.time9{display:inline-flex;align-items:center;gap:4px}
#app .buy8{display:inline-flex;align-items:center;gap:3px;font-size:13px}
#app .buy8 svg{flex:none}
#app .buy8.ok{font-size:12px;font-weight:900;padding:2px 8px}
/* dish rows exactly like the prototype */
#app .mcard9{padding:16px;gap:12px}
#app .mcard9 .mealhead8{padding:0}
#app .mcard9 .menu-slot8{padding:0;gap:10px}
#app .mcard9 .menu-slot8+.menu-slot8{border-top:0}
#app .menu-slot8 .open{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;text-align:left}
#app .menu-slot8 .meta8{display:flex;align-items:center;flex-wrap:wrap}
#app .menu-slot8.cooked .thumb::after{content:none}
.tcheck9,.tstock9{position:absolute;right:-4px;bottom:-4px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}
#app .mcard9 .menu-slot8 .thumb{overflow:visible}
#app .mcard9 .menu-slot8 .thumb>svg,#app .mcard9 .menu-slot8 .thumb>img{border-radius:20px;overflow:hidden}
.tcheck9{background:var(--g9);color:#fff;border:2px solid #fff;right:2px;bottom:2px}
.tstock9{width:26px;height:26px;background:#fff;color:var(--g9d);border:2px solid var(--g9s)}
.tstock9 svg{width:14px;height:14px}
#app[data-view="menu"] .menu-slot8 .drag{color:#B3BDB6;width:12px;min-width:12px;padding:0;display:flex;align-items:center;justify-content:center;background:none;border:0}
.drag9sp{width:12px;flex:none}
.left9{align-items:center;gap:4px}
.stock9chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--g9s);color:var(--g9d);font-size:12px;font-weight:900}
.sub9{font-size:12px;font-weight:700;color:var(--mut9)}
#app .menu-slot8 .meta8:has(.stock9chip){flex-direction:column;align-items:flex-start;gap:6px}
.done9{font-size:13px}
#app .eat{display:inline-flex;align-items:center;gap:5px;font-size:14px}
#app .eat.go9{background:var(--g9);color:#fff;border:0;box-shadow:0 3px 0 var(--g9d)}
#app .eat.ate9{background:var(--g9s);color:var(--g9d);border:0;box-shadow:none}
#app .swap9.off9{border:2px dashed #D5E3D9;box-shadow:none;color:#B3BDB6;background:transparent}
/* menu header, chips, all dishes, notes */
#app[data-view="menu"] .menuhead8 .pill{display:inline-flex;align-items:center;gap:5px;padding:6px 11px 6px 8px;font-size:13px}
#app[data-view="menu"] .menuhead8 .pill.warn{padding:6px 12px}
#app[data-view="menu"] .menuhead8 .pill svg{width:15px;height:15px}
#app[data-view="menu"] .daychips8 button{border:0;padding:7px 0 8px}
#app[data-view="menu"] .daychips8 button b{font-size:18px}
#app[data-view="menu"] .daychips8 button.now9{background:var(--g9);color:#fff;box-shadow:0 4px 0 var(--g9d),inset 0 1px 0 rgba(255,255,255,.25)}
#app[data-view="menu"] .daychips8 button.now9 span{color:#fff;opacity:.85}
#app[data-view="menu"] .agg8{border:0;padding:0;background:var(--card9);border-radius:18px;box-shadow:0 3px 0 var(--st9)}
#app[data-view="menu"] .agg8 summary{display:flex;align-items:center;gap:10px;padding:10px 12px;list-style:none;cursor:pointer}
#app[data-view="menu"] .agg8 summary::-webkit-details-marker{display:none}
#app[data-view="menu"] .agg8 summary b{font-size:15px;font-weight:800}
.aggic9{width:30px;height:30px;border-radius:10px;background:var(--g9s);color:var(--g9d);display:flex;align-items:center;justify-content:center;flex:none}
.chev9{display:flex;color:var(--mut9);transition:transform .2s}
.agg8[open] .chev9{transform:rotate(90deg)}
#app[data-view="menu"] .agg8 .agggrp8{padding:0 12px 10px}
.dayline9 h2{text-transform:none!important}
.dayline9{padding:4px 4px 0}
.kc9{display:inline-flex;align-items:center;gap:4px}
.okbox9,.warnbox9,.lowbox9{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:22px}
.okbox9{background:var(--g9s)}
.okbox9 p,.warnbox9 p,.lowbox9 p{margin:0;font-size:14px;font-weight:700;line-height:1.45}
.okbox9 p{color:#1E3D27}
.okdot9{width:28px;height:28px;border-radius:50%;background:var(--g9);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.okdot9 svg{width:16px;height:16px}
.warnbox9{background:#FFF6DB;border:1px solid #F3E2A8}.warnbox9>div{display:flex;flex-direction:column;gap:8px}.warnbox9 p{color:#3D3313}
.warnbox9 .wdot9{width:28px;height:28px}
.wbtn9{align-self:flex-start;padding:7px 12px;border-radius:12px;background:#fff;border:1px solid #F3E2A8;color:#121814;font-size:13px;font-weight:800;box-shadow:0 2px 0 #F3E2A8;cursor:pointer}
.lowbox9{gap:10px;padding:12px 14px;border-radius:18px;background:#FFF6DB;border:1px solid #F3E2A8}.lowbox9 p{font-size:13px;color:#3D3313}.lowbox9 svg{flex:none;margin-top:1px}
.menubtns9{gap:10px;margin-top:6px}
#app .regen8{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px}
.empty9 .eicon9{width:48px;height:48px}
/* prep (заготовка) */
.prep9{padding:16px!important;display:flex;flex-direction:column;gap:14px;border-radius:28px!important}
.prephead9{display:flex;align-items:center;gap:10px}.prephead9 h2{margin:0;flex:1;font-size:18px;font-weight:900;line-height:1.2}
.pill9,.pillg9{padding:3px 10px;border-radius:999px;font-size:13px;font-weight:800;white-space:nowrap}
.pill9{background:var(--g9s);color:var(--g9d)}.pillg9{background:var(--g9);color:#fff}
.pcircs9{display:grid;gap:8px}
.pcirc9{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:18px;background:var(--bg9);text-decoration:none;color:var(--ink9);min-width:0}
.pcirc9.full9{background:var(--g9s)}
.pring9{position:relative;width:58px;height:58px;display:block}.pring9>svg{width:58px;height:58px;display:block}
.pcic9{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.pcic9 img{width:36px;height:36px;display:block}
.pring9 .pfull9{right:-2px;bottom:-2px;width:20px;height:20px;border:2px solid var(--g9s)}.pring9 .pfull9 svg{width:10px;height:10px}
.pcirc9 b{font-size:12px;font-weight:900;text-align:center;line-height:1.15}
.pn9{font-size:12px;font-weight:700;color:var(--mut9)}.pcirc9.full9 .pn9{color:var(--g9d);font-weight:900}
.pbuy9{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:18px;border:1px solid var(--ln9);color:var(--g9d)}
.pbuy9 .cart9{width:20px;height:20px}.pbuy9 span{flex:1;font-size:14px;font-weight:700;color:var(--ink9)}
.btn9{padding:8px 14px;border-radius:14px;background:var(--g9);color:#fff;font-size:14px;font-weight:900;border:0;box-shadow:0 3px 0 var(--g9d);cursor:pointer;flex:none}
.btn9:active{transform:translateY(2px);box-shadow:none}
.sect9{margin:6px 4px 0;font-size:18px;font-weight:900}
.pitem9{background:var(--card9);border-radius:24px;padding:14px 16px;box-shadow:0 8px 22px rgba(18,24,20,.05);display:flex;gap:12px;align-items:flex-start}
.ptick9{width:22px;height:22px;border-radius:50%;border:2px solid #C9D6CD;padding:0;background:var(--card9);flex:none;margin-top:15px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff}
.ptick9.on{border:0;background:var(--g9)}
.pitem9 .ppic9{border:0;padding:0;overflow:hidden;cursor:pointer}
.pthumb9 svg{width:52px;height:52px;display:block}
.pitem9 .ppic9 .ingpic8{font-size:28px;background:none}
.pbody9{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.pbody9>b{font-size:16px;font-weight:900}
.plines9{display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.4}
.pll9{font-weight:800;color:var(--mut9)}.plv9{font-weight:700}
.pitem9.done .plv9 .chks9{color:var(--g9d);vertical-align:-1px}
.pitem9.done .pl9:last-child .plv9{color:var(--g9d);font-weight:900}
.plink9{padding:0;font-size:13px;font-weight:800;color:var(--g9d);text-decoration:underline}
.pstore9{margin:0 4px;font-size:13px;font-weight:600;line-height:1.45;color:var(--mut9)}.pstore9 b{color:var(--ink9)}
.herochip9 svg{width:15px!important;height:15px!important;flex:none}
.cooked9{color:var(--g9d);font-weight:800;font-size:13px}
#app .kpill9.ok9{background:var(--g9);border-color:var(--g9);color:#fff;box-shadow:0 3px 0 var(--g9d)}
#app[data-view="shop"] .item{min-height:0}
#app[data-view="shop"] .pc8>.row{flex-wrap:nowrap;align-items:baseline}
#app[data-view="shop"] .pc8 .muted9{flex:1;min-width:0;line-height:1.35}
#app[data-view="shop"] .pc8 .budget8 b{font-size:26px}
#app[data-view="shop"] .pc8 .small.muted{font-size:13px;font-weight:600;line-height:1.45;color:var(--mut9)}
.btns9 .btn{white-space:nowrap;padding:0 10px!important;min-height:44px!important;font-size:14px!important;font-weight:800!important}
#app[data-view="shop"] .screen>.btn.block{min-height:54px;gap:9px}
#app[data-view="shop"] .screen>p.small.muted{margin:0 6px;font-size:13px;font-weight:600;line-height:1.4}
#app[data-view="shop"] details.done9{border-radius:18px;border:1px solid var(--ln9);box-shadow:0 3px 0 var(--st9);padding:2px 14px}
.chevd9{display:flex;color:var(--mut9);transition:transform .2s}details[open] .chevd9{transform:rotate(180deg)}
.okdot8 svg{width:12px;height:12px}
/* sub-page header: back button next to the title */
.subhead9{align-items:center}
#app .back9{width:42px;height:42px;border-radius:14px;background:var(--card9);border:1px solid var(--ln9);color:var(--ink9);box-shadow:0 3px 0 var(--st9);display:flex;align-items:center;justify-content:center;flex:none;padding:0}
.subhead9 h1.range8{font-size:28px!important}
/* mascot with a check badge */
.mascot9.ok9 i{position:absolute;right:-2px;bottom:4px;width:30px;height:30px;border-radius:50%;background:var(--g9);color:#fff;border:3px solid #fff;display:flex;align-items:center;justify-content:center;font-style:normal}
.mascot9.ok9 i svg{width:14px;height:14px}
.cbar9{align-self:stretch;height:10px;border-radius:99px;background:var(--g9s);overflow:hidden}
.cbar9 i{display:block;height:100%;border-radius:99px;background:var(--g9)}
.cbar9.run9{background:rgba(255,255,255,.3);height:8px}.cbar9.run9 i{width:40%;background:#fff;animation:run9 1.4s ease-in-out infinite}
@keyframes run9{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
/* «Куплено» */
#app details.done9 summary b{font-size:15px;font-weight:800}
.donerow9{align-items:center;color:var(--ink9);font-weight:700}
.donerow9 b{font-weight:800}
.donerow9 .okdot8{width:22px;height:22px;border-radius:50%;background:var(--g9);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.unbuy9{padding:6px 10px;border-radius:12px;border:1px solid var(--ln9);background:var(--card9);color:var(--ink9);font-size:13px;font-weight:800;box-shadow:0 2px 0 var(--st9);cursor:pointer}
/* «Заказ продуктов» */
.acintro9{margin:0 4px;font-size:14px;font-weight:700;line-height:1.45;color:var(--mut9)}
#app .cmp9{padding:0;border:0;border-radius:22px;box-shadow:0 8px 22px rgba(18,24,20,.05)}
#app .cmp9 summary{display:flex;align-items:center;gap:10px;padding:14px 16px;list-style:none;cursor:pointer}
#app .cmp9 summary::-webkit-details-marker{display:none}
#app .cmp9 summary h3{margin:0;flex:1;font-size:17px;font-weight:900;text-transform:none;letter-spacing:0;color:var(--ink9)}
#app .cmp9 .chev9{color:var(--g9d)}#app .cmp9[open] .chev9{transform:rotate(90deg)}
#app .cmp9 .pill{background:var(--g9s);color:var(--g9d);font-weight:900;font-size:13px;padding:3px 10px}
#app .cmp9>p{margin:0 16px 8px;font-size:13px;font-weight:600;line-height:1.45}
.cmphead9,.cmprow9{display:flex;align-items:center;gap:10px;padding:0 16px}
.cmphead9{font-size:11px;font-weight:800;color:var(--mut9);padding-bottom:4px}.cmphead9 span:not(.grow){width:70px;text-align:right}
.cmprow9{padding:11px 16px;border-top:1px solid #EEF2EE;font-size:14px}.cmprow9 b{font-weight:800}.cmprow9 .muted{font-weight:600}
.cmpv9{width:70px;text-align:right;font-weight:700;color:var(--mut9);white-space:nowrap;flex:none}
.cmpv9.win9{background:var(--g9s);color:var(--g9d);font-weight:900;border-radius:999px;padding:2px 8px;width:auto;min-width:54px;box-sizing:border-box}
.cmprow9.tot9{padding-bottom:14px}
.stchoose9.hidden9{display:none}
#app .stcards9{display:grid!important;grid-template-columns:1fr 1fr;gap:10px;background:none;padding:0;border:0;margin-top:6px}
#app .stc9{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;border-radius:20px;border:2px solid transparent;background:var(--card9);color:var(--ink9);box-shadow:0 4px 0 var(--st9);text-align:left;min-height:0;cursor:pointer}
#app .stc9.on{border-color:var(--g9);box-shadow:0 4px 0 var(--g9d)}
#app .stc9:disabled{opacity:.55}
.stn9{font-size:15px;font-weight:900}.stp9{font-size:24px;font-weight:900;letter-spacing:-.4px}.sts9{font-size:12px;font-weight:700;color:var(--mut9)}.stc9.on .sts9{color:var(--g9d)}
.stok9{position:absolute;right:10px;top:10px;width:22px;height:22px;border-radius:50%;background:var(--g9);color:#fff;display:flex;align-items:center;justify-content:center}
.stpanel9{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.stpanel9 .btn{gap:9px}
.stpanel9>p.small{margin:0 4px;font-size:13px;font-weight:600;line-height:1.4}
.store-cart-loading{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:18px;background:var(--g9);color:#fff;box-shadow:0 5px 0 var(--g9d)}
.cbuild9{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.cbuild9 b{font-size:16px;font-weight:900}.cbuild9 span{font-size:13px;font-weight:800;opacity:.85}
.errnote9{margin:0;padding:10px 12px;border-radius:14px;background:#FDECEC;color:#8A1F1F;font-weight:700}
.cartres9{display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px 18px!important;text-align:center;border-radius:28px!important}
.cartres9 h2{margin:0;font-size:24px;font-weight:900}.cartres9>p{margin:0;font-size:14px;font-weight:700}
.cartres9 .btn{align-self:stretch;gap:8px}
.cartres9.part9{align-items:stretch;text-align:left}
.crhead9{display:flex;align-items:flex-start;gap:12px}.crhead9 h2{font-size:20px}.crhead9 .muted{font-size:14px;font-weight:700}
.crtile9{width:48px;height:48px;border-radius:16px;background:var(--g9s);color:var(--g9d);display:flex;align-items:center;justify-content:center;flex:none}
#app .store-missing{display:block;padding:12px 14px;border-radius:16px;background:var(--bg9);border:0;color:var(--ink9)}
#app .store-missing-icon{display:none}
#app .store-missing p{margin:0 0 4px}#app .store-missing ul{margin:4px 0;padding-left:18px;font-weight:700;font-size:14px}#app .store-missing li{margin:3px 0}
#app .store-missing .muted{font-size:12px;margin:4px 0 0}
.paynote9{display:flex;gap:10px;align-items:flex-start;padding:14px;border-radius:20px;background:var(--g9s);color:var(--g9d)}.paynote9 p{margin:0;font-size:13px;font-weight:800;line-height:1.45;color:#1E3D27}.paynote9 svg{flex:none}
.backlist9{align-self:center;font-size:15px;font-weight:900;color:var(--g9d);text-decoration:underline}
#app .sheet9 .btn.dark9{background:#121814;box-shadow:0 4px 0 #000;color:#fff}.sheet9 .btn{display:flex;align-items:center;justify-content:center;gap:8px}
#app .btn{padding-left:16px;padding-right:16px}
#app .btn.block{white-space:nowrap}
#app .card.cmp9{padding:0}
#app .cmp9:not([open]) summary{padding-bottom:14px}
/* one pill stepper: − value unit + */
#app:is([data-view="home"],[data-view="today"],[data-view="menu"],[data-view="shop"],[data-stage="quiz"]) .quantity-control8{gap:0;width:132px;height:38px;border:1px solid var(--ln9);border-radius:14px;background:var(--card9);box-shadow:0 2px 0 var(--st9);align-items:center}
#app:is([data-view="home"],[data-view="today"],[data-view="menu"],[data-view="shop"],[data-stage="quiz"]) .quantity-adjust8{width:32px;min-width:32px;height:36px;min-height:0;padding:0;border:0;background:transparent;color:var(--g9d);font-size:19px;font-weight:900;box-shadow:none;border-radius:12px;cursor:pointer}
#app:is([data-view="home"],[data-view="today"],[data-view="menu"],[data-view="shop"],[data-stage="quiz"]) .quantity-adjust8:disabled{color:#C9D6CD}
#app:is([data-view="home"],[data-view="today"],[data-view="menu"],[data-view="shop"],[data-stage="quiz"]) .quantity-value8{border:0;background:transparent;padding:0 2px;gap:3px;justify-content:center;border-radius:0;height:36px}
#app:is([data-view="home"],[data-view="today"],[data-view="menu"],[data-view="shop"],[data-stage="quiz"]) .quantity-value8:focus-within{box-shadow:none}
#app:is([data-view="home"],[data-view="today"],[data-view="menu"],[data-view="shop"],[data-stage="quiz"]) .quantity-control8:focus-within{border-color:var(--g9);box-shadow:0 0 0 3px var(--g9s)}
#app:is([data-view="home"],[data-view="today"],[data-view="menu"],[data-view="shop"],[data-stage="quiz"]) .quantity-control8 .quantity-value8 input[type=number]{height:36px;min-height:0;font-size:14px;font-weight:900;text-align:right;color:var(--ink9);background:transparent}
#app:is([data-view="home"],[data-view="today"],[data-view="menu"],[data-view="shop"],[data-stage="quiz"]) .quantity-unit8{font-size:13px;font-weight:900;color:var(--ink9)}
#app .empty9.dashed9{background:transparent;box-shadow:none}
.chevp9{display:flex;color:var(--mut9)}
.warn9t{background:#FFF6DB!important;color:#6B5300!important}
.leftcard9 .chips9{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.leftcard9 .tag9{padding:2px 8px;border-radius:999px;background:var(--bg9);color:#3E4A42;font-size:12px;font-weight:800}
.leftcard9 .buy8{font-size:12px}
.leftcard9 .thumb{width:72px;height:72px;min-width:72px;border-radius:20px;overflow:hidden}.leftcard9 .thumb svg{width:100%;height:100%;display:block}
.leftcard9 b{font-size:16px;font-weight:800}
.leftcard9 .herobtns9 .btn{min-height:44px;font-size:15px;border-radius:16px}
.leftcard9{display:flex;flex-direction:column;gap:12px;padding:14px!important}
.foundrow9{padding:8px 0}.foundrow9 .catpic9{width:40px;height:40px}.foundrow9 .use9,.foundrow9 .idle9{font-size:12px}
/* photo recognition */
.scan9{display:flex;flex-direction:column;padding:16px!important;gap:0}
.scanhead9{display:flex;gap:12px;align-items:flex-start;padding-bottom:10px}.scanhead9 h2{margin:0;font-size:19px;font-weight:900}.scanhead9 .muted{font-size:13px;font-weight:700;line-height:1.35}
.scanhead9 .picon9{width:44px;height:44px;border-radius:14px}
.srow9{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #EEF2EE}
.srow9 .ptick9{margin-top:0}
.srow9 .grow{display:flex;flex-direction:column;gap:4px;min-width:0}.srow9 b{font-size:16px;font-weight:800}
.srow9.off b{color:#9AA69E;font-weight:700}
.unsure9{align-self:flex-start;padding:1px 8px;border-radius:999px;background:#FFF6DB;color:#6B5300;font-size:12px;font-weight:800}
.srow9 .chips{display:flex;flex-wrap:wrap;gap:6px}.srow9 .chip{padding:4px 10px;border-radius:999px;font-size:13px;font-weight:800;border:1px solid var(--ln9);background:var(--card9)}.srow9 .chip[aria-pressed=true]{background:var(--g9s);border-color:var(--g9);color:var(--g9d)}
.sqty9{display:flex;align-items:center;height:38px;border-radius:14px;border:1px solid var(--ln9);background:#F7F9F7;flex:none;overflow:hidden}
.sqty9:focus-within{border:2px solid var(--g9);background:var(--card9)}
#app .sqty9 input{width:56px;height:36px;min-height:0;border:0;background:transparent;text-align:right;font-size:16px;font-weight:900;padding:0 6px;box-shadow:none;color:var(--ink9)}
.sunit9{position:relative;display:flex;align-items:center;gap:2px;height:28px;margin-right:5px;padding:0 7px;border-radius:10px;background:var(--g9s);color:var(--g9d);font-size:13px;font-weight:900}
.sunit9 select{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;min-height:0;padding:0}
#app .scan9~.btn.block{min-height:54px}
.scanning9{padding:12px!important;display:flex;flex-direction:column;gap:12px}
.scanpic9{position:relative;height:260px;border-radius:20px;overflow:hidden;background:#E4EBE5}.scanpic9 img{width:100%;height:100%;object-fit:cover;display:block}
.scanpic9 i{position:absolute;left:0;right:0;height:46px;background:linear-gradient(to bottom,rgba(46,138,80,0),rgba(46,138,80,.28));border-bottom:3px solid var(--g9);animation:scan9 2.2s ease-in-out infinite}
@keyframes scan9{0%{top:-46px}100%{top:100%}}
.scanst9{display:flex;align-items:center;gap:12px;padding:0 6px 6px}.scanst9 b{display:block;font-size:17px;font-weight:900}.scanst9 .muted{font-size:13px;font-weight:700;line-height:1.35}
.spin9{width:36px;height:36px;border-radius:50%;border:4px solid var(--g9s);border-top-color:var(--g9);flex:none;animation:spin9 1s linear infinite}
@keyframes spin9{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.scanpic9 i,.spin9,.cbar9.run9 i{animation:none}}
/* onboarding in the v9 look */
#app .onbscreen{background:var(--bg9);min-height:100dvh;padding:calc(22px + env(safe-area-inset-top,0px)) 20px calc(24px + env(safe-area-inset-bottom,0px))!important;gap:14px}
.welcome9{text-align:center}
.wtop9{display:flex;justify-content:center}.wlogo9{font-size:22px;font-weight:900;color:var(--g9d);letter-spacing:-.3px}
.whero9{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:6vh}
.wmascot9{width:200px!important;height:200px!important;border-width:6px!important;box-shadow:0 18px 40px rgba(30,99,56,.22)}
.whero9 h1{margin:6px 0 0;font-size:34px;font-weight:900;letter-spacing:-.6px;line-height:1.1;color:var(--ink9)}
.whero9 p{margin:0;max-width:330px;font-size:16px;font-weight:700;line-height:1.45;color:var(--mut9)}
.dots9{display:flex;justify-content:center;gap:6px}.dots9 i{width:8px;height:8px;border-radius:99px;background:#CFD9D2}.dots9 i.on{width:22px;background:var(--g9)}
#app .onbscreen .btn.block{min-height:56px;font-size:17px}
#app .onboarding-login8{color:var(--g9d);font-weight:900;font-size:15px}
.helps9 .helptitle8 h1{margin:4px 0 0;font-size:28px;font-weight:900;letter-spacing:-.5px;line-height:1.15;color:var(--ink9)}
#app .helpscreen8 .helprow8{background:var(--card9);border:0;border-radius:24px;box-shadow:0 8px 22px rgba(18,24,20,.06);padding:12px 14px}
#app .helpscreen8 .help8{gap:12px;margin-top:4px}
#app .helpscreen8 .helppic8{width:72px;height:72px}
#app .helpscreen8 .helptxt8 b{font-size:16px;font-weight:900;color:var(--ink9)}
#app .helpscreen8 .helptxt8 span{font-size:13px;font-weight:700;color:var(--mut9);line-height:1.35}
#app .hchk8{border-color:#C9D6CD}
@keyframes hchk8fill{to{background:var(--g9);border-color:var(--g9)}}
#app .btns9 .btn{min-width:0;white-space:normal;line-height:1.15}@media(max-width:359px){.btns9{grid-template-columns:1fr}}
@media(max-width:359px){#app .btn.block{white-space:normal;line-height:1.2}}
/* Solid add action in both themes; quantity buttons support press-and-hold. */
.iconbtn.addbtn8{background:var(--accent);color:var(--accent-fg);border-color:transparent}
.quantity-adjust8{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
html{touch-action:pan-x pan-y}
@media(pointer:coarse){input,select,textarea{font-size:16px}}
/* v9.2 onboarding: green welcome with the mascot cut out, whole pictures on the help slide */
/* v9.21: приветственный экран = та же картинка-заставка во всю ширину (без швов), фраза сверху, лого снизу, кнопки на бесшовном переходе в зелёный; splash и welcome выглядят одинаково — при обновлении нет прыжка. */
.splash8.welcome8,#app .onbscreen.welcome9{background-color:#2f7d3f;background-image:url(img9/frigo-new.png);background-repeat:no-repeat;background-position:center top;background-size:min(100vw, 560px) auto;background-origin:border-box}
.splash8.welcome8::after,
#app .onbscreen.welcome9::after {
  display: none;
}
#app .onbscreen.welcome9{color:#fff;position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.welcome9 .wspace9{flex:1}
.welcome9 .dots9,.welcome9 .wbtn9,.welcome9 .onboarding-login8{position:relative;z-index:1}
.welcome9 .wbtn9{margin-top:4px}
.welcome9 .wlogo9{color:#fff;opacity:.95}
.welcome9 .whero9{margin-top:2vh;gap:10px}
.welcome9 .wmascot9{width:min(300px,78vw);height:auto;display:block;filter:drop-shadow(0 18px 30px rgba(0,0,0,.25));border:0;border-radius:0;background:none}
.welcome9 .whero9 h1{color:#fff;font-size:36px}
.welcome9 .whero9 p{color:#DDF0E3}
.welcome9 .dots9 i{background:rgba(255,255,255,.35)}.welcome9 .dots9 i.on{background:#fff}
#app .welcome9 .btn.wbtn9{background:#fff;color:var(--g9d);box-shadow:0 5px 0 #BFD9C8,0 12px 24px rgba(0,0,0,.18)}
#app .welcome9 .onboarding-login8{color:#fff}
#app .helpscreen8 .helpimg9{width:84px;height:84px;border-radius:22px;object-fit:cover;flex:none;display:block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.helps9 .helptitle8{margin-top:6px}
/* v9.2 questions */
#app .quiz9{gap:14px}
.qtop9{display:flex;align-items:center;gap:12px}
.qprog9{flex:1;height:10px;border-radius:99px;background:#DCE7DF;overflow:hidden}.qprog9 i{display:block;height:100%;border-radius:99px;background:var(--g9);transition:width .3s}
.qnum9{font-size:13px;font-weight:900;color:var(--mut9);min-width:28px;text-align:right}
.qhead9{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.qhead9 .eyebrow9{margin:0;color:var(--g9d)}
.qhead9 h1{margin:0;font-size:28px;font-weight:900;letter-spacing:-.5px;line-height:1.15;color:var(--ink9)}
.qhead9 p{margin:0;font-size:15px;font-weight:700;color:var(--mut9)}
.opts9{display:flex;flex-direction:column;gap:10px}
#app .opt9{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:22px;border:2px solid transparent;background:var(--card9);box-shadow:0 4px 0 var(--st9),0 10px 24px rgba(18,24,20,.05);text-align:left;font:inherit;color:var(--ink9);cursor:pointer;transition:transform .1s,border-color .15s,background .15s}
#app .opt9:active{transform:translateY(2px);box-shadow:0 2px 0 var(--st9)}
.oic9{width:42px;height:42px;border-radius:14px;background:var(--g9s);color:var(--g9d);display:flex;align-items:center;justify-content:center;flex:none}
.otx9{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.otx9 b{font-size:16px;font-weight:900;line-height:1.25}.otx9 span{font-size:13px;font-weight:700;color:var(--mut9);line-height:1.3}
.ock9{width:26px;height:26px;border-radius:9px;border:2px solid #C9D6CD;flex:none;display:flex;align-items:center;justify-content:center;color:transparent;transition:all .15s}
.radio9 .ock9{border-radius:50%}
#app .opt9[aria-pressed="true"]{border-color:var(--g9);background:#F1F8F2}
#app .opt9[aria-pressed="true"] .oic9{background:var(--g9);color:#fff}
#app .opt9[aria-pressed="true"] .ock9{background:var(--g9);border-color:var(--g9);color:#fff}
.qfoot9{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:3;padding-top:8px;background:linear-gradient(to bottom,transparent,var(--bg9) 30%)}
/* question 4 */
#app .restr9{display:flex;flex-direction:column;gap:12px}
#app .restr9 .eqcard{background:var(--card9);border:0;border-radius:24px;box-shadow:0 10px 28px rgba(18,24,20,.06);padding:16px;display:flex;flex-direction:column;gap:10px}
#app .restr9 .eqcard h3{margin:0;font-size:18px;font-weight:900;color:var(--ink9)}
#app .restr9 .eqcard>p{margin:-6px 0 0;font-size:13px;font-weight:700;color:var(--mut9)}
#app .quiz9 .minisearch{height:46px;border-radius:16px;border:1px solid var(--ln9);background:var(--bg9);padding:0 14px;font:inherit;font-size:15px;font-weight:700;box-shadow:none}
#app .quiz9 .chips{gap:8px}
#app .quiz9 .chip{min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--ln9);background:var(--card9);color:var(--ink9);font-weight:800;font-size:14px;box-shadow:0 3px 0 var(--st9)}
#app .quiz9 .chip[aria-pressed="true"]{background:var(--g9);border-color:var(--g9);color:#fff;box-shadow:0 3px 0 var(--g9d)}
#app .quiz9 .chip.danger[aria-pressed="true"]{background:#E5533D;border-color:#E5533D;box-shadow:0 3px 0 #B13A28}
#app .quiz9 .chip.morechip{background:var(--g9s);border-color:transparent;color:var(--g9d);box-shadow:none}
/* question 6 */
#app .quiz9 .card.bigcount,#app .quiz9 .card:has(.startrow8){background:var(--card9);border:0;border-radius:24px;box-shadow:0 10px 28px rgba(18,24,20,.06);padding:16px}
#app .quiz9 .bigcount h2{margin:0;font-size:18px;font-weight:900;color:var(--ink9)}
#app .quiz9 .bigcount .small{font-weight:700;color:var(--mut9)}
#app .quiz9 .stepper.big{display:flex;align-items:center;border:1px solid var(--ln9);border-radius:18px;background:var(--card9);box-shadow:0 3px 0 var(--st9);height:52px;padding:0 4px}
#app .quiz9 .stepper.big button{width:44px;height:44px;border:0;background:transparent;color:var(--g9d);font-size:24px;font-weight:900;box-shadow:none}
#app .quiz9 .stepper.big span{min-width:36px;text-align:center;font-size:22px;font-weight:900;color:var(--ink9)}
#app .quiz9 .startrow8{flex-direction:column;align-items:stretch;gap:10px}
#app .quiz9 .startrow8>span{font-size:18px;font-weight:900;color:var(--ink9)}
#app .quiz9 .startrow8 .chips{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#app .quiz9 .startrow8 .chip{min-height:46px;border-radius:16px;justify-content:center}
#app .quiz9 .screen>p.small,#app .quiz9>p.small{font-weight:700;color:var(--mut9)}
/* question 7 */
.bud9{display:flex;flex-direction:column;gap:10px;padding:18px!important}
.budl9{font-size:14px;font-weight:800;color:var(--mut9)}
.budv9{font-size:38px;font-weight:900;letter-spacing:-.8px;color:var(--ink9);line-height:1;font-variant-numeric:tabular-nums}
#app input.range9{-webkit-appearance:none;appearance:none;width:100%;height:12px;border-radius:99px;margin:8px 0 0;background:linear-gradient(to right,var(--g9) 0,var(--g9) var(--pct,30%),#DCE7DF var(--pct,30%));border:0;box-shadow:none;padding:0;min-height:0}
#app input.range9::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:#fff;border:4px solid var(--g9);box-shadow:0 3px 0 var(--g9d),0 6px 14px rgba(30,99,56,.25);cursor:pointer}
#app input.range9::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:4px solid var(--g9);box-shadow:0 3px 0 var(--g9d)}
.budsc9{display:flex;justify-content:space-between;font-size:12px;font-weight:800;color:var(--mut9)}
.budn9{display:flex;gap:10px;align-items:flex-start;margin:4px 0 0;padding:12px;border-radius:16px;background:var(--g9s);color:#1E3D27;font-size:14px;font-weight:700;line-height:1.4}
.budn9 .okdot9{flex:none}
.city9{padding:16px!important}.city9 label{display:flex;flex-direction:column;gap:8px}
.sel9{position:relative;display:block}.sel9 svg{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--g9d);pointer-events:none}
#app .sel9 select{-webkit-appearance:none;appearance:none;width:100%;height:52px;border-radius:16px;border:1px solid var(--ln9);background:var(--card9);box-shadow:0 3px 0 var(--st9);padding:0 44px 0 16px;font:inherit;font-size:16px;font-weight:800;color:var(--ink9)}
/* question 5 */
#app .quiz9 .stock9 .prname8{justify-content:center}
/* loader */
#app .onbscreen.loader9{justify-content:center;gap:26px}
.lhero9{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.lmascot9{width:min(220px,60vw);height:auto;animation:lbob9 1.6s ease-in-out infinite;filter:drop-shadow(0 14px 22px rgba(30,99,56,.22))}
@keyframes lbob9{50%{transform:translateY(-8px) rotate(-2deg)}}
.lhero9 h1{margin:8px 0 0;font-size:30px;font-weight:900;letter-spacing:-.5px;color:var(--ink9)}
.lhero9 p{margin:0;font-size:15px;font-weight:700;color:var(--mut9)}
.lprog9{width:min(260px,70vw);height:12px;border-radius:99px;background:#DCE7DF;overflow:hidden;margin-top:10px}
.lprog9 i{display:block;height:100%;width:0;border-radius:99px;background:var(--g9);animation:lfill9 2.9s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes lfill9{to{width:100%}}
.lsteps9{display:flex;flex-direction:column;gap:10px;background:var(--card9);border-radius:24px;padding:16px;box-shadow:0 10px 28px rgba(18,24,20,.06)}
.lstep9{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:800;color:var(--mut9);animation:lstep9 .3s var(--d) forwards}
.lck9{width:26px;height:26px;border-radius:50%;border:2px solid #C9D6CD;display:flex;align-items:center;justify-content:center;color:transparent;flex:none;animation:lck9 .3s var(--d) forwards}
@keyframes lstep9{to{color:var(--ink9)}}
@keyframes lck9{to{background:var(--g9);border-color:var(--g9);color:#fff}}
/* «Все блюда недели» */
#app[data-view="menu"] .agg8[open]{box-shadow:0 10px 28px rgba(18,24,20,.08)}
#app[data-view="menu"] .agg8[open] summary{border-bottom:1px solid #EEF2EE}
.aggbody9{display:flex;flex-direction:column;padding:4px 12px 12px}
#app[data-view="menu"] .agg8 .agggrp9{padding:10px 0 4px}
#app[data-view="menu"] .agg8 .agggrp9+.agggrp9{border-top:1px solid #EEF2EE}
.agghead9{display:flex;align-items:center;gap:10px;padding:2px 0 6px}
.aggmic9{width:30px;height:30px;border-radius:50%;background:var(--g9s);color:var(--g9d);display:flex;align-items:center;justify-content:center;flex:none}
.agghead9 b{font-size:16px;font-weight:900;color:var(--ink9)}
.aggn9{font-size:12px;font-weight:800;color:var(--mut9)}
#app .aggrow9{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:0;font-size:15px}
#app .aggrow9 .thumb{width:52px;height:52px;border-radius:16px;overflow:hidden;flex:none}
#app .aggrow9 .thumb svg,#app .aggrow9 .thumb img{width:100%;height:100%;display:block;object-fit:cover}
.aggtx9{display:flex;flex-direction:column;gap:6px;min-width:0}
.aggtx9 b{font-size:15px;font-weight:800;color:var(--ink9);line-height:1.25}
#app .wk9{display:flex;gap:4px;flex-wrap:nowrap;max-width:none;justify-content:flex-start}
#app .wk9 i{font-style:normal;font-size:10px;font-weight:900;width:24px;height:20px;border-radius:7px;display:flex;align-items:center;justify-content:center;background:#F2F5F1;color:#B3BDB6;padding:0}
#app .wk9 i.on{background:var(--g9);color:#fff}
.welcome9 .wmascot9,.lmascot9{-webkit-mask-image:none;mask-image:none}
.welcome9 .wfull9{width:min(340px,86vw);-webkit-mask-image:none;mask-image:none;margin-top:2vh}
/* v9.3 every question uses the same round tick as question 3 */
#app .opt9 .ock9{border-radius:50%}
#app .ptile9{align-items:center!important;text-align:center!important;justify-content:center;gap:6px!important;min-height:150px}
.pplus9{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--g9s);color:var(--g9d);margin-bottom:4px}
.ptile9.main .pplus9{background:rgba(255,255,255,.2);color:#fff}
/* v9.3 snack: full-width black bar with a green tick, slides up */
.toast{left:16px!important;right:16px!important;transform:none!important;max-width:520px!important;margin:0 auto;bottom:calc(24px + env(safe-area-inset-bottom,0px))!important;display:flex!important;align-items:center;gap:12px;padding:14px 16px!important;border-radius:20px!important;font-size:15px!important;line-height:1.35;text-align:left!important;animation:snack9 .28s cubic-bezier(.2,.9,.3,1.2)}
.toast::before{content:"";flex:none;width:26px;height:26px;border-radius:50%;background:#2E8A50 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/14px no-repeat}
@keyframes snack9{from{transform:translateY(24px)!important;opacity:0}to{opacity:1}}
#app[data-layout="app"]~.toast,body:has(#app[data-layout="app"]) .toast{bottom:calc(104px + env(safe-area-inset-bottom,0px))!important}
@media(min-width:1024px){.toast{left:calc(50% + 120px)!important;right:auto!important;transform:translateX(-50%)!important;width:440px}}
.kpopic9{width:64px;height:64px;border-radius:22px;background:#FFF1E6;color:#E8742A;display:flex;align-items:center;justify-content:center;align-self:center}
#app .sheet9 #kpop8{text-align:center}
body:has(#app[data-stage="quiz"]) .toast,body:has(#app[data-stage="ready"]) .toast{bottom:calc(100px + env(safe-area-inset-bottom,0px))!important}
/* v9.3 ready menu after onboarding */
#app[data-stage="ready"] .screen{background:var(--bg9)}
#app .savebar9{position:sticky;bottom:0;z-index:5;border:0!important;border-radius:28px 28px 0 0!important;background:var(--card9);box-shadow:0 -10px 30px rgba(18,24,20,.08);padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px))!important;gap:8px}
#app .savebar9 .btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;font-size:17px}
#app .savebar9 .btn svg{width:18px;height:18px}
#app .savebar9 p{text-align:center;font-weight:700;color:var(--mut9);margin:0}
.preview8 .menuhead8 .pill.warn,#app .menuhead8 .pill.warn{background:#121814;color:#fff;border:0;font-weight:800;padding:6px 12px}
/* v9.3 settings & profile (Yazio-like groups) */
.sgh9{margin:6px 4px -4px;font-size:13px;font-weight:900;letter-spacing:.4px;color:var(--mut9);text-transform:uppercase}
.sgrp9{background:var(--card9);border-radius:24px;box-shadow:0 10px 28px rgba(18,24,20,.06);overflow:hidden;display:flex;flex-direction:column}
#app .setrow9{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border:0;border-radius:0;background:transparent;box-shadow:none;text-align:left;font:inherit;color:var(--ink9);cursor:pointer;min-height:64px}
#app .setrow9+.setrow9{border-top:1px solid #EEF2EE}
#app .setrow9:active{background:#F5F8F5;transform:none}
.sic9{width:40px;height:40px;border-radius:14px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#fff)}
.stx9{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.stx9 b{font-size:16px;font-weight:900;color:var(--ink9)}.stx9>span{font-size:13px;font-weight:700;color:var(--mut9);line-height:1.3}
.schev9{color:#B3BDB6;display:flex;flex:none}
#app .setrow9 .switch{flex:none}
#app .out9 b{color:#C2412D}
.puser9{display:flex;align-items:center;gap:14px;background:var(--card9);border-radius:24px;padding:16px;box-shadow:0 10px 28px rgba(18,24,20,.06)}
.puser9 .avatar.big{width:56px;height:56px;font-size:22px;background:var(--g9);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;flex:none}
.puser9 .stx9 b{font-size:19px}
#app .puser9 .btn.small{min-height:40px;padding:0 16px;font-size:14px}
#app .kstat9{display:flex;flex-direction:column;gap:14px;width:100%;padding:16px;border:0;border-radius:24px;background:var(--card9);box-shadow:0 10px 28px rgba(18,24,20,.06);text-align:left;font:inherit;color:var(--ink9);cursor:pointer}
.kshead9{display:flex;align-items:center;justify-content:space-between}.kshead9 b{font-size:18px;font-weight:900}
.ksrow9{display:flex;align-items:center;gap:18px}
.ksring9{--p:0;width:104px;height:104px;border-radius:50%;flex:none;background:conic-gradient(var(--g9) calc(var(--p)*1%),#E4EBE5 0);display:flex;align-items:center;justify-content:center}
.ksring9>span{width:80px;height:80px;border-radius:50%;background:var(--card9);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.ksring9 b{font-size:22px;font-weight:900;color:var(--ink9)}.ksring9 i{font-style:normal;font-size:11px;font-weight:800;color:var(--mut9)}
.ksring9.big{width:128px;height:128px}.ksring9.big>span{width:100px;height:100px}.ksring9.big b{font-size:26px}
.ksbars9{flex:1;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;height:96px;align-items:end}
.ksb9{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.ksb9 i{display:block;width:100%;max-width:18px;border-radius:7px;background:#CFE3D6}
.ksb9.now i{background:var(--g9)}
.ksb9 em{font-style:normal;font-size:10px;font-weight:900;color:var(--mut9)}
.ksnote9{font-size:13px;font-weight:700;color:var(--mut9)}
/* diary / calories statistics */
.dhero9{display:flex;align-items:center;gap:16px;background:var(--card9);border-radius:28px;padding:18px;box-shadow:0 10px 28px rgba(18,24,20,.06)}
.dhero9 .stx9 b{font-size:20px}
.dleft9{margin-top:6px;align-self:flex-start;padding:4px 10px;border-radius:999px;background:var(--g9s);color:var(--g9d)!important;font-weight:900!important}
#app .diary9 .card{background:var(--card9);border:0;border-radius:24px;box-shadow:0 10px 28px rgba(18,24,20,.06);padding:16px}
#app .diary9 .card h3{font-size:18px;font-weight:900;color:var(--ink9);margin:0}
#app .diary9 .chips .chip{min-height:38px;border-radius:999px;font-weight:800;border:1px solid var(--ln9);background:var(--card9);box-shadow:0 3px 0 var(--st9)}
#app .diary9 .chip[aria-pressed="true"]{background:var(--g9);color:#fff;border-color:var(--g9);box-shadow:0 3px 0 var(--g9d)}
#app .diary9 .wday8{border:0;border-radius:16px;background:#F2F5F1;font-weight:800}
#app .diary9 .wday8.sel8{background:var(--g9s);outline:2px solid var(--g9)}
#app .diary9 .wbar8{background:#E4EBE5;border-radius:99px}
#app .diary9 .wbar8 i{background:var(--g9);border-radius:99px}
#app .diary9 .histrow8{border:0;border-radius:16px;background:#F7F9F7;padding:8px;gap:10px;font-weight:800}
#app .diary9 .histrow8 .thumb{width:48px;height:48px;border-radius:14px;overflow:hidden}
/* v9.3 prep rows: full dish names, week strip, «Как приготовить» folded, cooked block at the bottom */
.pqty9{display:inline-block;margin-top:2px;font-size:13px;font-weight:800;color:var(--mut9)}
.pdishes9{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.pdish9{display:flex;flex-direction:column;gap:5px}
.pdish9>b{font-size:14px!important;font-weight:800;color:var(--ink9);line-height:1.3}
#app .pwk9 i{width:auto;min-width:26px;padding:0 4px;height:20px}
.phow9{margin-top:8px}
.phow9 summary{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:900;color:var(--g9d);cursor:pointer;list-style:none}
.phow9 summary::-webkit-details-marker{display:none}
.phow9[open] .chev9{transform:rotate(90deg)}
.phow9 p{margin:6px 0 0;font-size:13px;font-weight:700;color:var(--ink9);line-height:1.45}
.pdone9{display:flex;flex-direction:column;gap:10px;margin-top:6px;padding:14px;border-radius:28px;background:#E8F3EB}
.pdonehead9{display:flex;align-items:center;gap:10px}.pdonehead9 h2{margin:0;flex:1;font-size:18px;font-weight:900;color:var(--ink9)}
.pdone9 .pitem9{box-shadow:none}
/* v9.3 stock rows: full name on its own line, then amount + measure + delete */
#app .prow8.stk9{display:flex!important;flex-direction:column;align-items:stretch!important;gap:8px;padding:12px 0;height:auto!important;min-height:0}
.stkname9{display:flex;flex-direction:column;gap:2px;min-width:0}.stkname9 b{font-size:16px;font-weight:800;line-height:1.3;color:var(--ink9);overflow-wrap:anywhere}
.stkctl9{display:flex;align-items:center;gap:8px}
#app .stkctl9 .quantity-control8{width:auto;flex:1;max-width:190px}
#app .stkctl9 .quantity-unit8{display:none}
#app .stkctl9 .quantity-value8 input[type=number]{text-align:center}
.unitsel9{flex:none}
#app .stkctl9 .del9{margin-left:auto}
#app .stkctl9 .sunit9{height:38px;padding:0 12px;border-radius:14px;margin:0;font-size:14px;box-shadow:0 2px 0 var(--st9)}
/* v9.3 recipe sheet and cooking mode in the new look */
.sheet,#cooklayer .cook{font-family:'Nunito','Golos Text',system-ui,sans-serif;background:var(--bg9)!important;color:var(--ink9)}
.sheet{border-radius:32px 32px 0 0!important}
.sheet .grab{background:#CFD9D2}
.sheet .eyebrow,#cooklayer .eyebrow{font-size:12px;font-weight:900;letter-spacing:.6px;color:var(--g9d)}
.sheet .iconbtn,#cooklayer .cookhead .iconbtn{width:42px;height:42px;border-radius:14px;background:var(--card9);border:1px solid var(--ln9);box-shadow:0 3px 0 var(--st9);color:var(--g9d)}
.sheet .cover,#cooklayer .cover{border-radius:28px;overflow:hidden;box-shadow:0 10px 28px rgba(18,24,20,.08)}
.sheet h1.dish,#cooklayer h1.dish{font-family:inherit!important;font-weight:900!important;letter-spacing:-.5px;line-height:1.15;color:var(--ink9)}
.sheet .meta,#cooklayer .meta{display:flex;flex-wrap:wrap;gap:6px}
.sheet .meta span,#cooklayer .meta span{padding:4px 10px;border-radius:999px;background:var(--card9);font-weight:800;font-size:13px;color:var(--mut9);box-shadow:0 2px 0 var(--st9)}
.sheet h3,#cooklayer h3{font-size:17px;font-weight:900;color:var(--ink9)}
.sheet .macros{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sheet .macro{background:var(--card9);border:0;border-radius:18px;padding:10px;box-shadow:0 3px 0 var(--st9);display:flex;flex-direction:column;align-items:flex-start}
.sheet .macro b{font-size:18px;font-weight:900;color:var(--ink9)}.sheet .macro span{font-size:12px;font-weight:800;color:var(--mut9)}
.sheet .macro:first-child{background:var(--g9);box-shadow:0 3px 0 var(--g9d)}.sheet .macro:first-child b,.sheet .macro:first-child span{color:#fff}
.sheet .buybox8{background:#FFF6DB;border:1px solid #F3E2A8;border-radius:18px;padding:12px 14px;color:#3D3313;font-weight:700}
.sheet .card,#cooklayer .card{background:var(--card9)!important;border:0!important;border-radius:24px!important;box-shadow:0 10px 28px rgba(18,24,20,.06)!important;padding:16px!important}
.sheet .stepper{display:flex;align-items:center;border:1px solid var(--ln9);border-radius:16px;background:var(--card9);box-shadow:0 3px 0 var(--st9);height:44px}
.sheet .stepper button{width:40px;border:0;background:transparent;color:var(--g9d);font-size:20px;font-weight:900}
.sheet .stepper span{font-weight:900;min-width:76px;text-align:center}
.sheet .ingr,#cooklayer .ingr{border-top:1px solid #EEF2EE;padding:10px 0;font-weight:800;gap:10px}
.sheet .ingr:first-child{border-top:0}
.sheet .xs8{width:30px!important;height:30px!important;border-radius:50%!important;box-shadow:none!important;background:#F2F5F1!important;border:0!important;color:var(--mut9)!important;font-size:12px}
.sheet .btn,#cooklayer .btn{border-radius:18px;min-height:52px;font-weight:900;font-size:16px;background:var(--g9);color:#fff;border:0;box-shadow:0 4px 0 var(--g9d),0 10px 20px rgba(30,99,56,.2)}
.sheet .btn.ghost,#cooklayer .btn.ghost{background:var(--card9);color:var(--ink9);border:1px solid var(--ln9);box-shadow:0 4px 0 var(--st9)}
.sheet .fav8[aria-pressed="true"]{background:#FFE9E5;color:#E5533D}
#cooklayer .cookhead{background:var(--bg9);border:0;gap:12px}
#cooklayer .cookhead b{font-size:14px;font-weight:900;color:var(--ink9)}
#cooklayer .cookhead .progress{height:10px;border-radius:99px;background:#DCE7DF;overflow:hidden}
#cooklayer .cookhead .progress i{background:var(--g9);border-radius:99px}
#cooklayer .cooktext{font-size:22px;font-weight:900;line-height:1.35;color:var(--ink9);letter-spacing:-.2px}
#cooklayer .chips .pill{background:var(--card9)!important;border:1px solid var(--ln9);box-shadow:0 2px 0 var(--st9);border-radius:999px;font-weight:800;color:var(--ink9)}
#cooklayer .note{display:flex;gap:12px;align-items:flex-start;background:#FFF6DB;border:1px solid #F3E2A8;border-radius:20px;padding:14px;font-weight:700;color:#3D3313;box-shadow:none}
#cooklayer .note>b{flex:none;width:26px;height:26px;border-radius:50%;background:#121814;color:#FFE58A;display:flex;align-items:center;justify-content:center}
#cooklayer .chk2{appearance:none;-webkit-appearance:none;width:26px;height:26px;border-radius:50%;border:2px solid #C9D6CD;background:#fff;margin:0;flex:none;display:inline-grid;place-content:center;cursor:pointer}
#cooklayer .chk2:checked{background:var(--g9) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--g9)}
#cooklayer .ingr .qty{font-weight:900;color:var(--ink9)}
#cooklayer .cookfoot{background:var(--card9);border:0;border-radius:28px 28px 0 0;box-shadow:0 -10px 30px rgba(18,24,20,.08)}
#cooklayer .tstrip{background:#FFF1E6}
/* v9.4 compact prep cards and category tabs */
#app button.pcirc9{border:0;font:inherit;cursor:pointer;color:inherit}
#app .pcirc9.on9{outline:2px solid var(--g9);background:#F1F8F2}
#app .pitem9{padding:12px!important;gap:10px!important;align-items:flex-start}
#app .pitem9 .ppic9{width:44px!important;height:44px!important;flex:none}
#app .pitem9 .pbody9>b{font-size:16px}
.pbody9>b+.pqty9{margin-left:6px}
.pdishes9{gap:4px!important;margin-top:4px!important}
.pdish9{flex-direction:row!important;flex-wrap:wrap;align-items:center;gap:4px 8px!important}
.pdish9>b{font-size:13px!important;font-weight:700!important;color:var(--mut9)!important}
.pdays9{display:inline-flex;gap:3px}
.pdays9 i{font-style:normal;font-size:10px;font-weight:900;padding:2px 6px;border-radius:7px;background:var(--g9);color:#fff}
.phow9{margin-top:4px!important}
.pallok9{display:flex;align-items:center;gap:10px;padding:14px;border-radius:20px;background:#E8F3EB;font-weight:900}
/* v9.4 stock row in one line: name · amount · measure · delete */
#app .prow8.stk9{flex-direction:row!important;align-items:center!important;gap:8px;padding:10px 0}
#app .stk9 .stkname9{flex:1;min-width:0}
#app .stk9 .stkname9 b{font-size:15px}
#app .stk9 .stkname9>span{font-size:11px}
#app .stk9 .stkctl9{flex:none;gap:6px}
#app .stkctl9 .quantity-control8{flex:none;width:104px;max-width:none;height:36px}
#app .stkctl9 .quantity-adjust8{width:26px;min-width:26px}
#app .stkctl9 .quantity-value8 input[type=number]{font-size:14px;padding:0}
#app .stkctl9 .sunit9{height:36px;padding:0 8px;font-size:13px}
#app .stkctl9 .del9{margin-left:0;width:30px;height:30px}
@media(max-width:359px){#app .prow8.stk9{flex-wrap:wrap}#app .stk9 .stkname9{flex-basis:100%}}
/* v9.4 «Мои рецепты»: editable products */
#app .prefed9 .ingr{display:flex;align-items:center;gap:8px}
#app .prefed9 .ingr input.iq8{width:76px;height:38px;border-radius:12px;border:1px solid var(--ln9);text-align:right;font-weight:900;padding:0 8px;background:#fff}
.prefnote9{display:flex;gap:10px;align-items:center;margin:4px 0 6px;padding:10px 12px;border-radius:16px;background:var(--g9s);color:#1E3D27;font-size:13px;font-weight:800}
#app .prefadd9{margin-top:10px;height:44px}
#app[data-view="rec8"] .screen{gap:14px}
#app[data-view="rec8"] h1.dish{font-family:'Nunito',system-ui,sans-serif!important;font-weight:900!important;letter-spacing:-.5px}
#app[data-view="rec8"] .cover{border-radius:28px;overflow:hidden}
#app[data-view="rec8"] .card{background:var(--card9);border:0;border-radius:24px;box-shadow:0 10px 28px rgba(18,24,20,.06);padding:16px}
#app[data-view="rec8"] .macro{background:var(--card9);border:0;border-radius:18px;box-shadow:0 3px 0 var(--st9)}
#app[data-view="rec8"] .meta span{padding:4px 10px;border-radius:999px;background:var(--card9);font-weight:800;font-size:13px;box-shadow:0 2px 0 var(--st9)}
#app[data-view="pRecipes"] .card.recrow{background:var(--card9);border:0;border-radius:22px;box-shadow:0 4px 0 var(--st9),0 10px 24px rgba(18,24,20,.05);padding:10px 12px}
#app[data-view="pRecipes"] .recrow .thumb{width:60px;height:60px;border-radius:18px;overflow:hidden}
#app[data-view="pRecipes"] .recrow .dish{font-weight:900}
#app .prefed9 .ingr{padding:6px 0;min-height:0}
/* v9.5 cooking mode */
#cooklayer .cook9 .cookbody{gap:14px;padding-top:6px}
#cooklayer .cook9 .cookhead{align-items:center}
#cooklayer .cook9 .cookhead .iconbtn{border-radius:50%}
.cksegs9{display:flex;gap:4px;margin-top:8px}.cksegs9 i{flex:1;height:6px;border-radius:99px;background:#DCE7DF}.cksegs9 i.on{background:var(--g9)}
.ckcover9{position:relative;border-radius:28px;overflow:hidden;box-shadow:0 10px 28px rgba(18,24,20,.1);aspect-ratio:400/240;flex:none}
.ckcover9>svg,.ckcover9>img{width:100%;height:100%;display:block;object-fit:cover}
.ckchips9{position:absolute;left:12px;bottom:12px;display:flex;gap:6px;flex-wrap:wrap}
.ckchips9>span{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.94);font-size:13px;font-weight:900;color:var(--ink9);box-shadow:0 4px 10px rgba(0,0,0,.08)}
.cknum9{position:absolute;left:14px;top:14px;width:44px;height:44px;border-radius:16px;background:var(--g9);color:#fff;font-size:22px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 0 var(--g9d)}
.ckeye9{margin:0;color:var(--g9d)!important}
.cktitle9{margin:-6px 0 0;font-size:28px;font-weight:900;letter-spacing:-.5px;line-height:1.15;color:var(--ink9)}
.ckcard9{background:var(--card9);border-radius:24px;padding:16px;box-shadow:0 10px 28px rgba(18,24,20,.06);display:flex;flex-direction:column;gap:6px}
.ckcard9 h3{margin:0 0 4px;font-size:18px;font-weight:900;color:var(--ink9)}
.ckrow9{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid #EEF2EE;cursor:pointer}
.ckrow9:first-of-type{border-top:0}
.ckrow9 .grow{display:flex;flex-direction:column;min-width:0}.ckrow9 b{font-size:15px;font-weight:800;color:var(--ink9)}.ckrow9 .grow>span{font-size:13px;font-weight:800;color:var(--mut9)}
.ckpic9{width:40px;height:40px;border-radius:14px;background:#F2F5F1;display:flex;align-items:center;justify-content:center;flex:none}.ckpic9 img{width:30px;height:30px}
.ckrow9:has(.chk2:checked) b{text-decoration:line-through;color:var(--mut9)}
.cksp9,.cknote9{margin:4px 0 0;font-size:13px;font-weight:700;color:var(--mut9);line-height:1.45}
.ckpills9{display:flex;flex-wrap:wrap;gap:6px}.ckpills9 span{padding:6px 12px;border-radius:999px;background:#F2F5F1;font-size:13px;font-weight:800;color:var(--ink9)}
.ckstep9{gap:10px}
#cooklayer .ckstep9 .cooktext{margin:0;font-size:21px}
.ckings9{display:flex;flex-direction:column;gap:6px}
.cking9{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:16px;background:#F7F9F7}
.cking9>span:last-child{display:flex;justify-content:space-between;flex:1;gap:8px;font-size:14px}.cking9 b{font-weight:800;color:var(--ink9)}.cking9 i{font-style:normal;font-weight:900;color:var(--g9d);white-space:nowrap}
.cktimer9{align-items:center;text-align:center}
.cktl9{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:900;color:var(--mut9)}
#cooklayer .cktimer9 .bigtime{font-size:46px;font-weight:900;color:var(--ink9);font-variant-numeric:tabular-nums;letter-spacing:-1px}
.cktbtns9{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;width:100%}
#cooklayer .cktbtns9 .btn{flex:1 1 100%}
#cooklayer .cktbtns9 .btn.small{flex:1 1 40%;min-height:44px;font-size:14px}
#cooklayer .cktip9>b{background:#F2C94C;color:#3D3313}
.ckdone9{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding-top:10px}
.ckdone9 img{width:min(220px,60vw);filter:drop-shadow(0 14px 22px rgba(30,99,56,.22));-webkit-mask-image:none;mask-image:none}
.ckdone9 h1{margin:4px 0 0;font-size:28px;font-weight:900;color:var(--ink9)}.ckdone9 p{margin:0;font-weight:700;color:var(--mut9)}
#cooklayer .cook9 .cookfoot{gap:10px;align-items:center}
#cooklayer .cook9 .ckback9{flex:0 0 56px;width:56px;min-height:56px;padding:0;display:flex;align-items:center;justify-content:center}
#cooklayer .cook9 .cookfoot .btn:not(.ckback9){min-height:56px;font-size:17px}
#cooklayer .cook9 .rating-star{border-radius:16px;border:1px solid var(--ln9);background:#fff;box-shadow:0 3px 0 var(--st9);color:#C9D6CD;font-weight:900}
#cooklayer .cook9 .rating-star[aria-pressed="true"],#cooklayer .cook9 .rating-star.on{background:#FFF1C2;border-color:#F2C94C;color:#C98A10;box-shadow:0 3px 0 #E0B33C}
#cooklayer .cook9 .ckcard9 .btn.secondary{background:var(--g9s);color:var(--g9d);box-shadow:0 4px 0 #C6E0CF}
.wbtns9{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.wbtns9 .wbtn9{margin:0}
/* v9.6 */
#app .stkctl9 .sunit9{width:58px;justify-content:center;flex:none;box-sizing:border-box}
#app .stkctl9 .quantity-control8{width:108px}
#app[data-view="menu"] .daychips8{position:sticky;top:0;z-index:6;background:var(--bg9);padding:8px 0;margin:-8px 0}
.dherorow9{display:flex;align-items:center;gap:16px}
.dhero9{flex-direction:column;align-items:stretch!important}
.dmac9{border-top:1px solid #EEF2EE;padding-top:12px;display:flex;flex-direction:column;gap:8px}
.dmac9 b{font-size:16px;font-weight:900}
.ksring9.big b{font-size:28px}
#app .diary9 .hscroll8{scroll-padding-left:4px;padding-left:4px;padding-right:4px}
#app .diary9 .hscroll8{padding-top:4px;padding-bottom:4px}
/* v9.6 «Что ещё съели» */
.ksug9{display:flex;flex-direction:column;margin-top:4px;border-radius:18px;overflow:hidden;border:1px solid #EEF2EE}
#app .ksrow9{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:0;background:#fff;box-shadow:none;text-align:left;font:inherit;color:var(--ink9);cursor:pointer}
#app .ksrow9+.ksrow9{border-top:1px solid #EEF2EE}
#app .ksrow9:active{background:#F5F8F5;transform:none}
.ksrow9 .grow{display:flex;flex-direction:column;min-width:0}.ksrow9 b{font-size:15px;font-weight:800}.ksrow9 .grow>span{font-size:12px;font-weight:800;color:var(--mut9)}
.kspic9{width:40px;height:40px;border-radius:14px;overflow:hidden;flex:none}.kspic9 svg,.kspic9 img{width:100%;height:100%;object-fit:cover;display:block}
.ksrow9 .plus9{width:30px;height:30px;border-radius:50%;background:var(--g9s);color:var(--g9d);font-weight:900;font-size:18px;display:flex;align-items:center;justify-content:center;flex:none}
#app .kform9:has(#kqty8){flex-wrap:wrap}
#app .kform9:has(#kqty8)>input[type=search]{flex:1 1 100%}
#app .kform9:has(#kqty8) .quantity-control8{flex:1;max-width:none;height:46px}
#app .kform9:has(#kqty8) .addbtn9{flex:none}
.kate9{display:flex;flex-direction:column;margin-top:4px}
.karow9{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #EEF2EE}
.karow9:first-child{border-top:0}
.karow9 b{font-size:15px;font-weight:800;min-width:0}
.kk9{font-size:14px;font-weight:900;color:var(--g9d);white-space:nowrap}
.karow9 .okdot9{flex:none}
.ktot9{display:flex;justify-content:space-between;align-items:center;margin-top:4px;padding:10px 12px;border-radius:14px;background:var(--g9s);font-size:14px;font-weight:800;color:#1E3D27}
#app .kform9 .quantity-value8 input[type=number]{border:0!important;background:transparent!important;box-shadow:none!important;text-align:center;height:44px}#app .kform9 .quantity-value8{border:0;background:transparent}
/* v9.7 cart comparison: fixed columns, prices aligned left */
.cmphead9 span:not(.grow){width:78px;text-align:left;padding-left:8px;box-sizing:border-box;flex:none}
#app .cmpv9,#app .cmpv9.win9{width:78px;min-width:78px;text-align:left;padding:3px 8px;border-radius:999px;box-sizing:border-box;flex:none}
/* v9.7 sign-in */
#app .auth9{gap:14px;text-align:left}
.ahero9{height:190px;border-radius:32px;background:radial-gradient(120% 90% at 50% 20%,#4FAE6E 0%,#2E8A50 60%,#1E6338 100%);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;margin-top:4px}
.ahero9 img{width:220px;height:190px;object-fit:contain;margin-bottom:0;filter:drop-shadow(0 12px 20px rgba(0,0,0,.25))}
.ahead9 h1{margin:0;font-size:30px;font-weight:900;letter-spacing:-.5px;color:var(--ink9)}.ahead9 p{margin:4px 0 0;font-size:15px;font-weight:700;color:var(--mut9)}
.apts9{display:flex;flex-direction:column;gap:12px;padding:16px!important}
.apt9{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:800;color:var(--ink9);line-height:1.35}.apt9 .okdot9{flex:none}
#app .auth9 .btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;font-size:17px}
.acode9{display:flex;flex-direction:column;gap:10px;padding:16px!important}.acode9 h2{margin:0;font-size:20px;font-weight:900}
.acode9 .codeinput{text-align:center;font-size:30px;font-weight:900;letter-spacing:6px;padding:12px;border-radius:18px;background:#F2F5F1;border:0}
#app .arestart9{align-self:center;color:var(--mut9);font-weight:900;font-size:15px}
/* v9.7 recipe editor */
.recf9{display:flex;flex-direction:column;gap:10px;padding:16px!important}
.recf9 h3{margin:0;font-size:18px;font-weight:900;color:var(--ink9)}
.rlab9{font-size:14px;font-weight:900;color:var(--ink9)}
#app .rin9,#app .recf9 textarea{width:100%;box-sizing:border-box;min-height:48px;border-radius:16px;border:1px solid var(--ln9);background:#F7F9F7;padding:12px 14px;font:inherit;font-size:16px;font-weight:700;color:var(--ink9);box-shadow:none}
#app .recf9 textarea{min-height:64px;resize:vertical}
.rkinds9{display:flex;flex-wrap:wrap;gap:8px}
#app .rkinds9 .chip{min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--ln9);background:#fff;color:var(--ink9);font-weight:800;font-size:14px;box-shadow:0 3px 0 var(--st9)}
#app .rkinds9 .chip[aria-pressed="true"]{background:var(--g9);border-color:var(--g9);color:#fff;box-shadow:0 3px 0 var(--g9d)}
.rnums9{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rnums9 .field{display:flex;flex-direction:column;gap:6px;margin:0}
#app .rnums9 .quantity-control8{width:100%;height:46px}
#app .recf9 .ingrow8{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid #EEF2EE;font-weight:800}
#app .recf9 .ingrow8 input{width:76px;height:38px;border-radius:12px;border:1px solid var(--ln9);text-align:right;font-weight:900}
#app .recf9 .ingrow8 .iconbtn{width:30px;height:30px;border-radius:50%;background:#F2F5F1;border:0;box-shadow:none;color:var(--mut9)}
#app .rsteps9 .stepn{width:28px;height:28px;border-radius:50%;background:var(--g9);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;flex:none;margin-top:10px}
#app .rsteps9 .row{gap:10px;margin-bottom:8px}
#app[data-view="pRecipe"] .screen{gap:14px}
/* «Распознать рецепт» folds like «Все блюда недели» */
#app .recipe-import-disclosure{background:var(--card9);border:0;border-radius:18px;box-shadow:0 3px 0 var(--st9),0 10px 24px rgba(18,24,20,.05);padding:0;overflow:hidden}
#app .recipe-import-disclosure>summary{display:flex;align-items:center;gap:10px;padding:12px 14px;list-style:none;cursor:pointer;font-size:15px;font-weight:900;color:var(--ink9)}
#app .recipe-import-disclosure>summary::-webkit-details-marker{display:none}
#app .recipe-import-disclosure>summary::before{content:"";width:34px;height:34px;border-radius:12px;flex:none;background:var(--g9s) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E6338' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 14a5 5 0 007 0l3-3a5 5 0 00-7-7l-1 1M14 10a5 5 0 00-7 0l-3 3a5 5 0 007 7l1-1'/%3E%3C/svg%3E") center/18px no-repeat}
#app .recipe-import-disclosure>summary::after{content:"";margin-left:auto;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E6338' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .15s}
#app .recipe-import-disclosure[open]>summary::after{transform:rotate(90deg)}
#app .recipe-import-disclosure[open]>summary{border-bottom:1px solid #EEF2EE}
#app .recipe-import-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px}
#app .recipe-import-body input{width:100%;box-sizing:border-box;min-height:48px;border-radius:16px;border:1px solid var(--ln9);background:#F7F9F7;padding:0 14px;font:inherit;font-weight:700}
#app .recf9 .ingrow8>.grow{min-width:0;flex:1}
#app .recf9 .ingrow8 .quantity-control8{flex:none;width:132px;height:38px}
#app .recf9 .ingrow8 .quantity-control8 input{border:0;width:auto;height:36px}
#app .recf9 .quantity-control8{border:1px solid var(--ln9);border-radius:14px;background:#fff;gap:0;box-shadow:0 2px 0 var(--st9);align-items:center}
#app .recf9 .quantity-control8 .quantity-adjust8{border:0;background:transparent;box-shadow:none;color:var(--g9d);font-weight:900;font-size:18px;min-height:0;height:100%}
#app .recf9 .quantity-control8 .quantity-value8{border:0;background:transparent;box-shadow:none}
#app .recf9 .quantity-control8 input{border:0!important;background:transparent!important;box-shadow:none!important;font-weight:900}
@media(min-width:1024px){#app .auth9{max-width:440px;margin:0 auto}#app .auth9>div[style*="flex:1"]{flex:0!important}}
#app .recf9 .search9 input,#app .prefadd9 input{min-height:44px!important;height:44px}#app .recf9 .search9{height:auto}
/* v9.8 welcome: big mascot with the logo, motto in script letters */
.welcome9 .wbig9{flex:1;justify-content:center;gap:4px;margin-top:0}
.welcome9 .wbig9 .wfull9{width:min(430px,calc(100vw - 8px))!important;height:auto!important;max-width:none;margin:0 -12px}
.welcome9 .wmotto9{font-family:'Lobster',cursive!important;font-weight:400!important;font-size:clamp(38px,11vw,48px)!important;line-height:1.1!important;letter-spacing:.5px!important;color:#fff!important;text-shadow:0 3px 0 rgba(0,0,0,.18),0 10px 24px rgba(0,0,0,.18);margin:0!important}
.welcome9>div[style*="flex:1"]{flex:0!important}
@media(max-height:700px){.welcome9 .wbig9 .wfull9{width:auto!important;max-height:52vh}}
.toast.err9::before{background:#E5533D url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E") center/13px no-repeat}
/* v9.11 «Дневник питания» for the selected day */
.dlog9{display:flex;flex-direction:column;gap:4px}
#app .dlrow9{display:flex;align-items:center;gap:12px;width:100%;padding:8px 0!important;border:0!important;border-top:1px solid #EEF2EE!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-align:left;font:inherit;color:var(--ink9)}
#app .dlrow9 .thumb{width:48px;height:48px;border-radius:14px;overflow:hidden;flex:none}
.dlrow9 .grow{display:flex;flex-direction:column;min-width:0}.dlrow9 b{font-size:15px;font-weight:800}.dlrow9 .grow>span{font-size:12px;font-weight:800;color:var(--mut9)}
.dlpic9{width:48px;height:48px;border-radius:14px;background:var(--g9s);color:var(--g9d);display:flex;align-items:center;justify-content:center;flex:none}.dlpic9 svg{width:18px;height:18px}
.dlk9{font-size:14px;font-weight:900;color:var(--g9d);white-space:nowrap}
.dltot9{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding:10px 12px;border-radius:14px;background:var(--g9s);font-size:14px;font-weight:800;color:#1E3D27}

/* Automatic store baskets: keep the current green/white card design. */
.cart-summary9{display:flex;flex-direction:column;gap:10px;width:100%;text-align:left;padding:20px;color:var(--ink9);font:inherit}
.cart-summary9 strong{font-size:24px;color:var(--g9d)}.cart-summary-link9{color:var(--g9d);font-weight:800}
.cart-compare9{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.store-compare9{display:flex;flex-direction:column;gap:8px;text-align:left;padding:14px;border:2px solid var(--ln9);border-radius:18px;background:var(--card9);overflow-wrap:anywhere;color:var(--ink9)}
.store-compare9.on{border-color:var(--g9);background:var(--g9s)}.store-compare9 strong{font-size:23px}.cart-details9{gap:14px;text-align:left;align-items:stretch}
.cart-product-list9{display:flex;flex-direction:column}.cart-product9{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--ln9)}
.cart-product9>span{display:flex;flex-direction:column;gap:5px;min-width:0}.cart-product9>strong{white-space:nowrap}.cart-total9{padding:16px 0;font-size:20px}.store-cart-loading{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%;padding:12px 0}.store-cart-loading .cbar9{flex-basis:100%}
@media(max-width:360px){.cart-compare9{grid-template-columns:1fr}.cart-summary9 strong{font-size:20px}}

/* Store basket presentation uses the original v9 tiles, result card and comparison disclosure. */
#app[data-view="autocart"] .store-cart-loading{flex-wrap:nowrap;align-items:stretch;padding:14px 16px}
#app[data-view="autocart"] .store-cart-loading .cbar9{flex-basis:auto}
#app[data-view="autocart"] .cmpcell9{display:flex;flex-direction:column;gap:4px;width:76px;flex:none;text-align:right}
#app[data-view="autocart"] .cmpcell9 .cmpv9{display:block;width:100%;box-sizing:border-box}
#app[data-view="autocart"] .cmpvolume9{font-size:11px;font-weight:700;color:var(--mut9);white-space:normal;overflow-wrap:anywhere;line-height:1.3}
#app[data-view="autocart"] .cmpneed9{display:block;font-size:12px;margin-top:3px}
#app[data-view="autocart"] .cmprow9>.grow{min-width:0}
#app[data-view="autocart"] .cmphead9 span:not(.grow){width:76px}

/* Store collection starts on demand, with an interpolated progress button. */
#app .cart-progress-btn9{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:18px 20px;opacity:1;color:#fff;background:var(--g9);cursor:wait;min-height:92px}
.cart-progress-title9{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:17px;font-weight:900}
.cart-progress-title9>span{white-space:nowrap}.cart-progress-track9{display:block;height:9px;border-radius:99px;background:rgba(255,255,255,.3);overflow:hidden}
.cart-progress-track9>i{display:block;height:100%;border-radius:99px;background:#fff;transition:width .22s ease-out;min-width:0}
.cart-missing-disclosure9{margin:0 4px;font-size:13px;font-weight:700;color:var(--mut9)}.cart-missing-disclosure9 summary{cursor:pointer}.cart-missing-disclosure9 ul{padding-left:18px}
@media(prefers-reduced-motion:reduce){.cart-progress-track9>i{transition:none}}
/* Keep the progress track full-width despite the more specific shared shop button styles. */
#app:is([data-view="shop"],[data-view="autocart"]) .btn.cart-progress-btn9{display:flex;flex-direction:column;align-items:stretch;gap:14px;min-height:92px}
#app .cart-progress-title9{width:100%}
#app .cart-progress-track9{width:100%;height:9px;min-height:9px;flex:none;align-self:stretch}
#app .cart-progress-track9>i{min-width:8px;transition:width .22s ease-out}
@media(prefers-reduced-motion:reduce){#app .cart-progress-track9>i{transition:none}}
/* v9.14 own recipe products: name · −/+ amount · measure · delete */
#app .ri9row{align-items:center}
#app .ri9row .quantity-unit8{display:none}
#app .recf9 .ri9row .quantity-control8{width:108px;flex:none}
#app .ri9row .sunit9{width:58px;height:38px;justify-content:center;flex:none;box-sizing:border-box;border-radius:14px;margin:0;font-size:13px;box-shadow:0 2px 0 var(--st9)}
#app .ri9row .del9{width:30px;height:30px;flex:none}

/* Menu preparation: show the whole mascot without cropping the portrait artwork. */
.lmascot9{height:min(220px,60vw);object-fit:contain;object-position:center}

/* v9.16 «Что ещё съели»: −/+ amount with its own measure */
#app .kform9 .quantity-unit8{display:none}
#app .kform9 .kunit9{width:58px;height:46px;justify-content:center;flex:none;box-sizing:border-box;border-radius:14px;margin:0;font-size:14px;box-shadow:0 2px 0 var(--st9)}

.dlwrap9{display:flex;align-items:center;gap:4px}.dlwrap9>.dlrow9{flex:1;min-width:0}.dldel9{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--muted,#8a8f87);display:grid;place-items:center;cursor:pointer}.dldel9:hover,.dldel9:focus-visible{background:rgba(220,60,60,.08);color:#c0392b}
/* v9.18 «Как готовить» — steps with pictures */
#layer .steps9{display:flex;flex-direction:column;gap:12px;margin-top:6px}
#layer .stepshead9{display:flex;align-items:center;justify-content:space-between;gap:10px}#layer .stepshead9 h2{margin:0;font-size:22px;font-weight:900}
#layer .stepscount9{background:var(--g9s);color:var(--g9d);font-weight:800;font-size:13px;border-radius:999px;padding:5px 11px}
#layer .stepneed9{display:flex;gap:10px;align-items:flex-start;background:var(--card9);border:1px solid var(--ln9);border-radius:16px;padding:12px 14px;font-size:14px;line-height:1.45;color:var(--mut9)}#layer .stepneed9 b{color:var(--ink9)}
#layer .steplist9{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:none}
#layer .step9{background:var(--card9);border-radius:20px;box-shadow:0 1px 0 var(--ln9),0 6px 18px rgba(18,24,20,.05);overflow:hidden;display:flex;flex-direction:column}
#layer .stepimg9{position:relative;aspect-ratio:16/8;background:var(--g9s);overflow:hidden}#layer .stepimg9 svg,#layer .stepimg9 img{display:block;width:100%;height:100%;object-fit:cover}
#layer .stepnum9{position:absolute;left:12px;top:12px;min-width:34px;height:34px;padding:0 8px;border-radius:999px;background:var(--g9);color:#fff;font-weight:900;font-size:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 0 var(--g9d)}
#layer .stepbody9{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}
#layer .steptx9{margin:0;font-size:16px;line-height:1.5;color:var(--ink9);font-weight:600}
#layer .stepings9{display:flex;flex-wrap:wrap;gap:6px}#layer .stepings9 span{background:var(--bg9);border:1px solid var(--ln9);border-radius:999px;padding:4px 10px;font-size:13px;color:var(--mut9)}#layer .stepings9 b{color:var(--ink9);font-weight:800}
#layer .stephint9{margin:0;font-size:13px;line-height:1.4;color:var(--mut9);padding-left:10px;border-left:3px solid var(--g9s)}
#layer .step9.stepcard{padding:0;border:0;gap:0}
#app .phowt9{margin-top:6px;font-size:13px;font-weight:700;color:var(--ink9);line-height:1.45}
#app .phsteps9{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.toastu9{display:flex;align-items:center;gap:12px;max-width:min(92vw,440px)}.toastu9 .grow{flex:1;min-width:0}
/* v9.18 «Сравнение корзин» — a real table: names left, store columns aligned right, store marks */
#app .cmp9{padding:0;overflow:hidden}
#app .cmp9 summary{padding:14px 16px!important;margin:0}
#app .cmp9[open] summary{border-bottom:1px solid var(--ln9)}
#app .cmpbody9{padding:10px 0 4px}
#app .cmp9 .cmpnote9{margin:0 16px 8px;font-size:12.5px;font-weight:600;line-height:1.45;color:var(--mut9)}
#app .cmptable9{display:flex;flex-direction:column}
#app .cmprow9{display:grid!important;grid-template-columns:minmax(0,1fr) 88px 88px;column-gap:10px;align-items:start;padding:10px 16px;border-top:1px solid #EEF2EE;font-size:14px}
#app .cmprow9.cmphead9{border-top:0;padding-top:4px;padding-bottom:6px;align-items:end;font-size:11.5px;font-weight:800;color:var(--mut9)}
#app .cmphead9 .cmpname9{text-transform:uppercase;letter-spacing:.04em;font-size:10.5px}
#app .cmpst9{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;line-height:1.15;width:auto!important;padding:0!important}
#app .cmpname9{display:flex;flex-direction:column;gap:2px;min-width:0}
#app .cmpname9 b{font-size:14px;font-weight:800;line-height:1.25;color:var(--ink9);overflow-wrap:anywhere}
#app .cmpneed9,#app[data-view="autocart"] .cmpneed9{display:block;margin:0 0 4px;font-size:12px;font-weight:700;color:var(--mut9)}
#app .cmpcell9,#app[data-view="autocart"] .cmpcell9{display:flex;flex-direction:column;align-items:flex-end;gap:3px;width:auto;text-align:right}
#app .cmpv9,#app .cmpv9.win9,#app[data-view="autocart"] .cmpcell9 .cmpv9{display:inline-block;width:auto;min-width:0;padding:2px 8px;margin-right:-8px;border-radius:999px;font-size:14px;font-weight:800;color:var(--ink9);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;box-sizing:border-box}
#app .cmpv9.win9{background:var(--g9s);color:var(--g9d);font-weight:900}
#app .cmpvolume9,#app[data-view="autocart"] .cmpvolume9{font-size:12px;font-weight:700;color:var(--mut9);line-height:1.3;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#app .cmprow9.tot9{background:var(--bg9);border-top:1px solid var(--ln9);padding-top:12px;padding-bottom:12px;align-items:center}
#app .cmprow9.tot9 .cmpname9 b{font-size:15px;font-weight:900}
#app .cmprow9.tot9 .cmpv9{font-size:15px;font-weight:900}
/* store marks */
.slogo9{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;overflow:hidden;flex:none;vertical-align:middle;font-style:normal}
.slogo9 i{font-style:normal;font-size:9.5px;font-weight:900;color:#fff;letter-spacing:-.02em}
.slogo9 img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.slogo-vkusvill{background:#2E9E45}.slogo-lavka{background:#FCE000}.slogo-lavka i{color:#121814}
#app .stn9{display:inline-flex;align-items:center;gap:8px}
#app .stn9 .slogo9{width:24px;height:24px}
#app .cmphead9 span.slogo9{width:22px!important;height:22px;padding:0!important;text-align:center}
#app .cmphead9 span.cmpname9,#app .cmphead9 .cmpst9>span:not(.slogo9){width:auto!important;padding:0!important}
#app .stn9{font-size:16px;line-height:1.2;flex-wrap:nowrap;min-width:0}
#app .stc9 .stn9{white-space:nowrap}
#app details.cmp9{display:block!important;gap:0}
#app .cmp9 summary h3{white-space:nowrap;font-size:16px}
#app .cmp9 summary .pill{white-space:nowrap;font-size:12px;padding:3px 9px}
#app .stc9 .stn9{font-size:15px!important;white-space:nowrap;letter-spacing:-.01em}
#app .cmp9 summary{gap:8px}#app .cmp9 summary h3{font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis}#app .cmp9 summary .pill{flex:none}

:is(#app,#layer) .ru9row .quantity-unit8{display:none}:is(#app,#layer) .ru9row{display:flex;align-items:center;gap:8px}:is(#app,#layer) .ru9row .sunit9{flex:none}:is(#app,#layer) .ru9row .grow{min-width:0}

/* v9.19 «Как готовить»: one highlighted block, full-width pictures, numbers next to the text */
#layer .steps9{background:var(--card9);border-radius:24px;padding:16px;box-shadow:0 1px 0 var(--ln9),0 8px 22px rgba(18,24,20,.06);gap:14px}
#layer .steps9 .stepneed9{background:var(--bg9);border:0}
#layer .steplist9{gap:16px}
#layer .step9,#layer .step9.stepcard{flex-direction:column!important;background:transparent;box-shadow:none;border-radius:0;padding:0 0 16px;border-bottom:1px solid var(--ln9)}
#layer .step9:last-child{border-bottom:0;padding-bottom:0}
#layer .stepimg9{width:100%!important;aspect-ratio:400/220!important;min-height:0!important;border-radius:16px}
#layer .stepbody9{padding:12px 0 0}
#layer .steprow9{display:flex;gap:12px;align-items:flex-start}
#layer .stepnum9{position:static;flex:none;width:30px;min-width:30px;height:30px;padding:0;font-size:15px;box-shadow:none;margin-top:-2px}
#layer .stepbody9 .stepings9,#layer .stepbody9 .stephint9{margin-left:42px}
/* v9.19 prep rows: «Количество / Как приготовить / Блюда» */
#app .pdl9{display:inline-flex;flex-direction:column;gap:4px;vertical-align:top}
#app .pdlrow9{display:inline;line-height:1.45}
#app .pdlrow9 .pdays9{margin-left:4px;vertical-align:1px}
#app .plines9 .pl9{display:block;font-size:14px;line-height:1.45;margin-top:4px}
#app .plines9 .phsteps9{margin:4px 0 0;padding-left:18px;font-weight:700}
#app .psoup9 img,#app .pitem9 .ppic9 img{width:32px;height:32px;display:block}
:is(#app,#layer) .ru9row{gap:6px}
:is(#app,#layer) .ru9row .grow{word-break:normal;overflow-wrap:normal;hyphens:auto;font-size:14px;line-height:1.25}
:is(#app,#layer) .ru9row .quantity-control8{flex:none;gap:4px}
:is(#app,#layer) .ru9row .quantity-adjust8{width:30px;min-width:30px;height:36px;padding:0}
:is(#app,#layer) .ru9row .quantity-value8{width:58px;min-width:58px;height:36px;padding:0 6px}
:is(#app,#layer) .ru9row .quantity-value8 input{width:100%;min-width:0;text-align:center}
:is(#app,#layer) .ru9row .xs8{width:28px;height:28px;flex:none}

/* Real product progress; later phases have no invented percentage. */
.cart-progress-final9>i{animation:cart-stage9 1.2s ease-in-out infinite alternate}
@keyframes cart-stage9{from{transform:translateX(0)}to{transform:translateX(230%)}}
.store-cart-spinner9{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:cart-spin9 .8s linear infinite}
@keyframes cart-spin9{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.cart-progress-final9>i,.store-cart-spinner9{animation:none}}

/* Desktop welcome: keep controls centred and clear of the artwork/logo. */
@media(min-width:1024px){
 .splash8.welcome8,#app .onbscreen.welcome9{background-size:auto min(calc(100dvh - 188px),864px);background-position:center top}
 #app .welcome9 .btn.wbtn9{align-self:center;width:min(320px,100%);margin-inline:auto;padding-inline:28px}
 #app .welcome9 .dots9{align-self:center;width:fit-content;flex:none;padding:9px 13px;border-radius:99px;background:rgba(15,58,31,.78);box-shadow:0 0 0 1px rgba(255,255,255,.2)}
 #app .welcome9 .dots9 i{background:rgba(255,255,255,.55)}
 #app .welcome9 .dots9 i.on{background:#fff}
}
/* Each store owns its loading, failure and ready state. */
#app .stc9.stloading9{cursor:default;background:var(--g9);color:#fff;gap:9px}
#app .stloading9 .sts9{color:rgba(255,255,255,.9);min-height:30px}
#app .store-progress-count9{font-size:14px;font-weight:900}
#app .stc9.sterror9{cursor:default;gap:9px}
#app .store-retry9{border:0;border-radius:12px;padding:9px 14px;background:var(--g9);color:#fff;font:inherit;font-weight:800;cursor:pointer}
#app .cmp-disabled9{pointer-events:none}
#app .cmp-disabled9 summary{cursor:default}
#app .cmp-disabled9 summary h3,#app .cmp-disabled9 .chev9{color:var(--mut9)}
#app .cmp-disabled9 .pill{background:var(--st9);color:var(--mut9)}
.store-choice-hint9{text-align:center;margin-top:20px}
