/* skidki.md mobile redesign: m-shell. Только @media (max-width:900px) — десктоп не трогать */
/* Оболочка по прототипу design_mockups/mobile/E-merged.html: шапка + кайма, нижняя панель, строка поиска над ней,
   тост, подвал. Переопределяет style.css (файл подключён после него). */
@media (max-width:900px){
:root{--m-sat:env(safe-area-inset-top,0px);--m-sab:env(safe-area-inset-bottom,0px);--m-sal:env(safe-area-inset-left,0px);--m-sar:env(safe-area-inset-right,0px);
 --m-tab:76px;          /* нижняя панель без safe-area: кайма 12 + вкладка 64 */
 --m-dock:76px;         /* строка «Что покупаем?» */
 --m-bottom:calc(var(--m-tab) + var(--m-sab))}
body.has-mq:not(.mq-hide){--m-bottom:calc(var(--m-tab) + var(--m-dock) + var(--m-sab))}
html{-webkit-text-size-adjust:100%}
body{font-size:16px;-webkit-tap-highlight-color:transparent;padding:0 calc(16px + var(--m-sar)) calc(var(--m-bottom) + 24px) calc(16px + var(--m-sal))}

/* ---------- шапка: лок-ап слева, язык / skidki+ / избранное справа, тонкая кайма под ней ---------- */
.stitch.top{display:none}
nav.top{min-height:60px;padding:calc(6px + var(--m-sat)) 16px 6px;margin:0 -16px 18px;gap:8px;flex-wrap:nowrap}
nav.top::after{content:"";position:absolute;left:0;right:0;top:100%;height:8px;background:var(--stitch) repeat-x left center/16px 8px,var(--bg);pointer-events:none}
nav.top .brand{min-height:48px;min-width:0;flex:0 1 auto}
nav.top .brand .logo{height:30px;max-width:100%}
.mtop{gap:8px;flex:none}
/* язык в шапке телефона не дублируем: он в подвале (ниже) и в профиле (.acc-lang) — шапка = лого, skidki+, избранное */
.mtop .lang-sw{display:none}
.mplus,.madmin{min-height:48px;font-size:16px;padding:0 16px}
.mfav{width:48px;height:48px}
.mfav .nb{font-size:12px;min-width:20px;height:20px;line-height:20px}

/* город под шапкой: одна строка-чип; пояснение «покажем сети рядом» на телефоне не показываем (чип и так зовёт) */
.locbar{margin:0 0 12px;gap:4px 8px}
.locbar .loc-link{min-height:48px;max-width:100%;padding:0 14px 0 12px;gap:8px;font-size:16px;background:var(--surface);border:1px solid var(--line);border-radius:999px}
.locbar .loc-link span{border-bottom:0}
.locbar.ask .loc-link{border-color:color-mix(in srgb,var(--primary) 45%,var(--line))}
.locbar .loc-why{display:none}
.locbar .loc-note{padding:2px 0 0 4px;font-size:16px;line-height:1.4}
.locbar .loc-note .linkbtn{font-size:16px;min-height:48px;margin-left:0}

/* ---------- нижняя панель: кайма-вышивка, иконка + подпись, плашка у активной вкладки ---------- */
nav.bottom{padding:12px calc(4px + var(--m-sar)) var(--m-sab) calc(4px + var(--m-sal));border-top:0;
 background:var(--stitch) repeat-x left top/24px 12px,linear-gradient(var(--bg),var(--bg)) 0 0/100% 12px no-repeat,var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 -6px 20px rgba(70,40,20,.06)}
nav.bottom a{min-height:64px;justify-content:center;gap:2px;padding:4px 0;font-size:clamp(14px,3.9vw,16px);font-weight:700;line-height:1.2;color:var(--muted);white-space:nowrap;min-width:0;border-radius:14px}
nav.bottom a svg{width:56px;height:32px;padding:4px 16px;border-radius:16px;flex:none;transition:background-color .15s}
nav.bottom a.on{color:#C4442C}
nav.bottom a.on svg{background:#FCE3DB}
nav.bottom a:active svg{background:var(--soft)}
nav.bottom .pdot{top:6px;left:calc(50% + 14px)}
nav.bottom .cnt{position:absolute;top:2px;left:calc(50% + 8px);min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#C4442C;color:#fff;font:800 13px/22px var(--font);font-style:normal;text-align:center;box-shadow:0 0 0 2px var(--surface)}

/* ---------- «Что покупаем?» над панелью (только каталог: body.has-mq; base.html) ---------- */
body.has-mq .mq{display:block}  /* на десктопе .mq{display:none} — в <style> base.html */
.mq{position:fixed;left:0;right:0;bottom:calc(var(--m-tab) + var(--m-sab));z-index:21;height:var(--m-dock);
 padding:20px calc(16px + var(--m-sar)) 0 calc(16px + var(--m-sal));text-decoration:none;color:var(--text);
 background:var(--stitch) repeat-x left top/24px 12px,linear-gradient(var(--bg),var(--bg)) 0 0/100% 12px no-repeat,var(--surface);
 box-shadow:0 -6px 20px rgba(70,40,20,.06);transition:transform .2s,opacity .2s}
.mq-f{display:flex;align-items:center;gap:10px;height:56px;padding:0 18px;border:2.5px solid #C4442C;border-radius:28px;background:#fff;font-weight:700;font-size:18px;color:#7A6A5E}
.mq-f svg{width:24px;height:24px;flex:none;color:#C4442C;stroke-width:2.6}
.mq-f span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mq:active .mq-f,.mq:focus-visible .mq-f{box-shadow:0 0 0 3px var(--honey)}
.mq:focus-visible{outline:none}
/* панель под строкой поиска — без своей каймы (кайма у общего «дока») */
body.has-mq:not(.mq-hide) nav.bottom{padding-top:6px;background:var(--surface);box-shadow:none;border-top:1px solid var(--line)}
body.has-mq:not(.mq-hide) nav.bottom a{min-height:69px}
body.mq-hide .mq{transform:translateY(24px);opacity:0;pointer-events:none;visibility:hidden}

/* ---------- тост над панелью ---------- */
.toast{bottom:calc(var(--m-bottom) + 12px);min-height:52px;font-size:16px;max-width:calc(100% - 32px - var(--m-sal) - var(--m-sar))}
.toast a{min-height:48px}

/* ---------- подвал: компактно, ссылки в две колонки (текстовые « · » гасим font-size:0) ---------- */
.site-foot{margin:28px 0 0;font-size:0;display:flex;flex-wrap:wrap;align-items:center;text-align:left}
.site-foot .stitch,.site-foot .fmark{flex:0 0 100%}
.site-foot .stitch{margin:0 0 10px}
.site-foot .fmark{flex:none;width:100%;height:28px;margin:0 0 2px}
.site-foot a{flex:0 0 50%;display:flex;align-items:center;min-height:48px;padding:0 4px;font-size:16px;text-decoration:none}
/* язык — здесь (в шапке телефона его нет): отдельной строкой, крупные зоны */
.site-foot .lang-sw{flex:none;margin:8px 0 0;padding:4px}
.site-foot .lang-sw b,.site-foot .lang-sw a{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:64px;height:44px;min-height:44px;padding:0 14px;font-size:16px}
.site-foot>span:last-child{flex:1 1 auto;text-align:right;font-size:16px;padding:8px 4px 0}

/* ---------- home (home.html): первый экран = компактная шапка-промо + лента скидок ---------- */
/* порядок секций на телефоне: промо → лучшие скидки → техника → «чаще покупают» → категории → skidki+ */
.home-m{display:flex;flex-direction:column}
.home-m>.hero-e{order:0}.home-m>.h-best{order:1}.home-m>.h-tech{order:2}.home-m>.h-pop{order:3}
.home-m>.h-cats{order:4}.home-m>.h-tcats{order:5}.home-m>.h-plus{order:6}
.home-m>.h-best,.home-m>.h-cats{margin-top:0!important}
/* заголовок секции и кнопка «Все скидки →» — в одну строку (заголовок переносится сам) */
.home-m>.sect>.hd{flex-wrap:nowrap;align-items:center}
.home-m>.sect>.hd h2{flex:1 1 auto;min-width:0;margin:0;font-size:20px;line-height:1.25}
.home-m>.sect>.hd .btn{flex:none;padding:0 14px}
/* категории: не простыня на 2000px, а лента в два ряда с прокруткой вбок (как «Чаще всего покупают»); счётчики — на странице категории */
.home-m .cats{display:grid;grid-template-columns:none;grid-template-rows:auto auto;grid-auto-flow:column;grid-auto-columns:168px;gap:10px;
 overflow-x:auto;margin:0 -16px;padding:2px 16px 8px;scroll-snap-type:x proximity;scroll-padding-inline:16px;scrollbar-width:none}
.home-m .cats::-webkit-scrollbar{display:none}
.home-m .cat{grid-template-columns:1fr;align-content:start;gap:6px;padding:8px 8px 10px;text-align:center;scroll-snap-align:start}
.home-m .cat .ci{width:100%;height:72px}
.home-m .cat .ct{font-size:16px;line-height:1.2}
.home-m .cat .cs{display:none}
.home-m .cat .cd{justify-self:center;white-space:nowrap;font-size:16px;margin-top:2px;padding:2px 8px}
/* «Чаще всего покупают» и быстрые ссылки skidki+ — подписи не мельче 16px */
.home-m .gtile .s{font-size:16px}
.home-m .gtile .s .was{font-size:16px}
.plus-quick a{min-height:64px}
.plus-quick small{font-size:16px}
/* промо: слоган, поле поиска, «Скидки дня», строка доверия; абзац, вторая кнопка, цифры и иллюстрация — только на десктопе */
.hero-e{display:block;margin:0 0 18px;padding:24px 16px 16px;border-radius:24px}
.hero-e .hero-art,.hero-e .sub,.hero-e .proof,.hero-e .cta .btn:not(.primary){display:none}
.hero-txt{display:flex;flex-direction:column}
.hero-e h1{order:1;font-size:27px;line-height:1.12;margin:0 0 12px}
.hero-e .search{order:2;margin:0 0 10px}
.hero-e .search input{min-height:52px;font-size:16px;padding-right:12px}
.hero-e .search button{display:none}   /* отправка — клавишей «Поиск» клавиатуры; так подсказка в поле не обрезается */
.hero-e .cta{order:3}
.hero-e .cta .btn.primary{flex:1 1 100%;min-height:48px;padding:10px 16px;font-size:17px}
.hero-e .eyebrow{order:4;margin:10px 0 0;font-size:16px;font-weight:700;letter-spacing:0;text-transform:none;line-height:1.35;color:var(--muted)}
.hero-e .eyebrow .lead-link{color:var(--primary-ink)}
}
/* низкий экран (клавиатура / альбомная ориентация): панели нет — и строки поиска нет */
@media (max-height:500px) and (max-width:900px){
 body.has-mq .mq{display:none}
 body{padding-bottom:24px}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){.mq,nav.bottom a svg{transition:none}}
/* вертикали (style.css .v-tech/.v-home/.v-auto): здесь акцент задан цветом напрямую — подменяем на --primary вертикали */
@media (max-width:900px){
body:not(.v-food) nav.bottom a.on,body:not(.v-food) .mq-f svg{color:var(--primary)}
body:not(.v-food) nav.bottom a.on svg{background:var(--primary-soft);color:var(--primary-ink)}   /* на мягкой подложке — тёмный акцент, не кирпич */
body:not(.v-food) nav.bottom .cnt{background:var(--primary)}body:not(.v-food) .mq-f{border-color:var(--primary)}
nav.top .vtag{margin-left:6px;padding:4px 10px;font-size:13px}
section.v-tech,section.v-home,section.v-auto{margin-left:-8px;margin-right:-8px;padding:12px 8px}
}
@media (max-width:900px){.vsearch input{min-height:56px;font-size:17px;padding-left:46px}.vsearch svg{left:16px}.vsearch button{padding:0 16px}.vsearch:has(button) input{padding-right:104px}}
/* skidki.md mobile redesign: m-feed. Только @media (max-width:900px) — десктоп не трогать */
@media (max-width:900px){
/* заголовок и lead компактнее */
h1{font-family:var(--serif);font-size:24px;line-height:1.2;margin-bottom:4px}
.lead,.chain-intro .lead{font-size:16px;line-height:1.4;margin-bottom:10px}
.search{margin:4px 0 8px}
/* липкие чипы сетей и категорий */
.m-sticky{position:sticky;top:var(--m-head,63px);z-index:9;background:var(--bg);margin:0 -16px;padding:2px 0 4px;border-bottom:1px solid var(--line)}
/* несколько рядов чипов не должны занимать пол-экрана: при прокрутке верхние ряды уезжают под шапку, липнет только нижний */
.m-sticky:has(.shop-chains):not(:has(.subcats)),.m-sticky:has(.subcats):not(:has(.shop-chains)){top:calc(var(--m-head,63px) - 54px)}
.m-sticky:has(.subcats):has(.shop-chains){top:calc(var(--m-head,63px) - 108px)}
.m-sticky .shops{margin-top:0;gap:0}
.m-sticky .chips.scroll{margin:0;padding:2px 16px}
.m-sticky .shop-groups{margin:0;padding:2px 16px;width:auto;max-width:none;background:transparent;border-radius:0;gap:6px}
.m-sticky .chip,.m-sticky .sg{min-height:48px;font-size:16px;padding:0 16px;flex:none}
.m-sticky .sg{border:1px solid var(--line);background:var(--surface);border-radius:999px}
.m-sticky .sg.on,.m-sticky .chip.on{background:var(--text);color:#fff;border-color:var(--text)}
.m-sticky .sg.on svg{color:#fff}
.m-sticky .sg i,.m-sticky .chip .pill{font-size:16px;line-height:1.3}
/* подкатегории вне .m-sticky (страница шин: подкатегории → подбор → сети) — те же тач-цели */
.chips.subcats .chip{min-height:48px;font-size:16px;padding:0 16px;flex:none}.chips.subcats .chip .pill{font-size:16px;line-height:1.3}
/* подбор шин (_tirefilter.html): тач-цели 48px, 16px; ряды сезона и типа переносятся, без горизонтального скролла */
.tf{margin:8px 0}.tf .chip,.tf select,.tf .btn{min-height:48px;font-size:16px}.tf .chip{padding:0 10px;gap:5px}.tf .chip .pill{font-size:13px;padding:2px 7px}   /* два размера «205/55 R16 132» в ряд на 390px */
.tf .tf-chips{flex-wrap:wrap;overflow:visible;margin:0;padding:0}.tf-row{flex-direction:column;align-items:stretch;gap:6px}.tf-l{min-width:0}   /* подпись над рядом: рядом с чипами на 390px чипы встают столбиком */
.tf-help summary{min-height:44px;display:flex;align-items:center}
/* вкладки сегментом, сортировка компактно */
.toolbar{gap:8px;margin:10px 0 8px}
.toolbar .tabs{width:100%;border-radius:16px;padding:4px;gap:4px}
.toolbar .tabs a{flex:1;justify-content:center;min-height:48px;font-size:16px;text-align:center;border-radius:12px;padding:0 8px;line-height:1.2}
.toolbar .tabs a.on{color:var(--primary)}
.toolbar .tabs+.tabs{background:transparent;padding:0;gap:6px}
.toolbar .tabs+.tabs a{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font-size:16px}
.toolbar .tabs+.tabs a.on{background:var(--text);color:#fff;box-shadow:none}
.toolbar .cnt{display:none}
.tb-r{width:100%;margin:0}.sortf{flex:1}.sortf select{flex:1;min-height:44px;font-size:16px}
/* «Чаще всего покупают» — горизонтальная лента */
.sect .ggrid{display:flex;overflow-x:auto;gap:10px;margin:0 -16px;padding:2px 16px 6px;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding-inline:16px}
.sect .ggrid::-webkit-scrollbar{display:none}
.sect .ggrid>.gtile{flex:none;width:280px;scroll-snap-align:start}
.sect .hd .btn.sm{min-height:48px;font-size:16px}
/* карточка: компактная горизонтальная */
.grid.m-feed{grid-template-columns:1fr;gap:10px}
.m-feed .pcard{display:grid;grid-template-columns:64px minmax(0,1fr) 48px;gap:4px 10px;align-items:center;padding:12px;border-radius:16px;background:var(--surface)}
.m-feed .pcard .img{grid-column:1;grid-row:1;width:64px;height:64px;aspect-ratio:auto;border-radius:14px;border:1px solid var(--line);align-self:start}
.m-feed .pcard .img img{padding:4px}
.m-feed .pcard .body{grid-column:2;grid-row:1;padding:0;gap:2px;min-width:0}
.m-feed .pcard form{grid-column:3;grid-row:1;align-self:center;position:relative;z-index:2}
.m-feed .pcard .heart{position:static;width:48px;height:48px;border-radius:14px;border:2px solid var(--primary);background:var(--surface);color:var(--primary);box-shadow:none}
.m-feed .pcard .heart svg{width:24px;height:24px}
.m-feed .pcard .heart.on{background:var(--save-soft);border-color:var(--save);color:var(--save-ink)}
.m-feed .pcard .sale{top:16px;left:16px;font-size:16px;padding:0 6px;line-height:1.4;z-index:1;pointer-events:none}
.m-feed .pcard:has(.bdg) .sale{display:none}
.m-feed .pcard .body{display:flex;flex-flow:row wrap;align-items:center;gap:2px 8px}
.m-feed .pcard .body>*{flex:0 0 100%}
.m-feed .pcard .body>div:first-child{order:5;flex:0 0 auto}
.m-feed .pcard .cap{order:6;flex:1 1 auto;min-width:0}
.m-feed .pcard .tag{font-size:16px;font-weight:800;background:var(--cbg,var(--plate,#EFE6D6));color:var(--text);border-radius:8px;padding:1px 8px 1px 7px;line-height:1.35}
.m-feed .pcard .tag::before{width:10px;height:10px;background:var(--c,var(--muted))}
.m-feed .pcard .pname{font-family:var(--font);font-weight:800;font-size:17px;line-height:1.25;min-height:0;-webkit-line-clamp:3;overflow-wrap:anywhere;hyphens:auto}
.m-feed .pcard .pname a::after{content:"";position:absolute;inset:0;border-radius:16px}
.m-feed .pcard .pname a{padding:0}
.m-feed .pcard .price{margin-top:2px;gap:4px 8px;align-items:baseline}
.m-feed .pcard .now{font-family:var(--serif);font-weight:700;font-size:22px}
.m-feed .pcard .now small{font-size:16px;font-family:var(--font)}
.m-feed .pcard .was{font-size:16px}
.m-feed .pcard .bdg{font-size:16px;white-space:normal;padding:2px 6px 2px 3px;line-height:1.3;border-radius:14px;gap:4px}
.m-feed .pcard .bdg .di{width:22px;height:22px}
.m-feed .pcard .cap{font-size:16px;gap:2px 8px}
.m-feed .pcard .cap .dup,.m-feed .pcard .cap .d-full{display:none}
.m-feed .pcard .cap .d-short[hidden]{display:inline}
.m-feed .pcard:has(.cap .warn) .img img{opacity:.45}
.search .btn.sm{min-height:48px;font-size:16px;padding:0 18px}
.empty .btn{min-height:48px;font-size:16px;padding:0 20px}
/* пейджер */
.pager{gap:12px;margin:16px 0 8px}
.pager .btn{min-height:48px;font-size:16px;padding:0 18px}
.pager .muted{font-size:16px}
.pg-num{gap:4px}.pg-num .pg{min-width:44px;height:44px;font-size:16px}.pg-num .pg-gap{min-width:14px;height:44px}.pg-num .pg-far{display:none}.pg-num .pg-mob{display:inline-flex}
.pg-num .pg-nav{min-height:44px;padding:0 14px}.pg-num .pg-nav span{display:none}   /* на 390px: ← 1 … 9 [10] 11 … 20 → в одну строку */
}
/* skidki.md mobile redesign: m-sheet. Только @media (max-width:900px) — десктоп не трогать */
/* Шторка товара (.msh, строит m-sheet.js) и мобильный вид страницы /p/<id> (блоки .mp-* из product.html). */
@media (max-width:900px){

/* ---------- общие блоки товара: вердикт, цены по сетям, график, кнопка действия ---------- */
.mp-say{display:flex;align-items:flex-end;gap:2px;margin:6px 0 2px}
.mp-say .say{flex:1;min-width:0;border-radius:18px 18px 4px 18px;padding:12px 14px;margin-bottom:22px;font-size:16px;line-height:1.4;font-weight:600;border:1px solid rgba(46,35,29,.08)}
.mp-say .say b{display:block;font-family:var(--serif,'Lora',serif);font-size:19px;line-height:1.25;margin-bottom:2px}
.mp-say .mascot{width:92px;height:92px;flex:none;margin:0}
.mp-say.v-real .say{background:#E6EDD3;color:#3F5A2B}
.mp-say.v-lowest .say{background:#FBE7BD;color:#5C3F00}
.mp-say.v-fake .say{background:#F1E3EC;color:#6E3A5E}
.mp-say.v-wait .say,.mp-say.v-none .say{background:#EFE6D6;color:#2E231D}

.mp-chains h2,.mp-sec{font-family:var(--serif,'Lora',serif);font-size:19px;margin:18px 0 8px}
.mp-box{background:#FFFBF4;border:1px solid #EADCC8;border-radius:16px;padding:2px 12px}
.mp-prow{display:flex;align-items:center;gap:8px;min-height:52px;padding:6px 2px;border-bottom:1px solid #EADCC8;color:#2E231D;text-decoration:none;font-size:16px}
.mp-prow:last-child{border-bottom:0}
a.mp-prow:active{background:#F3EADB}
.mp-prow.cur{font-weight:700}
.mp-plate{display:inline-block;flex:none;border-radius:8px;padding:1px 8px;font-weight:800;font-size:16px;white-space:nowrap;background:var(--cbg,#EFE6D6);color:var(--c,#4A3B31);max-width:42%;overflow:hidden;text-overflow:ellipsis}
.mp-sp{flex:1;min-width:0;color:#6E5F53;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.mp-nm{color:#2E231D;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mp-cheap{font-weight:800;color:#3F5A2B;background:#E6EDD3;border-radius:999px;padding:1px 8px;white-space:nowrap}
.mp-pr{flex:none;display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.mp-pr b{font-family:var(--serif,'Lora',serif);font-size:18px;white-space:nowrap}
.mp-pr s{color:#6E5F53;font-size:16px}
.mp-prow:has(.mp-nm){display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"pl pr" "sp pr";column-gap:10px;row-gap:4px;padding:10px 2px}
.mp-prow:has(.mp-nm) .mp-plate{grid-area:pl;justify-self:start;max-width:100%}
.mp-prow:has(.mp-nm) .mp-sp{grid-area:sp}
.mp-prow:has(.mp-nm) .mp-pr{grid-area:pr;align-self:center}
.mp-more{display:flex;align-items:center;min-height:48px;padding:0 4px;font-weight:800;color:#A8321D;text-decoration:none}

.mp-chart{background:#FFFBF4;border:1px solid #EADCC8;border-radius:16px;padding:6px 4px 2px;margin:4px 0 10px}
.mp-chart svg{display:block;width:100%;height:auto}

.mp-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.mp-cta form{margin:0}
.mp-cta .mp-add,.mp-cta .mp-solo,.mp-cta .mp-solo form{flex:1;min-width:0}
.mp-main,.mp-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;border-radius:28px;font:800 18px/1.2 var(--font,'Nunito',sans-serif);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.mp-cta>.mp-main{flex:1;min-width:0}
.mp-main{width:100%;padding:0 18px;border:0;background:#C4442C;color:#fff;box-shadow:0 6px 16px rgba(196,68,44,.22)}
.mp-main:active{background:#A8321D}
.mp-main.in{background:#5F7D45;box-shadow:none}
.mp-main svg,.mp-btn svg{width:24px;height:24px;flex:none}
.mp-btn{width:56px;padding:0;border:2px solid #EADCC8;background:#FFFBF4;color:#C4442C}
.mp-btn.on{border-color:#F3C9BD;background:#FCE3DB}
.mp-solo .mp-btn{width:100%;padding:0 18px;background:#C4442C;border-color:#C4442C;color:#fff}
.mp-solo .mp-btn.on{background:#FFFBF4;border-color:#EADCC8;color:#C4442C}
.mp-msg{flex-basis:100%;margin:0;font-weight:700;font-size:16px;color:#3F5A2B;display:flex;align-items:center;gap:10px}
.mp-msg:empty{display:none}
.mp-msg a{display:inline-flex;align-items:center;min-height:48px;padding:0 4px;color:#A8321D;font-weight:800}
.mp-msg.err{color:#A8321D}

/* ---------- страница /p/<id> на телефоне ---------- */
.prod .img{max-width:280px;width:100%;margin:0 auto}
.prod .stack h1{font-family:var(--serif,'Lora',serif);font-size:24px;line-height:1.2;margin:4px 0}
.prod .answer,.prod .muted.small{font-size:16px}
.prod .cap,.prod .cap span{font-size:16px!important}   /* в шаблоне inline 14px */
.prod .stack>*{order:3}
.prod .stack>:first-child,.prod .stack>h1,.prod .stack>.price,.prod .stack>.cap{order:1}
.prod .stack>.mp-say{order:2}                          /* вердикт сразу под ценой, длинный ответ-абзац ниже */
.prod .deal-note{display:none}                         /* вердикт показывает .mp-say с Корзиночкой */
.prod .row form[action*="/watch/"]{display:none}       /* сердце — в липкой кнопке внизу */
.prod .row .btn{min-height:48px;font-size:16px}
.prod .row{flex-wrap:nowrap;gap:8px}                   /* второстепенное — одной строкой: «Открыть в магазине» · «Поделиться» */
.prod .row>a.btn,.prod .row>.share{flex:1 1 auto;min-width:0}
.prod .row>a.btn,.prod .row>.share>.btn{justify-content:center;padding-left:10px;padding-right:10px;white-space:nowrap}
.prod .row>.share>.btn{width:100%}
.phist .hd{display:block}
.phist .hd h2{font-size:20px;margin:0 0 4px}
.phist .hd .muted.small{font-size:16px}
.pstats{grid-template-columns:1fr 1fr}
.pstats .muted.small{font-size:16px}
.phist.mp-on .legend{display:none}
.tbl table{font-size:16px}.tbl th{font-size:14px}
.wrap>.mp-cta{position:fixed;z-index:19;left:0;right:0;bottom:var(--mp-nav,76px);padding:10px calc(16px + env(safe-area-inset-right,0px)) 10px calc(16px + env(safe-area-inset-left,0px));background:rgba(255,251,244,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #EADCC8}
.wrap:has(>.mp-cta) .site-foot{margin-bottom:96px}
body:has(.wrap>.mp-cta) .toast{bottom:calc(var(--mp-nav,76px) + 88px)}

/* ---------- шторка ---------- */
html.msh-lock,html.msh-lock body{overflow:hidden;overscroll-behavior:none}
.msh-bd{position:fixed;inset:0;z-index:60;background:rgba(46,35,29,.45);opacity:0;pointer-events:none;transition:opacity .25s}
.msh-bd.open{opacity:1;pointer-events:auto}
.msh{position:fixed;left:0;right:0;bottom:0;z-index:61;max-height:85vh;max-height:85dvh;display:flex;flex-direction:column;background:#FBF3E6;color:#2E231D;border-radius:24px 24px 0 0;box-shadow:0 -6px 24px rgba(46,35,29,.2);transform:translateY(105%);visibility:hidden;transition:transform .3s ease,visibility 0s .3s;font-size:16px}
.msh.open{transform:none;visibility:visible;transition:transform .3s ease}
.msh.drag{transition:none}
.msh-grab{flex:none;touch-action:none;cursor:grab;padding:8px calc(6px + env(safe-area-inset-right,0px)) 6px calc(16px + env(safe-area-inset-left,0px));border-bottom:1px solid transparent}
.msh-handle{width:44px;height:5px;border-radius:3px;background:#D5C3A9;margin:0 auto 6px}
.msh-hd{display:flex;align-items:center;gap:10px;min-height:56px}
.msh-pic{width:56px;height:56px;flex:none;border-radius:12px;background:#fff;border:1px solid #EADCC8;display:grid;place-items:center;overflow:hidden;font-size:30px}
.msh-pic img{width:100%;height:100%;object-fit:contain;padding:4px}
.msh-t{flex:1;min-width:0}
.msh-t b{display:block;font-family:var(--serif,'Lora',serif);font-size:19px;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.msh-t small{display:block;font-size:16px;color:#6E5F53;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msh-x{width:48px;height:48px;flex:none;border:0;border-radius:24px;background:none;color:#2E231D;display:grid;place-items:center;cursor:pointer}
.msh-x:active{background:#EADCC8}
.msh-x svg{width:24px;height:24px}
.msh-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:4px calc(16px + env(safe-area-inset-right,0px)) 16px calc(16px + env(safe-area-inset-left,0px))}
.msh-foot{flex:none;background:#FFFBF4;border-top:1px solid #EADCC8;padding:10px calc(16px + env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px))}
.msh-foot:empty{display:none}
.msh-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:2px 0 4px}
.msh-price .now{font:700 30px/1.1 var(--serif,'Lora',serif)}
.msh-price .now small{font:800 18px var(--font,'Nunito',sans-serif);margin-left:4px}
.msh-price .was{font-size:18px;color:#6E5F53;text-decoration:line-through}
.msh-price .sale{position:static!important;font-size:16px}
.msh-cap{color:#6E5F53;font-size:16px;margin:0 0 4px}
.msh-nohist{margin:0 0 4px;color:#6E5F53;font-size:16px;line-height:1.45}
.msh-links{display:flex;margin:14px 0 0;border:1px solid #EADCC8;border-radius:14px;background:#FFFBF4;overflow:hidden}
.msh-links a{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 10px;color:#A8321D;font-weight:800;font-size:16px;text-decoration:none;text-align:center;line-height:1.2}
.msh-links a+a{border-left:1px solid #EADCC8}
.msh-links a:active{background:#F3EADB}
.msh-load{display:grid;gap:12px;padding:8px 0 24px}
.msh-load i{display:block;height:20px;border-radius:10px;background:linear-gradient(90deg,#EFE6D6 25%,#F7EFE2 50%,#EFE6D6 75%);background-size:300% 100%;animation:msh-sk 1.2s linear infinite}
.msh-load i:nth-child(1){height:84px;border-radius:18px}.msh-load i:nth-child(2){width:70%}.msh-load i:nth-child(3){height:150px;border-radius:16px}
@keyframes msh-sk{from{background-position:100% 0}to{background-position:0 0}}
.msh .mp-cta{position:static}
.msh :focus-visible,.mp-cta :focus-visible,.mp-chains :focus-visible{outline:3px solid #2E231D;outline-offset:2px}
@media (prefers-reduced-motion:reduce){.msh,.msh-bd{transition:none!important}.msh-load i{animation:none}}
}
/* вертикали: главная кнопка и «сердце» карточки товара в цвете техники / дома; состояния «в списке» (.in) и «в избранном» (.on) — как были */
body:not(.v-food) .mp-main:not(.in),body:not(.v-food) .mp-solo .mp-btn:not(.on){background:var(--primary);border-color:var(--primary);box-shadow:none}
body:not(.v-food) .mp-btn:not(.on){color:var(--primary)}body:not(.v-food) .mp-solo .mp-btn:not(.on){color:#fff}
/* skidki.md mobile redesign: m-list. Только @media (max-width:900px) — десктоп не трогать */
/* Зона «Список»: /baskets/{id} (basket.html), /baskets (baskets.html), /baskets/{id}/shop (shop.html), /pantry, вкладки _list_tabs.
   Мобильные блоки в шаблонах помечены class="ml" + атрибут hidden (на десктопе их нет), старые десктопные — class="m-off".
   Страницы зоны: .wrap, где прямой потомок — #ml (список) или nav.list-tabs (списки, дома, режим покупки). */
@media (max-width:900px){
:root{--ml-bg:#FBF3E6;--ml-card:#FFFBF4;--ml-ink:#2E231D;--ml-pri:#C4442C;--ml-line:#EADCC8;--ml-save:#5F7D45;--ml-save-ink:#3F5A2B;--ml-save-bg:#E6EDD3;--ml-muted:#6B5A4E;--ml-plate:#EFE6D6;--ml-done:#F3EBDD}
.ml[hidden],details.ml[hidden]{display:block!important}
.m-off{display:none!important}
.ml :focus-visible,.ml-pg :focus-visible{outline:3px solid var(--ml-ink);outline-offset:2px}

/* ---------- шапка списка ---------- */
.ml-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 12px}
.ml-top h1{font:700 24px/1.2 'Lora',Georgia,serif;margin:0;color:var(--ml-ink);min-width:0;overflow-wrap:anywhere}
.ml-mode{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 16px;border-radius:24px;border:2px solid var(--ml-line);background:var(--ml-card);color:var(--ml-ink);font-weight:800;font-size:16px;text-decoration:none;white-space:nowrap}
.ml-mode svg{width:20px;height:20px;color:var(--ml-pri);flex:none}

/* ---------- главный блок «Выгоднее в …» ---------- */
.ml-hero,.ms-hero{background:var(--ml-card);border:1px solid var(--ml-line);border-radius:20px;padding:14px 16px 16px;color:var(--ml-ink)}
.ml-lab{font-weight:700;font-size:17px;line-height:1.35}
.ml-big{font:700 38px/1.1 'Lora',Georgia,serif;margin:2px 0 6px;color:var(--ml-ink)}
.ml-big small{font:800 20px 'Nunito',system-ui,sans-serif}
.ml-sv{display:inline-block;background:var(--ml-save-bg);color:var(--ml-save-ink);font-weight:800;font-size:16px;border-radius:12px;padding:4px 12px}
.ml-note{color:var(--ml-muted);margin:8px 0 0;font-size:16px;line-height:1.4}
.ml-plate{display:inline-block;border-radius:8px;padding:1px 8px;font-weight:800;font-size:16px;line-height:1.5;background:var(--cbg,var(--ml-plate));color:var(--c,#4A3B31);white-space:nowrap;vertical-align:baseline}
.ml[data-mode=one] .ml-v[data-v=split],.ml[data-mode=split] .ml-v[data-v=one]{display:none}
.ml-seg{display:flex;gap:6px;margin-top:12px;background:var(--ml-plate);padding:4px;border-radius:16px}
.ml-seg button{flex:1;min-width:0;min-height:52px;border:0;border-radius:12px;background:transparent;font:inherit;font-weight:700;font-size:16px;line-height:1.25;padding:6px;color:var(--ml-ink);cursor:pointer;overflow-wrap:anywhere}
.ml-seg button[aria-pressed=true]{background:var(--ml-card);box-shadow:0 1px 3px rgba(46,35,29,.2);color:var(--ml-pri)}

/* ---------- группы по магазинам и строки ---------- */
.ml-grp{margin-top:18px}
.ml-gh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;padding:0 2px;font:800 16px/1.3 'Nunito',system-ui,sans-serif;color:var(--ml-ink)}
.ml-tag{color:var(--ml-pri);font-weight:700;margin-left:6px}
.ml-sub{font-weight:800;white-space:nowrap}
.ml-sw{position:relative;margin-bottom:8px;border-radius:16px;overflow:hidden;background:var(--ml-line)}
.ml-bg{position:absolute;top:0;bottom:0;width:50%;display:flex;align-items:center;padding:0 18px;font-weight:800;font-size:16px;color:#fff}
.ml-bgR{left:0;background:var(--ml-save)}
.ml-bgL{right:0;background:var(--ml-pri);justify-content:flex-end}
.ml-row{position:relative;display:flex;align-items:center;gap:4px;background:var(--ml-card);border:1px solid var(--ml-line);border-radius:16px;padding:6px 4px;min-height:72px;touch-action:pan-y;user-select:none;-webkit-user-select:none;transition:transform .18s}
.ml-row.drag{transition:none}
.ml-row.busy{opacity:.6;pointer-events:none}
.ml-row form{margin:0;display:contents}
.ml-chk{width:48px;height:48px;flex:none;display:grid;place-items:center;border:0;background:none;padding:0;cursor:pointer;border-radius:12px}
.ml-chk i{width:28px;height:28px;border:3px solid var(--ml-ink);border-radius:8px;display:grid;place-items:center;font-style:normal;color:transparent;font-weight:800;font-size:16px}
.ml-row.done .ml-chk i{background:var(--ml-save);border-color:var(--ml-save);color:#fff}
.ml-nm{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:48px}
.ml-nm>b{font-weight:800;line-height:1.25;font-size:16px;color:var(--ml-ink);overflow-wrap:anywhere}
.ml-nm{position:relative}
.ml-nm a{color:inherit;text-decoration:none}
.ml-nm a::after{content:"";position:absolute;inset:-6px 0}  /* тап по всей карточке товара, а не только по 22px строке */
.ml-nm>span{color:var(--ml-muted);font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ml-nm>span b{color:var(--ml-ink)}
.ml-row.done{background:var(--ml-done)}
.ml-row.done .ml-nm>b,.ml-row.done .ml-nm>span,.ml-row.done .ml-nm>span b{text-decoration:line-through;color:var(--ml-muted)}
.ml-step{display:flex;align-items:center;flex:none}
.ml-step button{width:48px;height:48px;border:0;background:none;border-radius:14px;font:800 24px/1 'Nunito',system-ui,sans-serif;color:var(--ml-pri);display:grid;place-items:center;cursor:pointer;padding:0}
.ml-step output{min-width:34px;text-align:center;font-weight:800;font-size:16px;white-space:nowrap;color:var(--ml-ink)}
.ml-hint{color:var(--ml-muted);text-align:center;margin:10px 0 0;font-size:16px}
.ml-sw.gone{display:none}
.ml-grp:not(:has(.ml-sw:not(.gone))){display:none}
.ml-plus{flex:none;width:48px;height:48px;margin-left:auto;display:grid;place-items:center;border-radius:24px;border:2px solid var(--ml-line);background:var(--ml-card);color:var(--ml-pri);text-decoration:none}
.ml-top h1{flex:1}

/* ---------- «Отмена» удаления ---------- */
.ml-toast{animation:none;gap:12px;padding:6px 6px 6px 16px}
.ml-toast s{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.ml-toast button{flex:none;min-height:48px;padding:0 16px;border:0;border-radius:10px;background:rgba(255,255,255,.14);color:inherit;font:inherit;font-weight:800;font-size:16px;cursor:pointer}
.ml-toast .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- добавление товара: одна строка «поле + Добавить» сразу под списком ---------- */
.wrap:has(>#ml) form.card.row.ml-addf{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:8px}
.wrap:has(>#ml) form.card.row.ml-addf .field:first-child{flex:1 1 auto;min-width:0}
.wrap:has(>#ml) form.card.row.ml-addf .ml-qf{display:none}
.wrap:has(>#ml) form.card.row.ml-addf>.btn{flex:none;min-height:48px;padding:0 18px}
.wrap:has(>#ml) .card.pick .row{gap:8px}
.wrap:has(>#ml) .card.pick .btn{min-height:48px;font-size:16px}
/* «Часто добавляют» — 4 компактные плитки без фото, как «Часто берут» в прототипе */
.wrap:has(>#ml) .ml-freq .hd .small{display:none}
.wrap:has(>#ml) .ml-freq .gtile:nth-child(n+5){display:none}
.wrap:has(>#ml) .ml-freq .gtile{min-height:64px;padding:10px 12px;align-content:center}
.wrap:has(>#ml) .ml-freq .gtile .th{display:none}

/* ---------- остальные блоки страницы списка ---------- */
.wrap:has(>#ml) .budget{margin-top:16px;border-radius:16px;font-size:16px}
.wrap:has(>#ml) .budget .small{font-size:16px}
.wrap:has(>#ml) form.card.row,.wrap:has(>#ml) .card.pick{margin-top:16px!important;background:var(--ml-card);border:1px solid var(--ml-line);border-radius:16px;padding:14px}
.wrap:has(>#ml) form.card.row .field{flex:1 1 40%}
.wrap:has(>#ml) form.card.row .field:first-child{flex:1 1 100%}
.wrap:has(>#ml) form.card.row>.btn{flex:1 1 100%}
.wrap:has(>#ml) .sect .hd h2{font:700 19px/1.25 'Lora',Georgia,serif}
.wrap:has(>#ml) .sect .hd .small{font-size:16px}
.wrap:has(>#ml) .sect .ggrid{display:grid;overflow:visible;margin:0;padding:0;grid-template-columns:1fr 1fr;gap:8px}
.wrap:has(>#ml) .sect .ggrid>.gtile{width:auto;min-width:0}
.wrap:has(>#ml) .gtile{grid-template-columns:1fr;gap:6px;padding:10px;min-height:72px;background:var(--ml-card);border:1px solid var(--ml-line)}
.wrap:has(>#ml) .gtile .th{width:56px;height:56px}
.wrap:has(>#ml) .gtile .t{font-size:16px}
.wrap:has(>#ml) .gtile .s{font-size:16px;color:var(--ml-muted)}
.wrap:has(>#ml) .gtile .s b{color:var(--ml-save-ink)}
.wrap:has(>#ml)>.row .btn{min-height:48px;font-size:16px}
.ml-set{margin-top:16px;background:var(--ml-card);border:1px solid var(--ml-line);border-radius:16px;padding:0 14px}
.ml-set summary{min-height:48px;display:flex;align-items:center;font-weight:800;font-size:16px;cursor:pointer;color:var(--ml-ink)}
.ml-set form{display:grid;gap:10px;padding:0 0 14px}
.ml-set label{display:grid;gap:6px;font-weight:800;font-size:16px}

/* ---------- пустое состояние с Корзиночкой ---------- */
.wrap:is(:has(>#ml),:has(>.list-tabs)) .empty{background:var(--ml-card);border:1px solid var(--ml-line);border-radius:20px;padding:24px 16px}
.wrap:is(:has(>#ml),:has(>.list-tabs)) .empty .mascot{width:140px;height:140px}
.wrap:is(:has(>#ml),:has(>.list-tabs)) .empty h2{font:700 22px/1.25 'Lora',Georgia,serif;color:var(--ml-ink);margin:4px 0 0}
.wrap:is(:has(>#ml),:has(>.list-tabs)) .empty p{font-size:16px;color:var(--ml-muted)}
.wrap:is(:has(>#ml),:has(>.list-tabs)) .empty .btn{min-height:52px;font-size:16px;white-space:normal}
/* в пустом списке главное действие — «Добавить» в форме выше; готовый набор — второстепенная кнопка */
.wrap:has(>#ml) .empty .btn.primary{background:var(--ml-card);color:var(--ml-ink);border:2px solid var(--ml-line);box-shadow:none}
.empty .ml .vine{display:block;width:100%;max-width:280px;height:auto;margin:14px auto 0}

/* ---------- элементы форм на страницах зоны: 48px, 16px ---------- */
.wrap:is(:has(>#ml),:has(>.list-tabs)) input[type=text],.wrap:is(:has(>#ml),:has(>.list-tabs)) input[type=number],.wrap:is(:has(>#ml),:has(>.list-tabs)) select{min-height:48px;font-size:16px}
.wrap:is(:has(>#ml),:has(>.list-tabs)) .field label{font-size:16px}
.wrap:is(:has(>#ml),:has(>.list-tabs)) .btn{min-height:48px;font-size:16px}
.wrap:has(>.list-tabs) h1{font:700 26px/1.2 'Lora',Georgia,serif;color:var(--ml-ink)}
.wrap:has(>.list-tabs) .lead{font-size:16px}

/* ---------- вкладки раздела: Списки | Дома | Режим покупки ---------- */
.list-tabs{display:flex;width:100%;max-width:none;gap:4px;background:var(--ml-plate);padding:4px;border-radius:16px;margin:4px 0 14px}
.list-tabs a{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;min-height:48px;padding:4px 6px;border-radius:12px;font-size:16px;line-height:1.15;text-align:center;white-space:normal;color:var(--ml-ink)}
.list-tabs a.on{background:var(--ml-card);color:var(--ml-pri);box-shadow:0 1px 3px rgba(46,35,29,.2)}
.list-tabs a.on svg{color:var(--ml-pri)}

/* ---------- /baskets: карточки списков ---------- */
.wrap:has(>.list-tabs) .ggrid:has(>.bcard){grid-template-columns:1fr!important;gap:10px}
.wrap:has(>.list-tabs) .sect .ggrid>.tpl{flex:none;width:280px;scroll-snap-align:start}
.wrap:has(>.list-tabs) .bcard{background:var(--ml-card);border:1px solid var(--ml-line);border-radius:20px;padding:16px;gap:4px;min-height:72px;color:var(--ml-ink)}
.wrap:has(>.list-tabs) .bcard .t{font:700 20px/1.25 'Lora',Georgia,serif;color:var(--ml-ink)}
.wrap:has(>.list-tabs) .bcard .v{font:700 30px/1.15 'Lora',Georgia,serif;color:var(--ml-ink)}
.wrap:has(>.list-tabs) .bcard .s{font-size:16px;color:var(--ml-muted)}
.wrap:has(>.list-tabs) .ggrid:has(>.bcard)>form.card{background:var(--ml-card);border:1px solid var(--ml-line);border-radius:20px;padding:16px}
.wrap:has(>.list-tabs) .ggrid:has(>.bcard)>form.card b{font:700 19px/1.25 'Lora',Georgia,serif}
.wrap:has(>.list-tabs) .tpl{background:var(--ml-save-bg);border-radius:20px;padding:16px}
.wrap:has(>.list-tabs) .tpl .t{font-size:18px;color:var(--ml-ink)}
.wrap:has(>.list-tabs) .tpl .s{font-size:16px;color:var(--ml-save-ink)}
.wrap:has(>.list-tabs) .tpl .btn{align-self:flex-start}

/* ---------- режим «В магазине» (/baskets/{id}/shop) ---------- */
.wrap:has(>.list-tabs) .shop-head{background:var(--ml-bg);padding:6px 0 10px}
.wrap:has(>.list-tabs) .shop-head h1{font:700 24px/1.2 'Lora',Georgia,serif}
.wrap:has(>.list-tabs) .shop-head .bar{background:var(--ml-plate)}.shop-head .bar i{background:var(--ml-save)}
.wrap:has(>.list-tabs) .ms-hero{margin:4px 0 6px}
.wrap:has(>.list-tabs) .ms-stores{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:10px -16px 0;padding:0 16px}
.wrap:has(>.list-tabs) .ms-stores::-webkit-scrollbar{display:none}
.wrap:has(>.list-tabs) .ms-stores a{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 16px;border-radius:999px;background:var(--cbg,var(--ml-plate));color:var(--c,var(--ml-ink));font-weight:800;font-size:16px;text-decoration:none;white-space:nowrap}
.wrap:has(>.list-tabs) .ms-stores a span{font-weight:700;opacity:.85}
/* режим покупки — отдельный экран: вкладки раздела прячем, выход — «Готово» в шапке, «Куплено n из m» — в главном блоке */
.wrap:has(>.shop-head)>.list-tabs{display:none}
.wrap:has(>.list-tabs) .shop-head #progress-text{display:none}
a.ml.ms-x[hidden]{display:inline-flex!important;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:24px;border:2px solid var(--ml-line);background:var(--ml-card);color:var(--ml-ink);font-weight:800;font-size:16px;text-decoration:none}
.wrap:has(>.list-tabs) .shop-sec{margin-top:20px;scroll-margin-top:96px}
.wrap:has(>.list-tabs) .shop-sec .hd h2{font:700 19px/1.3 'Lora',Georgia,serif;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.wrap:has(>.list-tabs) .shop-sec .hd h2 .tag{font-family:'Nunito',system-ui,sans-serif;font-size:16px!important;text-transform:none;letter-spacing:0;padding:2px 10px;border-radius:8px}
.wrap:has(>.list-tabs) .shop-sec .hd h2 .muted{font:700 16px/1.3 'Nunito',system-ui,sans-serif!important;color:var(--ml-muted)}
.wrap:has(>.list-tabs) .shop-list{gap:8px}
.wrap:has(>.list-tabs) .shop-list .chk-form:has(.chk.done){order:1}
.wrap:has(>.list-tabs) .chk{min-height:84px;padding:10px 12px 10px 6px;gap:8px;background:var(--ml-card);border:1px solid var(--ml-line);border-radius:16px;color:var(--ml-ink)}
.wrap:has(>.list-tabs) .chk input{-webkit-appearance:none;appearance:none;width:48px;height:48px;flex:none;margin:0;border-radius:12px;background:transparent no-repeat center/34px 34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Crect x='1.5' y='1.5' width='31' height='31' rx='8' fill='none' stroke='%232E231D' stroke-width='3'/%3E%3C/svg%3E");cursor:pointer}
.wrap:has(>.list-tabs) .chk input:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Crect width='34' height='34' rx='9' fill='%235F7D45'/%3E%3Cpath d='M9 17.5l5.5 5.5L25 12' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.wrap:has(>.list-tabs) .chk input:focus-visible{outline:3px solid var(--ml-ink);outline-offset:2px}
.wrap:has(>.list-tabs) .chk .th{width:56px;height:56px}
.wrap:has(>.list-tabs) .chk .t{font-size:20px;line-height:1.25;color:var(--ml-ink)}
.wrap:has(>.list-tabs) .chk .t .muted{font-size:17px!important;color:var(--ml-muted)}
.wrap:has(>.list-tabs) .chk .s{font-size:17px;line-height:1.35;color:var(--ml-muted)}
.wrap:has(>.list-tabs) .chk .s b{color:var(--ml-ink)}
.wrap:has(>.list-tabs) .chk .s .muted{display:none}  /* «(960 мл, нужно 1 л)» — в магазине лишнее, количество уже в заголовке */
.wrap:has(>.list-tabs) .chk.done{opacity:1;background:var(--ml-done)}
.wrap:has(>.list-tabs) .chk.done .t,.wrap:has(>.list-tabs) .chk.done .s{color:var(--ml-muted)}
.wrap:has(>.list-tabs) .chk.done .s{text-decoration:line-through}
.wrap:has(>.list-tabs) .chk.done .th{opacity:.55}

/* ---------- /pantry ---------- */
.wrap:has(>.list-tabs) .pantry-row{grid-template-columns:1fr 96px auto;min-height:64px;padding:8px 8px 8px 14px;background:var(--ml-card);border:1px solid var(--ml-line);border-radius:16px;font-size:16px}
.wrap:has(>.list-tabs) .pantry-row>:first-child{grid-column:auto}
.wrap:has(>.list-tabs) .pantry-row input{min-height:48px}
.wrap:has(>.list-tabs) .pantry-row .small{font-size:16px;display:inline-flex;align-items:center;gap:4px}
.wrap:has(>.list-tabs) .pantry-row .ib{min-width:48px;height:48px;border-radius:12px;font-size:16px}
.wrap:has(>.list-tabs) .sect .hd h2{font:700 19px/1.25 'Lora',Georgia,serif}
.wrap:has(>.list-tabs) .muted.small{font-size:16px}
}
/* skidki.md mobile redesign: m-more. Только @media (max-width:900px) — десктоп не трогать */
@media (max-width:900px){
/* ===== общее: заголовки и lead ===== */
[hidden]{display:none!important}

/* ===== /groups: плотный список, липкие чипы, поиск ===== */
body:has(.gtools) .lead{display:none}
body:has(.gtools) .pv-open{padding:12px 14px;margin:10px 0 0}
body:has(.gtools) .pv-open-t{font-size:16px;line-height:1.3}
body:has(.gtools) .pv-open .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:8px -14px;padding:0 14px}
body:has(.gtools) .pv-open .chips .chip{flex:none;min-height:48px;font-size:16px}
body:has(.gtools) .pv-open p.muted{font-size:15px;margin:0!important}
.gtools{position:sticky;top:var(--m-head,63px);z-index:9;background:var(--bg);margin:0 -16px 6px;padding:4px 16px 6px;border-bottom:1px solid var(--line)}
.gsearch{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 14px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.gsearch svg{width:22px;height:22px;flex:none;color:var(--muted)}
.gsearch input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:16px;color:var(--text);min-height:48px;outline:0}
.gsearch:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(196,68,44,.18)}
.gchips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:8px 0 2px}
.gchips::-webkit-scrollbar{display:none}
.gchips .chip{flex:none;min-height:48px;padding:0 16px;font-size:16px}
.sect[id^=gc]{scroll-margin-top:calc(var(--m-head,63px) + 120px)}
.sect[id^=gc]{margin-top:18px}
.sect[id^=gc] .hd h2{font-size:20px}
.sect .ggrid[data-an-list=groups]{display:grid;overflow:visible;margin:0;padding:0;grid-template-columns:1fr;gap:8px}
.sect .ggrid[data-an-list=groups]>.gtile{width:auto}
.ggrid[data-an-list=groups] .gtile{grid-template-columns:56px minmax(0,1fr);gap:12px;padding:10px 12px;min-height:72px;border-radius:16px}
.ggrid[data-an-list=groups] .gtile .th{width:56px;height:56px;border-radius:12px}
.ggrid[data-an-list=groups] .gtile .t{font-size:17px;line-height:1.25}
.ggrid[data-an-list=groups] .gtile .s{font-size:15px;line-height:1.35;color:var(--muted)}
.ggrid[data-an-list=groups] .gtile .s+.s{font-size:14px}
.ggrid[data-an-list=groups] .gtile .s b{color:var(--text)}
.ggrid[data-an-list=groups] .gtile .s .was{font-size:14px}

/* ===== /g/<id>: цены по сетям строками ===== */
.ghd{display:block!important}
.ghd h1{margin:0 0 6px}
.ghd .lead{font-size:15px;color:var(--muted)}
.m-dup{display:none}
.ghd .answer{font-size:16px;line-height:1.45;font-weight:700;color:var(--save-ink);background:var(--save-soft);border-radius:14px;padding:10px 14px;margin:6px 0 8px;max-width:none;font-size:15px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.gact{position:fixed!important;left:0;right:0;bottom:calc(66px + env(safe-area-inset-bottom,0px));z-index:15;display:flex!important;flex-wrap:nowrap!important;gap:8px!important;padding:10px 16px;background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.gact form{flex:1;min-width:0;display:flex}
.gact>a.btn,.gact form .btn{flex:1;width:100%;min-height:52px;font-size:17px;border-radius:16px;justify-content:center}
.gact .btn,.gact [class*=share] .btn{min-height:52px}
.gact .share{flex:none;position:relative}
.gact .share-btn{font-size:0;gap:0;width:52px;min-width:52px;padding:0;justify-content:center}
.gact .share-btn svg{width:24px;height:24px}
.gact .share-menu{top:auto;bottom:calc(100% + 8px);right:0;left:auto}
.gact .btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.cmp{grid-template-columns:1fr;gap:8px;margin-top:10px!important}
.cmp .c{display:grid;grid-template-columns:64px minmax(0,1fr) auto;grid-template-areas:"th head unit" "th n unit" "th small unit";column-gap:12px;row-gap:2px;align-items:center;padding:10px 12px;border-radius:16px;border-width:1px}
.cmp .c>div:first-child{grid-area:head;gap:8px;justify-content:flex-start!important;flex-wrap:wrap}
.cmp .c .th{grid-area:th;width:64px;height:64px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.cmp .c .th img{max-height:58px;max-width:58px}
.cmp .c .unit{grid-area:unit;text-align:right;font-size:22px;line-height:1.15;white-space:nowrap;font-family:var(--serif,inherit)}
.cmp .c .unit small{display:block;font-size:14px;color:var(--muted);font-family:var(--font)}
.cmp .c .unit .was{display:inline-block;font-size:14px}
.cmp .c .unit .sale{display:none}
.cmp .c .n{grid-area:n;text-decoration:none;font-size:15px;color:var(--text);line-height:1.3;-webkit-line-clamp:2}
.cmp .c .muted{grid-area:small;font-size:14px!important}
.cmp .c:not(:has(.th)){grid-template-columns:auto minmax(0,1fr);grid-template-areas:"head n";column-gap:10px;padding:8px 14px;min-height:56px}
.cmp .c .na{grid-area:n;padding:0;text-align:left;font-size:16px}
.cmp .c.best{order:-1;background:var(--save-soft);border:2px solid var(--save)}
.cmp .c.best .unit{color:var(--save-ink)}
.cmp .c .bestlbl{font-size:13px;letter-spacing:0;text-transform:none;background:var(--save);color:#fff;border-radius:999px;padding:2px 10px}
.cmp .c .msave{grid-area:small;display:none}
.cmp .c.best .msave{display:block;font-weight:800;font-size:15px;color:var(--save-ink)}
.cmp .c.best .muted{display:none}
body:has(.gact) .plinks{font-size:15px;line-height:1.6}
body:has(.gact) .plinks a{display:inline-block;min-height:32px;padding:4px 2px}
/* график: подписи читаемые, ось не обрезана */
body:has(.gact) svg.chart{overflow:visible}
body:has(.gact) .chart .lbl{font-size:41px}
body:has(.gact) .chart circle{r:7}
body:has(.gact) .legend{gap:8px 16px;font-size:15px;margin-top:12px}
body:has(.gact) .sect .items{display:grid;gap:8px}
body:has(.gact) .sect .item{min-height:72px}
body:has(.gact) .wrap{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
body:has(.gact) .site-foot{padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))}

/* ===== /account: профиль ===== */
.acc-hello{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.acc-hello .mascot{width:64px;height:64px;flex:none}
.acc-hello b{font:700 22px/1.25 var(--serif,inherit);color:var(--text)}
.acc-lead{margin:0 0 12px;word-break:break-word;color:var(--muted)}
.acc-lang{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:8px 14px;margin:0 0 12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;font-weight:800}
.acc-lang .lang-sw a,.acc-lang .lang-sw b{min-height:44px;min-width:56px;display:inline-flex;align-items:center;justify-content:center;font-size:16px}
body:has(.acc-hello) .plus-acc{margin:0 0 12px}
body:has(.acc-hello) .plusbox{background:var(--save-soft);color:var(--text);border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:none}
body:has(.acc-hello) .plusbox::before{display:none}
body:has(.acc-hello) .plusbox h2{color:var(--text);font-size:20px}
body:has(.acc-hello) .plusbox h2 b{color:var(--save-ink)}
body:has(.acc-hello) .plusbox p{color:var(--text);font-size:16px;line-height:1.45;margin:0 0 12px}
body:has(.acc-hello) .plusbox .btn{min-height:52px;width:100%;justify-content:center;font-size:17px;border-radius:16px}
body:has(.acc-hello) .hub{padding:0;margin:0 0 12px;overflow:hidden;border-radius:20px}
body:has(.acc-hello) .hub-row{min-height:64px;padding:10px 16px;gap:14px;font-size:17px;border-radius:0}
body:has(.acc-hello) .hub-row+.hub-row{border-top:1px solid var(--line)}
body:has(.acc-hello) .hub-row>svg:first-child{width:26px;height:26px}
body:has(.acc-hello) .hub-row b{font-size:17px}
body:has(.acc-hello) .hub-row small{font-size:14px;white-space:normal}
body:has(.acc-hello) .hub-row em{font-size:15px;min-height:48px;display:inline-flex;align-items:center}
body:has(.acc-hello) .hub-row:active{background:var(--soft)}
.acc-x,.acc-out-d{display:none}
.acc-fold>summary{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:8px 16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;font-weight:800;font-size:17px;cursor:pointer;list-style:none}
.acc-fold>summary::-webkit-details-marker{display:none}
.acc-fold>summary::after{content:"+";font-size:24px;color:var(--muted)}
.acc-fold[open]>summary::after{content:"\2212"}
.acc-fold[open]>summary{margin-bottom:12px}
.acc-out{margin:16px 0 8px}
.acc-out .btn{width:100%;min-height:52px;justify-content:center;font-size:17px;border-radius:16px}
.acc-stitch{margin:4px -16px 14px;height:12px}
body:has(.acc-hello) .two{gap:12px}
body:has(.acc-hello) .two .card{padding:16px;border-radius:20px}
body:has(.acc-hello) .two .btn{min-height:48px}
body:has(.acc-hello) .two input,body:has(.acc-hello) .two select{min-height:48px;font-size:16px}
body:has(.acc-hello) .two .btn.sm,body:has(.acc-hello) .members .btn.sm{min-height:48px;padding:0 14px;font-size:15px}

/* ===== /favorites: те же строки-карточки ===== */
.fav-grid{grid-template-columns:1fr;gap:10px}
.fav-grid>.stack{background:var(--surface);border:1px solid rgba(234,220,200,.75);border-radius:16px;padding:8px;gap:2px}
.fav-grid .pcard{display:grid;grid-template-columns:84px minmax(0,1fr);box-shadow:none;border:0;background:transparent;border-radius:0;overflow:visible}
.fav-grid .pcard .img{aspect-ratio:auto;width:84px;height:84px;border-radius:12px;border:1px solid var(--line);align-self:start}
.fav-grid .pcard .img img{width:100%;height:100%;object-fit:contain;padding:4px}
.fav-grid .pcard .body{padding:0 60px 0 12px;gap:4px;min-width:0}
.fav-grid .pcard .pname{font-size:16px;-webkit-line-clamp:2}
.fav-grid .pcard .now{font-size:20px}
.fav-grid .pcard .sale{left:6px;top:6px;font-size:12px;padding:3px 7px}
.fav-grid .pcard form{position:absolute;right:4px;top:4px}
.fav-grid .pcard .heart{min-width:48px;min-height:48px}
.fav-grid .pcard .cap{font-size:14px;gap:2px 8px}
.fav-grid .pcard .cap span:first-child:not(:last-child){display:none}
.fav-grid .small{font-size:15px!important;padding:2px 6px 6px!important}
form[action$="/alerts"].card.row{gap:10px}
form[action$="/alerts"].card.row .field{width:100%!important;flex:1 1 100%!important}
form[action$="/alerts"].card.row input,form[action$="/alerts"].card.row select,form[action$="/alerts"].card.row .btn{min-height:48px;font-size:16px}
form[action$="/alerts"].card.row .btn{width:100%;justify-content:center}
.pv-note{font-size:15px}
body:has(.fav-grid,form[action$="/alerts"]) .lead{display:none}
body:has(form[action$="/alerts"]) .empty{padding:16px}
body:has(form[action$="/alerts"]) .empty .mascot{width:88px;height:88px}
body:has(form[action$="/alerts"]) .empty .btn{min-height:52px;font-size:16px}

/* ===== /menu, /recipes, план меню: зоны касания и читаемость ===== */
body:has(.rgrid) .chip,body:has(.rgrid) .chips .chip{min-height:48px;padding:0 16px;font-size:16px}
body:has(.rgrid) .muted.small{font-size:15px;line-height:1.45}
body:has(.rgrid) .lead{font-size:16px;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body:has(.rgrid) .btn,body:has(.rgrid) .card .field input,body:has(.rgrid) .card .field select{min-height:48px;font-size:16px}
body:has(.rgrid) .search input{min-height:52px;font-size:16px}
}
