/* 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}
}
