:root{
  --bg:#0f1016; --bg2:#151722; --card:#1b1e2b; --card2:#212536;
  --stroke:rgba(255,255,255,.07); --stroke2:rgba(255,255,255,.14);
  --text:#f2f3f7; --muted:#9aa0b4; --dim:#6b7188;
  --accent:#f4423c; --accent2:#ff7a5c; --accent-grad:linear-gradient(135deg,#f4423c,#ff7a5c);
  --ok:#35c788; --warn:#ffb648; --info:#4d8dff; --purple:#8b6cf5;
  --radius:18px; --radius-s:13px; --shadow:0 8px 28px rgba(0,0,0,.45);
  --nav-h:66px;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%}
body{
  background:
    radial-gradient(1200px 500px at 15% -10%,rgba(244,66,60,.16),transparent 60%),
    radial-gradient(900px 500px at 110% 0%,rgba(139,108,245,.14),transparent 55%),
    var(--bg);
  color:var(--text);
  font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  overscroll-behavior-y:none;
}
body.light{
  --bg:#f4f5f9; --bg2:#ffffff; --card:#ffffff; --card2:#f6f7fb;
  --stroke:rgba(15,16,22,.08); --stroke2:rgba(15,16,22,.16);
  --text:#15161d; --muted:#5d6379; --dim:#8b90a5;
  --shadow:0 8px 24px rgba(20,22,40,.10);
  background:radial-gradient(1000px 460px at 10% -10%,rgba(244,66,60,.10),transparent 60%),var(--bg);
}
#app{display:flex;flex-direction:column;min-height:100%;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}

/* ---------- шапка ---------- */
#topbar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:10px;
  padding:calc(10px + env(safe-area-inset-top)) 14px 10px;
  background:color-mix(in srgb,var(--bg) 78%,transparent);
  backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--stroke);
}
.brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.brand-logo{
  width:38px;height:38px;border-radius:12px;background:var(--accent-grad);
  display:grid;place-items:center;font-weight:800;font-size:20px;color:#fff;
  box-shadow:0 6px 16px rgba(244,66,60,.35);flex:none;
}
.brand-text{display:flex;flex-direction:column;min-width:0}
.brand-text b{font-size:15px;letter-spacing:.2px}
.brand-text span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}
.geo-pill{
  display:flex;align-items:center;gap:6px;border:1px solid var(--stroke2);background:var(--card);
  color:var(--text);padding:8px 12px;border-radius:999px;font-size:12.5px;font-weight:600;
  cursor:pointer;transition:.15s;flex:none;
}
.geo-pill:hover{border-color:var(--accent)}
.geo-pill svg{color:var(--accent2)}

/* ---------- нижняя навигация ---------- */
#tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;
  height:calc(var(--nav-h) + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);
  background:color-mix(in srgb,var(--bg2) 88%,transparent);
  backdrop-filter:saturate(160%) blur(16px);border-top:1px solid var(--stroke);
}
.tab{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  background:none;border:0;color:var(--dim);font:600 10.5px/1 inherit;cursor:pointer;
  position:relative;transition:.18s;padding:8px 0 6px;
}
.tab svg{width:23px;height:23px;transition:.18s}
.tab .dot{position:absolute;top:5px;width:4px;height:4px;border-radius:50%;background:transparent}
.tab.active{color:var(--text)}
.tab.active svg{color:var(--accent);transform:translateY(-1px);filter:drop-shadow(0 4px 10px rgba(244,66,60,.45))}
.tab.active::after{
  content:"";position:absolute;top:0;width:26px;height:3px;border-radius:0 0 4px 4px;background:var(--accent-grad);
}

/* ---------- контент ---------- */
main{flex:1;padding:14px 14px 22px;max-width:760px;width:100%;margin:0 auto}
.card{background:var(--card);border:1px solid var(--stroke);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.card + .card{margin-top:12px}
.section-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:.6px;margin:16px 2px 8px}
.row{display:flex;align-items:center;gap:10px}
.grow{flex:1;min-width:0}
.muted{color:var(--muted)} .dim{color:var(--dim)}
/* ---------- гео-шапка раздела ---------- */
.geo-card{
  display:flex;gap:12px;align-items:center;cursor:pointer;position:relative;overflow:hidden;
  background:linear-gradient(135deg,rgba(244,66,60,.16),rgba(139,108,245,.12)),var(--card);
  border:1px solid var(--stroke2);border-radius:var(--radius);padding:13px 14px;box-shadow:var(--shadow);
  transition:.18s;
}
.geo-card:active{transform:scale(.99)}
.geo-card .pin{
  width:40px;height:40px;border-radius:13px;background:var(--accent-grad);display:grid;place-items:center;
  color:#fff;flex:none;box-shadow:0 6px 16px rgba(244,66,60,.35)
}
.geo-card .geo-main{min-width:0;flex:1}
.geo-card .geo-main b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.geo-card .geo-main span{font-size:12px;color:var(--muted)}
.geo-card .chev{color:var(--dim);flex:none}
.geo-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.geo-badge{
  display:inline-flex;align-items:center;gap:5px;background:color-mix(in srgb,var(--card2) 80%,transparent);
  border:1px solid var(--stroke);border-radius:999px;padding:4px 9px;font-size:11.5px;font-weight:600
}
.geo-badge i{width:7px;height:7px;border-radius:50%;display:inline-block}
.geo-badge b{color:var(--text)}

/* ---------- чипсы-фильтры форматов ---------- */
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{
  display:inline-flex;align-items:center;gap:7px;white-space:nowrap;cursor:pointer;
  background:var(--card);border:1.5px solid var(--stroke);border-radius:14px;padding:9px 12px;
  font:600 12.5px/1 inherit;color:var(--muted);transition:.15s;flex:none
}
.chip .fmt-ico{width:22px;height:22px;border-radius:8px;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff}
.chip b{color:var(--text);font-size:12.5px}
.chip.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--card));color:var(--text)}
.chip.on .count{background:var(--accent);color:#fff}
.chip .count{background:var(--card2);border-radius:999px;padding:1px 7px;font-size:11px}
.chip.mode.on{border-color:var(--info);background:color-mix(in srgb,var(--info) 14%,var(--card))}
.chip.disabled{opacity:.38;pointer-events:none}

/* ---------- кнопки ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  border:0;border-radius:var(--radius-s);padding:14px 16px;font:700 14.5px/1 inherit;cursor:pointer;
  background:var(--accent-grad);color:#fff;box-shadow:0 8px 22px rgba(244,66,60,.32);transition:.16s
}
.btn:active{transform:scale(.985)}
.btn:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}
.btn.ghost{background:var(--card);border:0;color:var(--text);
  box-shadow:inset 0 0 0 1px var(--stroke2)}
.btn.danger{background:linear-gradient(135deg,#e0392f,#ff6b52)}
.btn.sm{padding:11px 13px;font-size:13px;border-radius:12px;width:auto}
.btn-row{display:flex;gap:9px}

/* ---------- слайдеры ---------- */
.slider-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.slider-head b{font-size:22px;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
input[type=range]{
  -webkit-appearance:none;width:100%;height:30px;background:transparent;cursor:pointer;margin:0
}
input[type=range]::-webkit-slider-runnable-track{height:7px;border-radius:99px;background:var(--card2);border:1px solid var(--stroke)}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;margin-top:-9.5px;
  border:4px solid var(--accent);box-shadow:0 4px 12px rgba(244,66,60,.45)
}
input[type=range]::-moz-range-track{height:7px;border-radius:99px;background:var(--card2)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:4px solid var(--accent)}
.ticks{display:flex;justify-content:space-between;font-size:10.5px;color:var(--dim);margin-top:-4px}
.ticks span{width:24px;text-align:center}

/* ---------- поля ввода ---------- */
.field{
  display:flex;align-items:center;gap:9px;background:var(--card2);border:1.5px solid var(--stroke);
  border-radius:var(--radius-s);padding:11px 13px;transition:.15s
}
.field:focus-within{border-color:var(--accent)}
.field input{flex:1;background:none;border:0;outline:0;color:var(--text);font:500 14.5px inherit;min-width:0}
.field input::placeholder{color:var(--dim)}
.field .ico{color:var(--dim);flex:none}
.field + .field{margin-top:9px}
label.lbl{display:block;font-size:12px;font-weight:700;color:var(--muted);margin:0 0 6px 2px;letter-spacing:.3px}
.small{font-size:12px} .tiny{font-size:11px}
.center{text-align:center}
.hidden{display:none!important}

/* ---------- карточки магазинов (результаты) ---------- */
.store{
  background:var(--card);border:1px solid var(--stroke);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow)
}
.store + .store{margin-top:11px}
.store-head{display:flex;gap:11px;align-items:center;padding:13px 14px;cursor:pointer;user-select:none}
.store-head .fmt-ico{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  font-size:13px;font-weight:800;color:#fff;flex:none}
.store-head .s-main{min-width:0;flex:1}
.store-head .s-main b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.store-head .s-main>span{font-size:11.5px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.found-pill{
  flex:none;display:inline-flex;align-items:center;gap:5px;background:color-mix(in srgb,var(--ok) 16%,transparent);
  color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent);
  border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800
}
.found-pill.zero{background:var(--card2);color:var(--dim);border-color:var(--stroke)}
.store-head .chev{color:var(--dim);transition:.2s;flex:none}
.store.open .store-head .chev{transform:rotate(180deg)}
.store-body{display:none;border-top:1px solid var(--stroke);contain:layout}
.store.open .store-body{display:block}
.store-meta{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 4px}
.meta-tag{font-size:10.5px;color:var(--muted);background:var(--card2);border:1px solid var(--stroke);
  border-radius:8px;padding:3px 7px;font-weight:600}

/* ---------- товар ---------- */
.item{display:flex;gap:11px;padding:11px 14px;border-top:1px solid var(--stroke);align-items:center;content-visibility:auto;contain-intrinsic-size:auto 80px}
.item:first-child{border-top:0}
.item .ph{
  width:58px;height:58px;border-radius:12px;background:#fff;flex:none;overflow:hidden;
  border:1px solid var(--stroke);position:relative
}
.item .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.item .ph.noimg{background:var(--card2)}
.item .i-main{min-width:0;flex:1}
.item .i-name{font-size:13px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .i-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.tag{font-size:10px;font-weight:700;border-radius:6px;padding:2.5px 6px;background:var(--card2);color:var(--muted);border:1px solid var(--stroke)}
.tag.orange{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.tag.final{background:color-mix(in srgb,#e0392f 16%,transparent);color:#ff8b7d;border-color:rgba(224,57,47,.4)}
.tag.store{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);border-color:transparent}
.tag.pickup{background:color-mix(in srgb,var(--info) 15%,transparent);color:var(--info);border-color:transparent}
.tag.delivery{background:color-mix(in srgb,var(--purple) 16%,transparent);color:var(--purple);border-color:transparent}
.item .i-right{text-align:right;flex:none}
.item .i-price{font-size:15.5px;font-weight:800}
.item .i-old{font-size:11px;color:var(--dim);text-decoration:line-through}
.item .i-disc{
  display:inline-block;background:var(--accent-grad);color:#fff;font-size:11px;font-weight:800;
  border-radius:8px;padding:2.5px 6px;margin-bottom:3px
}
.item .i-qty{font-size:10.5px;color:var(--muted);margin-top:2px}

/* Сводка остатков по режимам: Магазин / Самовывоз / Доставка */
.mode-summary{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.mode-chip{display:inline-flex;align-items:center;gap:5px;font-size:10px;border-radius:6px;
  padding:2.5px 7px;border:1px solid var(--stroke);background:var(--card2);color:var(--txt)}
.mode-chip b{font-weight:700}
.mode-chip.store{border-color:color-mix(in srgb,var(--ok) 40%,transparent)}
.mode-chip.store b{color:var(--ok)}
.mode-chip.pickup{border-color:color-mix(in srgb,var(--info) 40%,transparent)}
.mode-chip.pickup b{color:var(--info)}
.mode-chip.delivery{border-color:color-mix(in srgb,var(--purple) 40%,transparent)}
.mode-chip.delivery b{color:var(--purple)}
.mode-chip.off{opacity:.45;color:var(--muted)}
.mode-chip.off b{color:var(--muted)}

/* Строка сервисов в шапке карточки магазина */
.s-svc{display:flex;align-items:center;gap:10px;margin-top:4px;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden}
.svc-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:0}
.svc-dot.store{background:var(--ok)}
.svc-dot.pickup{background:var(--info)}
.svc-dot.delivery{background:var(--purple)}
.item a.link{color:inherit;text-decoration:none;display:block}

/* ---------- прогресс сканирования ---------- */
.progress-card{background:var(--card);border:1px solid var(--stroke);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.bar{height:9px;border-radius:99px;background:var(--card2);overflow:hidden;margin:10px 0 7px;border:1px solid var(--stroke)}
.bar > i{display:block;height:100%;width:0;background:var(--accent-grad);border-radius:99px;transition:width .35s}
.progress-line{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spin{width:15px;height:15px;border:2.5px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;
  display:inline-block;animation:spin .8s linear infinite;vertical-align:-2px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- скелетоны ---------- */
.skel{background:linear-gradient(90deg,var(--card2) 25%,color-mix(in srgb,var(--card2) 60%,var(--text) 6%) 50%,var(--card2) 75%);
  background-size:200% 100%;animation:sk 1.3s infinite;border-radius:12px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---------- карта ---------- */
#map{width:100%;height:290px;border-radius:var(--radius-s);overflow:hidden;border:1px solid var(--stroke2);z-index:1}
.leaflet-container{background:#0b0c11;font:inherit}
.map-hint{display:flex;gap:7px;align-items:center;font-size:11.5px;color:var(--muted);margin-top:8px}

/* ---------- мини-карта: метки магазинов ---------- */
.map-store-wrap{background:none;border:0}
.map-store-ico{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  color:#fff;font-size:11px;font-weight:800;border:2px solid rgba(255,255,255,.92);
  box-shadow:0 3px 10px rgba(0,0,0,.55);cursor:pointer}
.map-legend{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:8px;min-height:16px}
.map-legend .lg{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}
.map-legend .lg i{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.leaflet-popup-content-wrapper{background:var(--card);color:var(--text);border-radius:12px;
  border:1px solid var(--stroke2);box-shadow:var(--shadow)}
.leaflet-popup-tip{background:var(--card)}
.leaflet-popup-content{font:12.5px/1.5 inherit}

/* ---------- адрес доставки в разделе «Фин» ---------- */
.rel-wrap{position:relative}
.addr-state{margin-top:9px;font-size:12.5px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.btn-mini{display:inline-flex;width:auto;padding:7px 13px;border-radius:11px;border:0;
  background:var(--accent-grad);color:#fff;font:700 12px inherit;cursor:pointer}
.btn-ghost-mini{display:inline-flex;padding:6px 11px;border-radius:11px;border:1px solid var(--stroke2);
  background:transparent;color:var(--muted);font:600 11.5px inherit;cursor:pointer}
.suggest{position:absolute;z-index:600;left:0;right:0;top:calc(100% + 6px);background:var(--card);
  border:1px solid var(--stroke2);border-radius:var(--radius-s);box-shadow:var(--shadow);overflow:hidden}
.suggest button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--text);
  padding:11px 13px;font:500 13.5px inherit;cursor:pointer;border-top:1px solid var(--stroke)}
.suggest button:first-child{border-top:0}
.suggest button:hover{background:var(--card2)}
.suggest button span{display:block;font-size:11px;color:var(--dim);margin-top:2px}

/* ---------- история ---------- */
.hist{display:flex;gap:11px;align-items:center;padding:12px 14px;border-top:1px solid var(--stroke);cursor:pointer}
.hist:first-child{border-top:0}
.hist .h-ico{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--card2);flex:none;font-size:15px}
.hist .h-main{min-width:0;flex:1}
.hist .h-main b{display:block;font-size:13.5px}
.hist .h-main span{font-size:11.5px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- пустое состояние ---------- */
.empty{text-align:center;padding:34px 16px;color:var(--muted)}
.empty .em-ico{font-size:42px;margin-bottom:10px;opacity:.85}
.empty b{display:block;color:var(--text);font-size:15px;margin-bottom:5px}
.empty p{font-size:12.5px;margin:0}

/* ---------- тосты ---------- */
#toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));
  z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(92vw,420px)}
.toast{background:#22263a;color:#fff;border:1px solid var(--stroke2);border-radius:13px;padding:11px 15px;
  font-size:13px;font-weight:600;box-shadow:var(--shadow);animation:tin .25s ease}
.toast.err{background:#4a1f1e;border-color:rgba(255,120,110,.4)}
.toast.ok{background:#153a2c;border-color:rgba(53,199,136,.4)}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- настройки ---------- */
.kv{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--stroke);font-size:13px}
.kv:first-of-type{border-top:0}
.kv b{font-weight:700}
.switch{position:relative;width:46px;height:26px;border-radius:99px;background:var(--card2);border:1px solid var(--stroke2);cursor:pointer;transition:.18s;flex:none}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.18s}
.switch.on{background:var(--accent);border-color:var(--accent)}
.switch.on::after{left:22px}




.item a.link{display:flex;gap:11px;align-items:center;width:100%;color:inherit;text-decoration:none}

/* строка названия + метка «доставит сюда» */
.store-head .s-trow{display:flex;align-items:center;gap:7px;min-width:0}
.store-head .s-trow b{flex:0 1 auto;min-width:0}
.hist .s-trow{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.hist .s-trow b{display:inline}

/* чип артикула (клик = копирование) — в стиле сводки режимов */
.mode-chip.art-chip{cursor:copy;border-style:dashed;color:var(--muted);font-family:inherit;font-weight:600}
.mode-chip.art-chip b{color:var(--text);font-weight:700}
.mode-chip.art-chip:hover{border-color:var(--accent2)}
.mode-chip.art-chip:hover b{color:var(--accent2)}
.mode-chip.art-chip.copied{border-color:var(--ok)}
.mode-chip.art-chip.copied b{color:var(--ok)}

/* плашка «доставит сюда» — аккуратный прямоугольный значок машины, без текста */
.deliver-badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:9px;border:1px solid var(--stroke);background:var(--card2);
  color:var(--info);flex:none;cursor:help}
.deliver-badge svg{width:15px;height:15px;display:block}
.deliver-note{color:var(--info)}

/* ---------- лента доставки: адреса, с которых привезут заказ ---------- */
.deliv-ribbon{
  margin:12px 0 2px;padding:12px 0 12px 12px;border-radius:var(--radius);
  background:linear-gradient(135deg,color-mix(in srgb,var(--info) 14%,transparent),transparent 65%),var(--card);
  border:1px solid var(--stroke2);box-shadow:var(--shadow);overflow:hidden
}
.dr-head{display:flex;align-items:center;gap:8px;padding-right:12px}
.dr-head .dr-ico{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;flex:none;
  background:color-mix(in srgb,var(--info) 18%,transparent);color:var(--info)}
.dr-head .dr-ico svg{width:16px;height:16px;display:block}
.dr-head b{font-size:13px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-head .dr-count{font-size:11px;font-weight:700;color:var(--info);flex:none;
  background:color-mix(in srgb,var(--info) 14%,transparent);border-radius:999px;padding:3px 9px}
.dr-scroll{display:flex;gap:9px;overflow-x:auto;margin-top:10px;padding:2px 12px 4px 0;scroll-snap-type:x proximity;scrollbar-width:none}
.dr-scroll::-webkit-scrollbar{display:none}
.dr-card{
  flex:none;width:186px;scroll-snap-align:start;padding:10px;border-radius:14px;
  background:var(--card2);border:1px solid var(--stroke)
}
.dr-card.dark{background:color-mix(in srgb,var(--purple) 10%,var(--card2));
  border-color:color-mix(in srgb,var(--purple) 30%,transparent)}
.dr-card .dr-top{display:flex;align-items:center;gap:7px;min-width:0}
.dr-card .dr-top .fmt-ico{width:24px;height:24px;border-radius:8px;font-size:10px}
.dr-card .dr-top b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-card .dr-addr{margin-top:6px;font-size:12px;font-weight:600;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.dr-card .dr-svcs{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.dr-card .dr-svc{font-size:10px;font-weight:600;color:var(--info);border-radius:7px;padding:2px 6px;
  background:color-mix(in srgb,var(--info) 13%,transparent)}
.dr-card .dr-km{margin-top:6px;font-size:10.5px;color:var(--dim)}

/* «доставят на ваш адрес» — аккуратный акцент у карточки/строки адреса */
.store.delivers,.hist.delivers{box-shadow:inset 3px 0 0 0 var(--info),var(--shadow)}
.hist.delivers{box-shadow:inset 3px 0 0 0 var(--info)}
.hist .h-cnt{margin-left:auto;flex:none;padding-left:8px}
.cnt-pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;
  padding:4px 9px;font-size:11px;font-weight:700;color:var(--text);
  background:var(--card2);border:1px solid var(--stroke)}
.cnt-pill.empty{color:var(--dim);font-weight:600}

/* сводка «Магазины в поиске» в разделах Скан/Арт/Фин */
.sum-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sum-head b{font-size:13.5px}
.sum-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sum-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:9px;
  border:1px solid var(--stroke);background:var(--card2);font-size:11.5px;color:var(--muted);white-space:nowrap}
.sum-chip i{width:9px;height:9px;border-radius:3px;flex:none}
.sum-chip b{color:var(--text);font-weight:700}

/* выпадающая сортировка списков — удалена */
.select option{background:var(--card);color:var(--text)}
/* ================= Скидки (монитор) ================= */
.select{background:var(--card2);border:1.5px solid var(--stroke);color:var(--text);
  border-radius:12px;padding:11px 10px;font-size:13px;outline:none}
.select:focus{border-color:var(--accent)}
.deal-status{padding:13px 14px}
.ds-row{display:flex;align-items:center;gap:11px}
.ds-dot{width:11px;height:11px;border-radius:50%;flex:none;background:var(--dim)}
.ds-dot.ok{background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 18%,transparent)}
.ds-dot.run{background:var(--info);box-shadow:0 0 0 4px color-mix(in srgb,var(--info) 18%,transparent);
  animation:pulse 1.2s infinite}
.ds-dot.err{background:var(--warn);box-shadow:0 0 0 4px color-mix(in srgb,var(--warn) 18%,transparent)}
@keyframes pulse{50%{opacity:.45}}
.ds-main{flex:1;min-width:0}
.ds-line{font-size:13.5px;display:flex;align-items:center;gap:7px}
.ds-line b{color:var(--text)}
.ds-point{display:block;font-size:11.5px;color:var(--muted);margin-top:3px;
  line-height:1.5}
.ds-err{font-size:11.5px;color:var(--warn);margin-top:8px}
.ch-dot{width:8px;height:8px;border-radius:50%;margin-left:auto;flex:none}
.ch-dot.ok{background:var(--ok)}
.ch-dot.err{background:var(--warn)}
.ch-dot.idle{background:var(--dim)}
.ch-dot.off{background:transparent;border:1.5px solid var(--stroke)}
.deals-filters{display:flex;gap:9px;margin-top:11px;align-items:stretch;flex-wrap:wrap}
.deals-filters .field{display:flex;align-items:center;gap:8px;background:var(--card2);
  border:1.5px solid var(--stroke);border-radius:12px;padding:0 11px}
.deals-filters .field svg{color:var(--dim);flex:none}
.deals-filters .field input{flex:1;border:0;outline:0;background:transparent;color:var(--text);
  font-size:13px;padding:11px 0;min-width:0}
.tag.new{background:color-mix(in srgb,#4aa3ff 15%,transparent);color:#7dbdff;
  border-color:transparent;letter-spacing:.4px}
.i-shop{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.new-pill{font-size:10px;font-weight:800;color:#fff;background:var(--ok);
  border-radius:999px;padding:2px 7px;margin-left:7px;vertical-align:1px}
.deals-hist{margin-top:9px}
.dh-row{display:flex;align-items:center;gap:9px;padding:7px 0;
  border-top:1px solid var(--stroke);font-size:12px}
.dh-row:first-child{border-top:0}
.dh-dot{width:20px;height:20px;border-radius:7px;color:#fff;font-size:9px;font-weight:800;
  display:grid;place-items:center;flex:none}
.dh-time{color:var(--muted);font-variant-numeric:tabular-nums;flex:none}
.dh-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dh-cnt{flex:none;color:var(--muted)}
.dh-new{color:var(--ok);font-weight:700}
.dh-err{color:var(--warn);font-weight:700}

.ds-btns{display:flex;gap:7px;flex:none;align-items:center}
.ds-btns .btn.sm{padding:11px}

/* ============ Наличие / ликвидация / мобильная адаптация ============ */
.tag.out{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn);
  border-color:transparent}
.tag.ok-tag{background:color-mix(in srgb,var(--ok) 13%,transparent);color:var(--ok);
  border-color:transparent}
.item.oos{opacity:.55;filter:saturate(.6)}
.ds-btns .btn.sm.ghost{border:1.5px solid var(--stroke)}
@media (max-width:480px){
  .item{padding:11px 10px}
  .i-name{font-size:13px;line-height:1.35}
  .i-right{min-width:86px}
  .i-price{font-size:15px}
  .i-disc{font-size:11px}
  .deal-status{padding:12px 12px}
  .ds-btns{flex-direction:column;gap:6px;align-items:stretch}
  .ds-btns .btn.sm{width:100%;text-align:center}
  .ds-row{flex-wrap:wrap}
  .chips .chip{padding:10px 11px}
  .store-head{padding:12px}
  .deals-filters .field input{font-size:16px}
  .deals-filters .select{font-size:16px}
  #tabbar{padding-bottom:env(safe-area-inset-bottom,0)}
  #topbar{padding-top:env(safe-area-inset-top,0)}
  .btn{min-height:44px}
  .chip{min-height:40px}
}

.deal-wow{padding:12px 14px;margin-bottom:11px}
.wow-row{display:flex;gap:8px}
.wow-stat{flex:1;text-align:center;background:var(--card2);border-radius:12px;
  padding:9px 4px}
.wow-stat b{display:block;font-size:19px;background:var(--accent-grad);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.wow-stat span{font-size:10px;color:var(--muted)}
.wow-top{margin-top:9px;font-size:11.5px;color:var(--muted);line-height:1.6}
.wow-top b{color:var(--text)}
.wow-item{display:inline-block;background:var(--card2);border-radius:8px;
  padding:3px 8px;margin:2px 4px 2px 0}

/* ============ Статус-карточка v2: таймеры, прогресс ============ */
.ds-live{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--info);
  margin-bottom:9px}
.ds-tiles{display:flex;gap:9px}
.ds-tile{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
  background:var(--card2);border:1.5px solid var(--stroke);border-radius:14px;
  padding:11px 8px;cursor:pointer;transition:.15s;color:var(--text);
  font:inherit;min-height:0}
.ds-tile:active{transform:scale(.97)}
.ds-tile.run{border-color:var(--info);background:color-mix(in srgb,var(--info) 10%,var(--card2))}
.ds-t-ico{font-size:17px;line-height:1}
.ds-t-name{font-size:11px;color:var(--muted);font-weight:700}
.ds-t-time{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;
  color:transparent}
.ds-tile.run .ds-t-time{background:none;color:var(--info);-webkit-text-fill-color:var(--info)}
.ds-t-sub{font-size:9.5px;color:var(--dim);text-align:center;line-height:1.3}
.ds-meta{font-size:11px;color:var(--muted);margin-top:9px;line-height:1.45}
.ds-progs{margin-top:9px;display:flex;flex-direction:column;gap:5px}
.ds-prog{display:flex;align-items:center;gap:8px}
.ds-pbar{flex:1;height:7px;border-radius:99px;background:var(--card2);overflow:hidden}
.ds-pbar i{display:block;height:100%;border-radius:99px;transition:width .4s}
.ds-pn{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums;
  min-width:34px;text-align:right}
/* вложенные магазины внутри сети */
.deal-shops{padding:4px 8px 8px}
.store.sub{margin:8px 0;background:var(--card2);border-radius:12px;border:0}
.store.sub .store-head{padding:9px 11px}
.store.sub .s-trow b{font-size:12.5px}
.store.sub .store-body{border-top:1px solid var(--stroke)}
/* лента сканов: кликабельные строки */
.dh-row.click{cursor:pointer}
.dh-row.click:active{background:var(--card2)}
.scanview-note{display:flex;align-items:center;gap:8px;background:
  color-mix(in srgb,var(--info) 12%,var(--card));border:1px solid var(--stroke);
  border-radius:12px;padding:10px 12px;font-size:12.5px;margin-bottom:11px}
.wow-stat.hot b{background:linear-gradient(135deg,#4aa3ff,#7dbdff);
  -webkit-background-clip:text;background-clip:text}
.wow-item{display:inline-flex;align-items:center;gap:6px;color:var(--text);
  text-decoration:none}
.wow-item i{width:18px;height:18px;border-radius:6px;color:#fff;font-size:8px;
  font-weight:800;display:grid;place-items:center;font-style:normal;flex:none}
.wow-item b{color:var(--ok);font-size:11px;white-space:nowrap}
@media (max-width:480px){
  .ds-tiles{flex-direction:row}
  .ds-t-time{font-size:14px}
}

/* ============ Инфо-блок карты + подсветка товара ============ */
.map-scan-info{margin-top:8px;font-size:11.5px;line-height:1.6;color:var(--muted)}
.si-chip{display:inline-flex;align-items:center;gap:5px;background:var(--card2);
  border-radius:8px;padding:3px 8px;margin:2px 4px 2px 0;color:var(--text)}
.si-chip i{width:16px;height:16px;border-radius:5px;display:grid;place-items:center;
  font-style:normal}
.si-chip b{font-variant-numeric:tabular-nums}
.si-total{display:block;margin-top:4px}
.item.flash{animation:flashItem 2.6s}
@keyframes flashItem{0%,60%{outline:2px solid var(--accent);outline-offset:-2px;
  background:color-mix(in srgb,var(--accent) 12%,var(--card))}100%{}}
.wow-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  max-width:150px}

/* ============ Карта: компактные пины + плашка изм.цены ============ */
.map-pin{width:22px;height:22px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);
  display:grid;place-items:center;box-shadow:0 0 0 2px #fff,0 3px 8px rgba(0,0,0,.45);
  border:1.5px solid rgba(255,255,255,.35)}
.map-pin span{transform:rotate(45deg);color:#fff;font-size:9px;font-weight:800}
.map-pin.dim{width:10px;height:10px;box-shadow:0 0 0 1.5px rgba(255,255,255,.55);
  opacity:.5;border:0}
.leaflet-control-attribution{display:none !important}
.tag.chg-up{background:color-mix(in srgb,var(--warn) 16%,transparent);
  color:#ff9d8a;border-color:transparent;font-variant-numeric:tabular-nums}
.tag.chg-down{background:color-mix(in srgb,var(--ok) 14%,transparent);color:#7ee2a8;
  border-color:transparent;font-variant-numeric:tabular-nums}
:root{
  --bg:#0f1016; --bg2:#151722; --card:#1b1e2b; --card2:#212536;
  --stroke:rgba(255,255,255,.07); --stroke2:rgba(255,255,255,.14);
  --text:#f2f3f7; --muted:#9aa0b4; --dim:#6b7188;
  --accent:#f4423c; --accent2:#ff7a5c; --accent-grad:linear-gradient(135deg,#f4423c,#ff7a5c);
  --ok:#35c788; --warn:#ffb648; --info:#4d8dff; --purple:#8b6cf5;
  --radius:18px; --radius-s:13px; --shadow:0 8px 28px rgba(0,0,0,.45);
  --nav-h:66px;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%}
body{
  background:
    radial-gradient(1200px 500px at 15% -10%,rgba(244,66,60,.16),transparent 60%),
    radial-gradient(900px 500px at 110% 0%,rgba(139,108,245,.14),transparent 55%),
    var(--bg);
  color:var(--text);
  font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  overscroll-behavior-y:none;
}
body.light{
  --bg:#f4f5f9; --bg2:#ffffff; --card:#ffffff; --card2:#f6f7fb;
  --stroke:rgba(15,16,22,.08); --stroke2:rgba(15,16,22,.16);
  --text:#15161d; --muted:#5d6379; --dim:#8b90a5;
  --shadow:0 8px 24px rgba(20,22,40,.10);
  background:radial-gradient(1000px 460px at 10% -10%,rgba(244,66,60,.10),transparent 60%),var(--bg);
}
#app{display:flex;flex-direction:column;min-height:100%;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}

/* ---------- шапка ---------- */
#topbar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:10px;
  padding:calc(10px + env(safe-area-inset-top)) 14px 10px;
  background:color-mix(in srgb,var(--bg) 78%,transparent);
  backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--stroke);
}
.brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.brand-logo{
  width:38px;height:38px;border-radius:12px;background:var(--accent-grad);
  display:grid;place-items:center;font-weight:800;font-size:20px;color:#fff;
  box-shadow:0 6px 16px rgba(244,66,60,.35);flex:none;
}
.brand-text{display:flex;flex-direction:column;min-width:0}
.brand-text b{font-size:15px;letter-spacing:.2px}
.brand-text span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}
.geo-pill{
  display:flex;align-items:center;gap:6px;border:1px solid var(--stroke2);background:var(--card);
  color:var(--text);padding:8px 12px;border-radius:999px;font-size:12.5px;font-weight:600;
  cursor:pointer;transition:.15s;flex:none;
}
.geo-pill:hover{border-color:var(--accent)}
.geo-pill svg{color:var(--accent2)}

/* ---------- нижняя навигация ---------- */
#tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;
  height:calc(var(--nav-h) + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);
  background:color-mix(in srgb,var(--bg2) 88%,transparent);
  backdrop-filter:saturate(160%) blur(16px);border-top:1px solid var(--stroke);
}
.tab{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  background:none;border:0;color:var(--dim);font:600 10.5px/1 inherit;cursor:pointer;
  position:relative;transition:.18s;padding:8px 0 6px;
}
.tab svg{width:23px;height:23px;transition:.18s}
.tab .dot{position:absolute;top:5px;width:4px;height:4px;border-radius:50%;background:transparent}
.tab.active{color:var(--text)}
.tab.active svg{color:var(--accent);transform:translateY(-1px);filter:drop-shadow(0 4px 10px rgba(244,66,60,.45))}
.tab.active::after{
  content:"";position:absolute;top:0;width:26px;height:3px;border-radius:0 0 4px 4px;background:var(--accent-grad);
}

/* ---------- контент ---------- */
main{flex:1;padding:14px 14px 22px;max-width:760px;width:100%;margin:0 auto}
.card{background:var(--card);border:1px solid var(--stroke);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.card + .card{margin-top:12px}
.section-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:.6px;margin:16px 2px 8px}
.row{display:flex;align-items:center;gap:10px}
.grow{flex:1;min-width:0}
.muted{color:var(--muted)} .dim{color:var(--dim)}
/* ---------- гео-шапка раздела ---------- */
.geo-card{
  display:flex;gap:12px;align-items:center;cursor:pointer;position:relative;overflow:hidden;
  background:linear-gradient(135deg,rgba(244,66,60,.16),rgba(139,108,245,.12)),var(--card);
  border:1px solid var(--stroke2);border-radius:var(--radius);padding:13px 14px;box-shadow:var(--shadow);
  transition:.18s;
}
.geo-card:active{transform:scale(.99)}
.geo-card .pin{
  width:40px;height:40px;border-radius:13px;background:var(--accent-grad);display:grid;place-items:center;
  color:#fff;flex:none;box-shadow:0 6px 16px rgba(244,66,60,.35)
}
.geo-card .geo-main{min-width:0;flex:1}
.geo-card .geo-main b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.geo-card .geo-main span{font-size:12px;color:var(--muted)}
.geo-card .chev{color:var(--dim);flex:none}
.geo-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.geo-badge{
  display:inline-flex;align-items:center;gap:5px;background:color-mix(in srgb,var(--card2) 80%,transparent);
  border:1px solid var(--stroke);border-radius:999px;padding:4px 9px;font-size:11.5px;font-weight:600
}
.geo-badge i{width:7px;height:7px;border-radius:50%;display:inline-block}
.geo-badge b{color:var(--text)}

/* ---------- чипсы-фильтры форматов ---------- */
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{
  display:inline-flex;align-items:center;gap:7px;white-space:nowrap;cursor:pointer;
  background:var(--card);border:1.5px solid var(--stroke);border-radius:14px;padding:9px 12px;
  font:600 12.5px/1 inherit;color:var(--muted);transition:.15s;flex:none
}
.chip .fmt-ico{width:22px;height:22px;border-radius:8px;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff}
.chip b{color:var(--text);font-size:12.5px}
.chip.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--card));color:var(--text)}
.chip.on .count{background:var(--accent);color:#fff}
.chip .count{background:var(--card2);border-radius:999px;padding:1px 7px;font-size:11px}
.chip.mode.on{border-color:var(--info);background:color-mix(in srgb,var(--info) 14%,var(--card))}
.chip.disabled{opacity:.38;pointer-events:none}

/* ---------- кнопки ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  border:0;border-radius:var(--radius-s);padding:14px 16px;font:700 14.5px/1 inherit;cursor:pointer;
  background:var(--accent-grad);color:#fff;box-shadow:0 8px 22px rgba(244,66,60,.32);transition:.16s
}
.btn:active{transform:scale(.985)}
.btn:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}
.btn.ghost{background:var(--card);border:0;color:var(--text);
  box-shadow:inset 0 0 0 1px var(--stroke2)}
.btn.danger{background:linear-gradient(135deg,#e0392f,#ff6b52)}
.btn.sm{padding:11px 13px;font-size:13px;border-radius:12px;width:auto}
.btn-row{display:flex;gap:9px}

/* ---------- слайдеры ---------- */
.slider-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.slider-head b{font-size:22px;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
input[type=range]{
  -webkit-appearance:none;width:100%;height:30px;background:transparent;cursor:pointer;margin:0
}
input[type=range]::-webkit-slider-runnable-track{height:7px;border-radius:99px;background:var(--card2);border:1px solid var(--stroke)}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;margin-top:-9.5px;
  border:4px solid var(--accent);box-shadow:0 4px 12px rgba(244,66,60,.45)
}
input[type=range]::-moz-range-track{height:7px;border-radius:99px;background:var(--card2)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:4px solid var(--accent)}
.ticks{display:flex;justify-content:space-between;font-size:10.5px;color:var(--dim);margin-top:-4px}
.ticks span{width:24px;text-align:center}

/* ---------- поля ввода ---------- */
.field{
  display:flex;align-items:center;gap:9px;background:var(--card2);border:1.5px solid var(--stroke);
  border-radius:var(--radius-s);padding:11px 13px;transition:.15s
}
.field:focus-within{border-color:var(--accent)}
.field input{flex:1;background:none;border:0;outline:0;color:var(--text);font:500 14.5px inherit;min-width:0}
.field input::placeholder{color:var(--dim)}
.field .ico{color:var(--dim);flex:none}
.field + .field{margin-top:9px}
label.lbl{display:block;font-size:12px;font-weight:700;color:var(--muted);margin:0 0 6px 2px;letter-spacing:.3px}
.small{font-size:12px} .tiny{font-size:11px}
.center{text-align:center}
.hidden{display:none!important}

/* ---------- карточки магазинов (результаты) ---------- */
.store{
  background:var(--card);border:1px solid var(--stroke);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow)
}
.store + .store{margin-top:11px}
.store-head{display:flex;gap:11px;align-items:center;padding:13px 14px;cursor:pointer;user-select:none}
.store-head .fmt-ico{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  font-size:13px;font-weight:800;color:#fff;flex:none}
.store-head .s-main{min-width:0;flex:1}
.store-head .s-main b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.store-head .s-main>span{font-size:11.5px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.found-pill{
  flex:none;display:inline-flex;align-items:center;gap:5px;background:color-mix(in srgb,var(--ok) 16%,transparent);
  color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent);
  border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800
}
.found-pill.zero{background:var(--card2);color:var(--dim);border-color:var(--stroke)}
.store-head .chev{color:var(--dim);transition:.2s;flex:none}
.store.open .store-head .chev{transform:rotate(180deg)}
.store-body{display:none;border-top:1px solid var(--stroke);contain:layout}
.store.open .store-body{display:block}
.store-meta{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 4px}
.meta-tag{font-size:10.5px;color:var(--muted);background:var(--card2);border:1px solid var(--stroke);
  border-radius:8px;padding:3px 7px;font-weight:600}

/* ---------- товар ---------- */
.item{display:flex;gap:11px;padding:11px 14px;border-top:1px solid var(--stroke);align-items:center;content-visibility:auto;contain-intrinsic-size:auto 80px}
.item:first-child{border-top:0}
.item .ph{
  width:58px;height:58px;border-radius:12px;background:#fff;flex:none;overflow:hidden;
  border:1px solid var(--stroke);position:relative
}
.item .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.item .ph.noimg{background:var(--card2)}
.item .i-main{min-width:0;flex:1}
.item .i-name{font-size:13px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .i-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.tag{font-size:10px;font-weight:700;border-radius:6px;padding:2.5px 6px;background:var(--card2);color:var(--muted);border:1px solid var(--stroke)}
.tag.orange{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.tag.final{background:color-mix(in srgb,#e0392f 16%,transparent);color:#ff8b7d;border-color:rgba(224,57,47,.4)}
.tag.store{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);border-color:transparent}
.tag.pickup{background:color-mix(in srgb,var(--info) 15%,transparent);color:var(--info);border-color:transparent}
.tag.delivery{background:color-mix(in srgb,var(--purple) 16%,transparent);color:var(--purple);border-color:transparent}
.item .i-right{text-align:right;flex:none}
.item .i-price{font-size:15.5px;font-weight:800}
.item .i-old{font-size:11px;color:var(--dim);text-decoration:line-through}
.item .i-disc{
  display:inline-block;background:var(--accent-grad);color:#fff;font-size:11px;font-weight:800;
  border-radius:8px;padding:2.5px 6px;margin-bottom:3px
}
.item .i-qty{font-size:10.5px;color:var(--muted);margin-top:2px}

/* Сводка остатков по режимам: Магазин / Самовывоз / Доставка */
.mode-summary{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.mode-chip{display:inline-flex;align-items:center;gap:5px;font-size:10px;border-radius:6px;
  padding:2.5px 7px;border:1px solid var(--stroke);background:var(--card2);color:var(--txt)}
.mode-chip b{font-weight:700}
.mode-chip.store{border-color:color-mix(in srgb,var(--ok) 40%,transparent)}
.mode-chip.store b{color:var(--ok)}
.mode-chip.pickup{border-color:color-mix(in srgb,var(--info) 40%,transparent)}
.mode-chip.pickup b{color:var(--info)}
.mode-chip.delivery{border-color:color-mix(in srgb,var(--purple) 40%,transparent)}
.mode-chip.delivery b{color:var(--purple)}
.mode-chip.off{opacity:.45;color:var(--muted)}
.mode-chip.off b{color:var(--muted)}

/* Строка сервисов в шапке карточки магазина */
.s-svc{display:flex;align-items:center;gap:10px;margin-top:4px;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden}
.svc-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:0}
.svc-dot.store{background:var(--ok)}
.svc-dot.pickup{background:var(--info)}
.svc-dot.delivery{background:var(--purple)}
.item a.link{color:inherit;text-decoration:none;display:block}

/* ---------- прогресс сканирования ---------- */
.progress-card{background:var(--card);border:1px solid var(--stroke);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.bar{height:9px;border-radius:99px;background:var(--card2);overflow:hidden;margin:10px 0 7px;border:1px solid var(--stroke)}
.bar > i{display:block;height:100%;width:0;background:var(--accent-grad);border-radius:99px;transition:width .35s}
.progress-line{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spin{width:15px;height:15px;border:2.5px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;
  display:inline-block;animation:spin .8s linear infinite;vertical-align:-2px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- скелетоны ---------- */
.skel{background:linear-gradient(90deg,var(--card2) 25%,color-mix(in srgb,var(--card2) 60%,var(--text) 6%) 50%,var(--card2) 75%);
  background-size:200% 100%;animation:sk 1.3s infinite;border-radius:12px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---------- карта ---------- */
#map{width:100%;height:290px;border-radius:var(--radius-s);overflow:hidden;border:1px solid var(--stroke2);z-index:1}
.leaflet-container{background:#0b0c11;font:inherit}
.map-hint{display:flex;gap:7px;align-items:center;font-size:11.5px;color:var(--muted);margin-top:8px}

/* ---------- мини-карта: метки магазинов ---------- */
.map-store-wrap{background:none;border:0}
.map-store-ico{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  color:#fff;font-size:11px;font-weight:800;border:2px solid rgba(255,255,255,.92);
  box-shadow:0 3px 10px rgba(0,0,0,.55);cursor:pointer}
.map-legend{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:8px;min-height:16px}
.map-legend .lg{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}
.map-legend .lg i{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.leaflet-popup-content-wrapper{background:var(--card);color:var(--text);border-radius:12px;
  border:1px solid var(--stroke2);box-shadow:var(--shadow)}
.leaflet-popup-tip{background:var(--card)}
.leaflet-popup-content{font:12.5px/1.5 inherit}

/* ---------- адрес доставки в разделе «Фин» ---------- */
.rel-wrap{position:relative}
.addr-state{margin-top:9px;font-size:12.5px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.btn-mini{display:inline-flex;width:auto;padding:7px 13px;border-radius:11px;border:0;
  background:var(--accent-grad);color:#fff;font:700 12px inherit;cursor:pointer}
.btn-ghost-mini{display:inline-flex;padding:6px 11px;border-radius:11px;border:1px solid var(--stroke2);
  background:transparent;color:var(--muted);font:600 11.5px inherit;cursor:pointer}
.suggest{position:absolute;z-index:600;left:0;right:0;top:calc(100% + 6px);background:var(--card);
  border:1px solid var(--stroke2);border-radius:var(--radius-s);box-shadow:var(--shadow);overflow:hidden}
.suggest button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--text);
  padding:11px 13px;font:500 13.5px inherit;cursor:pointer;border-top:1px solid var(--stroke)}
.suggest button:first-child{border-top:0}
.suggest button:hover{background:var(--card2)}
.suggest button span{display:block;font-size:11px;color:var(--dim);margin-top:2px}

/* ---------- история ---------- */
.hist{display:flex;gap:11px;align-items:center;padding:12px 14px;border-top:1px solid var(--stroke);cursor:pointer}
.hist:first-child{border-top:0}
.hist .h-ico{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--card2);flex:none;font-size:15px}
.hist .h-main{min-width:0;flex:1}
.hist .h-main b{display:block;font-size:13.5px}
.hist .h-main span{font-size:11.5px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- пустое состояние ---------- */
.empty{text-align:center;padding:34px 16px;color:var(--muted)}
.empty .em-ico{font-size:42px;margin-bottom:10px;opacity:.85}
.empty b{display:block;color:var(--text);font-size:15px;margin-bottom:5px}
.empty p{font-size:12.5px;margin:0}

/* ---------- тосты ---------- */
#toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));
  z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(92vw,420px)}
.toast{background:#22263a;color:#fff;border:1px solid var(--stroke2);border-radius:13px;padding:11px 15px;
  font-size:13px;font-weight:600;box-shadow:var(--shadow);animation:tin .25s ease}
.toast.err{background:#4a1f1e;border-color:rgba(255,120,110,.4)}
.toast.ok{background:#153a2c;border-color:rgba(53,199,136,.4)}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- настройки ---------- */
.kv{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--stroke);font-size:13px}
.kv:first-of-type{border-top:0}
.kv b{font-weight:700}
.switch{position:relative;width:46px;height:26px;border-radius:99px;background:var(--card2);border:1px solid var(--stroke2);cursor:pointer;transition:.18s;flex:none}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.18s}
.switch.on{background:var(--accent);border-color:var(--accent)}
.switch.on::after{left:22px}




.item a.link{display:flex;gap:11px;align-items:center;width:100%;color:inherit;text-decoration:none}

/* строка названия + метка «доставит сюда» */
.store-head .s-trow{display:flex;align-items:center;gap:7px;min-width:0}
.store-head .s-trow b{flex:0 1 auto;min-width:0}
.hist .s-trow{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.hist .s-trow b{display:inline}

/* чип артикула (клик = копирование) — в стиле сводки режимов */
.mode-chip.art-chip{cursor:copy;border-style:dashed;color:var(--muted);font-family:inherit;font-weight:600}
.mode-chip.art-chip b{color:var(--text);font-weight:700}
.mode-chip.art-chip:hover{border-color:var(--accent2)}
.mode-chip.art-chip:hover b{color:var(--accent2)}
.mode-chip.art-chip.copied{border-color:var(--ok)}
.mode-chip.art-chip.copied b{color:var(--ok)}

/* плашка «доставит сюда» — аккуратный прямоугольный значок машины, без текста */
.deliver-badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:9px;border:1px solid var(--stroke);background:var(--card2);
  color:var(--info);flex:none;cursor:help}
.deliver-badge svg{width:15px;height:15px;display:block}
.deliver-note{color:var(--info)}

/* ---------- лента доставки: адреса, с которых привезут заказ ---------- */
.deliv-ribbon{
  margin:12px 0 2px;padding:12px 0 12px 12px;border-radius:var(--radius);
  background:linear-gradient(135deg,color-mix(in srgb,var(--info) 14%,transparent),transparent 65%),var(--card);
  border:1px solid var(--stroke2);box-shadow:var(--shadow);overflow:hidden
}
.dr-head{display:flex;align-items:center;gap:8px;padding-right:12px}
.dr-head .dr-ico{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;flex:none;
  background:color-mix(in srgb,var(--info) 18%,transparent);color:var(--info)}
.dr-head .dr-ico svg{width:16px;height:16px;display:block}
.dr-head b{font-size:13px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-head .dr-count{font-size:11px;font-weight:700;color:var(--info);flex:none;
  background:color-mix(in srgb,var(--info) 14%,transparent);border-radius:999px;padding:3px 9px}
.dr-scroll{display:flex;gap:9px;overflow-x:auto;margin-top:10px;padding:2px 12px 4px 0;scroll-snap-type:x proximity;scrollbar-width:none}
.dr-scroll::-webkit-scrollbar{display:none}
.dr-card{
  flex:none;width:186px;scroll-snap-align:start;padding:10px;border-radius:14px;
  background:var(--card2);border:1px solid var(--stroke)
}
.dr-card.dark{background:color-mix(in srgb,var(--purple) 10%,var(--card2));
  border-color:color-mix(in srgb,var(--purple) 30%,transparent)}
.dr-card .dr-top{display:flex;align-items:center;gap:7px;min-width:0}
.dr-card .dr-top .fmt-ico{width:24px;height:24px;border-radius:8px;font-size:10px}
.dr-card .dr-top b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-card .dr-addr{margin-top:6px;font-size:12px;font-weight:600;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.dr-card .dr-svcs{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.dr-card .dr-svc{font-size:10px;font-weight:600;color:var(--info);border-radius:7px;padding:2px 6px;
  background:color-mix(in srgb,var(--info) 13%,transparent)}
.dr-card .dr-km{margin-top:6px;font-size:10.5px;color:var(--dim)}

/* «доставят на ваш адрес» — аккуратный акцент у карточки/строки адреса */
.store.delivers,.hist.delivers{box-shadow:inset 3px 0 0 0 var(--info),var(--shadow)}
.hist.delivers{box-shadow:inset 3px 0 0 0 var(--info)}
.hist .h-cnt{margin-left:auto;flex:none;padding-left:8px}
.cnt-pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;
  padding:4px 9px;font-size:11px;font-weight:700;color:var(--text);
  background:var(--card2);border:1px solid var(--stroke)}
.cnt-pill.empty{color:var(--dim);font-weight:600}

/* сводка «Магазины в поиске» в разделах Скан/Арт/Фин */
.sum-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sum-head b{font-size:13.5px}
.sum-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sum-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:9px;
  border:1px solid var(--stroke);background:var(--card2);font-size:11.5px;color:var(--muted);white-space:nowrap}
.sum-chip i{width:9px;height:9px;border-radius:3px;flex:none}
.sum-chip b{color:var(--text);font-weight:700}

/* выпадающая сортировка списков — удалена */
.select option{background:var(--card);color:var(--text)}
/* ================= Скидки (монитор) ================= */
.select{background:var(--card2);border:1.5px solid var(--stroke);color:var(--text);
  border-radius:12px;padding:11px 10px;font-size:13px;outline:none}
.select:focus{border-color:var(--accent)}
.deal-status{padding:13px 14px}
.ds-row{display:flex;align-items:center;gap:11px}
.ds-dot{width:11px;height:11px;border-radius:50%;flex:none;background:var(--dim)}
.ds-dot.ok{background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 18%,transparent)}
.ds-dot.run{background:var(--info);box-shadow:0 0 0 4px color-mix(in srgb,var(--info) 18%,transparent);
  animation:pulse 1.2s infinite}
.ds-dot.err{background:var(--warn);box-shadow:0 0 0 4px color-mix(in srgb,var(--warn) 18%,transparent)}
@keyframes pulse{50%{opacity:.45}}
.ds-main{flex:1;min-width:0}
.ds-line{font-size:13.5px;display:flex;align-items:center;gap:7px}
.ds-line b{color:var(--text)}
.ds-point{display:block;font-size:11.5px;color:var(--muted);margin-top:3px;
  line-height:1.5}
.ds-err{font-size:11.5px;color:var(--warn);margin-top:8px}
.ch-dot{width:8px;height:8px;border-radius:50%;margin-left:auto;flex:none}
.ch-dot.ok{background:var(--ok)}
.ch-dot.err{background:var(--warn)}
.ch-dot.idle{background:var(--dim)}
.ch-dot.off{background:transparent;border:1.5px solid var(--stroke)}
.deals-filters{display:flex;gap:9px;margin-top:11px;align-items:stretch;flex-wrap:wrap}
.deals-filters .field{display:flex;align-items:center;gap:8px;background:var(--card2);
  border:1.5px solid var(--stroke);border-radius:12px;padding:0 11px}
.deals-filters .field svg{color:var(--dim);flex:none}
.deals-filters .field input{flex:1;border:0;outline:0;background:transparent;color:var(--text);
  font-size:13px;padding:11px 0;min-width:0}
.tag.new{background:color-mix(in srgb,#4aa3ff 15%,transparent);color:#7dbdff;
  border-color:transparent;letter-spacing:.4px}
.i-shop{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.new-pill{font-size:10px;font-weight:800;color:#fff;background:var(--ok);
  border-radius:999px;padding:2px 7px;margin-left:7px;vertical-align:1px}
.deals-hist{margin-top:9px}
.dh-row{display:flex;align-items:center;gap:9px;padding:7px 0;
  border-top:1px solid var(--stroke);font-size:12px}
.dh-row:first-child{border-top:0}
.dh-dot{width:20px;height:20px;border-radius:7px;color:#fff;font-size:9px;font-weight:800;
  display:grid;place-items:center;flex:none}
.dh-time{color:var(--muted);font-variant-numeric:tabular-nums;flex:none}
.dh-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dh-cnt{flex:none;color:var(--muted)}
.dh-new{color:var(--ok);font-weight:700}
.dh-err{color:var(--warn);font-weight:700}

.ds-btns{display:flex;gap:7px;flex:none;align-items:center}
.ds-btns .btn.sm{padding:11px}

/* ============ Наличие / ликвидация / мобильная адаптация ============ */
.tag.out{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn);
  border-color:transparent}
.tag.ok-tag{background:color-mix(in srgb,var(--ok) 13%,transparent);color:var(--ok);
  border-color:transparent}
.item.oos{opacity:.55;filter:saturate(.6)}
.ds-btns .btn.sm.ghost{border:1.5px solid var(--stroke)}
@media (max-width:480px){
  .item{padding:11px 10px}
  .i-name{font-size:13px;line-height:1.35}
  .i-right{min-width:86px}
  .i-price{font-size:15px}
  .i-disc{font-size:11px}
  .deal-status{padding:12px 12px}
  .ds-btns{flex-direction:column;gap:6px;align-items:stretch}
  .ds-btns .btn.sm{width:100%;text-align:center}
  .ds-row{flex-wrap:wrap}
  .chips .chip{padding:10px 11px}
  .store-head{padding:12px}
  .deals-filters .field input{font-size:16px}
  .deals-filters .select{font-size:16px}
  #tabbar{padding-bottom:env(safe-area-inset-bottom,0)}
  #topbar{padding-top:env(safe-area-inset-top,0)}
  .btn{min-height:44px}
  .chip{min-height:40px}
}

.deal-wow{padding:12px 14px;margin-bottom:11px}
.wow-row{display:flex;gap:8px}
.wow-stat{flex:1;text-align:center;background:var(--card2);border-radius:12px;
  padding:9px 4px}
.wow-stat b{display:block;font-size:19px;background:var(--accent-grad);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.wow-stat span{font-size:10px;color:var(--muted)}
.wow-top{margin-top:9px;font-size:11.5px;color:var(--muted);line-height:1.6}
.wow-top b{color:var(--text)}
.wow-item{display:inline-block;background:var(--card2);border-radius:8px;
  padding:3px 8px;margin:2px 4px 2px 0}

/* ============ Статус-карточка v2: таймеры, прогресс ============ */
.ds-live{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--info);
  margin-bottom:9px}
.ds-tiles{display:flex;gap:9px}
.ds-tile{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
  background:var(--card2);border:1.5px solid var(--stroke);border-radius:14px;
  padding:11px 8px;cursor:pointer;transition:.15s;color:var(--text);
  font:inherit;min-height:0}
.ds-tile:active{transform:scale(.97)}
.ds-tile.run{border-color:var(--info);background:color-mix(in srgb,var(--info) 10%,var(--card2))}
.ds-t-ico{font-size:17px;line-height:1}
.ds-t-name{font-size:11px;color:var(--muted);font-weight:700}
.ds-t-time{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;
  color:transparent}
.ds-tile.run .ds-t-time{background:none;color:var(--info);-webkit-text-fill-color:var(--info)}
.ds-t-sub{font-size:9.5px;color:var(--dim);text-align:center;line-height:1.3}
.ds-meta{font-size:11px;color:var(--muted);margin-top:9px;line-height:1.45}
.ds-progs{margin-top:9px;display:flex;flex-direction:column;gap:5px}
.ds-prog{display:flex;align-items:center;gap:8px}
.ds-pbar{flex:1;height:7px;border-radius:99px;background:var(--card2);overflow:hidden}
.ds-pbar i{display:block;height:100%;border-radius:99px;transition:width .4s}
.ds-pn{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums;
  min-width:34px;text-align:right}
/* вложенные магазины внутри сети */
.deal-shops{padding:4px 8px 8px}
.store.sub{margin:8px 0;background:var(--card2);border-radius:12px;border:0}
.store.sub .store-head{padding:9px 11px}
.store.sub .s-trow b{font-size:12.5px}
.store.sub .store-body{border-top:1px solid var(--stroke)}
/* лента сканов: кликабельные строки */
.dh-row.click{cursor:pointer}
.dh-row.click:active{background:var(--card2)}
.scanview-note{display:flex;align-items:center;gap:8px;background:
  color-mix(in srgb,var(--info) 12%,var(--card));border:1px solid var(--stroke);
  border-radius:12px;padding:10px 12px;font-size:12.5px;margin-bottom:11px}
.wow-stat.hot b{background:linear-gradient(135deg,#4aa3ff,#7dbdff);
  -webkit-background-clip:text;background-clip:text}
.wow-item{display:inline-flex;align-items:center;gap:6px;color:var(--text);
  text-decoration:none}
.wow-item i{width:18px;height:18px;border-radius:6px;color:#fff;font-size:8px;
  font-weight:800;display:grid;place-items:center;font-style:normal;flex:none}
.wow-item b{color:var(--ok);font-size:11px;white-space:nowrap}
@media (max-width:480px){
  .ds-tiles{flex-direction:row}
  .ds-t-time{font-size:14px}
}

/* ============ Инфо-блок карты + подсветка товара ============ */
.map-scan-info{margin-top:8px;font-size:11.5px;line-height:1.6;color:var(--muted)}
.si-chip{display:inline-flex;align-items:center;gap:5px;background:var(--card2);
  border-radius:8px;padding:3px 8px;margin:2px 4px 2px 0;color:var(--text)}
.si-chip i{width:16px;height:16px;border-radius:5px;display:grid;place-items:center;
  font-style:normal}
.si-chip b{font-variant-numeric:tabular-nums}
.si-total{display:block;margin-top:4px}
.item.flash{animation:flashItem 2.6s}
@keyframes flashItem{0%,60%{outline:2px solid var(--accent);outline-offset:-2px;
  background:color-mix(in srgb,var(--accent) 12%,var(--card))}100%{}}
.wow-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  max-width:150px}

/* ============ Карта: компактные пины + плашка изм.цены ============ */
.map-pin{width:22px;height:22px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);
  display:grid;place-items:center;box-shadow:0 0 0 2px #fff,0 3px 8px rgba(0,0,0,.45);
  border:1.5px solid rgba(255,255,255,.35)}
.map-pin span{transform:rotate(45deg);color:#fff;font-size:9px;font-weight:800}
.map-pin.dim{width:10px;height:10px;box-shadow:0 0 0 1.5px rgba(255,255,255,.55);
  opacity:.5;border:0}
.leaflet-control-attribution{display:none !important}
.tag.chg-up{background:color-mix(in srgb,var(--warn) 16%,transparent);
  color:#ff9d8a;border-color:transparent;font-variant-numeric:tabular-nums}
.tag.chg-down{background:color-mix(in srgb,var(--ok) 14%,transparent);color:#7ee2a8;
  border-color:transparent;font-variant-numeric:tabular-nums}

/* ============ История: статистика сканов скидок ============ */
.mh-stats{display:flex;gap:8px;padding:12px 12px 4px}
.mh-stats .wow-stat{flex:1}
.dh-chg{color:#7dbdff;font-weight:700}

/* ============ «Скидки» v2: капсула «Изм. цены», капсулы-счётчики ============ */
.chg-block{display:inline-flex;align-items:stretch;background:var(--card2);
  border:1.5px solid var(--stroke);border-radius:12px;overflow:hidden;min-height:40px}
.chg-half{display:grid;place-items:center;width:44px;padding:0;border:0;
  background:transparent;color:var(--muted);font:800 15px/1 inherit;cursor:pointer;
  transition:background .15s,color .15s,transform .1s}
.chg-half.up.on{background:color-mix(in srgb,#ff9d8a 18%,transparent);color:#ff9d8a}
.chg-half.down.on{background:color-mix(in srgb,#7ee2a8 16%,transparent);color:#7ee2a8}
.chg-half.up:active,.chg-half.down:active{transform:scale(.94)}
.chg-mid{display:grid;place-items:center;padding:0 10px;font-size:12.5px;
  font-weight:700;color:var(--muted);white-space:nowrap;
  border-left:1.5px solid var(--stroke);border-right:1.5px solid var(--stroke)}
.cnt-capsule{flex:none;display:inline-flex;align-items:center;border-radius:999px;
  overflow:hidden;border:1px solid var(--stroke);font-size:11.5px;font-weight:800;
  font-variant-numeric:tabular-nums;line-height:1}
.cnt-capsule i{font-style:normal;padding:5px 8px;display:inline-flex;
  align-items:center;gap:3px}
.cnt-capsule i + i{border-left:1px solid var(--stroke)}
.cnt-capsule .cc-old{background:var(--card2);color:var(--dim)}
.cnt-capsule .cc-new{background:color-mix(in srgb,#4aa3ff 18%,transparent);color:#7dbdff}
.cnt-capsule .cc-up{background:color-mix(in srgb,#ff9d8a 18%,transparent);color:#ff9d8a}
.cnt-capsule .cc-down{background:color-mix(in srgb,#7ee2a8 16%,transparent);color:#7ee2a8}
.item.unchanged .ph{filter:grayscale(.6) opacity(.9)}
.item.unchanged .i-name{color:var(--muted)}
@media (max-width:480px){
  .chg-half{width:48px}
  .cnt-capsule i{padding:5px 7px}
}

/* ============ «Скидки» v3: время/артикул/наличие, сортировка, разделитель ============ */
.tag.scan-time{color:var(--dim)}
.tag.art-chip{cursor:copy;border-style:dashed}
.tag.art-chip.copied{border-color:var(--ok);color:var(--ok)}
.tag.ok-tag.avail-hit{cursor:pointer;border-style:dashed;
  border-color:color-mix(in srgb,var(--ok) 45%,transparent)}
.avail-panel{border-top:1px dashed var(--stroke2);
  background:color-mix(in srgb,var(--card2) 55%,transparent);padding:8px 14px 10px}
.avail-head{display:flex;gap:8px;flex-wrap:wrap;align-items:center;
  font-size:11px;color:var(--muted);margin-bottom:5px}
.avail-row{display:flex;align-items:center;gap:8px;padding:4px 0;
  border-top:1px solid var(--stroke);font-size:12px}
.avail-row:first-of-type{border-top:0}
.avail-row .a-addr{flex:1;min-width:0;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.avail-row.own .a-addr{color:var(--ok);font-weight:600}
.a-st{flex:none;font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 6px}
.a-st.ok{background:color-mix(in srgb,var(--ok) 13%,transparent);color:var(--ok)}
.a-st.no{background:var(--card2);color:var(--dim)}
.a-st.err{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.cnt-capsule i[data-sort]{cursor:pointer}
.cnt-capsule i[data-sort].sort-on{box-shadow:inset 0 0 0 2px #7dbdff;border-radius:999px}
.deals-sep{display:flex;align-items:center;gap:8px;padding:7px 14px;font-size:10.5px;
  font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#7dbdff;
  background:color-mix(in srgb,#4aa3ff 8%,transparent);
  border-top:1px solid var(--stroke)}
.deals-sep::after{content:"";flex:1;height:1px;background:var(--stroke2)}
@media (max-width:480px){.avail-row{font-size:11.5px}}

/* ============ «Скидки» v4: сводка раунда, new-капсула, зум, палитры ============ */
/* F4: сводка раунда */
.msum-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:12px;color:var(--muted)}
.msum-head b{color:var(--text)}
.msum-head span{font-size:10.5px;color:var(--dim)}
.msum-row{display:flex;gap:8px;margin-top:10px}
.msum-cell{flex:1;text-align:center;background:var(--card2);border-radius:12px;padding:9px 4px}
.msum-cell b{display:block;font-size:19px;font-variant-numeric:tabular-nums}
.msum-cell b small{font-size:12px;color:var(--dim);font-weight:600}
.msum-cell span{font-size:10px;color:var(--muted);line-height:1.25;display:block;margin-top:2px}
.msum-cell.hot b{color:#7dbdff}
.msum-cell b.dn{color:#7ee2a8}
.msum-cell b.up{color:#ff9d8a}
.msum-top{margin-top:10px;font-size:11.5px;color:var(--muted);line-height:1.6;border-top:1px solid var(--stroke);padding-top:8px}
.msum-top b{color:var(--text)}
.msum-top .wow-item{display:flex;margin-top:6px}
.msum-top .wow-item b{margin-left:auto}
@media (max-width:480px){.msum-row{flex-wrap:wrap}.msum-cell{flex:1 1 40%}}
/* F6: капсула New */
.new-block{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;background:var(--card2);border:1.5px solid var(--stroke);border-radius:12px;color:var(--muted);font-weight:800;font-size:12.5px;cursor:pointer;transition:.15s;font-family:inherit}
.new-block.on{background:color-mix(in srgb,#4aa3ff 18%,transparent);border-color:color-mix(in srgb,#4aa3ff 50%,transparent);color:#7dbdff}
.new-block:active{transform:scale(.97)}
/* F2: время скана перед адресом */
.it-time{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);font-size:11px}
/* F3: зум фото */
.zoom-ov{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.72);display:grid;place-items:center;cursor:default;pointer-events:none}
.zoom-ov img{max-width:78vw;max-height:72vh;border-radius:14px;border:1px solid var(--stroke2)}
/* F7: плитки точки/города — брутальнее */
.ds-tile{border-width:2px;border-color:var(--stroke2);border-radius:10px;position:relative;overflow:hidden}
.ds-tile::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.ds-tile[data-kind="nearest"]::before{background:var(--info)}
.ds-tile:hover{transform:translateY(-1px)}
.ds-t-ico{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--card);color:var(--text);font-size:17px;line-height:1}
.ds-t-ico svg{display:block}
.ds-t-name{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:800}
.ds-t-time{font-family:var(--mono)}
.ds-tile.run{border-color:var(--info);background:color-mix(in srgb,var(--info) 12%,var(--card2))}
.ds-tile.run .ds-t-name::after{content:"";display:inline-block;width:6px;height:6px;border-radius:99px;background:var(--info);margin-left:6px;animation:dsPulse 1.2s infinite}
@keyframes dsPulse{0%,100%{opacity:1}50%{opacity:.25}}
/* F1: радиус-кнопки */
.rad-btns{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.rad-btn{height:36px;border-radius:10px;border:1.5px solid var(--stroke);background:var(--card2);color:var(--muted);font-weight:800;font-size:13px;cursor:pointer;font-family:inherit;transition:.15s;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.rad-btn:hover{border-color:var(--stroke2)}
.rad-btn.on{background:color-mix(in srgb,var(--info) 18%,transparent);border-color:color-mix(in srgb,var(--info) 55%,transparent);color:var(--info);box-shadow:0 0 0 3px color-mix(in srgb,var(--info) 12%,transparent)}
/* F8: палитры */
body[data-palette="ice"]{--bg:#0d1219;--bg2:#111826;--card:#141c2b;--card2:#1a2334;--stroke:rgba(140,170,255,.14);--stroke2:rgba(140,170,255,.28);--text:#e9eef8;--muted:#9aa7c0;--dim:#63708c;--accent:#3ea8ff;--accent2:#7cc4ff;--accent-grad:linear-gradient(135deg,#2f8fe0,#7cc4ff);--info:#7dbdff}
body[data-palette="ice"]{background:radial-gradient(900px 500px at 85% -10%,rgba(62,168,255,.14),transparent),radial-gradient(700px 400px at -10% 110%,rgba(124,196,255,.10),transparent),var(--bg)}
body[data-palette="emerald"]{--bg:#0e1512;--bg2:#121b17;--card:#151f19;--card2:#1b2821;--stroke:rgba(120,220,170,.14);--stroke2:rgba(120,220,170,.28);--text:#e9f3ec;--muted:#9bb3a6;--dim:#647a6d;--accent:#2fbd7a;--accent2:#7ce0a8;--accent-grad:linear-gradient(135deg,#1f9e63,#7ce0a8)}
body[data-palette="emerald"]{background:radial-gradient(900px 500px at 85% -10%,rgba(47,189,122,.13),transparent),radial-gradient(700px 400px at -10% 110%,rgba(124,224,168,.09),transparent),var(--bg)}
body[data-palette="amber"]{--bg:#151210;--bg2:#1c1713;--card:#201a15;--card2:#2a231b;--stroke:rgba(255,190,120,.14);--stroke2:rgba(255,190,120,.28);--text:#f6efe6;--muted:#c0ab94;--dim:#8a7860;--accent:#f0862c;--accent2:#ffc16e;--accent-grad:linear-gradient(135deg,#e07820,#ffc16e)}
body[data-palette="amber"]{background:radial-gradient(900px 500px at 85% -10%,rgba(240,134,44,.13),transparent),radial-gradient(700px 400px at -10% 110%,rgba(255,193,110,.09),transparent),var(--bg)}
.pal-grid{display:flex;gap:8px;flex-wrap:wrap}
.pal-btn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 10px;border-radius:10px;border:1.5px solid var(--stroke);background:var(--card2);cursor:pointer;font-family:inherit}
.pal-btn.on{border-color:var(--info)}
.pal-dots{display:flex;gap:3px}
.pal-dots i{width:14px;height:14px;border-radius:5px;display:block}
.pal-btn b{font-size:10.5px;color:var(--muted);font-weight:700}
.pal-btn.on b{color:var(--text)}
/* F10 (v5): стрелки ↑/↓ над нижним меню — «вылезают» из бара как одно целое */
.jump-nav{position:fixed;left:50%;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) - 1px);z-index:60;
  display:flex;gap:10px;transform:translate(-50%,108%);opacity:0;pointer-events:none;
  transition:transform .3s cubic-bezier(.22,.9,.36,1),opacity .25s ease}
.jump-nav.show{transform:translate(-50%,0);opacity:.6;pointer-events:auto}
.jump-nav button{width:46px;height:34px;display:grid;place-items:center;padding:0;cursor:pointer;
  border:1px solid var(--stroke);border-bottom:0;border-radius:11px 11px 0 0;
  background:color-mix(in srgb,var(--bg2) 88%,transparent);backdrop-filter:saturate(160%) blur(16px);
  color:var(--muted);font-family:inherit;transition:.15s}
.jump-nav button:hover{color:var(--text)}
.jump-nav button:active{transform:scale(.94)}
/* F13: прокрутка истории сканов */
.mh-scroll{max-height:380px;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--stroke)}
.mh-scroll::-webkit-scrollbar{width:8px}
.mh-scroll::-webkit-scrollbar-thumb{background:var(--stroke2);border-radius:4px}
.dh-dur{color:var(--dim)}
/* F15: ошибка геокода + F11: заголовок последних адресов */
.suggest-err{padding:10px 12px;font-size:12px;color:var(--muted)}
.suggest-title{padding:8px 12px 4px;font:800 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
/* F17: строка лимита квоты */
.ds-cooldown{font-size:11px;color:var(--muted);margin-top:7px}

/* ===== Пакет v2: сводка точки, топ скидок, шрифты/значки, история, slim-лента ===== */
/* №2: логотип в шапке */
.brand-logo img{width:100%;height:100%;object-fit:cover;border-radius:12px;display:block}
/* №10: сводка «в радиусе» в настройках */
.ps-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:12px 0 8px}
.ps-r{font-size:12px;color:var(--muted)} .ps-r b{color:var(--text)}
.ps-count b{color:var(--text);font-size:15px} .ps-count{font-size:12px;color:var(--muted)}
.ps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}
.ps-tile{display:flex;align-items:center;gap:8px;background:var(--card2);border:1px solid var(--stroke);border-radius:12px;padding:9px 10px}
.ps-dot{width:22px;height:22px;border-radius:7px;color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;flex:none}
.ps-name{flex:1;min-width:0;font-size:12px;color:var(--text);white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25;word-break:break-word}
.ps-n{font-size:14px;font-variant-numeric:tabular-nums}
.ps-t{font-size:10.5px;color:var(--info);font-variant-numeric:tabular-nums}
.ps-note{margin-top:8px;font-size:11px;color:var(--dim)}
/* №4: сводка магазинов (Скан/Арт/Фин) */
.sumv2-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.sumv2-head b{font-size:15px} .sumv2-r{font-size:11.5px;color:var(--dim)}
.sumv2-sub{font-size:11.5px;color:var(--muted);margin-top:3px}
.sumv2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:10px}
.sumv2-t{display:flex;align-items:center;gap:7px;background:var(--card2);border:1px solid var(--stroke);border-radius:11px;padding:7px 9px}
.sumv2-d{width:20px;height:20px;border-radius:6px;color:#fff;font-size:9.5px;font-weight:800;display:grid;place-items:center;flex:none}
.sumv2-n{flex:1;min-width:0;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sumv2-t b{font-size:13px;font-variant-numeric:tabular-nums}
.sumv2-note2{margin-top:9px;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:6px}
/* №4: slim-лента доставки (Арт) */
.dr-line{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;padding-right:12px}
.dr-chip{display:inline-flex;align-items:center;gap:6px;background:var(--card2);border:1px solid var(--stroke);border-radius:999px;padding:5px 10px;font-size:11.5px;color:var(--text);max-width:100%}
.dr-chip i{width:16px;height:16px;border-radius:5px;color:#fff;font-size:8.5px;font-weight:800;display:grid;place-items:center;flex:none}
.dr-chip.more{color:var(--dim)}
/* №8: «Топ скидок» */
.td-card .td-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.td-head b{font-size:13.5px} .td-head span{font-size:10.5px;color:var(--dim)}
.td-list{margin-top:4px;max-height:640px;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
.td-list::-webkit-scrollbar{width:8px}
.td-list::-webkit-scrollbar-thumb{background:var(--stroke2);border-radius:4px}
.td+.td{border-top:1px solid var(--stroke)}
.td-row{display:flex;align-items:center;gap:8px;padding:5px 0;cursor:pointer}
.td-ph{width:40px;height:40px;border-radius:9px;background:#fff;border:1px solid var(--stroke);overflow:hidden;flex:none;position:relative}
.td-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.td-main{flex:1;min-width:0}
.td-name{font-size:12px;color:var(--text);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.td-sub{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--dim);margin-top:2px}
.td-dot{width:15px;height:15px;border-radius:5px;color:#fff;font-size:8px;font-weight:800;display:grid;place-items:center}
.td-right{text-align:right;flex:none}
.td-disc{display:inline-block;font-weight:800;color:#7ee2a8;font-size:12px;font-variant-numeric:tabular-nums}
.td-price{display:block;font-weight:800;font-size:13px;font-variant-numeric:tabular-nums}
.td-locs{display:none;padding:2px 0 9px}
.td.open .td-locs{display:block}
.td-loc{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);padding:3px 0 3px 50px;border-top:1px dashed var(--stroke)}
.td-loc:first-child{border-top:0}
.td-loc-addr{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-loc b{color:var(--text);font-variant-numeric:tabular-nums;flex:none}
/* №12: шрифты интерфейса */
html[data-uifont="tech"] body{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace}
html[data-uifont="classic"] body{font-family:Georgia,"Times New Roman",serif}
html[data-uifont="soft"] body{font-family:"Trebuchet MS","Segoe UI",Verdana,sans-serif}
html[data-uifont="crisp"] body{font-family:Tahoma,Verdana,"Segoe UI",sans-serif}
.font-grid{display:flex;gap:8px;flex-wrap:wrap}
.font-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 12px;border-radius:11px;border:1.5px solid var(--stroke);background:var(--card2);cursor:pointer;font-family:inherit;color:var(--text)}
.font-btn .font-aa{font-size:17px;font-weight:700;line-height:1.1}
.font-btn b{font-size:10px;color:var(--muted);font-weight:600}
.font-btn.on{border-color:var(--info);background:color-mix(in srgb,var(--info) 12%,var(--card))}
.font-btn[data-f="tech"] .font-aa{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace}
.font-btn[data-f="classic"] .font-aa{font-family:Georgia,"Times New Roman",serif}
.font-btn[data-f="soft"] .font-aa{font-family:"Trebuchet MS","Segoe UI",Verdana,sans-serif}
.font-btn[data-f="crisp"] .font-aa{font-family:Tahoma,Verdana,"Segoe UI",sans-serif}
/* №12: значки магазинов */
.fmt-ico.vi-round{border-radius:50%!important}
.fmt-ico.vi-soft{border-radius:14px!important}
.fmt-ico.vi-outline{background:transparent!important;border:2px solid var(--stroke2);display:grid;place-items:center}
.fmt-ico.vi-emoji{background:transparent!important;line-height:1}
/* №14: история — адрес и результат */
.hist .h-sub{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist .h-sub.dim{font-size:10.5px;color:var(--dim)}

/* v2.1: компактнее карточка «Топа скидок» */
.td-card{padding-top:11px;padding-bottom:9px}

/* v2.2: фильтр-блоки магазинов в «Топе скидок» */
.td-filter{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.td-fbtn{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 4px;border-radius:999px;
  border:1.5px solid var(--stroke);background:var(--card2);color:var(--text);
  font:600 11px/1.2 inherit;cursor:pointer;transition:.15s}
.td-fbtn .fmt-ico{flex:none;border-radius:8px}
.td-fbtn b{font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--muted)}
.td-fbtn.on{border-color:var(--info);background:color-mix(in srgb,var(--info) 14%,var(--card))}
.td-fbtn.on b{color:var(--info)}
.td-fbtn.all{padding:3px 11px}
.td-empty{padding:10px 0 4px;color:var(--dim);font-size:12px}

/* v2.4: значки-флексы в строках/плитках + мелкие чипы */
.ps-tile .fmt-ico{flex:none}
.sumv2-t .fmt-ico{flex:none}
.td-sub .fmt-ico{flex:none}
.dh-row .fmt-ico{flex:none}
.dr-chip .fmt-ico{flex:none}

/* v2.5: разделители NEW/цена/без изменений внутри «Топа скидок» */
.td-list .deals-sep{margin:6px 0 2px;border-top:0;border-radius:4px}

/* v2.6: мгновенный отклик раскрытий на длинных списках */
.store-head:active{background:color-mix(in srgb,var(--card2) 85%,transparent)}
.deal-shops{contain:layout}

/* v2.9: раздел «Еда» (скидки Яндекс Еды) */
.eda-sum{display:flex;gap:8px;margin:12px 0 2px}
.eda-item{display:flex;gap:9px;align-items:center;padding:7px 12px;border-top:1px solid var(--stroke);content-visibility:auto;contain-intrinsic-size:auto 64px}
.eda-item:first-child{border-top:0}
.eda-item .ph{width:44px;height:44px;border-radius:10px;background:#fff;border:1px solid var(--stroke);overflow:hidden;flex:none;position:relative}
.eda-item .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.eda-main{flex:1;min-width:0}
.eda-name{font-size:12.5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--text)}
.eda-w{font-size:10.5px;color:var(--dim);margin-top:2px}
.eda-right{text-align:right;flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.eda-pct{font-weight:800;color:#7ee2a8;font-size:12px;font-variant-numeric:tabular-nums}
.eda-promo{font-weight:800;font-size:13.5px;font-variant-numeric:tabular-nums}
.eda-old{font-size:11px;color:var(--dim);text-decoration:line-through}
.eda-new{font-size:9px;font-weight:800;letter-spacing:.4px;color:#7dbdff;background:color-mix(in srgb,#4aa3ff 15%,transparent);border-radius:999px;padding:1px 6px}

/* ---- eda_v3_css ---- */
/* Еда v3: компактные строки магазинов без скидок не кликабельны */
.store.sub .store-head{cursor:default}
.store.sub .store-head:active{background:transparent}

/* ---- eda_v31_css ---- */
/* Еда v3.1: метка раздела-источника у товара */
.eda-cat{display:inline-block;margin-left:6px;padding:0 6px;border-radius:7px;background:rgba(148,163,184,.14);color:var(--muted,#8b98a5);font-size:11px;line-height:16px;vertical-align:1px;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}
/* ---- eda_v4_css ---- */
/* Еда v4: список магазинов в настройках */
.eb-actions{display:flex;gap:8px;margin:10px 0 6px}
.ebg{border-top:1px solid var(--stroke2)}
.ebg:first-child{border-top:0}
.ebg summary{display:flex;gap:8px;align-items:center;cursor:pointer;padding:9px 2px;font-size:13px;list-style:none}
.ebg summary::-webkit-details-marker{display:none}
.ebg summary:before{content:'▸';color:var(--muted);font-size:11px;transition:transform .15s}
.ebg[open] summary:before{transform:rotate(90deg)}
.ebg-n{color:var(--muted);font-size:11px;margin-left:auto;font-family:var(--mono)}
.ebg-list{padding:2px 0 8px 4px}
.ebg-row{display:flex;gap:8px;align-items:center;padding:5px 2px;font-size:13.5px}
.ebg-row input{accent-color:var(--accent);width:16px;height:16px}
/* фото: удержание вместо клика */
.ph,.td-ph{cursor:zoom-in}
.ph img,.td-ph img{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;touch-action:manipulation}
/* Топ скидок: артикул и цена в списке магазинов */
.td-art{font-size:10px;color:var(--dim);font-family:var(--mono)}
.td-loc-price{color:var(--muted);font-weight:600}
/* непроверенный магазин в «Еде» */
.store.skipped{opacity:.55}
/* ---- v5_css ---- */
/* сворачивание групп под «шапками» NEW / изменилась цена / без изменений */
.deals-sep{cursor:pointer;user-select:none}
.deals-sep:before{content:'▾';font-size:9px;color:var(--dim);display:inline-block;transition:transform .15s}
.deals-sep.collapsed:before{transform:rotate(-90deg)}
.sep-hidden{display:none!important}
/* «Еда»: название товара — ссылка на Яндекс Еду */
.eda-link{color:inherit;text-decoration:none}
.eda-link:hover{color:var(--text);text-decoration:underline dotted}
.eda-link:active{opacity:.7}
/* ---- v51_css: кнопки «все/ничего» внутри категорий магазинов «Еды» ---- */
.ebg-btn{font:600 10.5px/1 var(--sans);color:var(--muted);background:var(--card2);border:1px solid var(--stroke);
  border-radius:999px;padding:4px 8px;cursor:pointer;margin-left:6px}
.ebg-btn:hover{color:var(--text)}
.ebg-btn:active{transform:scale(.94)}
/* ---- v52_css: процентное заполнение кнопки «Обновить» в «Еде» ---- */
.btn.btn-prog{position:relative;overflow:hidden;background:rgba(244,66,60,.16);box-shadow:none}
.btn.btn-prog:disabled{opacity:1;cursor:progress}
.btn.btn-prog .bp-fill{position:absolute;left:0;top:0;bottom:0;width:0;overflow:hidden;
  background:var(--accent-grad);transition:width .35s ease}
.btn.btn-prog .bp-fill::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.30),transparent);
  animation:bpsheen 1.5s linear infinite}
@keyframes bpsheen{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.btn.btn-prog .bp-txt{position:relative;z-index:1;font-variant-numeric:tabular-nums}
/* ---- v6_css: «Топ» (точки-метки, ссылка по названию) ---- */
.td-mdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px;flex:none}
.td-mdot.new{background:#3ac569}
.td-mdot.chg{background:#f5a623}
.td-legend{display:inline-flex;align-items:center;gap:3px;margin-left:7px;color:var(--dim);font-size:10.5px;white-space:nowrap}
.td-legend .td-mdot{margin-right:2px}
.i-link{color:inherit;text-decoration:none}
.i-link:hover{text-decoration:underline dotted}
.i-link:active{opacity:.7}
.td-link{color:inherit;text-decoration:none}
.td-link:hover{text-decoration:underline dotted}
.td-link:active{opacity:.7}

/* ---- v7_css: «Топ» и «Еда» — размеры и стиль карточек как в «Магазинах» ---- */
/* Топ: строка товара — по метрикам .item («Магазины») */
.td-row{gap:11px;padding:11px 0}
.td-ph{width:58px;height:58px;border-radius:12px}
.td-ph.noimg{background:var(--card2)}
.td-name{font-size:13px;font-weight:600;line-height:1.3}
.td-sub{font-size:10.5px}
.td-disc{display:inline-block;background:var(--accent-grad);color:#fff;font-size:11px;font-weight:800;
  border-radius:8px;padding:2.5px 6px;margin-bottom:3px}
.td-price{font-size:15.5px}
.td-loc{padding-left:69px}
/* Еда: пилюля счётчика — под размер капсулы сети в «Магазинах» */
.found-pill{font-size:11.5px;padding:5px 8px;line-height:1}

/* ---- v8_css: «Еда» — товарная строка по метрикам карточки .item («Магазины») ---- */
.eda-item{gap:11px;padding:11px 10px;contain-intrinsic-size:auto 80px}
.eda-item .ph{width:58px;height:58px;border-radius:12px}
.eda-item .ph.noimg{background:var(--card2)}
.eda-name{font-size:13px;font-weight:600;line-height:1.3}
.eda-w{font-size:11px}
.eda-promo{font-size:15.5px}
.eda-right{gap:3px}
.eda-pct{display:inline-block;background:var(--accent-grad);color:#fff;font-size:11px;font-weight:800;
  border-radius:8px;padding:2.5px 6px}

/* ---- v9_css: «Топ» — сплошной список без внутренней прокрутки ---- */
.td-list{max-height:none;overflow:visible;padding-right:0}
.td-more{padding:12px 0 2px}

/* ---- v10_css: тройной блок «Еды» — под заголовком раздела ---- */
#view>.eda-sum{margin:12px 0 10px}

/* ---- v13_css: «Еда» — «итоги+Обновить» в связке, чипы магазинов со стрелкой ---- */
#edaSumBox .eda-sum{margin:0 0 12px}
.eda-chips-row{display:flex;align-items:center;gap:6px;margin-top:10px}
.eda-chips-list{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0;align-items:center}
.eda-chips-list .td-fbtn{flex:none}
.eda-chips-row:not(.open) .eda-chips-list{flex-wrap:nowrap;overflow:hidden}
.eda-chips-more{flex:none;width:36px;align-self:stretch;min-height:32px;border:1.5px solid var(--stroke);
  border-radius:12px;background:var(--card2);color:var(--muted);font-size:15px;font-weight:800;cursor:pointer;padding:0}
.eda-chips-more:active{transform:scale(.95)}
.eda-chips-more[hidden]{display:none!important}
/* ---- v15_css: «Еда» — тройной блок поровну (1/3); свёртка «без скидок сейчас» ---- */
#edaSumBox .eda-sum{display:flex;gap:8px}
#edaSumBox .eda-sum .msum-cell{flex:1 1 0;min-width:0}

/* ================= v70: правки по фидбеку ================= */

/* базовое правило значка магазина (раньше жило только в контекстах) */
.fmt-ico{display:grid;place-items:center;font-weight:800;color:#fff;line-height:1;flex:none}

/* --- шапка: вторая строка с глобальным поиском --- */
#topbar{flex-direction:column;align-items:stretch;gap:8px;padding-bottom:9px}
#topbar .tb-row{display:flex;align-items:center;gap:10px;min-width:0}
.hdr-search-row{position:relative}
.hdr-search{display:flex;align-items:center;gap:7px;flex:1;min-width:0;
  background:var(--card);border:1px solid var(--stroke2);border-radius:999px;padding:6px 12px}
.hdr-search svg{color:var(--dim);flex:none}
.hdr-search input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--text);
  font:500 13px/1.3 inherit}
.hdr-search input::placeholder{color:var(--dim)}
.hdr-search #hdrSearchClear{flex:none;width:20px;height:20px;border-radius:50%;border:0;
  background:var(--card2);color:var(--muted);font-size:10px;cursor:pointer;line-height:1}
.hdr-search #hdrSearchClear:hover{color:var(--text)}
#hdrSearchDrop{display:none;position:absolute;z-index:600;left:0;right:0;top:calc(100% + 6px);
  background:var(--card);border:1px solid var(--stroke2);border-radius:14px;
  box-shadow:var(--shadow);overflow:hidden;max-height:56vh;overflow-y:auto}
#hdrSearchDrop.show{display:block}
.gs-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;
  border:0;border-top:1px solid var(--stroke);color:var(--text);padding:8px 12px;cursor:pointer;font:inherit}
.gs-row:first-child{border-top:0}
.gs-row:hover{background:var(--card2)}
.gs-row .gs-name{flex:1;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-row .gs-meta{flex:none;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.gs-foot{padding:7px 12px;border-top:1px solid var(--stroke);font-size:10.5px;color:var(--dim)}
.gs-empty{padding:11px 12px;font-size:12px;color:var(--dim)}

/* --- прогресс поиска наличия: тонкая полоса в панели --- */
.avail-panel{position:relative}
.avail-panel .avail-bar{height:4px;border-radius:999px;background:var(--card2);
  overflow:hidden;margin:2px 14px 8px}
.avail-panel .avail-bar i{display:block;height:100%;width:0;border-radius:inherit;
  background:var(--accent-grad);transition:width .7s ease}
.avail-panel .avail-prog{font-variant-numeric:tabular-nums;color:var(--muted)}

/* --- настройка: блоки по разделам --- */
.set-block{padding-top:13px}
.set-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.set-ico{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;
  font-size:17px;background:var(--card2);border:1px solid var(--stroke);flex:none}
.set-tt{min-width:0}
.set-tt b{display:block;font-size:13.5px;line-height:1.2}
.set-tt span{display:block;font-size:10.5px;color:var(--dim);margin-top:2px}
.set-subsec{margin-top:14px;padding-top:12px;border-top:1px dashed var(--stroke2)}
.set-subsec .sub-t{display:block;font-size:10.5px;font-weight:800;color:var(--muted);
  text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}

/* --- модальное подтверждение «Да | Нет» --- */
.confirm-ov{position:fixed;inset:0;z-index:900;background:rgba(8,9,14,.62);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:22px}
.confirm-card{width:100%;max-width:330px;background:var(--card);border:1px solid var(--stroke2);
  border-radius:16px;padding:16px;box-shadow:var(--shadow)}
.confirm-txt{font-size:13.5px;line-height:1.45;color:var(--text)}
.confirm-btns{display:flex;gap:9px;margin-top:13px}

/* --- кнопка скана конкретного магазина (ненавязчивая) --- */
.shop-scan-btn{flex:none;width:26px;height:26px;border-radius:8px;border:1px solid var(--stroke);
  background:var(--card2);color:var(--muted);display:grid;place-items:center;cursor:pointer;
  opacity:.55;transition:.15s;padding:0}
.shop-scan-btn:hover{opacity:1;color:var(--info);border-color:color-mix(in srgb,var(--info) 45%,transparent)}
.shop-scan-btn:active{transform:scale(.92)}
.shop-scan-btn.busy{opacity:1;pointer-events:none;color:var(--info)}
.shop-scan-btn.busy svg{animation:ssbspin .9s linear infinite}
@keyframes ssbspin{to{transform:rotate(360deg)}}

/* --- прогресс ручного скана адреса: тонкая полоса внизу карточки --- */
.store.sub{position:relative}
.store.sub > .ssb{position:absolute;left:0;right:0;bottom:0;height:4px;z-index:2;overflow:hidden;
  background:color-mix(in srgb,var(--card2) 85%,transparent)}
.store.sub > .ssb i{display:block;height:100%;width:0;border-radius:inherit;
  background:var(--accent-grad);transition:width .8s ease;box-shadow:0 0 8px rgba(244,66,60,.45)}
.store.sub > .ssb.done i{background:linear-gradient(135deg,#35c788,#7ee2a8);box-shadow:0 0 8px rgba(53,199,136,.45)}

/* --- «Топ»: подсветка раскрытой строки и сводка магазинов --- */
.td.open{background:color-mix(in srgb,var(--card2) 72%,transparent);
  box-shadow:inset 3px 0 0 var(--accent)}
.td.flash{animation:flashItem 2.6s}
.td.open .td-row{padding-left:8px;padding-right:8px}
.td-locs-head{padding:5px 0 5px 50px;font-size:10.5px;color:var(--dim);border-top:1px dashed var(--stroke)}
.td-loc{align-items:center;cursor:pointer}
.td-loc:hover{background:color-mix(in srgb,var(--card2) 60%,transparent)}
.td-loc-shop{flex:none;display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);max-width:34%}
.td-loc-shop .fmt-ico{flex:none}
.td-loc.best .td-loc-price{color:var(--ok)}
.td-loc-flag{flex:none;font-size:9px;font-weight:800;letter-spacing:.3px;border-radius:999px;padding:2px 7px;
  background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
.td-loc.best{background:color-mix(in srgb,var(--ok) 7%,transparent);border-radius:8px}
@media (max-width:480px){
  .td-locs-head{padding-left:46px}
  .td-loc-shop{max-width:40%}
  .td-loc-flag{display:none}
}

/* --- варианты значков магазинов (кроме плиток и контурных) --- */
.fmt-ico.vi-hex{border-radius:0!important;
  clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%)}
.fmt-ico.vi-diamond{border-radius:0!important;
  clip-path:polygon(50% 2%,98% 50%,50% 98%,2% 50%)}
.fmt-ico.vi-neon{border-radius:10px!important}
.fmt-ico.vi-glass{border-radius:10px!important;border:1px solid;backdrop-filter:blur(6px)}
.fmt-ico.vi-dark{border-radius:10px!important}

/* --- «Последние адреса»: строка + кнопка удаления --- */
.sg-row{display:flex;align-items:center;gap:6px;padding-right:8px}
.sg-row:hover{background:var(--card2)}
.sg-row button[data-recent]{flex:1;min-width:0}
.sg-del{flex:none;width:22px;height:22px;border-radius:50%;border:0;background:none;
  color:var(--dim);font-size:11px;cursor:pointer;line-height:1}
.sg-del:hover{color:#ff8b7d;background:color-mix(in srgb,#e0392f 12%,transparent)}

/* --- лента/история: стрелки изменений цены --- */
.dh-chg.up{color:#ff9d8a}
.dh-chg.down{color:#7ee2a8}

/* Топ: кнопка «⇅ по скидке» в шапке блока */
.td-head .td-fbtn{flex:none;margin-left:8px;align-self:center}
.td-head{flex-wrap:wrap}
