
  :root{
    --bg:#1E2433;--bg2:#171b26;--card-solid:#232a3a;--card2-solid:#2b3346;--card:rgba(255,255,255,.065);--card2:rgba(255,255,255,.095);--ink:#F2F4F7;--muted:#B0BBCA;
    /* Заливка скелетонов. Отдельный токен, потому что --card2 на светлой теме
       (#EEF2F8) отличается от фона (#EDF1F7) на один пункт: каркас загрузки на
       нём буквально не видно, и экран снова читается как пустой. */
    --skel:#2b3346;--skelsw:rgba(255,255,255,.13);
    --limeink:#D8FF34;
    --line:#333c4f;--blue:#A6E635;--blue2:#D8FF34;--cyan:#D8FF34;--violet:#A6E635;--gold:#D8FF34;
    /* Поверхности экрана оплаты. Отдельные токены, потому что их читает не
       только наш CSS, но и appearance платёжной формы: подложка внутри её
       рамки должна совпасть с нашей, иначе форма ложится на экран чужой
       плитой. Общий --card тут не годится — он на тон светлее и синее, а
       экран оплаты глубже остального приложения. */
    --payBg:#0D1117;--payCard:#161B22;--payLine:#2A313C;--payAcc:#D8FF34;
    /* Цвет ещё не пройденного шага: кружок и отрезок линии до него. Один на все
       экраны с шагами — кассу (корзина → доставка → оплата), выбор способа
       доставки и ожидание оплаты: состояние «впереди» должно выглядеть везде
       одинаково. Объявлен один раз — var(--muted) подставляется в месте применения,
       поэтому в светлой теме он сам становится светлым. Доля подобрана по
       контрасту с зелёной подложкой панели шагов: 75% даёт 3.0 при норме 3.0
       для элементов интерфейса, в тёмной теме — с запасом. */
    --stepWait:color-mix(in srgb, var(--muted) 75%, transparent);
    /* Акцент с прозрачностью. Раньше писали var(--blue-a2) — это не работает:
       подстановка var() token-level, и браузер читает «#A6E635 55», то есть
       мусор, и выбрасывает объявление целиком. Проверено в браузере: рамка
       пропадала совсем, а var(--blue-a3) разбиралось как ДВА цвета — лайм и
       #000077, — и элемент получал разные цвета сторон. Держим три ступени. */
    --blue-a1:#A6E63526;--blue-a2:#A6E6354d;--blue-a3:#A6E63578;
    /* Safe area: env() = 0 внутри Telegram-fullscreen, поэтому берём максимум с нативными
       переменными Telegram (--tg-content-safe-area-inset-*), чтобы шапка не заезжала под чёлку. */
    --ok:#00C853;--err:#F04438;--warn:#F5A524;--rad:22px;--lime:#D8FF34;
    /* Блок Droply+ живёт по теме приложения: своя палитра, а не жёстко чёрный.
       Тёмная тема — «комната» почти чёрная, лайм светится. */
    --dpbBg:radial-gradient(120% 90% at 50% -10%,#1B2410 0%,#0E1206 45%,#080A05 100%);
    --dpbInk:#F4F7EE;--dpbInk2:rgba(244,247,238,.62);--dpbInk3:rgba(244,247,238,.5);
    --dpbLine:rgba(255,255,255,.10);--dpbLine2:rgba(255,255,255,.08);
    --dpbEdge:rgba(216,255,52,.22);--dpbAcc:#D8FF34;--dpbAccInk:#141a05;--dpbAccInkSoft:rgba(20,26,5,.16);--dpbFill:rgba(216,255,52,.14);
    --dpbTile:rgba(255,255,255,.05);--dpbTileLine:rgba(255,255,255,.09);
    --dpbShadow:0 1px 0 0 rgba(216,255,52,.20) inset,0 26px 64px -32px rgba(90,150,0,.75);
    --dpbGlow:drop-shadow(0 0 10px rgba(216,255,52,.85)) drop-shadow(0 0 34px rgba(216,255,52,.45));
    --sat:max(env(safe-area-inset-top),var(--tg-content-safe-area-inset-top,0px));
    --sab:max(env(safe-area-inset-bottom),var(--tg-content-safe-area-inset-bottom,0px));
    /* Верх любого слоя, у которого своя шапка. В обычном режиме это просто
       безопасная зона устройства. В полноэкранном режиме контролы Telegram
       («Закрыть», «•••») висят ПОВЕРХ страницы, и под ними должен быть проход —
       иначе заголовок экрана оказывается под ними и читается наполовину.
       Правило было заведено для главной шапки и жило только в ней; теперь это
       один токен на все слои, у которых есть верхняя строка. */
    --tgtop:var(--sat);
  }
  /* ☀️ светлая тема (основная) — бренд Droply+ */
  :root[data-theme="light"]{
    --bg:#EDF1F7;--bg2:#e6ebf2;--card-solid:#ffffff;--card2-solid:#EEF2F8;--card:rgba(255,255,255,.62);--card2:rgba(118,128,150,.10);--ink:#1E2433;--muted:#4F5866;
    --skel:#DCE3EE;--skelsw:rgba(255,255,255,.75);
    --line:#E1E7F0;--blue:#5FA300;--blue2:#3D6B00;--cyan:#D8FF34;--violet:#5FA300;--gold:#4C8700;
    --blue-a1:#5FA30026;--blue-a2:#5FA3004d;--blue-a3:#5FA30078;
    --ok:#0E7A35;--err:#E03B31;--warn:#C77700;--lime:#D8FF34;--limeink:#3F7000;
    /* Те же поверхности для светлой темы: белые карточки на светло-сером.
       Акцент взят пипеткой из макета владельца — #2FA270. Лаймом его тут не
       сделать: у #D8FF34 на белом контраст 1.15 при норме 3.0 для рамок и
       переключателей, выбранную строку было бы не отличить. В тёмной теме
       такого ограничения нет, там лайм как есть — и так в тёмном макете. */
    --payBg:#EDF1F7;--payCard:#ffffff;--payLine:#E1E7F0;--payAcc:#2FA270;
    /* Светлая тема — та же «комната», но из белого и бледного лайма. Лайм на белом
       не читается как текст, поэтому акцент здесь тёмно-зелёный, а заливки остаются
       фирменными. */
    --dpbBg:radial-gradient(120% 90% at 50% -10%,#F7FFE4 0%,#FFFFFF 46%,#F4F8FF 100%);
    --dpbInk:#1E2433;--dpbInk2:rgba(30,36,51,.66);--dpbInk3:rgba(30,36,51,.55);
    --dpbLine:#E7EDF5;--dpbLine2:#EDF1F7;
    --dpbEdge:rgba(150,210,0,.35);--dpbAcc:#3D6E00;--dpbAccInk:#F4F7EE;--dpbAccInkSoft:rgba(244,247,238,.18);--dpbFill:rgba(216,255,52,.35);
    --dpbTile:#F7FAFF;--dpbTileLine:#E7EDF5;
    --dpbShadow:0 1px 0 0 rgba(255,255,255,.9) inset,0 22px 54px -30px rgba(120,180,0,.45);
    --dpbGlow:drop-shadow(0 3px 8px rgba(150,210,0,.45));
  }
  :root[data-theme="light"] body{background:linear-gradient(180deg,#ffffff 0%,#eef2f8 45%,#e6ecf6 100%);background-attachment:fixed}
  :root[data-theme="light"] .bgfx{background:radial-gradient(1200px 600px at 50% -10%,rgba(160,220,40,.12),transparent 60%),radial-gradient(900px 500px at 100% 12%,rgba(120,180,255,.10),transparent 55%),transparent}
  :root[data-theme="light"] .top{background:transparent;border-bottom:0}
  :root[data-theme="light"] .tabbar{background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(244,247,252,.68));backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));border:1px solid rgba(255,255,255,.85);box-shadow:0 20px 46px -14px rgba(20,40,80,.28), inset 0 1px 0 rgba(255,255,255,.9)}
  :root[data-theme="light"] .tabbar::before{background:linear-gradient(180deg,rgba(255,255,255,.6),transparent)}
  :root[data-theme="light"] .tabbar button{color:#6a7a92}
  :root[data-theme="light"] .tabbar button.on{color:#1E2433}
  :root[data-theme="light"] .logo{color:#171a2b}
  :root[data-theme="light"] .sheet{background:#ffffff}
  :root[data-theme="light"] .p__oos,:root[data-theme="light"] .toast{color:#fff}
  :root[data-theme="light"] .toast{background:#0e1a2c;color:#fff}
  :root[data-theme="light"] .consent{background:#ffffffee}
  /* 🚀 сплэш «скоро откроемся» */
  .splash{position:fixed;inset:0;z-index:60;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 22px calc(28px + var(--sab));background:radial-gradient(1000px 600px at 50% 0%,rgba(216,255,52,.14),transparent 62%),radial-gradient(800px 500px at 100% 100%,rgba(120,180,255,.10),transparent 58%),var(--bg);overflow-y:auto}
  /* ✨ Первый вход. Было две анкеты подряд: «Выбери язык» с флагами (выглядело
     как выбор страны) и «Выбери тему». Язык Telegram уже сообщает, тему тоже —
     спрашивать нечего. Остался один экран-знакомство: живое сияние, знак, одна
     строка о том, что это, и кнопка. Язык можно поправить тут же, не уходя. */
  .wlc{position:fixed;inset:0;z-index:400;display:flex;flex-direction:column;align-items:center;justify-content:space-between;
    padding:calc(30px + var(--sat)) 22px calc(22px + var(--sab));color:#fff;background:#04060c;overflow:hidden;isolation:isolate;
    animation:wlcIn var(--d-3) var(--e-out) both}
  .wlc.out{animation:wlcOut .48s var(--e-out) forwards;pointer-events:none}
  @keyframes wlcIn{from{opacity:0}to{opacity:1}}
  @keyframes wlcOut{to{opacity:0;transform:scale(1.06)}}
  /* Сияние — четыре мягких пятна, которые медленно плывут и смешиваются светом.
     Розового пятна больше нет — он выбивался из цветов приложения; на его месте
     лаймово-зелёное, остальные пятна прежние. */
  .aur{position:absolute;inset:-25%;z-index:-2;filter:blur(56px) saturate(1.35)}
  .aur i{position:absolute;border-radius:999px;mix-blend-mode:screen;will-change:transform}
  .aur i:nth-child(1){width:78vmax;height:78vmax;left:-8%;top:-14%;background:radial-gradient(circle,#D8FF34 0,rgba(216,255,52,.35) 30%,transparent 64%);animation:wlcA 15s ease-in-out infinite alternate}
  .aur i:nth-child(2){width:70vmax;height:70vmax;right:-14%;top:4%;background:radial-gradient(circle,#19E3C1 0,rgba(25,227,193,.3) 32%,transparent 64%);animation:wlcB 18s ease-in-out infinite alternate}
  .aur i:nth-child(3){width:84vmax;height:84vmax;left:-20%;bottom:-22%;background:radial-gradient(circle,#7A5CFF 0,rgba(122,92,255,.35) 34%,transparent 66%);animation:wlcC 21s ease-in-out infinite alternate}
  .aur i:nth-child(4){width:52vmax;height:52vmax;right:-6%;bottom:-6%;background:radial-gradient(circle,#B6FF5C 0,rgba(182,255,92,.26) 30%,transparent 62%);animation:wlcD 24s ease-in-out infinite alternate}
  .aur::after{content:'';position:absolute;inset:10%;border-radius:999px;background:conic-gradient(from 0deg,rgba(216,255,52,.22),rgba(25,227,193,.18),rgba(122,92,255,.22),rgba(216,255,52,.22));animation:wlcSpin 28s linear infinite;opacity:.55}
  @keyframes wlcA{to{transform:translate(18vw,22vh) scale(1.18)}}
  @keyframes wlcB{to{transform:translate(-22vw,26vh) scale(.86)}}
  @keyframes wlcC{to{transform:translate(20vw,-24vh) scale(1.12)}}
  @keyframes wlcD{to{transform:translate(-26vw,-30vh) scale(1.25)}}
  @keyframes wlcSpin{to{transform:rotate(1turn)}}
  /* Затемнение снизу: подпись и кнопка читаются на любом кадре сияния. */
  .wlc::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(130% 70% at 50% 112%,rgba(4,6,12,.84) 18%,transparent 62%),radial-gradient(90% 50% at 50% -10%,rgba(4,6,12,.35),transparent 70%)}
  .wlc__mid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;max-width:360px}
  .bglass{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(255,255,255,.06),0 18px 44px -18px rgba(0,0,0,.6)}
  .blogo{position:relative;width:104px;height:104px;border-radius:30px;display:grid;place-items:center;overflow:hidden;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 0 0 1px rgba(255,255,255,.05),0 24px 70px -12px rgba(216,255,52,.55);animation:wlcFloat 6s ease-in-out infinite}
  .blogo svg{width:58px;height:58px;filter:drop-shadow(0 4px 14px rgba(216,255,52,.55))}
  /* Блик пробегает по стеклу, как по настоящему. */
  .blogo::after{content:'';position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.55) 50%,transparent 60%);transform:translateX(-70%);animation:wlcSweep 4.2s var(--e-out) 1s infinite}
  @keyframes wlcFloat{50%{transform:translateY(-8px)}}
  @keyframes wlcSweep{0%{transform:translateX(-70%)}45%,100%{transform:translateX(70%)}}
  .bname{margin-top:24px;font-size:56px;font-weight:900;letter-spacing:-2px;line-height:1;
    background:linear-gradient(100deg,#fff 0%,#D8FF34 20%,#7DFFE0 45%,#C7B6FF 70%,#fff 100%);background-size:300% 100%;
    -webkit-background-clip:text;background-clip:text;color:transparent;animation:wlcShine 7s linear infinite}
  @keyframes wlcShine{to{background-position:-300% 0}}
  .wlc__tag{margin-top:12px;font-size:17px;font-weight:600;line-height:1.35;color:rgba(255,255,255,.86);letter-spacing:-.2px}
  .wlc__pills{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:26px}
  .wlc__pill{display:inline-flex;align-items:center;gap:7px;padding:9px 14px 9px 11px;border-radius:999px;font-size:13px;font-weight:700;color:#fff}
  .wlc__pill .eic{width:16px;height:16px;color:#D8FF34}
  .wlc__foot{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:14px}
  .wlc__lang{display:flex;padding:4px;border-radius:999px;gap:2px}
  .wlc__lang button{border:0;background:transparent;color:rgba(255,255,255,.72);font:inherit;font-size:13px;font-weight:700;padding:9px 14px;border-radius:999px;cursor:pointer;
    transition:background-color var(--d-2) var(--e-out),color var(--d-2) var(--e-out)}
  .wlc__lang button.on{background:rgba(255,255,255,.92);color:#0b0f19}
  .wlc__go{position:relative;overflow:hidden;width:100%;min-height:56px;border:0;border-radius:999px;font:inherit;font-size:17px;font-weight:900;letter-spacing:-.2px;cursor:pointer;
    color:#0b0f19;background:linear-gradient(100deg,#D8FF34,#B6FF5C 45%,#7DFFE0);box-shadow:0 18px 40px -14px rgba(216,255,52,.7),inset 0 1px 0 rgba(255,255,255,.6);
    transition:transform var(--d-1) var(--e-out)}
  .wlc__go::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.65) 50%,transparent 70%);transform:translateX(-120%);animation:wlcCta 3.2s var(--e-out) 1.6s infinite}
  @keyframes wlcCta{0%{transform:translateX(-120%)}40%,100%{transform:translateX(120%)}}
  .wlc__go:active{transform:scale(.97)}
  /* Два шага в одной ленте: страница — во всю ширину, лента едет целиком. */
  .wlc__vp{flex:1;width:100%;max-width:420px;overflow:hidden;display:flex}
  .wlc__track{display:flex;width:100%;transition:transform var(--d-3) var(--e-out)}
  /* Невысокий экран: шаг прокручивается, а не обрезается сверху (safe center). */
  .wlc__pg{flex:0 0 100%;display:flex;justify-content:center;padding:0 2px;overflow-y:auto;scrollbar-width:none}
  .wlc__pg::-webkit-scrollbar{display:none}
  .wlc__pg>.wlc__mid{justify-content:safe center;padding:8px 0}
  .wlc__h{font-size:28px;font-weight:900;letter-spacing:-.6px;line-height:1.1;text-align:center;margin:0 0 16px}
  .wlc__back{position:absolute;top:calc(18px + var(--sat));left:16px;width:44px;height:44px;border-radius:999px;display:grid;place-items:center;color:#fff;z-index:2;cursor:pointer}
  .wlc__back .eic{width:20px;height:20px}
  .wlc__dots{display:flex;gap:6px;justify-content:center}
  .wlc__dots i{width:6px;height:6px;border-radius:999px;background:rgba(255,255,255,.32);transition:width var(--d-2) var(--e-out),background-color var(--d-2) var(--e-out)}
  .wlc__dots i.on{width:22px;background:#D8FF34}
  /* Знак в ореоле: под стеклом — лаймовое свечение, вокруг расходятся два
     тонких кольца, как круги по воде. Весь узел мягко парит. */
  .wlc__halo{position:relative;width:104px;height:104px;display:grid;place-items:center;animation:wlcFloat 6s ease-in-out infinite}
  .wlc__halo::before{content:'';position:absolute;inset:-46px;border-radius:999px;background:radial-gradient(circle,rgba(216,255,52,.55) 0,rgba(125,255,224,.2) 38%,transparent 68%);animation:wlcGlow 4.8s ease-in-out infinite}
  .wlc__halo i{position:absolute;inset:-6px;border-radius:999px;border:1.5px solid rgba(216,255,52,.5);opacity:0;animation:wlcRing 3.6s var(--e-out) 1.2s infinite}
  .wlc__halo i+i{animation-delay:3s}
  .wlc__halo .blogo{animation:none}
  @keyframes wlcRing{0%{opacity:.75;transform:scale(.92)}100%{opacity:0;transform:scale(1.75)}}
  @keyframes wlcGlow{50%{opacity:.6;transform:scale(.9)}}
  /* Пыль в сиянии: редкие точки света поднимаются снизу вверх. */
  .wlc__dust{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
  .wlc__dust i{position:absolute;bottom:-10px;width:3px;height:3px;border-radius:999px;background:#EFFFB0;box-shadow:0 0 8px 2px rgba(216,255,52,.55);opacity:0;animation:wlcDust 11s linear infinite}
  .wlc__dust i:nth-child(1){left:8%;animation-delay:0s}
  .wlc__dust i:nth-child(2){left:22%;animation-delay:3.6s;animation-duration:13s}
  .wlc__dust i:nth-child(3){left:37%;animation-delay:7.1s}
  .wlc__dust i:nth-child(4){left:52%;animation-delay:1.8s;animation-duration:14s}
  .wlc__dust i:nth-child(5){left:66%;animation-delay:5.4s}
  .wlc__dust i:nth-child(6){left:79%;animation-delay:9s;animation-duration:12s}
  .wlc__dust i:nth-child(7){left:91%;animation-delay:2.7s}
  .wlc__dust i:nth-child(8){left:45%;animation-delay:8.2s;animation-duration:15s}
  @keyframes wlcDust{0%{opacity:0;transform:translateY(0)}12%{opacity:.85}80%{opacity:.5}100%{opacity:0;transform:translate(14px,-92vh)}}
  /* Плашки появляются по одной, иконка — в лаймовом кружке. */
  .wlc .wlc__pill{padding:6px 14px 6px 6px;animation:wlcPill .6s var(--e-out) both;animation-delay:calc(var(--j,0) * 110ms + 560ms)}
  .wlc__pic{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:rgba(216,255,52,.16)}
  .wlc__pic .eic{width:14px;height:14px;color:#D8FF34}
  @keyframes wlcPill{from{opacity:0;transform:translateY(10px) scale(.92)}}
  .wlc__go{display:flex;align-items:center;justify-content:center;gap:8px}
  .wlc__go .eic{width:20px;height:20px;animation:wlcNudge 1.8s var(--e-out) 2s infinite}
  @keyframes wlcNudge{0%,60%,100%{transform:none}30%{transform:translateX(4px)}}
  /* Веер настоящих вещей: три карточки внахлёст, медленно покачиваются. */
  .wlc__show{margin-top:26px;display:flex;justify-content:center}
  .wlc__show:empty{display:none}
  .wls{position:relative;width:262px;height:176px;animation:wlsIn .7s var(--e-out) both}
  .wls__c{position:absolute;top:8px;width:116px;height:156px;border-radius:20px;overflow:hidden;background:#141a26;border:1px solid rgba(255,255,255,.18);box-shadow:0 22px 44px -16px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.25)}
  .wls__c img{width:100%;height:100%;object-fit:cover;display:block}
  .wls__c--0{left:0;transform:rotate(-9deg) translateY(10px);animation:wlsF0 6s ease-in-out infinite}
  .wls__c--1{left:73px;top:0;z-index:2;transform:none;animation:wlsF1 6s ease-in-out .4s infinite}
  .wls__c--2{right:0;transform:rotate(9deg) translateY(10px);animation:wlsF2 6s ease-in-out .8s infinite}
  .wls__p{position:absolute;left:8px;bottom:8px;padding:4px 9px;border-radius:999px;background:#D8FF34;color:#0b0f19;font-size:12px;font-weight:900}
  .wls__b{position:absolute;left:8px;top:8px;max-width:calc(100% - 16px);padding:3px 8px;border-radius:999px;background:rgba(4,6,12,.6);color:#fff;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  @keyframes wlsIn{from{opacity:0;transform:translateY(16px) scale(.94)}}
  @keyframes wlsF0{50%{transform:rotate(-11deg) translateY(4px)}}
  @keyframes wlsF1{50%{transform:translateY(-6px)}}
  @keyframes wlsF2{50%{transform:rotate(11deg) translateY(4px)}}
  /* Правила одним касанием: три строки того, что принимается, и две равные
     кнопки (EDPB) — обе принимают Условия, разница только в хранении. */
  .wlr{width:100%;border-radius:20px;padding:4px 14px;text-align:left}
  .wlr+.wlr{margin-top:10px}
  .wlr__cap{padding:11px 0 1px;font-size:11px;font-weight:850;letter-spacing:.6px;text-transform:uppercase;color:rgba(255,255,255,.55)}
  .wlr--all .wlr__cap{color:#D8FF34}
  .wlr__row{display:flex;gap:12px;align-items:center;padding:9px 0}
  .wlr__row+.wlr__row{border-top:1px solid rgba(255,255,255,.1)}
  .wlr__ic{flex:0 0 34px;width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(216,255,52,.14);color:#D8FF34}
  .wlr__ic .eic{width:18px;height:18px}
  .wlr__tx{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
  .wlr__tx>b{font-size:14.5px;font-weight:850}
  .wlr__tx span b{font-weight:800;color:#fff}
  .wlr__tx span{font-size:12.5px;line-height:1.4;color:rgba(255,255,255,.76)}
  .wlr__tx a{color:#D8FF34;text-decoration:none;font-weight:700}
  .wlr--all .wlr__ok{background:transparent;border:1.5px solid #D8FF34;color:#D8FF34}
  .wlr__ok{flex:0 0 22px;width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:#D8FF34;color:#0b0f19}
  .wlr__ok .eic{width:13px;height:13px}
  .wlp__note{margin-top:14px;font-size:12px;line-height:1.45;color:rgba(255,255,255,.62);max-width:320px;text-align:center}
  .wlp__b{display:flex;gap:10px;width:100%}
  .wlc__alt{flex:1;min-height:56px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font:inherit;font-size:15px;font-weight:800;white-space:nowrap;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:transform var(--d-1) var(--e-out),background-color var(--d-2) var(--e-out)}
  .wlc__alt .eic{width:18px;height:18px;color:#D8FF34}
  .wlc__alt:active{transform:scale(.97);background:rgba(255,255,255,.2)}
  /* Невысокий экран (SE): правила плотнее, заголовок ниже кнопки «‹». */
  @media (max-height:720px){
    .wlc__pg>.wlc__mid{padding-top:46px}
    .wlc__h{font-size:23px;margin-bottom:10px}
    .wlr__row{padding:6px 0} .wlr__cap{padding-top:8px}
    .wlr__tx>b{font-size:14px} .wlr__tx span{font-size:12px;line-height:1.35}
    .wlp__note{margin-top:8px}
  }
  /* Главная после приветствия поднимается мягкой волной, а не появляется рывком. */
  body.wl-done main>*{animation:wlHome .6s var(--e-out) both}
  body.wl-done main>*:nth-child(2){animation-delay:.05s} body.wl-done main>*:nth-child(3){animation-delay:.1s} body.wl-done main>*:nth-child(4){animation-delay:.15s}
  @keyframes wlHome{from{opacity:0;transform:translateY(14px)}}
  @media (prefers-reduced-motion:reduce){ .wlc__track{transition:none} .wls,.wls__c,body.wl-done main>*,.wlc__halo,.wlc__halo::before,.wlc__halo i,.wlc__dust i,.wlc .wlc__pill,.wlc__go .eic{animation:none} .wlc__dust{display:none} }
  /* Появление волной: знак, имя, строка, плашки, низ. */
  .wlc__in{animation:wlcRise .7s var(--e-out) both;animation-delay:calc(var(--i,0) * 90ms + 120ms)}
  @keyframes wlcRise{from{opacity:0;transform:translateY(18px) scale(.97);filter:blur(6px)}}
  /* Невысокий экран (SE, открытый не на весь экран Telegram): плашки в ряд не
     помещаются, ужимаем знак и имя, а не прячем содержимое. */
  @media (max-height:640px){
    .blogo{width:84px;height:84px;border-radius:28px}
    .blogo svg{width:46px;height:46px}
    .bname{margin-top:16px;font-size:46px}
    .wlc__pills{margin-top:18px}
  }
  @media (prefers-reduced-motion:reduce){
    .wlc,.wlc.out,.wlc__in,.aur i,.aur::after,.blogo,.blogo::after,.bname,.wlc__go::after{animation:none}
    .wlc.out{opacity:0}
  }
  .splash.on{display:flex;animation:spfade .4s both}
  /* 🛠 Технический перерыв / «скоро откроемся» */
  .maint{position:fixed;inset:0;z-index:80;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px 22px calc(26px + var(--sab));background:radial-gradient(900px 600px at 50% 0%,rgba(216,255,52,.16),transparent 60%),#0B0E14;color:#fff;overflow-y:auto}
  .maint.on{display:flex;animation:spfade .4s both}
  .maint__logo{display:flex;align-items:center;gap:11px;font-weight:900;font-size:24px;margin-bottom:22px}
  .maint__logo .lmark{width:40px;height:40px;border-radius:12px;background:#D8FF34;display:grid;place-items:center;color:#0B0E14;font-weight:900;font-size:22px}
  .maint__ph{width:min(88%,340px);border-radius:20px;margin-bottom:22px;box-shadow:0 24px 60px -20px rgba(0,0,0,.7)}
  .maint__t{font-size:clamp(26px,7vw,38px);font-weight:900;letter-spacing:-.02em;line-height:1.05;max-width:14ch}
  .maint__s{font-size:15px;color:#aeb9c7;margin-top:14px;max-width:44ch;line-height:1.5}
  .maint__cd{display:flex;gap:10px;margin-top:26px}
  .maint__cd>div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:12px 14px;min-width:66px}
  .maint__cd b{display:block;font-size:26px;font-weight:900;color:var(--lime,#D8FF34);font-variant-numeric:tabular-nums}
  .maint__cd span{font-size:11px;color:#8a93a0;text-transform:uppercase;letter-spacing:.08em}
  .maint__own{position:fixed;bottom:calc(16px + var(--sab));font-size:12px;color:#8a93a0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:8px 16px;font-weight:700}
  /* 🎬 онбординг-туториал (первый заход) */
  .onb{position:fixed;inset:0;z-index:62;display:none;flex-direction:column;padding:0 0 calc(20px + var(--sab));background:radial-gradient(900px 600px at 50% 0%,rgba(216,255,52,.10),transparent 62%),var(--bg);overflow:hidden}
  .onb.on{display:flex;animation:spfade .35s both}
  .onb__track{flex:1;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .onb__track::-webkit-scrollbar{display:none}
  .onb__s{flex:0 0 100%;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;padding:calc(var(--sat) + 24px) 30px 6px;gap:6px}
  .onb__ic{width:136px;height:136px;border-radius:36px;display:grid;place-items:center;font-size:60px;background:#D8FF34;box-shadow:0 22px 46px -20px rgba(0,0,0,.55);margin:0 0 20px;animation:pop var(--d-3) var(--e-out) both}
  /* Верхняя часть слайда — иллюстрация, нижняя — текст вплотную к кнопке.
     Раньше сверху оставалось пустое поле, и экран читался незаконченным. */
  .onb__art{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;padding:8px 0 4px}
  .onb__art img{max-width:78%;max-height:100%;object-fit:contain;filter:drop-shadow(0 26px 40px rgba(0,0,0,.5));animation:pop var(--d-3) var(--e-out) both}
  .onb__txt{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:6px;padding-bottom:2px}
  .onb__mark{position:absolute;top:calc(var(--tgtop) + 30px);left:0;right:0;font-size:12px;font-weight:900;letter-spacing:4px;color:var(--muted);opacity:.5}
  .onb__s{position:relative}
  .onb__t{font-size:26px;font-weight:900;color:var(--ink);line-height:1.15;letter-spacing:.2px}
  .onb__d{font-size:14.5px;color:var(--muted);line-height:1.55;max-width:300px;margin-top:8px}
  .onb__dots{display:flex;gap:8px;justify-content:center;padding:8px 0 16px}
  .onb__dot{width:8px;height:8px;border-radius:50%;background:var(--line);transition:var(--d-2) var(--e-out)}
  .onb__dot.on{background:var(--cyan);width:22px}
  .onb__foot{padding:0 22px;display:flex;flex-direction:column;gap:10px}
  .onb__skip{position:absolute;top:calc(14px + var(--tgtop));right:18px;z-index:2;background:rgba(127,127,127,.14);border:0;border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:800;color:var(--muted);cursor:pointer;backdrop-filter:blur(var(--gb-s))}
  @keyframes spfade{from{opacity:0}to{opacity:1}}
  .splash__logo{font-size:40px;font-weight:800;letter-spacing:-1px;line-height:1;display:inline-flex;align-items:center;gap:12px}
  .splash__logo .b1{color:var(--ink)}
  .splash__mark{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#0D1117;box-shadow:0 8px 22px rgba(216,255,52,.35)}
  .splash__mark svg{width:36px;height:36px;display:block}
  .splash__tag{margin-top:8px;font-size:13px;font-weight:800;letter-spacing:1.5px;color:var(--ink)}
  .splash__tag span{color:#D8FF34}
  @keyframes spfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
  .splash__t{font-size:23px;font-weight:900;margin:16px 0 6px;color:var(--ink);letter-spacing:-.3px}
  .splash__s{font-size:14px;color:var(--muted);max-width:340px;line-height:1.5}
  .splash__cd{display:flex;gap:8px;margin:20px 0}
  .splash__cd div{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 12px;min-width:60px}
  .splash__cd b{display:block;font-size:24px;font-weight:900;color:var(--ink);font-variant-numeric:tabular-nums}
  .splash__cd span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
  /* Лайм как текст читается только на тёмном. На светлом берём --limeink
     (тёмно-зелёный), иначе строка сливается с фоном — было 1.1:1. */
  .splash__seller2{font-size:12px;color:var(--limeink,#4C8700);font-weight:700;margin:8px 0 2px}
  .splash__btn{width:100%;max-width:360px;border:0;border-radius:16px;padding:15px;font-weight:900;font-size:15px;cursor:pointer;margin-top:10px}
  .splash__btn.pri{background:#D8FF34;color:#1E2433;box-shadow:0 16px 36px -14px rgba(0,0,0,.5)}
  .splash__btn.sec{background:var(--card);color:var(--ink);border:1px solid var(--line)}
  .splash__btn:active{transform:scale(.98)}
  /* Предзапуск 2.0: следует активной теме, лайм остаётся акцентом */
  .sp2{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center}
  .sp2__art{width:min(230px,56vw);height:auto;margin-bottom:2px;display:grid;place-items:center;animation:spfloat 3.4s ease-in-out infinite}
  .sp2__art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 34px rgba(0,0,0,.4))}
  .sp2__props{width:100%;display:flex;flex-direction:column;gap:8px;margin:18px 0 4px}
  .sp2__prop{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;text-align:left}
  .sp2__prop .ic{width:34px;height:34px;border-radius:12px;background:var(--card2);display:grid;place-items:center;color:var(--blue2);flex:0 0 auto}
  .sp2__prop .ic .eic{width:18px;height:18px}
  .sp2__prop>span:last-child{font-size:13.5px;font-weight:650;color:var(--ink);line-height:1.35}
  .sp2__mar{width:100%;overflow:hidden;margin-top:18px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
  .sp2__mar__t{display:inline-flex;gap:10px;white-space:nowrap;animation:sp2mar 22s linear infinite}
  .sp2__mar__t span{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:750;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 12px}
  .sp2__mar__t span .eic{width:14px;height:14px;color:var(--blue2)}
  @keyframes sp2mar{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  .splash__btn{display:flex;align-items:center;justify-content:center;gap:8px}
  .splash__btn .eic{width:18px;height:18px}
  .splash__seller2{display:flex;align-items:center;justify-content:center;gap:6px}
  .splash__seller2 .eic{width:14px;height:14px}
  @media (prefers-reduced-motion:reduce){ .sp2__mar__t,.sp2__art{animation:none} }

  /* 🌤 Светлая тема: делаем баннеры светлыми и на-бренд (не тёмные «остатки») */
  :root[data-theme="light"] .adban{background:linear-gradient(120deg,#e9fbfd,#e6f6ff);border-color:#D8FF3455}
  :root[data-theme="light"] .adban__l{color:#0891a8}
  :root[data-theme="light"] .adban__t{color:#171a2b}
  :root[data-theme="light"] .adban__s{color:#5a6b85}
  :root[data-theme="light"] .deal{background:linear-gradient(120deg,#F4FFD6,#E9FFC2);border-color:#D8FF3488;box-shadow:0 10px 26px rgba(216,255,52,.22)}
  :root[data-theme="light"] .deal__n,:root[data-theme="light"] .deal__p{color:#171a2b}
  :root[data-theme="light"] .deal__l{color:#4C8700}
  :root[data-theme="light"] .deal__c{color:#5FA300}
  :root[data-theme="light"] .deal__p s{color:#9aa6b6}
  :root[data-theme="light"] .phero__brand{color:#0e1a2c}
  :root[data-theme="light"] .consent__c{color:#0e1a2c}
  :root[data-theme="light"] .sheet__grip{background:#c8d2e2}
  :root[data-theme="light"] .toast{background:#0e1a2c}
  :root[data-theme="light"] .pilltop{color:#7a5c00;background:linear-gradient(120deg,#D8FF3422,#D8FF340f);border-color:var(--blue-a3);font-weight:900}
  :root[data-theme="light"] .rankttl.t-free{color:#5a6b85}
  :root[data-theme="light"] .rankttl.t-pro{background:none;-webkit-text-fill-color:#a5790f;color:#a5790f}
  :root[data-theme="light"] .rankttl.t-bulk{color:var(--blue2)}
  :root[data-theme="light"] .rankttl.t-empire{color:#c85a12}
  :root[data-theme="light"] .rankttl.t-white{color:#15803d}
  :root[data-theme="light"] .anq{color:var(--blue2)}
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  html{overflow-x:hidden}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,sans-serif;font-size:15px;line-height:1.4;padding-bottom:calc(94px + var(--sab));overflow-x:hidden}
  .bgfx{position:fixed;inset:0;z-index:-1;background:radial-gradient(1200px 600px at 50% -10%,rgba(216,255,52,.10),transparent 62%),radial-gradient(900px 500px at 100% 15%,rgba(120,180,255,.07),transparent 58%),var(--bg)}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:640px;margin:0 auto;padding:0 18px}
  ::-webkit-scrollbar{width:0;height:0}
  h3{margin:6px 0}
  /* верхний бар — часть страницы (не «липнет»), без разделительной линии: один цельный экран */
  .top{position:relative;z-index:30;background:transparent;border-bottom:0;padding-top:var(--tgtop)}
  .top__in{display:flex;align-items:center;gap:10px;padding:14px 18px 4px;max-width:640px;margin:0 auto}
  .logo{font-size:19px;font-weight:700;letter-spacing:-.4px;color:var(--ink);display:inline-flex;align-items:center}
  .logo .lmark{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:8px;border-radius:9px;background:#0D1117;box-shadow:0 4px 12px rgba(216,255,52,.3)}
  .logo .lmark svg{width:19px;height:19px;display:block}
  .logo b{color:var(--blue);font-weight:900;-webkit-text-fill-color:var(--blue)}
  :root[data-theme="light"] .logo b{color:#5FA300;-webkit-text-fill-color:#5FA300}
  .top__sp{flex:1}
  .icn{width:40px;height:40px;border-radius:12px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;font-size:18px;position:relative;transition:transform var(--d-1) var(--e-out)}
  .icn:active{transform:scale(.92)}
  .icn .dot{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--blue);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;box-shadow:0 0 10px rgba(216,255,52,.7);animation:pop .3s}
  #bellBtn .dot{background:#D8FF34;color:#1E2433;box-shadow:0 0 8px rgba(216,255,52,.6)}
  .topava{width:40px;height:40px;border-radius:50%;flex:0 0 auto;border:1.5px solid var(--line);background:#D8FF34;color:#1E2433;font-weight:900;font-size:16px;display:grid;place-items:center;overflow:hidden;cursor:pointer;padding:0;transition:transform var(--d-1) var(--e-out)}
  .topava:active{transform:scale(.92)}
  .topava img{width:100%;height:100%;object-fit:cover;display:block}
  /* ✏️ единый набор line-иконок (в стиле нижнего бара) — заменяют эмодзи */
  .eic{display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;width:1.15em;height:1.15em}
  @keyframes eicspin{to{transform:rotate(360deg)}}
  .eic.spinning{animation:eicspin .9s linear infinite}
  @media (prefers-reduced-motion:reduce){.eic.spinning{animation:none}}
  .icn .eic{width:21px;height:21px;color:var(--ink)}
  .srch .eic{width:19px;height:19px;color:var(--muted)}
  .pricebtn .eic{width:16px;height:16px;margin:0 5px -3px 0}
  .favbtn .eic{width:16px;height:16px;margin:0 1px -3px 0}
  .favbtn.on .eic{fill:currentColor;stroke:currentColor}
  .btn .eic{width:17px;height:17px;margin:0 6px -3px 0}
  .p__fav .eic{width:19px;height:19px}
  .p__fav.on .eic{fill:#ff5a7a;stroke:#ff5a7a}
  .pdactions .btn .eic{vertical-align:-3px}
  .p__meta .eic{width:11px;height:11px;vertical-align:-2px;margin-right:2px}
  .eic.fill{fill:currentColor}
  .reportlink .eic,.szchartbtn .eic{width:14px;height:14px;vertical-align:-2px;margin-right:3px}
  .pdrate .eic{width:12px;height:12px;vertical-align:-2px;margin-right:1px}
  .pdguar .eic{width:12px;height:12px;vertical-align:-2px;margin-right:2px}
  .pd__brand .eic{width:12px;height:12px;vertical-align:-2px;margin-right:2px}
  .sec h4 .eic{width:16px;height:16px;vertical-align:-3px;margin-right:6px;color:var(--blue2)}
  .legallinks a .eic{width:14px;height:14px;vertical-align:-2px;margin-right:6px}
  /* рекламный баннер (аренда места) */
  .adban{position:relative;margin:14px 0 0;border-radius:20px;overflow:hidden;padding:16px 16px;border:1.5px dashed #D8FF3466;background:linear-gradient(120deg,#0a2340,#10345f 55%,#0a2340);cursor:pointer}
  .adban:active{transform:scale(.99)}
  .adban__sheen{position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(55,230,255,.25),transparent);transform:skewX(-18deg);animation:sheen 3.5s ease-in-out infinite;pointer-events:none}
  .adban__l{font-size:11px;font-weight:900;letter-spacing:2px;color:#7ff0ff}
  .adban__t{font-size:17px;font-weight:900;margin:5px 0 2px}
  .adban__s{font-size:12.5px;color:var(--muted)}
  .adban__b{display:inline-block;margin-top:10px;background:linear-gradient(120deg,var(--cyan),var(--blue));color:#04121f;font-weight:900;font-size:13.5px;padding:9px 15px;border-radius:12px}
  /* 🏪 профиль продавца */
  /* sponsor banner */
  @keyframes float{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(-6deg) translateY(-8px)}}
  /* 👋 приветственный liquid-glass баннер на главной */
  .welc{position:relative;overflow:hidden;margin:12px 0 4px;border-radius:20px;padding:18px 18px 16px;
    background:linear-gradient(135deg,rgba(216,255,52,.16),rgba(30,36,51,.06));
    border:1px solid rgba(216,255,52,.35);backdrop-filter:blur(var(--gb-m)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-m)) saturate(var(--gsat));
    box-shadow:0 20px 46px -24px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.14);animation:welcIn .6s cubic-bezier(.2,.9,.3,1) both}
  :root[data-theme="dark"] .welc{background:linear-gradient(135deg,rgba(216,255,52,.14),rgba(255,255,255,.03))}
  @keyframes welcIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
  .welc__blob{position:absolute;width:180px;height:180px;border-radius:50%;filter:blur(34px);opacity:.5;pointer-events:none}
  .welc__blob.a{background:#D8FF34;right:-40px;top:-50px;animation:blobA 7s ease-in-out infinite}
  .welc__blob.b{background:#A6E635;left:-50px;bottom:-60px;opacity:.35;animation:blobB 9s ease-in-out infinite}
  @keyframes blobA{0%,100%{transform:translate(0,0)}50%{transform:translate(-16px,14px)}}
  @keyframes blobB{0%,100%{transform:translate(0,0)}50%{transform:translate(18px,-12px)}}
  .welc__sheen{position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.4) 46%,transparent 62%);transform:translateX(-120%);animation:welcSheen 5.5s ease-in-out infinite;pointer-events:none}
  @keyframes welcSheen{0%,55%{transform:translateX(-120%)}80%,100%{transform:translateX(120%)}}
  .welc__in{position:relative;z-index:2}
  .welc__hi{font-size:12px;font-weight:800;color:var(--blue2);letter-spacing:.3px}
  .welc__t{font-size:21px;font-weight:900;line-height:1.12;color:var(--ink);margin:3px 0 5px;letter-spacing:.2px}
  .welc__t b{background:linear-gradient(120deg,#8ec71b,#A6E635);-webkit-background-clip:text;background-clip:text;color:transparent}
  .welc__s{font-size:12.5px;color:var(--muted);line-height:1.5;max-width:90%}
  .welc__row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
  .welc__cta{display:inline-flex;align-items:center;gap:6px;background:#D8FF34;color:#1E2433;font-weight:900;font-size:13px;padding:10px 15px;border:0;border-radius:12px;cursor:pointer;box-shadow:0 10px 22px -8px rgba(0,0,0,.42);transition:transform var(--d-1) var(--e-out)}
  .welc__cta:active{transform:scale(.96)}
  .welc__ghost{display:inline-flex;align-items:center;gap:6px;background:rgba(127,127,127,.10);color:var(--ink);font-weight:800;font-size:13px;padding:10px 15px;border:1px solid var(--line);border-radius:12px;cursor:pointer;backdrop-filter:blur(var(--gb-s))}
  .welc__stats{display:flex;gap:14px;margin-top:12px}
  .welc__stat b{display:block;font-size:16px;font-weight:900;color:var(--ink);line-height:1}
  .welc__stat span{font-size:11px;color:var(--muted);font-weight:700}
  /* toolbar */

  /* 🛡️ trust-строка (конверсия) — liquid glass */
  .srch{flex:1;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.62);border:1px solid var(--line);border-radius:16px;padding:0 12px;transition:border-color var(--d-2) var(--e-out),box-shadow var(--d-2) var(--e-out);backdrop-filter:blur(var(--gb-m)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-m)) saturate(var(--gsat))}
  :root[data-theme="dark"] .srch{background:rgba(35,42,58,.55)}
  .srch:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(216,255,52,.18)}
  input[type=text]:focus,input[type=tel]:focus,input[type=number]:focus,input[type=search]:not(#search):focus,input:not([type]):focus,textarea:focus,select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(216,255,52,.16)}
  .srch span{color:var(--muted)}
  .srch input{width:100%;background:transparent;border:0;color:var(--ink);font-size:15px;padding:12px 0;outline:0}
  /* chips */
  .chips{display:flex;gap:8px;overflow-x:auto;padding:14px 0 6px;-webkit-overflow-scrolling:touch}
  .chip{flex:0 0 auto;position:relative;display:flex;align-items:center;gap:6px;padding:9px 15px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--muted);font-weight:800;font-size:13.5px;white-space:nowrap;overflow:hidden;transition:transform var(--d-1) var(--e-out),background-color var(--d-2) var(--e-out),color var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out),box-shadow var(--d-2) var(--e-out)}
  .chip:active{transform:scale(.95)}
  .chip.on{background:#D8FF34;color:#1E2433;border-color:transparent;box-shadow:0 8px 18px -6px rgba(0,0,0,.4);font-weight:800}
  .chip.sponsor{border-color:var(--gold)}
  .chip .v{color:var(--cyan);font-size:12px}
  /* ===== Витрина 2.0 (макет 1-в-1) ===== */
  /* приветствие — с воздухом как на макете */
  .hgreet{margin:14px 0 14px}
  .hgreet__hi{font-size:15px;font-weight:600;color:var(--muted);line-height:1.2}
  .hgreet__q{font-size:27px;font-weight:900;color:var(--ink);letter-spacing:-.5px;line-height:1.1;margin-top:4px}
  /* поиск 2.0 + кнопка фильтра */
  .tools2{display:flex;gap:12px;align-items:stretch;margin-bottom:4px}
  .srch2{flex:1;display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:0 14px;min-height:52px;transition:border-color var(--d-2) var(--e-out),box-shadow var(--d-2) var(--e-out)}
  .srch2:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(216,255,52,.16)}
  .srch2 .sic{width:20px;height:20px;color:var(--muted);flex:0 0 auto}
  .srch2 input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ink);font-size:15px;font-weight:500}
  .srch2 .mic[hidden]{display:none}
  .srch2 .mic{width:34px;height:34px;border-radius:10px;flex:0 0 auto;display:grid;place-items:center;background:none;border:0;cursor:pointer;color:var(--muted)}
  .srch2 .mic .eic{width:19px;height:19px}
  .fbtn{width:52px;flex:0 0 auto;border-radius:16px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;cursor:pointer;color:var(--ink);transition:transform var(--d-1) var(--e-out),border-color var(--d-2) var(--e-out);position:relative}
  .fbtn:active{transform:scale(.94)}
  .fbtn .eic{width:22px;height:22px}
  .fbtn.on{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(216,255,52,.16)}
  .fbtn .fdot{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#D8FF34;color:#1E2433;font-size:11px;font-weight:900;display:none;place-items:center}
  /* категории-плитки */
  .cats{display:flex;gap:11px;overflow-x:auto;padding:20px 0 6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .cats::-webkit-scrollbar{display:none}
  .cat{flex:0 0 auto;width:70px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:7px;padding:13px 6px 10px;border-radius:20px;background:var(--card);border:1px solid var(--line);cursor:pointer;color:var(--ink);transition:transform var(--d-1) var(--e-out),background var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out)}
  .cat:active{transform:scale(.95)}
  .cat .eic{width:23px;height:23px;color:var(--ink);transition:color var(--d-2) var(--e-out)}
  .cat span{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;transition:color var(--d-2) var(--e-out)}
  .cat.on{background:linear-gradient(135deg,#E4FF6B,#C4F72E);border-color:transparent;color:#141a05;box-shadow:0 12px 24px -10px rgba(184,240,42,.75);animation:catPop var(--d-3) var(--e-spring)}
  .cat.on .eic,.cat.on svg{color:#141a05;stroke:#141a05}
  .cat.on .eic,.cat.on span{color:#1E2433}
  @keyframes catPop{0%{transform:scale(.9)}60%{transform:scale(1.06)}100%{transform:scale(1)}}
  /* «Проверенные магазины» */
  .vsec{margin-top:22px}
  .vsec__h{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
  .vsec__h h3{font-size:17px;font-weight:900;color:var(--ink);display:flex;align-items:center;gap:6px;margin:0;letter-spacing:-.2px}
  .vsec__h h3 .vchk{width:16px;height:16px;color:#8CD400}
  .vsec__all{font-size:13px;font-weight:700;color:var(--blue2);background:none;border:0;cursor:pointer;padding:4px 2px}
  .vshops{display:flex;gap:12px;overflow-x:auto;padding:2px 0 6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .vshops::-webkit-scrollbar{display:none}
  .vsh{flex:0 0 auto;width:158px;scroll-snap-align:start;padding:16px 15px 15px;border-radius:20px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;gap:7px;cursor:pointer;transition:transform var(--d-1) cubic-bezier(.34,1.4,.6,1),box-shadow var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out);position:relative;overflow:hidden}
  .vsh::before{content:'';position:absolute;top:-40px;right:-40px;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle,rgba(216,255,52,.14),transparent 70%);pointer-events:none;opacity:0;transition:opacity var(--d-2) var(--e-out)}
  @media (hover:hover) and (pointer:fine){.vsh:hover::before{opacity:1}}
  .vsh:active{transform:scale(.96)}
  @media (hover:hover) and (pointer:fine){.vsh:hover{border-color:rgba(216,255,52,.55);box-shadow:0 18px 36px -18px rgba(60,90,0,.4);transform:translateY(-2px)}}
  .vsh__top{display:flex;align-items:center;gap:11px}
  .vsh__logo{width:52px;height:52px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-weight:900;font-size:19px;color:#fff;background:linear-gradient(140deg,#22262f,#111318);overflow:hidden;box-shadow:0 4px 12px -4px rgba(0,0,0,.4)}
  .vsh__logo img{width:100%;height:100%;object-fit:cover}
  .vsh__logo .eic{width:25px;height:25px;color:#fff}
  .vsh__rt2{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:900;color:var(--ink);padding:3px 8px;border-radius:9px;background:rgba(216,255,52,.16)}
  .vsh__rt2 .eic{width:13px;height:13px;color:#C8B400;fill:#F4D533}
  .vsh__nm{font-weight:800;font-size:14.5px;color:var(--ink);line-height:1.15;display:flex;align-items:center;gap:4px;min-width:0;margin-top:4px}
  .vsh__nm b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800}
  .vsh__nm .vok{width:15px;height:15px;color:#8CD400;flex:0 0 auto}
  .vsh__cnt{font-size:12.5px;color:var(--muted);font-weight:600}
  .vsh__meta2{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
  .vsh__tag{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:var(--muted);background:var(--card2);border-radius:8px;padding:4px 8px}
  .vsh__tag .eic{width:12px;height:12px;color:var(--blue2)}
  /* ===== Hero-баннер кешбэка (большой, как на макете) ===== */
  .cbhero{margin-top:16px;border-radius:20px;position:relative;overflow:hidden;background:linear-gradient(135deg,#F3F7EC,#FBFDF7);border:1px solid var(--line);min-height:92px;display:flex;align-items:center;box-shadow:0 12px 28px -22px rgba(60,90,0,.28)}
  :root[data-theme="dark"] .cbhero{background:linear-gradient(135deg,#1a1d17,#111309);border-color:#2a2f22}
  /* 👆 Отклик на нажатие — базово у всего, что нажимается. Замер по экранам
     показал: 35 кнопок из 68 не отвечали на касание, и 28 из них — <button>
     вообще без класса (шаги количества, размеры, мелкие действия в шторках).
     Правило на уровне тега: любой класс со своим :active перебивает его,
     поэтому уже настроенные кнопки ведут себя как раньше. */
  button,[role="button"]{transition:transform var(--d-1) var(--e-out),opacity var(--d-1) var(--e-out)}
  button:active,[role="button"]:active{transform:scale(.96)}
  button:disabled,button:disabled:active{transform:none;transition:none}
  @media (prefers-reduced-motion:reduce){
    button,[role="button"]{transition:none}
    button:active,[role="button"]:active{transform:none}
  }
  /* Слой занимает весь экран, поэтому и содержимое должно его занять: карта по
     центру, действие — у нижнего края. Иначе кнопка повисает под текстом, а под
     ней остаётся пустая половина экрана. */
  #gcPrev .ordview__in{min-height:var(--tg-viewport-height,var(--vph));display:flex;flex-direction:column}
  .gcprev{flex:1;display:flex;flex-direction:column;justify-content:center;padding:8px 16px;text-align:center}
  .gcprev .gcart{margin:0 auto;max-width:340px;width:100%}
  .gcprev__msg{margin-top:18px;font-size:15px;font-weight:700;line-height:1.45}
  .gcprev__meta{margin-top:8px;font-size:12.5px;color:var(--muted);font-weight:700}
  .gcprev__note{margin-top:18px;font-size:12px;color:var(--muted);line-height:1.5}
  #gcPrev .btn{display:block;flex:0 0 auto;width:calc(100% - 32px);margin:0 16px calc(20px + var(--sab))}
  /* 🎠 Карусель баннеров: одна лента с привязкой к слайдам. Точка — не таймер,
     а фактическая прокрутка: она показывает, где человек, а не где он «должен быть». */
  .hcar{position:relative;margin-top:16px}
  .hcar__tr{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
    gap:10px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .hcar__tr::-webkit-scrollbar{display:none}
  .hcar__tr > .cbhero{flex:0 0 100%;scroll-snap-align:start;margin-top:0}
  .hcar__dots{display:flex;justify-content:center;gap:6px;margin-top:10px}
  .hcar__dots i{width:6px;height:6px;border-radius:999px;background:var(--line);
    transition:width var(--d-2) var(--e-out),background var(--d-2) var(--e-out)}
  .hcar__dots i.on{width:18px;background:var(--limeink)}
  @media (prefers-reduced-motion:reduce){ .hcar__tr{scroll-behavior:auto} .hcar__dots i{transition:none} }
  /* Конкретика под подзаголовком: сумма, которую видно, а не абстрактный процент. */
  /* Ни плашки, ни заливки: текст начинается ровно на той же левой линии, что
     заголовок и подзаголовок. Громким остаётся только действие — кнопка. */
  .cbhero__proof{margin-top:7px;font-size:12px;font-weight:800;color:var(--limeink)}
  :root[data-theme="dark"] .cbhero__proof{color:#D8FF34}
  .cbhero__in{position:relative;z-index:2;padding:11px 15px;max-width:60%}
  .cbhero__tag{display:block;font-size:11px;font-weight:900;letter-spacing:1.2px;color:var(--limeink)}
  :root[data-theme="dark"] .cbhero__tag{color:#D8FF34}
  .cbhero__big{font-size:26px;font-weight:900;color:var(--ink);letter-spacing:-1.3px;line-height:.95;margin:4px 0 1px}
  .cbhero__s{font-size:11.5px;color:var(--muted);font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .cbhero__cta{margin-top:8px;display:inline-flex;align-items:center;gap:7px;background:#141a05;color:#E4FF6B;border:0;border-radius:12px;padding:7px 13px;font-size:12.5px;font-weight:800;cursor:pointer;transition:transform var(--d-1) var(--e-out)}
  .cbhero__cta:active{transform:scale(.96)}
  .cbhero__btns{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .cbhero__how{margin-top:9px;background:transparent;border:0;padding:8px 2px;color:var(--muted);font:inherit;font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
  .cbhero__how:active{opacity:.6}
  .cbhow__now{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:12px}
  .cbhow__now span{font-size:12.5px;font-weight:700;color:var(--muted)}
  .cbhow__now b{font-size:22px;font-weight:900;letter-spacing:-.5px;color:var(--limeink)}
  .cbhow__rows{display:flex;flex-direction:column;gap:2px;margin-top:12px}
  .cbhow__r{display:flex;gap:11px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
  .cbhow__r:first-child{border-top:0}
  .cbhow__ic{flex:0 0 auto;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--card);border:1px solid var(--line);color:var(--limeink)}
  .cbhow__ic .eic{width:16px;height:16px}
  .cbhow__r b{display:block;font-size:13.5px;font-weight:800;line-height:1.3}
  .cbhow__r span{display:block;font-size:12px;color:var(--muted);line-height:1.4;margin-top:2px}
  .cbhow__notes{margin:12px 0 0;padding-left:16px;display:flex;flex-direction:column;gap:5px}
  .cbhow__notes li{font-size:11.5px;color:var(--muted);line-height:1.45}
  :root[data-theme="dark"] .cbhero__cta{background:#D8FF34;color:#141a05}
  /* иллюстрация (слот под дизайнерский рендер + CSS-фолбэк) */
  .cbhero__art{position:absolute;right:-6px;bottom:0;top:0;width:40%;z-index:1;pointer-events:none}
  .cbhero__art img{position:absolute;right:8px;bottom:8px;height:92%;width:auto;object-fit:contain}
  .cbhero__bagimg{position:absolute;right:0;top:50%;transform:translateY(-50%);width:88%;height:88%;max-width:88%;object-fit:contain;object-position:right center}
  /* 🔥 «Сейчас ищут» — чипы популярных запросов */
  .trend{margin-top:12px}
  .trend__h{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:0 2px 8px}
  .trend__h b{font-weight:800;color:var(--ink)}
  .trend__h .eic{width:14px;height:14px;color:#F5A623}
  .trend__row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}
  .trend__row::-webkit-scrollbar{display:none}
  .trend__c{flex:0 0 auto;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer;white-space:nowrap;transition:transform var(--d-1) var(--e-out),border-color var(--d-2) var(--e-out)}
  .trend__c:active{transform:scale(.94);border-color:var(--blue)}
  .cbhero__blob{position:absolute;border-radius:50%;background:radial-gradient(circle at 35% 30%,#E4FF6B,#B7F02A);box-shadow:0 10px 24px -6px rgba(150,210,0,.55)}
  .cbhero__bag{position:absolute;right:26px;bottom:24px;width:120px;height:132px;border-radius:16px 16px 20px 20px;background:linear-gradient(160deg,#ffffff,#eef1ea);box-shadow:0 20px 40px -14px rgba(40,60,0,.3),inset 0 2px 0 rgba(255,255,255,.9)}
  .cbhero__bag::before{content:'';position:absolute;left:50%;top:-22px;transform:translateX(-50%);width:56px;height:40px;border:6px solid #2a2f22;border-bottom:0;border-radius:30px 30px 0 0}
  .cbhero__bag::after{content:'D';position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:16px;background:#D8FF34;color:#141a05;font-weight:900;font-size:34px;display:grid;place-items:center;box-shadow:0 8px 18px -6px rgba(150,210,0,.6)}
  .cbhero__b1{width:34px;height:34px;right:16px;top:26px}
  .cbhero__b2{width:20px;height:20px;right:150px;top:44px;opacity:.85}
  .cbhero__b3{width:14px;height:14px;right:36px;bottom:120px;opacity:.7}
  /* ===== Горячие предложения (товары со скидкой) ===== */
  .deal2row{display:flex;gap:12px;overflow-x:auto;padding:2px 0 6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .deal2row::-webkit-scrollbar{display:none}
  .dcard{flex:0 0 auto;width:150px;scroll-snap-align:start;border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden;cursor:pointer;transition:transform var(--d-1) var(--e-out),box-shadow var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out)}
  .dcard:active{transform:scale(.97)}
  @media (hover:hover) and (pointer:fine){.dcard:hover{border-color:rgba(216,255,52,.5);box-shadow:0 16px 32px -18px rgba(0,0,0,.35);transform:translateY(-2px)}}
  .dcard__img{position:relative;height:132px;background:var(--card2);overflow:hidden}
  .dcard__img img{width:100%;height:100%;object-fit:cover}
  .dcard__off{position:absolute;left:10px;top:10px;background:#D8FF34;color:#141a05;font-size:11px;font-weight:900;padding:4px 9px;border-radius:9px}
  .dcard__fav{position:absolute;right:9px;top:9px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;border:0;cursor:pointer;color:#333}
  .dcard__fav .eic{width:16px;height:16px}
  .dcard__b{padding:11px 12px 13px}
  .dcard__n{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcard__pr{display:flex;align-items:baseline;gap:7px;margin-top:5px}
  .dcard__pr b{font-size:15px;font-weight:900;color:var(--ink)}
  .dcard__pr s{font-size:12px;color:var(--muted)}
  /* «Продолжить покупки» — корзины по магазинам */
  .controw{display:flex;gap:12px;overflow-x:auto;padding:2px 0 6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .controw::-webkit-scrollbar{display:none}
  .vsec__sub{font-size:11.5px;color:var(--muted)}
  .recorow{display:flex;gap:11px;overflow-x:auto;padding:2px 0 6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .recorow::-webkit-scrollbar{display:none}
  .recocard{flex:0 0 auto;width:150px;scroll-snap-align:start;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer;transition:transform var(--d-1) var(--e-out),border-color var(--d-2) var(--e-out)}
  .recocard:active{transform:scale(.97)}
  .recocard__img{position:relative;width:100%;aspect-ratio:1;background:var(--card2)}
  .recocard__img img{width:100%;height:100%;object-fit:cover}
  .recocard__off{position:absolute;top:7px;left:7px;background:var(--err);color:#fff;font-size:11px;font-weight:800;padding:2px 6px;border-radius:6px}
  .recocard__b{padding:9px 10px 11px}
  .recocard__n{font-size:11px;color:var(--muted);font-weight:700}
  .recocard__nm{font-size:12.5px;font-weight:800;color:var(--ink);margin:1px 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .recocard__pr{font-size:13.5px;font-weight:900;color:var(--ink)}
  .ccard{flex:0 0 auto;width:220px;scroll-snap-align:start;padding:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);cursor:pointer;transition:transform var(--d-1) var(--e-out),border-color var(--d-2) var(--e-out)}
  .ccard:active{transform:scale(.98)}
  @media (hover:hover) and (pointer:fine){.ccard:hover{border-color:rgba(216,255,52,.5)}}
  .ccard__top{display:flex;align-items:center;gap:10px}
  .ccard__logo{width:38px;height:38px;border-radius:12px;flex:0 0 auto;display:grid;place-items:center;font-weight:900;font-size:14px;color:#fff;background:linear-gradient(140deg,#22262f,#111318);overflow:hidden}
  .ccard__logo img{width:100%;height:100%;object-fit:cover}
  .ccard__nm{font-weight:800;font-size:14px;color:var(--ink);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ccard__sub{font-size:12px;color:var(--muted);font-weight:600;margin-top:1px}
  .ccard__thumbs{display:flex;gap:8px;margin-top:12px}
  .ccard__th{width:52px;height:52px;border-radius:12px;background:var(--card2);overflow:hidden;flex:0 0 auto;position:relative}
  .ccard__th img{width:100%;height:100%;object-fit:cover}
  .ccard__more{width:52px;height:52px;border-radius:12px;background:var(--card2);display:grid;place-items:center;font-weight:800;color:var(--muted);font-size:14px;flex:0 0 auto}
  /* «Новые магазины» — компактные пилюли-карточки */
  .nshrow{gap:10px}
  .nsh{flex:0 0 auto;width:110px;scroll-snap-align:start;padding:14px 12px;border-radius:20px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;cursor:pointer;transition:transform var(--d-1) var(--e-out),border-color var(--d-2) var(--e-out)}
  .nsh:active{transform:scale(.95)}
  @media (hover:hover) and (pointer:fine){.nsh:hover{border-color:rgba(216,255,52,.5)}}
  .nsh__logo{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:17px;color:#fff;background:linear-gradient(140deg,#22262f,#111318);overflow:hidden}
  .nsh__logo img{width:100%;height:100%;object-fit:cover}
  .nsh__nm{display:flex;align-items:center;gap:3px;font-weight:800;font-size:13px;color:var(--ink);max-width:100%}
  .nsh__nm b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nsh__nm .vok{width:13px;height:13px;color:#8CD400;flex:0 0 auto}
  .nsh__sub{font-size:11px;font-weight:700;color:var(--blue2)}
  /* тёмный лоялти-баннер (уровень + прогресс) */
  /* 💎 Промо Droply+ на главной */
  @media (prefers-reduced-motion:reduce){.cat.on{animation:none}}
  /* ===== Магазин 2.0 (hero-карточка по макету) ===== */
  .shh2{margin-top:12px;border-radius:28px;overflow:hidden;background:linear-gradient(180deg,#15171b,#0d0e11);position:relative;box-shadow:0 20px 44px -20px rgba(0,0,0,.5)}
  .shh2__cover{height:118px;position:relative;background:#20242c;overflow:hidden}
  .shh2__cover img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05)}
  .shh2__cover.noimg{background:radial-gradient(120% 140% at 80% 0%,rgba(216,255,52,.22),transparent 55%),linear-gradient(120deg,#2a2f38,#1a1d23)}
  .shh2__cover::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,#12141800 40%,#121418 96%)}
  .shh2__body{padding:0 18px 18px;position:relative;margin-top:-44px}
  .shh2__logo{width:82px;height:82px;border-radius:50%;background:#0c0d10;border:3px solid #15171b;display:grid;place-items:center;color:#fff;font-weight:900;font-size:30px;overflow:hidden;position:relative;z-index:2}
  .shh2__logo img{width:100%;height:100%;object-fit:cover}
  .shh2__nm{display:flex;align-items:center;gap:7px;color:#fff;font-size:23px;font-weight:900;letter-spacing:-.4px;margin-top:11px}
  .shh2__nm .vok{width:20px;height:20px;color:#8CD400;flex:0 0 auto}
  .shh2__st{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.72);font-size:14px;font-weight:600;margin-top:7px}
  .shh2__st .str{display:inline-flex;align-items:center;gap:4px;color:#fff;font-weight:800}
  .shh2__st .str .eic{width:15px;height:15px;color:#F4D533;fill:#F4D533}
  .shh2__st .dot{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.4)}
  .shh2__desc{color:rgba(255,255,255,.78);font-size:13.5px;line-height:1.45;margin-top:12px}
  .shh2__desc b{color:#fff;font-weight:800;display:block;margin-bottom:2px}
  .shh2__feat{display:flex;gap:8px;margin-top:14px;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .shh2__feat::-webkit-scrollbar{display:none}
  /* 🗂 Коллекции магазина */
  .shcoll{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 0 4px;margin-bottom:6px;scrollbar-width:none}
  .shcoll::-webkit-scrollbar{display:none}
  .shcollc{flex:0 0 auto;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:12.5px;font-weight:800;padding:8px 14px;border-radius:999px;cursor:pointer}
  .shcollc i{font-style:normal;font-size:11px;color:var(--muted);margin-left:4px}
  .shcollc.on{background:#D8FF34;border-color:transparent;color:#141a05}
  .shcollc.on i{color:#3a5000}
  .collrow{display:flex;align-items:center;gap:10px;padding:9px 2px;border-top:1px solid var(--line)}
  .collrow:first-child{border-top:0}
  .collrow__m{flex:1;min-width:0}
  .collrow__m b{display:block;font-size:14px;font-weight:800;color:var(--ink)}
  .collrow__m span{display:block;font-size:12px;color:var(--muted)}
  .collpick{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow-y:auto;margin-top:4px}
  .collpick__i{display:flex;align-items:center;gap:11px;padding:8px;border:1.5px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;text-align:left}
  .collpick__i img{width:42px;height:42px;border-radius:9px;object-fit:cover;flex:0 0 auto}
  .collpick__i span{flex:1;min-width:0;font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .collpick__ck{flex:0 0 auto;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);color:transparent;display:grid;place-items:center;font-size:14px;font-weight:900}
  .collpick__i.on{border-color:var(--blue);background:rgba(216,255,52,.08)}
  .collpick__i.on .collpick__ck{background:#D8FF34;border-color:transparent;color:#141a05;font-size:12px}
  .collcover{position:relative;height:120px;border-radius:16px;background-size:cover;background-position:center;border:1.5px solid var(--line);margin-top:4px}
  .collcover__x{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(4,18,31,.82);color:#fff;font-size:14px;cursor:pointer;backdrop-filter:blur(var(--gb-s))}
  .shcollhero{position:relative;height:132px;border-radius:16px;background-size:cover;background-position:center;margin:0 0 12px;overflow:hidden}
  .shcollhero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,18,31,0) 30%,rgba(4,18,31,.72))}
  .shcollhero__t{position:absolute;left:14px;bottom:11px;z-index:1;color:#fff;font-weight:900;font-size:18px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
  .favfolders{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;-webkit-overflow-scrolling:touch}
  .favfolders::-webkit-scrollbar{display:none}
  .favfch{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-size:12.5px;font-weight:800;cursor:pointer;white-space:nowrap}
  .favfch i{font-style:normal;font-size:11px;color:var(--muted);font-weight:700}
  .favfch.on{border-color:var(--blue);background:rgba(216,255,52,.1)}
  .favfch.on i{color:var(--blue2)}
  .favfch--add{border-style:dashed;color:var(--muted)}
  .favmass{display:flex;gap:8px;margin:0 2px 10px}
  .favmass__b{flex:1;padding:9px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-size:12.5px;font-weight:800;cursor:pointer}
  .favmass__b--del{flex:0 0 auto;color:var(--err);border-color:var(--err)}
  .dcard__move{position:absolute;left:8px;bottom:8px;z-index:2;width:30px;height:30px;border-radius:9px;border:0;background:rgba(4,18,31,.82);color:#fff;font-size:14px;cursor:pointer;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .favfp{display:flex;flex-direction:column;gap:7px;margin-top:6px}
  .favfp__i{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-size:14px;font-weight:700;cursor:pointer}
  .favfp__i.on{border-color:var(--blue);background:rgba(216,255,52,.08)}
  .favfp__i i{font-style:normal;color:var(--blue2);font-weight:900}
  .favfp__new{display:flex;gap:8px;margin-top:10px}
  .favfp__new input{flex:1}
  .promohero{position:relative;display:flex;align-items:center;gap:12px;margin:2px 0 12px;padding:13px 14px;border-radius:16px;background:linear-gradient(120deg,#0d1524,#141a05);border:1.5px solid var(--pa,#D8FF34);overflow:hidden}
  .promohero::before{content:'';position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;background:var(--pa,#D8FF34);opacity:.14;filter:blur(6px)}
  .promohero__x{position:absolute;right:8px;top:8px;width:24px;height:24px;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#cbd5e1;font-size:12px;cursor:pointer;z-index:2}
  .promohero__emo{font-size:34px;flex:0 0 auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
  .promohero__tx{flex:1;min-width:0;z-index:1}
  .promohero__t{font-size:16px;font-weight:900;color:#fff;letter-spacing:-.2px}
  .promohero__s{font-size:12px;color:var(--pa,#D8FF34);font-weight:800;margin-top:1px}
  .promohero__cd{font-size:11.5px;color:#aeb9c5;margin-top:3px}
  .promohero__cd b{color:#fff;font-variant-numeric:tabular-nums;letter-spacing:.4px}
  .promohero__b{flex:0 0 auto;align-self:center;z-index:1;padding:9px 14px;border:0;border-radius:12px;background:var(--pa,#D8FF34);color:#0d1220;font-weight:900;font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
  .promohero--flash{border-color:var(--pa,#ff5a4d);animation:flashpulse 1.8s ease-in-out infinite}
  .promohero--flash .promohero__b{color:#fff}
  .promohero__flag{display:inline-block;background:var(--pa,#ff5a4d);color:#fff;font-size:11px;font-weight:900;letter-spacing:.5px;padding:2px 6px;border-radius:6px;vertical-align:middle}
  @keyframes flashpulse{0%,100%{box-shadow:0 0 0 0 rgba(255,90,77,.0)}50%{box-shadow:0 0 0 4px rgba(255,90,77,.16)}}
  .dropcd{margin:2px 0 10px;padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,#141a05,#04121f);border:1.5px solid var(--blue);text-align:center}
  .dropcd__h{font-size:11px;font-weight:800;letter-spacing:.4px;color:var(--blue);text-transform:uppercase}
  .dropcd__t{font-size:30px;font-weight:900;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:1px;margin:3px 0}
  .dropcd__d{font-size:11px;color:#9fb0bd}
  .p__drop{position:absolute;left:8px;top:8px;z-index:2;background:#D8FF34;color:#141a05;font-size:11px;font-weight:900;letter-spacing:.5px;padding:3px 7px;border-radius:7px;display:inline-flex;align-items:center;gap:3px}
  .p__stat{position:absolute;left:8px;top:8px;z-index:3;font-size:11px;font-weight:900;letter-spacing:.5px;padding:3px 8px;border-radius:7px}
  .p__stat--sold{background:#04121fe6;color:#fff}
  .p__stat--res{background:#e0a63a;color:#1a1200}
  .p--sold .p__img{filter:grayscale(.7) opacity(.72)}
  .pstchip{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:800;border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
  .pstchip--reserved{border-color:#e0a63a;color:#e0a63a;background:rgba(224,166,58,.1)}
  .pstchip--draft{border-style:dashed;color:var(--muted)}
  .pstchip--sold{border-color:var(--err);color:var(--err);background:rgba(255,90,77,.1)}
  .droplive{margin:2px 0 10px;padding:9px 13px;border-radius:12px;background:#ff3b3010;border:1.5px solid #ff3b3055;color:#ff5a4d;font-weight:800;font-size:13px}
  .droprail{margin:6px 0 4px}
  .droprail__h{display:flex;align-items:baseline;gap:8px;margin:0 2px 9px}
  .droprail__h b{font-size:16px;font-weight:900}
  .droprail__h span{font-size:11.5px;color:var(--muted)}
  .droprailrow{display:flex;gap:11px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .droprailrow::-webkit-scrollbar{display:none}
  .dm{flex:0 0 128px;scroll-snap-align:start;cursor:pointer}
  .dm__img{position:relative;height:128px;border-radius:16px;overflow:hidden;background:var(--card);border:1px solid var(--line)}
  .dm__img img{width:100%;height:100%;object-fit:cover}
  .dm__live{position:absolute;left:7px;top:7px;background:rgba(4,18,31,.72);color:#fff;font-size:11px;font-weight:900;letter-spacing:.4px;padding:3px 7px;border-radius:7px;backdrop-filter:blur(var(--gb-s))}
  .dm__cd{position:absolute;left:7px;right:7px;bottom:7px;text-align:center;background:linear-gradient(135deg,#141a05ee,#04121fee);color:#fff;font-size:12px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:.5px;padding:4px 6px;border-radius:8px;border:1px solid var(--blue)}
  .dm__n{font-size:12.5px;font-weight:800;margin:7px 2px 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dm__p{font-size:12px;color:var(--muted);margin:0 2px}
  .swk{position:relative;margin:6px 0 14px;border-radius:20px;overflow:hidden;background:var(--card);border:1.5px solid var(--line);cursor:pointer}
  .swk__badge{position:absolute;left:12px;top:12px;z-index:2;background:#D8FF34;color:#141a05;font-size:11px;font-weight:900;letter-spacing:.3px;padding:4px 10px;border-radius:999px}
  .swk__cover{height:118px;background:linear-gradient(120deg,#1a2740,#0d1220)}
  .swk__cover img{width:100%;height:100%;object-fit:cover}
  .swk__cover.noimg{background:linear-gradient(120deg,#21304d,#141a2a)}
  .swk__body{display:flex;align-items:center;gap:12px;padding:12px 14px}
  .swk__logo{width:52px;height:52px;border-radius:16px;flex:0 0 auto;margin-top:-34px;border:3px solid var(--card-solid);background:var(--card2);display:grid;place-items:center;font-weight:900;font-size:20px;color:var(--ink);overflow:hidden;position:relative;z-index:1}
  .swk__logo img{width:100%;height:100%;object-fit:cover;border-radius:12px}
  .swk__info{flex:1;min-width:0}
  .swk__nm{display:flex;align-items:center;gap:5px;font-size:16px;font-weight:900;color:var(--ink)}
  .swk__nm .vok{width:17px;height:17px;color:var(--blue)}
  .swk__chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}
  .swk__chips span{font-size:11px;font-weight:800;color:var(--muted);background:var(--card2);border-radius:999px;padding:3px 9px}
  .swk__go{flex:0 0 auto;align-self:center;font-size:12.5px;font-weight:900;color:var(--blue2)}
  .shsale{display:flex;align-items:center;gap:9px;width:100%;margin:12px 0 2px;padding:11px 13px;border-radius:12px;border:1.5px solid #ff5a4d55;background:linear-gradient(120deg,#ff5a4d18,#ff5a4d08);cursor:pointer;text-align:left}
  .shsale.on{border-color:#ff5a4d;background:#ff5a4d1f}
  .shsale__l{font-weight:900;font-size:13.5px;color:#ff6a5d;flex:0 0 auto}
  .shsale__m{flex:1;min-width:0;font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .shsale__go{flex:0 0 auto;font-size:12px;font-weight:900;color:#ff6a5d}
  .pdhist{margin:2px 0 8px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
  .pdhist summary{display:flex;align-items:center;gap:7px;padding:10px 13px;font-size:13px;font-weight:800;color:var(--ink);cursor:pointer;list-style:none}
  .pdhist summary::-webkit-details-marker{display:none}
  .pdhist__tag{background:rgba(140,212,0,.16);border:1px solid rgba(140,212,0,.3);color:var(--blue2);font-size:11px;font-weight:900;padding:2px 7px;border-radius:999px}
  .pdhist__b{padding:2px 13px 12px}
  .pdhist__svg{width:100%;height:44px;display:block}
  .pdhist__meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;font-size:11.5px;color:var(--muted)}
  .pdhist__meta b{color:var(--ink)}
  .spres{display:inline-flex;align-items:center;gap:5px;font-weight:800}
  .spres i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(140,212,0,.18)}
  .spres--on{color:#4ccf5a}
  .spres--recent{color:#e0a63a}
  .spres--recent i,.spres--today i{box-shadow:none}
  .spres--today{color:var(--muted)}
  .achg{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:8px}
  .ach{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:11px 9px;text-align:center;opacity:.62}
  .ach--on{opacity:1;border-color:rgba(140,212,0,.4);background:linear-gradient(160deg,rgba(140,212,0,.1),var(--card))}
  .ach__ic{position:relative;font-size:26px;line-height:1;margin-bottom:5px}
  .ach__ck{position:absolute;right:calc(50% - 22px);top:-3px;width:16px;height:16px;border-radius:50%;background:#D8FF34;color:#141a05;font-size:11px;font-weight:900;font-style:normal;display:grid;place-items:center}
  .ach__t{font-size:11px;font-weight:800;color:var(--ink);line-height:1.2;min-height:26px;display:flex;align-items:center;justify-content:center}
  .ach__bar{height:4px;border-radius:999px;background:var(--card2);overflow:hidden;margin-top:4px}
  .ach__bar i{display:block;height:100%;background:#D8FF34}
  .ach__p{font-size:11px;color:var(--muted);font-weight:700;margin-top:3px}
  .tbadges{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
  .tbadge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:var(--ink);background:rgba(140,212,0,.12);border:1px solid rgba(140,212,0,.28);border-radius:999px;padding:4px 10px}
  .tbadge i{font-style:normal;font-size:12px;line-height:1}
  .shstats{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
  .shstat{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:rgba(140,212,0,.14);border:1px solid rgba(140,212,0,.24);color:var(--ink);font-size:11.5px;font-weight:800}
  .shstat__e{font-size:13px}
  .shh2__feat span{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);color:#fff;font-size:11.5px;font-weight:700;line-height:1.15}
  .shh2__feat span .eic{width:16px;height:16px;color:#D8FF34;flex:0 0 auto}
  .shh2__feat span i{font-style:normal;color:rgba(255,255,255,.55);font-size:11px;display:block}
  .shh2__btns{display:flex;gap:10px;margin-top:16px}
  .shh2__btns button{flex:1;min-height:50px;border-radius:16px;border:0;font-weight:800;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:transform var(--d-1) var(--e-out)}
  .shh2__btns button:active{transform:scale(.97)}
  .shh2__btns .sub{background:#D8FF34;color:#141a05}
  .shh2__btns .sub.on{background:rgba(255,255,255,.1);color:#fff}
  .shh2__btns .wr{background:#fff;color:#15171b}
  .shh2__btns .wr .eic,.shh2__btns .sub .eic{width:18px;height:18px}
  .shh2__back{position:absolute;top:14px;left:14px;z-index:3;width:36px;height:36px;border-radius:12px;border:0;background:rgba(0,0,0,.35);backdrop-filter:blur(var(--gb-s));color:#fff;display:grid;place-items:center;cursor:pointer}
  .shh2__back .eic{width:19px;height:19px}
  .shh2__more{position:absolute;top:14px;right:14px;z-index:3;display:flex;gap:8px}
  .shh2__more button{width:36px;height:36px;border-radius:12px;border:0;background:rgba(0,0,0,.35);backdrop-filter:blur(var(--gb-s));color:#fff;display:grid;place-items:center;cursor:pointer}
  .shh2__more button .eic{width:18px;height:18px}
  /* табы магазина */
  .shtabs{display:flex;gap:4px;margin:18px 0 4px;border-bottom:1px solid var(--line)}
  .shtabs button{flex:1;padding:12px 4px;border:0;background:none;color:var(--muted);font-weight:800;font-size:14px;cursor:pointer;position:relative;transition:color var(--d-2) var(--e-out)}
  .shtabs button.on{color:var(--ink)}
  .shtabs button.on::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2.5px;border-radius:3px;background:#D8FF34}
  .shtabs button small{color:var(--muted);font-weight:700}
  /* категории магазина */
  /* категории с картинками (макет магазина) */
  /* способы оплаты */
  .shpay{display:flex;flex-wrap:wrap;gap:9px;margin-top:6px}
  .shpay .pm{height:38px;min-width:56px;padding:0 12px;border-radius:12px;background:var(--card2);border:1px solid var(--line);display:grid;place-items:center;font-weight:900;font-size:12px;letter-spacing:.3px;color:var(--ink)}
  .shpay .pm svg{height:18px;width:auto;display:block}
  /* панель «О магазине» */
  .shabout{margin-top:8px}
  .shabout .arow{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:16px;background:var(--card);border:1px solid var(--line);margin-bottom:10px}
  .shabout .arow .eic{width:20px;height:20px;color:var(--blue2);flex:0 0 auto;margin-top:1px}
  .shabout .arow b{display:block;color:var(--ink);font-size:14px;font-weight:800;margin-bottom:2px}
  .shabout .arow span{color:var(--muted);font-size:12.5px;line-height:1.4}
  .seclbl{font-size:17px;font-weight:900;color:var(--ink);letter-spacing:-.2px;margin:18px 0 2px;display:flex;align-items:center;justify-content:space-between}
  .seclbl a{font-size:13px;font-weight:700;color:var(--blue2);cursor:pointer}
  /* ===== Заказ 2.0 (полноэкранный детальный экран) ===== */
  /* overflow-x:hidden обязателен. Внутри кошелька лежит .wvsub — панель истории
     и настроек, припаркованная за правым краем через translateX(100%). При
     overflow-y:auto браузер вычисляет overflow-x как auto, и эта панель делала
     весь экран кошелька прокручиваемым вбок: содержимое буквально уезжало за
     рамки, и экран можно было утащить пальцем в пустоту. */
  .ordview{position:fixed;inset:0;z-index:60;background:var(--bg);transform:translateX(100%);transition:transform var(--d-3) var(--e-out);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(24px + var(--sab))}
  .ordview.on{transform:translateX(0)}
  .ordv__top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;padding:calc(10px + var(--tgtop)) 14px 12px;background:var(--bg);border-bottom:1px solid var(--line)}
  .ordv__top h3{flex:1;text-align:center;font-size:16px;font-weight:800;color:var(--ink);margin:0}
  /* Своя кнопка «назад» на экране, где Telegram уже показывает системную.
     Две стрелки подряд в левом верхнем углу — это не выбор, а недоумение.
     Гасим видимость, а не display: слот держит заголовок по центру. */
  html.tgback [data-back]{visibility:hidden;pointer-events:none}
  .ordv__ic{width:38px;height:38px;border-radius:12px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:0 0 auto}
  .ordv__ic .eic{width:19px;height:19px}
  .ordv__b{padding:16px 16px 0}
  .ordv__status{text-align:center;margin:10px 0 4px}
  .ordv__pill{display:inline-block;padding:8px 18px;border-radius:999px;font-size:14px;font-weight:800;color:#141a05;background:#D8FF34}
  .ordv__pill.cancel{background:#ffe1e1;color:#c33}
  .ordv__sub{color:var(--muted);font-size:13px;margin-top:10px;line-height:1.4}
  .ordv__card{margin-top:16px;padding:16px;border-radius:20px;background:var(--card);border:1px solid var(--line)}
  /* вертикальный таймлайн */
  .otl{margin-top:6px}
  .otl__s{display:flex;gap:14px;position:relative;padding-bottom:22px}
  .otl__s:last-child{padding-bottom:0}
  .otl__s::before{content:'';position:absolute;left:13px;top:26px;bottom:-4px;width:2px;background:var(--line)}
  .otl__s:last-child::before{display:none}
  .otl__s.ll::before{background:#B7F02A}
  .otl__dot{width:28px;height:28px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;background:var(--card2);border:2px solid var(--line);color:var(--muted);z-index:1}
  .otl__dot .eic{width:15px;height:15px}
  .otl__s.done .otl__dot{background:#D8FF34;border-color:transparent;color:#141a05}
  .otl__s.act .otl__dot{background:#141a05;border-color:#141a05;color:#D8FF34;box-shadow:0 0 0 4px rgba(216,255,52,.22)}
  .otl__l{padding-top:3px}
  .otl__l b{display:block;font-size:14.5px;font-weight:800;color:var(--ink)}
  .otl__s:not(.done):not(.act) .otl__l b{color:var(--muted)}
  .otl__l span{font-size:12px;color:var(--muted)}
  .otl__l .d{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.35}
  .otl__s.act .otl__l b{color:var(--blue2)}
  /* продукт-строка + отслеживание */
  .ordv__prod{display:flex;align-items:center;gap:12px;padding:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);margin-bottom:14px}
  .ordv__pimg{width:56px;height:56px;border-radius:12px;background:var(--card2);overflow:hidden;flex:0 0 auto}
  .ordv__pimg img{width:100%;height:100%;object-fit:cover}
  .ordv__pn{flex:1;min-width:0}
  .ordv__resell{display:flex;width:max-content;align-items:center;gap:6px;margin:-4px 0 14px auto;padding:8px 14px;border:0;border-radius:999px;background:#D8FF34;color:#1E2433;font:inherit;font-size:13px;font-weight:900;cursor:pointer}
  .ordv__resell .eic{width:15px;height:15px}
  .pdtarget{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font:inherit;font-size:13px;font-weight:800;cursor:pointer}
  .pdbrand{margin-left:6px}
  .pdbrand:disabled{opacity:.75;cursor:default}
  .pdtarget .eic{width:16px;height:16px;color:var(--limeink)}
  .ordv__pn b{font-size:14px;font-weight:700;color:var(--ink);display:block;line-height:1.25}
  .ordv__pn span{font-size:12px;color:var(--muted)}
  .ordv__pp{text-align:right;font-weight:800;color:var(--ink);white-space:nowrap}
  .ordv__pp span{display:block;font-size:11px;color:var(--muted);font-weight:600}
  .ordv__deliv{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}
  .ordv__deliv .l{font-size:12px;color:var(--muted)}
  .ordv__deliv b{font-size:14px;color:var(--cink);font-weight:800}
  /* Гнездо под знак перевозчика в карточке заказа. Фона у него нет: официальный
     знак приходит со своей прозрачностью, и почти чёрная плитка под ним выглядела
     наклейкой на чужом фоне. Фон достаётся только буквенной заглушке — ей он и
     нужен, чтобы лаймовая буква читалась. */
  .ordv__dbadge{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:16px;font-weight:900;flex:0 0 auto}
  .ordv__dbadge--plain{background:#0d0e11;color:#D8FF34}
  /* Знак перевозчика. Размер и скругление одни на все места; цвет приходит
     из фирменного, поэтому у плашки он в разметке, а не здесь. */
  .cmark{width:22px;height:22px;border-radius:6px;display:inline-grid;place-items:center;color:#fff;font-weight:800;font-size:12px;flex:0 0 auto;vertical-align:-5px}
  .cmark--logo{background:none;padding:0}
  .cmark--logo svg,.cmark--logo img{width:100%;height:100%;display:block;border-radius:0;object-fit:contain}
  .ordv__dbadge .cmark{width:26px;height:26px;border-radius:8px;font-size:14px;vertical-align:0}
  .ordv__lbl{font-size:12px;color:var(--muted);font-weight:700;margin-bottom:8px}
  .ordv__seller{display:flex;align-items:center;gap:12px}
  .ordv__slogo{width:42px;height:42px;border-radius:50%;background:#161a22;color:#fff;font-weight:900;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}
  .ordv__slogo img{width:100%;height:100%;object-fit:cover}
  .ordv__sname{flex:1;font-weight:800;color:var(--ink);font-size:15px}
  .ordv__chat{width:40px;height:40px;border-radius:12px;background:var(--card2);border:1px solid var(--line);display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:0 0 auto}
  .ordv__chat .eic{width:18px;height:18px}
  .ordv__sumrow{display:flex;align-items:center;justify-content:space-between}
  .ordv__sumrow .lbl{font-size:12px;color:var(--muted);font-weight:700}
  .ordv__sum{font-size:26px;font-weight:900;color:var(--ink);margin-top:4px;letter-spacing:-.5px}
  .ordv__cb{margin-top:14px;padding:18px;border-radius:20px;background:linear-gradient(120deg,rgba(216,255,52,.16),rgba(216,255,52,.05));border:1px solid rgba(216,255,52,.4);display:flex;align-items:center;gap:14px;position:relative;overflow:hidden}
  .ordv__cb .l{flex:1}
  .ordv__cb .tag{font-size:12px;color:var(--blue2);font-weight:800;display:flex;align-items:center;gap:5px}
  .ordv__cb .tag .eic{width:15px;height:15px}
  .ordv__cb .amt{font-size:24px;font-weight:900;color:var(--ink);margin-top:3px}
  .ordv__cb .note{font-size:12px;color:var(--muted);margin-top:2px}
  .ordv__cb .pct{width:52px;height:52px;border-radius:50%;background:#D8FF34;display:grid;place-items:center;color:#141a05;flex:0 0 auto}
  .ordv__cb .pct .eic{width:26px;height:26px}
  /* ===== Кошелёк 2.0 (без вывода) ===== */
  /* 💳 Кошелёк — единственный экран, где уместен «живой» фон: он про деньги,
     и ему полагается глубина, а не серый лист. Аврора рисуется один раз на
     весь экран и не двигается при скролле — карточки едут по ней, как стекло
     по столу. Пятна лаймовые и холодные, наши: это не Revolut, а мы.

     fixed, а не absolute: иначе градиент растягивается на всю высоту прокрутки
     и внизу вырождается в плоскую заливку. */
  /* Базовый тон — не чёрный: на чёрном любые пятна тонут, и «живого» фона не
     получается, сколько ни поднимай прозрачность. Сначала кладём глубокий
     сине-зелёный слой, и уже по нему — светящиеся пятна. */
  #walletView{background:linear-gradient(168deg,#16301f 0%,#12212e 42%,#0d1420 100%)}
  :root[data-theme="light"] #walletView{background:linear-gradient(168deg,#eaf6d8 0%,#e6effb 46%,#f3f6fb 100%)}
  #walletView::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
    background:
      radial-gradient(680px 420px at 84% -10%,rgba(216,255,52,.42),transparent 60%),
      radial-gradient(620px 480px at -16% 16%,rgba(90,175,255,.34),transparent 58%),
      radial-gradient(720px 420px at 32% 46%,rgba(166,230,53,.16),transparent 62%),
      radial-gradient(560px 400px at 66% 104%,rgba(120,120,255,.18),transparent 62%)}
  :root[data-theme="light"] #walletView::before{
    background:
      radial-gradient(680px 420px at 84% -10%,rgba(216,255,52,.55),transparent 60%),
      radial-gradient(620px 480px at -16% 16%,rgba(90,175,255,.34),transparent 58%),
      radial-gradient(720px 420px at 32% 46%,rgba(166,230,53,.22),transparent 62%),
      radial-gradient(560px 400px at 66% 104%,rgba(150,150,255,.20),transparent 62%)}
  #walletView .ordview__in,#walletView .wvsub{position:relative;z-index:1}
  /* Полоса заголовка: стекло, а не глухая плашка — иначе она срезает аврору
     ровно там, где та ярче всего. */
  /* Полупрозрачная, но без размытия: под ней ровная аврора, размывать в ней
     нечего — а бюджет размытий тратится на карточки, где оно даёт материал. */
  #walletView .ordv__top{background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.02));
    border-bottom:1px solid rgba(255,255,255,.10)}
  /* Матовое стекло — одно правило на карточки кошелька, чтобы они читались как
     один материал. Но только на КРУПНЫХ одиночных блоках: строки истории
     (.wv__acc>*) и кнопки действий повторяются, а размытие на повторяющихся
     элементах роняет кадры на Android. Им ниже — плотный фон того же тона. */
  #walletView .wv__use,#walletView .wv__gift,#walletView .wv__stat,#walletView .wvlvl{
    background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.05));
    border:1px solid rgba(255,255,255,.14);
    backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));
    -webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));
    box-shadow:0 18px 40px -20px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.16)}
  :root[data-theme="light"] #walletView .ordv__top{background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.25));border-bottom-color:rgba(20,40,80,.10)}
  /* Повторяющиеся элементы: тот же материал на вид, но плотным фоном. */
  #walletView .wv__acc>*,#walletView .wv__qa>button{
    background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13)}
  :root[data-theme="light"] #walletView .wv__acc>*,:root[data-theme="light"] #walletView .wv__qa>button{
    background:rgba(255,255,255,.72);border-color:rgba(255,255,255,.9)}
  :root[data-theme="light"] #walletView .wv__use,:root[data-theme="light"] #walletView .wv__gift,
  :root[data-theme="light"] #walletView .wv__stat,:root[data-theme="light"] #walletView .wvlvl{
    background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.62));
    border-color:rgba(255,255,255,.9);
    box-shadow:0 18px 38px -20px rgba(20,40,80,.28), inset 0 1px 0 rgba(255,255,255,.9)}
  .wv__b{padding:16px 16px 0;position:relative;z-index:1}
  .wv__titsub{color:var(--muted);font-size:13.5px;margin-bottom:14px}
  /* 💶 Баланс — одно крупное число на экран. Раньше та же сумма выводилась
     дважды: в тёмной карте сверху и в карточке кешбэка ниже. Человек читал
     два числа и искал между ними разницу, которой нет. */
  .wvh{text-align:center;padding:26px 16px 4px}
  .wvh__lbl{font-size:13px;color:var(--muted);font-weight:600}
  .wvh__num{margin-top:6px;font-weight:900;letter-spacing:-2.5px;line-height:1;font-variant-numeric:tabular-nums;
    font-size:clamp(44px,15vw,60px);white-space:nowrap}
  .wvh__cents{font-size:.46em;letter-spacing:-.5px;color:var(--muted);font-weight:800}
  .wvh__sub{margin-top:10px;font-size:12.5px;font-weight:700;color:var(--limeink)}
  /* Строка под суммой: слева переключатель «скрыть», справа — сколько ещё в
     пути. Обе части необязательны, поэтому строка центрируется по содержимому. */
  .wvh__row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:10px}
  .wvh__eye{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);
    color:var(--muted);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700;cursor:pointer;
    transition:transform var(--d-1) var(--e-out)}
  .wvh__eye:active{transform:scale(.95)}
  .wvh__eye .eic{width:15px;height:15px}
  .wvh__pend{font-size:12.5px;font-weight:700;color:var(--limeink)}
  .wvh__burn{display:inline-block;margin-top:8px;font-size:11.5px;font-weight:700;color:#8a5a00;background:rgba(255,180,60,.16);padding:3px 10px;border-radius:999px}
  :root[data-theme="dark"] .wvh__burn{color:#ffcf6b}
  /* Круглые действия, как в референсе: значок в круге, подпись под ним. */
  .wvacts{display:flex;justify-content:center;gap:18px;margin-top:22px}
  .wvacts button{background:none;border:0;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;
    color:var(--ink);font-size:12px;font-weight:700;-webkit-tap-highlight-color:transparent}
  .wvacts .cir{width:62px;height:62px;border-radius:50%;background:var(--card2);border:1px solid var(--line);
    display:grid;place-items:center;transition:transform var(--d-1) var(--e-out)}
  .wvacts button:active .cir{transform:scale(.92)}
  /* Главное действие — салатовое и с тенью: без неё кружок читается как
     наклейка, приклеенная к фону, а не как кнопка. Остальным двум тень не
     нужна: они вторичны, и три тени подряд превратились бы в шум. */
  .wvacts button:first-child .cir{background:#D8FF34;border-color:#D8FF34;color:#141a05;
    box-shadow:0 6px 18px -8px rgba(216,255,52,.55)}
  .wvacts .cir .eic{width:22px;height:22px}
  /* Уровень — обычная строка, а не второе крупное число. */
  /* Строка уровня ведёт на экран уровней: там лестница, пороги и привилегии.
     Раньше это был мёртвый блок — человек видел «GOLD · 5%» и не мог узнать,
     что дальше, хотя экран уже существовал. */
  .wvlvl{margin-top:22px;border-radius:20px;background:var(--card);border:1px solid var(--line);padding:14px 16px;
    width:100%;text-align:left;display:block;cursor:pointer;font:inherit;color:inherit;
    transition:transform var(--d-1) var(--e-out)}
  .wvlvl:active{transform:scale(.985)}
  .wvlvl__top{display:flex;align-items:center;gap:8px}
  .wvlvl__top .eic{width:18px;height:18px;color:var(--muted);margin-left:auto;flex:0 0 auto}
  .wvlvl__n{font-size:14.5px;font-weight:800}
  .wvlvl__s{font-size:12px;color:var(--muted);margin-top:2px}
  .wvlvl__bar{margin-top:9px;height:6px;border-radius:3px;background:var(--card2);overflow:hidden}
  .wvlvl__bar i{display:block;height:100%;background:#D8FF34;border-radius:3px;transition:width var(--d-3) var(--e-out)}
  @media (prefers-reduced-motion:reduce){ .wvacts .cir,.wvlvl__bar i{transition:none} .wvacts button:active .cir{transform:none} }
  /* «Заработать на баланс» — строки-задания, действие справа лаймовой пилюлей */
  /* Демо-режим: сервер не ответил. Полоса должна читаться сразу — иначе
     пустой кабинет выглядит поломкой настоящего. */
  /* Публикация товара по шагам: виден один, поля остальных в разметке */
  .pesteps .pestep{display:none}
  .pesteps[data-step="0"] .pestep[data-pestep="0"],
  .pesteps[data-step="1"] .pestep[data-pestep="1"],
  .pesteps[data-step="2"] .pestep[data-pestep="2"],
  .pesteps[data-step="3"] .pestep[data-pestep="3"],
  .pesteps[data-step="4"] .pestep[data-pestep="4"],
  .pesteps[data-step="5"] .pestep[data-pestep="5"]{display:block;animation:mqIn .26s var(--e-out)}
  .penav{display:flex;gap:8px;margin-top:14px}
  .penav .btn{margin:0;flex:1}
  /* На первом шаге «Назад» скрыт — «Далее» не должна оставаться одинокой
     половинкой у правого края. */
  .penav .btn[style*="visibility: hidden"],.penav .btn[style*="visibility:hidden"]{display:none}
  /* Живое превью карточки: продавец заполняет форму и сразу видит то, что
     увидит покупатель. Раньше это можно было узнать только кнопкой
     «Предпросмотр» на последнем шаге из шести — то есть уже после того, как всё
     введено, и переделывать было поздно. */
  /* ===== ВВОД СУММЫ =====
     Один компонент на все места, где приложение просит деньги. Раньше цена
     оффера спрашивалась браузерным prompt(), подарок — обычным полем ввода, а
     номинал карты — третьей вёрсткой. Клавиатура своя: системная в Telegram
     перекрывает пол-экрана и прячет как раз ту сумму, которую вводят. */
  /* Админка хаба */
  .admgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .admt{background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:11px 12px}
  .admt__l{display:block;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
  .admt__v{display:block;font-size:22px;font-weight:900;letter-spacing:-.6px;color:var(--ink);margin:3px 0 1px}
  .admt__v--ok{color:var(--ok)} .admt__v--warn{color:var(--warn)}
  .admt__s{display:block;font-size:11px;color:var(--muted);font-weight:600;line-height:1.3}
  .admlist{display:flex;flex-direction:column;gap:8px;margin-top:10px}
  /* Строка списка бывает и кнопкой (чаты): у button текст по центру и свой
     шрифт — задаём явно, иначе строка выглядит как заголовок. */
  .admsh{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:10px 12px;width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
  .admsh .eic{width:18px;height:18px;color:var(--muted);flex:none}
  .admsh__n{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--err);color:#fff;font-size:11px;font-weight:900;vertical-align:1px}
  .admsh--ban{border-color:var(--err)}
  .admsh__in{flex:1;min-width:0}
  .admsh__in b{display:block;font-size:14px;color:var(--ink)}
  .admsh__in span{display:block;font-size:11.5px;color:var(--muted);font-weight:600}
  .admsh__in i{font-style:normal;font-weight:800;color:var(--ink)}
  .admsh__x{font-size:11px;font-weight:900;color:var(--err);border:1px solid var(--err);border-radius:999px;padding:1px 6px;vertical-align:1px}
  .admsh__r{color:var(--err)!important;font-style:italic}
  .admsh .btn{margin:0;width:auto;flex:none}
  .admrows{margin-top:10px;background:var(--card2);border:1px solid var(--line);border-radius:16px;overflow:hidden}
  .admr{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:13.5px}
  .admr:last-child{border-bottom:0}
  .admr b{font-size:16px;font-weight:900}
  /* Подзаголовок раздела на вкладке логистики: строки одинаковые, а группы
     разные — без него справочник и надбавки читаются как один список. */
  .admr--h{display:block;margin:16px 0 -4px;padding:0 2px;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:0}
  /* Наклейка для своего канала */
  .lbprice{display:flex;flex-direction:column;gap:4px;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-top:10px}
  .lbprice>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
  .lbprice span{font-size:12.5px;color:var(--muted);font-weight:700}
  .lbprice b{font-size:22px;font-weight:900;color:var(--ink);letter-spacing:-.5px}
  .lbprice__t{font-size:11.5px;color:var(--muted);font-weight:600}
  /* Выбор перевозчика карточками. Настоящих логотипов у нас нет — рисовать
     чужой знак по памяти нельзя, — поэтому фирменная метка и название. */
  .lbcar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .lbcar__i{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--card2);border:1px solid var(--line);border-radius:20px;padding:16px 10px;font:inherit;color:var(--ink);cursor:pointer;min-height:112px;transition:border-color var(--d-2) var(--e-out),transform var(--d-1) var(--e-out)}
  .lbcar__i:active{transform:scale(.97)}
  .lbcar__i.off{opacity:.45;cursor:not-allowed}
  .lbcar__i b{font-size:15px;color:var(--cink)}
  .lbcar__i span{font-size:11px;color:var(--muted);font-weight:700;text-align:center}
  .lbcar__m{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;font-weight:900;font-size:17px}
  /* Знак сам принёс свой цвет (--cbrand из carrierMark), поэтому подложка
     строится тут же, без второго обращения к реестру. */
  .lbcar__m.cmark--logo{background:color-mix(in srgb, var(--cbrand) 14%, transparent);
                        box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--cbrand) 30%, transparent)}
  .lbcar__m.cmark--logo img{width:28px;height:28px}
  /* Пустой баланс — во весь экран, а не мелким серым под формой. */
  /* Цифровая наклейка: PIN крупно, QR под ним. У продавца без принтера это
     единственный способ отправить. */
  .lbpin{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--card2);border:1px solid var(--lime);border-radius:20px;padding:14px;margin-top:12px}
  .lbpin span{font-size:11px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
  .lbpin b{font-size:34px;font-weight:900;letter-spacing:4px;color:var(--ink)}
  .lbpin i{font-style:normal;font-size:11.5px;color:var(--muted);font-weight:600;text-align:center;line-height:1.4}
  .lbqr{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:10px}
  .lbqr img{width:180px;height:180px;border-radius:16px;background:#fff;padding:8px}
  .lbqr span{font-size:11.5px;color:var(--muted);font-weight:600;text-align:center}
  .lblow{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;background:var(--card2);border:1px solid var(--err);border-radius:20px;padding:22px 16px;margin-top:12px}
  .lblow__ic{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:rgba(255,90,90,.14)}
  .lblow__ic .eic{width:26px;height:26px;color:var(--err)}
  .lblow b{font-size:19px;color:var(--ink)}
  .lblow span{font-size:13px;color:var(--muted);font-weight:600;line-height:1.45}
  .lblow .btn{margin-top:6px}
  @media (prefers-reduced-motion:reduce){ .lbcar__i:active{transform:none} }
  .lbnext{margin-top:8px;background:rgba(216,255,52,.12);border:1px solid var(--line);border-radius:16px;padding:9px 12px;font-size:12px;font-weight:700;color:var(--ink)}
  .amt{padding:2px 0 0}
  .amt__lbl{display:block;text-align:center;font-size:11.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
  .amt__num{display:flex;align-items:baseline;justify-content:center;gap:4px;margin:6px 0 2px;min-height:56px}
  .amt__cur{font-size:26px;font-weight:800;color:var(--muted)}
  .amt__v{font-size:46px;font-weight:900;letter-spacing:-2px;color:var(--ink);line-height:1}
  .amt__v.dim{color:var(--muted)}
  .amt__cent{font-size:26px;font-weight:800;color:var(--muted);letter-spacing:-1px}
  .amt__hint{text-align:center;font-size:12px;font-weight:600;color:var(--muted);min-height:17px}
  .amt__hint.bad{color:var(--err)}
  .amt__chips{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin:12px 0 4px}
  .amt__chip{background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font:inherit;font-size:13px;font-weight:800;color:var(--ink);cursor:pointer;min-height:40px;transition:background var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out)}
  .amt__chip.on{background:var(--lime);border-color:transparent;color:#141a05}
  .amt__chip:active{transform:scale(.96)}
  /* Кнопка «своя сумма» выглядит как поле, но открывает клавиатуру приложения. */
  .gcown{display:block;width:100%;margin-top:10px;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:13px 16px;font:inherit;font-size:22px;font-weight:900;color:var(--ink);text-align:left;cursor:pointer;min-height:52px}
  .gcown:active{transform:scale(.99)}
  .amt__pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
  .amt__k{background:var(--card2);border:1px solid var(--line);border-radius:16px;min-height:52px;font:inherit;font-size:21px;font-weight:800;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:background var(--d-1) var(--e-out)}
  .amt__k:active{background:var(--line);transform:scale(.97)}
  .amt__k .eic{width:22px;height:22px}
  @media (prefers-reduced-motion:reduce){ .amt__chip:active,.amt__k:active{transform:none} }
  .pepv{display:flex;gap:11px;align-items:center;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:10px;margin:2px 0 12px}
  .pepv__ph{width:62px;height:62px;flex:none;border-radius:12px;background:var(--line);display:grid;place-items:center;overflow:hidden}
  .pepv__ph img{width:100%;height:100%;object-fit:cover}
  .pepv__ph .eic{width:22px;height:22px;color:var(--muted)}
  .pepv__in{min-width:0;flex:1}
  .pepv__cap{display:block;font-size:11px;font-weight:900;letter-spacing:.9px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
  .pepv__br{font-size:11px;font-weight:900;letter-spacing:.6px;text-transform:uppercase;color:var(--limeink)}
  .pepv__nm{font-size:14.5px;font-weight:800;color:var(--ink);line-height:1.2;margin:1px 0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pepv__row{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
  .pepv__pr{font-size:17px;font-weight:900;color:var(--ink);letter-spacing:-.5px}
  .pepv__old{font-size:11.5px;color:var(--muted);text-decoration:line-through}
  .pepv__cond{font-size:11px;font-weight:800;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 7px}
  .pepv--empty .pepv__nm,.pepv--empty .pepv__pr{color:var(--muted);font-weight:700}
  /* Подпись шага объясняет, что именно увидит покупатель от этого поля. */
  .pehead__s{font-size:11.5px;color:var(--muted);font-weight:600;line-height:1.35;margin:-2px 0 10px}
  .pedone{display:none;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
  .pedone.on{display:block}
  .pedone .btn{margin:0}
  .penav .btn{flex:1}
  @media (prefers-reduced-motion:reduce){ .pesteps .pestep{animation:none} }
  /* Match по шагам: видно только текущий, поля остальных остаются в разметке */
  /* Заголовок относится к первому шагу: на шаге бюджета «Напиши, что ищешь»
     противоречит тому, что на экране. */
  .matchform--story:not([data-step="0"]) .matchform__hd{display:none}
  .matchform--story .mstep{display:none}
  .matchform--story[data-step="0"] .mstep[data-mstep="0"],
  .matchform--story[data-step="1"] .mstep[data-mstep="1"],
  .matchform--story[data-step="2"] .mstep[data-mstep="2"],
  .matchform--story[data-step="3"] .mstep[data-mstep="3"]{display:block;animation:mqIn .26s var(--e-out)}
  @keyframes mqIn{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
  .mqnav{display:flex;gap:8px;margin-top:14px}
  .mqnav .btn{flex:1}
  @media (prefers-reduced-motion:reduce){ .matchform--story .mstep{animation:none} }
  /* Сторис-полоски пошаговых потоков */
  .stbars{display:flex;gap:4px;margin:2px 0 12px}
  .stbar{flex:1;height:3px;border-radius:2px;background:var(--card2);overflow:hidden;position:relative}
  .stbar.done{background:#D8FF34}
  .stbar.on::after{content:'';position:absolute;inset:0;border-radius:2px;background:#D8FF34;
    transform-origin:left;animation:stFill .5s var(--e-out) forwards}
  @keyframes stFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  @media (prefers-reduced-motion:reduce){ .stbar.on::after{animation:none} }
  .demobar{display:flex;align-items:center;gap:11px;margin:12px 0 4px;padding:12px 14px;border-radius:16px;
    background:#FFB02020;border:1px solid #FFB02055;color:var(--ink)}
  .demobar .eic{flex:0 0 auto;width:22px;height:22px;color:#FFB020}
  .demobar div{flex:1;min-width:0}
  .demobar b{display:block;font-size:13.5px;font-weight:800;line-height:1.25}
  .demobar span{display:block;font-size:11.5px;color:var(--muted);line-height:1.35;margin-top:2px}
  .demobar__b{flex:0 0 auto;border:0;border-radius:999px;background:#FFB020;color:#241a00;font:inherit;
    font-size:12.5px;font-weight:800;padding:8px 14px;cursor:pointer}
  /* Копилка. Пустая — одна строка-приглашение; заполненная — цель, полоса и
     остаток. Полоса того же вида, что у уровня: это один и тот же жест «сколько
     ещё осталось», и рисовать его двумя способами незачем. */
  .wvtg{margin-top:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);padding:14px 16px}
  .wvtg--empty{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}
  .wvtg--empty .eic:last-child{margin-left:auto;width:18px;height:18px;color:var(--muted);flex:0 0 auto}
  .wvtg__h{display:flex;align-items:center;gap:12px}
  .wvtg__ic{flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:var(--card2);display:grid;place-items:center;color:var(--limeink)}
  .wvtg__ic .eic{width:19px;height:19px}
  .wvtg__tx{flex:1;min-width:0}
  .wvtg__tx b{display:block;font-size:14.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .wvtg__tx span{display:block;font-size:12px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}
  .wvtg__edit{flex:0 0 auto;background:none;border:0;padding:4px;cursor:pointer;font-size:12.5px;font-weight:800;color:var(--limeink)}
  .wvtg__bar{margin-top:11px;height:6px;border-radius:3px;background:var(--card2);overflow:hidden}
  .wvtg__bar i{display:block;height:100%;background:#D8FF34;border-radius:3px;transition:width var(--d-3) var(--e-out)}
  .wvtg__foot{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--ink)}
  .wvtg__note{margin-top:4px;font-size:11.5px;color:var(--muted);line-height:1.45}
  @media (prefers-reduced-motion:reduce){ .wvtg__bar i{transition:none} }
  .wvearn{margin-top:22px;border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden}
  .wvearn__h{font-size:15px;font-weight:800;padding:14px 16px 4px}
  .wvearn__r{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line)}
  .wvearn__ic{flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:var(--card2);display:flex;align-items:center;justify-content:center;color:var(--ink)}
  .wvearn__tx{flex:1;min-width:0}
  .wvearn__tx b{display:block;font-size:13.5px;font-weight:800;line-height:1.25}
  .wvearn__tx span{display:block;font-size:11.5px;color:var(--muted);line-height:1.35;margin-top:2px}
  .wvearn__b{flex:0 0 auto;border:0;border-radius:999px;background:#D8FF34;color:#141a05;font:inherit;font-size:12.5px;font-weight:800;padding:8px 15px;cursor:pointer;transition:transform var(--d-1) var(--e-out)}
  .wvearn__b:active{transform:scale(.94)}
  .wvearn__done{flex:0 0 auto;font-size:12px;font-weight:800;color:var(--muted)}
  @media (prefers-reduced-motion:reduce){ .wvearn__b{transition:none} .wvearn__b:active{transform:none} }
  /* карта кешбэка с кольцом */
  /* быстрые действия */
  .wv__use{margin-top:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);padding:16px}
  .wv__use__h{font-size:14px;font-weight:900;color:var(--ink);margin-bottom:10px}
  /* Строки списка шли встык, и три пункта читались как один абзац.
     Последнему разделитель не нужен — под ним и так граница блока. */
  .wv__use__r{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
  .wv__use__r:last-of-type{border-bottom:0}
  .wv__use__ic{flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:var(--card2);display:grid;place-items:center;font-size:18px}
  .wv__use__r div{flex:1;min-width:0}
  .wv__use__r b{display:block;font-size:14px;font-weight:800;color:var(--ink)}
  .wv__use__r div span{display:block;font-size:12px;color:var(--muted);margin-top:1px}
  .wv__use__note{margin-top:10px;padding-top:12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted);line-height:1.5}
  .wv__gift{margin-top:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);padding:16px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
  .wv__gift__ic{width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,rgba(216,255,52,.9),rgba(183,240,42,.9));display:grid;place-items:center;font-size:23px;flex:0 0 auto}
  .wv__gift__tx{flex:1 1 140px;min-width:120px}
  .wv__gift__tx b{display:block;font-size:14px;font-weight:800;color:var(--ink)}
  .wv__gift__tx span{display:block;font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:2px}
  .wv__gift__b{flex:1 1 100%;display:flex;gap:8px;margin-top:2px}
  /* «Мои подарки» — третья, тихая кнопка: ей пользуются редко, но без неё
     отозвать выпущенный код неоткуда. */
  .wv__gift__mine{width:100%;margin-top:9px;background:none;border:0;padding:6px;cursor:pointer;
    font-size:12.5px;font-weight:700;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
  .gmrow{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
  .gmrow:last-child{border-bottom:0}
  .gmrow__tx{flex:1;min-width:0}
  .gmrow__tx b{display:block;font-size:14px;font-weight:900;letter-spacing:.5px;font-variant-numeric:tabular-nums}
  .gmrow__tx span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
  .gmrow__b{flex:0 0 auto;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--ink);
    padding:8px 13px;font-size:12.5px;font-weight:800;cursor:pointer}
  .gmrow__b:disabled{opacity:.5}
  .wv__gift__b button{flex:1;border-radius:12px;padding:11px;font-size:13.5px;font-weight:800;cursor:pointer;border:0;background:#D8FF34;color:#141a05;transition:transform var(--d-1) var(--e-out)}
  .wv__gift__b button.ghost{background:var(--card2);color:var(--ink);border:1px solid var(--line)}
  .wv__gift__b button:active{transform:scale(.97)}
  .giftcode{margin-top:14px;text-align:center;font-size:23px;font-weight:800;letter-spacing:2px;color:var(--ink);background:var(--card2);border:1.5px dashed #B7F02A;border-radius:16px;padding:18px 12px;cursor:pointer;user-select:all;word-break:break-all}
  .giftinput{width:100%;margin-top:14px;box-sizing:border-box;text-align:center;font-size:19px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--ink);background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:15px 12px;outline:none}
  .giftinput:focus{border-color:#B7F02A}
  /* Подэкраны кошелька: выезжают ПОВЕРХ кошелька, сам кошелёк не закрывается */
  /* Кошелёк прокручивает внутренний блок, а сам слой не скроллится вовсе.
     Иначе припаркованная за правым краем .wvsub делает слой прокручиваемым
     вбок: overflow-x:hidden запрещает это пальцем, но не программно — фокус
     внутрь скрытой панели утаскивал экран на целую ширину. Здесь у слоя
     скроллить нечего, поэтому и утаскивать нечего. */
  #walletView{overflow:hidden;overflow:clip}
  #walletView>.ordview__in{height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(24px + var(--sab))}
  .wvsub{position:absolute;inset:0;background:var(--bg);transform:translateX(100%);transition:transform var(--d-3) var(--e-out);overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:2;visibility:hidden}
  .wvsub.on{transform:translateX(0);visibility:visible}
  .wvs__grp{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
  .wvs__row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 14px;margin-bottom:8px}
  .wvs__row .ic{width:38px;height:38px;border-radius:12px;background:var(--card2);display:grid;place-items:center;color:var(--blue2);flex:0 0 auto}
  .wvs__row .ic .eic{width:19px;height:19px}
  .wvs__row .tx{flex:1;min-width:0}
  .wvs__row .tx b{display:block;font-size:14.5px;font-weight:700;color:var(--ink)}
  .wvs__row .tx span{display:block;font-size:12px;color:var(--muted);margin-top:2px;line-height:1.4}
  .wvs__row .val{font-size:14.5px;font-weight:800;color:var(--ink);white-space:nowrap}
  .wvs__row .val.ok{color:var(--ok)}
  .wvs__row.tap{cursor:pointer}
  .wvs__row.tap:active{transform:scale(.985)}
  .mic.busy{opacity:.5;pointer-events:none}
  .dpfull{margin-top:18px}
  .dpfull__h{display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:800;color:var(--ink);margin-bottom:10px}
  .dpfull__h span{font-size:12px;font-weight:700;color:var(--muted)}
  .dpfull__g{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 0 7px}
  .dpfull__r{display:flex;align-items:flex-start;gap:9px;padding:8px 11px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:6px}
  .dpfull__r .ic{flex:0 0 auto;color:var(--ok);margin-top:1px}
  .dpfull__r .ic .eic{width:15px;height:15px}
  .dpfull__r .tx{flex:1;font-size:13px;color:var(--ink);line-height:1.4}
  .dpfull__r.soon{opacity:.62}
  .dpfull__r.soon .ic{color:var(--muted)}
  .dpfull__r .tag{font-size:11px;font-weight:800;color:var(--muted);background:var(--card2);border-radius:6px;padding:2px 6px;flex:0 0 auto}
  .tghow{display:flex;flex-direction:column;gap:8px}
  .tghow__r{display:flex;gap:11px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:11px 13px}
  .tghow__r b{width:22px;height:22px;border-radius:7px;background:var(--lime2,#D8FF34);color:#141a05;font-size:12px;display:grid;place-items:center;flex:0 0 auto}
  .tghow__r span{font-size:13px;color:var(--ink);line-height:1.45}
  .wvs__note{font-size:11.5px;color:var(--muted);line-height:1.6;margin-top:10px}
  .wv__qa{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
  .wv__qa button{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;color:var(--ink);transition:transform var(--d-1) var(--e-out),border-color var(--d-2) var(--e-out)}
  .wv__qa button:active{transform:scale(.96)}
  .wv__qa .ic{width:40px;height:40px;border-radius:12px;background:var(--card2);display:grid;place-items:center;color:var(--blue2)}
  .wv__qa .ic .eic{width:20px;height:20px}
  .wv__qa span{font-size:11.5px;font-weight:700;color:var(--muted);text-align:center;line-height:1.2}
  /* начисления */
  .wv__acc{margin-top:8px}
  .wv__arow{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
  .wv__arow:last-child{border-bottom:0}
  .wv__alogo{width:40px;height:40px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-weight:900;font-size:14px;color:#fff;background:linear-gradient(140deg,#22262f,#111318);overflow:hidden}
  .wv__alogo img{width:100%;height:100%;object-fit:cover}
  .wv__ainfo{flex:1;min-width:0}
  .wv__ainfo b{font-size:14px;font-weight:800;color:var(--ink);display:block}
  .wv__ainfo span{font-size:12px;color:var(--muted)}
  .wv__aamt{font-size:15px;font-weight:900;color:#4C8700;font-variant-numeric:tabular-nums}
  :root[data-theme="dark"] .wv__aamt{color:#A6E635}
  /* ожидающий */
  .wv__pend{margin-top:14px;border-radius:20px;background:rgba(216,255,52,.1);border:1px solid rgba(216,255,52,.28);padding:15px 16px;display:flex;align-items:center;gap:13px}
  .wv__pend .ic{width:40px;height:40px;border-radius:12px;background:rgba(216,255,52,.2);display:grid;place-items:center;color:var(--blue2);flex:0 0 auto}
  .wv__pend .ic .eic{width:20px;height:20px}
  .wv__pend b{font-size:16px;font-weight:900;color:var(--ink)}
  .wv__pend span{font-size:12px;color:var(--muted);display:block;margin-top:1px}
  /* мини-график статистики */
  .wv__stat{margin-top:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);padding:16px}
  .wv__stat__h{display:flex;align-items:baseline;justify-content:space-between}
  .wv__stat__big{font-size:24px;font-weight:900;letter-spacing:-.6px;margin-top:6px}
  .wv__stat__up{font-size:12px;color:#4C8700;font-weight:700;margin-top:2px}
  :root[data-theme="dark"] .wv__stat__up{color:#A6E635}
  .wv__chart{margin-top:10px;width:100%;height:80px;display:block}
  /* ===== Мои заказы 2.0 (список по макету) ===== */
  .ordsearch{display:flex;align-items:center;gap:9px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:11px 13px;margin:0 0 12px}
  .ordsearch .sic{width:18px;height:18px;color:var(--muted);flex:0 0 auto}
  .ordsearch input{flex:1;border:0;background:none;outline:none;font-size:14.5px;color:var(--ink)}
  .ordtabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;-webkit-overflow-scrolling:touch}
  .ordtabs::-webkit-scrollbar{display:none}
  .ordtab{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-weight:800;font-size:13px;cursor:pointer;white-space:nowrap;transition:background var(--d-2) var(--e-out),color var(--d-2) var(--e-out)}
  .ordtab.on{background:#D8FF34;color:#141a05;border-color:transparent}
  .ordtab .cnt{font-size:11px;font-weight:900;background:var(--card2);color:var(--ink);border-radius:999px;padding:1px 7px;min-width:18px;text-align:center}
  .ordtab.on .cnt{background:rgba(20,26,5,.18);color:#141a05}
  .ord2{border-radius:20px;background:var(--card);border:1px solid var(--line);padding:16px;margin-bottom:12px}
  .ord2__h{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
  .ord2__num{font-size:16px;font-weight:900;color:var(--ink)}
  .ord2__date{font-size:12px;color:var(--muted);margin-top:2px}
  .ord2__price{font-size:16px;font-weight:900;color:var(--ink);text-align:right}
  .ost{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;margin-top:3px}
  .ost .dt{width:7px;height:7px;border-radius:50%}
  .ost.lime{color:#5FA300}.ost.lime .dt{background:#A6E635}
  :root[data-theme="dark"] .ost.lime{color:#A6E635}
  .ost.blue{color:#3B82F6}.ost.blue .dt{background:#3B82F6}
  .ost.purple{color:#A855F7}.ost.purple .dt{background:#A855F7}
  .ost .eic{width:14px;height:14px}
  /* горизонтальный таймлайн в карточке */
  .htl{display:flex;margin:16px 0 6px}
  .htl__s{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:7px}
  .htl__s::before{content:'';position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--line)}
  .htl__s:first-child::before{display:none}
  .htl__s.on::before{background:#A6E635}
  .htl__dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--card2);border:2px solid var(--line);color:var(--muted);z-index:1}
  .htl__dot .eic{width:14px;height:14px}
  .htl__s.on .htl__dot{background:#D8FF34;border-color:transparent;color:#141a05}
  .htl__l{font-size:11px;color:var(--muted);text-align:center;line-height:1.15;font-weight:700;max-width:64px}
  .htl__s.on .htl__l{color:var(--ink)}
  .ord2__prod{display:flex;align-items:center;gap:12px;padding-top:14px;margin-top:12px;border-top:1px solid var(--line)}
  .ord2__img{width:56px;height:56px;border-radius:12px;background:var(--card2);overflow:hidden;flex:0 0 auto}
  .ord2__img img{width:100%;height:100%;object-fit:cover}
  .ord2__pn{flex:1;min-width:0}
  .ord2__pn b{font-size:14px;font-weight:700;color:var(--ink);display:block;line-height:1.25}
  .ord2__pn span{font-size:12px;color:var(--muted)}
  .ord2__pn .sel{display:flex;align-items:center;gap:4px;margin-top:3px}
  .ord2__pn .sel .vok{width:13px;height:13px;color:#8CD400}
  .ord2__pp{font-size:14px;font-weight:800;color:var(--ink);text-align:right;white-space:nowrap}
  .ord2__pp span{display:block;font-size:11px;color:var(--muted);font-weight:600}
  .ord2__open{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;padding:13px;border-radius:16px;background:var(--card2);border:0;color:var(--ink);font-weight:800;font-size:14px;cursor:pointer;transition:transform var(--d-1) var(--e-out)}
  .ord2__open:active{transform:scale(.98)}
  .ord2__open .eic{width:16px;height:16px;color:var(--muted)}
  /* ===== Поиск 2.0 (полноэкранный) ===== */
  .searchview{position:fixed;inset:0;z-index:62;background:var(--bg);transform:translateY(100%);transition:transform var(--d-3) var(--e-out);display:flex;flex-direction:column;padding-top:var(--tgtop)}
  .searchview.on{transform:none}
  .searchview__in{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .sv__top{display:flex;align-items:center;gap:12px;padding:16px 18px 8px}
  .sv__ttl{flex:1}
  .sv__ttl h2{font-size:26px;font-weight:900;letter-spacing:-.6px;margin:0;line-height:1.05}
  .sv__ttl p{font-size:13.5px;color:var(--muted);margin:6px 0 0;line-height:1.4}
  .sv__x{width:40px;height:40px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:0 0 auto}
  .sv__x .eic{width:19px;height:19px}
  .sv__search{margin:14px 18px 0;display:flex;align-items:center;gap:10px;background:var(--card);border:2px solid var(--cyan);border-radius:16px;padding:0 14px;min-height:54px;box-shadow:0 0 0 4px rgba(216,255,52,.14)}
  .sv__search.plain{border-color:var(--line);box-shadow:none}
  .sv__search .sic{width:20px;height:20px;color:var(--muted);flex:0 0 auto}
  .sv__search input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ink);font-size:16px;font-weight:500}
  .sv__search .clr{width:26px;height:26px;border-radius:50%;background:var(--card2);border:0;display:grid;place-items:center;cursor:pointer;color:var(--muted);flex:0 0 auto}
  .sv__body{padding:8px 18px 24px}
  .sv__chips{display:flex;gap:8px;overflow-x:auto;padding:16px 0 4px;-webkit-overflow-scrolling:touch}
  .sv__chips::-webkit-scrollbar{display:none}
  .sv__chip{flex:0 0 auto;padding:9px 15px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--ink);font-weight:700;font-size:13.5px;white-space:nowrap;cursor:pointer}
  .sv__seclbl{display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px}
  .sv__seclbl b{font-size:17px;font-weight:900;letter-spacing:-.2px}
  .sv__seclbl a{font-size:13px;font-weight:700;color:var(--blue2);cursor:pointer}
  .sv__pop{display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .sv__pop::-webkit-scrollbar{display:none}
  .sv__popc{flex:0 0 auto;width:118px;padding:16px 14px;border-radius:20px;background:var(--card);border:1px solid var(--line);cursor:pointer}
  .sv__popc .ic{width:40px;height:40px;color:var(--blue2);margin-bottom:12px}
  .sv__popc .ic .eic{width:34px;height:34px}
  .sv__popc b{display:block;font-size:14px;font-weight:800;color:var(--ink)}
  .sv__popc span{font-size:11.5px;color:var(--muted)}
  .sv__rec{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}
  .sv__rec .eic{width:18px;height:18px;color:var(--muted);flex:0 0 auto}
  .sv__rec .txt{flex:1;font-size:15px;color:var(--ink)}
  .sv__rec .del{width:26px;height:26px;display:grid;place-items:center;border:0;background:none;color:var(--muted);cursor:pointer}
  .sv__rec .del .eic{width:16px;height:16px}
  .sv__seen{display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-top:2px}
  .sv__seen::-webkit-scrollbar{display:none}
  .sv__seenc{flex:0 0 auto;width:112px;cursor:pointer}
  .sv__seenc img{width:112px;height:112px;border-radius:16px;object-fit:cover;background:var(--card2)}
  .sv__seenc b{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-top:7px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sv__seenc span{font-size:13px;font-weight:900;color:var(--ink)}
  /* результаты */
  .sv__sug{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}
  .sv__sug .eic{width:18px;height:18px;color:var(--muted);flex:0 0 auto}
  .sv__sug .txt{flex:1;font-size:15px;color:var(--ink)}
  .sv__sug .go{width:16px;height:16px;color:var(--muted);opacity:.6}
  .sv__shop{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer}
  .sv__shop__l{width:46px;height:46px;border-radius:50%;background:#161a22;color:#fff;font-weight:900;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}
  .sv__shop__l img{width:100%;height:100%;object-fit:cover}
  .sv__shop__n{flex:1;min-width:0;font-weight:800;color:var(--ink);font-size:15px;display:flex;align-items:center;gap:5px}
  .sv__shop__n .vok{width:15px;height:15px;color:#8CD400}
  .sv__shop__m{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:2px;display:flex;align-items:center;gap:6px}
  .sv__shop__m .eic{width:13px;height:13px;color:#D8C400;fill:#F4D533}
  .sv__prod{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer}
  .sv__prod img{width:52px;height:52px;border-radius:12px;object-fit:cover;background:var(--card2);flex:0 0 auto}
  .sv__prod__n{flex:1;min-width:0}
  .sv__prod__n b{font-size:14px;font-weight:700;color:var(--ink);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sv__prod__n span{font-size:12px;color:var(--muted)}
  .sv__prod__p{font-weight:900;font-size:14px;color:var(--ink);white-space:nowrap}
  /* ===== Визард 2.0 — премиум-степпер ===== */
  .wzsteps{display:flex;align-items:flex-start;margin:6px 0 18px;padding:0 4px}
  .wzstep{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;min-width:0}
  .wzstep::before{content:'';position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0}
  .wzstep:first-child::before{display:none}
  .wzstep.done::before,.wzstep.on::before{background:#A6E635}
  .wzstep__n{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:14px;background:var(--card2);border:2px solid var(--line);color:var(--muted);z-index:1;position:relative}
  .wzstep.on .wzstep__n{background:#D8FF34;border-color:transparent;color:#141a05;box-shadow:0 0 0 4px rgba(216,255,52,.2)}
  .wzstep.done .wzstep__n{background:#D8FF34;border-color:transparent;color:#141a05}
  .wzstep__n .eic{width:16px;height:16px}
  .wzstep__l{font-size:11px;font-weight:700;color:var(--muted);text-align:center;line-height:1.15;max-width:74px}
  .wzstep.on .wzstep__l,.wzstep.done .wzstep__l{color:var(--ink)}
  /* фильтр-лист поиска */
  .svfltbtn{position:fixed;left:50%;bottom:calc(20px + var(--sab));transform:translateX(-50%);z-index:63;display:none;align-items:center;gap:8px;background:#141a05;color:#D8FF34;border:0;border-radius:999px;padding:13px 22px;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 12px 30px -8px rgba(0,0,0,.5)}
  .searchview.on ~ .svfltbtn.show{display:inline-flex}
  .svfltbtn .eic{width:18px;height:18px}
  .svflt{position:fixed;left:0;right:0;bottom:0;z-index:64;background:var(--card);border-radius:28px 26px 0 0;border-top:1px solid var(--line);transform:translateY(100%);transition:transform var(--d-3) var(--e-out);max-height:86vh;overflow-y:auto;padding:8px 20px calc(20px + var(--sab));box-shadow:0 -20px 50px -20px rgba(0,0,0,.4)}
  .svflt.on{transform:none}
  .svflt__grip{width:44px;height:5px;border-radius:3px;background:var(--line);margin:6px auto 12px}
  .svflt__h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .svflt__h b{font-size:19px;font-weight:900}
  .svflt__h a{color:var(--blue2);font-weight:700;font-size:13.5px;cursor:pointer}
  .svflt__lbl{font-size:13px;font-weight:800;color:var(--ink);margin:18px 0 10px}
  .svflt__chips{display:flex;gap:8px;flex-wrap:wrap}
  .svflt__chip{padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card2);color:var(--ink);font-weight:700;font-size:13.5px;cursor:pointer}
  .svflt__chip.on{background:#D8FF34;color:#141a05;border-color:transparent}
  .svflt__range{display:flex;align-items:center;gap:12px;margin-top:4px}
  .svflt__range input[type=range]{flex:1;accent-color:#B7F02A}
  .svflt__range b{font-weight:900;font-size:14px;white-space:nowrap}
  .svflt__go{width:100%;margin-top:16px;background:#D8FF34;color:#141a05;border:0;border-radius:16px;padding:15px;font-size:15px;font-weight:800;cursor:pointer}
  .svflt__scrim{position:fixed;inset:0;z-index:63;background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity var(--d-2) var(--e-out)}
  .svflt__scrim.on{opacity:1;pointer-events:auto}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  /* ===== Чекаут 2.0 — карточные секции ===== */
  .cosec{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:16px;margin-top:12px}
  .cosec__lbl{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:800;color:var(--muted);margin-bottom:11px;text-transform:none}
  .cosec__lbl a{color:var(--blue2);cursor:pointer;font-weight:700;font-size:12.5px}
  /* Строка продавца — кнопка: у неё в макете стрелка, а стрелка обещает переход.
     Ведёт она на витрину продавца; на первом шаге кассы терять при этом нечего —
     корзина хранится, а адрес спрашивают только на следующем. */
  .coseller{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:0;padding:0;color:var(--ink)}
  .coseller__tx{flex:1;min-width:0}
  .coseller__v{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--ok);font-weight:600;margin-top:2px}
  .coseller__v .vok{width:13px;height:13px;color:var(--ok)}
  .coseller__go{flex:0 0 auto;display:grid;place-items:center;color:var(--muted)}
  .coseller__go .eic{width:18px;height:18px}
  .coseller__logo{width:42px;height:42px;border-radius:50%;background:#161a22;color:#fff;font-weight:900;display:grid;place-items:center;font-size:15px;flex:0 0 auto;overflow:hidden}
  .coseller__logo img{width:100%;height:100%;object-fit:cover}
  .coseller__n{font-weight:800;color:var(--ink);font-size:15px;display:flex;align-items:center;gap:5px;
               overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .coseller__n .vok{width:15px;height:15px;color:#8CD400;flex:0 0 auto}
  .coseller__cnt{font-size:11.5px;color:var(--muted);margin-top:2px;display:block}
  /* Кнопка подстановки из Telegram — над полями, но тише главной. */
  .cotgfill{width:100%;margin:2px 0 6px;justify-content:center}
  .cotgfill svg{width:16px;height:16px;margin-right:6px}
  /* Позиция заказа: фото, что это, размер и сумма. */
  .coitem{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line)}
  .coitem:last-child{border-bottom:0;padding-bottom:0}
  .coitem__ph{flex:0 0 auto;width:56px;height:56px;border-radius:12px;overflow:hidden;background:var(--card2);display:grid;place-items:center;color:var(--muted)}
  .coitem__ph img{width:100%;height:100%;object-fit:cover;display:block}
  .coitem__ph svg{width:22px;height:22px}
  .coitem__tx{flex:1;min-width:0}
  .coitem__n{font-size:13.5px;font-weight:800;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .coitem__m{font-size:11.5px;color:var(--muted);margin-top:3px}
  .coitem__s{flex:0 0 auto;font-size:14px;font-weight:900;letter-spacing:-.2px}
  .cowallet{margin-top:12px;padding:12px 14px;border-radius:16px;background:var(--card);border:1px solid var(--line);transition:border-color var(--d-2) var(--e-out),background var(--d-2) var(--e-out)}
  .cowallet__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .cowallet.on{border-color:rgba(216,255,52,.5);background:rgba(216,255,52,.08)}
  .cowallet__sl{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
  .cowallet__sl input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:linear-gradient(90deg,#B7F02A,#D8FF34);outline:none}
  .cowallet__sl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid #A6E635;box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer}
  .cowallet__sl input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid #A6E635;cursor:pointer}
  .cowallet__slb{display:flex;align-items:center;justify-content:space-between;margin-top:9px}
  .cowallet__slb b{font-size:15px;font-weight:900;color:#4C8700}
  .cowallet__max{border:1px solid var(--line);background:var(--card2);color:var(--ink);font-size:12px;font-weight:800;padding:6px 13px;border-radius:9px;cursor:pointer}
  .cowallet__max:active{transform:scale(.96)}
  .cowallet__l{display:flex;align-items:center;gap:11px;min-width:0}
  .cowallet__ic{flex:0 0 auto;width:36px;height:36px;border-radius:12px;background:rgba(216,255,52,.16);display:grid;place-items:center;color:var(--blue2)}
  .cowallet__ic .eic{width:19px;height:19px}
  .cowallet__l b{display:block;font-size:13.5px;font-weight:800;color:var(--ink)}
  .cowallet__l span{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
  .cocash{display:flex;align-items:center;gap:12px;margin-top:12px;padding:14px 16px;border-radius:16px;background:rgba(216,255,52,.1);border:1px solid rgba(216,255,52,.3)}
  .cocash .ic{width:36px;height:36px;border-radius:10px;background:rgba(216,255,52,.2);display:grid;place-items:center;color:var(--blue2);flex:0 0 auto}
  .cocash .ic .eic{width:19px;height:19px}
  .cocash b{font-size:15px;font-weight:900;color:var(--ink)}
  .cocash span{font-size:12px;color:var(--muted);display:block}
  /* ===== Системные/пустые состояния (единый компонент) ===== */
  .estate{display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px 22px 30px;gap:4px}
  .estate__art{width:132px;height:132px;border-radius:34px;display:grid;place-items:center;margin-bottom:12px;position:relative;
    background:radial-gradient(70% 70% at 50% 35%,var(--card2),transparent 72%)}
  .estate__art img{width:100%;height:auto;max-height:290px;object-fit:contain}
  .estate__art .emo{display:flex;line-height:1;color:var(--muted);opacity:.75}
  .estate__art .emo .eic{width:62px;height:62px;stroke-width:1.2}
  .estate__art--img{width:min(268px,68vw);height:auto;background:none!important;border-radius:0;box-shadow:none!important}
  .estate__art--img .ring{display:none}   /* лаймовый ореол был рассчитан на маленький квадрат */
  .estate__art--img img{filter:drop-shadow(0 12px 26px rgba(90,120,20,.18))}
  .estate__art .ring{position:absolute;inset:0;border-radius:34px;background:radial-gradient(circle at 70% 20%,rgba(216,255,52,.25),transparent 60%);pointer-events:none}
  .estate h3{font-size:20px;font-weight:900;color:var(--ink);letter-spacing:-.3px;margin:2px 0 0}
  .estate p{font-size:14px;color:var(--muted);line-height:1.5;max-width:280px;margin:6px 0 0}
  .estate__btn{margin-top:15px;background:#D8FF34;color:#141a05;border:0;border-radius:16px;padding:13px 26px;font-size:14.5px;font-weight:800;cursor:pointer;transition:transform var(--d-1) var(--e-out)}
  .estate__btn.sec{background:var(--card);border:1px solid var(--line);color:var(--ink)}
  .estate__btn:active{transform:scale(.96)}
  .estate__link{margin-top:12px;font-size:13px;font-weight:700;color:var(--muted);background:none;border:0;cursor:pointer}
  /* 3D-иллюстрация целиком (заголовок и кнопка зашиты в картинку) */
  @keyframes estatePop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
  /* прячем старую «шапку» витрины — вместо неё макет 2.0 */
  #buyerHome #welcome,#buyerHome .filters,#buyerHome #chips{display:none!important}
  /* директория магазинов (вкладка «Магазины») */
  .dirhead{margin:6px 0 14px}
  .dirhead h2{font-size:24px;font-weight:900;color:var(--ink);letter-spacing:-.4px;margin:0}
  .dirhead span{font-size:13px;color:var(--muted);font-weight:600}
  /* Магазины 2.0 — маркетплейс */
  .shd__srch{margin-bottom:6px;cursor:pointer}
  .mshoprow{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .mshoprow::-webkit-scrollbar{display:none}
  .mshop{flex:0 0 auto;width:170px;scroll-snap-align:start;border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden;cursor:pointer;position:relative;box-shadow:0 12px 30px -22px rgba(30,50,90,.4);transition:transform var(--d-1) var(--e-out)}
  .mshop:active{transform:scale(.98)}
  .mshop__cover{height:74px;background:linear-gradient(135deg,#E4F5B0,#C4EA6E);position:relative;display:grid;place-items:center;overflow:hidden}
  .mshop__cover img{width:100%;height:100%;object-fit:cover}
  .mshop__init{font-size:30px;font-weight:900;color:#5a7a00;opacity:.5}
  .mshop__logo{position:absolute;left:14px;top:56px;width:40px;height:40px;border-radius:12px;background:var(--card);border:2px solid var(--card-solid);box-shadow:0 4px 12px rgba(0,0,0,.15);display:grid;place-items:center;font-weight:900;color:var(--ink);overflow:hidden;z-index:2}
  .mshop__logo img{width:100%;height:100%;object-fit:cover;border-radius:10px}
  .mshop__b{padding:22px 13px 13px}
  .mshop__nm{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:800;color:var(--ink)}
  .mshop__nm b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mshop__nm .vok{width:14px;height:14px;color:#8CD400;flex:0 0 auto}
  .mshop__meta{font-size:12px;color:var(--muted);margin-top:3px}
  .mshop__rt{color:#B58900;font-weight:700}
  .mshopgrid{display:flex;flex-direction:column;gap:14px}
  .mshopf{border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden;cursor:pointer;box-shadow:0 14px 34px -24px rgba(30,50,90,.42)}
  .mshopf__cover{height:96px;background:linear-gradient(135deg,#E4F5B0,#C4EA6E);display:grid;place-items:center;overflow:hidden}
  .mshopf__cover img{width:100%;height:100%;object-fit:cover}
  .mshopf__cover .mshop__init{font-size:38px}
  .mshopf__row{display:flex;align-items:center;gap:12px;padding:12px 14px}
  .mshopf__logo{flex:0 0 auto;width:48px;height:48px;border-radius:16px;margin-top:-34px;border:3px solid var(--card-solid);background:var(--card);box-shadow:0 6px 16px rgba(0,0,0,.16);display:grid;place-items:center;font-weight:900;font-size:18px;color:var(--ink);overflow:hidden}
  .mshopf__logo img{width:100%;height:100%;object-fit:cover;border-radius:12px}
  .mshopf__info{flex:1;min-width:0}
  .mshopf__nm{display:flex;align-items:center;gap:6px;font-size:15.5px;font-weight:800;color:var(--ink)}
  .mshopf__nm b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mshopf__nm .vok{width:15px;height:15px;color:#8CD400;flex:0 0 auto}
  .mshopf__meta{font-size:12.5px;color:var(--muted);margin-top:2px}
  .mshopf__thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0 14px}
  .mshopf__thumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--card2)}
  .mshopf__open{margin:12px 14px 14px;width:calc(100% - 28px);border:0;border-radius:12px;padding:12px;font-size:14px;font-weight:800;background:#D8FF34;color:#141a05;cursor:pointer}
  .mshopf__open:active{transform:scale(.98)}
  .shdcoll{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
  .shdcoll::-webkit-scrollbar{display:none}
  .shdcoll__c{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:10px 15px;font-size:13.5px;font-weight:700;color:var(--ink);cursor:pointer}
  .shdcoll__c span{font-size:15px}
  .shdcoll__c:active{transform:scale(.95)}
  .shdsort{display:flex;gap:7px;overflow-x:auto;padding:2px 0 8px;margin-bottom:2px}
  .shdsort::-webkit-scrollbar{display:none}
  .shdsort__c{flex:0 0 auto;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap;transition:background var(--d-1) var(--e-out),color var(--d-1) var(--e-out),border-color var(--d-1) var(--e-out)}
  .shdsort__c.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
  .shdsort__c:active{transform:scale(.95)}
  :root[data-theme="dark"] .shdsort__c.on{background:#D8FF34;color:#141a05;border-color:#D8FF34}
  .dirrow{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:20px;background:var(--card);border:1px solid var(--line);margin-bottom:10px;cursor:pointer;transition:transform var(--d-1) var(--e-out),border-color var(--d-2) var(--e-out)}
  .dirrow:active{transform:scale(.985)}
  @media (hover:hover) and (pointer:fine){.dirrow:hover{border-color:rgba(216,255,52,.5)}}
  .dirrow__logo{width:50px;height:50px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-weight:900;font-size:19px;color:#fff;background:#161a22;overflow:hidden}
  .dirrow__logo img{width:100%;height:100%;object-fit:cover}
  .dirrow__m{flex:1;min-width:0}
  .dirrow__nm{display:flex;align-items:center;gap:5px;font-weight:800;font-size:15px;color:var(--ink)}
  .dirrow__nm b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dirrow__meta{display:flex;align-items:center;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600;margin-top:2px}
  /* filters */
  .filters{display:flex;gap:8px;margin-top:10px;align-items:center;position:relative}
  .sortsel{flex:1;display:inline-flex;align-items:center;gap:7px;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-weight:700;font-size:13.5px;cursor:pointer;text-align:left;min-width:0}
  .sortsel__ic .eic{width:16px;height:16px;vertical-align:-3px;color:var(--blue2)}
  .sortsel__t{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sortsel__chev{width:15px;height:15px;opacity:.65;transition:transform var(--d-2) var(--e-out);flex:0 0 auto}
  .sortsel.open .sortsel__chev{transform:rotate(180deg)}
  .sortmenu{position:absolute;left:0;top:calc(100% + 6px);z-index:44;min-width:230px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:6px;box-shadow:0 22px 50px -12px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));display:none}
  .sortmenu.on{display:block;animation:fadeUp .2s both}
  .sortmenu button{display:flex;align-items:center;gap:10px;width:100%;padding:11px 10px;border:0;background:transparent;color:var(--ink);font-weight:700;font-size:13.5px;border-radius:10px;text-align:left;transition:background var(--d-1) var(--e-out)}
  .sortmenu button .eic{width:17px;height:17px;color:var(--blue2);flex:0 0 auto}
  .sortmenu button .sortmenu__ck{margin-left:auto;width:15px;height:15px;opacity:0}
  .sortmenu button.on{background:var(--card2);color:var(--blue2)}
  .sortmenu button.on .sortmenu__ck{opacity:1}
  .sortmenu button:active{background:var(--card2)}
  .cartdh h3 .eic{width:19px;height:19px;vertical-align:-3px;margin-right:7px;color:var(--acc)}
  .cartshop span .eic{width:15px;height:15px;vertical-align:-2px;margin-right:5px;color:var(--muted)}
  .citem__del .eic{width:17px;height:17px}
  .eic.big{width:54px;height:54px}
  .welc__cta .eic,.welc__ghost .eic{width:18px;height:18px;vertical-align:-3px;margin-right:7px}
  .chip .eic{width:13px;height:13px;vertical-align:-2px;margin-right:4px}
  .empty .eic.big{width:46px;height:46px}



  .dmethod .eic{width:22px;height:22px;margin-bottom:2px;color:var(--blue2)}
  .adrcard__del .eic{width:16px;height:16px}
  .pdguar .eic{width:12px;height:12px;vertical-align:-2px;margin-right:3px}
  .pricebtn{display:inline-flex;align-items:center;padding:11px 15px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-weight:800;font-size:13.5px;white-space:nowrap}
  .pricebtn.on{border-color:var(--blue);color:var(--blue2);background:#D8FF3414}
  /* deal of day */
  .deal{margin-top:12px;border-radius:20px;overflow:hidden;background:linear-gradient(120deg,#1E2433,#2b3346);border:1px solid #D8FF3455;display:flex;gap:12px;align-items:center;padding:12px;box-shadow:0 14px 32px -14px rgba(0,0,0,.45);cursor:pointer}
  .deal:active{transform:scale(.99)}
  .deal img{width:76px;height:76px;border-radius:16px;object-fit:cover;flex:0 0 auto;background:#2b3346}
  .deal__t{flex:1;min-width:0}
  .deal__l{font-size:11px;font-weight:900;letter-spacing:1px;color:#D8FF34;text-transform:uppercase}
  .deal__n{font-weight:800;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0}
  .deal__p{font-weight:900;font-size:16px}.deal__p s{color:#9aa6b6;font-weight:600;font-size:12px;margin-left:6px}
  .deal__c{font-size:12px;font-weight:800;color:#D8FF34;font-variant-numeric:tabular-nums;margin-top:3px}
  /* cross-sell / social */
  .lbl{font-weight:800;font-size:13.5px;margin:16px 0 4px}
  .simrow{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
  .smini{flex:0 0 100px;cursor:pointer}
  .smini img{width:100px;height:100px;border-radius:12px;object-fit:cover;background:var(--card2)}
  .smini .n{font-size:11px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .smini .pr{font-size:12.5px;font-weight:800}
  /* grid */
  .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
  .p{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;position:relative;transition:transform var(--d-1) var(--e-out),box-shadow var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out);animation:rise .45s backwards}
  .grid .p:nth-child(1){animation-delay:.02s}.grid .p:nth-child(2){animation-delay:.06s}.grid .p:nth-child(3){animation-delay:.1s}.grid .p:nth-child(4){animation-delay:.14s}.grid .p:nth-child(5){animation-delay:.18s}.grid .p:nth-child(6){animation-delay:.22s}
  .p:active{transform:scale(.96)}
  @media (hover:hover) and (pointer:fine){.p:hover{transform:translateY(-3px);box-shadow:0 18px 40px -20px rgba(0,0,0,.55);border-color:rgba(255,255,255,.16)}}
  @media (prefers-reduced-motion:reduce){.grid .p{animation:none!important}}
  /* премиум: хит = тонкая лаймовая рамка + мягкая нейтральная тень, без кислотного ореола */
  .p.hot{border-color:rgba(216,255,52,.5);box-shadow:0 14px 34px -18px rgba(0,0,0,.5)}
  :root[data-theme="light"] .p.hot{box-shadow:0 14px 30px -18px rgba(20,40,80,.22)}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  /* тонкий внутренний хайлайт вместо бегущей мультицветной обводки */
  .p::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);pointer-events:none;z-index:2}
  :root[data-theme="light"] .p::after{box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
  body.partner .p::after{background:linear-gradient(120deg,#D8FF34,#B8860B,#fff2c0,#D8FF34,#B8860B);background-size:300% 100%}
  .p__rate{font-size:11px;color:var(--muted);margin-top:4px;font-weight:700}
  .p__rate b{color:#ffd76a}
  /* «Недавно смотрели» */
  .recent{margin-top:14px}
  .recent__t{font-size:12px;font-weight:900;color:var(--muted);letter-spacing:.5px;margin:0 2px 8px;text-transform:uppercase}
  .recentrow{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .rmini{flex:0 0 auto;width:88px;cursor:pointer}
  .rmini img{width:88px;height:88px;border-radius:12px;object-fit:cover;border:1px solid var(--line)}
  .rmini .rn{font-size:11px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rmini .rp{font-size:11px;font-weight:900}
  .favbtn{display:flex;align-items:center;gap:6px;padding:0 13px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--muted);font-weight:800;font-size:13px}
  .favbtn.on{border-color:var(--err);color:#ff9a90;background:#F0443814}
  .pdrate{font-size:13px;color:var(--muted);font-weight:700;margin:2px 0 6px}
  .pdrate b{color:#ffd76a}
  .pdstockbar{height:7px;border-radius:999px;background:var(--card2);overflow:hidden;margin:6px 0 2px}
  .pdstockbar>i{display:block;height:100%;background:linear-gradient(90deg,#F04438,#D8FF34)}
  .pdsave{font-size:12px;font-weight:900;color:var(--blue);background:#D8FF3422;border:1px solid #D8FF3455;padding:2px 8px;border-radius:8px;vertical-align:middle;margin-left:4px}
  .pdactions{display:flex;gap:8px;margin-top:8px}.pdactions .btn{margin-top:0}
  .szchartbtn{border:0;background:none;color:var(--blue2);font-weight:800;font-size:12px;text-decoration:underline}
  /* В тёмной теме --blue2 и есть лайм, там всё в порядке. В светлой он оливковый
     (#4C8700, контраст 4.40 при норме 4.5) и читается как болотный, а не как
     фирменный цвет. Лаймом же текст на белом не сделать вовсе: у #D8FF34 на белом
     контраст 1.15. Поэтому правило светлой темы: буквы чернильные, лайм — в
     подчёркивании и заливках. */
  :root[data-theme="light"] .szchartbtn,:root[data-theme="light"] .pddcalc{color:var(--ink);text-decoration-color:#9CC000;text-decoration-thickness:2px;text-underline-offset:2px}
  .pophint{font-size:12px;color:var(--muted);margin-top:6px}.pophint b{color:var(--gold)}
  /* Цвет текста здесь был задан числом — бледно-мятным и бледно-песочным, под
     тёмную тему. В светлой он оставался тем же и ложился на почти белую
     подложку: замерено в браузере, контраст 1.43 и 1.37 при норме 4.5 —
     строки было попросту не прочитать. Текст берём обычный, лайм остаётся
     заливкой: так оба блока читаются в любой теме (стало ~15). */
  .deliv{font-size:12px;color:var(--ink);background:#D8FF3412;border:1px solid #D8FF342e;border-radius:12px;padding:9px 11px;margin-top:12px}
  .szchart{width:100%;border-collapse:collapse;font-size:13px}.szchart th,.szchart td{border:1px solid var(--line);padding:8px 10px;text-align:center}.szchart th{background:var(--card2);font-weight:800}
  .cmp2{width:100%;border-collapse:collapse;font-size:12.5px}.cmp2 td{border:1px solid var(--line);padding:7px 9px;vertical-align:top;width:40%}.cmp2 td:first-child{width:20%}
  .reportlink{display:block;width:100%;text-align:center;margin-top:10px;padding:6px;font-size:11.5px;color:var(--muted);background:none;border:0;text-decoration:underline}
  /* Лента и карточка товара — одно соотношение 3:4. Квадрат в ленте резал вещь,
     а после нажатия она внезапно становилась вертикальной: кадр «прыгал». */
  .p__imgwrap{position:relative;width:100%;aspect-ratio:3/4;background:var(--card2);overflow:hidden}
  .p__img{width:100%;height:100%;object-fit:cover;display:block}
  .p__b{position:absolute;top:8px;left:8px;font-size:11px;font-weight:900;letter-spacing:.5px;padding:3px 8px;border-radius:999px;background:#D8FF34;color:#1E2433;text-transform:uppercase}
  .p__shop{position:absolute;top:8px;right:8px;font-size:11px;font-weight:800;padding:3px 7px;border-radius:999px;background:#0b3a86cc;color:#cfe6ff;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .p__shop--ver{background:#D8FF34e6;color:#0D1117}.p__shop--ver b{color:#0D1117}
  .p__ad{position:absolute;bottom:8px;left:8px;z-index:2;font-size:11px;font-weight:800;letter-spacing:.3px;padding:2px 7px;border-radius:6px;background:rgba(13,17,23,.88);color:#e8eef5;text-transform:uppercase}
  .p__stock{position:absolute;bottom:8px;left:8px;font-size:11px;font-weight:900;padding:3px 8px;border-radius:999px;background:#F0443822;color:#ff9a90;border:1px solid #F0443855}
  .p__mysize{position:absolute;top:8px;right:8px;font-size:11px;font-weight:900;padding:3px 7px;border-radius:999px;background:#D8FF34;color:#04121f;box-shadow:0 2px 8px rgba(18,183,106,.5)}
  .szpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:7px}  /* сетка: последний ряд не растягивается на всю ширину */
  .pdwaitlink{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;padding:6px 0;border:0;background:none;color:var(--limeink);font:inherit;font-size:13px;font-weight:800;cursor:pointer;text-align:left}
  .pdwaitlink .eic{width:15px;height:15px;flex:0 0 auto}
  .pdsug{display:flex;align-items:flex-start;gap:8px;width:100%;margin:10px 0 0;padding:10px 12px;border:1px solid rgba(59,178,115,.45);border-radius:16px;background:rgba(59,178,115,.10);color:var(--ink);font:inherit;font-size:13px;font-weight:700;line-height:1.4;text-align:left;cursor:pointer}
  .pdsug .eic{width:16px;height:16px;flex:0 0 auto;color:#3BB273;margin-top:1px}
  .pdsug span{flex:1;min-width:0}
  .pdsug__go{flex:0 0 auto;padding:4px 10px;border-radius:999px;background:#1E7A4C;color:#fff;font-size:12.5px;font-weight:800;white-space:nowrap}
  .sz.sug{position:relative}
  .sz.sug::after{content:"";position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:999px;background:#3BB273}
  .pdfit{margin:10px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
  .pdfit__h{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
  .pdfit__h .eic{width:14px;height:14px}
  .pdfit>b{display:block;margin-top:4px;font-size:14px;color:var(--ink)}
  .pdfit__bar{display:flex;gap:2px;height:6px;margin-top:9px;border-radius:999px;overflow:hidden}
  .pdfit__bar i{display:block;min-width:4px}
  .pdfit__lg{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:12px;color:var(--muted)}
  .pdfit__lg span{display:inline-flex;align-items:center;gap:5px}
  .pdfit__lg i{width:8px;height:8px;border-radius:999px;display:inline-block}
  .pdfit__n{margin-top:6px;font-size:11.5px;color:var(--muted)}
  .pdfit__small{background:#F2A43A}.pdfit__true{background:#3BB273}.pdfit__large{background:#5B8DEF}
  .shrev__fit{font-weight:800;color:var(--ink)}
  .pdwaitlink:disabled{opacity:.7;cursor:default}
  .myszchip{display:inline-flex;align-items:center;gap:6px;margin:4px 0 10px;padding:8px 10px 8px 12px;border:1px solid rgba(216,255,52,.45);border-radius:999px;background:rgba(216,255,52,.14);color:var(--ink);font:inherit;font-size:13px;font-weight:800;cursor:pointer}
  .myszchip .eic{width:15px;height:15px}
  .myszchip .eic:last-child{opacity:.6}
  .szp{min-width:40px;padding:9px 0;flex:1 1 40px;border:1.5px solid var(--line);border-radius:12px;background:var(--card2);color:var(--ink);font-weight:800;font-size:13px}
  .szp.on{border-color:var(--cyan);background:#D8FF3422;color:var(--ink);font-weight:800}
  .szp:active{transform:scale(.94)}
  .p__fav{position:absolute;bottom:8px;right:8px;width:30px;height:30px;border-radius:50%;background:#070b14aa;border:0;color:#fff;font-size:15px;display:grid;place-items:center}
  .p__fav.on{color:var(--err)}
  .p__in{padding:10px 11px 12px}
  .p__brand{font-size:11px;color:var(--muted);font-weight:700}
  .p__name{font-size:13.5px;font-weight:800;line-height:1.25;margin:1px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:34px}
  .p__prow{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-variant-numeric:tabular-nums}
  .p__price{font-size:17px;font-weight:900}
  .p__old{font-size:12px;color:var(--muted);text-decoration:line-through}
  .p__off{font-size:11px;font-weight:900;color:#1E2433;background:#D8FF34;padding:1px 6px;border-radius:6px}
  .p__cta{width:100%;margin-top:9px;border:0;border-radius:12px;padding:9px;font-weight:900;font-size:13px;background:#D8FF34;color:#1E2433;cursor:pointer;box-shadow:0 8px 18px -8px rgba(0,0,0,.45);transition:transform var(--d-1) var(--e-out)}
  .p__cta:active{transform:scale(.96)}
  .p__cta.out{background:var(--card2);color:var(--muted);box-shadow:none;cursor:default}
  .p__oos{position:absolute;inset:0;background:#070b14bb;display:grid;place-items:center;font-weight:900;color:#fff;letter-spacing:1px}
  .sk{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;height:250px}
  /* Мерцание даёт .skb (одна анимация на всё приложение). Здесь было своё —
     на background-position под именем shimmer, — но ниже по файлу то же имя
     переопределено на translateX, и вместо блика по карточке ездил сам
     каркас. Два @keyframes с одним именем держит tests/dead-css.test.mjs. */
  .sk__i{width:100%;aspect-ratio:1/1}
  .sk__l{height:12px;margin:12px 11px;border-radius:6px}
  /* buttons */
  .btn{position:relative;display:block;width:100%;padding:15px;border:0;border-radius:16px;font-weight:900;font-size:15px;background:#D8FF34;color:#1E2433;cursor:pointer;overflow:hidden;box-shadow:0 12px 26px -10px rgba(0,0,0,.42)}
  .btn::after{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);animation:sheen 3s ease-in-out infinite}
  @keyframes sheen{0%{left:-60%}55%,100%{left:130%}}
  .btn:active{transform:scale(.98)}
  .btn[disabled]{opacity:.5;box-shadow:none}.btn[disabled]::after{display:none}
  .btn.sec{background:transparent;border:1px solid var(--line);color:var(--ink);box-shadow:none;font-weight:800}.btn.sec::after{display:none}
  .btn.sm{width:auto;display:inline-block;padding:9px 14px;font-size:13px;border-radius:12px}
  .rip{position:absolute;border-radius:50%;background:rgba(255,255,255,.4);transform:scale(0);animation:rip .55s ease-out;pointer-events:none}
  @keyframes rip{to{transform:scale(3.2);opacity:0}}
  /* sheet */
  /* Подложка под листом была почти непрозрачной (88%) в обеих темах: сквозь неё
     не видно ничего, и стеклянный лист вёл себя как обычная плотная панель —
     размывать под собой было нечего. Делаем её достаточно тёмной, чтобы текст
     листа читался, но настолько прозрачной, чтобы под ним оставался экран.
     У корзины такое различие по темам уже было — приводим к нему и лист. */
  .scrim{position:fixed;inset:0;z-index:70;background:rgba(6,10,18,.62);backdrop-filter:blur(var(--gb-s));-webkit-backdrop-filter:blur(var(--gb-s));opacity:0;visibility:hidden;transition:var(--d-2) var(--e-out)}
  :root[data-theme="light"] .scrim{background:rgba(20,30,50,.42)}
  .scrim.on{opacity:1;visibility:visible}
  /* Лист лежит на экране отдельной карточкой, а не приклеен к нижнему краю:
     видно, что под ним есть содержимое, и скруглены все четыре угла, а не два.
     Прячется на 115%, а не на 100% — иначе снизу оставалась бы полоска высотой
     в собственный отступ. Точка покоя осталась transform:none, поэтому
     перетаскивание за грип работает без изменений. */
  .sheet{position:fixed;left:8px;right:8px;bottom:calc(8px + var(--sab));z-index:71;background:var(--bg2);border-radius:28px;max-height:94vh;display:flex;flex-direction:column;transform:translateY(115%);transition:transform var(--d-3) var(--e-out);border:1px solid var(--line);overflow:hidden}
  /* Оформление — не шторка, а экран: по макету владельца оно занимает всё окно.
     Модификатор, потому что тот же лист показывает карточку товара, заказ,
     переписку и кабинет продавца — тем полный экран не нужен.
     Два класса в селекторе не для красоты: ниже по файлу медиа-запрос ещё раз
     задаёт .sheet{max-height}, и одноклассовое правило он бы перебил — низ экрана
     оставался бы срезанным на полсотни точек. */
  .sheet.sheet--full{left:0;right:0;bottom:0;border-radius:0;border-left:0;border-right:0;border-bottom:0;
                     top:0;max-height:none;min-height:0;padding-top:var(--tgtop)}
  .sheet--full .sheet__grip{margin-top:6px}
  /* Карточка товара во весь экран: вместо «язычка» — строка с «назад». */
  .sheet--pd .sheet__grip{display:none}
  .restimer{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:#F5A62318;border:1px solid #F5A62355;font-size:12.5px;font-weight:700;color:var(--ink);display:flex;flex-direction:column;gap:6px}
  .restimer[hidden]{display:none}
  .restimer .eic{width:14px;height:14px;vertical-align:-2px;margin-right:5px}
  .restimer b{font-variant-numeric:tabular-nums}
  .restimer__warn{color:#ff9a90;font-weight:600}
  .rsvsel{width:auto;min-width:96px;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--ink);font:inherit;font-size:14px}
  .pdtop{position:sticky;top:-6px;z-index:3;display:flex;align-items:center;gap:10px;margin:-6px -16px 8px;padding:10px 16px;background:var(--bg2);border-bottom:1px solid var(--line)}
  .pdtop__t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px;font-weight:800;color:var(--ink)}
  .sheet.on{transform:none}
  /* Событие от площадки в переписке. Отличается от сообщения человека рамкой и
     подписью: выдавать автомат за ответ поддержки нельзя. */


  /* 💬 Список чатов. Строка — один объект: аватар, две строки текста, счётчик
     непрочитанного и шеврон всегда на одних и тех же местах. */









  /* Время и счётчик — одной колонкой справа: иначе строка с непрочитанным и без
     него имеют разную ширину текста и список «дышит» при чтении. */


  /* 🔎 Поиск и фильтры над списком. Появляются только когда диалогов достаточно,
     чтобы их было тяжело пробежать глазами. */



  /* Рамку и фон снимает общее правило «поле внутри готовой оправы» ниже: у
     стеклянных полей эти свойства объявлены с !important, и локально их не снять. */







  /* 👉 Действия под строкой. Строка едет по X, панель лежит под ней — так
     раскрытие не двигает соседей и не пересчитывает высоту списка. */
  .chwrap{position:relative;overflow:hidden;border-radius:16px}


  /* Строки стеклянные, поэтому панель под ними просвечивала во всём списке —
     лаймовая полоса шла через каждый диалог. Показываем её только у той строки,
     которую сейчас тянут или уже раскрыли. */
  .chacts{position:absolute;right:0;top:0;bottom:0;width:216px;display:flex;gap:0;
          opacity:0;pointer-events:none;transition:opacity var(--d-1) var(--e-out)}
  .chwrap.open .chacts,.chwrap.drag .chacts{opacity:1;pointer-events:auto}
  .chact{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
         border:0;background:var(--card2);color:var(--ink);font-size:11px;font-weight:700;cursor:pointer;padding:0 4px}
  .chact .eic{width:17px;height:17px}
  .chact i{font-style:normal;line-height:1.15;text-align:center}
  .chact--arch{background:var(--blue);color:#10160a}
  /* Звёздочка у закреплённого — рядом с именем, а не отдельной колонкой:
     колонка ради одного значка сдвинула бы все строки списка. */
  .chrow__pin{display:inline-flex;flex:0 0 auto;color:var(--blue);margin-right:5px}
  /* Метка стороны: в одном списке две разные переписки, и понять, кто кому
     пишет, надо до открытия. */
  .chrow__pin .eic{width:13px;height:13px}
  /* 📝 Заметка в строке. Селектор с двумя классами — иначе её съело бы правило
     .chrow__m span (серый nowrap), как это было с плашкой товара. */


  .chntags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
  .chntag{padding:7px 11px;border-radius:999px;border:1px solid var(--line);background:var(--card);
          color:var(--ink);font-size:12.5px;font-weight:700;cursor:pointer}
  /* 🏷 Договорённая цена. На карточке — плашкой, потому что это уже обязательство
     площадки перед покупателем, а не подсказка; в корзине — строкой у цены. */
  .ofac{display:flex;gap:9px;align-items:flex-start;margin:12px 0 2px;padding:11px 13px;border-radius:16px;
        background:rgba(0,200,83,.09);border:1px solid rgba(0,200,83,.32)}
  .ofac .eic{width:16px;height:16px;flex:0 0 16px;margin-top:1px;color:var(--ok)}
  .ofac b{display:block;font-size:13.5px;font-weight:800;color:var(--ink)}
  .ofac i{display:block;margin-top:3px;font-style:normal;font-size:12px;line-height:1.45;color:var(--muted)}
  /* 🎁 Скидка за комплект в корзине: набранная — акцентом, не набранная —
     спокойной подсказкой, чтобы не выглядела как уже применённая. */
  .bnbar{display:flex;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;border-radius:16px;
         background:var(--card2);border:1px solid var(--line);font-size:12.5px;font-weight:700;color:var(--muted)}
  .bnbar .eic{width:15px;height:15px;flex:0 0 15px}
  .bnbar--on{background:rgba(0,200,83,.1);border-color:rgba(0,200,83,.34);color:var(--ink)}
  .bnbar--on .eic{color:var(--ok)}
  .bnx{font-style:normal;font-size:12px;color:var(--muted);font-weight:700}
  .cofr s{opacity:.6}
  .cofr b{color:var(--ok);font-weight:800}
  /* 📋 Строка списка «мои предложения». Принятая и встречная выделены рамкой:
     по ним есть что делать, остальные — просто история. */
  .ofrow{background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px 13px;margin-top:8px}
  .ofrow--ok{border-color:rgba(0,200,83,.4)}
  .ofrow--act{border-color:var(--blue)}
  .ofrow__h{display:flex;align-items:center;gap:8px}
  .ofrow__h b{flex:1;min-width:0;font-size:13.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ofrow__st{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--muted);
             background:var(--card);border-radius:999px;padding:3px 9px}
  .ofrow--ok .ofrow__st{color:var(--ok)}
  .ofrow--act .ofrow__st{color:var(--blue)}
  .ofrow__p{margin-top:5px;font-size:14px}
  .ofrow__p s{color:var(--muted);font-weight:600;margin-right:4px}
  .ofrow__p b{font-weight:800}
  .ofrow__p .muted{font-size:12px}
  .ofrow__n{margin-top:6px;font-size:12px;line-height:1.45;color:var(--muted)}
  .ofrow__b{display:flex;gap:8px;margin-top:10px}
  .ofrow__b .btn{width:auto;margin:0;flex:1}
  /* Ряд кнопок брони. Раньше каждая была block-кнопкой с инлайновым width:auto:
     они сжимались по содержимому и разъезжались по высоте. Раздел был скрыт,
     поэтому этого никто не видел. */
  .rsvbtns{display:flex;gap:8px;margin-top:10px}
  .rsvbtns .btn{width:auto;margin:0;flex:1}
  .rsvbtns .btn.sec{color:var(--err)}
  /* 🏷 Плашка объявления внутри строки: миниатюра, название, цена. Селектор с
     двумя классами — иначе её съело бы правило .chrow__m span (серый nowrap). */

  .chrow__it img{width:16px;height:16px;flex:0 0 16px;border-radius:4px;object-fit:cover;background:var(--card2)}
  .chrow__it>i:first-child{width:22px;height:22px;flex:0 0 22px;border-radius:6px;background:var(--card2);
                           display:grid;place-items:center;color:var(--muted)}
  .chrow__it>i:first-child .eic{width:13px;height:13px}
  .chrow__itt{font-style:normal;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis}
  /* Цена — акцентом темы: чистый лайм на белом фоне светлой темы не читается. */
  .chrow__itp{font-style:normal;font-weight:800;flex:0 0 auto;color:var(--blue)}
  /* 🎁 Предпросмотр магазина в приглашении: продавец видит собранную за него
     витрину до того, как на что-то согласится. */
  .invgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
  .invt{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px;text-align:left;overflow:hidden}
  .invt__i{width:100%;aspect-ratio:1;border-radius:8px;object-fit:cover;display:block;background:var(--card2)}
  .invt__n{font-size:11px;font-weight:700;color:var(--ink);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .invt__p{font-size:11px;color:var(--muted)}
  /* 💳 Форма Stripe внутри приложения. Лежит поверх листа, а не вместо него:
     под ней остаётся экран заказа, к которому покупатель возвращается, если
     закроет оплату. Раньше на этом месте открывался встроенный браузер Telegram
     и приложение сворачивалось ровно в момент оплаты. */
  .paywrap{position:fixed;inset:0;z-index:90;background:var(--payBg);display:flex;flex-direction:column;padding-top:var(--tgtop);padding-bottom:var(--sab)}
  /* Шапка без черты: экран оплаты и так отделён от всего, а линия под заголовком
     резала его надвое ровно там, где начинается главное. Слева — «назад», как в
     остальном приложении, а не крестик справа. */
  .paywrap__bar{display:flex;align-items:center;gap:10px;padding:12px 8px 4px;font-size:15px;font-weight:800;color:var(--ink)}
  .paywrap__bar b{flex:1;text-align:center;font-size:16px;font-weight:800}
  .paywrap__x{background:none;border:0;color:var(--ink);line-height:0;padding:8px 10px;cursor:pointer;flex:0 0 auto}
  .paywrap__x .eic{width:22px;height:22px}
  /* Место крестика справа занимает пустышка той же ширины — иначе заголовок
     уезжал бы из середины. */
  .paywrap__sp{width:42px;flex:0 0 auto}
  /* Запасной путь в шапке накладки: заметный, но не спорящий с анкетой за
     внимание — поэтому текстом, а не кнопкой. margin-left:auto прижимает пару
     «ссылка + крестик» вправо, к крестику. */
  /* Кегли и воздух на этом экране отличаются от остального приложения: там
     подписи мельче и жирнее, здесь — крупнее и спокойнее. Экран один, решение
     на нём одно, и торопить его плотной вёрсткой незачем. */
  .pesum{margin:26px 0 30px;text-align:center}
  .pesum__mark{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#0D1117;margin-bottom:26px}
  /* На тёмной теме чёрный квадрат логотипа почти сливается с фоном — даём ему
     еле заметный край, как в макете. На светлой он и так виден. */
  :root[data-theme="dark"] .pesum__mark{border:1px solid var(--payLine)}
  /* Экран оплаты на тёмной теме глубже остального приложения: кнопка Apple Pay
     чёрная, и на обычном фоне её края не видно вовсе. */
  /* Кнопку Apple Pay рисует Stripe внутри рамки, и на тёмном она чёрное на
     чёрном. Край даём снаружи — тем же скруглением, что уходит в appearance. */
  :root[data-theme="dark"] .paywrap__box #peExp:not(:empty),:root[data-theme="dark"] .paywrap__box #payExp>div:first-child{border:1px solid var(--payLine);border-radius:12px;overflow:hidden}
  .pesum__mark svg{width:30px;height:30px;display:block}
  /* Крупным — то, ради чего нажимают: «7 дней бесплатно». Цена следом обычным
     размером, чтобы её нельзя было не заметить и нельзя было спутать с нулём. */
  .pesum__a{font-size:30px;font-weight:800;letter-spacing:-.4px;line-height:1.15}
  .pesum__n{font-size:17px;color:var(--muted);margin-top:10px;font-weight:500}
  .pesum__s{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;color:var(--muted);margin-top:18px;font-weight:500}
  /* Щит с галочкой внутри: заливка и галочка — два значка друг на друге, потому
     что в наборе они лежат отдельно. Один зелёный щит без галочки читался как
     предупреждение, а не как «всё в порядке». */
  .pesh{position:relative;width:20px;height:20px;flex:0 0 auto;display:block}
  .pesh .eic{position:absolute;left:0;top:0;width:20px;height:20px;color:var(--ok)}
  .pesh .eic+.eic{width:11px;height:11px;left:4.5px;top:4.5px;color:#fff;stroke-width:3.4}
  /* «или» между экспресс-кнопкой и остальным. Рисуется только когда экспресс
     правда поднялся: в вебвью Telegram Apple Pay часто недоступен, и черта под
     пустотой означала бы, что выбор есть, когда его нет. */
  .peor{display:flex;align-items:center;gap:16px;margin:26px 2px;font-size:14px;color:var(--muted);font-weight:500}
  /* Свой display побеждает атрибут hidden: без этой строки черта «или»
     показывалась всегда, в том числе под пустым местом вместо Apple Pay. */
  .peor[hidden]{display:none}
  .peor::before,.peor::after{content:'';flex:1;height:1px;background:var(--payLine)}
  .pesec{font-size:17px;font-weight:700;color:var(--ink);margin:30px 2px 12px}
  .pefoot{font-size:13px;color:var(--muted);text-align:center;margin:26px 0 8px;line-height:1.5}
  /* Ссылки на условия должны быть видно, что нажимаются: тем же цветом без
     подчёркивания они читались как обычный текст. */
  .pefoot a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
  /* Что спишется сегодня и что потом — одной строкой прямо под кнопкой, там же,
     где палец. Ниже этого только юридическая приписка. */
  .pedue{font-size:14.5px;color:var(--muted);text-align:center;margin-top:14px;font-weight:500}
  /* Покупательская оплата: марка в шапке, заголовок, карточка покупки. */
  .paybrand{display:inline-flex;align-items:center;justify-content:center;gap:9px}
  .paybrand__m{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:12px;background:#0D1117}
  :root[data-theme="dark"] .paybrand__m{border:1px solid var(--payLine)}
  .paybrand__m svg{width:18px;height:18px;display:block}
  .payh{font-size:28px;font-weight:800;letter-spacing:-.5px;margin:18px 0 0;color:var(--ink)}
  .payh__s{font-size:15px;color:var(--muted);margin-top:6px;font-weight:500}
  .paycard{display:flex;gap:14px;margin:22px 0 4px;padding:14px;border-radius:20px;background:var(--payCard);border:1px solid var(--payLine)}
  .paycard__im{flex:0 0 auto;width:92px;height:92px;border-radius:16px;background:var(--payBg);overflow:hidden;display:grid;place-items:center}
  .paycard__im img{width:100%;height:100%;object-fit:cover}
  .paycard__im .eic{width:30px;height:30px;color:var(--muted)}
  .paycard__b{min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center}
  .paygd__t{font-size:15.5px;font-weight:700;color:var(--ink);line-height:1.3}
  .paygd__s{font-size:13.5px;color:var(--muted);margin-top:2px}
  .paygd+.paygd{margin-top:8px}
  .paygd__m{font-size:13px;color:var(--muted);margin-top:6px}
  .paycard__p{font-size:20px;font-weight:800;color:var(--ink);margin-top:8px;letter-spacing:-.3px}
  .paycard__sh{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-top:6px;font-weight:500}
  .paycard__sh .eic{width:15px;height:15px;color:var(--ok);flex:0 0 auto}
  .paysafe{display:flex;align-items:center;justify-content:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--ink);margin-top:16px}
  /* Экран «оплачено». Галочка — не картинка из набора, а круг с мягким
     ореолом: одна фигура вместо иллюстрации, которую пришлось бы тащить файлом. */
  .payok .paywrap__box{text-align:center}
  .pokx{font-size:20px;line-height:1;color:var(--muted)}
  .pokmark{width:104px;height:104px;margin:26px auto 0;border-radius:999px;background:var(--ok);display:grid;place-items:center;
           box-shadow:0 0 0 18px color-mix(in srgb, var(--ok) 14%, transparent),0 18px 40px -18px color-mix(in srgb, var(--ok) 60%, transparent)}
  .pokmark .eic{width:50px;height:50px;color:#fff;stroke-width:3}
  .pokh{font-size:28px;font-weight:800;letter-spacing:-.5px;margin:24px 0 0;color:var(--ink)}
  .pokh__s{font-size:15px;color:var(--muted);margin-top:8px;line-height:1.5}
  .pokcard{text-align:left;margin-top:24px}
  .pokcard .paycard__b{gap:0}
  .pokpaid{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:10px;padding:5px 11px;border-radius:999px;
           font-size:13px;font-weight:700;color:var(--ok);background:color-mix(in srgb, var(--ok) 14%, transparent)}
  .pokpaid .eic{width:14px;height:14px}
  .pokrows{text-align:left;margin-top:4px;padding:4px 14px;border-radius:20px;background:var(--payCard);border:1px solid var(--payLine)}
  .pokr{display:flex;align-items:center;gap:10px;padding:13px 0;font-size:14px}
  .pokr+.pokr{border-top:1px solid var(--payLine)}
  .pokr__l{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-weight:500}
  .pokr__l .eic{width:17px;height:17px;flex:0 0 auto}
  .pokr__v{margin-left:auto;font-weight:700;color:var(--ink);text-align:right}
  .pokr__cp{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:0;cursor:pointer;font:inherit}
  .pokr__cp .eic{width:16px;height:16px;color:var(--muted)}
  .poknote{display:flex;align-items:center;gap:13px;width:100%;text-align:left;margin-top:16px;padding:14px;border-radius:20px;cursor:pointer;
           font:inherit;color:inherit;
           background:color-mix(in srgb, var(--ok) 9%, transparent);border:1px solid color-mix(in srgb, var(--ok) 26%, transparent)}
  .poknote:active{transform:scale(.99)}
  .poknote>div{flex:1;min-width:0}
  /* Стрелка не тянется и не жмётся: она подсказка, а не часть текста. */
  .poknote>.eic:last-child{width:18px;height:18px;color:var(--muted);flex:0 0 auto;margin-top:0}
  /* Значок в круглой плашке, как в макете: иначе он теряется рядом с двумя
     строками текста. */
  .poknote__ic{flex:0 0 auto;width:46px;height:46px;border-radius:999px;display:grid;place-items:center;
               background:color-mix(in srgb, var(--ok) 16%, transparent)}
  .poknote__ic .eic{width:22px;height:22px;color:var(--ok)}
  .poknote>div>b{display:block;font-size:15px;font-weight:700;color:var(--ink)}
  /* Только текстовый span, а не любой внутри карточки: общее правило
     .poknote span делало блочной и плашку значка, и та переставала центровать
     его. Замерено: display становился block вместо grid. */
  .poknote>div>span{display:block;font-size:13.5px;color:var(--muted);margin-top:3px;line-height:1.45}
  /* Главное действие здесь — уйти в заказы, а не заплатить ещё раз: кнопка
     тёмная, лайм на этом экране уже отработал галочкой. */
  .pokgo{margin-top:26px;background:var(--ink);color:var(--bg)}
  /* Экран ожидания. Кольцо крутится настоящей анимацией, но шаги под ним
     двигаются только по событиям оплаты — это разные вещи. */
  .pbz .paywrap__box{text-align:center}
  .pbzring{position:relative;width:118px;height:118px;margin:30px auto 0;border-radius:999px;display:grid;place-items:center;
           border:3px solid color-mix(in srgb, var(--ok) 20%, transparent)}
  .pbzring::after{content:'';position:absolute;inset:-3px;border-radius:999px;border:3px solid transparent;
                  border-top-color:var(--ok);border-right-color:var(--ok);animation:pbzspin 1.1s linear infinite}
  .pbzring .eic{width:42px;height:42px;color:var(--ink)}
  @keyframes pbzspin{to{transform:rotate(360deg)}}
  .pbzsteps{text-align:left;margin-top:20px;padding:18px;border-radius:20px;
            background:color-mix(in srgb, var(--ok) 8%, transparent);border:1px solid color-mix(in srgb, var(--ok) 22%, transparent)}
  .pbzs{position:relative;display:flex;align-items:center;gap:13px;font-size:15px;color:var(--muted);font-weight:500}
  .pbzs+.pbzs{margin-top:18px}
  /* Линия между кружками: шаги — это путь, а не три отдельные галочки. Идёт от
     кружка вниз до следующего, поэтому у последнего её нет. Пройденный участок
     зелёный, оставшийся — серый. */
  .pbzs:not(:last-child)::before{content:'';position:absolute;left:10px;top:22px;height:18px;width:2px;
                                 margin-left:-1px;background:var(--stepWait)}
  .pbzs.done:not(:last-child)::before{background:var(--ok)}
  /* Точка шага: пустая — впереди, залитая — идёт сейчас, с галочкой — сделан.
     Ждущий кружок и серый отрезок линии рисуем тем же цветом, что и подпись
     ждущего шага. Прежний --payLine (#E1E7F0) лежал на зелёной подложке панели
     (≈#DAEEEA) с контрастом 1.03 при норме 3.0 — третий шаг было просто не
     видно, и путь обрывался на втором. */
  .pbzs>i,.cost__d,.dmcard__r{width:20px;height:20px;border-radius:999px;border:2px solid var(--stepWait);flex:0 0 auto;display:grid;place-items:center}
  .pbzs.on{color:var(--ink);font-weight:700}
  .pbzs.on>i,.cost__i.on .cost__d,.dmcard.on .dmcard__r{border-color:var(--ok)}
  .pbzs.on>i::after,.cost__i.on .cost__d::after,.dmcard.on .dmcard__r::after{content:'';width:9px;height:9px;border-radius:999px;background:var(--ok)}
  .pbzs.done>i,.cost__i.done .cost__d{border-color:var(--ok);background:var(--ok)}
  .pbzs.done>i::after,.cost__i.done .cost__d::after{content:'';width:8px;height:4px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
  /* Шаги кассы: корзина → доставка → оплата. Язык состояний тот же, что на экране
     ожидания оплаты, и рисуется теми же правилами выше — иначе «сделан» выглядел бы
     в кассе одним, а при списании другим. Отличается только раскладка: там шаги
     идут вниз, здесь — поперёк, и линия соединяет соседние кружки, останавливаясь
     у их краёв (12px = радиус 10 + рамка 2), поэтому подкладывать под неё фон не
     нужно. */
  .cost{display:flex;list-style:none;margin:2px 0 14px;padding:0}
  .cost__i{position:relative;flex:1;min-width:0;text-align:center;font-size:11.5px;font-weight:600;color:var(--muted)}
  .cost__i+.cost__i::before{content:'';position:absolute;left:-50%;right:50%;top:10px;height:2px;margin:0 12px;background:var(--stepWait)}
  .cost__i.done+.cost__i::before{background:var(--ok)}
  .cost__d{margin:0 auto 7px}
  .cost__i.on{color:var(--ink);font-weight:800}
  /* Способ доставки: строка-карточка с кружком выбора, как в макете. Прежние три
     плитки в ряд не вмещали ни срок, ни цену — а цена у способа разная, и решение
     без неё покупатель принимает вслепую. */
  .dmcards{display:flex;flex-direction:column;gap:10px;margin:2px 0}
  /* Фирменные цвета перевозчиков. Их два на каждого, и это не прихоть:
     --cbrand — настоящий цвет знака, им красятся заливки и рамки, к ним
     требования по контрасту не применяются; --cink — тот же цвет, доведённый до
     читаемости на тексте. Замерено: #FF6600 на белом даёт 2.94 при норме 4.5 для
     текста, поэтому в светлой теме оранжевый темнеет до #B54800; #DC0032 на
     тёмной карточке даёт 2.79, поэтому там красный светлеет до #EA6584.
     Считали по самому тёмному из светлых фонов — фону листа #e6ebf2, где и
     живёт заголовок списка пакоматов; на белой карточке и на подкрашенной
     выбранной запас только больше. Итог: лист 4.53 и 4.50, карточка 5.42 и
     5.40, выбранная 4.79 и 5.00 при норме 4.5. В тёмной теме так же считали по
     подкрашенной выбранной карточке: 4.53 и 4.51.
     Класс вешает тот, кто рисует строку перевозчика. */
  .cbr--dpd{--cbrand:#DC0032;--cink:#EA6584;--csel:#DC0032}
  .cbr--omniva{--cbrand:#FF6600;--cink:#FF6600;--csel:#FF6600}
  :root[data-theme="light"] .cbr--dpd{--cink:#D50030}
  :root[data-theme="light"] .cbr--omniva{--cink:#B54800}
  /* Значения по умолчанию — через :where, у него нулевой вес. Иначе правило
     .dmcard и правило .cbr--omniva весят одинаково, и побеждает то, что ниже в
     файле: в тёмной теме название оставалось белым, а рамка выбранного —
     зелёной. В светлой это пряталось за более весомым :root[data-theme=light].
     Без перевозчика (самовывоз) подложка приглушённая, текст обычный, а выбор
     отмечается нашим зелёным: выдать самовывозу чужой фирменный цвет значило бы
     приписать ему перевозчика. */
  :where(.dmcard,.ordv__deliv,.lbcar__i,.dpdpick__ic,.ordv__card,.pudohead){--cbrand:var(--muted);--cink:var(--ink);--csel:var(--ok)}
  .dmcard{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px;
          border:1.5px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink)}
  .dmcard.on{border-color:var(--csel);background:color-mix(in srgb, var(--csel) 7%, transparent)}
  /* Геометрия кружка остаётся общей с шагами — меняется только цвет. */
  .dmcard.on .dmcard__r{border-color:var(--csel)}
  .dmcard.on .dmcard__r::after{background:var(--csel)}
  /* Знак перевозчика на подложке его же цвета. Знак в 26 точек сам по себе
     теряется среди серых карточек, а цвет читается раньше, чем название: строка
     становится «оранжевой» или «красной» ещё до того, как её прочли. Цвет
     приходит из реестра перевозчиков переменной --cbrand, поэтому правило одно
     на всех, а не по правилу на знак. У самовывоза перевозчика нет — там
     остаётся приглушённый серый, и подложка не притворяется брендом.
     Доли слабые (14% заливки, 30% рамки): это фон под знаком, а не сам знак —
     перекрась мы его сильнее, знак стал бы читаться хуже. */
  .dmcard__ic{flex:0 0 auto;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;
              background:color-mix(in srgb, var(--cbrand) 14%, transparent);
              box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--cbrand) 30%, transparent)}
  .dmcard__ic .eic{width:22px;height:22px;color:var(--ink)}
  .dmcard__ic img{width:26px;height:26px;object-fit:contain}
  .dmcard__ic .cmark{width:26px;height:26px}
  .dmcard__t{flex:1;min-width:0;display:block}
  .dmcard__n{display:block;font-size:14px;font-weight:800;line-height:1.25;color:var(--cink)}
  .dmcard__s{display:block;font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.35}
  .dmcard__p{display:block;font-size:13.5px;font-weight:800;margin-top:5px}
  .dmcard__p.free{color:var(--ok)}
  /* Подвал кассы: «Назад» занимает столько, сколько нужно подписи, остальное —
     главному действию. */
  /* width:100% у .btn в ряду распирает обе кнопки на всю ширину подвала, и вторая
     уезжает за край. В ряду ширину задаёт flex, а не сама кнопка. */
  /* Шкала «сколько осталось до бесплатной доставки» в корзине. Была убрана,
     пока обещания за ней не стояло; теперь порог считает сервер, и шкала
     показывает то, что правда случится на оплате. */
  .freebar{margin:12px 0;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:11px 13px}
  .freebar__t{font-size:12.5px;font-weight:700;margin-bottom:7px}.freebar__t b{color:var(--cyan)}
  .freebar__t .eic{width:14px;height:14px;vertical-align:-2px;margin-right:5px}
  .freebar__track{height:8px;border-radius:999px;background:var(--card2);overflow:hidden}
  .freebar__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width var(--d-3) cubic-bezier(.2,.9,.2,1)}
  .pbzas{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}
  .pbza{font-size:12.5px;color:var(--muted);font-weight:500;line-height:1.35}
  .pbza__ic{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 8px;border-radius:999px;
            background:color-mix(in srgb, var(--ok) 14%, transparent)}
  .pbza__ic .eic{width:20px;height:20px;color:var(--ok)}
  @media (prefers-reduced-motion:reduce){ .pbzring::after{animation:none;border-color:var(--ok)} }
  /* Экран отказа. Красное — только вокруг значка и в подсказках: заливать им
     полэкрана значит пугать сильнее, чем стоит одна неудачная попытка. */
  .payfail .paywrap__box{text-align:center}
  .pflmark{position:relative;width:104px;height:104px;margin:26px auto 0;border-radius:999px;display:grid;place-items:center;
           background:color-mix(in srgb, var(--err) 12%, transparent)}
  .pflmark>.eic{width:46px;height:46px;color:var(--err)}
  .pflmark__x{position:absolute;right:22px;bottom:24px;width:24px;height:24px;border-radius:999px;background:var(--err);color:#fff;
              display:grid;place-items:center;font-size:13px;font-style:normal;line-height:1;font-weight:700}
  .pflwhy{display:flex;gap:12px;text-align:left;margin-top:16px;padding:14px 16px;border-radius:20px;
          background:color-mix(in srgb, var(--err) 8%, transparent);border:1px solid color-mix(in srgb, var(--err) 24%, transparent)}
  .pflwhy>.eic{width:22px;height:22px;color:var(--err);flex:0 0 auto;margin-top:1px}
  .pflwhy b{display:block;font-size:15px;font-weight:700;color:var(--ink)}
  .pflwhy ul{margin:7px 0 0;padding-left:17px}
  .pflwhy li{font-size:13.5px;color:var(--muted);line-height:1.5}
  .pflhelp{display:flex;align-items:center;gap:13px;width:100%;text-align:left;margin-top:20px;padding:14px 4px;border:0;border-top:1px solid var(--payLine);
           background:none;font:inherit;color:inherit;cursor:pointer}
  .pflhelp__ic{flex:0 0 auto;width:44px;height:44px;border-radius:999px;display:grid;place-items:center;background:var(--payCard)}
  .pflhelp__ic .eic{width:21px;height:21px;color:var(--muted)}
  .pflhelp>div{flex:1;min-width:0}
  .pflhelp>div>b{display:block;font-size:15px;font-weight:700;color:var(--ink)}
  .pflhelp>div>span{display:block;font-size:13px;color:var(--muted);margin-top:2px}
  .pflhelp>.eic:last-child{width:18px;height:18px;color:var(--muted);flex:0 0 auto}
  .paysafe .eic{width:15px;height:15px;color:var(--muted)}
  .cndue{margin:8px 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card2)}
  .cndue__h{font-weight:800;font-size:12.5px;margin-bottom:4px}
  .cndue ul{margin:0;padding-left:18px}
  .cndue li{font-size:12px;color:var(--muted);line-height:1.5}
  .paywrap__lnk{margin-left:auto;background:none;border:0;color:var(--muted);font-size:12.5px;text-decoration:underline;padding:4px 2px;cursor:pointer}
  .paywrap__box{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 16px calc(24px + var(--sab))}
  /* Блоки Stripe приходят своей вёрсткой и стояли вплотную друг к другу:
     Apple Pay упирался в подпись поля почты. Ритм задаём снаружи. */
  .paywrap__box #peExp:not(:empty),.paywrap__box #payExp:not(:empty){margin:20px 0 6px}
  .paywrap__box #peMail:not(:empty),.paywrap__box #payMail:not(:empty){margin:6px 0 4px}
  /* Отказ показываем в форме, а не тостом: тост уезжает, а причину надо
     перечитать — именно она объясняет, что делать дальше. */
  .payerr{margin-top:10px;padding:9px 12px;border-radius:12px;font-size:12.5px;line-height:1.4;
          background:var(--err-a1,rgba(224,59,49,.12));color:var(--err);border:1px solid rgba(224,59,49,.3)}
  /* 🛒 Корзина сверху — liquid glass, выезжает из-под шапки */
  .cartscrim{position:fixed;inset:0;z-index:44;background:rgba(6,10,18,.55);backdrop-filter:blur(var(--gb-s));-webkit-backdrop-filter:blur(var(--gb-s));opacity:0;visibility:hidden;transition:var(--d-2) var(--e-out)}
  .cartscrim.on{opacity:1;visibility:visible}
  /* Корзина открывается во весь экран: это первый шаг покупки, а не подсказка
     поверх витрины. Высоту задаём окном Telegram, а не долей вьюпорта, — внутри
     мини-приложения 100vh больше видимой части, и низ с кнопкой уезжал бы под
     край. */
  .cartdrawer{position:fixed;left:50%;top:0;bottom:0;transform:translateX(-50%) translateY(-108%);width:min(100%,640px);z-index:45;height:var(--tg-viewport-height,var(--vph));display:flex;flex-direction:column;transition:transform var(--d-3) cubic-bezier(.22,1,.36,1);will-change:transform;padding-top:var(--sat)}
  .cartdrawer.on{transform:translateX(-50%) translateY(0)}
  .cartfoot{position:sticky;bottom:-18px;margin:12px -16px -18px;padding:12px 16px calc(18px);background:linear-gradient(180deg,transparent,var(--card) 26%);backdrop-filter:blur(var(--gb-m));-webkit-backdrop-filter:blur(var(--gb-m));border-top:1px solid var(--line)}
  :root[data-theme="light"] .cartfoot{background:linear-gradient(180deg,transparent,#ffffff 26%)}
  .cartfoot .btn{margin-top:8px}
  .cartdrawer__in{margin:0;flex:1 1 auto;min-height:0;border-radius:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px calc(18px);
    background:linear-gradient(160deg,rgba(216,255,52,.16),rgba(166,230,53,.10)),rgba(18,26,44,.72);
    backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));
    border:1px solid #ffffff1f;border-top:0;box-shadow:0 26px 70px rgba(0,0,0,.5),inset 0 1px 0 #ffffff22}
  :root[data-theme="light"] .cartdrawer__in{background:linear-gradient(160deg,rgba(216,255,52,.10),rgba(166,230,53,.06)),rgba(255,255,255,.9);border-color:#ffffff;box-shadow:0 20px 56px rgba(30,45,10,.16),inset 0 1px 0 #fff}
  :root[data-theme="light"] .cartscrim{background:rgba(20,30,50,.4);backdrop-filter:blur(var(--gb-s));-webkit-backdrop-filter:blur(var(--gb-s))}
  .cartdrawer__grip{width:44px;height:5px;border-radius:3px;background:#ffffff44;margin:2px auto 12px}
  .cartdh{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .cartsub{font-size:12.5px;color:var(--muted);font-weight:600;margin:-2px 2px 12px}
  .cartdh h3{margin:0;font-size:18px}
  .cartdh__x{width:40px;height:40px;border-radius:50%;border:0;background:#ffffff1c;color:var(--ink);font-size:24px;line-height:1;font-weight:800;cursor:pointer;backdrop-filter:blur(var(--gb-s));display:grid;place-items:center}
  /* ♿ видимый фокус клавиатуры */
  :focus-visible{outline:2px solid var(--pa,#D8FF34);outline-offset:2px;border-radius:6px}
  .p:focus-visible{outline:2px solid var(--pa,#D8FF34);outline-offset:2px}
  :root[data-theme="light"] .cartdh__x{background:#0e1a2c12}
  .cartdrawer .citem{background:rgba(255,255,255,.06);border:1px solid #ffffff14;border-radius:20px;margin-top:10px;padding:12px;gap:12px}
  :root[data-theme="light"] .cartdrawer .citem{background:#fff;border-color:var(--line);box-shadow:0 8px 22px -16px rgba(40,55,0,.2)}
  .cartdrawer .citem img{width:62px;height:62px;border-radius:16px}
  .cartdrawer .qty{border-radius:12px;background:var(--card2);border-color:transparent}
  .cartdrawer .qty button{width:32px;height:32px;background:transparent}
  .cartdrawer .qty span{min-width:26px}
  .cartdrawer .citem__del{border-radius:0 18px 18px 0}
  .sheet__grip{width:40px;height:4px;border-radius:2px;background:var(--line);margin:9px auto 2px}
  /* Тело прокручивается, подвал — нет. min-height:0 обязателен: без него флекс
     не даёт элементу стать ниже содержимого, и прокрутка уезжает наружу. */
  .sheet__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:6px 16px calc(20px + var(--sab));-webkit-overflow-scrolling:touch}
  /* Подвал сиденья: сюда переезжает полоса покупки. Раньше она была sticky
     внутри прокрутки — и прилипала не к низу окна, а к нижней кромке блока
     содержимого. Замерено в браузере: полоса заканчивалась на 20 px выше низа
     сиденья, и в эту щель было видно ползущий текст.
     Фона у подвала своего нет — он часть сиденья и берёт его подложку, поэтому
     на стеклянной теме не выглядит вставленной плитой. */
  .sheet__foot{flex:0 0 auto;padding:12px 16px calc(12px + var(--sab));border-top:1px solid var(--line)}
  .sheet__foot:empty{display:none}
  /* Когда подвал есть, отступ снизу у тела лишний: он двигал бы содержимое от
     черты на 20 px вверх просто так. */
  .sheet--foot .sheet__body{padding-bottom:10px}
  /* 💬 Премиум-чат (liquid glass) */

  /* Подложка переписки. Раньше это были два ярких лаймовых пятна: текст на них
     читался хуже, а экран выглядел как рекламный баннер, а не как переписка.
     Теперь тёмная основа + едва различимый узор из точек — он даёт глубину,
     но не спорит с пузырями. В светлой теме тот же узор темнее фона. */





  /* чат 2.0 — онлайн-статус, галочка, продукт-карта, реакции */
















  /* Пузырь. Три вещи делают переписку похожей на мессенджер, а не на список
     карточек: пузырь обнимает текст, время стоит в той же строке, а тени нет
     вовсе — она превращала ленту в стопку бумажек. */

  /* Время обтекается текстом справа. Идёт после текста в разметке, поэтому
     встаёт на последнюю строку, а если не помещается — переносится под неё. */



  /* Входящий — плотная плашка, БЕЗ размытия. Стекло здесь просилось, но
     backdrop-filter на элементе, который повторяется в ленте десятками, роняет
     кадры на Android — это уже замеряли, и правило стоит в
     tests/designsystem.test.mjs. Глубину даёт узор подложки вокруг пузыря, а не
     сквозь него. */

  /* Хвостик — только у последнего пузыря группы. Раньше он был у каждого, и
     подряд идущие реплики выглядели лесенкой одинаковых капель вместо одного
     блока. Значение мелкое намеренно: это засечка формы, а не скругление. */























  /* Соцсети продавца — витринная строка, не кнопка действия. */
  .shsoc{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
  .shsoc__a{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:12px;font-weight:700;text-decoration:none;min-height:34px}
  .shsoc__a .eic{width:15px;height:15px}
  .shsoc__a:active{transform:scale(.97)}
  /* ♿ Доступность.
     1) Видимый фокус. Без него управление с клавиатуры и Switch Control — вслепую.
        :focus-visible, а не :focus: у мыши кольцо не появляется, у клавиатуры появляется.
     2) Зона нажатия. Иконки рисуются 28–34px, но палец попадает по 44px — добираем
        невидимой областью через ::after, не трогая саму отрисовку кнопки. */
  :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{
    outline:2px solid var(--limeink);outline-offset:2px;border-radius:inherit}
  :root[data-theme="light"] :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:#2F6B00}
  /* Кнопки карточек .dcard уже стоят position:absolute — это и есть опора для
     ::after. Здесь они были перечислены тоже, правило шло позже и ставило им
     relative: ♡ и «папка» вставали в поток, сдвигали фото вниз и наезжали на
     значок скидки (избранное, «Горячие предложения»). */
  .dchd__back,.dchd__menu,.cbhero__cta,.cbhero__how,.netbar__b,.vsec__all{position:relative}
  .dcard__fav::after,.dcard__note::after,.dcard__move::after,.cbhero__cta::after,.cbhero__how::after,.netbar__b::after,.vsec__all::after{
    content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:max(100%,44px);height:max(100%,44px);border-radius:inherit}
  @media (prefers-reduced-motion:reduce){ .p.fresh,.dcpage{animation:none} }
  /* 📐 ВЫСОТА ЭКРАНА — ОДНА НА ВСЁ ПРИЛОЖЕНИЕ.
     В Telegram высота окна живёт в своей переменной и меняется при разворачивании,
     полноэкранном режиме и открытии клавиатуры. Единицы vh про это не знают: на них
     экраны получались короче окна и читались как «половинка». Считаем один раз здесь,
     дальше все полноэкранные слои и шторки берут --vph. */
  :root{--vph:100dvh}
  /* ============ 🧊 ШКАЛА СТЕКЛА ============
     Блюр был вписан руками 74 раза восемнадцатью разными значениями — от 1px до
     40px, — и одна и та же поверхность получала разный блюр в трёх местах
     файла в зависимости от того, какое правило перекрыло. Три ступени:
       s — мелкие плашки поверх картинки (чипы, кнопки на фото);
       m — карточки и панели внутри экрана;
       l — то, что закрывает собой экран: лист, корзина, нижний бар.
     Насыщенность вынесена туда же: без неё стекло над цветной картинкой
     выцветает в серое. */
  :root{--gb-s:6px;--gb-m:14px;--gb-l:28px;--gsat:165%}
  /* Цвет переписки — тремя переменными, чтобы менялся в одном месте, а не в
     двадцати. Заливка исходящего осталась нашей, лаймовой: «двухтысячными»
     лента выглядела не из-за цвета, а из-за устройства — тяжёлые тени под
     каждым пузырём, время отдельной строкой, хвостик у каждого сообщения и
     подпись автора под каждой репликой. Это и переделано.

     Сам лайм приглушён на пару шагов от неонового: чистый #D6FF3A на плашке во
     всю строку светится и съедает текст, а на приглушённом читается спокойно.
     Подложка ленты при этом ушла в холодный графит — на нём и лайм, и стеклянные
     входящие держат контраст. */
  :root{--chatbg:#0f1319;--chatme:linear-gradient(135deg,#CDEB4A,#A9D634);--chatme-ink:#12190a}
  :root[data-theme="light"]{--chatbg:#eef1f6;--chatme:linear-gradient(135deg,#D2EE55,#AEDA3C);--chatme-ink:#12190a}
  /* Блюр — дорогая операция на каждый кадр. Когда система просит меньше
     движения, это чаще всего слабое устройство или экономия батареи. */
  @media (prefers-reduced-motion:reduce){ :root{--gb-s:0px;--gb-m:0px;--gb-l:0px} }
  /* Без поддержки backdrop-filter полупрозрачный фон остаётся полупрозрачным, и
     текст ложится на то, что под ним. Тогда поверхности становятся плотными. */
  /* Внутри @supports стоит именно 1px, а не переменная: условие разбирается
     до подстановки var(), и с переменной оно невалидно целиком — запасной
     вариант не сработал бы никогда. */
  @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
    .sheet,.cartdrawer,.cartdrawer__in,.tabbar,.sortmenu,.consent{background:var(--bg2)!important}
    .sec,.mcard,.tcard,.capblock,.adrcard,.citem,.ordrow,.payrow,.vipcard,.subups,.chip{background:var(--card)!important}
  }
  /* 🧯 WebView старше 111 не знает color-mix().

   Обычные свойства он бы просто отбросил, и вышло бы терпимо: карточка теряет
   бледную подложку, но текст и рамка на месте. А вот --stepWait это ПЕРЕМЕННАЯ,
   и она ломается иначе: пользовательские свойства не проверяются при разборе,
   непонятное значение спокойно доезжает до подстановки — и уже там правило
   `border:2px solid var(--stepWait)` становится недействительным целиком.
   Вместе с ним пропадает не подложка, а сами кружки шагов в кассе: человек
   перестаёт видеть, на каком он шаге.

   Поэтому здесь не правка существующих правил, а отдельный блок про запас:
   браузеры с поддержкой его пропускают и ничего не замечают, старые получают
   значения из обычных токенов темы — они есть в обеих темах, так что читаемость
   сохраняется. Цвет перевозчика в запасном варианте не передаём: сделать из
   него полупрозрачную подложку без color-mix нечем, а врать сплошной заливкой
   поверх текста хуже, чем показать её нейтральной.

   Проверка написана через `color:` — синтаксис, который старый разбор точно
   отвергнет целиком, а новый примет. */
  /* 🛡 Блок «вы не проверены». Он обязан быть заметнее соседних карточек — в
     этом вся его задача, — но не кричать красным: продавец ничего не нарушил,
     ему просто есть что доделать. Поэтому фирменный лайм и рамка, а не тревога.
     Радиусы из той же шкалы, что и всё остальное (20 и 999 у кнопки). */
  .vhero{margin:0 0 12px;padding:16px;border-radius:20px;position:relative;overflow:hidden;
    background:linear-gradient(160deg,rgba(216,255,52,.18),rgba(216,255,52,.05) 62%,transparent),var(--card);
    border:1px solid rgba(216,255,52,.45);box-shadow:0 14px 34px -20px rgba(0,0,0,.5)}
  :root[data-theme="light"] .vhero{background:linear-gradient(160deg,rgba(95,163,0,.12),rgba(95,163,0,.04) 62%,transparent),var(--card);border-color:rgba(95,163,0,.35)}
  .vhero__top{display:flex;align-items:center;gap:8px;font-size:16px;line-height:1.25}
  .vhero__top .eic{width:20px;height:20px;flex:0 0 auto;color:var(--limeink)}
  .vhero__s{font-size:13px;line-height:1.5;color:var(--muted);margin:8px 0 12px}
  .vhero__s b{color:var(--ink)}
  .vhero__bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden}
  .vhero__bar>i{display:block;height:100%;border-radius:999px;background:var(--limeink);transition:width var(--d-2) var(--e-out)}
  .vhero__n{font-size:11.5px;color:var(--muted);margin:6px 0 12px}
  .vhero__go{width:100%;margin:0;font-size:15px;padding:13px 16px}
  /* Мастер верификации: шаг крупно, вопрос крупно — как в мастере регистрации. */
  .vwstep{font-size:11.5px;color:var(--muted);letter-spacing:.2px}
  .vwq{font-size:17px;font-weight:700;line-height:1.3;margin:0 0 6px}
  @supports not (color: color-mix(in srgb, red 50%, transparent)){
    :root{ --stepWait:var(--muted) }
    .lbcar__m.cmark--logo, .dmcard__ic, .dpdpick__ic--mark{ background:var(--card2); box-shadow:inset 0 0 0 1px var(--line) }
    .pokmark{ box-shadow:0 0 0 18px var(--card2-solid), 0 18px 40px -18px rgba(0,0,0,.25) }
    .pokpaid, .poknote, .poknote__ic, .pbzsteps, .pbza__ic, .dmcard.on, .pflmark, .pflwhy{ background:var(--card2) }
    .poknote, .pbzsteps{ border-color:var(--line) }
    .pflwhy{ border-color:var(--err) }
    .pbzring{ border-color:var(--ok) }
    .dmcard.on{ background:var(--card2) }
    .lvrow.on{ background:var(--card2) }
    .hrow__ic--cash, .hrow__ic--bonus, .hrow__ic--buy{ background:var(--card2) }
    .hpill--ok, .hpill--off, .hpill--burn{ background:var(--card2) }
  }
  @supports not (height:100dvh){ :root{--vph:100vh} }
  html{height:var(--tg-viewport-height,var(--vph))}
  body{min-height:var(--tg-viewport-stable-height,var(--vph))}
  /* Тяга вниз на первом экране закрывала Mini App вместо прокрутки: жест
     уходил странице, а Telegram трактует его как «свернуть». */
  html,body{overscroll-behavior-y:none}
  /* 📱 Нативное ощущение (mobile-native).
     · Внутренние прокрутки не утягивают страницу за собой, когда доходят до края.
     · Касание срабатывает сразу, без ожидания двойного тапа.
     · Долгое нажатие на кнопку не выделяет её подпись и не вызывает меню —
       только на элементах управления, текст и номера заказов копируются как раньше. */
  .sheet__body,.cartdrawer__in,.ordview,.ordview__in,.searchview__in,.wvsub,.svflt,.dcmsgs,.dcpage,.dcpick,.collpick,.pfsheet,.stbody,.paywrap__box{overscroll-behavior:contain}
  button,a,[role="button"],[data-nav],.btn,.chip,.sz,.cat,.p,label{touch-action:manipulation}
  button,[role="button"],[data-nav],.btn,.chip,.sz,.cat,.tabbar,.tabfab,.sheet__grip{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
  /* iOS сам увеличивает страницу, когда фокус попадает в поле мельче 16px,
     и обратно уже не отматывает. На тач-устройствах поднимаем до 16. */
  /* Приоритет здесь обязателен: размер полей задан в десятках компонентных
     правил с большей специфичностью, а зум iOS зависит только от итогового
     значения. Это ограничение платформы, а не вопрос оформления. */
  @media (pointer:coarse){
    input,textarea,select{font-size:16px !important}
  }
  /* Полноэкранные слои — ровно во всё окно, без щелей снизу. */
  .storyv,.chatview,.searchview,.fsv,.ordview,.maint,.splash,.onb,.levelup,.upsell,.wlc{
    height:var(--tg-viewport-height,var(--vph))}
  /* Шторка: не «полоска» под контент, а полноценный экран. Нижняя граница — окно,
     верхняя — не меньше двух третей, чтобы короткий текст не выглядел обрезком. */
  .sheet{max-height:calc(var(--tg-viewport-height,var(--vph)) - 24px);min-height:min(62vh,var(--tg-viewport-height,var(--vph)))}
  /* 📸 Публикация как сторис: полный экран, полоски прогресса, крупные цели. */
  .storyv{position:fixed;inset:0;z-index:70;background:var(--bg);display:none;flex-direction:column}
  .storyv.on{display:flex;animation:stIn var(--d-3) var(--e-out)}
  @keyframes stIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  .storyv__in{display:flex;flex-direction:column;height:100%;padding:calc(10px + var(--tgtop)) 16px calc(12px + var(--sab))}
  .sthead{display:flex;align-items:center;gap:10px;margin-bottom:14px}
  .stbars{flex:1;display:flex;gap:4px}
  .stbar{flex:1;height:3px;border-radius:2px;background:var(--line);overflow:hidden;position:relative}
  .stbar.done{background:var(--limeink)}
  .stbar.on::after{content:'';position:absolute;inset:0;background:var(--limeink);transform-origin:left;animation:stFill var(--d-3) var(--e-out) forwards}
  .sthead__x{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;position:relative}
  /* Контент занимает экран целиком, а не липнет к верху: заголовок сверху, рабочая
     часть внизу вплотную к кнопке. Раньше между ними зияла пустота, и кнопка
     выглядела оторванной от того, что человек делает. */
  .stbody{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}
  .stfill{flex:1;min-height:8px}
  .stt{font-size:24px;font-weight:900;letter-spacing:-.6px;line-height:1.15;margin:4px 0 6px}
  .sts{font-size:13px;color:var(--muted);line-height:1.45;margin:0 0 16px}
  .stlbl{font-size:12px;font-weight:800;color:var(--muted);margin:16px 0 8px}
  .stph{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--card2);animation:cardIn var(--d-2) var(--e-out) both}
  .stph img{width:100%;height:100%;object-fit:cover}
  .stph button{position:absolute;right:5px;top:5px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(0,0,0,.62);color:#fff;font-size:15px;line-height:1;cursor:pointer}
  /* Обложка — крупным слотом 4:5: именно её видно в ленте. Остальные фото
     маленькими, с подписями-подсказками, чего обычно не хватает покупателю. */
  .stcover{position:relative;width:100%;aspect-ratio:4/5;max-height:46vh;border-radius:20px;overflow:hidden;
           border:1.5px dashed var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer}
  .stcover.has{border-style:solid;cursor:default}
  .stcover img{width:100%;height:100%;object-fit:cover}
  .stcover__e{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);text-align:center;padding:0 24px}
  .stcover__e .eic{width:26px;height:26px}
  .stcover__e b{font-size:14.5px;color:var(--ink)}
  .stcover__e span{font-size:12px;line-height:1.4}
  .stcover__b{position:absolute;left:10px;top:10px;padding:5px 10px;border-radius:999px;background:rgba(0,0,0,.55);
              color:#fff;font-size:11px;font-weight:800;letter-spacing:.2px}
  .stslots{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:9px}
  .stslot{aspect-ratio:1;border-radius:16px;border:1.5px dashed var(--line);background:var(--card);color:var(--muted);
          display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;font:inherit;font-size:11px;text-align:center;padding:4px}
  .stslot .eic{width:18px;height:18px}
  .stph__x{position:absolute;right:5px;top:5px;width:26px;height:26px;border-radius:999px;border:0;background:rgba(0,0,0,.62);color:#fff;font-size:15px;line-height:1;cursor:pointer}
  .stph__cv{position:absolute;left:4px;right:4px;bottom:4px;border:0;border-radius:12px;background:rgba(0,0,0,.62);
            color:#fff;font:inherit;font-size:11px;font-weight:800;padding:5px 2px;cursor:pointer;
            white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .stinp{width:100%;box-sizing:border-box;margin-bottom:10px;padding:15px 16px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:16px;font-weight:600}
  .sttiles{display:flex;flex-wrap:wrap;gap:8px}
  .sttile{min-width:52px;min-height:44px;padding:0 14px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:13.5px;font-weight:800;cursor:pointer;transition:transform var(--d-1) var(--e-out),background var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out)}
  .sttile.wide{flex:1 1 44%}
  .sttile.on{background:var(--limeink);border-color:var(--limeink);color:var(--bg)}
  /* Переключатель шкалы у обуви и подпись под ним: сантиметры — подсказка, а не
     вторая система хранения, поэтому и выглядят они как подпись, а не как выбор. */
  .stscale{float:right;display:inline-flex;gap:2px;padding:2px;border-radius:12px;background:var(--card2)}
  .stscale__b{border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:800;
              padding:4px 10px;border-radius:10px;cursor:pointer}
  .stscale__b.on{background:var(--card);color:var(--ink)}
  .pdflaws{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;padding:10px 12px;border-radius:16px;
           background:rgba(245,165,36,.10);border:1px solid rgba(245,165,36,.28);font-size:12.5px;line-height:1.45;color:var(--ink)}
  .pdflaws .eic{width:16px;height:16px;flex:0 0 16px;color:var(--warn);margin-top:1px}
  .sthint{font-size:11.5px;line-height:1.45;color:var(--muted);margin:8px 2px 0}
  .stsw{display:flex;align-items:center;gap:9px;margin:12px 2px 0;font-size:13px;color:var(--ink);cursor:pointer}
  .stsw input{width:20px;height:20px;accent-color:var(--limeink);flex:0 0 auto}
  /* Что останется на руках — под ценой, а не после публикации. */
  .sortmenu__why{width:100%;border:0;border-top:1px solid var(--line);background:transparent;color:var(--muted);
                 font:inherit;font-size:12px;text-align:left;padding:10px 12px;cursor:pointer;display:flex;align-items:center;gap:7px}
  .sortmenu__why .eic{width:14px;height:14px}
  /* Поле, заполненное машиной, видно на глаз, а не только по подписи. */
  .aifilled{border-color:rgba(99,160,255,.55)!important;background:rgba(99,160,255,.06)!important}
  /* «Что сделать сегодня» — список дел, а не плитки метрик: число слева, дело
     словами, стрелка вправо. Пустых групп здесь не бывает. */
  .empty2{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:28px 22px;
          border:1px dashed var(--line);border-radius:20px;background:var(--card)}
  .empty2__ic{width:30px;height:30px;color:var(--muted)}
  .empty2 b{font-size:13.5px;font-weight:700;line-height:1.5;color:var(--ink);max-width:280px}
  .empty2 .btn{margin:2px 0 0;width:auto;padding:11px 20px}
  /* Строки к экранам раздела: заголовок и одна поясняющая фраза — чтобы не
     гадать, что за «Возможности» и чем «Рассылка» отличается от «Рекламы». */
  /* Состояние автопоста: строка под тумблером, цвет — по факту, а не по настроению. */
  .apst{display:flex;gap:8px;align-items:flex-start;margin:8px 0 2px;padding:9px 11px;border-radius:12px;
        background:var(--card2);border:1px solid var(--line);font-size:11.5px;line-height:1.45;color:var(--muted)}
  .apst .eic{width:14px;height:14px;flex:0 0 14px;margin-top:1px}
  .apst--ok{border-color:rgba(0,200,83,.3)}
  .apst--ok .eic{color:var(--ok)}
  .apst--bad{background:rgba(240,68,56,.08);border-color:rgba(240,68,56,.3);color:var(--ink)}
  .apst--bad .eic{color:var(--err)}
  .apst b{color:var(--ink)}
  .apst i{display:block;margin-top:4px;font-style:normal;color:var(--muted)}
  .cabsubs{display:flex;flex-direction:column;gap:8px;margin-top:14px}
  .cabsub{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border-radius:16px;
          background:var(--card);border:1px solid var(--line);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
  .cabsub:active{transform:scale(.99)}
  .cabsub__ic{width:36px;height:36px;flex:0 0 36px;border-radius:12px;background:var(--card2);display:grid;place-items:center;color:var(--blue)}
  .cabsub__ic .eic{width:18px;height:18px}
  .cabsub__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .cabsub__m b{font-size:14px;font-weight:800}
  .cabsub__m span{font-size:11.5px;color:var(--muted);line-height:1.35}
  .cabsub__go{width:16px;height:16px;flex:0 0 16px;color:var(--muted)}
  /* Складной блок кабинета. Внутри — то же самое, что раньше стояло раскрытым
     всегда; в шапке — состояние, ради которого туда и заглядывают. */
  .fold{margin-top:12px;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden}
  .fold__s{display:flex;align-items:center;gap:10px;padding:13px 14px;cursor:pointer;list-style:none}
  .fold__s::-webkit-details-marker{display:none}
  .fold__s::marker{content:''}
  .fold__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .fold__m b{font-size:14px;font-weight:800}
  .fold__m>span{font-size:11.5px;color:var(--muted);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .fold__st{font-size:11.5px;font-weight:800;color:var(--muted);white-space:nowrap}
  .fold__st.warn{color:var(--warn)}
  .fold__st.ok{color:var(--ok)}
  .fold__go{width:16px;height:16px;flex:0 0 16px;color:var(--muted);transition:transform var(--d-1) var(--e-out)}
  .fold[open] .fold__go{transform:rotate(90deg)}
  .fold__in{padding:0 14px 14px}
  /* Раскрытый блок не выскакивает, а проявляется сверху вниз (только на открытие:
     закрытие у <details> мгновенное, так и задумано браузером). */
  details[open]>:not(summary){animation:foldIn var(--d-2) var(--e-out)}
  @keyframes foldIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  @media (prefers-reduced-motion:reduce){details[open]>:not(summary){animation:none}}
  /* Вложенная карточка внутри складного блока рамку и отступ не повторяет. */
  .fold__in>.sec{margin:0;padding:0;border:0;background:none;box-shadow:none}
  .fold__in>.sec+.sec{margin-top:12px}
  .actc{margin-top:14px;border:1px solid var(--line);border-radius:20px;background:var(--card);overflow:hidden}
  .actc__h{display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:13px;font-weight:800;color:var(--ink);border-bottom:1px solid var(--line)}
  .actc__h .eic{width:16px;height:16px;color:var(--blue)}
  .actrow{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:transparent;border:0;
          border-bottom:1px solid var(--line);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
  .actrow:last-child{border-bottom:0}
  .actrow:active{background:var(--card2)}
  .actrow__n{min-width:28px;height:28px;padding:0 8px;border-radius:10px;background:var(--blue);color:#10160a;
             font-size:14px;font-weight:900;display:grid;place-items:center}
  .actrow__t{flex:1;font-size:14px;font-weight:700}
  .actrow__go{width:16px;height:16px;color:var(--muted)}
           background:var(--card2);border:1px solid var(--line);color:var(--ink);font:inherit;font-size:12.5px;cursor:pointer}
  .cnneed{margin-top:14px;padding:14px 15px;border-radius:20px;background:rgba(216,255,52,.09);border:1px solid rgba(216,255,52,.32)}
  .cnneed__h{display:flex;align-items:center;gap:8px;font-size:15px}
  .cnneed__h .eic{width:18px;height:18px;color:var(--blue)}
  .cnneed__s{margin-top:6px;font-size:12.5px;line-height:1.5;color:var(--muted)}
  .aimark{display:flex;align-items:flex-start;gap:7px;margin:8px 0 6px;padding:9px 11px;border-radius:16px;
          background:rgba(99,160,255,.10);border:1px solid rgba(99,160,255,.30);font-size:11.5px;line-height:1.45;color:var(--ink)}
  .aimark .eic{width:14px;height:14px;flex:0 0 14px;color:#63a0ff;margin-top:1px}
  .gcterms{margin-top:14px;padding:11px 13px;border-radius:16px;background:var(--card2);border:1px solid var(--line);
           font-size:12px;line-height:1.5;color:var(--ink)}
  .gcterms b{font-weight:800}
  .rankl{margin:0;padding-left:20px;font-size:13px;line-height:1.55;color:var(--ink)}
  .rankl li{margin-bottom:6px}
  .stnet{margin-top:16px;padding:12px 14px;border-radius:16px;background:var(--card);border:1px solid var(--line)}
  .stnet__r{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted)}
  .stnet__r b{font-weight:800;color:var(--ink)}
  .stnet__r--big{margin-top:6px;font-size:15px;color:var(--ink)}
  .stnet__r--big b{font-size:19px;color:var(--blue)}
  .stnet__n{margin-top:8px;font-size:11.5px;line-height:1.45;color:var(--muted)}
  .stdraft{display:block;width:100%;margin-top:10px;border:0;background:transparent;color:var(--muted);
           font:inherit;font-size:13px;font-weight:700;padding:8px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
  .sttags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}
  .sttag{border:1px dashed var(--line);background:transparent;color:var(--muted);font:inherit;font-size:12px;
         padding:7px 11px;border-radius:999px;cursor:pointer}
  .sttag:active{transform:scale(.96)}
  .sttile:active{transform:scale(.95)}
  .stprice{min-height:64px;display:flex;align-items:center;justify-content:center;gap:6px;margin:8px 0 14px}
  .stprice span{font-size:26px;font-weight:800;color:var(--muted)}
  /* Поле цены выглядит как крупная надпись, но остаётся полем: системная
     цифровая клавиатура, вставка из буфера и экранный диктор работают сами. */
  .stprice__i{width:100%;max-width:220px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:52px;font-weight:900;letter-spacing:-2px;line-height:1;text-align:center;padding:0;min-width:0}
  .stprice__i:focus{outline:0}
  .stpre{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-bottom:18px}
  /* Плейсхолдер обязан отличаться от введённого: жирным и в цвет текста он
     читается как уже заполненное поле, и его пытаются стереть, а не заменить. */
  .stinp::placeholder,.stprice__i::placeholder{color:var(--muted);font-weight:500;opacity:1}
  /* Кнопка «дальше», пока шаг не готов. Не disabled: нажатие должно доходить и
     объяснять тостом, чего не хватает. */
  .btn.off{opacity:.42;filter:saturate(.35)}
  .stedit{margin-top:12px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}
  .stedit__r{width:100%;display:flex;align-items:center;gap:10px;min-height:48px;padding:0 14px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
  .stedit__r:last-child{border-bottom:0}
  .stedit__r:active{background:var(--card2)}
  .stedit__l{font-size:12.5px;font-weight:800;color:var(--muted);flex:none;min-width:74px}
  .stedit__v{flex:1;min-width:0;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .stedit__r svg{width:16px;height:16px;flex:none;color:var(--muted)}
  .stprev{border-radius:20px;overflow:hidden;border:1px solid var(--line);background:var(--card)}
  .stprev img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
  .stprev__in{padding:14px 16px}
  .stprev__b{font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
  .stprev__n{font-size:16px;font-weight:800;margin-top:2px;line-height:1.3}
  .stprev__p{font-size:22px;font-weight:900;margin-top:8px;letter-spacing:-.5px}
  .stprev__s{font-size:12px;color:var(--muted);margin-top:6px}
  .stfoot{display:flex;gap:9px;padding-top:12px}
  .stfoot .btn{flex:1}
  @media (prefers-reduced-motion:reduce){.storyv.on,.stbar.on::after,.stph{animation:none}.sttile:active{transform:none}}
  /* Переключатель экранов Match. */
  .mtabs{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--lg-fill,var(--card2));border:1px solid var(--lg-edge,var(--line));margin:14px 0 16px}
  .mtab{flex:1;min-height:40px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:background var(--d-2) var(--e-out),color var(--d-2) var(--e-out)}
  .mtab.on{background:rgba(216,255,52,.16);color:var(--limeink);box-shadow:inset 0 0 0 1px rgba(216,255,52,.32)}
  .mtab:disabled{opacity:.45;cursor:default}
  .mtab i{font-style:normal;font-size:11px;font-weight:900;color:var(--limeink)}
  /* ✨ ЭТАП 1 ПЕРЕРАБОТКИ ДВИЖЕНИЯ.
     Экран не должен появляться целиком и разом — глаз это читает как «моргнуло».
     У Apple содержимое набегает: подложка едет, а элементы внутри проявляются
     по очереди с крошечным сдвигом. Делаем это чистым CSS, без единой строки JS:
     задержка берётся из порядкового номера ребёнка, поэтому работает на любой
     разметке, в том числе на той, которой ещё нет. */
  .stgr > *{animation:stgrIn .34s var(--e-out) both}
  @keyframes stgrIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
  .stgr > *:nth-child(1){animation-delay:.02s}
  .stgr > *:nth-child(2){animation-delay:.06s}
  .stgr > *:nth-child(3){animation-delay:.10s}
  .stgr > *:nth-child(4){animation-delay:.14s}
  .stgr > *:nth-child(5){animation-delay:.18s}
  .stgr > *:nth-child(6){animation-delay:.22s}
  .stgr > *:nth-child(n+7){animation-delay:.26s}
  /* Шторка — кривая iOS-шторки, без перелёта: перелёт на крупной панели,
     которую открывают десятки раз за день, читался как подпрыгивание. */
  .sheet{transition:transform var(--d-3) var(--e-drawer)}
  .fsv{animation:stgrIn var(--d-2) var(--e-out)}
  /* ✅ Состояние «готово». Галочка не появляется, а рисуется — этим приём и цепляет.
     Кольцо всплывает пружиной, линия прочерчивается следом. */
  .okv{position:fixed;inset:0;z-index:96;display:none;flex-direction:column;align-items:center;justify-content:flex-end;
    padding:calc(var(--tgtop) + 24px) 26px calc(20px + var(--sab));background:var(--bg);text-align:center}
  .okv.on{display:flex}
  .okv__mid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%}
  .okv__ring{width:104px;height:104px;border-radius:50%;display:grid;place-items:center;background:rgba(216,255,52,.14);border:1px solid rgba(216,255,52,.3);
    animation:okRing .5s var(--e-spring) both}
  @keyframes okRing{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:none}}
  .okv__ring svg{width:48px;height:48px;fill:none;stroke:var(--limeink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
  .okv__ring path{stroke-dasharray:32;stroke-dashoffset:32;animation:okDraw .42s var(--e-out) .22s forwards}
  @keyframes okDraw{to{stroke-dashoffset:0}}
  .okv__t{font-size:27px;font-weight:900;letter-spacing:-.7px;animation:stgrIn .36s var(--e-out) .3s both}
  .okv__s{font-size:13.5px;color:var(--muted);line-height:1.5;max-width:300px;animation:stgrIn .36s var(--e-out) .38s both}
  .okv__foot{width:100%;display:flex;flex-direction:column;gap:9px;animation:stgrIn .36s var(--e-out) .46s both}
  @media (prefers-reduced-motion:reduce){
    .stgr > *,.okv__t,.okv__s,.okv__foot{animation:none}
    .okv__ring{animation:none}
    .okv__ring path{animation:none;stroke-dashoffset:0}
    .fsv{animation:none}
  }
  /* ✨ ЭТАП 2. Движение по всему приложению, а не только на открытии слоёв.

     1) Появление при прокрутке. Секции витрины возникали разом, стоило до них
        долистать. Теперь каждая проявляется, когда реально попадает в кадр —
        это то самое ощущение «страница живая», которое читается у Apple.
        Ставится один наблюдатель на документ, не таймеры и не обработчик
        скролла: браузер сам говорит, что вошло в кадр, и не тратит кадры зря.
     2) Смена вкладки. Экраны переключались мгновенной подменой display —
        глаз воспринимает это как рывок. Теперь новый экран всплывает. */
  .rvl{opacity:0;transform:translateY(14px)}
  .rvl.in{opacity:1;transform:none;transition:opacity var(--d-3) var(--e-out),transform var(--d-3) var(--e-out)}
  .viewin{animation:viewIn var(--d-3) var(--e-out)}
  @keyframes viewIn{from{opacity:0;transform:translateY(8px) scale(.995)}to{opacity:1;transform:none}}
  /* Нажатие на карточку товара — мягкое «вдавливание», как в родных приложениях. */
  .p{transition:transform var(--d-1) var(--e-out),box-shadow var(--d-2) var(--e-out)}
  .p:active{transform:scale(.965)}
  @media (prefers-reduced-motion:reduce){
    .rvl,.rvl.in{opacity:1;transform:none;transition:none}
    .viewin{animation:none}
    .p:active{transform:none}
  }
  /* ✨ ЭТАП 3. Экран загрузки. Первое, что видит человек, — и до сих пор он видел
     пустоту, пока грузился каталог. Теперь: логотип прочерчивается, под ним полоса.

     Полоса честная. Она не бежит по таймеру «для красоты»: каждый шаг ставится по
     реальному событию — магазины пришли, каталог получен, витрина отрисована.
     Врать про прогресс — то же самое, что рисовать выдуманные цифры. */
  /* Экран загрузки — фирменный, а не серый каркас.

     Каркас витрины (серые плашки на месте поиска, категорий и сетки) честно
     повторял геометрию, но выглядел как сломанная страница: непонятно, что это
     и зачем. Его заменило то же сияние, что на приветствии: знак в стекле,
     переливающееся имя и полоса. Каркас списка остался там, где он к месту, —
     в самой ленте, пока подгружаются карточки (renderSkeleton).

     Почему экран не выглядит зависшим на медленной связи, как когда-то логотип
     в пустоте: сияние и перелив двигаются всё время, а по полосе бежит свет,
     даже если она стоит на 35% в ожидании товаров. Сама ширина полосы по-прежнему
     ставится только по событию — пришли магазины, пришли товары. */
  .boot{position:fixed;inset:0;z-index:98;display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:calc(10px + var(--sat)) 22px calc(22px + var(--sab));background:#04060c;color:#fff;isolation:isolate;
    transition:opacity var(--d-3) var(--e-out),transform var(--d-3) var(--e-out);overflow:hidden}
  .boot.out{opacity:0;transform:scale(1.04);pointer-events:none}
  .boot__mid{display:flex;flex-direction:column;align-items:center;text-align:center}
  .boot .blogo{width:92px;height:92px;border-radius:28px;animation:bootPop .7s var(--e-spring) both,wlcFloat 6s ease-in-out .7s infinite}
  .boot .blogo svg{width:52px;height:52px}
  .boot .bname{margin-top:20px;font-size:44px;animation:bootRise .6s var(--e-out) .12s both,wlcShine 7s linear infinite}
  @keyframes bootPop{from{opacity:0;transform:scale(.6)}}
  @keyframes bootRise{from{opacity:0;transform:translateY(12px)}}
  .boot__foot{position:absolute;left:22px;right:22px;bottom:calc(30px + var(--sab));
    display:flex;flex-direction:column;align-items:center;gap:10px;animation:bootRise .5s var(--e-out) .3s both}
  .boot__bar{position:relative;width:180px;height:5px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden}
  .boot__fill{position:relative;height:100%;width:0;border-radius:999px;overflow:hidden;
    background:linear-gradient(90deg,#D8FF34,#7DFFE0,#C7B6FF,#D8FF34);background-size:300% 100%;
    animation:bootFlow 2.4s linear infinite;transition:width var(--d-3) var(--e-out);box-shadow:0 0 14px rgba(216,255,52,.6)}
  /* Блик бежит по всей дорожке — видно, что работа идёт, даже пока полоса ждёт. */
  .boot__bar::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
    transform:translateX(-100%);animation:shimmer 1.4s var(--e-out) infinite}
  @keyframes bootFlow{to{background-position:-300% 0}}
  .boot__hint{font-size:13px;font-weight:700;color:rgba(255,255,255,.82)}
  /* Светлая тема: те же пятна пастелью на светлом фоне — без тёмной вспышки
     при каждом запуске. */
  :root[data-theme="light"] .boot{background:#F3F5FB;color:var(--ink)}
  :root[data-theme="light"] .aur:not(.aur--dark){opacity:.55;filter:blur(64px) saturate(1.1)}
  :root[data-theme="light"] .aur:not(.aur--dark) i{mix-blend-mode:multiply}
  /* «Моменты»: сияние приглушено — над ним текст и кнопки. Слой фиксирован
     к окну, поэтому не прокручивается вместе с длинным содержимым и не даёт
     лишней прокрутки размытыми краями. */
  .aur--soft{position:fixed;opacity:.42}
  .lowfx .aur{filter:none}
  .lowfx .aur i,.lowfx .aur::after,.lowfx .blogo,.lowfx .blogo::after,.lowfx .bname,.lowfx .wlc__go::after{animation:none!important}
  .lowfx .aur i{will-change:auto}
  :root[data-theme="light"] .aur--soft{opacity:.38}
  .okv,.onb,.pbz,.maint,.levelup{isolation:isolate}
  /* Новый уровень — праздник поверх приложения: затемнение плотнее, сияние ярче. */
  .levelup>.aur--soft{opacity:.72}
  :root[data-theme="light"] .boot .bglass{background:rgba(255,255,255,.55);border-color:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 18px 44px -18px rgba(30,40,70,.35)}
  :root[data-theme="light"] .boot .blogo svg path{fill:#1E2433}
  :root[data-theme="light"] .boot .bname{background-image:linear-gradient(100deg,#1E2433 0%,#4C8700 25%,#0E8F7A 50%,#5B3FE0 75%,#1E2433 100%)}
  :root[data-theme="light"] .boot__bar{background:rgba(30,36,51,.1)}
  :root[data-theme="light"] .boot__fill{background-image:linear-gradient(90deg,#8CD400,#0EC2A0,#7A5CFF,#8CD400)}
  :root[data-theme="light"] .boot__hint{color:var(--ink)}
  /* Мерцание каркасов в ленте — одна анимация на всё приложение. */
  .skb{position:relative;overflow:hidden;background:var(--skel)}
  .skb::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
    background:linear-gradient(90deg,transparent,var(--skelsw),transparent);animation:shimmer 1.2s infinite}
  @media (prefers-reduced-motion:reduce){
    .boot .blogo,.boot .bname,.boot__foot,.boot__fill,.boot__bar::after{animation:none}
    .boot,.boot__fill{transition:none}
    .skb::after{animation:none}
  }
  /* 📦 Полоса отправок продавца. */
  .shb{margin-top:16px;padding:16px;border-radius:20px;background:var(--card);border:1px solid var(--line)}
  .shb__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
  .shb__lbl{font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
  .shb__big{font-size:26px;font-weight:900;letter-spacing:-.8px;margin-top:3px}
  .shb__big span{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:0}
  .shb__tier{flex:0 0 auto;text-align:right}
  .shb__tier b{display:block;font-size:15px;font-weight:900;color:var(--limeink)}
  .shb__tier span{font-size:11px;font-weight:700;color:var(--muted)}
  .shb__row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted);margin-bottom:7px}
  .shb__cnt{flex:0 0 auto;font-weight:800;color:var(--ink)}
  .shb__track{height:7px;border-radius:4px;background:var(--card2);overflow:hidden}
  .shb__fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#B7FF2A,#D8FF34);transition:width var(--d-3) var(--e-out)}
  .shb__steps{display:flex;gap:6px;margin-top:12px}
  .shb__s{flex:1;text-align:center;padding:7px 2px;border-radius:12px;background:var(--card2);border:1px solid transparent;opacity:.55}
  .shb__s.on{opacity:1;border-color:var(--line)}
  .shb__s b{display:block;font-size:11px;font-weight:900}
  .shb__s i{display:block;font-style:normal;font-size:11px;font-weight:700;color:var(--limeink);margin-top:2px}
  .shb__note{font-size:11px;color:var(--muted);line-height:1.45;margin-top:10px}
  @media (prefers-reduced-motion:reduce){.shb__fill{transition:none}}
  /* ✨ ЕДИНАЯ СИСТЕМА ДВИЖЕНИЯ.
     В файле уже больше восьмидесяти анимаций, но каждая жила со своей длительностью
     и своей кривой — из-за этого интерфейс двигался вразнобой. Токены задают общий
     язык: быстрый отклик на нажатие, средний — на появление, пружина — там, где
     элемент «встаёт на место». Дальше их используют компоненты. */
  :root{
    --d-1:.14s;   /* отклик на палец */
    --d-2:.26s;   /* появление, смена состояния */
    --d-3:.42s;   /* переход экрана */
    --e-out:cubic-bezier(.22,1,.36,1);        /* мягкое торможение — основная кривая */
    --e-spring:cubic-bezier(.34,1.56,.64,1);  /* лёгкий перелёт: «встало на место» */
    --e-drawer:cubic-bezier(.32,.72,0,1);     /* шторка: как в iOS — быстро и без перелёта */
    --e-in:cubic-bezier(.4,0,1,1);
  }
  /* Нажатие: одна пружина на все кликабельные поверхности. Раньше у каждой был свой
     масштаб — от .9 до .99, и приложение отзывалось по-разному в разных местах. */
  .btn:active,.chip:active,.p:active,.dcard:active,.mcard:active,.ccard:active,
  .shsoc__a:active,.cbhow__r:active,.tlad__s:active{transform:scale(.975)}
  /* .chip исключён: у него собственный переход со сменой фона и цвета,
     а это правило стоит ниже и затирало бы его целиком. */
  .btn,.p,.dcard,.mcard,.ccard,.shsoc__a{transition:transform var(--d-1) var(--e-out)}
  /* Появление списка каскадом: карточки не вспыхивают все разом, а набегают волной.
     Задержку задаёт --i (индекс), её проставляет renderGrid. Потолок — 10 шагов,
     чтобы длинная лента не ждала секунду. */
  @keyframes cardIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
  .p.anim,.dcard.anim,.mcard.anim{animation:cardIn var(--d-2) var(--e-out) both;animation-delay:calc(var(--i,0) * 28ms)}
  /* Скользящий индикатор в таббаре — как в референсе: подсветка переезжает
     между вкладками, а не мигает на новом месте. */
  .tabbar{--tabx:0px;--tabw:0px}
  .tabbar__pill{position:absolute;top:7px;bottom:7px;left:0;width:var(--tabw);
    transform:translateX(var(--tabx));border-radius:20px;pointer-events:none;z-index:0;
    background:linear-gradient(180deg,rgba(216,255,52,.22),rgba(216,255,52,.10));
    border:1px solid rgba(216,255,52,.28);opacity:0;
    transition:transform var(--d-3) var(--e-spring),width var(--d-3) var(--e-spring),opacity var(--d-2) var(--e-out)}
  .tabbar__pill.on{opacity:1}
  :root[data-theme="light"] .tabbar__pill{background:linear-gradient(180deg,rgba(120,180,0,.16),rgba(120,180,0,.07));border-color:rgba(90,140,0,.24)}
  .tabbar button{z-index:1}
  @media (prefers-reduced-motion:reduce){
    .p.anim,.dcard.anim,.mcard.anim{animation:none}
    .tabbar__pill{transition:none}
    .btn:active,.chip:active,.p:active,.dcard:active,.mcard:active,.ccard:active,.shsoc__a:active{transform:none}
  }
  /* 📶 Полоса «нет сети» — над таббаром, поверх контента, но не блокирует экран. */
  /* Полоска «нет сети» — сообщение, а не диалог, поэтому она обязана уступать
     всему, что требует нажатия. Со z-index 120 она перекрывала кнопки согласия
     на cookies (z-70) и верх таб-бара: человек офлайн физически не мог принять
     согласие. Ставим ниже всех оверлеев, но выше обычного содержимого, и
     поднимаем над таб-баром на его высоту. */
  /* Отступ снизу — переменной, а не числом. Раньше стояло жёсткое 150px: это
     высота нижней панели вкладок, и на главном экране плашка вставала над ней
     правильно. Но полноэкранные слои (кошелёк, переписка, заказ) панель
     закрывают, а плашка оставалась на той же высоте — и накрывала собой ряд
     кнопок кошелька и быстрые ответы в чате. Накрытое предупреждение о сети
     мешает вдвойне: и кнопку не нажать, и само оно не закрывается.

     Слой открыт — переменную поднимает .netbar--layer, ниже. */
  :root{--netbot:150px}
  .netbar{position:fixed;left:12px;right:12px;bottom:calc(var(--netbot) + var(--sab));z-index:60;display:none;align-items:center;gap:9px;
    background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 12px;
    box-shadow:0 14px 34px -18px rgba(0,0,0,.6);transform:translateY(14px);opacity:0;transition:transform var(--d-2) cubic-bezier(.22,1,.36,1),opacity var(--d-2) var(--e-out)}
  .netbar.on{display:flex;transform:none;opacity:1}
  .netbar__d{width:8px;height:8px;border-radius:50%;background:var(--err);flex:0 0 auto;animation:netPulse 1.6s ease-in-out infinite}
  @keyframes netPulse{0%,100%{opacity:1}50%{opacity:.35}}
  .netbar__t{flex:1;min-width:0;font-size:12.5px;font-weight:700;line-height:1.35}
  .netbar__b{flex:0 0 auto;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:12px;font-weight:800;padding:7px 13px;border-radius:999px;cursor:pointer;min-height:34px}
  .netbar__b:disabled{opacity:.55}
  /* Над переписки — выше поля ввода; над остальными слоями — у самого низа. */
  .netbar.netbar--layer{--netbot:16px}
  .netbar.netbar--chat{--netbot:78px}
  @media (prefers-reduced-motion:reduce){.netbar__d{animation:none}.netbar{transition:none}}
  /* 🪟 Полноэкранное окно чата (как в Vinted) */
  .chatview{position:fixed;inset:0;z-index:60;background:var(--bg);transform:translateX(100%);transition:transform var(--d-3) var(--e-out);display:flex;flex-direction:column;will-change:transform}   /* верх держит .dchd через --tgtop — второй отступ здесь удваивал его */
  .chatview.on{transform:none}
  .chatview__in{flex:1;display:flex;flex-direction:column;min-height:0}



  /* Аватар был залит неоновым лаймом — рядом со спокойными пузырями он бил в
     глаза сильнее, чем сам разговор. Берём тот же градиент, что у исходящего
     сообщения: шапка и лента становятся одним экраном. */




  /* Внутри группы пузыри стоят вплотную, между группами — воздух. Так блок
     реплик читается как один ответ, а не как пять отдельных. */




  /* 🏷 оффер-пузырь */



  /* min-width по содержимому, а не 74px: латышское «Pretpiedāvājums» в 74px не
     влезало и обрезалось на полуслове. Измерено в Chromium на 360px: слову нужно
     97px текста. С fit-content русский и английский остаются в одну строку по
     79px, а латышский раздаёт 64/110/64 — ничего не обрезано и за пузырь не
     вылезает. */





  .chattyping{align-self:flex-start;display:flex;gap:4px;padding:11px 14px;background:rgba(255,255,255,.08);border-radius:20px;border-bottom-left-radius:7px}
  .chattyping i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:typing 1.3s infinite}
  .chattyping i:nth-child(2){animation-delay:.18s}.chattyping i:nth-child(3){animation-delay:.36s}
  @keyframes typing{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}

  /* Кнопка отправки — того же цвета, что исходящий пузырь: она и есть его
     начало. Лайм тут спорил и с пузырями, и с самим собой в шапке. */

  /* 🛒 Полоса покупки. Живёт в .sheet__foot — своей рамки, фона, тени и
     прилипания ей больше не нужно: подвал уже отделён чертой и не прокручивается.
     Раньше здесь были sticky + полупрозрачный градиент сверху: сквозь верхние
     22 % полосы просвечивал текст, а карточка под ней разрезалась пополам. */
  .pdbuybar{display:flex;flex-direction:column;gap:8px}
  .pdbuybar .btn{margin-top:0}
  /* Второй путь покупки — не второй лайм. Две одинаковые кнопки подряд спорили
     друг с другом, и главную было не выбрать глазом. */
  .pdbuy__alt{padding:12px;font-size:14px}
  /* Три подписи в строку не влезали и рвались по словам: «оплата / картой»,
     «пакомат или / курьер». Разрешаем переносить сами подписи, но не слова
     внутри них. */
  .pdguar{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 12px;margin:0;font-size:11px;color:var(--muted);font-weight:700}
  .pdguar span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
  /* 📸 Главное фото — вертикальное 3:4: вещь занимает экран целиком, как в ленте.
     Квадрат обрезал одежду по бёдрам и терял половину товара. */
  .pd__img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:20px;background:var(--card2);cursor:zoom-in;
    touch-action:pan-y;-webkit-user-select:none;user-select:none;
    transition:opacity var(--d-1) var(--e-out),transform var(--d-1) var(--e-out)}
  .pd__img.sw{opacity:0}          /* кадр гаснет только когда следующий уже загружен */
  .pd__gal{position:relative}
  .pd__dots{position:absolute;left:0;right:0;bottom:12px;display:flex;gap:5px;justify-content:center;pointer-events:none}
  .pd__dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45);
    box-shadow:0 1px 3px rgba(0,0,0,.45);transition:width var(--d-2) var(--e-out),background var(--d-2) var(--e-out)}
  .pd__dots i.on{width:16px;background:#fff}
  .fsv{position:fixed;inset:0;z-index:300;background:#000;display:flex;align-items:center;justify-content:center;padding:calc(20px + var(--tg-content-safe-area-inset-top,0px)) 12px calc(20px + var(--tg-content-safe-area-inset-bottom,0px));animation:fsvIn .18s ease}
  @keyframes fsvIn{from{opacity:0}to{opacity:1}}
  .fsv img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;user-select:none}
  .fsv__x{position:absolute;top:calc(12px + var(--tg-content-safe-area-inset-top,0px));right:14px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;border:0;font-size:17px;cursor:pointer;backdrop-filter:blur(var(--gb-s))}
  .fsv__dots{position:absolute;bottom:calc(20px + var(--tg-content-safe-area-inset-bottom,0px));left:0;right:0;display:flex;gap:6px;justify-content:center}
  .fsv__dots span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.35);transition:background var(--d-2) var(--e-out)}.fsv__dots span.on{background:#fff}
  .pd__thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scroll-behavior:smooth;padding:2px 0}
  .pd__thumbs img{width:56px;height:56px;border-radius:12px;object-fit:cover;border:1.5px solid var(--line);flex:0 0 auto;
    opacity:.55;cursor:pointer;transition:opacity var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out),transform var(--d-2) var(--e-spring)}
  .pd__thumbs img.on{opacity:1;border-color:var(--lime);transform:scale(1.06)}
  .pd__thumbs img:active{transform:scale(.94)}
  @media (prefers-reduced-motion:reduce){
    .pd__img,.pd__thumbs img,.pd__dots i{transition:none}
    .pd__img.sw{opacity:1}
    .pd__thumbs img.on,.pd__thumbs img:active{transform:none}
  }
  .pd__brand{color:var(--muted);font-weight:700;margin-top:12px}
  .pd__name{font-size:20px;font-weight:900;margin:2px 0}
  .pd__price{font-size:24px;font-weight:900;margin:6px 0}
  /* product 2.0 — теги + кешбэк-пилюля */
  .pdtags{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 2px}
  .pdtag{font-size:12px;font-weight:700;color:var(--muted);background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:5px 11px}
  /* «Торг» отличается от категории и материала значком, а не цветом: лаймовые
     пилюли на этом экране уже заняты значками доверия к продавцу (.tbadge), и
     второй лаймовый ряд сливался с ними в один длинный список. */
  .pdtag--torg .eic{width:12px;height:12px;vertical-align:-2px;margin-right:4px;color:var(--muted)}
  .pdcbpill{display:inline-flex;align-items:center;gap:8px;margin:8px 0 2px;padding:9px 13px;border-radius:12px;
    background:rgba(216,255,52,.14);border:1px solid rgba(216,255,52,.32);font-size:13px;font-weight:700;color:var(--ink)}
  .pdcbpill b{color:#141a05;background:#D8FF34;border-radius:8px;padding:3px 9px;font-weight:900;font-variant-numeric:tabular-nums}
  :root[data-theme="dark"] .pdcbpill{color:#eef1ea}
  .pdcbpill .eic{width:15px;height:15px;color:var(--muted)}
  /* Приписка «с Droply+ было бы больше» — продолжение пилюли кешбэка, поэтому
     стоит под ней и той же ширины. Раньше все эти правила были в атрибуте style. */
  .pdpass{margin:6px 0 2px;background:linear-gradient(135deg,rgba(216,255,52,.13),rgba(166,230,53,.06));border:1px solid var(--blue);border-radius:12px;padding:9px 12px;font-size:12px;line-height:1.45;cursor:pointer}
  .pdpass .eic{width:14px;height:14px;vertical-align:-2px;margin-right:5px}
  /* product 2.0 — инфо-секции по макету */
  .pdsec{margin-top:16px;border-radius:20px;background:var(--card);border:1px solid var(--line);padding:16px}
  /* Свёрнутая справка: выглядит как .pdsec, но открывается по нажатию. Суть в
     заголовке справа, чтобы не открывать ради одной строки. */
  details.pdfold{margin-top:16px;border-radius:20px;background:var(--card);border:1px solid var(--line);padding:0 16px}
  details.pdfold>summary{display:flex;align-items:center;gap:10px;padding:16px 0;cursor:pointer;list-style:none}
  details.pdfold>summary::-webkit-details-marker{display:none}
  /* margin-right:auto именно у заголовка: тогда и подпись, и стрелка прижаты к
     правому краю — в том числе у складки, где подписи нет вовсе. */
  details.pdfold>summary b{margin-right:auto;font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.2px}
  details.pdfold>summary small{font-size:12px;font-weight:700;color:var(--muted)}
  details.pdfold>summary::after{content:'';flex:0 0 auto;width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin:0 2px 3px 0;transition:transform var(--d-2) var(--e-out)}
  details.pdfold[open]>summary::after{transform:rotate(225deg);margin:3px 2px 0 0}
  details.pdfold>.pdfold__b{padding-bottom:16px}
  .pdsec__h{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}
  .pdsec__h b{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.2px}
  .pdsec__all{font-size:12.5px;font-weight:700;color:var(--blue2);cursor:pointer}
  .pdspec{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
  .pdspec__c{display:flex;align-items:center;gap:11px;padding:12px;border-radius:16px;background:var(--card2);border:1px solid var(--line)}
  .pdspec__c .ic{width:34px;height:34px;border-radius:10px;background:var(--card);display:grid;place-items:center;color:var(--blue2);flex:0 0 auto}
  .pdspec__c .ic .eic{width:18px;height:18px}
  .pdspec__c span{font-size:11px;color:var(--muted);font-weight:600;display:block}
  .pdspec__c b{font-size:13px;color:var(--ink);font-weight:800}
  .pddrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px}
  .pddrow:last-child{border-bottom:0}
  .pddrow .l{color:var(--ink);font-weight:600}
  .pddrow .d{color:var(--muted);font-size:12.5px}
  .pddrow .pr{font-weight:800;color:var(--ink);white-space:nowrap}
  .pddrow .pr.free{color:#4C8700}
  :root[data-theme="dark"] .pddrow .pr.free{color:#A6E635}
  .pdretrow{display:flex;align-items:flex-start;gap:12px;padding:10px 0}
  .pdretrow .ic{width:34px;height:34px;border-radius:10px;background:var(--card2);display:grid;place-items:center;color:var(--blue2);flex:0 0 auto}
  .pdretrow .ic .eic{width:18px;height:18px}
  .pdretrow b{font-size:14px;color:var(--ink);font-weight:700;display:block}
  .pdretrow span{font-size:12px;color:var(--muted)}
  .pdrev__top{display:flex;align-items:center;gap:16px;margin-bottom:12px}
  .pdrev__big{font-size:40px;font-weight:900;letter-spacing:-1.5px;line-height:1}
  .pdrev__stars{color:#F4C000;font-size:16px;letter-spacing:2px}
  .pdrev__cnt{font-size:12.5px;color:var(--muted);margin-top:3px}
  /* Здесь лежали пять правил .pdrev__bar* — разбивка по звёздам в карточке
     товара. Разметки к ним не было ни одной: класс встречался только в CSS.
     Настоящая разбивка теперь живёт в .revbars и рисуется по числам с сервера. */
  /* Список отзывов магазина — вкладка «Отзывы» на витрине продавца. */
  /* Сводка оценки: слева крупная цифра со звёздами, справа разбивка по числу
     звёзд. На узком экране колонки встают друг под друга — иначе столбики
     сжимаются до нечитаемых огрызков. */
  /* ======== Каталог продавца: сетка вместо перечня ========================
     Раньше до самих товаров надо было проскроллить три блока: зелёную справку
     про доставку, карточку «Объявлений: 3 / 500» с двумя кнопками и карточку
     коллекций. Товары шли после них строчками — по строке на товар, с крошечным
     фото. Теперь товары сразу и сеткой, отбор — пилюлями, а справка и настройки
     ушли вниз строками. */
  .scpbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}
  .scpbar__n{font-size:13px;font-weight:800}
  .scpbar__n i{font-style:normal;color:var(--muted);font-weight:700}
  .scpbar .btn{margin:0;width:auto;padding:10px 16px;margin-left:auto}
  /* Пилюли отбора едут вбок и не переносятся: перенос превращает их в сетку,
     а сетка читается как список пунктов, а не как один выбранный из многих. */
  /* Здесь лежали пятнадцать правил .shcats/.shcat/.shcat2* — полка категорий
     карточками с фото между вкладками магазина и его товарами. Категории стали
     пилюлями (.shcatf на базе .scpf): тот же выбор, но одной строкой. Класс
     .shcat разметки не имел вовсе — ни одного class="shcat" в файле. */
  .scpf{display:flex;gap:7px;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px 12px;padding:0 16px 2px;scrollbar-width:none}
  .scpf::-webkit-scrollbar{display:none}
  .scpf button{flex:0 0 auto;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:12.5px;font-weight:700;color:var(--muted);white-space:nowrap}
  .scpf button.on{background:var(--ink);color:var(--bg);border-color:transparent}
  .scpf button i{font-style:normal;opacity:.65;margin-left:4px}
  /* Пилюли категорий на витрине — те же, что в каталоге, но отступ сверху свой:
     они идут сразу под вкладками магазина. */
  .shcatf{margin-top:12px}
  .scpg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .scpt{position:relative;border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column}
  .scpt__img{position:relative;aspect-ratio:1/1;background:var(--card2)}
  .scpt__img img{width:100%;height:100%;object-fit:cover;display:block}
  .scpt__b{padding:10px 11px 12px;display:flex;flex-direction:column;gap:2px;flex:1}
  .scpt__br{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
  .scpt__n{font-size:13px;font-weight:800;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .scpt__p{font-size:15px;font-weight:900;letter-spacing:-.3px;margin-top:2px}
  .scpt__s{font-size:11px;color:var(--muted);margin-top:1px}
  .scpt__acts{display:flex;gap:6px;margin-top:9px}
  .scpt__acts button{flex:1;border:1px solid var(--line);background:var(--card2);border-radius:12px;padding:8px 0;display:grid;place-items:center;color:var(--muted)}
  .scpt__acts button .eic{width:15px;height:15px}
  .scpt__acts .scpt__del{color:var(--err)}
  /* Статус лежит НА фото: в строке под названием он спорил с ценой за внимание. */
  .scpt .pstchip{position:absolute;left:8px;top:8px;z-index:2}
/* На фото подложка карточки прозрачна — на светлом снимке белые буквы пропадали. Тёмная плашка читается на любом фото и в обеих темах. */
.scpt__img .pstchip{background:rgba(10,14,22,.78);color:#fff;border-color:rgba(255,255,255,.22)}.scpt__img .pstchip--draft{color:#d5dbe6}.scpt__img .pstchip--reserved{color:#f2bd5c;border-color:#e0a63a}.scpt__img .pstchip--sold{color:#ff8a80;border-color:var(--err)}
  /* ======== Кабинет продавца: шапка, числа, деньги, четыре кнопки ========
     Раньше главная кабинета была одной простынёй: баннер, цена наклейки,
     статистика, отзывы, анкета верификации целиком, знак доверия, настройки и
     тарифы — всё подряд, сверху вниз, без понятия «где я и что тут главное».
     Теперь сверху стоит то, на что продавец смотрит каждый день, а остальное
     живёт ниже свёрнутыми блоками. */
  .schhero{position:relative;border-radius:28px;padding:20px 18px 18px;background:var(--card);border:1px solid var(--line);box-shadow:0 18px 40px -30px rgba(0,0,0,.45);overflow:hidden}
  .schhero__top{display:flex;align-items:center;gap:13px}
  .schhero__ava{width:54px;height:54px;border-radius:20px;flex:0 0 auto;display:grid;place-items:center;background:var(--card2);color:var(--muted);overflow:hidden}
  .schhero__ava img{width:100%;height:100%;object-fit:cover}
  .schhero__ava .eic{width:24px;height:24px}
  .schhero__nm{display:flex;align-items:center;gap:6px;font-size:19px;font-weight:900;letter-spacing:-.3px;min-width:0}
  .schhero__nm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .schhero__nm .eic{width:16px;height:16px;flex:0 0 auto;color:var(--cyan)}
  .schhero__s{font-size:12.5px;color:var(--muted);margin-top:3px}
  /* Три числа в ряд. На узком экране не сжимаем в нечитаемое — переносим. */
  .schstats{display:flex;gap:8px;margin-top:16px}
  .schstat{flex:1 1 0;min-width:0;border-radius:20px;padding:12px 10px;background:var(--card2);text-align:center}
  .schstat__v{font-size:19px;font-weight:900;letter-spacing:-.4px;display:flex;align-items:center;justify-content:center;gap:4px;line-height:1.1}
  .schstat__v .strs{font-size:13px}
  .schstat__l{font-size:11px;color:var(--muted);margin-top:3px}
  /* Деньги — отдельной карточкой, как самое частое, за чем сюда заходят. */
  .schbal{margin-top:12px;border-radius:28px;padding:18px;background:var(--card);border:1px solid var(--line);box-shadow:0 18px 40px -30px rgba(0,0,0,.45)}
  .schbal__l{font-size:12.5px;color:var(--muted);font-weight:800}
  .schbal__v{font-size:34px;font-weight:900;letter-spacing:-1.2px;line-height:1.05;margin-top:4px}
  .schbal__s{font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:6px}
  /* Кнопка по содержимому, а не во всю ширину: действие второстепенное, и
     полоса на весь экран обещала бы ему вес главного. */
  .schbal .btn{margin-top:14px;width:auto;padding:12px 18px}
  /* Здесь лежали пятнадцать правил .dhero* — тёмный баннер «Ваш магазин
     активен» с нарисованной витриной. Баннера больше нет: его текст повторял
     карточку магазина сверху, а картинка занимала треть первого экрана. */
  .dheroact{display:flex;gap:8px;margin-top:12px}
  .dheroact .btn{margin:0;flex:1;padding:13px 10px}
  /* Четыре кнопки на каждый день. Квадраты, а не строки списка: по строкам
     глаз ходит сверху вниз и читает их как перечень, а не как действия. */
  .schq{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
  .schq__i{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 4px 11px;border-radius:20px;background:var(--card);border:1px solid var(--line);transition:transform var(--d-1) var(--e-out)}
  .schq__i:active{transform:scale(.95)}
  .schq__ic{width:38px;height:38px;border-radius:999px;display:grid;place-items:center;background:var(--card2)}
  .schq__ic .eic{width:18px;height:18px}
  .schq__t{font-size:11px;font-weight:700;color:var(--muted);text-align:center;line-height:1.2}
  /* Экскурсия: затемняем всё, кроме одного места, и объясняем его словами. */
  .tour{position:fixed;inset:0;z-index:320;pointer-events:auto}
  /* Радиус дырки не задаём числом: его ставит JS по фактическому скруглению
     подсвечиваемого элемента — тогда вырез повторяет его форму, а не спорит с
     ней, и в шкале скруглений не появляется лишнее значение. */
  .tour__hole{position:absolute;box-shadow:0 0 0 9999px rgba(6,10,18,.74);transition:top var(--d-3) var(--e-out),left var(--d-3) var(--e-out),width var(--d-3) var(--e-out),height var(--d-3) var(--e-out);pointer-events:none}
  .tour__card{position:absolute;left:16px;right:16px;border-radius:28px;padding:18px;background:var(--card);border:1px solid var(--line);box-shadow:0 24px 60px -20px rgba(0,0,0,.6)}
  .tour__n{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.4px}
  .tour__t{font-size:18px;font-weight:900;letter-spacing:-.3px;margin-top:6px}
  .tour__s{font-size:13.5px;line-height:1.5;color:var(--muted);margin-top:7px}
  .tour__btns{display:flex;gap:8px;margin-top:16px}
  .tour__btns .btn{margin:0;flex:1}
  .cabhelp{margin:14px auto 4px;width:auto;display:flex;align-items:center;gap:6px;color:var(--muted)}
.infosh{font-size:14.5px;line-height:1.55;color:var(--ink)}
.ocact{display:flex;gap:8px;margin-top:10px}
.ocact select{flex:1.3;min-width:0}
.ocact input{flex:1;min-width:0}
.ocact2{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ocact2 .btn{flex:1 1 auto;width:auto;min-width:0;margin:0;padding-left:8px;padding-right:8px;font-size:13px;white-space:nowrap}
.tour__skip{flex:0 0 auto;width:auto;padding-left:16px;padding-right:16px}
  .revsum{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
  .revsum__l{flex:0 0 auto;min-width:104px}
  .revsum__big{font-size:40px;font-weight:900;letter-spacing:-1.5px;line-height:1}
  .revsum__st{margin-top:4px}
  .revsum__n{font-size:12.5px;color:var(--muted);margin-top:4px}
  .revbars{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;gap:5px}
  .revbar{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted)}
  .revbar__k{width:9px;text-align:right;font-variant-numeric:tabular-nums}
  .revbar .eic{width:12px;height:12px;color:#F4C000;fill:currentColor;stroke:currentColor;stroke-width:1.1;stroke-linejoin:round}
  .revbar__tr{flex:1;min-width:0;height:7px;border-radius:999px;background:var(--card2);overflow:hidden}
  .revbar__tr i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#B7F02A,#D8FF34)}
  .revbar__n{width:26px;text-align:right;font-variant-numeric:tabular-nums}
  .shrevs{display:flex;flex-direction:column;gap:10px;margin-top:12px}
  .shrev{padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--card)}
  .shrev__h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .shrev__h b{font-size:13.5px}
  /* Дата — своим классом, а не голым <i>: starsFor() рисует звёзды тоже через
     <i>, и правило по тегу ловило их — звёзды уезжали вправо и красились в
     цвет подписи. */
  .shrev__d{margin-left:auto;font-size:11.5px;color:var(--muted)}
  /* Размер звёзд задаёт сам .strs (16px) — свой font-size здесь ничего не менял
     бы, поэтому его тут нет. */
  .shrev__st{display:inline-flex}
  .shrev__p{font-size:11.5px;color:var(--muted);margin-top:3px}
  .shrev__ph{display:flex;gap:8px;margin-top:9px;overflow-x:auto}
  .pdrevph{margin:16px 0 6px}
  .adblk{margin-top:12px;padding:4px 14px 12px;border:1px solid var(--line);border-radius:20px;background:var(--card)}
  .adblk .lockrow span{display:inline-flex;align-items:center;gap:7px;font-weight:800}
  .adblk .lockrow .eic{width:17px;height:17px}
  .adblk__row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
  .adblk__row .f{font-size:11.5px}
  .adblk__prev{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--limeink);line-height:1.4}
  .adblk__prev.bad{color:#ff6b6b}
  .pdrevph .lbl{display:flex;align-items:center;gap:6px}
  .pdrevph .eic{width:16px;height:16px}
  .shrev__ph button{width:72px;height:72px;padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--card2);cursor:zoom-in}
  .shrev__ph img{width:100%;height:100%;object-fit:cover;display:block}
  .revph{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
  .revph__it{position:relative;width:76px;height:76px;border-radius:16px;overflow:hidden;background:var(--card2)}
  .revph__it img{width:100%;height:100%;object-fit:cover;display:block}
  .revph__busy{display:grid;place-items:center;padding:6px;text-align:center;font-size:11px;font-weight:700;color:var(--muted)}
  .revph__x{position:absolute;top:4px;right:4px;width:24px;height:24px;border:0;border-radius:999px;display:grid;place-items:center;background:rgba(0,0,0,.6);color:#fff;padding:0;cursor:pointer}
  .revph__x .eic{width:13px;height:13px}
  .revph__add{width:76px;height:76px;border-radius:16px;border:1.5px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11.5px;font-weight:800;color:var(--muted);cursor:pointer;position:relative}
  .revph__add input{position:absolute;inset:0;opacity:0;cursor:pointer}
  .revph__add .eic{width:20px;height:20px}
  .revph__hint{font-size:11.5px;color:var(--muted);margin-top:6px}
  .revph__bonus{display:flex;align-items:flex-start;gap:6px;margin-top:6px;font-size:12px;font-weight:700;color:var(--ink)}
  .revph__bonus .eic{width:14px;height:14px;flex:0 0 auto;margin-top:1px}
  .shrev p{margin:6px 0 0;font-size:13.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
  .sizes{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
  .sz{padding:10px 15px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);font-weight:800;transition:transform var(--d-1) var(--e-out),background-color var(--d-2) var(--e-out),color var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out),box-shadow var(--d-2) var(--e-out)}
  .sz:active{transform:scale(.94)}
  .sz.on{border-color:var(--blue);background:#D8FF3422;color:var(--blue2);box-shadow:0 0 0 3px #D8FF3422}
  .sz.out{opacity:.4;text-decoration:line-through}
  .sz.low{position:relative}
  .sz.low i{margin-left:5px;font-style:normal;font-size:11px;font-weight:900;color:#C0400A;background:rgba(255,90,40,.14);padding:1px 5px;border-radius:6px;vertical-align:1px}
  .sz.low.on i{color:#4C8700;background:rgba(140,212,0,.18)}
  label.f{display:block;font-size:12.5px;color:var(--muted);font-weight:700;margin:10px 0 5px}
  input,select,textarea{width:100%;padding:13px 14px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:15px;font-family:inherit;scroll-margin-top:76px;scroll-margin-bottom:140px}
  input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue)}
  .qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden}
  .qty button{width:34px;height:34px;background:var(--card);color:var(--ink);border:0;font-size:18px;font-weight:800;user-select:none;-webkit-user-select:none;touch-action:manipulation}
  .pddcalc{background:none;border:0;color:var(--blue2);font-weight:800;font-size:12px;text-decoration:underline;cursor:pointer;padding:0 2px}
  .citem{position:relative;overflow:hidden;transition:transform var(--d-1) var(--e-out),opacity var(--d-1) var(--e-out)}
  .citem__del{position:absolute;right:0;top:0;bottom:0;width:64px;background:var(--err);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;transform:translateX(100%);transition:transform var(--d-3) var(--e-out)}
  .citem.swiped .citem__del{transform:none}
  .citem__save{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;font-size:16px;cursor:pointer;border-radius:9px;opacity:.85}
  .citem__save:active{transform:scale(.9)}
  .citem--saved{opacity:.92;gap:10px}
  .citem--saved .citem__del{position:static;transform:none;width:34px;height:34px;background:transparent;color:var(--err);border-radius:9px}
  .citem--saved .citem__del .eic{width:16px;height:16px}
  .cartshop{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 2px}
  .cartshop span{font-size:12px;color:var(--muted);font-weight:800}
  .cartask{background:var(--card2);border:1px solid var(--line);color:var(--blue2);font-weight:800;font-size:11.5px;padding:4px 10px;border-radius:9px;cursor:pointer}
  .skel{pointer-events:none}
  .skel__img{width:100%;aspect-ratio:1/1;background:var(--skel)}
  .skel__l{height:11px;border-radius:6px;background:var(--skel);margin:7px 0}
  .skel__img,.skel__l{position:relative;overflow:hidden}
  .skel__img::after,.skel__l::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);animation:shimmer 1.2s infinite}
  @keyframes shimmer{100%{transform:translateX(100%)}}
  @media (prefers-reduced-motion:reduce){.skel__img::after,.skel__l::after{animation:none}}
  .qty span{min-width:30px;text-align:center;font-weight:800}
  .citem{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
  .citem img{width:52px;height:52px;border-radius:10px;object-fit:cover;background:var(--card2)}
  .brk{display:flex;justify-content:space-between;padding:5px 0;font-size:14px}
  .brk.tot{font-size:17px;font-weight:900;border-top:1px solid var(--line);margin-top:6px;padding-top:10px}
  /* profile / sections */
  .ava{width:58px;height:58px;border-radius:20px;overflow:hidden;background:#D8FF34;display:grid;place-items:center;font-size:26px;font-weight:900;color:#141a05;box-shadow:0 8px 20px rgba(216,255,52,.4)}
  .prof__nm{font-size:19px;font-weight:900}.prof__sub{color:var(--muted);font-size:13px}
  /* ===== Профиль 2.0 (по макету) ===== */
  .pf2title{display:flex;align-items:center;justify-content:space-between;margin:14px 0 18px}
  .pf2title h1{font-size:30px;font-weight:900;letter-spacing:-.8px;margin:0}
  #pf2Bell .dot{background:#D8FF34;color:#1E2433}
  .pf2row{display:flex;align-items:center;gap:15px;margin-bottom:18px}
  .pf2ava{position:relative;flex:0 0 auto}
  .pf2ava .ava{width:78px;height:78px;border-radius:50%;font-size:30px;box-shadow:0 10px 26px -10px rgba(216,255,52,.5)}
  .pf2cam{position:absolute;right:-2px;bottom:-2px;width:28px;height:28px;border-radius:50%;background:var(--card);border:2px solid var(--bg);display:grid;place-items:center;cursor:pointer;color:var(--ink);box-shadow:0 4px 10px rgba(0,0,0,.2)}
  .pf2cam .eic{width:14px;height:14px}
  .pf2info{flex:1;min-width:0}
  .pf2info .prof__nm{font-size:23px;font-weight:900;letter-spacing:-.4px;display:flex;align-items:center;gap:7px}
  .pf2vok{width:19px;height:19px;flex:0 0 auto}
  .pf2info .prof__sub{font-size:14px;margin-top:2px}
  .pf2chev{width:20px;height:20px;color:var(--muted);opacity:.6;flex:0 0 auto}
  .pf2chip{display:inline-flex;align-items:center;gap:6px;margin-top:9px;padding:6px 11px;border-radius:999px;
    font-size:12px;font-weight:800;color:var(--blue2);background:rgba(216,255,52,.18);border:1px solid rgba(216,255,52,.3)}
  .pf2chip .eic{width:14px;height:14px}
  :root[data-theme="dark"] .pf2chip{color:#D8FF34}
  /* карта кешбэк + уровень */
  /* Ролевая карточка профиля (продавать / мой магазин) */
  .pfsell{display:block;width:100%;padding:0;margin:0 0 16px;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--d-1) var(--e-out)}
  .pfsell:active{transform:scale(.985)}
  .pfsell img{display:block;width:100%;height:auto;border-radius:20px;box-shadow:0 16px 38px -22px rgba(60,90,0,.4)}
  /* Тот же вид, что у баннеров главной, но это кнопка: строчные элементы
     внутри переводим в блочные, иначе .cbhero__* рассчитаны на div. */
  .pfsell--hero{position:relative;overflow:hidden;display:flex;align-items:center;text-align:left;
    min-height:92px;border-radius:20px;border:1px solid var(--line);
    background:linear-gradient(135deg,#F3F7EC,#FBFDF7);box-shadow:0 12px 28px -22px rgba(60,90,0,.28)}
  :root[data-theme="dark"] .pfsell--hero{background:linear-gradient(135deg,#1a1d17,#111309);border-color:#2a2f22}
  .pfsell--hero .cbhero__tag,.pfsell--hero .cbhero__big,.pfsell--hero .cbhero__s,
  .pfsell--hero .cbhero__proof,.pfsell--hero .cbhero__cta{display:block}
  .pfsell--hero .cbhero__cta{width:max-content}
  .myshop{margin:0 0 16px;border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden;box-shadow:0 16px 36px -24px rgba(0,0,0,.3)}
  .myshop__hd{display:flex;align-items:center;gap:12px;padding:15px 16px;background:#D8FF34}
  .myshop__logo{width:40px;height:40px;border-radius:12px;background:rgba(20,26,5,.1);display:grid;place-items:center;font-size:22px}
  .myshop__ti{flex:1;color:#141a05;min-width:0}
  .myshop__ti b{display:block;font-size:15.5px;font-weight:900}
  .myshop__ti span{display:block;font-size:12.5px;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myshop__go{background:#141a05;color:#eaffb0;border:0;border-radius:12px;padding:9px 14px;font-size:12.5px;font-weight:800;cursor:pointer;white-space:nowrap}
  .myshop__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
  .myshop__b{display:flex;flex-direction:column;align-items:center;gap:6px;padding:15px 6px;background:var(--card);border:0;color:var(--ink);font-size:12px;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--d-1) var(--e-out)}
  .myshop__b:active{background:var(--bg)}
  .myshop__b .eic{width:22px;height:22px;color:var(--muted)}
  /* под-экран секции профиля + кнопка назад */
  /* Разделы профиля открываются отдельным экраном — как заказ или кошелёк: свой заголовок
     с «назад», свой скролл, поверх таб-бара. Раньше они просто подменяли содержимое
     вкладки, поэтому системная «назад» выкидывала из приложения. */
  #pfLegacy.pfsheet{position:fixed;inset:0;z-index:60;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px calc(28px + var(--sab));transform:translateX(100%);transition:transform var(--d-3) var(--e-out)}
  #pfLegacy.pfsheet.on{transform:translateX(0)}
  #pfLegacy.pfsheet #pfSecBack{position:sticky;top:0;z-index:2;margin:0 -16px 14px;padding:calc(10px + var(--tgtop)) 16px 12px;background:var(--bg);border-bottom:1px solid var(--line)}
  body.pfsheet-on .tabbar{opacity:0;pointer-events:none}
  /* Заметка, напоминание и голос «хочу» — мелкие элементы новых возможностей Droply+ */
  .dcard__note{position:absolute;left:8px;top:8px;width:28px;height:28px;border-radius:9px;border:0;background:rgba(12,16,24,.78);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:2}
  .dcard__note .eic{width:14px;height:14px}
  .dcard__note-tx{margin-top:5px;font-size:11px;line-height:1.35;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .dcard__rem{margin-top:5px;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;color:#4C8700;background:rgba(216,255,52,.2);padding:2px 7px;border-radius:999px}
  .dcard__rem.due{color:#a24a00;background:rgba(255,170,60,.22)}
  .dcard__rem .eic{width:11px;height:11px}
  .remrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .remchip{padding:14px 10px;border-radius:16px;border:1px solid var(--line);background:var(--card2);font-weight:800;font-size:13.5px;color:var(--ink);cursor:pointer;transition:var(--d-1) var(--e-out)}
  .remchip:active{transform:scale(.97);border-color:#B7F02A}
  /* Цены набираем табличными цифрами: у пропорциональных разная ширина, и при
     переключении месяц/год ценник дёргается на пару пикселей. */
  .dpplan__p,.dpb__price,#vipPlanNote{font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1}
  .dpvote{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:28px;padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:var(--card2);font-size:11px;font-weight:800;color:var(--muted);cursor:pointer;transition:var(--d-1) var(--e-out)}
  .dpvote .eic{width:11px;height:11px}
  .dpvote.on{border-color:transparent;background:#D8FF34;color:#141a05}
  /* Продавец в цифрах, подсказка о кешбэке и оценка «брать или ждать» */
  .strc{margin:14px 0 0;border:1px solid var(--line);border-radius:20px;background:var(--card2);overflow:hidden}
  .strc__h{display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:13.5px;color:var(--ink);border-bottom:1px solid var(--line)}
  .strc__h .eic{width:16px;height:16px;color:#4C8700}
  .strc__rate{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-weight:900;font-size:13px}
  .strc__rate .eic{width:13px;height:13px;color:#f5b301}
  .strc__rate i{font-style:normal;font-weight:700;font-size:11.5px;color:var(--muted)}
  .strc__g{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
  .strt{background:var(--card2);padding:11px 8px;text-align:center}
  .strt b{display:block;font-size:15px;font-weight:900;color:var(--ink);letter-spacing:-.3px}
  .strt span{display:block;font-size:11px;color:var(--muted);margin-top:2px;line-height:1.25}
  .strc__live{padding:9px 14px;font-size:11.5px;font-weight:800;color:#4C8700;display:flex;align-items:center;gap:6px}
  .strc__live .eic{width:12px;height:12px}
  .strc__none{padding:13px 14px;font-size:12.5px;color:var(--muted)}
  .advc{margin-top:10px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--card2)}
  .advc--take{border-color:rgba(216,255,52,.55);background:rgba(216,255,52,.12)}
  .advc--wait{border-color:rgba(255,170,60,.45);background:rgba(255,170,60,.1)}
  .advc__h{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink)}
  .advc__h .eic{width:15px;height:15px;color:#4C8700}
  .advc__l{margin:7px 0 0;padding-left:17px;font-size:12px;line-height:1.5;color:var(--muted)}
  .advc__d{margin-top:8px;font-size:11px;line-height:1.4;color:var(--muted);opacity:.8}
  /* «Для тебя»: подборка дня, сводка недели, новые бренды */
  .fy__lbl{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:18px 0 9px}
  .fy__lbl:first-of-type{margin-top:6px}
  .fy__row{display:grid;grid-auto-flow:column;grid-auto-columns:118px;gap:10px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px 4px}
  .fy__row::-webkit-scrollbar{display:none}
  .fy__c{cursor:pointer}
  .fy__c img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:16px;background:var(--card2);display:block}
  .fy__c b{display:block;margin-top:6px;font-size:12px;font-weight:800;color:var(--ink);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .fy__c span{display:block;margin-top:2px;font-size:12px;font-weight:900;color:var(--ink)}
  .fy__none{font-size:12.5px;line-height:1.5;color:var(--muted)}
  .fy__ul{margin:0;padding-left:18px;font-size:13px;line-height:1.65;color:var(--ink)}
  .fy__since{margin-top:6px;font-size:11px;color:var(--muted)}
  .fy__tags{display:flex;flex-wrap:wrap;gap:7px}
  .fy__tag{padding:8px 13px;border-radius:999px;border:1px solid var(--line);background:var(--card2);font-size:12.5px;font-weight:800;color:var(--ink);cursor:pointer}
  .fy__tag:active{transform:scale(.96)}
  /* Заблокированная возможность: настоящий блок под размытием + кнопка «Узнать» */
  .ptz{display:grid;margin-top:10px;border-radius:20px;overflow:hidden;isolation:isolate}
  .ptz__blur{grid-area:1/1;filter:blur(5px) saturate(.75);opacity:.5;pointer-events:none;user-select:none;transform:scale(1.02)}
  .ptz__blur>*{margin-top:0!important}
  .ptz__ov{grid-area:1/1;z-index:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:22px 14px;border:0;cursor:pointer;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.8));backdrop-filter:blur(var(--gb-s))}
  :root[data-theme="dark"] .ptz__ov{background:linear-gradient(180deg,rgba(13,17,23,.55),rgba(13,17,23,.82))}
  .ptz__ic{width:30px;height:30px;border-radius:10px;background:#D8FF34;display:grid;place-items:center;color:#141a05;margin-bottom:3px}
  .ptz__ic .eic{width:17px;height:17px}
  .ptz__ov b{font-size:13.5px;font-weight:900;color:var(--ink);line-height:1.3;max-width:19em}
  .ptz__sub{font-size:11px;color:var(--muted);font-weight:700}
  .ptz__btn{margin-top:7px;padding:7px 18px;border-radius:999px;background:#D8FF34;color:#141a05;font-size:12.5px;font-weight:900;box-shadow:0 8px 20px -10px rgba(150,210,0,.9)}
  .ptz:active .ptz__btn{transform:scale(.96)}
  /* Полоса дней повышенного кешбэка */
  /* Окно раннего доступа в дроп */
  .dearly{display:flex;align-items:center;gap:10px;width:100%;margin-top:10px;padding:12px 14px;border-radius:16px;border:1px solid rgba(216,255,52,.5);background:rgba(216,255,52,.14);cursor:pointer;text-align:left;color:var(--ink)}
  .dearly--on{cursor:default;border-color:rgba(216,255,52,.7)}
  .dearly>.eic{width:18px;height:18px;flex:0 0 auto;color:#4C8700}
  .dearly span{flex:1;min-width:0;font-size:11.5px;line-height:1.35;color:var(--muted)}
  .dearly span b{display:block;font-size:13px;font-weight:900;color:var(--ink);margin-bottom:1px}
  .dearly i{flex:0 0 auto;font-style:normal;font-size:11px;font-weight:900;color:#141a05;background:#D8FF34;padding:5px 12px;border-radius:999px}
  /* Обещание Droply+ одной фразой + четыре пункта */
  .pp{margin:10px 0 4px}
  .pp__t{text-align:center;font-size:17px;font-weight:900;letter-spacing:-.3px;color:var(--ink);line-height:1.3;margin-bottom:12px}
  .pp__l{display:flex;flex-direction:column;gap:9px}
  .pp__r{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--ink)}
  .pp__r .eic{width:17px;height:17px;flex:0 0 auto;color:#4C8700}
  /* Что остаётся бесплатным */
  .freeb{margin-top:14px;padding:16px;border-radius:20px;border:1px dashed var(--line);background:var(--card2)}
  .freeb__t{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:900;color:var(--ink);margin-bottom:11px}
  .freeb__t .eic{width:15px;height:15px;color:#4C8700}
  .freeb__g{display:flex;flex-wrap:wrap;gap:6px}
  .freeb__i{padding:6px 11px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:12px;font-weight:700;color:var(--ink)}
  .freeb__s{margin-top:11px;font-size:11.5px;line-height:1.45;color:var(--muted)}
  /* Match: кнопка ИИ и метки запроса */
  .mqai{margin-top:7px;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--card2);font-size:12px;font-weight:800;color:var(--ink);cursor:pointer}
  .mqai .eic{width:13px;height:13px;color:#4C8700}
  .mqai:active{transform:scale(.96)}
  .mqundo{margin:7px 0 0 8px;padding:7px 13px;border-radius:999px;border:0;background:transparent;font-size:12px;font-weight:800;color:var(--muted);cursor:pointer;text-decoration:underline}
  .mqplus{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:#D8FF34;color:#141a05;font-size:11px;font-weight:900}
  .mqredo{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--card2);border:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:800}
  .movf{margin:0 0 8px;font-size:11px;font-weight:800;color:#4C8700;display:flex;align-items:center;gap:5px}
  .movf .eic{width:12px;height:12px}
  /* Мои промокоды */
  .mpc{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
  .mpc:last-of-type{border-bottom:0}
  .mpc.off{opacity:.55}
  .mpc__l{flex:0 0 auto;min-width:58px;text-align:center}
  .mpc__l b{display:block;font-size:17px;font-weight:900;color:var(--ink);letter-spacing:-.4px}
  .mpc__plus{display:inline-flex;align-items:center;gap:3px;margin-top:3px;padding:1px 6px;border-radius:999px;background:#D8FF34;color:#141a05;font-size:11px;font-weight:900}
  .mpc__plus .eic{width:9px;height:9px}
  .mpc__m{flex:1;min-width:0}
  .mpc__m b{display:block;font-size:13.5px;font-weight:900;color:var(--ink);letter-spacing:.3px}
  .mpc__m span{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
  .mpc__b{flex:0 0 auto;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card2);font-size:12px;font-weight:800;color:var(--ink);cursor:pointer}
  .mpc__b.on{border-color:transparent;background:#D8FF34;color:#141a05}
  .mpc__b--lock{color:#4C8700;border-color:rgba(216,255,52,.6)}
  .mpc__note{margin-top:12px;font-size:11px;line-height:1.45;color:var(--muted)}
  .bdrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  /* Оформление профиля и карточка покупателя */
  .pfl__lbl{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:14px 0 9px}
  .pfl__lbl:first-child{margin-top:2px}
  .pfl__row{display:flex;flex-wrap:wrap;gap:9px}
  .pfl__t,.pfl__r{border:1.5px solid var(--line);background:var(--card2);border-radius:16px;padding:9px 10px 7px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:74px}
  .pfl__t.on,.pfl__r.on{border-color:#B7F02A;box-shadow:0 0 0 3px rgba(216,255,52,.2)}
  .pfl__t span{width:34px;height:34px;border-radius:12px;display:block}
  .pfl__t i,.pfl__r i{font-style:normal;font-size:11px;font-weight:800;color:var(--ink)}
  .pfl__ring{width:34px;height:34px;border-radius:50%;background:var(--card);display:block}
  .pfl__ring--glow{box-shadow:0 0 0 2px var(--pf1,#D8FF34),0 0 12px var(--pf1,#D8FF34)}
  .pfl__ring--double{box-shadow:0 0 0 2px var(--pf1,#D8FF34),0 0 0 5px var(--card-solid),0 0 0 7px var(--pf2,#B7F02A)}
  .pfl__ring--dash{border:2px dashed var(--pf1,#D8FF34)}
  .pfl__note{margin-top:14px;font-size:11.5px;line-height:1.5;color:var(--muted)}
  body[data-pfring="glow"] #pAva{box-shadow:0 0 0 3px var(--pf1,#D8FF34),0 0 18px var(--pf1,#D8FF34)}
  body[data-pfring="double"] #pAva{box-shadow:0 0 0 3px var(--pf1,#D8FF34),0 0 0 6px var(--card-solid),0 0 0 9px var(--pf2,#B7F02A)}
  body[data-pfring="dash"] #pAva{outline:3px dashed var(--pf1,#D8FF34);outline-offset:3px}
  .pcard{border-radius:20px;padding:18px;color:var(--pfink,#141a05)}
  .pcard__h{display:flex;align-items:center;gap:12px}
  .pcard__ava{width:46px;height:46px;border-radius:16px;background:rgba(255,255,255,.35);display:grid;place-items:center;font-size:20px;font-weight:900;flex:0 0 auto}
  .pcard__h b{display:block;font-size:17px;font-weight:900;letter-spacing:-.3px}
  .pcard__h span{display:block;font-size:12.5px;font-weight:700;opacity:.75;margin-top:1px}
  .pcard__g{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
  .pcard__s{background:rgba(255,255,255,.32);border-radius:16px;padding:10px 12px}
  .pcard__s--wide{grid-column:1/-1}
  .pcard__s b{display:block;font-size:15px;font-weight:900;letter-spacing:-.2px}
  .pcard__s span{display:block;font-size:11px;font-weight:700;opacity:.75;margin-top:1px}
  .pcard__none{margin-top:12px;font-size:12px;font-weight:700;opacity:.8}
  /* Подборки в поиске, заказ в один тап, быстрый Match */
  .scoll{margin-bottom:14px}
  .scoll__h{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:9px}
  .scoll__h .eic{width:13px;height:13px}
  .scoll__r{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;margin-bottom:7px;border-radius:16px;border:1px solid var(--line);background:var(--card2);cursor:pointer;text-align:left;color:var(--ink)}
  .scoll__r b{flex:0 0 auto;font-size:13.5px;font-weight:900}
  .scoll__r span{flex:1;min-width:0;font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .scoll__r .eic{width:15px;height:15px;flex:0 0 auto;color:var(--muted);transform:rotate(-90deg)}
  .otrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink)}
  .otrow b{font-weight:900;flex:0 0 auto}
  .otrow--sub{font-size:12.5px;color:var(--muted);border-bottom:0;padding-bottom:2px}
  .otrow--tot{border-bottom:0;font-size:16px;padding-top:12px}
  .otrow--tot b{font-size:18px}
  .pdbuy{margin:12px 0 4px;padding:12px 13px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
  .pdbuy__h{font-weight:900;font-size:16px;display:flex;align-items:center;gap:6px}
  .pdbuy__ship{display:flex;align-items:center;gap:8px;width:100%;margin-top:8px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--ink);font-size:13px;text-align:left}
  .pdbuy__ship span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pdbuy__ship b{font-size:12px;color:var(--muted);font-weight:700}
  .pdbuy__sub{font-size:11.5px;color:var(--muted);margin-top:6px}
  .pdbuy__ic{flex:0 0 22px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;overflow:hidden}
  .pdbuy__ic svg,.pdbuy__ic img{width:22px!important;height:22px!important}
  .bnlnk{background:none;border:0;padding:0;color:var(--muted);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
  .ppmark{display:inline-flex;align-items:center;justify-content:center;gap:1px;height:26px;min-width:44px;padding:0 6px;border-radius:7px;font-weight:700;font-size:13px;color:var(--ink)}
  .ppmark svg{width:16px;height:16px}
  .ppmark--apple{background:#000;color:#fff}
  .ppmark--apple svg{width:15px;height:15px;margin-top:-2px}
  .ppmark--google{background:#fff;border:1px solid #dadce0;color:#3c4043}
  .ppmark--google svg{width:14px;height:14px;margin-right:2px}
  .pprow__ic{background:transparent!important;width:auto!important;min-width:52px}
  .pprow.on{box-shadow:inset 0 0 0 2px var(--ink);border-radius:16px}
  .ppchk{margin-left:auto;width:24px;height:24px;border-radius:50%;background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .ppchk .eic{width:14px;height:14px}
  .bnsteps{display:flex;gap:6px;margin:-4px 0 12px;flex-wrap:wrap}
  .bnstep{font-size:11.5px;padding:4px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);display:inline-flex;align-items:center;gap:4px}
  .bnstep.on{border-color:var(--ink);color:var(--ink);font-weight:800}
  .bnstep.done{color:var(--ok)}
  .bnstep .eic{width:12px;height:12px}
  .pddeal{margin:10px 0;padding:11px 13px;border:1px solid var(--line);border-radius:16px;font-size:13px}
  .pddeal>b{display:flex;align-items:center;gap:6px;font-size:13.5px;margin-bottom:4px}
  .pddeal__r{display:flex;justify-content:space-between;gap:10px;padding:3px 0;color:var(--muted)}
  .pddeal__r b{color:var(--ink);font-weight:800}
  .qmdef{margin-top:9px;font-size:11.5px;color:var(--muted);line-height:1.45}
  .dpfull__r{cursor:pointer}
  .dpfull__r:active{transform:scale(.99)}
  .dpfull__go{margin-left:auto;flex:0 0 auto;color:var(--muted);display:flex}
  .dpfull__go .eic{width:14px;height:14px;transform:rotate(-90deg)}
  /* Полоса «догоняем продавца» в чате */
  .chnudge{display:flex;align-items:center;gap:9px;margin:0 12px 8px;padding:10px 13px;border-radius:16px;border:1px solid rgba(216,255,52,.5);background:rgba(216,255,52,.14);font-size:11.5px;font-weight:700;color:var(--ink);animation:chnPulse 2.4s ease-in-out infinite}
  .chnudge>.eic{width:15px;height:15px;flex:0 0 auto;color:#4C8700}
  .chnudge span{flex:1;min-width:0;line-height:1.35}
  .chnudge--ad{cursor:pointer;animation:none;border-style:dashed}
  .chnudge i{flex:0 0 auto;font-style:normal;font-size:11px;font-weight:900;color:#141a05;background:#D8FF34;padding:5px 11px;border-radius:999px}
  @keyframes chnPulse{0%,100%{box-shadow:0 0 0 0 rgba(216,255,52,0)}50%{box-shadow:0 0 0 4px rgba(216,255,52,.28)}}
  .wnew__r{display:flex;align-items:center;gap:11px;width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;text-align:left}
  .wnew__r:last-child{border-bottom:0}
  .wnew__d{flex:0 0 auto;font-size:11px;font-weight:800;color:#4C8700;background:rgba(216,255,52,.2);padding:3px 8px;border-radius:999px;white-space:nowrap}
  .wnew__t{flex:1;min-width:0;font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.35}
  .wnew__r .eic{width:14px;height:14px;flex:0 0 auto;color:var(--muted);transform:rotate(-90deg)}
  /* Подсказка «сколько осталось до лимита» */
  .flimit{display:flex;align-items:center;gap:7px;margin:0 0 10px;padding:9px 13px;border-radius:12px;background:var(--card2);border:1px solid var(--line);font-size:11.5px;font-weight:700;color:var(--muted);line-height:1.35}
  .flimit .eic{width:13px;height:13px;flex:0 0 auto}
  .flimit[data-flim]{border-color:rgba(216,255,52,.55);background:rgba(216,255,52,.13);color:var(--ink)}
  .flimit[data-flim] .eic{color:#4C8700}
  /* Официальный аккаунт: предупреждение о том, чего поддержка не делает */


  /* Сколько входящее в тариф стоило бы поштучно */
  .tsave{display:flex;align-items:center;gap:8px;margin:6px 0 0;padding:10px 13px;border-radius:12px;background:rgba(216,255,52,.16);border:1px solid rgba(216,255,52,.5);font-size:12.5px;color:var(--ink);line-height:1.35}
  .tsave .eic{width:15px;height:15px;flex:0 0 auto;color:#4C8700}
  .tsave b{font-weight:900}
  .tsave__n{margin:6px 0 4px;font-size:11px;line-height:1.4;color:var(--muted)}
  /* Витрина продвижения в кабинете */
  .pmbal{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:16px;background:var(--card2);border:1px solid var(--line);font-size:12.5px;color:var(--muted)}
  .pmbal .eic{width:15px;height:15px;color:#4C8700}
  .pmbal b{margin-left:auto;font-size:15px;font-weight:900;color:var(--ink)}
  .pmq{margin-left:8px;font-size:11px;font-weight:800;color:#4C8700;background:rgba(216,255,52,.2);padding:2px 8px;border-radius:999px;text-transform:none;letter-spacing:0}
  .pmgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
  .pmrow{display:flex;flex-direction:column;align-items:center;gap:4px;padding:11px 8px;border-radius:16px;border:1px solid var(--line);background:var(--card2);cursor:pointer}
  .pmrow:active{transform:scale(.97)}
  .pmrow__d{font-size:11px;font-weight:800;color:var(--muted)}
  .pmrow__p{font-size:13px;font-weight:900;color:var(--ink);display:flex;align-items:baseline;gap:5px}
  .pmrow__p s{font-size:11px;font-weight:700;color:var(--muted)}
  .pmact{display:flex;flex-direction:column;gap:7px}
  .pmact__r{display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:12px;background:rgba(216,255,52,.13);border:1px solid rgba(216,255,52,.45);font-size:12px}
  .pmact__r .eic{width:13px;height:13px;color:#4C8700}
  .pmact__r b{font-weight:900;color:var(--ink)}
  .pmact__r span{margin-left:auto;font-size:11px;color:var(--muted);font-weight:700}
  .pmplan{font-style:normal;font-size:11px;font-weight:900;color:#141a05;background:#D8FF34;padding:2px 7px;border-radius:999px}
  /* Оплаченный баннер магазина */
  .sban{position:relative;display:block;width:100%;height:112px;border:0;padding:0;border-radius:20px;overflow:hidden;cursor:pointer;background:var(--card2)}
  .sban img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .sban__in{position:absolute;left:0;right:0;bottom:0;padding:14px;text-align:left;background:linear-gradient(180deg,transparent,rgba(0,0,0,.72))}
  .sban__in b{display:block;font-size:17px;font-weight:900;color:#fff;letter-spacing:-.3px}
  .sban__in span{display:block;font-size:12px;font-weight:700;color:rgba(255,255,255,.85);margin-top:2px}
  .dlot__hd{display:flex;align-items:center;gap:8px}
  .dlot__ad{font-size:11px;font-weight:900;letter-spacing:.3px;color:var(--muted);border:1px solid var(--line);padding:2px 7px;border-radius:999px;text-transform:uppercase}
  .dlot__s{margin-top:6px;font-size:11.5px;color:var(--muted)}
  .sban__ad{position:absolute;top:9px;right:9px;font-size:11px;font-weight:900;letter-spacing:.3px;color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(var(--gb-s));padding:3px 8px;border-radius:999px;text-transform:uppercase}
  .sban__dots{position:absolute;top:11px;left:11px;display:flex;gap:4px}
  .sban__dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.45)}
  .sban__dots i.on{background:#fff;width:14px;border-radius:3px}
  .strs{display:inline-flex;gap:2px;font-size:16px;line-height:0;vertical-align:middle;white-space:nowrap}
  .str{position:relative;display:inline-block;line-height:0;color:var(--line)}
  .str.on{color:#F4C000}
  /* Дробная звезда клипит свой золотой слой по своей же ширине — промежуток
     между звёздами в долю не входит. */
  .str>b{position:absolute;left:0;top:0;overflow:hidden;color:#F4C000;line-height:0;font-weight:400}
  /* Звезда залитая. Общий .eic ставит fill:none, и звёзды выходили пустыми
     контурами: «полная» отличалась от «пустой» только цветом обводки. Путь у
     звезды замкнутый (…z), заливается корректно; обводку тем же цветом
     оставляем, чтобы углы не выглядели обгрызенными на мелком размере. */
  .strs svg{fill:currentColor;stroke:currentColor;stroke-width:1.1;stroke-linejoin:round}
  /* ===== 💎 Droply+ — единая система блоков =====
     Один визуальный язык на все поверхности. Крупные экраны (hero и card) всегда
     тёмные, независимо от темы приложения: подписка — это отдельная «комната»,
     и она узнаётся с первого взгляда. Внутри тёмного блока цвета фиксированные,
     а не переменные темы, иначе на светлой теме текст исчезнет. */
  .dpb{position:relative;overflow:hidden;border-radius:28px;padding:24px 18px;
       background:linear-gradient(165deg,rgba(216,255,52,.09),rgba(216,255,52,.015) 42%,transparent 78%),var(--card);
       border:1px solid var(--line);
       box-shadow:0 1px 0 0 rgba(216,255,52,.16) inset,0 22px 54px -30px rgba(120,180,0,.55)}
  .dpb__glow{position:absolute;top:-70px;left:50%;transform:translateX(-50%);width:230px;height:180px;
             background:radial-gradient(closest-side,rgba(216,255,52,.42),transparent 72%);pointer-events:none;filter:blur(6px)}
  /* Конфетти живёт только в верхней зоне вокруг знака: россыпь поверх списка
     выгод мешает читать, а читать здесь важнее, чем праздновать. */
  .dpb__conf{position:absolute;inset:0 0 auto 0;height:230px;pointer-events:none;overflow:hidden;border-radius:inherit}
  .dpb__conf i{position:absolute;width:7px;height:11px;border-radius:2px;opacity:.85}
  .dpb__badge{position:absolute;top:16px;right:16px;z-index:2;font-size:11px;font-weight:900;letter-spacing:.3px;
              text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--lime);color:#141a05}
  .dpb__head{position:relative;z-index:1;text-align:center}
  .dpb__gem{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 11px;border-radius:20px;
            background:#D8FF34;color:#141a05;
            box-shadow:0 12px 30px -12px rgba(150,210,0,.85),0 0 0 6px rgba(216,255,52,.10)}
  .dpb__gem .eic{width:28px;height:28px}
  /* Неоновый ромб — знак подписки на крупных экранах */
  .dpb__neon{display:block;width:96px;height:96px;margin:2px auto 14px;color:#D8FF34;
             filter:drop-shadow(0 0 10px rgba(216,255,52,.85)) drop-shadow(0 0 34px rgba(216,255,52,.45))}
  .dpb__neon svg{width:100%;height:100%;display:block}
  .dpb__name{font-size:23px;font-weight:900;letter-spacing:-.6px;line-height:1.1}
  .dpb__t{font-size:15px;font-weight:800;margin-top:6px;line-height:1.25}
  .dpb__s{font-size:12.5px;color:var(--muted);margin-top:4px;line-height:1.45}
  .dpb__feats{position:relative;z-index:1;margin-top:16px;border-top:1px solid var(--line)}
  .dpb__f{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
  .dpb__f:last-child{border-bottom:0}
  .dpb__fic{flex:0 0 auto;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
            background:rgba(216,255,52,.15);color:#4C8700}
  .dpb__fic .eic{width:18px;height:18px}
  .dpb__ft{flex:1;min-width:0}
  .dpb__ft b{display:block;font-size:13.5px;font-weight:800;line-height:1.25}
  .dpb__ft span{display:block;font-size:11.5px;color:var(--muted);margin-top:1px;line-height:1.35}
  .dpb__price{position:relative;z-index:1;text-align:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
  .dpb__pmain{display:flex;align-items:baseline;justify-content:center;gap:4px}
  .dpb__pmain b{font-size:30px;font-weight:900;letter-spacing:-1px;line-height:1}
  .dpb__pmain span{font-size:13px;font-weight:800;color:var(--muted)}
  .dpb__psub{font-size:12px;font-weight:800;color:var(--limeink);margin-top:5px}
  .dpb__palt{font-size:11.5px;color:var(--muted);margin-top:3px}
  .dpb__cta{position:relative;z-index:1;margin-top:16px;display:grid;gap:8px}
  .dpb__note{position:relative;z-index:1;text-align:center;font-size:11px;color:var(--muted);margin-top:11px;line-height:1.45}

  /* ── «Комната» подписки: hero и card. Палитра берётся из темы приложения,
        структура и вес одинаковые в обеих. ── */
  .dpb--hero,.dpb--card{background:var(--dpbBg);border-color:var(--dpbEdge);color:var(--dpbInk);
                        box-shadow:var(--dpbShadow)}
  .dpb--hero .dpb__neon,.dpb--card .dpb__neon{color:var(--dpbAcc);filter:var(--dpbGlow)}
  .dpb--hero .dpb__name,.dpb--card .dpb__name{color:var(--dpbAcc);font-size:34px;letter-spacing:-1.2px}
  .dpb--hero .dpb__t,.dpb--card .dpb__t{color:var(--dpbInk);font-size:17px;margin-top:8px}
  .dpb--hero .dpb__s,.dpb--card .dpb__s{color:var(--dpbInk2)}
  .dpb--hero .dpb__feats,.dpb--card .dpb__feats{border-top-color:var(--dpbLine)}
  .dpb--hero .dpb__f,.dpb--card .dpb__f{border-bottom-color:var(--dpbLine2)}
  .dpb--hero .dpb__fic,.dpb--card .dpb__fic{background:var(--dpbFill);color:var(--dpbAcc)}
  .dpb--hero .dpb__ft b,.dpb--card .dpb__ft b{color:var(--dpbInk)}
  .dpb--hero .dpb__ft span,.dpb--card .dpb__ft span{color:var(--dpbInk3)}
  .dpb--hero .dpb__price,.dpb--card .dpb__price{border-top-color:var(--dpbLine)}
  .dpb--hero .dpb__pmain b,.dpb--card .dpb__pmain b{color:var(--dpbInk)}
  .dpb--hero .dpb__pmain span,.dpb--card .dpb__pmain span{color:var(--dpbInk3)}
  .dpb--hero .dpb__palt,.dpb--card .dpb__palt{color:var(--dpbInk3)}
  .dpb--hero .dpb__psub,.dpb--card .dpb__psub{color:var(--dpbAcc)}
  .dpb--hero .dpb__note,.dpb--card .dpb__note{color:var(--dpbInk3)}
  .dpb--hero .btn.sec,.dpb--card .btn.sec{border-color:var(--dpbLine);color:var(--dpbInk)}
  .dpb--hero .btn.ghost,.dpb--card .btn.ghost{color:var(--dpbInk3)}
  .dpb--hero .dpnote,.dpb--card .dpnote{color:var(--dpbInk3)}
  /* Свечение заголовка добавляем только там, где есть чему светиться */
  :root:not([data-theme="light"]) .dpb--hero .dpb__name,
  :root:not([data-theme="light"]) .dpb--card .dpb__name{text-shadow:0 0 22px rgba(216,255,52,.45)}
  /* Карточки планов внутри блока */
  .dpb--hero .dpplan,.dpb--card .dpplan{background:var(--dpbTile);border-color:var(--dpbTileLine);color:var(--dpbInk)}
  .dpb--hero .dpplan.on,.dpb--card .dpplan.on{background:var(--dpbAcc);border-color:var(--dpbAcc);color:var(--dpbAccInk)}
  .dpplan.on b,.dpplan.on span,.dpplan.on i,.dpplan.on s{color:var(--dpbAccInk)}
  .dpb--hero .dpplan__s,.dpb--card .dpplan__s{color:var(--dpbInk3)}

  /* card — bottom sheet: плотнее, без лишнего воздуха */
  .dpb--card{padding:22px 16px;border-radius:20px}
  .dpb--card .dpb__neon{width:76px;height:76px;margin-bottom:10px}
  .dpb--card .dpb__name{font-size:28px}
  .dpb--card .dpb__feats{margin-top:13px}
  .dpb--card .dpb__f{padding:9px 0}
  .dpb--card .dpb__pmain b{font-size:26px}
  /* banner — узкая полоса в ленте: выгоды в строку, без списка */
  .dpb--banner{padding:15px 16px;border-radius:20px;text-align:left;margin:16px 0 0;
               display:block;width:100%;border:1px solid var(--line);font:inherit;cursor:pointer;
               -webkit-tap-highlight-color:transparent;transition:transform var(--d-1) var(--e-out)}
  .dpb--banner:active{transform:scale(.99)}
  .dpb--banner .dpb__glow{top:-90px;width:280px}
  .dpb--banner .dpb__head{display:flex;align-items:center;gap:11px;text-align:left}
  .dpb--banner .dpb__gem{width:40px;height:40px;border-radius:16px;margin:0}
  .dpb--banner .dpb__gem .eic{width:21px;height:21px}
  .dpb--banner .dpb__name{font-size:16px}
  .dpb--banner .dpb__t{margin-top:1px;font-size:13px;font-weight:800}
  .dpb--banner .dpb__s{margin-top:1px;font-size:11.5px}
  .dpb--banner .dpb__feats{display:flex;gap:6px;overflow-x:auto;border:0;margin-top:11px;scrollbar-width:none}
  .dpb--banner .dpb__feats::-webkit-scrollbar{display:none}
  .dpb--banner .dpb__f{flex:0 0 auto;gap:6px;padding:6px 10px;border:0;border-radius:999px;background:rgba(216,255,52,.14)}
  .dpb--banner .dpb__fic{width:16px;height:16px;border-radius:0;background:none;color:#4C8700}
  .dpb--banner .dpb__fic .eic{width:14px;height:14px}
  .dpb--banner .dpb__ft b{font-size:11.5px;font-weight:900}
  .dpb--banner .dpb__ft span{display:none}
  .dpb--banner .dpb__price{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;margin-top:11px;padding-top:11px}
  .dpb--banner .dpb__pmain b{font-size:19px}
  .dpb--banner .dpb__psub{margin-top:0}
  .dpb--banner .dpb__palt{display:none}
  .dpb--banner .dpb__cta{margin-top:12px}
  /* hero — экран подписки: самый крупный масштаб */
  .dpb--hero{padding:32px 18px 26px}
  .dpb--hero .dpb__neon{width:104px;height:104px}
  .dpb--hero .dpb__pmain b{font-size:36px}

  .hsperks{display:grid;gap:9px;margin:14px 0 6px;text-align:left}
  .hsperk{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:700;color:var(--ink)}
  .hsperk .eic{width:18px;height:18px;flex:0 0 auto;color:var(--limeink)}
  /* 🏆 Лестница уровней */
  /* Лестница уровней. Ступеней шесть, и в ширину экрана они не помещаются:
     сеткой из шести колонок подписи наезжали друг на друга, а перенос на вторую
     строку рвал связь с полосой прогресса — она осталась бы над первой строкой и
     ничего не значила. Поэтому строка одна и прокручивается вбок, а полоса лежит
     внутри неё и едет вместе со ступенями. */
  .tlad{position:relative}
  .tlad__scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -4px;padding:0 4px}
  .tlad__scroll::-webkit-scrollbar{display:none}
  .tlad__in{position:relative;min-width:100%;width:max-content}
  .tlad__track{position:absolute;left:38px;right:38px;top:18px;height:4px;border-radius:999px;background:var(--card2);overflow:hidden}
  .tlad__track span{display:block;height:100%;border-radius:999px;background:#D8FF34}
  .tlad__row{position:relative;z-index:1;display:flex;gap:4px}
  .tlad__row>*{flex:0 0 72px}
  .tlad__s{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;opacity:.45}
  .tlad__s.reached{opacity:1}
  .tlad__dot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:17px;
             border:3px solid var(--card-solid);box-shadow:0 4px 12px -6px rgba(0,0,0,.5)}
  .tlad__s.on .tlad__dot{box-shadow:0 0 0 3px rgba(216,255,52,.45),0 6px 16px -6px rgba(0,0,0,.5)}
  .tlad__s b{font-size:11.5px;font-weight:900;margin-top:3px}
  .tlad__s i{font-style:normal;font-size:11px;color:var(--muted)}
  .tlad__s u{text-decoration:none;font-size:11px;font-weight:900;color:var(--limeink)}
  .tlad__foot{margin-top:14px;text-align:center;font-size:12.5px;font-weight:700;color:var(--muted);line-height:1.45}
  /* Типы карточек: не всё приложение — белая карточка на сером фоне */
  /* 💳 «Моя карточка» Droply+ — премиальный объект, поэтому тёмная в любой теме,
     как банковская карта на светлом столе. */
  .plmc{position:relative;overflow:hidden;border-radius:20px;padding:18px;margin-top:14px;color:#F4F7EE;
        background:radial-gradient(120% 110% at 12% -10%,#243016 0%,#12180A 46%,#0A0C06 100%);
        border:1px solid rgba(216,255,52,.22);box-shadow:0 22px 50px -28px rgba(60,110,0,.8)}
  .plmc .dpb__conf{height:120px;opacity:.55}
  .plmc__head{position:relative;z-index:1;display:flex;align-items:center;gap:12px}
  .plmc__gem{flex:0 0 auto;width:46px;height:46px;border-radius:16px;display:grid;place-items:center;
             background:#D8FF34;color:#141a05;
             box-shadow:0 10px 26px -12px rgba(150,210,0,.9)}
  .plmc__gem .eic{width:24px;height:24px}
  .plmc__head b{display:block;font-size:18px;font-weight:900;letter-spacing:-.3px}
  .plmc__head span{display:block;font-size:12px;color:rgba(244,247,238,.62);margin-top:1px}
  .plmc__prog{position:relative;z-index:1;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.10)}
  .plmc__goal{font-size:11.5px;color:rgba(244,247,238,.6);font-weight:700}
  .plmc__big{font-size:24px;font-weight:900;letter-spacing:-.6px;margin-top:3px}
  .plmc__big i{font-style:normal;font-size:13px;font-weight:800;color:rgba(244,247,238,.5)}
  .plmc__track{height:5px;border-radius:999px;background:rgba(255,255,255,.12);margin-top:10px;overflow:hidden}
  .plmc__track span{display:block;height:100%;border-radius:999px;background:#D8FF34}
  .plmc__left{font-size:11.5px;color:rgba(244,247,238,.6);font-weight:700;margin-top:7px}
  .plmc__tiles{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
  .plmc__tiles:has(.plmc__t:only-child){grid-template-columns:1fr}
  .plmc__t{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:11px 12px}
  .plmc__t span{display:block;font-size:11px;color:rgba(244,247,238,.6);font-weight:700}
  .plmc__t b{display:block;font-size:19px;font-weight:900;margin-top:2px}
  .plmc__all{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:6px;
             width:100%;margin-top:14px;padding:13px;border:0;border-radius:16px;cursor:pointer;
             background:rgba(216,255,52,.13);color:#D8FF34;font-weight:900;font-size:14px}
  .plmc__all .eic{width:16px;height:16px}
  /* ===== 🎉 Добро пожаловать в клуб — экран после активации ===== */
  .plwrap{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:18px;
          background:rgba(4,6,3,.55);backdrop-filter:blur(var(--gb-m));-webkit-backdrop-filter:blur(var(--gb-m))}
  .plwrap.on{display:flex}
  .plwel{position:relative;overflow:hidden;width:100%;max-width:420px;max-height:92vh;overflow-y:auto;
         border-radius:30px;padding:28px 20px 22px;text-align:center;color:var(--dpbInk);
         background:var(--dpbBg);
         border:1px solid var(--dpbEdge);box-shadow:0 30px 80px -30px rgba(0,0,0,.45)}
  .plwel__x{position:absolute;top:14px;right:14px;z-index:3;width:36px;height:36px;border-radius:50%;border:0;
            background:var(--dpbTile);color:var(--dpbInk);font-size:17px;line-height:1;cursor:pointer}
  .plwel__t{position:relative;z-index:1;font-size:25px;font-weight:900;letter-spacing:-.6px;line-height:1.15;margin-top:2px}
  .plwel__t b{color:var(--dpbAcc)}
  :root:not([data-theme="light"]) .plwel__t b{text-shadow:0 0 22px rgba(216,255,52,.45)}
  .plwel__s{position:relative;z-index:1;font-size:13px;color:var(--dpbInk2);margin-top:8px}
  .plwel__s b{color:var(--dpbAcc)}
  .plwel__tier{position:relative;z-index:1;display:flex;align-items:center;gap:12px;text-align:left;
               margin-top:18px;padding:14px;border-radius:20px;background:var(--dpbTile);
               border:1px solid var(--dpbTileLine)}
  .plwel__tico{flex:0 0 auto;width:44px;height:44px;border-radius:16px;display:grid;place-items:center;font-size:20px}
  .plwel__tn b{display:block;font-size:15px;font-weight:900}
  .plwel__tn span{display:block;font-size:11.5px;color:var(--dpbInk3);margin-top:2px}
  .plwel__tnext{margin-left:auto;text-align:right;font-size:11px;color:var(--dpbInk3);line-height:1.35}
  .plwel__tnext b{display:block;color:var(--dpbAcc);font-size:12.5px}
  .plwel__list{position:relative;z-index:1;margin-top:12px;display:grid;gap:8px}
  .plwel__r{display:flex;align-items:center;gap:11px;text-align:left;padding:13px 14px;border-radius:20px;
            background:var(--dpbTile);border:1px solid var(--dpbTileLine);font-size:13px;font-weight:800}
  .plwel__ric{flex:0 0 auto;width:30px;height:30px;border-radius:12px;display:grid;place-items:center;
              background:var(--dpbFill);color:var(--dpbAcc)}
  .plwel__ric .eic{width:16px;height:16px}
  .plwel .btn{position:relative;z-index:1;margin-top:18px}
  .plwel .dpb__conf{height:200px}
  /* 🎁 Подарочные карты */
  .gcart{position:relative;overflow:hidden;border-radius:16px;padding:16px;min-height:104px;display:flex;flex-direction:column;justify-content:space-between}
  /* Сцена лежит подложкой, текст поверх: без этого сумма читалась бы по рисунку. */
  .gcart__art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
  .gcart__brand,.gcart b,.gcart__sub{position:relative}
  .gcdes span{position:relative;overflow:hidden}
  .gcdes span svg{position:absolute;inset:0;width:100%;height:100%}
  .gcart__brand{font-size:12px;font-weight:900;letter-spacing:.5px;opacity:.85}
  .gcart b{font-size:28px;font-weight:900;line-height:1}
  .gcart__sub{font-size:11px;font-weight:700;opacity:.8}
  .gcrow{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
  .gcchip{padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card2);font-size:12px;font-weight:800;color:inherit}
  .gcchip.on{background:var(--lime);color:#141a05;border-color:var(--lime)}
  .gcdes{width:64px;border:0;background:none;padding:0;color:inherit}
  .gcdes span{display:block;height:34px;border-radius:10px;border:2px solid transparent}
  .gcdes.on span{border-color:var(--lime)}
  .gcdes i{display:block;font-size:11px;font-weight:700;font-style:normal;color:var(--muted);margin-top:3px;line-height:1.2}
  .gcitem{display:flex;gap:10px;align-items:stretch;margin-top:10px}
  .gcitem .gcart{flex:0 0 116px;min-height:78px;padding:10px}
  /* На маленькой карточке места мало — сцена уходит в фон, чтобы не спорить с суммой. */
  .gcitem .gcart__art{opacity:.55}
  .gcitem .gcart b{font-size:19px}
  .gcitem__b{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px}
  .gcitem__b>b{font-size:12px;font-weight:800;font-family:monospace;word-break:break-all}
  .gcitem__b>span{font-size:11px;color:var(--muted)}
  .gcitem__x{color:var(--muted);font-weight:800}
  /* 🏷 Аукционы */
  .aucrow{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none}
  .aucrow::-webkit-scrollbar{display:none}
  .auc{flex:0 0 156px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:0;overflow:hidden;color:inherit}
  .auc__ph{height:104px;background:var(--card2);display:flex;align-items:center;justify-content:center;overflow:hidden}
  .auc__ph img{width:100%;height:100%;object-fit:cover}
  .auc__b{padding:8px 10px 10px}
  .auc__b>b{display:block;font-size:12.5px;font-weight:800;line-height:1.3;height:32px;overflow:hidden}
  .auc__pr{display:flex;align-items:baseline;gap:6px;margin-top:5px;font-size:15px;font-weight:900}
  .auc__pr span{font-size:11px;font-weight:700;color:var(--muted)}
  .auc__tm{display:flex;align-items:center;gap:4px;margin-top:5px;font-size:11px;font-weight:800;color:var(--muted)}
  .auc__tm--hot{color:var(--warn,#FF6A3D)}
  .auc__you{display:inline-block;margin-top:6px;font-size:11px;font-weight:900;padding:2px 7px;border-radius:999px;background:var(--lime);color:#141a05}
  .aucbig{height:190px;border-radius:16px;overflow:hidden;background:var(--card2)}
  .aucbig img{width:100%;height:100%;object-fit:cover}
  .aucst{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
  .aucst__c{background:var(--card2);border-radius:12px;padding:8px 6px;text-align:center}
  .aucst__c b{display:block;font-size:14px;font-weight:900}
  .aucst__c span{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-top:2px}
  .aucnote{font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.45}
  .aucok{background:rgba(216,255,52,.14);border:1px solid var(--lime);border-radius:12px;padding:9px 11px;font-size:12.5px;font-weight:800;margin-bottom:10px}
  .aucbad{background:rgba(255,106,61,.12);border:1px solid rgba(255,106,61,.5);border-radius:12px;padding:9px 11px;font-size:12.5px;font-weight:800;margin-bottom:10px}
  .aucwin{background:var(--card2);border-radius:16px;padding:12px;text-align:center;margin-top:12px}
  .aucwin b{display:block;font-size:15px;font-weight:900;margin-top:4px}
  .aucwin span{display:block;font-size:11.5px;color:var(--muted);margin-top:4px}
  .aucchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}
  .aucchip{padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card2);font-size:12px;font-weight:800;color:inherit}
  .aucchip.on{background:var(--lime);color:#141a05;border-color:var(--lime)}
  .mshop__ad{position:absolute;top:7px;left:7px;font-size:11px;font-weight:900;color:#fff;background:rgba(0,0,0,.5);padding:2px 7px;border-radius:999px;text-transform:uppercase;z-index:2}
  .mshop.promoted .mshop__cover{position:relative}
  /* Droply Ads в кабинете */
  .adhead{display:flex;align-items:center;gap:10px;margin-bottom:12px}
  .adstat{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--card2);border:1px solid var(--line);font-size:11.5px;font-weight:800;color:var(--muted)}
  .adstat .eic{width:12px;height:12px}
  .adstat--on{background:rgba(216,255,52,.18);border-color:rgba(216,255,52,.55);color:#4C8700}
  .adbal{margin-left:auto;text-align:right}
  .adbal span{display:block;font-size:11px;color:var(--muted);font-weight:700}
  .adbal b{display:block;font-size:17px;font-weight:900;color:var(--ink);letter-spacing:-.3px}
  .adgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
  .adcell{background:var(--card2);padding:10px 6px;text-align:center}
  .adcell b{display:block;font-size:14px;font-weight:900;color:var(--ink);letter-spacing:-.2px}
  .adcell span{display:block;font-size:11px;color:var(--muted);margin-top:2px}
  .adrow{margin-top:12px}
  .adrow input{width:100%;margin-top:6px}
  .adbtns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
  .pfback{display:flex;align-items:center;gap:10px;margin:2px 0 12px}
  .pfback__btn{width:38px;height:38px;border-radius:12px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:0 0 auto}
  .pfback__btn:active{transform:scale(.94)}
  .pfback__btn .eic{width:22px;height:22px}
  #pfSecTitle{font-size:19px;font-weight:900;color:var(--ink);letter-spacing:-.3px}
  .pfmenu__lbl{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:26px 4px 8px}
  /* v2-облик содержимого под-экранов профиля (Настройки/Адреса/Поддержка/…) */
  #pfLegacy .sec{border-radius:20px;padding:18px 16px;margin-top:14px;box-shadow:0 16px 38px -28px rgba(0,0,0,.4);animation:estatePop .28s cubic-bezier(.22,1,.36,1)}
  #pfLegacy .sec:first-child{margin-top:0}
  #pfLegacy .sec h4{font-size:16px;font-weight:900;letter-spacing:-.2px;margin:0 0 14px}
  #pfLegacy label.f{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:14px 0 6px}
  #pfLegacy label.f:first-of-type{margin-top:2px}
  #pfLegacy input,#pfLegacy select,#pfLegacy textarea{border-radius:16px;padding:14px;background:var(--card2);border:1px solid var(--line);font-size:15px;transition:border-color var(--d-1) var(--e-out),box-shadow var(--d-1) var(--e-out)}
  #pfLegacy input:focus,#pfLegacy select:focus,#pfLegacy textarea:focus{border-color:#B7F02A;box-shadow:0 0 0 3px rgba(216,255,52,.22);outline:0}
  #pfLegacy .btn.sec{border-radius:16px;padding:14px;font-weight:800;font-size:14.5px}
  #pfLegacy .lockrow{padding:14px 0}
  #pfLegacy .langseg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
  #pfLegacy .langseg button{padding:12px 6px;border-radius:12px;border:1px solid var(--line);background:var(--card2);font-weight:800;font-size:13.5px;color:var(--ink);cursor:pointer;transition:var(--d-1) var(--e-out)}
  #pfLegacy .langseg button.on{background:#D8FF34;border-color:transparent;color:#141a05}
  #pfLegacy .legallinks a{border-radius:12px}
  .payintro{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:16px;background:rgba(216,255,52,.12);border:1px solid rgba(183,240,42,.4);margin-bottom:14px}
  .payintro__ic{flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:#D8FF34;display:grid;place-items:center;color:#141a05}
  .payintro__ic .eic{width:19px;height:19px}
  .payintro p{margin:0;font-size:13px;line-height:1.5;color:var(--ink)}
  .paysec__h{font-size:14px;font-weight:850;margin:16px 0 2px}.paysec__s{font-size:12px;line-height:1.45;color:var(--muted);margin-bottom:8px}
  .ppdev{font-style:normal;font-size:11px;font-weight:800;color:var(--limeink);background:rgba(216,255,52,.14);border-radius:999px;padding:2px 7px;margin-left:6px;vertical-align:1px}
  /* Экраны профиля (Конфиденциальность / Безопасность) — строки-пункты */
  .pfrows{padding:4px 6px}
  .pfrow{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:none;border:0;padding:13px 10px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .pfrow+.pfrow{border-top:1px solid var(--line)}
  .pfrow:active{background:var(--card2);border-radius:12px}
  .pfrow__ic{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:var(--card2);display:grid;place-items:center;color:var(--ink)}
  .pfrow__ic .eic{width:20px;height:20px}
  .pfrow__tx{flex:1;min-width:0}
  .pfrow__tx b{display:block;font-size:14.5px;font-weight:700;color:var(--ink)}
  .pfrow__tx span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
  .pfrow__go{width:18px;height:18px;color:var(--muted);flex:0 0 auto}
  #pr2_del .pfrow__tx b,#pr2_del .pfrow__ic{color:var(--err)}
  .secok{display:flex;align-items:center;gap:13px}
  .secok__ic{flex:0 0 auto;width:44px;height:44px;border-radius:12px;background:#D8FF34;display:grid;place-items:center;color:#141a05}
  .secok__ic .eic{width:24px;height:24px}
  .secok b{display:block;font-size:15px;font-weight:800;color:var(--ink)}
  .secok span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
  /* Droply+ экран (минимализм) */
  /* Выбор плана Droply+: месяц или год. Год подсвечен — он реально выгоднее. */
  /* Строка Droply+ в ленте профиля: во всю ширину, ведёт на экран покупки. */
  .plusban{width:100%;display:flex;align-items:center;gap:12px;margin-top:12px;padding:14px 14px;border-radius:20px;
    background:var(--card);border:1px solid var(--line);cursor:pointer;text-align:left;color:var(--ink);
    transition:transform var(--d-1) var(--e-out)}
  .plusban:active{transform:scale(.985)}
  .plusban__ic{width:42px;height:42px;flex:0 0 auto;border-radius:12px;background:#D8FF34;color:#141a05;display:grid;place-items:center}
  .plusban__ic .eic{width:21px;height:21px}
  .plusban__tx{flex:1;min-width:0}
  .plusban__tx b{display:block;font-size:15px;font-weight:800;letter-spacing:-.2px}
  .plusban__tx span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .plusban > .eic{width:18px;height:18px;color:var(--muted);flex:0 0 auto}
  .plusban--on .plusban__ic{background:var(--card2);color:var(--limeink)}
  @media (prefers-reduced-motion:reduce){ .plusban{transition:none} .plusban:active{transform:none} }
  .dppitch{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:12px;font-size:13px;line-height:1.45}
  .dpplans{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 14px}
  .dpplan{position:relative;text-align:left;background:var(--card2);border:1.5px solid var(--line);border-radius:20px;padding:14px 12px 12px;cursor:pointer;transition:transform var(--d-1) var(--e-out),background-color var(--d-2) var(--e-out),color var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out),box-shadow var(--d-2) var(--e-out)}
  .dpplan:active{transform:scale(.985)}
  .dpplan__n{display:block;font-size:12.5px;font-weight:800;color:var(--muted);letter-spacing:.2px}
  .dpplan__p{display:block;font-size:22px;font-weight:900;color:var(--ink);letter-spacing:-.6px;margin-top:6px;line-height:1.1}
  .dpplan__p i{font-style:normal;font-size:13px;font-weight:700;color:var(--muted)}
  /* Зачёркнутая цена — двенадцать месячных платежей, с чем и сравниваем. */
  .dpplan__p s{font-size:13px;font-weight:700;color:var(--muted);text-decoration-thickness:1.5px}
  .dpplan__s{display:block;font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.35}
  .dpplan.on{border-color:var(--dpbAcc);box-shadow:0 0 0 3px var(--dpbAccInkSoft)}
  .dpplan.on .dpplan__n{color:var(--dpbAccInk)}
  .dpplan__tick{position:absolute;top:10px;right:10px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;color:transparent}
  .dpplan.on .dpplan__tick{background:var(--dpbAccInk);border-color:transparent;color:var(--dpbAcc)}
  .dpplan__tick .eic{width:12px;height:12px}
  .dpplan__hot{position:absolute;top:-9px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;font-weight:900;letter-spacing:.2px;color:#141a05;background:#D8FF34;padding:3px 9px;border-radius:999px;box-shadow:0 6px 16px -8px rgba(150,210,0,.9)}
  .dpplan__save{display:inline-block;margin-top:6px;font-size:11px;font-weight:800;color:#4C8700;background:rgba(216,255,52,.2);padding:2px 7px;border-radius:999px}
/* На выбранной карточке фон — сам акцент, поэтому пилюля «экономия» просто
   меняется с ним местами: фон чернилами, текст акцентом. Полупрозрачный
   вариант в светлой теме давал 3,9 — ниже порога читаемости для мелкого
   текста; замер приложен к правке. */
.dpplan.on .dpplan__save{background:var(--dpbAccInk);color:var(--dpbAcc)}
/* У бейджа «самый популярный» фон лаймовый в ОБЕИХ темах — он не зависит
   от акцента карточки. Значит и чернила у него постоянные: общее правило
   выбранной карточки красило его светлым по лайму, контраст падал до 1,06. */
.dpplan.on .dpplan__hot{color:#141a05}
  .dpnote{text-align:center;font-size:11.5px;color:var(--muted);margin:-4px 0 12px;line-height:1.45}
  /* Ссылкой в подписи всё равно пользуются пальцем: даём ей высоту, за
     которую можно взяться, не увеличивая кегль. */
  a.dpnote{display:block;min-height:32px;padding:8px 4px 0}
  /* Избранное 2.0 — вкладки + сетка */
  .favtabs{display:flex;gap:8px;overflow-x:auto;margin:0 0 14px;padding-bottom:2px}
  .favtabs::-webkit-scrollbar{display:none}
  .favtab{flex:0 0 auto;padding:9px 15px;border-radius:999px;background:var(--card2);border:1px solid var(--line);color:var(--muted);font-weight:800;font-size:13px;cursor:pointer}
  .favtab span{opacity:.7;font-weight:700}
  .favtab.on{background:#D8FF34;color:#141a05;border-color:transparent}
  .favtab.on span{opacity:.85}
  .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  /* Droply Match */
  .matchcta{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin:12px 0 0;padding:14px 16px;border:0;border-radius:20px;cursor:pointer;background:linear-gradient(135deg,#141a05,#20300a);color:#fff;box-shadow:0 16px 34px -20px rgba(20,26,5,.7)}
  .matchcta:active{transform:scale(.99)}
  .matchcta__ic{flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:#D8FF34;display:grid;place-items:center;font-size:20px;color:#141a05}
  .matchcta__ic .eic{width:21px;height:21px}
  .matchcta__tx{flex:1;min-width:0}
  .matchcta__tx b{display:block;font-size:15px;font-weight:900}
  .matchcta__tx span{display:block;font-size:11.5px;color:#c7d49a;margin-top:2px;line-height:1.3}
  .matchcta .eic{width:18px;height:18px;color:#D8FF34;flex:0 0 auto}
  .matchcta__ic .eic{color:#141a05}
  .matchform{padding:4px 0}
  /* Экран Match с полями, как у остальных экранов: шапка во всю ширину,
     содержимое — с отступом 16 по бокам. Заставка держит свои поля сама. */
  #matchViewBody{padding:0 16px}
  #matchViewBody>.ordv__top,#matchViewBody>.mintro{margin-left:-16px;margin-right:-16px}
  .mfrow--col{flex-direction:column;align-items:stretch;gap:6px}
  .mfrow--col textarea{width:100%}
  .mqai__row{display:flex;gap:8px;flex-wrap:wrap;margin:-2px 0 12px}
  .mqai__row .mqai{margin-top:0}
  .matchform__hd{margin:2px 0 16px}
  .matchform__t{font-size:23px;font-weight:900;letter-spacing:-.01em;color:var(--ink);margin:0}
  .matchform__sub{font-size:13px;color:var(--muted);line-height:1.5;margin:5px 0 0}
  /* 📝 Match форма — строки-поля (экран 02) */
  .mphoto2{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--card);border:1.5px dashed var(--line);border-radius:28px;padding:22px;margin-bottom:12px;cursor:pointer;position:relative;overflow:hidden;min-height:104px}
  .mphoto2__ic{width:46px;height:46px;border-radius:50%;background:var(--card2);display:grid;place-items:center;color:var(--muted)}
  .mphoto2__ic .eic{width:22px;height:22px}
  .mphoto2__t{font-size:13px;font-weight:700;color:var(--muted)}
  .mphoto2--on{padding:0;min-height:0}
  .mphoto2 img{width:100%;max-height:220px;object-fit:cover;border-radius:20px;display:block}
  .mphoto2__x{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center;font-size:16px;z-index:2}
  .pfstats .st{border:0;background:transparent;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .pfstats .st:active{transform:scale(.96)}
  /* 🏠 Шаг «Добавь на рабочий стол» */
  .hsstep{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:flex-end;padding:calc(var(--tgtop) + 24px) 26px 0;gap:4px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .hsstep__art{width:200px;max-width:60vw;margin-bottom:6px}
  .hsstep__art img{width:100%;height:auto;filter:drop-shadow(0 18px 34px rgba(90,120,20,.28))}
  .hsstep__t{font-size:26px;font-weight:900;line-height:1.15;color:var(--ink);margin:4px 0 0;max-width:320px}
  .hsstep__gift{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,rgba(216,255,52,.16),rgba(183,240,42,.05));border:1px solid rgba(140,212,0,.3);border-radius:16px;padding:13px 15px;margin:20px 0 22px;text-align:left;width:100%;max-width:340px}
  .hsstep__gift div{display:flex;flex-direction:column;gap:2px}
  .hsstep__gift b{font-size:14px;font-weight:900;color:var(--ink)}
  .hsstep__gift span{font-size:12px;color:var(--muted)}
  .hsstep__go{width:100%;max-width:340px;padding:15px;font-size:15.5px;font-weight:900;border-radius:16px}
  /* 📈 Экран 08 — «История цены» */
  .phtabs{display:flex;gap:6px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:4px;margin:14px 0}
  .phtab{flex:1;border:0;background:transparent;color:var(--muted);font-size:12.5px;font-weight:800;padding:8px 4px;border-radius:9px;cursor:pointer}
  .phtab.on{background:var(--card);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.18)}
  .phchart{position:relative;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:10px}
  .phchart svg{width:100%;height:110px;display:block}
  .phchart__cur{position:absolute;top:10px;right:12px;background:#D8FF34;color:#141a05;font-size:12px;font-weight:900;padding:4px 9px;border-radius:8px}
  .phstats{display:flex;gap:8px;margin-bottom:10px}
  .phst{flex:1;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px}
  .phst span{font-size:11px;color:var(--muted);font-weight:700}
  .phst b{font-size:15px;font-weight:900;color:var(--ink)}
  .phnote{display:flex;align-items:flex-start;gap:9px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:11px 12px}
  .phnote .eic{width:15px;height:15px;flex:0 0 auto;margin-top:1px;color:var(--muted)}
  .phnote div{display:flex;flex-direction:column;gap:2px}
  .phnote b{font-size:12.5px;font-weight:800;color:var(--ink)}
  .phnote span{font-size:11.5px;color:var(--muted)}
  .phnote--good{border-color:rgba(140,212,0,.35)}
  .phnote--good .eic{color:#8bbf1e}
  :root[data-theme="dark"] .phnote--good .eic{color:#C6F53A}
  /* 🔎 Экран 09 — «Похожие модели» */
  .maltlist{display:flex;flex-direction:column;gap:9px;margin-top:14px}
  .malt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:11px;cursor:pointer}
  .malt:active{transform:scale(.99)}
  .malt__im{width:56px;height:56px;flex:0 0 auto;border-radius:12px;background:var(--card);display:grid;place-items:center;overflow:hidden}
  .malt__im img{width:100%;height:100%;object-fit:cover}
  .malt__ph{color:var(--muted)}
  .malt__ph .eic{width:22px;height:22px}
  .malt__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .malt__m b{font-size:13.5px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .malt__m>span{font-size:12.5px;font-weight:700;color:var(--ink)}
  .malt__n{font-size:11px!important;font-weight:600!important;color:var(--muted)!important}
  .malt__ch{width:18px;height:18px;flex:0 0 auto;color:var(--muted)}
  /* ⚡ Экран 15 — «Ускорить поиск» */
  .mblist{display:flex;flex-direction:column;gap:9px;margin-top:14px}
  .mbrow{display:flex;align-items:center;gap:11px;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px 13px;cursor:pointer}
  .mbrow--done{opacity:.62;cursor:default}
  .mbrow__ic{width:28px;height:28px;flex:0 0 auto;border-radius:9px;background:rgba(216,255,52,.16);display:grid;place-items:center;color:#7aa81e}
  :root[data-theme="dark"] .mbrow__ic{color:#C6F53A}
  .mbrow__ic .eic{width:14px;height:14px}
  .mbrow__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .mbrow__m b{font-size:13.5px;font-weight:800;color:var(--ink)}
  .mbrow__m span{font-size:11.5px;color:var(--muted)}
  /* 📋 Экран 06 — «Все предложения» */
  .moclist{display:flex;flex-direction:column;gap:10px;margin-top:14px}
  .moc{position:relative;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:13px}
  .moc--best{border-color:rgba(140,212,0,.5);background:linear-gradient(135deg,rgba(216,255,52,.10),transparent 60%),var(--card2)}
  .moc--dim{opacity:.5}
  .moc--picked{border-color:#A6E635}
  .moc__bdg{position:absolute;top:10px;right:12px;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;color:var(--muted)}
  .moc__bdg .eic{width:11px;height:11px}
  .moc__bdg--best{color:#7aa81e}
  :root[data-theme="dark"] .moc__bdg--best{color:#C6F53A}
  .moc__h{display:flex;align-items:center;gap:11px}
  .moc__logo{width:42px;height:42px;flex:0 0 auto;border-radius:12px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;font-weight:900;font-size:15px;color:var(--ink);overflow:hidden}
  .moc__logo img{width:100%;height:100%;object-fit:cover}
  .moc__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding-right:70px}
  .moc__m b{font-size:14px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .moc__m span{font-size:11.5px;color:var(--muted)}
  .moc__pr{font-size:18px;font-weight:900;color:var(--ink);white-space:nowrap}
  .moc__f{display:flex;align-items:center;gap:10px;margin-top:11px}
  .moc__cb{flex:1;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--muted);min-width:0}
  .moc__cb .eic{width:13px;height:13px;color:#8bbf1e}
  :root[data-theme="dark"] .moc__cb .eic{color:#C6F53A}
  .moc__f .moffpick{width:auto;min-width:118px;margin:0;flex:0 0 auto}
  /* 📡 Экран 05 — лента «Последние действия» */
  .mact5w{margin-top:14px}
  .mact5{display:grid;grid-template-columns:46px 40px 1fr;align-items:flex-start;gap:10px;position:relative}
  .mact5__tm{font-size:12px;font-weight:700;color:var(--muted);padding-top:11px;font-variant-numeric:tabular-nums;text-align:right}
  .mact5__rail{position:relative;display:flex;justify-content:center;min-height:56px}
  .mact5__rail::before{content:'';position:absolute;top:38px;bottom:-8px;left:50%;width:2px;transform:translateX(-50%);background:var(--line)}
  .mact5:last-child .mact5__rail::before{display:none}
  .mact5__dot{position:relative;z-index:1;width:36px;height:36px;margin-top:6px;border-radius:50%;background:var(--card2);border:1px solid var(--line);display:grid;place-items:center;font-size:13px;font-weight:900;color:var(--ink);overflow:hidden;flex:0 0 auto}
  .mact5__dot img{width:100%;height:100%;object-fit:cover}
  .mact5--new .mact5__dot{border-color:#A6E635;box-shadow:0 0 0 3px rgba(216,255,52,.18)}
  .mact5__c{padding:8px 0 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
  .mact5__c b{font-size:13.5px;font-weight:800;color:var(--ink);line-height:1.3}
  .mact5__c span{font-size:12px;color:var(--muted);line-height:1.4}
  /* 📸 Match Vision — распознавание по фото */
  .mvbtn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:7px;margin:0 0 10px;padding:12px;border-radius:16px;border:1px solid rgba(140,212,0,.35);background:linear-gradient(135deg,rgba(216,255,52,.16),rgba(183,240,42,.06));color:var(--ink);font-size:13.5px;font-weight:800;cursor:pointer}
  .mvbtn .eic{width:16px;height:16px;color:#8bbf1e}
  :root[data-theme="dark"] .mvbtn .eic{color:#C6F53A}
  .mvbtn:active{transform:scale(.99)}
  .mvbtn:disabled{opacity:.6}
  .mvres{font-size:12px;line-height:1.45;margin:-4px 0 10px}
  .mvres:empty{display:none}
  .mvres--ok{color:var(--ink);background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:9px 11px;display:flex;flex-direction:column;gap:2px}
  .mvres--ok b{font-size:12.5px;font-weight:800}
  .mvres--ok span{color:var(--muted);font-size:11.5px}
  .mvres--off{color:var(--muted);padding:2px 2px 0}
  .mfrow{width:100%;display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:12px 15px;margin-bottom:10px;text-align:left}
  .mfrow__c{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
  .mfrow__l{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.02em}
  .mfrow__v{font-size:15.5px;font-weight:800;color:var(--ink)}
  .mfrow textarea,.mfrow input{width:100%;border:0;background:transparent;color:var(--ink);font-size:15.5px;font-weight:700;outline:none;resize:none;font-family:inherit;line-height:1.35;padding:2px 0}
  .mfrow textarea{display:block}
  .mfrow>label.mfrow__l{align-self:flex-start;margin-top:2px;flex:0 0 auto}
  .mfrow:has(textarea),.mfrow:has(input){flex-direction:column;align-items:stretch;gap:3px}
  .mfrow--tap{cursor:pointer;flex-direction:row!important;align-items:center!important}
  .mfrow__ch{width:20px;height:20px;flex:0 0 auto;color:var(--muted)}
  .mfrow--tap:active{transform:scale(.99)}
  .mfnotify{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 15px;margin-bottom:14px;font-size:14px;font-weight:700;color:var(--ink)}
  .sw2{position:relative;width:46px;height:27px;flex:0 0 auto}
  .sw2 input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
  .sw2 i{position:absolute;inset:0;border-radius:999px;background:var(--card2);border:1px solid var(--line);transition:var(--d-2) var(--e-out)}
  .sw2 i::after{content:'';position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:var(--d-2) var(--e-out);box-shadow:0 2px 5px rgba(0,0,0,.3)}
  .sw2 input:checked+i{background:#D8FF34;border-color:transparent}
  .sw2 input:checked+i::after{transform:translateX(19px)}
  .matchform textarea{border-radius:16px;background:var(--card2);border:1px solid var(--line);font-size:15px;padding:14px}
  .matchform__send{margin-top:16px}
  .matchform__send .eic{width:18px;height:18px;vertical-align:-3px;margin-right:6px}
  /* 🤖 Match intro (экран 01) — edge-to-edge на весь экран, под тему */
  #matchView{background:radial-gradient(130% 70% at 50% 0%,rgba(216,255,52,.12),transparent 58%),radial-gradient(90% 55% at 100% 100%,rgba(120,180,255,.05),transparent 60%),var(--bg)}
  .mintro{position:relative;padding:calc(var(--tgtop) + 64px) 26px calc(22px + var(--sab));display:flex;flex-direction:column;align-items:stretch;text-align:left;min-height:100dvh;justify-content:space-between;gap:8px}
  .mintro__back{position:absolute;top:calc(var(--tgtop) + 12px);left:16px;z-index:3;width:40px;height:40px;border-radius:50%;border:0;background:var(--card2);color:var(--ink);display:grid;place-items:center;cursor:pointer}
  .mintro__back .eic{width:20px;height:20px}
  .mintro__top{position:relative;z-index:1}
  .mintro__brand{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
  .mintro__brand svg{width:14px;height:14px;color:#A6E635}
  .mintro__foot{position:relative;z-index:1}
  .mintro__t em{color:var(--pa,#6a9e10);font-style:normal}
  :root[data-theme="dark"] .mintro__t em{color:#D8FF34}
  .mintro{isolation:isolate;overflow:hidden}
  .mintro__mark{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;margin-bottom:14px}
  .mintro__mark .eic{width:30px;height:30px;color:#D8FF34}
  :root[data-theme="light"] .mintro__mark .eic{color:#4C8700}
  .mintro__t{font-size:32px;font-weight:900;line-height:1.08;letter-spacing:-.02em;color:var(--ink);margin:0}
  /* Шаги «как это работает»: стеклянная карточка, номер — лаймовый кружок. */
  .misteps{position:relative;z-index:1;margin:26px 0 22px;padding:6px 16px;border-radius:28px}
  .mistep{display:flex;align-items:center;gap:13px;padding:13px 0}
  .mistep+.mistep{border-top:1px solid var(--line)}
  .mistep__n{flex:0 0 auto;width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:#D8FF34;color:#141a05;font-weight:900;font-size:14px}
  .mistep__tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .mistep__tx b{font-size:15px;font-weight:800;color:var(--ink)}
  .mistep__tx span{font-size:12.5px;color:var(--muted);line-height:1.35}
  .mistep__ic .eic{width:18px;height:18px;color:var(--muted)}
  .mhow{margin-top:22px}
  .mistepsw{position:relative;z-index:1;margin:26px 0 22px}
  .mistepsw .misteps{margin:0}
  .mistep__note{position:relative;z-index:1;display:flex;align-items:center;gap:6px;margin:10px 4px 0;font-size:12px;font-weight:700;color:var(--muted)}
  .mistep__note .eic{width:14px;height:14px;color:var(--limeink)}
  .mhow .mistepsw{margin:8px 0 0}
  .mintro__cta{position:relative;z-index:1;width:100%;padding:17px;font-size:16px;font-weight:900;border-radius:999px;background:#D8FF34;color:#141a05;border:0;box-shadow:0 16px 34px -12px rgba(150,215,20,.6)}
  .mintro__cta:active{transform:scale(.98)}
  .pdqa{margin:16px 0}
  .wch__sec{margin-top:10px}
  .wch__row{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}
  .wch__img{width:44px;height:44px;flex:0 0 auto;border-radius:12px;overflow:hidden;background:var(--card2);display:grid;place-items:center;color:var(--muted)}
  .wch__img img{width:100%;height:100%;object-fit:cover}
  .wch__img .eic{width:20px;height:20px}
  .wch__tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .wch__tx b{font-size:14px;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .wch__tx span{font-size:12px;color:var(--muted)}
  .wch__tx em{font-style:normal;font-weight:800;color:var(--limeink)}
  .wch__x,.wch__run{flex:0 0 auto;width:36px;height:36px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);display:grid;place-items:center;padding:0;cursor:pointer}
  .wch__x .eic,.wch__run .eic{width:16px;height:16px}
  .pdqa__it{padding:10px 0;border-top:1px solid var(--line)}
  .pdqa__it b{display:flex;gap:7px;align-items:flex-start;font-size:13.5px;font-weight:800;color:var(--ink);line-height:1.4}
  .pdqa__it b .eic{width:15px;height:15px;flex:0 0 auto;margin-top:2px;color:var(--limeink)}
  .pdqa__it p{margin:5px 0 0 22px;font-size:13px;line-height:1.45;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}
  .pdqa__more{margin-top:6px;padding:6px 0;border:0;background:none;color:var(--limeink);font:inherit;font-size:13px;font-weight:800;cursor:pointer}
  .pdqa__ask{display:flex;gap:8px;align-items:flex-end;margin-top:10px}
  .pdqa__ask textarea{flex:1;min-height:44px;border-radius:20px;resize:none}
  .pdqa__send{flex:0 0 auto;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:#D8FF34;color:#1E2433;font:inherit;font-size:13.5px;font-weight:900;cursor:pointer}
  .pdqa__sent{display:flex;gap:7px;align-items:center;font-size:12.5px;font-weight:700;color:var(--limeink)}
  .pdqa__sent .eic{width:15px;height:15px}
  .qarow{padding:10px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
  .qarow__nm{font-size:11.5px;color:var(--muted)}
  .qarow b{font-size:13.5px;font-weight:800;color:var(--ink)}
  .qarow textarea{border-radius:16px;min-height:44px;resize:none}
  .qarow__btns{display:flex;gap:8px}
  .qarow__go{padding:9px 16px;border:0;border-radius:999px;background:#D8FF34;color:#1E2433;font:inherit;font-size:13px;font-weight:900;cursor:pointer}
  .qarow__ai{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:800;cursor:pointer}
  .qarow__ai.is-busy{opacity:.55}
  .qarow__ai svg{width:15px;height:15px}
  .qarow__kb{margin:2px 0 0}
  .lbhero{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:14px;border:1px solid var(--line);border-radius:20px;background:var(--card)}
  .lbhero__ic{flex:0 0 auto;width:42px;height:42px;border-radius:999px;display:grid;place-items:center;background:#D8FF3426;color:var(--limeink)}
  .lbhero__ic .eic{width:22px;height:22px}
  .lbhero__tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .lbhero__tx b{font-size:14px;color:var(--ink)}
  .lbhero__tx span{font-size:12.5px;color:var(--muted)}
  .lbhero__tx i{font-style:normal;font-size:11.5px;color:var(--muted)}
  .lbhero__go{flex:0 0 auto;padding:10px 14px;border:0;border-radius:999px;background:#D8FF34;color:#1E2433;font:inherit;font-size:13px;font-weight:900;cursor:pointer}
  .lsdem{display:flex;flex-wrap:wrap;gap:4px 12px;margin:-2px 0 6px;font-size:12px;color:var(--ink)}
  .lsdem span{display:inline-flex;align-items:center;gap:4px}
  .lsdem .eic{width:13px;height:13px;color:var(--muted)}
  .wlgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
  .wlgrid .smini img{width:100%;height:auto;aspect-ratio:1}
  .wlgrid .smini{width:auto;min-width:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
  .pefit{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:16px;font-size:12.5px;color:var(--muted)}
  .pefit .eic{width:15px;height:15px;flex:0 0 auto}
  .pefit span{flex:1 1 180px;min-width:0}
  .pefit__add{padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);font:inherit;font-size:12.5px;font-weight:800;cursor:pointer}
  .qarow__hide{padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:800;cursor:pointer}
  .wntrow{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
  .wntrow__tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .wntrow__tx b{font-size:14px;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .wntrow__tx span{font-size:12px;color:var(--muted)}
  .wntrow__go{flex:0 0 auto;padding:8px 14px;border:0;border-radius:999px;background:#D8FF34;color:#1E2433;font:inherit;font-size:12.5px;font-weight:900;cursor:pointer}
  .mreq__main{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;margin-top:12px;border:0;border-radius:999px;background:#D8FF34;color:#1E2433;font:inherit;font-size:15px;font-weight:900;cursor:pointer}
  .mreq__main .eic{width:18px;height:18px}
  .mreq__chips{display:flex;gap:8px;overflow-x:auto;margin:10px -4px 4px;padding:2px 4px;scrollbar-width:none}
  .mreq__chips::-webkit-scrollbar{display:none}
  .mreq__chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:var(--card2);color:var(--ink);font:inherit;font-size:12.5px;font-weight:800;white-space:nowrap;cursor:pointer}
  .mreq__chip .eic{width:15px;height:15px;color:var(--limeink)}
  .mconc2__ic.bglass{display:grid;place-items:center}
  .mconc2__ic.bglass .eic{width:24px;height:24px;color:#D8FF34}
  :root[data-theme="light"] .mconc2__ic.bglass .eic{color:#4C8700}
  .mrstat span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.25}
  .mintro__how{position:relative;z-index:1;margin-top:14px;background:none;border:0;color:var(--muted);font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
  .mreq{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:14px;margin-bottom:12px;box-shadow:0 14px 34px -26px rgba(30,50,90,.4)}
  /* 📊 Match экран 03 — статы и статус-прогресс */
  .mrstats{display:flex;gap:8px;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px;margin:12px 0}
  .mrstat{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
  .mrstat span{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mrstat b{font-size:18px;font-weight:900;color:var(--ink)}
  .mrstat--save{color:#7aa81e}
  :root[data-theme="dark"] .mrstat--save{color:#C6F53A}
  .mrstatus{margin:12px 0}
  .mrstatus__l{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:10px}
  .mrprog{display:flex;align-items:flex-start;justify-content:space-between;position:relative}
  .mrprog::before{content:'';position:absolute;top:7px;left:8%;right:8%;height:2px;background:var(--line);z-index:0}
  .mrstep{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;position:relative;z-index:1}
  .mrstep__d{width:15px;height:15px;border-radius:50%;background:var(--card2);border:2px solid var(--line)}
  .mrstep__t{font-size:11px;font-weight:700;color:var(--muted)}
  .mrstep.done .mrstep__d{background:#A6E635;border-color:#A6E635}
  .mrstep.cur .mrstep__d{background:#D8FF34;border-color:#D8FF34;box-shadow:0 0 0 4px rgba(216,255,52,.22)}
  .mrstep.done .mrstep__t,.mrstep.cur .mrstep__t{color:var(--ink)}
  /* 🤖 Карточка Консьержа — только реальные счётчики */
  .mconc2{margin:12px 0;padding:13px;border-radius:16px;background:linear-gradient(135deg,rgba(216,255,52,.12),rgba(183,240,42,.04));border:1px solid rgba(140,212,0,.26)}
  .mconc2__h{display:flex;align-items:center;gap:10px;margin-bottom:9px}
  .mconc2__ic{width:48px;height:48px;flex:0 0 auto;border-radius:12px;background:rgba(216,255,52,.18);display:grid;place-items:center;font-size:22px;overflow:hidden}
  .mconc2__ic img{width:100%;height:100%;object-fit:contain}
  .mconc2__t{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .mconc2__t b{font-size:14px;font-weight:900;color:var(--ink)}
  .mconc2__pill{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.3px;color:#3f6b00;background:rgba(216,255,52,.55);padding:3px 8px;border-radius:999px}
  :root[data-theme="dark"] .mconc2__pill{color:#141a05;background:#C6F53A}
  .mconc2__b{font-size:12.5px;line-height:1.5;color:var(--ink)}
  .mcstats{display:flex;gap:8px}
  .mcst{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
  .mcst span{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mcst b{font-size:17px;font-weight:900;color:var(--ink);font-variant-numeric:tabular-nums}
  .mclbl{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:11px 0 6px}
  .mcitem{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:9px 11px;margin-bottom:6px;cursor:pointer}
  .mcitem b{font-size:12.5px;font-weight:700;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mcitem span{font-size:12.5px;font-weight:900;color:var(--ink);white-space:nowrap}
  .mcts{margin-top:8px;font-size:11px;color:var(--muted)}
  /* 📊 Экран 04 — сводка: факты, честный балл, ИИ-разбор */
  .mslist{display:flex;flex-direction:column;gap:8px}
  .msrow{display:flex;align-items:center;gap:11px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:11px 13px}
  .msrow__ic{width:32px;height:32px;flex:0 0 auto;border-radius:10px;background:rgba(216,255,52,.16);display:grid;place-items:center;color:#7aa81e}
  :root[data-theme="dark"] .msrow__ic{color:#C6F53A}
  .msrow__ic .eic{width:16px;height:16px}
  .msrow__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .msrow__m b{font-size:13.5px;font-weight:800;color:var(--ink)}
  .msrow__m span{font-size:11px;color:var(--muted)}
  .msrow__v{font-size:15px;font-weight:900;color:var(--ink);white-space:nowrap}
  .msscore{margin-top:16px;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:15px}
  .msscore__l{font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
  .msscore__v{display:flex;align-items:baseline;gap:7px;margin:4px 0 12px}
  .msscore__v b{font-size:40px;font-weight:900;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
  .msscore__v span{font-size:13px;color:var(--muted);font-weight:700}
  .msscore__how{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:9px}
  .msf{margin-bottom:9px}
  .msf__h{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}
  .msf__n{flex:1;font-size:12.5px;font-weight:700;color:var(--ink)}
  .msf__d{font-size:11.5px;color:var(--muted);font-weight:700}
  .msf__g{font-size:12px;font-weight:900;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
  .msf__bar{height:5px;border-radius:999px;background:var(--line);overflow:hidden}
  .msf__bar i{display:block;height:100%;border-radius:999px;background:#D8FF34}
  .msscore__note{display:flex;align-items:center;gap:6px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);line-height:1.45}
  .msscore__note .eic{width:13px;height:13px;flex:0 0 auto}
  .msai{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px}
  .msai__h{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink);margin-bottom:8px}
  .msai__h .eic{width:16px;height:16px;color:#A6E635}
  .msai__b{font-size:13px;line-height:1.5;color:var(--ink)}
  .msai__sum{margin:0 0 9px;color:var(--ink)}
  .msrec{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:9px 11px;margin-bottom:7px;display:flex;flex-direction:column;gap:2px}
  .msrec b{font-size:12.5px;font-weight:800;color:var(--ink)}
  .msrec span{font-size:11.5px;color:var(--muted);line-height:1.4}
  .msai__note{margin-top:8px;font-size:11px;color:var(--muted);line-height:1.45}
  /* 🔮 Оценка ИИ — вид как в мокапе, но подписана как оценка */
  .msol{margin:10px 0;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px}
  .msol__h{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:9px}
  .msol__h .eic{width:12px;height:12px;color:#A6E635}
  .msol__g{display:flex;gap:10px}
  .msol__c{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
  .msol__c span{font-size:11px;color:var(--muted);font-weight:700;line-height:1.3}
  .msol__c b{font-size:19px;font-weight:900;color:var(--ink);line-height:1.1}
  .msol--high{color:#5fa300!important}
  .msol--medium{color:#b7791f!important}
  .msol--low{color:var(--muted)!important}
  :root[data-theme="dark"] .msol--high{color:#C6F53A!important}
  :root[data-theme="dark"] .msol--medium{color:#e6b24e!important}
  .msol__n{margin-top:9px;font-size:12px;color:var(--ink);line-height:1.45}
  .msol__d{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);line-height:1.4}
  .mreq__h{display:flex;align-items:flex-start;gap:10px}
  .mreq__q{flex:1;min-width:0}
  .mreq__q b{display:block;font-size:14.5px;font-weight:800;color:var(--ink)}
  .mreq__q span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
  .mreq__del{flex:0 0 auto;width:32px;height:32px;border-radius:9px;background:transparent;border:0;display:grid;place-items:center;color:var(--muted);cursor:pointer}
  .mreq__cnt{font-size:12px;font-weight:800;color:#4C8700;margin:12px 0 6px}
  .mreq__demo{color:var(--muted);font-weight:700}
  .mreq__wait{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;margin-top:12px}
  .mreq__wait .eic{width:17px;height:17px}
  .moffer{display:flex;flex-direction:column;padding:11px 4px;border-top:1px solid var(--line)}
  .moffer__logo{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:var(--card2);display:grid;place-items:center;font-weight:900;color:var(--ink);overflow:hidden}
  .moffer__logo img{width:100%;height:100%;object-fit:cover}
  .moffer__m{flex:1;min-width:0}
  .moffer__nm{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:800;color:var(--ink)}
  .moffer__pr{font-size:15px;font-weight:900;color:#4C8700}
  .moffer__go{width:16px;height:16px;color:var(--muted);flex:0 0 auto}
  /* Droply Match — сторона продавца */
  .msquota{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:0 12px 30px -22px rgba(30,50,90,.4)}
  .msquota__l b{display:block;font-size:15px;font-weight:900;color:var(--ink)}
  .msquota__l span{display:block;font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.4}
  .msquota--out{border-color:rgba(255,120,90,.5);background:rgba(255,120,90,.06)}
  .msquota--ok{display:flex;align-items:center;gap:10px;font-weight:800;color:#4C8700}
  .msquota--ok .eic{width:20px;height:20px}
  .msreq{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 10px;border-bottom:1px solid var(--line)}
  .msreq:last-child{border-bottom:0}
  .msreq__m{flex:1;min-width:0}
  .msreq__m b{display:block;font-size:14px;font-weight:800;color:var(--ink)}
  .msreq__m span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
  .msreq__b{flex:0 0 auto;border:0;border-radius:12px;padding:9px 14px;font-size:13px;font-weight:800;background:#D8FF34;color:#141a05;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
  .msreq__b:active{transform:scale(.95)}
  .msreq__b--done{background:var(--card2);color:var(--muted);cursor:default}
  .msreq__b--done .eic{width:15px;height:15px}
  .msoffbox{flex:0 0 100%}
  .msoffbox:empty{display:none}
  .msofff{display:flex;flex-wrap:wrap;gap:8px;padding:10px;background:var(--card2);border-radius:12px;margin-top:2px}
  .msofff input{flex:1 1 100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;background:var(--card);color:var(--ink)}
  .msofff #msoff_p{flex:1 1 40%}
  .msofff #msoff_n{flex:1 1 55%}
  .msofff #msoff_go{flex:0 0 auto;width:auto;margin:0;display:inline-flex;align-items:center;gap:5px}
  .msofff__kind{flex:1 1 100%;display:flex;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:3px}
  .msofff__k{flex:1;border:0;border-radius:9px;padding:9px 6px;font-size:12.5px;font-weight:800;background:transparent;color:var(--muted);cursor:pointer}
  .msofff__k.on{background:linear-gradient(135deg,#141a05,#20300a);color:#fff}
  .msvar{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px}
  .msvar__hd{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .msvar__kind{flex:1;margin:0}
  .msvar__rm{flex:0 0 auto;width:28px;height:28px;border:0;border-radius:8px;background:var(--card2);color:var(--muted);font-size:18px;line-height:1;cursor:pointer}
  .msvar__row{display:flex;gap:8px}
  .msvar__p{flex:1 1 auto}
  .msvar .msvar__n{width:100%;margin-top:8px}
  .msvar__add{width:100%;margin:0 0 8px;border:1px dashed var(--line);border-radius:12px;background:transparent;color:#4C8700;font-weight:800;font-size:13px;padding:10px;cursor:pointer}
  /* 👑 Match Priority — Pro раньше всех */
  .msprio{display:flex;align-items:center;gap:11px;width:100%;text-align:left;margin-top:12px;padding:12px 14px;border-radius:16px;border:0;cursor:default}
  .msprio>span{font-size:20px;flex:0 0 auto}
  .msprio div{flex:1;min-width:0}
  .msprio b{display:block;font-size:13.5px;font-weight:900}
  .msprio div span{display:block;font-size:11px;margin-top:2px;line-height:1.35}
  .msprio--on{background:linear-gradient(135deg,rgba(216,255,52,.16),rgba(183,240,42,.05));border:1px solid rgba(140,212,0,.3)}
  .msprio--on b{color:var(--ink)} .msprio--on div span{color:var(--muted)}
  .msprio--up{cursor:pointer;background:linear-gradient(135deg,#141a05,#20300a);color:#fff}
  .msprio--up b{color:#fff} .msprio--up div span{color:#c7d49a}
  .msprio--up .eic{width:18px;height:18px;color:#D8FF34;flex:0 0 auto}
  .msprio--up:active{transform:scale(.99)}
  .msreq__prio{display:inline-block;margin-left:6px;font-size:11px;font-weight:900;color:#141a05;background:linear-gradient(135deg,#E4FF62,#B7F02A);padding:1px 8px;border-radius:999px;vertical-align:middle}
  .msreq--prio{background:linear-gradient(180deg,rgba(216,255,52,.08),transparent);border-radius:12px}
  .msreq__boost{display:inline-block;margin-right:6px;font-size:11px;font-weight:900;color:#fff;background:linear-gradient(135deg,#141a05,#2a3d0d);padding:1px 8px;border-radius:999px;vertical-align:middle}
  .msreq--boost{box-shadow:inset 0 0 0 1.5px rgba(140,212,0,.4);border-radius:12px}
  /* 🏆 Match Win Rate — карточка статистики продавца */
  .mswin{margin-top:12px;background:linear-gradient(135deg,#141a05,#20300a);border-radius:16px;padding:14px 12px;box-shadow:0 16px 34px -22px rgba(20,26,5,.7)}
  .mswin__h b{display:block;font-size:14px;font-weight:900;color:#fff;padding:0 4px 10px}
  .mswin__grid{display:flex;gap:8px}
  .mswin__c{flex:1;text-align:center;background:rgba(255,255,255,.06);border-radius:12px;padding:12px 6px}
  .mswin__n{font-size:20px;font-weight:900;color:#D8FF34;line-height:1}
  .mswin__l{font-size:11px;font-weight:700;color:#c7d49a;margin-top:5px;line-height:1.2}
  .mswin--empty{margin-top:12px;background:var(--card);border:1px dashed var(--line);border-radius:16px;padding:16px;text-align:center;font-size:12.5px;color:var(--muted);line-height:1.5}
  /* 📊 Seller Match Insights — «биржа спроса» */
  .msins{margin-top:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 12px 30px -22px rgba(30,50,90,.4)}
  .msins__h b{display:block;font-size:14.5px;font-weight:900;color:var(--ink)}
  .msins__h span{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4}
  .msins__list{margin-top:12px;display:flex;flex-direction:column;gap:6px}
  .msins__row{position:relative;display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;overflow:hidden;background:var(--card2)}
  .msins__bar{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,rgba(216,255,52,.34),rgba(183,240,42,.14));border-radius:10px}
  .msins__lb{position:relative;flex:1;min-width:0;font-size:13px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .msins__ct{position:relative;font-size:13px;font-weight:900;color:#4C8700;flex:0 0 auto}
  .msreq__top{display:flex;align-items:center;gap:12px;flex:1 1 100%}
  .msreq__ph{flex:0 0 auto;width:46px;height:46px;border-radius:12px;overflow:hidden;background:var(--card2)}
  .msreq__ph img{width:100%;height:100%;object-fit:cover}
  .msreq__aged{display:inline-block;margin-left:6px;font-size:11px;font-weight:800;color:#B8860B;background:rgba(216,180,20,.14);padding:1px 7px;border-radius:999px;vertical-align:middle}
  .msreq__hot{display:inline-block;margin-left:6px;font-size:11px;font-weight:900;color:#C0400A;background:rgba(255,90,40,.14);padding:1px 8px;border-radius:999px;vertical-align:middle}
  .msreq--hot{background:linear-gradient(180deg,rgba(255,120,60,.06),transparent);border-radius:12px}
  .mreq__pop{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:900;color:#C0400A;background:rgba(255,90,40,.12);padding:3px 10px;border-radius:999px}
  /* 🚀 Match Boost */
  .mreq__boost{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin:10px 0 2px;padding:11px;border:0;border-radius:12px;background:linear-gradient(135deg,#141a05,#20300a);color:#fff;font-size:13px;font-weight:800;cursor:pointer}
  .mreq__boost span{font-size:15px}
  .mreq__boost b{font-weight:900;color:#D8FF34}
  .mcsum{display:flex;flex-direction:column;gap:8px;margin:6px 0 14px}
  .mcsum__r{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--card)}
  .mcsum__r:first-child{border-color:var(--blue);background:linear-gradient(120deg,rgba(216,255,52,.12),var(--card))}
  .mcsum__ic{font-size:20px;flex:0 0 auto}
  .mcsum__l{flex:1;min-width:0}
  .mcsum__l b{display:block;font-size:14px;font-weight:900;color:var(--ink)}
  .mcsum__l span{font-size:11.5px;color:var(--muted)}
  .mcsum__pr{font-weight:900;font-size:14px;color:var(--ink);white-space:nowrap}
  .mctabwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px}
  .mctab{width:100%;border-collapse:collapse;font-size:12.5px}
  .mctab th{text-align:left;padding:9px 10px;font-size:11px;color:var(--muted);font-weight:800;border-bottom:1px solid var(--line);white-space:nowrap}
  .mctab td{padding:10px;border-bottom:1px solid var(--line);white-space:nowrap;color:var(--ink)}
  .mctab tbody tr:last-child td,.mctab tr:last-child td{border-bottom:0}
  .mctab--best td{background:rgba(216,255,52,.08)}
  .mctab__v{font-style:normal;color:var(--blue2);font-weight:900}
  .mctab__lo{color:#4ccf5a;font-weight:900}
  .mctab__st{color:#4ccf5a;font-weight:800}
  .mctab__po{color:var(--muted)}
  .mctab__pick{padding:6px 12px;border:0;border-radius:9px;background:#D8FF34;color:#141a05;font-size:12px;font-weight:900;cursor:pointer}
  .macti__q{font-size:13px;font-weight:800;color:var(--muted);margin:2px 0 14px}
  .msucc{text-align:center;padding:8px 4px 4px}
  .msucc__ring{width:76px;height:76px;margin:6px auto 14px;border-radius:50%;display:grid;place-items:center;background:#D8FF34;color:#141a05;box-shadow:0 8px 26px rgba(140,212,0,.35)}
  .msucc__ring svg{width:38px;height:38px}
  .msucc__t{font-size:22px;font-weight:900;color:var(--ink)}
  .msucc__s{font-size:13px;color:var(--muted);margin-top:3px}
  .msucc__q{font-size:13px;font-weight:800;color:var(--ink);margin:12px 0 4px}
  .msucc__card{display:flex;align-items:center;gap:12px;text-align:left;margin:14px 0;padding:13px 14px;border-radius:16px;border:1.5px solid var(--blue);background:linear-gradient(120deg,rgba(216,255,52,.1),var(--card))}
  .msucc__logo{width:48px;height:48px;border-radius:12px;flex:0 0 auto;display:grid;place-items:center;font-weight:900;font-size:18px;background:var(--card2);color:var(--ink);overflow:hidden}
  .msucc__logo img{width:100%;height:100%;object-fit:cover}
  .msucc__info{flex:1;min-width:0}
  .msucc__info b{display:block;font-size:15px;font-weight:900;color:var(--ink)}
  .msucc__info span{font-size:12px;color:var(--muted)}
  .msucc__pr{font-weight:900;font-size:17px;color:var(--ink);white-space:nowrap}
  .mreq__boost:active{transform:scale(.98)}
  .mreq__boosted{display:flex;align-items:center;gap:7px;margin:10px 0 2px;padding:9px 12px;border-radius:12px;background:linear-gradient(135deg,rgba(216,255,52,.16),rgba(183,240,42,.05));border:1px solid rgba(140,212,0,.3);font-size:12px;font-weight:800;color:#4C8700}
  .mreq__boosted span{font-size:15px}
  .mreq--boosted{box-shadow:0 0 0 1.5px rgba(140,212,0,.4),0 16px 34px -24px rgba(140,212,0,.5)}
  /* Match 2.0 — фото/консьерж/бейджи предложений */
  .mconc{display:flex;align-items:center;gap:12px;margin-top:16px;padding:13px 14px;border-radius:16px;background:linear-gradient(135deg,rgba(216,255,52,.14),rgba(183,240,42,.06));border:1px solid rgba(140,212,0,.28)}
  .mconc__ic{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:#D8FF34;display:grid;place-items:center;font-size:20px}
  .mconc__m{flex:1;min-width:0}
  .mconc__m b{display:block;font-size:14px;font-weight:900;color:var(--ink)}
  .mconc__m span{display:block;font-size:12px;color:var(--muted);margin-top:2px;line-height:1.4}
  /* ⚡ Instant Match — уже в наличии */
  .miwrap{max-height:0;overflow:hidden;transition:max-height var(--d-3) cubic-bezier(.4,0,.2,1)}
  .miwrap.on{max-height:360px;margin-top:12px}
  .mirow__h b{display:block;font-size:13.5px;font-weight:900;color:#4C8700}
  .mirow__h span{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
  .mirow{display:flex;gap:10px;overflow-x:auto;padding:10px 2px 4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .mirow::-webkit-scrollbar{display:none}
  .micard{flex:0 0 128px;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer;box-shadow:0 10px 24px -20px rgba(30,50,90,.5)}
  .micard:active{transform:scale(.97)}
  .micard__img{position:relative;aspect-ratio:1;background:var(--card2)}
  .micard__img img{width:100%;height:100%;object-fit:cover}
  .micard__off{position:absolute;top:6px;left:6px;background:#ff4d4d;color:#fff;font-size:11px;font-weight:900;padding:1px 6px;border-radius:7px}
  .micard__b{padding:8px 9px 10px}
  .micard__n{font-size:12px;font-weight:700;color:var(--ink);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:30px}
  .micard__pr{font-size:14px;font-weight:900;color:#4C8700;margin-top:3px}
  .mreq__ph{flex:0 0 auto;width:48px;height:48px;border-radius:12px;overflow:hidden;background:var(--card2)}
  .mreq__ph img{width:100%;height:100%;object-fit:cover}
  .moffer__badges{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}
  .moffbadge{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;letter-spacing:.2px}
  .moffbadge--st{background:rgba(140,212,0,.16);color:#4C8700}
  .moffbadge--po{background:rgba(120,150,255,.16);color:#4664c8}
  .moffrate{font-size:11px;font-weight:800;color:#B8860B}
  /* 🕶 Anonymous Match — заметка + кнопка «Выбрать» */
  .mreq__anon{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted);line-height:1.35;margin:2px 2px 10px;padding:8px 10px;border-radius:12px;background:var(--card2)}
  .mreq__anon span{font-size:14px;flex:0 0 auto}
  .moffer__row,.moffer__hd{display:flex;align-items:center;gap:12px;flex:1;min-width:0;cursor:pointer}
  .moffpick{margin:8px 0 2px;width:100%;border:0;border-radius:12px;padding:11px;font-size:13.5px;font-weight:900;background:#D8FF34;color:#141a05;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}
  .moffpick:active{transform:scale(.98)}
  .moffpick--done{background:rgba(140,212,0,.14);color:#4C8700}
  .moffpick--done .eic{width:16px;height:16px}
  .moffer--dim{opacity:.42}
  .moffer--picked{background:linear-gradient(180deg,rgba(140,212,0,.08),transparent);border-radius:12px;padding:4px 6px}
  .moffbadge--multi{background:rgba(216,255,52,.18);color:#4C8700}
  /* Тёмная тема: тёмно-зелёный на тёмной карточке не читался (цены и метки
     вариантов в предложениях Match). Светлые оттенки тех же цветов. */
  :root[data-theme="dark"] .moffer__pr,:root[data-theme="dark"] .moffvar__pr{color:#D8FF34}
  :root[data-theme="dark"] .moffbadge--st,:root[data-theme="dark"] .moffbadge--multi{color:#D8FF34}
  :root[data-theme="dark"] .moffbadge--po{color:#A9BCFF}
  .moffer--multi{flex-direction:column;align-items:stretch;gap:0;cursor:default}
  .moffer__hd{display:flex;align-items:center;gap:12px;cursor:pointer;padding-bottom:2px}
  .moffvars{margin:6px 0 2px;border-top:1px dashed var(--line);padding-top:6px;display:flex;flex-direction:column;gap:2px}
  .moffvar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 2px}
  .moffvar__l{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
  .moffvar__nt{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
  .moffvar__pr{font-size:14.5px;font-weight:900;color:#4C8700;flex:0 0 auto}
  .btn.ghost{background:transparent;border:0;color:var(--muted);box-shadow:none;font-weight:800;font-size:14px;padding:14px;min-height:44px}
  .btn.ghost::after{display:none}   /* блик главной кнопки на текстовой кнопке выглядит как рамка */
  .btn.ghost:active{opacity:.6}
  /* Кошелёк — подсветка истории при тапе «История начислений» */
  /* ===== ✨ Микроанимации + глубина (v2 polish) ===== */
  @media (prefers-reduced-motion: no-preference){
    @keyframes dpUp{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
    @keyframes dpPop{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
    .recorow>*,.mshoprow>*,.mshopgrid>*,.promolist>*,.tierperks>*,.favshwrap>*,.pfmenu>*{animation:dpUp .34s cubic-bezier(.22,.61,.36,1) both}
    .recorow>*:nth-child(2),.mshoprow>*:nth-child(2),.mshopgrid>*:nth-child(2),.pfmenu>*:nth-child(2){animation-delay:.03s}
    .recorow>*:nth-child(3),.mshoprow>*:nth-child(3),.mshopgrid>*:nth-child(3),.pfmenu>*:nth-child(3){animation-delay:.06s}
    .recorow>*:nth-child(4),.mshoprow>*:nth-child(4),.mshopgrid>*:nth-child(4),.pfmenu>*:nth-child(4){animation-delay:.09s}
    .recorow>*:nth-child(n+5),.mshopgrid>*:nth-child(n+5),.pfmenu>*:nth-child(n+5){animation-delay:.12s}
    .sheet.on>*{animation:dpUp .3s ease both}
    .toast.on{animation:dpPop .28s cubic-bezier(.34,1.56,.64,1) both}
  }
  /* тактильный отклик нажатия — единый для всех кликабельных карточек/строк */
  .card,.mshop,.mshopf,.recocard,.ccard,.dcard,.dirrow,.ord2,.pfrow,.promocard,.mshopf__open,.trend__c,.shdsort__c,.shdcoll__c{transition:transform var(--d-1) var(--e-out),box-shadow var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out)}
  .card:active,.mshop:active,.mshopf:active,.recocard:active,.ccard:active,.dcard:active,.dirrow:active,.ord2:active,.promocard:active{transform:scale(.978)}
  /* глубина — заметнее тени/elevation у карточек */
  .card{box-shadow:0 10px 26px -20px rgba(30,50,90,.45)}
  .mshopf{box-shadow:0 16px 40px -26px rgba(30,50,90,.5)}
  .recocard,.ccard{box-shadow:0 12px 30px -22px rgba(30,50,90,.42)}
  .sec{box-shadow:0 10px 26px -24px rgba(30,50,90,.35)}
  :root[data-theme="dark"] .card,:root[data-theme="dark"] .mshopf,:root[data-theme="dark"] .recocard,:root[data-theme="dark"] .sec{box-shadow:0 14px 34px -22px rgba(0,0,0,.66)}
  /* переходы под-экранов профиля */
  @media (prefers-reduced-motion: no-preference){
    .pfslide{animation:pfSlideIn .28s cubic-bezier(.22,.61,.36,1) both}
    @keyframes pfSlideIn{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
  }
  /* ===== скелетоны загрузки ===== */
  .skel{position:relative;overflow:hidden;background:var(--skel);border-radius:8px}
  .skel::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:skShimmer 1.25s infinite}
  :root[data-theme="dark"] .skel::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.09),transparent)}
  @keyframes skShimmer{100%{transform:translateX(100%)}}
  .skgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .skcard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px}
  .skcard__img{width:100%;aspect-ratio:1;border-radius:12px}
  .skln{height:11px;border-radius:6px;margin-top:8px}
  .skln--70{width:70%}.skln--45{width:45%}.skln--55{width:55%}.skln--30{width:30%}
  .skrow{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line)}
  .skrow:last-child{border-bottom:0}
  .skrow__av{width:48px;height:48px;border-radius:16px;flex:0 0 auto}
  .skrow__tx{flex:1}
  /* профиль: значение справа + row с переключателем */
  .pfrow__val{font-size:13.5px;color:var(--muted);font-weight:700;margin-left:auto;white-space:nowrap}
  /* Длинная подпись состояния не должна выдавливать название строки. */
  /* Заголовок строки не должен налезать на то, что стоит справа. */
  .pfrow__tx b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* Состояние под заголовком: зелёное — настроено, красное — нет. Серым они
     читались бы одинаково, а это разные положения дел. */
  .pfrow--ok .pfrow__tx span{color:#1e8f45;font-weight:700}
  .pfrow--warn .pfrow__tx span{color:var(--err);font-weight:700}
  .pfrow--sw{display:flex;align-items:center;gap:13px;width:100%;padding:13px 2px;border:0;background:none;text-align:left}
  .pfrow--sw .pfrow__ic{flex:0 0 auto}
  .pfrow--sw .pfrow__tx{flex:1;min-width:0}
  /* О Droply */
  .aboutcard{text-align:center;padding:22px 18px 6px}
  .aboutcard__logo{width:64px;height:64px;margin:0 auto 10px;display:grid;place-items:center;border-radius:20px;background:rgba(216,255,52,.14)}
  .aboutcard__logo svg{width:40px;height:40px}
  .aboutcard__nm{font-size:24px;font-weight:900;letter-spacing:-.5px;color:var(--ink)}
  .aboutcard__tag{font-size:13px;color:var(--muted);margin-top:1px}
  .aboutcard__ver{font-size:12px;color:var(--muted);margin-top:10px}
  .aboutcard__desc{font-size:13px;color:var(--ink);line-height:1.55;max-width:320px;margin:12px auto 0;opacity:.85}
  /* Промокоды */
  .promoadd{display:flex;gap:8px}
  .promoadd input{flex:1;border:1px solid var(--line);border-radius:12px;padding:11px 13px;font-size:14px;background:var(--card2);color:var(--ink);text-transform:uppercase}
  .promolist{display:flex;flex-direction:column;gap:10px}
  .promocard{display:flex;align-items:center;gap:12px;background:var(--card);border:1px dashed var(--line);border-radius:16px;padding:13px 14px}
  .promocard__l{flex:1;min-width:0}
  .promocard__code{font-size:14px;font-weight:900;color:var(--ink);letter-spacing:.5px}
  .promocard__t{font-size:12.5px;color:var(--ink);margin-top:2px}
  .promocard__s{font-size:11px;color:var(--muted);margin-top:1px}
  .promocard__b{flex:0 0 auto;border:0;border-radius:10px;padding:9px 14px;font-size:12.5px;font-weight:800;background:#D8FF34;color:#141a05;cursor:pointer}
  .promocard__b.on{background:var(--card2);color:var(--muted)}
  .promocard__b:active{transform:scale(.95)}
  /* Программа лояльности — преимущества уровня */
  .tierperks{display:flex;flex-direction:column;gap:11px}
  .tierperk{display:flex;align-items:center;gap:11px;font-size:13.5px;font-weight:700;color:var(--ink)}
  .tierperk__ic{flex:0 0 auto;width:24px;height:24px;border-radius:8px;background:rgba(60,180,90,.16);display:grid;place-items:center;color:#1e8f45}
  .tierperk__ic .eic{width:14px;height:14px}
  /* 🎉 Экран «магазин готов» */
  .srwrap{padding:8px 2px 20px}
  .srhero{text-align:center;padding:18px 16px 6px}
  .srhero__img{width:min(230px,58vw);height:auto;object-fit:contain;margin:0 auto;display:block;filter:drop-shadow(0 22px 36px rgba(120,150,40,.32))}
  .srhero__emoji{font-size:84px;line-height:1;margin-bottom:4px}
  .srhero__badge{display:inline-block;margin:10px 0 6px;padding:5px 13px;border-radius:999px;background:rgba(60,180,90,.14);color:#1e8f45;font-size:12.5px;font-weight:800}
  .srhero__t{font-size:24px;font-weight:900;letter-spacing:-.4px;color:var(--ink);margin:2px 0 4px}
  .srhero__s{font-size:13.5px;color:var(--muted);line-height:1.5;max-width:300px;margin:0 auto}
  .srcta{margin:16px 0 6px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;padding:15px}
  .srcta .eic{width:19px;height:19px}
  .srsteps{display:flex;flex-direction:column;gap:8px;margin-top:12px}
  .srstep{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 14px;cursor:pointer}
  .srstep:active{transform:scale(.99)}
  .srstep--done{opacity:.62}
  .srstep__ic{flex:0 0 auto;font-size:22px;width:30px;text-align:center}
  .srstep__tx{flex:1;min-width:0}
  .srstep__tx b{display:block;font-size:14px;font-weight:800;color:var(--ink)}
  .srstep__tx span{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4}
  .srstep__ar{flex:0 0 auto;font-size:20px;color:var(--muted);font-weight:400}
  .msgate{text-align:center;padding:26px 18px}
  .msgate__ic{font-size:40px}
  .msgate h4{margin:8px 0 4px;font-size:17px;font-weight:900;color:var(--ink)}
  .favshwrap{display:flex;flex-direction:column;gap:0}
  .favsh__heart{flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:transparent;border:0;display:grid;place-items:center;color:#E4405F;cursor:pointer;margin-left:2px}
  .favsh__heart .eic{width:20px;height:20px}
  .favsh__heart:active{transform:scale(.88)}
  .paym{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid var(--line)}
  .paym:last-of-type{border-bottom:0}
  .paym__ic{flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:var(--card2);display:grid;place-items:center;color:var(--ink)}
  .paym__ic .eic{width:21px;height:21px}
  .paym__tx b{display:block;font-size:14.5px;font-weight:800;color:var(--ink)}
  .paym__tx span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
  /* Уровень пользователя */
  /* 🏅 Экран «Ваш уровень». Карточка текущей ступени — тёмная плита с бейджем,
     ставкой и полосой до следующей; ниже ступени карточками, каждая со своим
     бейджем. Тёмная плита не зависит от темы намеренно: это витрина статуса,
     и на светлой теме она должна оставаться такой же, какой человек её
     запомнил. */
  .lvcard{position:relative;overflow:hidden;border-radius:28px;padding:22px;color:#fff;
    background:linear-gradient(158deg,#1b1f28,#0a0c10 72%)}
  /* Свечение в цвет ступени — подсказка, а не фон: на светлых ступенях круг в
     70% ширины с blur(38px) накрывал карточку целиком и белый текст переставал
     читаться совсем. Держим его маленьким, тусклым и в углу, а содержимое
     поднимаем над ним слоем. */
  .lvcard__glow{position:absolute;right:-48px;top:-48px;width:150px;height:150px;border-radius:50%;
    opacity:.18;filter:blur(36px);pointer-events:none;z-index:0}
  .lvcard>*:not(.lvcard__glow){position:relative;z-index:1}
  .lvcard__top{display:flex;align-items:center;gap:17px}
  /* Бейдж — круглая медаль: металлический круг, внутри более тёмный диск и
     светлый знак. Шестиугольник из первой версии рядом с круглыми аватарами
     остального приложения читался как чужая деталь. */
  .lvbadge{flex:0 0 auto;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;
    color:#fff;position:relative;box-shadow:0 6px 18px -8px rgba(0,0,0,.6)}
  .lvbadge::after{content:'';position:absolute;inset:7px;border-radius:50%;
    background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.28),rgba(0,0,0,.34));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
  .lvbadge .eic{width:27px;height:27px;position:relative;z-index:1;
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}
  .lvbadge--sm{width:46px;height:46px;box-shadow:0 4px 12px -7px rgba(0,0,0,.5)}
  .lvbadge--sm::after{inset:5px}
  .lvbadge--sm .eic{width:19px;height:19px}
  .lvcard__nm{font-size:27px;font-weight:900;letter-spacing:-.5px;line-height:1.08}
  .lvcard__cb{font-size:14.5px;font-weight:800;margin-top:6px}
  .lvcard__perk{font-size:13px;color:rgba(255,255,255,.55);margin-top:3px}
  .lvcard__togo{font-size:13.5px;font-weight:700;margin-top:20px;color:rgba(255,255,255,.9)}
  .lvcard__track{height:8px;border-radius:999px;background:rgba(255,255,255,.13);margin-top:10px;overflow:hidden}
  .lvcard__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#8ed11f,#D8FF34);
    transition:width var(--d-3) var(--e-out)}
  .lvlbl{font-size:17px;font-weight:800;color:var(--ink);margin:22px 2px 11px}
  .lvlist{display:flex;flex-direction:column;gap:10px}
  .lvrow{display:flex;align-items:center;gap:13px;padding:14px;border-radius:16px;
    background:var(--card);border:1px solid var(--line)}
  .lvrow.on{border-color:var(--blue2);background:color-mix(in srgb,var(--blue2) 8%,var(--card))}
  .lvrow__tx{flex:1;min-width:0}
  .lvrow__nm{font-size:15px;font-weight:800;color:var(--ink)}
  .lvrow__cb{font-size:13px;color:var(--muted);margin-top:1px}
  .lvrow__perk{font-size:12.5px;color:var(--muted);opacity:.8;margin-top:1px}
  .lvrow__min{flex:0 0 auto;font-size:12.5px;font-weight:700;color:var(--muted)}
  .lvrow__ok{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--ink);
    color:var(--bg);display:grid;place-items:center}
  .lvrow__ok .eic{width:13px;height:13px;stroke-width:3}
  /* 📜 История: месячные группы и строки с кружком-значком, суммой и меткой
     состояния — как в макете. */
  .hseg{display:flex;gap:8px;margin:14px 0 4px;overflow-x:auto;scrollbar-width:none}
  .hseg::-webkit-scrollbar{display:none}
  .hseg button{flex:0 0 auto;background:var(--card);border:1px solid var(--line);border-radius:999px;
    padding:9px 16px;font-size:13px;font-weight:700;color:var(--muted);
    transition:background var(--d-2) var(--e-out),color var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out)}
  .hseg button.on{background:var(--ink);border-color:var(--ink);color:var(--card-solid)}
  .hgrp{font-size:13.5px;font-weight:800;color:var(--blue);margin:20px 2px 10px}
  .hrow{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:16px;
    background:var(--card);border:1px solid var(--line);margin-bottom:8px}
  .hrow__ic{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--ink)}
  .hrow__ic .eic{width:19px;height:19px}
  .hrow__ic--cash{background:color-mix(in srgb,#3cb45a 16%,transparent)}
  .hrow__ic--bonus{background:color-mix(in srgb,var(--blue2) 18%,transparent)}
  .hrow__ic--buy{background:color-mix(in srgb,var(--muted) 18%,transparent)}
  .hrow__tx{flex:1;min-width:0}
  .hrow__tx b{display:block;font-size:14.5px;font-weight:800;color:var(--ink);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .hrow__tx span{display:block;font-size:12px;color:var(--muted);margin-top:2px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .hrow__r{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:5px}
  .hrow__amt{font-size:14.5px;font-weight:800;color:var(--ink);white-space:nowrap}
  .hrow__amt.plus{color:#2e9e4f}
  .hpill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
  .hpill--ok{background:color-mix(in srgb,#3cb45a 16%,transparent);color:#2e9e4f}
  .hpill--off{background:color-mix(in srgb,var(--muted) 16%,transparent);color:var(--muted)}
  .hpill--burn{background:color-mix(in srgb,var(--err) 14%,transparent);color:var(--err)}
  /* 🎁 Принятый подарок: значок, сумма, от кого и подпись. Выпуск новых
     подарков с баланса закрыт — остался только экран получателя. */
  .gsend__ic{position:relative;width:46px;height:46px;display:grid;place-items:center;color:var(--ink)}
  .gsend__ic .eic{width:34px;height:34px;stroke-width:1.6}
  .gsend__t{font-size:20px;font-weight:900;color:var(--ink);letter-spacing:-.3px;margin-top:12px}
  .gsend__s{font-size:13.5px;color:var(--muted);line-height:1.45;margin-top:5px}
  .gsend__msg{width:100%;min-height:82px;resize:none;padding:13px 15px;border-radius:12px;
    background:var(--card);border:1px solid var(--line);outline:none;font:inherit;
    font-size:14px;color:var(--ink);line-height:1.45}
  /* FAQ + контакты поддержки */
  .faqwrap{display:flex;flex-direction:column;gap:8px}
  .faq{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px 16px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .faq__q{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;font-weight:800;color:var(--ink)}
  .faq__chev{width:18px;height:18px;flex:0 0 auto;transition:transform var(--d-2) var(--e-out);color:var(--muted)}
  .faq.on .faq__chev{transform:rotate(180deg)}
  .faq__a{display:none;font-size:13px;color:var(--muted);line-height:1.55;margin-top:10px}
  .faq.on .faq__a{display:block;animation:fadeUp .24s both}
  .supc{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .supc__c{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px 14px;cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent}
  .supc__c b{font-size:14px;font-weight:800;color:var(--ink)}
  .supc__c span{font-size:12px;color:var(--muted)}
  .supc__ic{width:38px;height:38px;border-radius:12px;background:#D8FF34;display:grid;place-items:center;color:#141a05;margin-bottom:6px}
  .supc__ic .eic{width:19px;height:19px}
  /* Уведомления с категориями */
  .ntabs{display:flex;gap:8px;overflow-x:auto;margin:0 -2px 14px;padding-bottom:2px}
  .ntab{flex:0 0 auto;padding:8px 15px;border-radius:999px;background:var(--card2);border:1px solid var(--line);color:var(--muted);font-weight:800;font-size:13px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .ntab.on{background:#D8FF34;color:#141a05;border-color:transparent}
  .nlist{display:flex;flex-direction:column;gap:8px}
  .nrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .nrow__ic{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:var(--card2);display:grid;place-items:center;color:var(--ink)}
  .nrow__ic .eic{width:20px;height:20px}
  .nrow__tx{flex:1;min-width:0}
  .nrow__tx b{display:block;font-size:14px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nrow__tx span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
  .nrow__t{flex:0 0 auto;font-size:11px;color:var(--muted);align-self:flex-start;margin-top:3px}
  .nempty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 20px;gap:11px}
  .nempty__ic{width:64px;height:64px;border-radius:20px;background:var(--card2);display:grid;place-items:center;color:var(--muted)}
  .nempty__ic .eic{width:30px;height:30px}
  .nempty p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.5;max-width:260px}
  /* Карточки адресов (Дом/Работа) */
  .adrlist{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
  .adrc{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;cursor:pointer;box-shadow:0 12px 30px -26px rgba(0,0,0,.4)}
  .adrc__ic{flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:var(--card2);display:grid;place-items:center;color:var(--ink)}
  .adrc__ic .eic{width:21px;height:21px}
  .adrc__tx{flex:1;min-width:0}
  .adrc__top{display:flex;align-items:center;gap:8px}
  .adrc__top b{font-size:14.5px;font-weight:800;color:var(--ink)}
  .adrc__def{font-size:11px;font-weight:800;color:#141a05;background:#D8FF34;padding:2px 7px;border-radius:999px}
  .adrc__l{font-size:12.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .adrc__del{flex:0 0 auto;width:36px;height:36px;border-radius:10px;background:transparent;border:0;display:grid;place-items:center;color:var(--muted);cursor:pointer}
  .adrc__del:active{transform:scale(.9);color:var(--err)}
  /* ===== Кабинет продавца 2.0 — единый v2-облик (шапка/вкладки/карточки/поля) ===== */
  #viewCabinet .prof__nm{font-size:20px;font-weight:900;letter-spacing:-.3px}
  #viewCabinet .prof__sub{font-size:12.5px}
  #viewCabinet .sec{border-radius:20px;padding:18px 16px;box-shadow:0 16px 38px -28px rgba(0,0,0,.4)}
  #viewCabinet .sec h4{font-size:16px;font-weight:900;letter-spacing:-.2px}
  #viewCabinet label.f{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
  #viewCabinet input,#viewCabinet select,#viewCabinet textarea{border-radius:16px;background:var(--card2);border:1px solid var(--line);transition:border-color var(--d-1) var(--e-out),box-shadow var(--d-1) var(--e-out)}
  #viewCabinet input:focus,#viewCabinet select:focus,#viewCabinet textarea:focus{border-color:#B7F02A;box-shadow:0 0 0 3px rgba(216,255,52,.22);outline:0}
  #viewCabinet .btn.sec{border-radius:16px;font-weight:800}
  /* Дашборд продавца 2.0 */
  .dashwrap{margin-bottom:14px}
  .dsec__h{display:flex;align-items:center;justify-content:space-between;margin:16px 2px 8px}
  .dsec__h b{font-size:15.5px;font-weight:900;color:var(--ink);display:flex;align-items:center;gap:8px}
  .dcnt{font-size:11px;font-weight:800;color:#141a05;background:#D8FF34;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center}
  .dsec__all{background:none;border:0;color:var(--blue2);font-size:12.5px;font-weight:800;cursor:pointer}
  .dstg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .dst{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 15px;box-shadow:0 12px 30px -22px rgba(30,50,90,.4)}
  .dst__l{font-size:12px;color:var(--muted);font-weight:600}
  .dst__v{font-size:22px;font-weight:900;color:var(--ink);letter-spacing:-.5px;margin-top:4px}
  .dorow{display:flex;align-items:center;gap:12px;padding:11px 10px;border-bottom:1px solid var(--line)}
  .dorow:last-child{border-bottom:0}
  .dorow img{width:44px;height:44px;border-radius:12px;object-fit:cover;flex:0 0 auto;background:var(--card2)}
  .dorow__m{flex:1;min-width:0}
  .dorow__m b{display:block;font-size:13.5px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dorow__m span{display:block;font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dpill{flex:0 0 auto;font-size:11px;font-weight:800;padding:4px 9px;border-radius:999px;white-space:nowrap}
  .dpill.lime{color:#3d6b00;background:rgba(216,255,52,.28)}
  .dpill.blue{color:#2f6bd8;background:rgba(95,163,255,.2)}
  .dpill  .dpill.purple{color:#7a5bd8;background:rgba(160,120,255,.18)}
  .dempty{padding:16px;text-align:center;font-size:13px;color:var(--muted)}
        .pfcb{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden;box-shadow:0 16px 36px -24px rgba(0,0,0,.3)}
  .pfcb__l,.pfcb__r{padding:18px 18px}
  .pfcb__r{border-left:1px solid var(--line);position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .pfcb__r:active{opacity:.85}
  .pfcb__lbl{font-size:12.5px;color:var(--muted);font-weight:700;display:flex;align-items:center;gap:5px}
  .pfcb__bal{font-size:30px;font-weight:900;letter-spacing:-1px;margin-top:5px;font-variant-numeric:tabular-nums}
  .pfcb__hint{font-size:11.5px;color:var(--muted);margin-top:3px}
  .pfcb__btn{margin-top:13px;width:100%;background:#D8FF34;color:#141a05;border:0;border-radius:12px;padding:11px;font-size:13.5px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:transform var(--d-1) var(--e-out)}
  .pfcb__btn:active{transform:scale(.96)}
  .pfcb__lvl{font-size:24px;font-weight:900;margin-top:5px}
  .pfcb__hex{position:absolute;top:14px;right:14px;width:40px;height:40px}
  .pfcb__track{height:7px;border-radius:999px;background:var(--card2);overflow:hidden;margin-top:12px}
  .pfcb__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#B7F02A,#D8FF34);box-shadow:0 0 10px rgba(216,255,52,.5)}
  .pfcb__next{font-size:11.5px;color:var(--muted);font-weight:600;margin-top:9px;display:flex;align-items:center;gap:4px}
  .pfcb__next .eic{width:12px;height:12px}
  /* 4 стата */
  .pfins{margin-top:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);padding:16px}
  .pfins__h{font-size:14px;font-weight:900;color:var(--ink);margin-bottom:12px}
  .pfins__row{display:flex;gap:10px}
  .pfins__c{flex:1;background:var(--card2);border-radius:16px;padding:13px 10px;text-align:center}
  .pfins__c b{display:block;font-size:19px;font-weight:900;color:var(--ink);font-variant-numeric:tabular-nums}
  .pfins__c span{display:block;font-size:11px;color:var(--muted);margin-top:3px;line-height:1.25}
  .pfins__grp{margin-top:12px}
  .pfins__lbl{font-size:11.5px;font-weight:800;color:var(--muted);margin-bottom:7px}
  .pfins__chips{display:flex;flex-wrap:wrap;gap:6px}
  .pfins__chip{font-size:12px;font-weight:800;color:var(--ink);background:rgba(216,255,52,.14);border:1px solid rgba(140,212,0,.24);padding:5px 11px;border-radius:999px}
  .pfins__chip--sz{background:var(--card2);border-color:var(--line);color:var(--muted)}
  .pfstats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden}
  .pfstats .st{padding:16px 4px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
  .pfstats .st+.st{border-left:1px solid var(--line)}
  .pfstats .st__ic{width:38px;height:38px;border-radius:50%;background:rgba(216,255,52,.16);display:grid;place-items:center;color:var(--blue2)}
  .pfstats .st__ic .eic{width:19px;height:19px}
  .pfstats .st b{font-size:17px;font-weight:900;color:var(--ink);font-variant-numeric:tabular-nums}
  .pfstats .st span{font-size:11px;color:var(--muted);font-weight:700;line-height:1.2}
  /* меню-списки */
  .pfmenu{margin-top:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden}
  /* Глубина карточек в светлой теме (чтобы белые карточки не сливались с фоном) */
  :root[data-theme="light"] .sec,:root[data-theme="light"] .pfmenu,:root[data-theme="light"] .dirrow,:root[data-theme="light"] .nrow,:root[data-theme="light"] .faq,:root[data-theme="light"] .adrc,:root[data-theme="light"] .supc__c{box-shadow:0 12px 30px -20px rgba(30,50,90,.42),0 2px 6px -3px rgba(30,50,90,.1)}
  .pfmenu button{display:flex;align-items:center;gap:14px;width:100%;padding:15px 16px;border:0;background:transparent;cursor:pointer;text-align:left;color:var(--ink);transition:background var(--d-1) var(--e-out)}
  /* Разделитель начинается от текста, а не от края экрана: строки внутри
     раздела читаются как одна группа, а пауза между разделами остаётся
     единственной жирной границей. */
  .pfmenu button+button{border-top:1px solid transparent;border-image:linear-gradient(90deg,transparent 0 56px,var(--line) 56px) 1}
  .pfmenu button:active{background:var(--card2)}
  .pfmenu .mi{width:26px;display:grid;place-items:center;color:var(--ink);flex:0 0 auto}
  .pfmenu .mi .eic{width:22px;height:22px;stroke-width:1.7}
  .pfmenu .ml{flex:1;font-size:15.5px;font-weight:600;min-width:0}
  .pfmenu .ms{display:block;font-size:12.5px;font-weight:500;color:var(--muted);margin-top:2px;line-height:1.35}
  /* Цифровая наклейка: код должен читаться через весь зал, а не с прищуром. */
  .dplpin{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:16px;background:var(--card2);border:1px solid var(--line)}
  .dplpin span{font-size:12.5px;color:var(--muted)}
  .dplpin b{font-size:30px;font-weight:800;letter-spacing:2px;font-variant-numeric:tabular-nums}
  /* QR печатают сканером пакомата — фон под ним всегда белый, независимо от темы. */
  .dplqr{margin-top:12px;display:grid;place-items:center;min-height:190px;padding:14px;border-radius:16px;background:#fff}
  .dplqr img{width:190px;height:190px;image-rendering:pixelated;display:block}
  .pfmenu .mb{font-size:11px;font-weight:800;color:#141a05;background:#D8FF34;border-radius:999px;min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center}
  .pfmenu .mc{width:17px;height:17px;color:var(--muted);opacity:.55;flex:0 0 auto}
  .sec{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:14px;margin-top:12px}
  .sec h4{margin:0 0 8px;font-size:14px}
  .ordrow{border-bottom:1px solid var(--line);padding:10px 0}.ordrow:last-child{border-bottom:0}
  .status{font-size:11px;font-weight:800;padding:3px 9px;border-radius:8px}
  .status.placed{background:#8a94a622;color:var(--muted)}.status.confirmed{background:#D8FF3422;color:var(--blue2)}.status.shipped{background:#F5A62322;color:var(--gold)}.status.delivered{background:#D8FF3422;color:var(--ok)}.status.canceled{background:#F0443822;color:var(--err)}
  .hint{background:#D8FF3414;border:1px solid #D8FF3433;border-radius:12px;padding:10px 12px;font-size:12.5px;color:var(--muted);margin-top:12px}
  @keyframes vipShine{0%,100%{left:-60%}45%,55%{left:120%}}
  /* cabinet */
  .thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
  .thumb{position:relative;width:66px;height:66px;border-radius:10px;overflow:hidden;background:var(--card2);border:1px solid var(--line)}
  .thumb img{width:100%;height:100%;object-fit:cover}
  .thumb b{position:absolute;left:3px;bottom:3px;font-size:11px;background:#000a;color:#fff;padding:1px 5px;border-radius:6px}
  .thumb button{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;background:#000a;color:#fff;border:0;font-size:11px}
  .up{display:block;width:100%;text-align:center;padding:12px;border:1.5px dashed var(--blue);border-radius:12px;color:var(--blue2);font-weight:800;margin-top:8px;background:transparent}
  .up.locked{border-color:var(--blue-a3);color:var(--gold);border-style:solid;background:#D8FF340f}
  .szrow{display:flex;gap:8px;align-items:center;margin-top:6px}.szrow span{flex:0 0 54px;font-weight:800}
  .cmp{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}
  .cmp th,.cmp td{border:1px solid var(--line);padding:8px 6px;text-align:center}.cmp th{background:var(--card2);font-weight:800}.cmp td:first-child,.cmp th:first-child{text-align:left}
  .sw{position:relative;width:46px;height:28px;flex:0 0 auto}
  .sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0}
  .sw i{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:var(--d-2) var(--e-out)}
  .sw i::after{content:'';position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:var(--d-2) var(--e-out)}
  .sw input:checked + i{background:var(--cyan)}.sw input:checked + i::after{transform:translateX(18px)}
  input[type=checkbox],input[type=radio]{accent-color:var(--cyan)}
  .lockrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.lockrow:last-child{border-bottom:0}.lockrow.dis{opacity:.5}
  .lockrow>span{flex:1;min-width:0;display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px 4px;line-height:1.3}
  .lockrow>span .eic{vertical-align:0}
  .lockrow .lockmini{margin-left:2px}
  .lock{font-size:11px;font-weight:800;color:var(--gold);background:#D8FF3422;padding:2px 7px;border-radius:7px}
  /* quiz + hints */
  .qopt{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;margin-bottom:6px;font-size:13.5px;cursor:pointer}
  .qopt input{width:18px;height:18px;accent-color:var(--cyan);flex:0 0 auto}
  .qopt:has(input:checked){border-color:var(--blue);background:#D8FF3414}
  .dhint{background:#D8FF3414;border:1px solid #D8FF3444;border-radius:12px;padding:10px 12px;font-size:12.5px;color:var(--muted);margin-top:12px}.dhint b{color:var(--ink)}
  /* 5 тарифов — карточки */
  .rankttl.t-free{color:#c2cbdd}.rankttl.t-pro{background:linear-gradient(120deg,#fff2c0,#D8FF34,#fff);-webkit-background-clip:text;background-clip:text;color:transparent}.rankttl.t-bulk{color:var(--blue)}.rankttl.t-empire{color:#ff9a5a}.rankttl.t-white{color:#D8FF34}
  /* 🎠 карусель тарифов */
  .billtgl{display:inline-flex;background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:2px}
  .billtgl button{border:0;background:transparent;color:var(--muted);font-weight:800;font-size:11.5px;padding:6px 12px;border-radius:999px}
  .billtgl button.on{background:var(--cyan);color:#1E2433}.billtgl button b{color:var(--blue2)}.billtgl button.on b{color:#1E2433}
  .tcar{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px 2px 6px;-webkit-overflow-scrolling:touch;margin-top:6px}
  .tcar::-webkit-scrollbar{display:none}
  .tcard{scroll-snap-align:center;flex:0 0 78%;max-width:300px;background:var(--card);border:1.5px solid var(--line);border-radius:20px;padding:16px;display:flex;flex-direction:column}
  .tcard.cur{border-color:var(--blue)}
  .tcard.t-pro{border-color:var(--blue-a2)}.tcard.t-bulk{border-color:#B7FF2A55}.tcard.t-empire{border-color:#ff9a5a55}.tcard.t-white{border-color:#D8FF3455}
  .tcard__h{display:flex;align-items:center;gap:9px}
  .tcard__e{font-size:26px}.tcard__h b{font-size:16px;display:block}.tcard__h i{font-style:normal;font-size:11px;color:var(--muted)}
  .tcard__p{font-size:26px;font-weight:900;margin:12px 0 4px}.tcard__p span{font-size:12px;font-weight:700;color:var(--muted);margin-left:4px}.tcard__p s{color:#6b7896}
  .tcard{position:relative}
  .tcard.t-hot{border-color:var(--cyan);box-shadow:0 6px 22px -10px var(--cyan)}
  .tpop{position:absolute;top:-1px;right:14px;transform:translateY(-50%);background:var(--cyan);color:#1E2433;font-size:11px;font-weight:900;padding:3px 9px;border-radius:9px}
  .tpitch{margin:2px 0 8px}.tpitch b{display:block;font-size:13px;color:var(--ink);font-weight:900}.tpitch span{display:block;font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:2px}
  .tcard__f{list-style:none;padding:0;margin:8px 0 14px;flex:1}
  .tcard__f li{font-size:12.5px;color:var(--muted);padding:5px 0 5px 20px;position:relative;border-bottom:1px solid var(--line)}
  .tcard__f li:last-child{border-bottom:0}
  .tcard__f li::before{content:'';position:absolute;left:0;color:var(--ok);font-weight:900}
  .tcard__b{width:100%}.tcurbadge{text-align:center;font-weight:900;font-size:13px;color:var(--ok);background:#D8FF3418;border:1px solid #D8FF3444;border-radius:12px;padding:11px}
  /* стритвир-ранги на плитках уровней */
  /* цветные заголовки ранга */
  .rankttl{font-style:normal}
  /* мини-бейдж уровня в карте возможностей — по рангу */
  /* details / GPSR / инфо-блоки */
  details.gpsr,details.pdinfo{margin-top:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0 12px}
  details.gpsr summary,details.pdinfo summary{cursor:pointer;padding:12px 0;font-weight:800;font-size:13px;list-style:none;position:relative;padding-right:20px}
  details summary::-webkit-details-marker{display:none}
  details.gpsr summary::after,details.pdinfo summary::after{content:'▸';position:absolute;right:2px;transition:var(--d-2) var(--e-out);color:var(--muted)}
  details[open].gpsr summary::after,details[open].pdinfo summary::after{transform:rotate(90deg)}
  details.gpsr>*:not(summary){margin-bottom:8px}details.gpsr[open]{padding-bottom:10px}
  .pdinfo p{font-size:13px;color:var(--muted);line-height:1.5;margin:10px 0}
  .pdsafe{background:#D8FF3410;border:1px solid #D8FF3433;border-radius:10px;padding:9px 11px;font-size:12px;color:var(--muted);margin:8px 0 12px}.pdsafe b{color:var(--ink);display:block;margin-bottom:4px}.pdsafe div{margin:2px 0}
  .pdtrader{font-size:11.5px;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 11px;margin-top:8px}.pdtrader b{color:var(--ink)}
  .pdtrader--warn{color:var(--ink);background:rgba(245,165,36,.10);border-color:rgba(245,165,36,.35);line-height:1.5}
  .pdtrader--warn .eic{color:var(--warn)}
  .legallinks{display:flex;flex-direction:column}
  .legallinks a{padding:10px 4px;font-size:13.5px;color:var(--blue2);border-bottom:1px solid var(--line);transition:padding-left var(--d-1) var(--e-out)}
  .legallinks a:last-child{border-bottom:0}.legallinks a:active{padding-left:8px}
  /* ===== 🎬 микроанимации (в стиле Stailz) ===== */
  @keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  @keyframes popIn{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
  @keyframes pulseDot{0%,100%{opacity:1}50%{opacity:.4}}
  @keyframes shimmerTxt{to{background-position:200% center}}
  @keyframes heartPop{0%{transform:scale(1)}40%{transform:scale(1.55)}70%{transform:scale(.9)}100%{transform:scale(1)}}
  @keyframes pricePop{0%{transform:scale(1)}50%{transform:scale(1.18);color:var(--cyan)}100%{transform:scale(1)}}
  .sec{animation:fadeUp .34s both}
  #cabBody>.sec:nth-child(2){animation-delay:.04s}#cabBody>.sec:nth-child(3){animation-delay:.08s}#cabBody>.sec:nth-child(4){animation-delay:.12s}#cabBody>.sec:nth-child(5){animation-delay:.16s}
  .capitem{animation:fadeUp .3s both}
  .capgrid .capitem:nth-child(even){animation-delay:.04s}
  .mcard{animation:fadeUp .32s both}.payrow{animation:fadeUp .34s both}
  .adrcard,.citem,.ordrow{animation:fadeUp .3s both}
  .tabbar button.on .ic{animation:popIn .4s}
  .p__fav.on{animation:heartPop .45s}
  .p__b{animation:popIn .4s both}
  .phero__brand,.upsell__t{background-size:200% auto}
  .phero__brand{animation:shimmerTxt 4.5s linear infinite}
  .pbadge.ok{animation:pulseDot 2.6s ease-in-out infinite}
  .dpcard{animation:fadeUp .3s both}
  .pricepop{animation:pricePop .3s}
  .toast.on{animation:popIn .3s}
  .chip:active,.dmethod:active,.seg__b:active,.mact:active{transform:scale(.94)}
  .icn:active{transform:scale(.88)}
  .p:active .p__img{transform:scale(1.04);transition:transform var(--d-2) var(--e-out)}
  /* 🌊 волна 2 — витрина/карточки: blur-up фото, взрыв лайка, пульс скидки, блик CTA, пульс остатка */
  .p__img{opacity:0;transform:scale(1.05);filter:blur(6px);transition:opacity var(--d-3) var(--e-out),transform .6s var(--e-out),filter var(--d-3) var(--e-out)}
  .p__img.ld{opacity:1;transform:none;filter:none}
  .favring{position:absolute;left:50%;top:50%;width:30px;height:30px;border-radius:50%;border:2px solid #ff5a7a;pointer-events:none;transform:translate(-50%,-50%);animation:favRing .55s ease-out forwards}
  @keyframes favRing{0%{transform:translate(-50%,-50%) scale(.35);opacity:.75}100%{transform:translate(-50%,-50%) scale(2.6);opacity:0}}
  /* премиум: без пульсации бейджей — только тонкий блик по кнопке раз в цикл */
  .p__cta:not(.out){position:relative;overflow:hidden}
  .p__cta:not(.out)::after{content:'';position:absolute;top:0;left:-60%;width:34%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-18deg);animation:ctaSweep 7s ease-in-out infinite;pointer-events:none}
  @keyframes ctaSweep{0%,86%,100%{left:-60%}93%{left:135%}}
  @media (prefers-reduced-motion:reduce){.sec,.capitem,.mcard,.payrow,.adrcard,.citem,.ordrow,.phero__brand,.pbadge.ok,.tabbar button.on .ic,.p__cta:not(.out)::after{animation:none!important}.p__img{opacity:1;filter:none;transform:none}}
  /* статистика продавца */
  .datasince{background:#D8FF3412;border:1px solid #D8FF3433;border-radius:12px;padding:9px 12px;font-size:12px;color:var(--muted);margin:10px 0}.datasince .eic{width:15px;height:15px;vertical-align:-2px;margin-right:5px}.datasince b{color:var(--ink)}.datasince span{display:block;font-size:11px;color:var(--gold);margin-top:2px}
  .statgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:4px}
  .stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 8px;text-align:center;animation:fadeUp .34s both}
  .stat__i{font-size:18px}.stat__i .eic{width:20px;height:20px}.stat b{display:block;font-size:16px;font-weight:900;margin:3px 0 1px}.stat span{font-size:11px;color:var(--muted)}
  .bars{display:flex;align-items:flex-end;gap:6px;height:120px;margin-top:10px;padding-top:14px}
  .bar{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;gap:5px}
  .bar__f{width:70%;min-height:3px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--cyan),var(--blue));position:relative;transition:height var(--d-3) cubic-bezier(.3,.8,.3,1);animation:barGrow .6s ease both}
  .bar__f i{position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:900;color:var(--ink);font-style:normal}
  .bar span{font-size:11px;color:var(--muted)}
  @keyframes barGrow{from{height:0!important}}
  /* карта возможностей */
  .capwrap{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;margin-top:4px}
  .capsum{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .capsum__l b{font-size:18px;display:block}.capsum__l span{font-size:12px;color:var(--muted)}
  .capring{flex:0 0 auto;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:900;color:var(--ink);background:conic-gradient(var(--blue) calc(var(--p)*1%),var(--card2) 0)}
  .capring::before{content:'';position:absolute;width:40px;height:40px;border-radius:50%;background:var(--card)}
  .capring{position:relative}.capring{z-index:0}
  .capbar{height:7px;border-radius:999px;background:var(--card2);overflow:hidden;margin-top:11px}
  .capbar__f{height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan))}
  .capblock{padding:12px 13px}
  .capblock__h{display:flex;align-items:center;justify-content:space-between;font-weight:900;font-size:14px;padding-left:9px;border-left:3px solid var(--cc)}
.capblock>summary{list-style:none;cursor:pointer;gap:8px}
.capblock>summary::-webkit-details-marker{display:none}
.capblock__h>span{flex:1}
.capblock[open]>summary{margin-bottom:9px}
.capblock__go{width:16px;height:16px;color:var(--muted);transition:transform var(--d-2) var(--e-out)}
.capblock[open] .capblock__go{transform:rotate(180deg)}
  .capblock__h i{font-style:normal;font-size:12px;color:var(--muted);background:var(--card2);padding:2px 8px;border-radius:8px}
  .capgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .capitem{position:relative;display:flex;gap:7px;align-items:flex-start;padding:8px 9px;border-radius:12px;background:var(--card2);border:1px solid var(--line);opacity:.6}
  .capitem.on{opacity:1;border-color:var(--blue-a2);background:#D8FF3412}
  .capitem[data-need]{cursor:pointer}
  .capitem__i{flex:0 0 auto;font-size:13px}.capitem.on .capitem__i{color:var(--ok)}
  .capitem__n{font-size:11.5px;line-height:1.25;font-weight:700}
  .capitem__lv{position:absolute;top:6px;right:7px;font-size:11px;font-weight:900;color:var(--gold);background:#D8FF3422;padding:1px 5px;border-radius:6px}
  /* вход в панель продавца */
  .sellerbtn{display:flex;align-items:center;gap:12px;width:100%;margin-top:12px;padding:14px 16px;border:0;border-radius:16px;background:#D8FF34;color:#1E2433;text-align:left;box-shadow:0 12px 30px rgba(216,255,52,.34);cursor:pointer;position:relative;overflow:hidden}
  .sellerbtn::after{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent);transform:skewX(-18deg);animation:sheen 3.4s ease-in-out infinite}
  .sellerbtn:active{transform:scale(.99)}
  .sellerbtn__ic{font-size:24px;position:relative;z-index:2}
  .sellerbtn__t{flex:1;display:flex;flex-direction:column;line-height:1.25;position:relative;z-index:2}
  .sellerbtn__t b{font-size:15px;font-weight:900}.sellerbtn__t span{font-size:12px;opacity:.92}
  .sellerbtn__go{font-size:20px;font-weight:900;position:relative;z-index:2}
  /* 🎯 рекламные лоты */
  /* 🖼 аренда баннера + бизнес-скидка */
  .bizbadge{display:inline-block;font-size:11px;font-weight:800;background:#D8FF3422;color:var(--blue);border:1px solid #D8FF3455;padding:2px 7px;border-radius:8px;vertical-align:middle}
  .brmetrics{display:flex;gap:8px;margin:12px 0}
  .brmetrics div{flex:1;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:10px 6px;text-align:center}
  .brmetrics b{display:block;font-size:18px;font-weight:900}.brmetrics span{font-size:11px;color:var(--muted)}
  .bruploader{margin-top:6px;border:1.5px dashed var(--line);border-radius:16px;overflow:hidden;cursor:pointer;background:var(--card2);min-height:110px;display:flex;align-items:center;justify-content:center}
  .bruploader:active{transform:scale(.99)}
  .brph{color:var(--muted);font-size:13px;font-weight:700;padding:22px 10px}
  .brprev{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
  .brprice{margin-top:12px;font-size:13px;color:var(--muted)}.brprice b{color:var(--ink);font-size:16px}
  /* 📣 Кабинет рекламодателя */
  /* 📢 Рассылка */
  .bcpacks{display:flex;gap:8px}
  .bcpack{flex:1;background:var(--card2);border:1.5px solid var(--line);border-radius:16px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;transition:transform var(--d-1) var(--e-out),border-color var(--d-2) var(--e-out)}
  .bcpack:active{transform:scale(.96)}
  .bcpack.on{border-color:var(--blue);background:linear-gradient(150deg,#D8FF3418,var(--card2))}
  .bcpack b{font-size:17px;font-weight:900}.bcpack span{font-size:11px;color:var(--muted)}.bcpack i{font-style:normal;font-weight:800;font-size:12.5px;color:var(--blue2);margin-top:2px}
  .bcsub{display:flex;align-items:flex-start;gap:8px;margin-top:12px;font-size:12.5px;color:var(--muted);cursor:pointer}
  .bcsub input{margin-top:2px;width:16px;height:16px;accent-color:var(--cyan)}
  .bcprice{margin-top:12px;font-size:13px;color:var(--muted)}.bcprice b{color:var(--ink);font-size:15px}
  /* Остаток символов рассылки: подпись под полем, не кричит, пока есть запас. */
  .bccount{font-size:11.5px;color:var(--muted);margin-top:6px;text-align:right}
  .perkbox{border:1px solid #D8FF3433;background:linear-gradient(150deg,#D8FF340a,var(--card))}
  .perkok{background:#D8FF3418;border:1px solid #D8FF3444;border-radius:12px;padding:11px 13px;font-size:13px;color:var(--ok);font-weight:700}
  
  
  @keyframes pop{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
  @media (prefers-reduced-motion:reduce){}
  .wzhead{display:flex;align-items:center;gap:11px;margin-bottom:8px}
  .wzhead .ico{font-size:28px;animation:pop .5s both}.wzhead h3{margin:0}
  .wzhead .ico .eic{width:30px;height:30px;color:var(--blue2);stroke-width:1.7;vertical-align:middle}
  /* 🚀 Droply 2.0 — AI-онбординг */
  .aob{display:flex;flex-direction:column;padding:6px 2px 0}
  .aob__top{display:flex;align-items:center;gap:10px;margin:0 0 14px}
  .aob__top .stbars{flex:1}
  .aob__back{width:34px;height:34px;flex:0 0 34px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer}
  .aob__back .eic{width:18px;height:18px}
  .aob__body{flex:1}
  /* Кнопка держится над нижним меню (оно fixed, ~76px), а не под ним. */
  .aob__cta{position:sticky;bottom:calc(84px + var(--sab));z-index:3;padding:12px 0 6px;background:linear-gradient(to top,var(--bg) 78%,transparent);display:flex;flex-direction:column;gap:2px;margin-top:16px}
  .aob__cta .btn{width:100%}
  .aob__link{background:none;border:0;color:var(--muted);font-weight:750;font-size:13.5px;padding:10px;cursor:pointer}
  .aob__h1{font-size:28px;line-height:1.12;font-weight:900;letter-spacing:-.4px;margin:10px 0 8px}
  .aob__h{font-size:22px;line-height:1.2;font-weight:900;letter-spacing:-.2px;margin:4px 0 6px}
  .tgf{margin-top:14px}.tgf .aob__note+.btn{margin-top:8px}
  .an{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}.an__i{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:11px 12px;display:flex;flex-direction:column;gap:4px}
  .an__i b{font-size:14px;color:var(--ink);line-height:1.35}.an__i>span{font-size:12px;color:var(--muted)}
  .an__r{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;background:var(--card2);border:0;border-radius:12px;padding:8px 10px;margin-top:4px;font:inherit;color:var(--ink);cursor:pointer}.an__r i{font-style:normal;font-size:12px;color:var(--muted)}
  .chs__act{margin-top:8px}.chs__act .aob__in{width:100%}
  .aob__found{list-style:none;padding:0;margin:12px 0 4px;display:flex;flex-direction:column;gap:8px}
  .aob__found li{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 12px}
  .aob__found li div{display:flex;flex-direction:column;gap:2px}.aob__found b{font-size:15px;color:var(--ink)}.aob__found span:not(.aob__ci){font-size:12px;color:var(--muted)}
  .aob__brand .aob__in{flex:1}
  .aob__h3{font-size:15px;font-weight:850;margin:18px 0 8px}
  .aob__s{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 14px}
  .aob__fine{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 0}
  .aob__hero{position:relative;overflow:hidden;border-radius:20px;padding:22px 18px 20px;margin:4px 0 16px;background:var(--card);border:1px solid var(--line)}
  .aob__blob{position:absolute;right:-60px;top:-70px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,var(--blue2),transparent 65%);opacity:.35;pointer-events:none}
  .aob__kick{position:relative;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:850;color:var(--limeink);background:rgba(216,255,52,.12);border-radius:999px;padding:6px 11px}
  .aob__kick .eic{width:14px;height:14px}
  .aob__hero .aob__h1,.aob__hero .aob__s{position:relative}
  .aob__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
  .aob__list li{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 14px;font-size:14px;font-weight:700}
  .aob__list .eic{width:20px;height:20px;color:var(--blue);flex:0 0 auto}
  .aob__cards{display:flex;flex-direction:column;gap:9px}
  .aob__card{display:flex;align-items:center;gap:12px;text-align:left;width:100%;background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:14px;color:var(--ink);cursor:pointer;transition:border-color var(--d-2) var(--e-out),transform var(--d-1) var(--e-out)}
  .aob__card:active{transform:scale(.985)}
  .aob__card.on{border-color:var(--blue);background:var(--card2)}
  .aob__card b{display:block;font-size:15px;font-weight:850}
  .aob__card div>span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.4}
  .aob__ci{width:40px;height:40px;flex:0 0 40px;border-radius:12px;display:grid;place-items:center;background:var(--card2);color:var(--blue)}
  .aob__ci .eic{width:20px;height:20px}
  .aob__rec{font-style:normal;font-size:11px;font-weight:850;color:var(--limeink);background:rgba(216,255,52,.14);border-radius:999px;padding:2px 7px;margin-left:4px;vertical-align:2px}
  .aob__in{width:100%;box-sizing:border-box}
  .aob__in.bad{border-color:#ff5a5a}
  .aob__ok{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:13px;font-weight:700;color:var(--blue)}
  .aob__ok .eic{width:18px;height:18px;flex:0 0 auto}
  .aob__perm{margin:16px 0 0;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px}
  .aob__permh{display:flex;align-items:center;gap:8px;font-weight:850;font-size:14px;margin-bottom:8px}
  .aob__permh .eic{width:18px;height:18px;color:var(--blue)}
  .aob__pl{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:7px}
  .aob__pl li{display:flex;gap:9px;font-size:13px;line-height:1.4}
  .aob__pl .eic{width:16px;height:16px;flex:0 0 auto;margin-top:1px}
  .aob__pl li.y .eic{color:var(--blue)}
  .aob__pl li.n{color:var(--muted)}
  .aob__more{margin:12px 0 0;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
  .aob__more summary{font-weight:800;font-size:13.5px;cursor:pointer}
  .aob__more p{font-size:12.5px;color:var(--muted);line-height:1.5;margin:8px 0 10px}
  .aob__scan{text-align:center;padding-top:18px}
  .aob__orb{width:84px;height:84px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,var(--blue2),var(--blue) 70%);color:#1E2433;animation:aobPulse 1.6s var(--e-out) infinite}
  .aob__orb .eic{width:36px;height:36px}
  @keyframes aobPulse{0%,100%{box-shadow:0 0 0 0 rgba(216,255,52,.45)}50%{box-shadow:0 0 0 16px rgba(216,255,52,0)}}
  .aob__steps{list-style:none;padding:0;margin:18px auto 0;max-width:320px;text-align:left;display:flex;flex-direction:column;gap:10px}
  .aob__steps li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--muted);opacity:.45;transition:opacity var(--d-2) var(--e-out)}
  .aob__steps li .eic{width:18px;height:18px;border-radius:50%;padding:2px;background:var(--card2);color:transparent}
  .aob__steps li.on{opacity:1;color:var(--ink)}
  .aob__steps li.done{opacity:1;color:var(--ink)}
  .aob__steps li.done .eic{background:var(--blue);color:#1E2433}
  .aob__err{display:flex;gap:8px;align-items:flex-start;text-align:left;background:rgba(255,90,90,.1);border:1px solid rgba(255,90,90,.35);border-radius:12px;padding:12px;margin:18px 0 10px;font-size:13px;line-height:1.45}
  .aob__err .eic{width:18px;height:18px;flex:0 0 auto;color:#ff6b6b}
  .aob__ring{--p:0;width:96px;height:96px;flex:0 0 96px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(closest-side,var(--bg) 78%,transparent 80% 100%),conic-gradient(var(--blue2) calc(var(--p) * 1%),var(--card2) 0)}
  .aob__ring b{font-size:28px;font-weight:900;line-height:1}
  .aob__ring span{font-size:11px;color:var(--muted);font-weight:700}
  .aob__ring--big{width:150px;height:150px;flex-basis:150px;margin:8px auto 4px}
  .aob__ring--big b{font-size:40px}
  .aob__chan b{display:block;font-size:17px;font-weight:900}
  .aob__chan span{display:block;font-size:12.5px;color:var(--muted);margin-top:3px}
  .aob__note{display:flex;gap:9px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin:10px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted)}
  .aob__note .eic{width:17px;height:17px;flex:0 0 auto;color:var(--blue)}
  .aob__ai{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin:10px 0 0}
  .aob__ai p{margin:6px 0 0;font-size:14px;line-height:1.45}
  .aob__tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:850;color:var(--limeink);background:rgba(216,255,52,.12);border-radius:999px;padding:2px 8px;vertical-align:1px}
  .aob__tag .eic{width:11px;height:11px}
  .aob__met{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 0}
  .aob__met--2{grid-template-columns:repeat(2,1fr);margin:16px 0 0}
  .aob__met div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 6px;text-align:center}
  .aob__met b{display:block;font-size:18px;font-weight:900}
  .aob__met span{display:block;font-size:11px;color:var(--muted);font-weight:700;margin-top:2px;line-height:1.25}
  .aob__cks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
  .aob__ck{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
  .aob__ck b{display:block;font-size:13.5px;font-weight:800;line-height:1.3}
  .aob__ck div>span{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
  .aob__ck .aob__ci{width:30px;height:30px;flex-basis:30px;border-radius:10px}
  .aob__ck .aob__ci .eic{width:16px;height:16px}
  .aob__ck--ok .aob__ci{color:var(--blue)}
  .aob__ck--no .aob__ci{color:#ffb020}
  .aob__ck--na .aob__ci{color:var(--muted)}
  .aob__qn{font-size:12px;font-weight:850;color:var(--blue);text-transform:uppercase;letter-spacing:.6px;margin:0 0 4px}
  .aob__chips{display:flex;flex-wrap:wrap;gap:8px}
  .aob__chip{display:inline-flex;align-items:center;gap:6px;padding:11px 15px;border-radius:999px;background:var(--card);border:1.5px solid var(--line);color:var(--ink);font-weight:800;font-size:14px;cursor:pointer}
  .aob__chip.on{border-color:var(--blue);background:var(--card2)}
  .aob__chip .eic{width:15px;height:15px;color:var(--blue)}
  .aob__brand{display:flex;align-items:center;gap:14px;margin:4px 0 12px}
  .aob__logo{width:72px;height:72px;flex:0 0 72px;border-radius:20px;overflow:hidden;background:var(--card2);display:grid;place-items:center;border:1px solid var(--line)}
  .aob__logo img{width:100%;height:100%;object-fit:cover}
  .aob__logo b{font-size:28px;font-weight:900;color:var(--blue)}
  .aob__addr{font-size:12px;color:var(--muted);margin:6px 0 4px;min-height:16px}
  .aob__seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ce__tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ce__tabs button{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ce__tabs button{padding:11px 6px;gap:5px;font-size:13px}
/* Нативная кнопка Telegram заменяет нашу на оформлении — не две одинаковые. */
body.tg-mb .pdbuybar #c_submit{display:none}@media (max-width:400px){.ce__tabs button .eic{display:none}}
  /* 🌐 DROPly Market: спрос, групповые цены, «где заработать» */
  .msins__row--tap{width:100%;border:0;font:inherit;text-align:left;cursor:pointer;color:inherit}
  .msins__row--tap>.eic{position:relative;width:14px;height:14px;color:var(--muted);flex:0 0 auto}
  .dm__list{padding:4px 12px}
  .dm__row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.dm__row:last-child{border-bottom:0}
  .dm__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dm__m b{font-size:14px;color:var(--ink)}.dm__m span{font-size:12px;color:var(--muted)}
  .dm__me{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;color:var(--blue2)}.dm__me .eic{width:14px;height:14px}
  .grp{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin:0 0 10px}
  .grp__top{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
  .grp__top>.eic{width:16px;height:16px;color:var(--muted);flex:0 0 auto}
  .grp__img{width:48px;height:48px;border-radius:12px;overflow:hidden;background:var(--card2);flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:var(--muted)}
  .grp__img img{width:100%;height:100%;object-fit:cover}
  .grp__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.grp__m b{font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grp__m span{font-size:12px;color:var(--muted)}
  .grp__price{display:flex;align-items:baseline;gap:8px;margin:10px 0 8px}.grp__price s{font-size:13px;color:var(--muted)}.grp__price b{font-size:20px;font-weight:900;color:var(--ink)}
  .grp__bar{height:8px;border-radius:999px;background:var(--card2);overflow:hidden}.grp__bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#B7F02A,#D8FF34)}
  .grp__meta{font-size:12px;color:var(--muted);margin:6px 0 10px}
  .dmc__stats{display:flex;gap:8px;margin:10px 0 4px}
  .dmc__st{flex:1;background:var(--card2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.dmc__st b{font-size:18px;font-weight:900;color:var(--ink)}.dmc__st span{font-size:11.5px;color:var(--muted);line-height:1.35}
  .dmc__item{display:flex;align-items:center;gap:10px}.dmc__item img,.dmc__noimg{width:44px;height:44px;border-radius:12px;object-fit:cover;background:var(--card2);flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:var(--muted)}
  .dmc__im{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dmc__im b{font-size:13.5px;color:var(--ink)}.dmc__im span{font-size:12px;color:var(--muted)}
  .dmc__acts{display:flex;gap:8px;margin:8px 0 12px}.dmc__acts .btn{flex:1}
  .dmc__req{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:12.5px}.dmc__req:last-child{border-bottom:0}.dmc__req span{color:var(--ink);min-width:0}.dmc__req b{color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.dmc__req .eic{width:13px;height:13px;color:var(--blue2)}
  .grps{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.grps:last-child{border-bottom:0}
  .grps__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.grps__m b{font-size:13px;color:var(--ink)}.grps__m span{font-size:12px;color:var(--muted)}
  .intel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin:0 0 12px}
  .intel__h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.intel__h b{display:inline-flex;align-items:center;gap:6px;font-size:15px;color:var(--ink)}.intel__h span{font-size:13px;font-weight:900;color:#4C8700}
  .intel__row{display:flex;align-items:center;gap:8px;width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:none;font:inherit;color:var(--ink);text-align:left;font-size:13px;cursor:pointer}
  .intel__row span{flex:1;min-width:0}.intel__row b{color:#4C8700;font-weight:900;white-space:nowrap}.intel__row .eic{width:14px;height:14px;color:var(--muted)}
  .st__post{white-space:pre-line;font-size:14px;line-height:1.5;padding:12px 14px;border-radius:16px;background:var(--card2);border:1px solid var(--line);margin-top:8px;word-break:break-word}
  .st__rules{display:flex;flex-direction:column;gap:6px;margin-top:8px}
  .st__rule{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:8px 0;border-bottom:1px solid var(--line)}
  .st__rule span{color:var(--muted)}
  .st__rule b{text-align:right;min-width:0;word-break:break-word}
  .aob__seg button{display:flex;align-items:center;justify-content:center;gap:7px;padding:12px;border-radius:12px;background:var(--card);border:1.5px solid var(--line);color:var(--ink);font-weight:800;font-size:13.5px;cursor:pointer}
  .aob__seg button.on{border-color:var(--blue);background:var(--card2)}
  .aob__seg .eic{width:17px;height:17px}
  .aob__items{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:8px}
  .aob__item{display:flex;align-items:center;gap:10px;background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:9px;opacity:.6;transition:opacity var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out)}
  .aob__item.on{opacity:1;border-color:var(--blue)}
  .aob__item img,.aob__noimg{width:60px;height:60px;flex:0 0 60px;border-radius:12px;object-fit:cover;background:var(--card2);display:grid;place-items:center;color:var(--muted)}
  .aob__pick{width:26px;height:26px;flex:0 0 26px;border-radius:8px;border:2px solid var(--line);background:transparent;display:grid;place-items:center;color:#1E2433;cursor:pointer;padding:0}
  .aob__item.on .aob__pick{background:var(--blue);border-color:var(--blue)}
  .aob__pick .eic{width:15px;height:15px}
  .aob__it{flex:1;min-width:0}
  .aob__it b{display:block;font-size:13.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .aob__it span{display:block;font-size:11.5px;color:var(--muted);margin-top:1px;min-height:14px}
  .aob__pr{font-size:14px;font-weight:900;margin-top:3px}
  .aob__pn{display:flex;align-items:center;gap:8px;margin-top:4px}
  .aob__pn i,.aob__tile i{font-style:normal;font-size:11px;font-weight:850;color:#ffb020;background:rgba(255,176,32,.12);border-radius:999px;padding:3px 8px;white-space:nowrap}
  .aob__price{width:84px;padding:6px 9px;font-size:13px;border-radius:10px}
  .aob__store{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:14px;margin:4px 0 0}
  .aob__sh{display:flex;align-items:center;gap:12px;margin-bottom:12px}
  .aob__sh .aob__logo{width:54px;height:54px;flex-basis:54px;border-radius:16px}
  .aob__sh>div>b{display:block;font-size:17px;font-weight:900}
  .aob__sh>div>span{display:block;font-size:12px;color:var(--muted);line-height:1.4;margin-top:2px}
  .aob__grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .aob__tile{background:var(--card2);border-radius:12px;padding:6px 6px 9px;min-width:0}
  .aob__tile img,.aob__tile .aob__noimg{width:100%;height:auto;aspect-ratio:1;border-radius:10px;object-fit:cover;flex:none}
  .aob__tile b{display:block;font-size:12.5px;font-weight:800;margin:6px 2px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .aob__tile span{display:block;font-size:13px;font-weight:900;margin:0 2px}
  .aob__tile i{margin:2px 2px 0;display:inline-block}
  .aob__was{background:var(--card);border:1px dashed var(--line);border-radius:12px;padding:10px 12px;margin:0 0 12px}
  .aob__was span{font-size:11px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
  .aob__was p{margin:4px 0 0;font-size:13px;line-height:1.45;color:var(--muted);white-space:pre-line}
  .aob__done{text-align:center;padding-top:10px}
  .aob__done .aob__s{max-width:320px;margin-left:auto;margin-right:auto}
  .aob__done .aob__note{text-align:left}
  .aob__resume{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card);border:1.5px solid var(--blue);border-radius:16px;padding:12px 14px;margin:0 0 12px;color:var(--ink);cursor:pointer}
  .aob__resume b{display:block;font-size:14.5px;font-weight:850}
  .aob__resume div>span{display:block;font-size:12px;color:var(--muted);margin-top:1px}
  .aob__resume>.eic{width:18px;height:18px;color:var(--muted);margin-left:auto}
  /* 📅 Контент-движок */
  .ce__list{display:flex;flex-direction:column;gap:9px;margin:12px 0 0}
  .ce__post{display:flex;gap:11px;background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:10px;opacity:.55;transition:opacity var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out)}
  .ce__post.on{opacity:1;border-color:var(--line)}
  .ce__ph{width:58px;height:58px;flex:0 0 58px;border-radius:12px;object-fit:cover;background:var(--card2);display:grid;place-items:center;color:var(--blue)}
  .ce__ph .eic{width:22px;height:22px}
  .ce__pb{flex:1;min-width:0}
  .ce__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px}
  .ce__meta b{font-weight:850}
  .ce__meta>span:not(.aob__tag):not(.ce__st){color:var(--muted);font-weight:700}
  .ce__tx{margin:5px 0 0;font-size:13px;line-height:1.45;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  .ce__ta{margin-top:6px;font-size:13px}
  /* ⚡ Быстрое добавление */
  .qa__ph{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px}
  .qa__im{position:relative;width:72px;height:72px;border-radius:12px;overflow:hidden;background:var(--card2)}.qa__im img{width:100%;height:100%;object-fit:cover}
  .qa__im button{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:999px;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:14px;line-height:1;cursor:pointer}
  .qa__add.busy{opacity:.5;pointer-events:none}
  .demobadge{position:fixed;left:12px;bottom:calc(var(--sab) + 92px);z-index:58;border:0;border-radius:999px;padding:5px 11px;font:800 11px/1 inherit;letter-spacing:1.2px;text-transform:uppercase;
    background:var(--lime);color:#141a05;box-shadow:0 6px 18px -6px rgba(0,0,0,.45);cursor:pointer}
  body.showing .demobadge{display:none}
  .tg-fs .demobadge{left:50%;bottom:auto;top:calc(var(--sat) - 36px);transform:translateX(-50%)}
  .ptip{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.45;color:var(--muted);margin:6px 0 4px}
  .ptip .eic{width:15px;height:15px;flex:0 0 auto;margin-top:1px}
  .ptuse{width:auto;margin-top:8px}
  .qa__add{width:72px;height:72px;border-radius:12px;border:1.5px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;color:var(--muted);cursor:pointer}
  .qa__sz{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.qa__sz b{flex:1;font-size:14px;color:var(--ink)}.qa__sz .qty{margin:0}
  .qa__szadd{display:flex;gap:8px;margin-top:8px}.qa__szadd .aob__in{flex:1}
  .qa__dupe{border-color:var(--blue)}
  /* 📋 Импорт прайс-листа */
  .qb__ta{min-height:168px;font-size:14px;line-height:1.5;resize:vertical}
  .qb__sum{display:flex;align-items:baseline;gap:8px;margin:4px 0 10px;font-size:13px;color:var(--muted)}.qb__sum b{font-size:20px;color:var(--ink);font-variant-numeric:tabular-nums}
  .qb__row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
  .qb__row input[type=checkbox]{width:22px;height:22px;flex:0 0 auto;accent-color:var(--accent,var(--ink));margin:0}
  .qb__tx{flex:1;min-width:0}.qb__tx b{display:block;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .qb__tx span{display:block;font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .qb__tx .qb__warn{color:var(--warn,#B4690E)}
  .qb__pr{width:84px;flex:0 0 auto;min-height:44px;text-align:right;font-variant-numeric:tabular-nums}
  .qb__row--off .qb__tx{opacity:.55}
  .ce__rw{margin-top:8px}.ce__rw .aob__chip{padding:6px 11px;font-size:12px}
  .ce__ti{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ce__ti .eic{width:12px;height:12px;flex:0 0 auto}
  .ce__acts{display:flex;align-items:center;gap:6px;margin-top:6px}
  .ce__acts .aob__chip{padding:6px 11px;font-size:12px}
  .ce__acts .aob__link{padding:6px 4px;font-size:12.5px}
  .ce__st{font-size:11px;font-weight:850;border-radius:999px;padding:2px 8px;background:var(--card2);color:var(--muted)}
  .ce__st--sent{color:var(--blue)}
  .ce__st--failed{color:#ff6b6b}
  .ce__err{font-size:11.5px;color:#ffb020;margin-top:4px;line-height:1.4}
  .ce__tabs{margin:4px 0 10px}
  .ce__h{font-size:14px;font-weight:850;margin:16px 0 4px}
.ce__rs{display:flex;gap:11px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin:12px 0 0}.ce__rsic{flex:0 0 38px;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--limeink);background:rgba(216,255,52,.12)}.ce__rsb{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ce__rsb b{font-size:14px;font-weight:850}.ce__rsb span{font-size:12px;line-height:1.4;color:var(--muted)}.ce__rs .btn.sm{flex:0 0 auto}
  .ce__fresh{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
  .ce__fp{display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px;color:var(--ink);text-align:left;cursor:pointer;min-width:0}
  .ce__fp img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
  .ce__fp b{font-size:11.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ce__fp span{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:850;color:var(--limeink)}
  .ce__fp .eic{width:12px;height:12px}
  /* 🤖 AI-продавец */
  .ag__rules{display:flex;flex-direction:column;gap:6px}
  .ag__rule{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13.5px;font-weight:750}
  .ag__rule i{display:block;font-style:normal;font-size:11px;color:var(--muted);font-weight:700;margin-top:2px}
  .ag__rule--off{opacity:.6}
  .ag__kb{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 6px 8px 12px;margin:6px 0 0;font-size:13px}
  .ag__kb span{flex:1;line-height:1.4}
  .ag__kb .eic{width:16px;height:16px}
  .ag__kbadd{display:flex;gap:8px;margin-top:8px}
  .ag__kbadd .btn{width:auto;flex:0 0 auto}
  .ag__res{background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:12px;margin-top:10px}
  .ag__res b{font-size:13px}
  .ag__res p{margin:6px 0 0;font-size:13.5px;line-height:1.45}
  .ag__res--reply,.ag__res--suggest{border-color:var(--blue)}
  .ag__res--handoff{border-color:#ffb020}
  .dcm__ai{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:850;color:var(--limeink);margin-bottom:2px}
  .dcm__ai .eic{width:12px;height:12px}
  /* 🧠 AI-Home */
  .aih{margin:0 0 14px}
  .aih__top{display:flex;align-items:flex-end;justify-content:space-between;margin:2px 0 10px}
  .aih__hi{font-size:22px;font-weight:900;letter-spacing:-.2px;line-height:1.2}
  .aih__brief{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
  .aih__brief p{margin:6px 0 0;font-size:14px;line-height:1.5}
  .aih__tasks{display:flex;flex-direction:column;gap:7px;margin:10px 0 0}
  .aih__task{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:9px 12px;color:var(--ink);cursor:pointer}
  .aih__task .aob__ci{width:34px;height:34px;flex-basis:34px;border-radius:12px}
  .aih__task>.eic{width:16px;height:16px;color:var(--muted);margin-left:auto;flex:0 0 auto}
  .aih__tt{font-size:13.5px;font-weight:800;line-height:1.3}
  .aih__tt i{display:block;font-style:normal;font-size:11px;font-weight:800;color:var(--limeink);margin-top:2px}
  .aih__calm{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:750;color:var(--muted);margin:10px 2px 0}
  .aih__calm .eic{width:16px;height:16px;color:var(--blue)}
  .aih__cmd{display:flex;gap:8px;margin:12px 0 0}
  .aih__cmd .btn{width:auto;flex:0 0 auto}
  .aih__mh{font-size:14px;font-weight:850;margin:16px 0 8px}
  /* Дела квадратиками 2×2 */
  .aih__sqs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 0}
  .aih__sq{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;min-height:148px;text-align:left;padding:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer}
  .aih__sqi{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;background:rgba(155,210,26,.14);color:#9bd21a}.aih__sqi .eic{width:20px;height:20px}
  .aih__sq b{font-size:26px;font-weight:900;line-height:1.05}
  .aih__sqt{font-size:13px;font-weight:800;line-height:1.25}.aih__sqt--big{font-size:15px;margin-top:6px}
  .aih__sq em{font-style:normal;font-size:11.5px;color:var(--muted);line-height:1.3;padding-right:16px}
  .aih__sq>.eic{position:absolute;right:12px;top:50%;width:16px;height:16px;color:var(--muted)}
  .aih__sqd{position:absolute;top:14px;right:14px;width:9px;height:9px;border-radius:999px;background:#9bd21a;box-shadow:0 0 10px rgba(155,210,26,.55)}
  .aih__sq--red{border-color:rgba(255,92,92,.45)}.aih__sq--red .aih__sqi{background:rgba(255,92,92,.14);color:#ff6b6b}.aih__sq--red .aih__sqd{background:#ff5c5c;box-shadow:0 0 10px rgba(255,92,92,.6)}
  .aih__sq--yellow{border-color:rgba(245,180,0,.4)}.aih__sq--yellow .aih__sqi{background:rgba(245,180,0,.14);color:#f5b400}.aih__sq--yellow .aih__sqd{background:#f5b400;box-shadow:0 0 10px rgba(245,180,0,.55)}
  .aih__sqs+.aob__link{margin-top:6px}
  /* 3.0: срочность задач и «Спроси Droply» */
  .aih__need{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:4px;font-size:15px;font-weight:800;color:var(--muted)}.aih__need .eic{width:16px;height:16px;color:#9bd21a}
  .aih__dot{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;font-size:12px;font-weight:900}
  .aih__dot--red{background:rgba(255,92,92,.16);color:#ff6b6b}.aih__dot--yellow{background:rgba(245,180,0,.16);color:#f5b400}.aih__dot--green{background:rgba(155,210,26,.16);color:#9bd21a}
  .aih__task--red{border-color:rgba(255,92,92,.45)}.aih__task--red .aob__ci{background:rgba(255,92,92,.14);color:#ff6b6b}
  .aih__task--yellow{border-color:rgba(245,180,0,.4)}.aih__task--yellow .aob__ci{background:rgba(245,180,0,.14);color:#f5b400}
  .aih__task--green .aob__ci{background:rgba(155,210,26,.14);color:#9bd21a}
  .aih__ask{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:14px;margin:14px 0 12px}
  .aih__ah{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:0;margin:0;background:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.aih__ah b{display:inline-flex;align-items:center;gap:6px;font-size:16px;color:var(--ink)}.aih__ah span{font-size:12px;color:var(--muted)}
  /* 💬 AI-помощник: экран-чат по макету — шапка с «Бета», пузыри, кнопки шага, строка ввода в подвале. */
  .aic__top{position:sticky;top:-6px;z-index:3;display:flex;align-items:flex-start;gap:10px;margin:-6px -16px 6px;padding:10px 16px 12px;background:var(--bg2);border-bottom:1px solid var(--line)}
  .aic__ib{flex:0 0 36px;width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0}
  .aic__ib .eic{width:18px;height:18px}
  .aic__hd{flex:1 1 auto;min-width:0}.aic__hd h3{margin:0;display:flex;align-items:center;gap:8px;font-size:20px}
  .aic__hd p{margin:4px 0 0;font-size:12.5px;line-height:1.4;color:var(--muted)}
  .aic__beta{display:inline-flex;align-items:center;font-size:11px;font-weight:850;letter-spacing:.02em;color:var(--limeink);background:rgba(216,255,52,.12);border:1px solid rgba(216,255,52,.35);border-radius:999px;padding:2px 8px;margin-left:6px}
  .aic__hd .aic__beta{margin-left:0}
  .aic__list{display:flex;flex-direction:column;gap:10px;padding:6px 0 4px}
  .aic__row{display:flex;align-items:flex-end;gap:8px;max-width:100%}
  .aic__row--me{justify-content:flex-end}
  .aic__av{flex:0 0 30px;width:30px;height:30px;border-radius:999px;display:grid;place-items:center;overflow:hidden;background:var(--card2);color:var(--ink);font-size:13px;font-weight:900}
  .aic__av img{width:100%;height:100%;object-fit:cover;display:block}
  .aic__av--ai{background:#D8FF34;color:#1E2433}.aic__av--ai .eic{width:16px;height:16px}
  .aic__b{max-width:82%;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:20px 20px 20px 6px;padding:10px 14px;color:var(--ink);font-size:14.5px;line-height:1.45;overflow-wrap:anywhere}
  .aic__b p{margin:0}.aic__b p+p,.aic__b .aob__tag+p{margin-top:6px}
  .aic__b--me{background:#D8FF34;border-color:transparent;color:#1E2433;font-weight:650;border-radius:20px 20px 6px 20px}
  .aic__fine{font-size:12.5px;color:var(--muted)}
  .aic__cks{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
  .aic__cks li{display:flex;align-items:flex-start;gap:8px;font-size:14px}
  .aic__cks .eic{flex:0 0 18px;width:18px;height:18px;padding:2px;border-radius:999px;background:rgba(155,210,26,.16);color:#9bd21a}
  .aic__post{margin-top:8px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--bg2)}
  .aic__post img{width:100%;max-height:180px;object-fit:cover;display:block}
  .aic__post p{padding:8px 10px;font-size:13px;white-space:pre-line;color:var(--ink)}
  .aic__acts{display:flex;flex-direction:column;gap:8px;margin:2px 0 4px 38px}
  .aic__acts .btn{padding:13px;font-size:14.5px;margin:0;display:flex;align-items:center;justify-content:center;gap:6px}
  .aic__ideas{margin:0 0 4px 38px}
  .aic__typing{display:flex;gap:4px;padding:14px 16px}
  .aic__typing i{width:7px;height:7px;border-radius:999px;background:var(--muted);animation:aicDot 1.2s infinite ease-in-out}
  .aic__typing i:nth-child(2){animation-delay:.15s}.aic__typing i:nth-child(3){animation-delay:.3s}
  @keyframes aicDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
  @media (prefers-reduced-motion:reduce){.aic__typing i{animation:none;opacity:.6}}
  .aic__bar{flex-direction:row;align-items:center;gap:8px}
  .aic__bar .aob__in{flex:1 1 auto;min-width:0;border-radius:999px;padding:12px 16px;margin:0}
  .aic__send{flex:0 0 46px;width:46px;height:46px;border-radius:999px;border:0;background:#D8FF34;color:#1E2433;display:grid;place-items:center;cursor:pointer;padding:0}
  .aic__send .eic{width:20px;height:20px}
  .aih__chips{margin-top:10px}.aih__chips .aob__chip{padding:7px 12px;font-size:12.5px}
  .aih__mgr{display:grid;grid-auto-flow:column;grid-auto-columns:128px;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .aih__mgr::-webkit-scrollbar{display:none}
  .aih__tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px;color:var(--ink);cursor:pointer;min-width:0}
  .aih__tile .aob__ci{width:32px;height:32px;flex-basis:32px;border-radius:12px;margin-bottom:2px}
  .aih__tile b{font-size:13.5px;font-weight:850}
  .aih__tile span:not(.aob__ci){font-size:11.5px;color:var(--muted);font-weight:700;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .aih__tile i{font-style:normal;font-size:11px;font-weight:800;color:var(--limeink)}
  .aob__center{text-align:center;justify-content:center}
  .aob__link--sm{font-size:12px;padding:4px}
  .aob__splash{text-align:center;padding:56px 0 24px}
  .aob__biz{margin:12px 0 0;padding:14px;border:1px solid var(--lg-edge);border-radius:20px;background:var(--lg-fill)}
  .aob__bizdoc{display:grid;place-items:center;min-height:84px;border:1.5px dashed var(--line);border-radius:16px;overflow:hidden;color:var(--muted);font-size:12.5px}
  .aob__bizdoc span{display:inline-flex;align-items:center;gap:6px}
  .aob__bizdoc img{width:100%;max-height:200px;object-fit:cover}
  .btn.bad{box-shadow:0 0 0 2px #ff5a5a}
  /* ✨ Droply OS в новом дизайне: свой полноэкранный слой (как чат и заказ),
     сияние под стеклом, капсулы и круглые отметки. */
  .aobx{position:fixed;inset:0;z-index:60;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--bg);isolation:isolate;padding:calc(12px + var(--sat)) 16px 0}
  .aobx>.aob{min-height:100%;max-width:520px;margin:0 auto;padding-top:0}
  .aobx .aob__cta{bottom:0;margin-left:-16px;margin-right:-16px;padding:14px 16px calc(14px + var(--sab));background:linear-gradient(to top,var(--bg) 62%,transparent)}
  .aobx .aob__top{margin-bottom:18px}
  .aob__top--x{justify-content:flex-end}
  .aob__x,.aobx .aob__back{width:40px;height:40px;flex:0 0 40px;border-radius:999px;border:1px solid var(--lg-edge);background:var(--lg-fill);color:var(--ink);display:grid;place-items:center;cursor:pointer}
  .aob__x .eic,.aobx .aob__back .eic{width:18px;height:18px}
  .aobx .aob__card,.aobx .aob__tog,.aobx .aob__list li,.aobx .aob__found li,.aobx .aob__ck,.aobx .aob__perm,.aobx .aob__more,.aobx .aob__note,.aobx .aob__ai,.aobx .an__i,.aobx .aob__met div,.aobx .aob__sec,.aobx .aob__hero,.aobx .aob__chip,.aobx .aih__tile,.aobx .aob__err{
    background:var(--lg-fill);border-color:var(--lg-edge);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 12px 30px -20px rgba(0,0,0,.55)}
  .aobx .aob__tog,.aobx .aob__ck,.aobx .aob__note,.aobx .aob__met div,.aobx .aob__err{border-radius:16px}
  .aobx .aob__card,.aobx .aob__tog,.aobx .aob__found li,.aobx .aob__list li,.aobx .aob__ck,.aobx .aob__perm,.aobx .aob__x,.aobx .aob__back{backdrop-filter:blur(var(--gb-m)) saturate(1.8);-webkit-backdrop-filter:blur(var(--gb-m)) saturate(1.8)}
  .lowfx .aobx *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .aobx .aob__card,.aobx .aob__hero,.aobx .aob__perm{border-radius:20px}
  .aobx .aob__perm .aob__tog{background:var(--lg-lens)}
  .aobx .aob__card.on,.aobx .aob__chip.on{border-color:var(--lg-on);box-shadow:inset 0 0 0 1px var(--lg-on),0 12px 30px -18px rgba(216,255,52,.35)}
  .aobx .aob__ci{border-radius:999px;background:var(--lg-lens);color:var(--lg-on)}
  .aobx .aob__list .eic,.aobx .aob__permh .eic,.aobx .aob__note .eic,.aobx .aob__chip .eic{color:var(--lg-on)}
  .aobx .aob__hero .aob__blob{opacity:.22}
  .aobx .aob__orb{background:var(--lg-fill);border:1px solid var(--lg-edge);color:var(--lg-on)}
  .aobx .aob__qn{color:var(--lg-on)}
  /* Отметка — круглая, как в остальном приложении, а не квадрат браузера. */
  .aob__tog>input[type=checkbox]{appearance:none;-webkit-appearance:none;width:24px;height:24px;flex:0 0 24px;border-radius:999px;border:2px solid var(--line);background:transparent;display:grid;place-items:center;cursor:pointer;
    transition:background-color var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out)}
  .aob__tog>input[type=checkbox]:checked{background:#D8FF34;border-color:#D8FF34}
  .aob__tog>input[type=checkbox]:checked::after{content:"";width:13px;height:13px;background:#10160a;-webkit-mask:var(--tick) center/13px 13px no-repeat;mask:var(--tick) center/13px 13px no-repeat}
  .aob__tog>input[type=checkbox]:disabled{opacity:.5}
  /* Первый экран — языком бренда, как загрузка и приветствие. */
  .aob__splash{display:flex;flex-direction:column;align-items:center;padding:9vh 0 12px}
  .aob__mark{margin:0 auto}
  .aob__name{margin-top:22px;font-size:52px}
  .aob__tagl{margin:14px auto 0;max-width:300px;font-size:17px;font-weight:600;line-height:1.35;color:var(--ink);opacity:.86}
  .aob__pills .wlc__pill{color:var(--ink)}
  .aob__pills .wlc__pill .eic{color:var(--lg-on)}
  .aobx .aob__cta .wlc__go{width:100%}
  :root[data-theme="light"] .aobx .bglass{background:rgba(255,255,255,.6);border-color:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 18px 44px -18px rgba(30,40,70,.3)}
  :root[data-theme="light"] .aobx .blogo svg path{fill:#1E2433}
  :root[data-theme="light"] .aobx .bname{background-image:linear-gradient(100deg,#1E2433 0%,#4C8700 25%,#0E8F7A 50%,#5B3FE0 75%,#1E2433 100%)}
  .aob__tgs{display:flex;flex-direction:column;gap:6px}
  /* Общее правило input{width:100%} растягивало и галочку: подпись ужималась в половину строки. */
  .aob__tog>span{flex:1;min-width:0}.aob__tog>input{width:auto;flex:0 0 auto;padding:0;margin:0}
  .aob__tog{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:14px;font-weight:750}
  .aob__tog--lock{opacity:.6}
  .aob__tog--lock .eic{width:16px;height:16px;color:var(--muted)}
  .aob__perm .aob__tog{background:var(--card2)}
  .aob__chan--top{margin:0 0 10px}
  .aob__secs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 0}
  .aob__sec{background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:10px 12px}
  .aob__sec--ok{border-color:var(--blue)}
  .aob__sec--mid{border-color:#ffb020}
  .aob__sec--no{border-color:#ff6b6b}
  .aob__sech{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px}
  .aob__sech .aob__ci{width:28px;height:28px;flex-basis:28px;border-radius:10px}
  .aob__sech .aob__ci .eic{width:15px;height:15px}
  .aob__sech b{font-size:13px;font-weight:850;flex:1;min-width:0}
  .aob__sech em{font-style:normal;font-size:18px;font-weight:900;margin-left:auto}
  .aob__sech em.aob__emt{font-size:12.5px;font-weight:850;width:100%;margin:0}
  .aob__sech em i{font-style:normal;font-size:11px;color:var(--muted);font-weight:700}
  .aob__sec p{margin:6px 0 0;font-size:12px;color:var(--muted);line-height:1.4}
  .aob__grp{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin:0 0 8px}
  .aob__grph{display:flex;align-items:center;gap:8px;margin-bottom:6px}
  .aob__grph i{font-style:normal;font-size:12px;font-weight:900;color:var(--limeink)}
  .aob__grph .eic{width:16px;height:16px;color:var(--blue)}
  .aob__grph b{font-size:14px;font-weight:850}
  .aob__grp ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px}
  .aob__grp li{display:flex;align-items:center;gap:8px;font-size:13px}
  .aob__grp li .eic{width:14px;height:14px;color:var(--muted);flex:0 0 auto}
  .aob__grp li.done .eic{color:var(--blue)}
  .aob__grp li.done span{color:var(--muted)}
  .aob__grp li em{font-style:normal;font-size:11px;font-weight:850;color:#ffb020;margin-left:auto;white-space:nowrap}
  .aob__bk{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin:0 0 10px}
  .aob__bkh{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;margin-bottom:8px}
  .aob__bkv{font-size:22px;font-weight:900;margin:2px 0 8px}
  .aob__bka{display:flex;gap:8px;flex-wrap:wrap}
  .aob__bka .btn{width:auto}
  .aob__bka--col{flex-direction:column;align-items:flex-start;gap:4px}
  .aob__na{font-size:12px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:4px 0 8px}
  .aob__bio{margin:0;font-size:14px;line-height:1.5;white-space:pre-line}
  .aob__chat{display:flex;flex-direction:column;gap:6px;margin:10px 0 0}
  .aob__bub{max-width:85%;border-radius:16px;padding:9px 12px;font-size:13.5px;line-height:1.45}
  .aob__bub p{margin:4px 0 0}
  .aob__bub--in{align-self:flex-start;background:var(--card2)}
  .aob__bub--ai{align-self:flex-end;background:var(--card);border:1.5px solid var(--blue)}
  .aob__bub--hand{align-self:flex-end;background:var(--card);border:1.5px solid #ffb020;color:var(--muted)}
  .aob__dl{margin:8px auto 4px;max-width:320px;text-align:left}
  .aob__dl li.n{color:var(--muted)}
  .aob__dl li.n .eic{color:#ffb020}
  .aob__bars{display:flex;flex-direction:column;gap:7px;margin:14px 0 0;text-align:left}
  .aob__bar{display:grid;grid-template-columns:84px 1fr 40px;align-items:center;gap:8px;font-size:12.5px;font-weight:750}
  .aob__bar i{display:block;height:8px;border-radius:999px;background:var(--card2);overflow:hidden}
  .aob__bar em{display:block;height:100%;border-radius:999px;background:var(--blue2)}
  .aob__bar b{text-align:right}
  .ce__rv{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.4}
  .ce__tx--full{-webkit-line-clamp:unset;display:block}
  .ce__when{display:grid;grid-template-columns:1fr 110px;gap:8px;margin:10px 0}
  .ce__gena{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ce__gena .btn{width:100%}
  .ag__rule--lock{opacity:.65}
  .ag__rule--lock>.eic{width:16px;height:16px;color:var(--muted)}
  .ag__knows{display:flex;flex-direction:column;gap:6px}
  .ag__know{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 10px}
  .ag__know .aob__ci{width:30px;height:30px;flex-basis:30px;border-radius:10px}
  .ag__know b{display:block;font-size:13px;font-weight:850}
  .ag__know div>span{display:block;font-size:12px;color:var(--muted);margin-top:1px}
  .aih__mh span{font-size:11.5px;color:var(--muted);font-weight:700;margin-left:6px}
  .aih__kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
  .aih__kpi div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 4px;text-align:center;min-width:0}
  .aih__kpi b{display:block;font-size:15px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .aih__kpi span{display:block;font-size:11px;color:var(--muted);font-weight:700;margin-top:2px;line-height:1.2}
  .aih__bh{display:flex;align-items:center;justify-content:space-between;gap:8px}
  .aih__kpi+.aih__brief{margin-top:8px}
  .aih__bh b{font-size:13.5px;font-weight:850}
  .aih__brief .aob__link{display:inline-flex;align-items:center;gap:4px;padding:8px 0 0;color:var(--limeink)}
  .aih__brief .aob__link .eic{width:14px;height:14px}
  .aih__task .btn{width:auto;flex:0 0 auto;margin-left:auto}
  .aih__vp{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin:12px 0 0;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;color:var(--ink);font-size:13.5px;font-weight:800;cursor:pointer}
  .aih__vp b,.aih__pf b.ok,.aih__pf b.no{display:inline-flex;align-items:center;gap:5px;font-size:12.5px}
  .aih__vp .eic,.aih__pf .eic{width:14px;height:14px}
  .aih__vp b.ok,.aih__pf b.ok{color:var(--blue)}
  .aih__vp b.no,.aih__pf b.no{color:#ffb020}
  .aih__pfs{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
  .aih__pf{display:flex;align-items:center;gap:8px;background:var(--card);padding:10px 12px;font-size:13px}
  .aih__pf>span{color:var(--muted);flex:0 0 112px}
  .aih__pf>b{font-weight:800;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
  
  /* Компактный Droply+ в ленте: тот же стиль, но вдвое меньше по высоте */
  /* Остановить бегущую строку мало: при white-space:nowrap она замирает
     обрезанной, и вторая половина текста становится недостижимой. Поэтому
     заодно разрешаем перенос — то же правило было у второй бегущей строки,
     которую убрали вместе с мёртвой карточкой. */
  @media (prefers-reduced-motion:reduce){}
  /* 💎 Тот же премиум-hero на главной покупателя (Droply+){display:grid;gap:9px;margin:2px 0 14px}
  .lockrow span .eic{width:15px;height:15px;vertical-align:-2px;margin-right:5px;color:var(--blue2)}
  .legallinks a .eic{width:15px;height:15px;vertical-align:-3px;margin-right:8px;color:var(--muted)}
  .phero__shop .eic{width:15px;height:15px;vertical-align:-2px;margin-right:4px}
  .capitem__i .eic{width:15px;height:15px}
  .rankttl .eic{width:15px;height:15px;vertical-align:-2px;margin-right:3px}
  /* градиентные (transparent) ранги: у иконки stroke=currentColor стал бы невидимым — задаём явный цвет */
  .rankttl.t-pro .eic,.rankttl.t-white .eic{stroke:#D8FF34}
  :root[data-theme="light"] .rankttl.t-pro .eic{stroke:#a5790f}
  :root[data-theme="light"] .rankttl.t-white .eic{stroke:#15803d}
  :root[data-theme="light"] .rankttl.t-free .eic{stroke:#5a6b85}
  .tcard__e .eic{width:26px;height:26px}
  .capitem__lv .eic{width:13px;height:13px}
  .capblock__h span .eic{width:15px;height:15px;vertical-align:-2px;margin-right:4px}
  .upsell__rank .eic{width:15px;height:15px;vertical-align:-2px;margin-right:3px}
  .deliv .eic,.pophint .eic,.ticket .eic{width:15px;height:15px;vertical-align:-2px;margin-right:5px;color:var(--blue2)}
  label.f .eic{width:15px;height:15px;vertical-align:-2px;margin-right:6px;color:var(--blue2)}
  .up .eic{width:16px;height:16px;vertical-align:-3px;margin-right:6px}
  .gpsr summary .eic{width:15px;height:15px;vertical-align:-2px;margin-right:6px;color:var(--blue2)}
  .mact .eic{width:13px;height:13px;vertical-align:-2px;margin-right:3px}
  .wznav{display:flex;gap:8px;margin-top:16px}.wznav .btn{margin-top:0}
  input.bad,textarea.bad{border-color:var(--err)!important;background:#F0443810}
  .btn.bad,#wz_chkbot.bad{border-color:var(--err)!important;color:var(--err)!important;animation:shake .4s}
  /* инфо-плашки TL;DR / DAC7 */
  /* Ставка приёма карты и карточка «подключи Droply Pay». Обе про деньги, поэтому
     выглядят одинаково и заметнее обычного текста. */
  /* Шаг подключения выплат занимает экран целиком: это последнее, что отделяет
   витрину от работающей. Отказ ниже кнопки и мельче — но он настоящий{padding-top:8px}
  /* конфетти финиша */
  #wzConf{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}
  #wzConf i{position:absolute;top:-14px;width:9px;height:14px;border-radius:2px;animation:wzconf linear forwards}
  @keyframes wzconf{to{transform:translateY(105vh) rotate(720deg);opacity:.9}}
  .fnl__row{display:flex;align-items:center;gap:8px;margin:8px 0}
  .fnl__lbl{flex:0 0 96px;font-size:12px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:5px}.fnl__lbl .eic{width:15px;height:15px;flex:0 0 auto}
  .fnl__bar{flex:1;position:relative;height:26px;border-radius:8px;background:var(--card2);overflow:hidden;display:flex;align-items:center}
  .fnl__bar i{position:absolute;left:0;top:0;bottom:0;background:#D8FF34;border-radius:8px}
  .fnl__bar b{position:relative;z-index:2;padding:0 10px;font-size:12.5px;font-weight:900;color:#1E2433}
  .fnl__cv{flex:0 0 54px;text-align:right;font-size:11.5px;font-weight:800;color:var(--blue2)}
  .revstars{display:flex;gap:10px;justify-content:center;margin-top:4px}
  /* Пустая и выбранная звезда должны отличаться цветом, а не только тенью:
     раньше все пять были одинаково золотыми, и выбор не читался вовсе. */
  .revstar{background:none;border:0;padding:4px;line-height:0;cursor:pointer;color:var(--line);transition:transform var(--d-1) var(--e-out),color var(--d-2) var(--e-out)}
  .revstar svg{width:40px;height:40px;fill:currentColor;stroke:currentColor;stroke-width:1.1;stroke-linejoin:round}
  .revstar:active{transform:scale(1.18)}
  .revstar.on{color:#F4C000;filter:drop-shadow(0 2px 6px rgba(245,166,35,.4))}
  .revstar:focus-visible{outline:2px solid #B7F02A;outline-offset:2px;border-radius:10px}
  .revword{text-align:center;margin-top:8px;font-size:14px;font-weight:800;color:var(--muted);min-height:20px;transition:color var(--d-2) var(--e-out)}
  .revword.on{color:#F4C000}
  .revcnt{text-align:right;font-size:11px;color:var(--muted);margin-top:4px;font-variant-numeric:tabular-nums}
  .revnote{display:flex;gap:8px;align-items:flex-start;margin-top:10px;font-size:11.5px;line-height:1.45;color:var(--muted)}
  .revnote .eic{flex:0 0 auto;margin-top:1px}
  .teamcard .tmrole{margin-top:10px}
  .tmrolebtn{width:100%;padding:10px;border:1.5px solid var(--line);border-radius:12px;background:var(--card2);font-weight:800;font-size:13px;cursor:pointer;color:var(--ink)}
  .tmrolebtn.on{border-color:var(--cyan);background:#D8FF3418}
  .tmperms{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}
  .tmperm{display:flex;align-items:center;gap:7px;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12px;font-weight:700;cursor:pointer}
  .tmperm.on{border-color:var(--cyan);background:#D8FF3414}
  .tmperm input{accent-color:var(--cyan);width:16px;height:16px}
  .cofee{background:#D8FF3414;border:1px solid #D8FF3444;border-radius:12px;padding:11px 13px;margin:12px 0 8px;font-size:12.5px;line-height:1.5}
  .cofee b{color:var(--ink)}
  .chk--tos span{font-size:12.5px!important;line-height:1.55}
  .smini__off{position:absolute;top:4px;left:4px;background:#F04438;color:#fff;font-size:11px;font-weight:900;padding:2px 5px;border-radius:6px}
  .draftrow{display:flex;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}
  .draftrow:first-of-type{border-top:0}
  .draftrow img{width:48px;height:48px;border-radius:10px;object-fit:cover;background:var(--card2);flex:0 0 auto}
  .vipcard{background:radial-gradient(120% 100% at 0% 0%,#1c2740,#0D1117 70%);border:1px solid #D8FF3455;position:relative;overflow:hidden;border-radius:22px!important}
  .vipcard__h{font-weight:900;font-size:16.5px;color:#fff;display:flex;align-items:center;gap:8px;position:relative}
  .vipcard__h .eic{width:20px;height:20px;color:#D8FF34;fill:rgba(216,255,52,.15)}
  .vipcard__p{font-size:12.5px;line-height:1.55;color:#c7d0dc;margin:8px 0 12px}
  .vipcard__p b{color:#D8FF34}
  .vipcard__btn{background:linear-gradient(135deg,#E4FF62,#A6E635);color:#0D1117;font-weight:900;box-shadow:0 10px 26px rgba(216,255,52,.32);border-radius:14px!important;width:100%;padding:16px;font-size:15.5px;letter-spacing:.2px}
  .vipcard__btn .eic{color:#0D1117}
  .vipcard .btn.sec .eic{width:16px;height:16px;vertical-align:-3px;margin-right:6px;color:#D8FF34}
  /* 💎 премиум-глоу-ап Pass: живая аура + пульс кэшбэка + строка продления */
  .vipcard__btn{position:relative;overflow:hidden}
  .vipcard__btn::after{content:'';position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);animation:vipShine 3.6s ease-in-out infinite}
  .backbuyer{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);color:var(--ink);font-weight:800;font-size:13px;padding:10px 14px;border-radius:12px;margin:12px 0 2px}
  #viewCabinet.slide{animation:slideIn .32s cubic-bezier(.22,1,.36,1)}
  @keyframes slideIn{from{transform:translateX(34px);opacity:0}to{transform:none;opacity:1}}
  /* бейджи + реферал + level-up */
  @keyframes wheelBarSpin{to{transform:rotate(360deg)}}
  .reflink{display:flex;gap:8px;margin-top:8px}.reflink input{flex:1;font-size:12px}
  /* 👥 Экран «Приглашай друзей». Радиусы — по шкале 12/16/20/999, длительности
     из --d-*: за тем и другим следят design-system и motion тесты. */
  .refcode{display:flex;align-items:center;gap:10px;margin-top:10px;padding:12px 14px;border-radius:16px;background:var(--card2);border:1px dashed var(--line)}
  .refcode__v{flex:1;min-width:0;font-size:20px;font-weight:900;letter-spacing:.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .refcode__v.is-empty{font-size:13.5px;font-weight:700;color:var(--muted);letter-spacing:0}
  .refcode__b{flex:0 0 auto;border:0;border-radius:12px;background:var(--card);color:var(--ink);font:inherit;font-size:12.5px;font-weight:800;padding:9px 13px;cursor:pointer;transition:transform var(--d-1) var(--e-out)}
  .refcode__b:active{transform:scale(.96)}
  .refst{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
  .refst__i{padding:12px;border-radius:16px;background:var(--card2)}
  .refst__n{font-size:20px;font-weight:900;line-height:1.1}
  .refst__l{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.3}
  .refms{margin-top:14px}
  .refms__bar{position:relative;height:6px;border-radius:999px;background:var(--card2);overflow:hidden}
  .refms__fill{position:absolute;inset:0 auto 0 0;border-radius:999px;background:#D8FF34;transition:width var(--d-3) var(--e-out)}
  .refms__r{display:flex;align-items:center;gap:10px;padding:9px 0;font-size:12.5px}
  .refms__d{flex:0 0 auto;width:20px;height:20px;border-radius:999px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:var(--muted)}
  .refms__r.on .refms__d{background:#D8FF34;color:#141a05}
  .refms__r.on b{color:var(--ok)}
  .reflog{margin-top:12px;border-radius:16px;background:var(--card2);overflow:hidden}
  .reflog__r{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 13px;font-size:12.5px;border-top:1px solid var(--line)}
  .reflog__r:first-child{border-top:0}
  .reflog__r.is-me{background:var(--card);font-weight:800}
  /* Последний блок упирался в нижнюю границу слоя вплотную. */
  #passVip{padding-bottom:18px}
  .conudge{display:flex;align-items:center;gap:10px;width:100%;margin-top:12px;padding:12px 14px;border-radius:16px;
    background:var(--card2);border:1px solid var(--line);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:transform var(--d-1) var(--e-out)}
  .conudge:active{transform:scale(.99)}
  .conudge>span{flex:1;min-width:0}
  .conudge b{display:block;font-size:13.5px;font-weight:800;line-height:1.3}
  .conudge span span{display:block;font-size:11.5px;color:var(--muted);line-height:1.4;margin-top:2px}
  .dpall{margin-top:14px;border-radius:16px;background:var(--card2);overflow:hidden}
  /* Кнопка покупки уезжала вверх с первого движения пальцем: решение о покупке
     принимают, глядя на цену, а нажать её было нечем, пока не вернёшься назад.
     Прилипает к низу слоя, отступ снизу — под системную панель Telegram. */
  .dpcta{position:sticky;bottom:0;z-index:3;margin:0 -2px;padding:10px 2px calc(10px + var(--tgbot,0px));
    background:linear-gradient(180deg,transparent,var(--bg) 22%);backdrop-filter:blur(var(--gb-s,8px));-webkit-backdrop-filter:blur(var(--gb-s,8px))}
  .dpcta>.btn{margin-top:0}
  .dpall>summary{padding:14px 16px;font-size:13.5px;font-weight:800;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px}
  .dpall>summary::-webkit-details-marker{display:none}
  .dpall>summary::after{content:'⌄';color:var(--muted);font-weight:900;transition:transform var(--d-2) var(--e-out)}
  .dpall[open]>summary::after{transform:rotate(180deg)}
  .reffaq{margin-top:12px;border-radius:16px;background:var(--card2);overflow:hidden}
  .reffaq details{border-top:1px solid var(--line)}
  .reffaq details:first-child{border-top:0}
  .reffaq summary{padding:11px 13px;font-size:12.5px;font-weight:800;cursor:pointer;list-style:none}
  .reffaq summary::-webkit-details-marker{display:none}
  .reffaq summary::after{content:'+';float:right;color:var(--muted);font-weight:900}
  .reffaq details[open] summary::after{content:'–'}
  .reffaq p{margin:0;padding:0 13px 12px;font-size:12px;color:var(--muted);line-height:1.5}
  /* Ползунок калькулятора: системный приезжает синим и мимо всей палитры. */
  .refrng{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:var(--card);outline:none}
  .refrng::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:999px;background:#D8FF34;border:0;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.3)}
  .refrng::-moz-range-thumb{width:22px;height:22px;border-radius:999px;background:#D8FF34;border:0;cursor:pointer}
  .refqr{display:grid;place-items:center;gap:10px;padding:18px 0}
  /* Размер задаёт qrPaint: он подбирает целое число пикселей на модуль и
     проставляет width/height в style. Здесь только фон и отступы вокруг.
     padding убран намеренно — тихая зона теперь внутри самой картинки, и
     дорисовывать её рамкой из CSS нельзя: у padding и модуля разный шаг. */
  .qrc{image-rendering:pixelated;border-radius:12px;background:#fff;margin:8px auto;display:block}
  .levelup{position:fixed;inset:0;z-index:1000;display:none;place-items:center;background:rgba(4,6,12,.88);padding:24px}
  .levelup.on{display:grid}
  .levelup__card{position:relative;width:100%;max-width:320px;text-align:center;background:linear-gradient(160deg,rgba(255,255,255,.16),rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.22);border-radius:28px;padding:26px 22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 30px 70px rgba(0,0,0,.5);overflow:hidden;animation:luPop .6s cubic-bezier(.2,.9,.2,1)}
  @keyframes luPop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}
  .levelup__ray{position:absolute;top:50%;left:50%;width:520px;height:520px;margin:-260px 0 0 -260px;background:conic-gradient(from 0deg,transparent 0 8%,rgba(255,255,255,.14) 9% 11%,transparent 12% 20%,rgba(255,255,255,.14) 21% 23%,transparent 24%);animation:wheelBarSpin 9s linear infinite;pointer-events:none}
  .levelup__badge{position:relative;width:74px;height:74px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;font-size:34px;color:#fff;box-shadow:0 10px 26px rgba(0,0,0,.4)}
  .levelup__t{position:relative;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#D8FF34}
  .levelup__tier{position:relative;font-size:36px;font-weight:900;letter-spacing:1px;margin:2px 0 6px;line-height:1;color:#fff}
  .levelup__sub{position:relative;font-size:13px;color:#E4EEFA}
  .levelup__go{margin-top:18px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:6px}
  /* чекаут блок 3 */
  .adrcard{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1.5px solid var(--line);border-radius:12px;margin-bottom:8px;cursor:pointer}
  .dptpick{margin-top:10px}
  .dptcard{display:flex;flex-direction:column;gap:3px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--card2);margin-bottom:12px}
  .dptcard b{font-size:15px;font-weight:800;color:var(--ink)}
  .dptcard span{font-size:12.5px;color:var(--muted);line-height:1.45}
  .dptstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
  .dptstats div{padding:12px 8px;border:1px solid var(--line);border-radius:12px;text-align:center}
  .dptstats b{display:block;font-size:16px;font-weight:800;color:var(--ink)}
  .dptstats span{display:block;font-size:11px;color:var(--muted);margin-top:2px}
  .dptadm{padding:12px 0;border-top:1px solid var(--line);font-size:12.5px;display:flex;flex-direction:column;gap:4px}
  .dptadm__h{display:flex;justify-content:space-between;gap:8px}
  .dptadm__h .ok{color:var(--ok);font-weight:700}
  .dptadm__a{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
  .dptadm__a .btn{width:auto}
  .dptadm__fee{display:flex;align-items:center;gap:6px;color:var(--muted)}
  .dptadm__fee input{width:80px;margin:0}
  .dptpick__f{flex:0 0 auto;font-size:13px;font-weight:800;align-self:center}
  .adrcard.on{border-color:var(--blue);background:#D8FF3412}
  .adrcard__r{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:0 0 auto;margin-top:1px}
  .adrcard.on .adrcard__r{border-color:var(--blue);background:radial-gradient(circle,var(--blue) 42%,transparent 46%)}
  .adrcard__b{font-weight:800;font-size:13.5px}.adrcard__s{font-size:12px;color:var(--muted)}
  .adrcard__del{margin-left:auto;color:var(--muted);background:none;border:0;font-size:15px}
  .promo{display:flex;gap:8px;margin-top:4px}
  .promo input{flex:1;text-transform:uppercase}
  .promo.bad input{border-color:var(--err);animation:shake .4s}
  @keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
  .promomsg{font-size:12.5px;font-weight:700;margin-top:6px}.promomsg.ok{color:var(--ok)}.promomsg.err{color:var(--err)}
  /* 🏆 Заработанный знак доверия */
  .tpill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;vertical-align:middle}
  .tpill .eic{width:13px;height:13px}
  .tpill b{font-weight:800}
  .tpill--ver{background:rgba(60,180,90,.14);color:#1e8f45;border:1px solid rgba(60,180,90,.32)}
  .tpill--top{background:linear-gradient(135deg,#FFE58A,#F5C243);color:#5a3d00;border:1px solid #E7B02E;box-shadow:0 4px 12px -6px rgba(215,150,20,.6)}
  .tpill--mini{padding:2px 7px;font-size:11px;gap:3px}
  .tpill--mini .eic{width:11px;height:11px}
  :root[data-theme="dark"] .tpill--ver{background:rgba(60,200,110,.16);color:#5fe08f}
  .tprog{display:flex;flex-direction:column;gap:9px;margin-top:10px}
  .tprog__r{display:flex;align-items:center;gap:9px;font-size:12.5px}
  .tprog__ic{flex:0 0 auto;width:22px;height:22px;border-radius:7px;display:grid;place-items:center;font-size:13px;background:var(--card2);color:var(--muted)}
  .tprog__ic .eic{width:14px;height:14px}
  /* Невыполненная цель — точка, выполненная — галочка. Раньше выполненная была
     пустой, и нулевая строка выглядела «сделаннее» достигнутой. */
  .tprog__dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.6}
  .tprog__r.ok .tprog__ic{background:rgba(60,180,90,.16);color:#1e8f45}
  .tprog__tx{flex:1;color:var(--ink);font-weight:700}
  .tprog__n{flex:0 0 auto;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
  .tprog__r.ok .tprog__n{color:#1e8f45}
  .dmethods{display:flex;gap:8px;margin:6px 0}
  .dmethod{flex:1;text-align:center;padding:10px 4px;border:1.5px solid var(--line);border-radius:12px;font-weight:800;font-size:12.5px;background:var(--card)}
  .dmethod.on{border-color:var(--blue);background:#D8FF3414;color:var(--blue2)}
  .dmethod span{display:block;font-size:16px}
  .disclaimer{margin-top:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;transition:var(--d-2) var(--e-out)}
  .disclaimer.bad{border-color:var(--err);animation:shk .4s}
  @keyframes shk{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
  /* Знак галочки: один SVG на все чекбоксы страницы. */
  :root{--tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.6l4.6 4.6L19 7.4'/%3E%3C/svg%3E")}
  .chk{display:flex;gap:11px;align-items:flex-start;cursor:pointer;font-size:12px;line-height:1.45;color:var(--muted)}
  /* ✅ Красивый кастомный чекбокс — крупная видимая галочка (важно на телефоне) */
  .chk input[type=checkbox]{appearance:none;-webkit-appearance:none;width:24px;height:24px;flex:0 0 24px;margin:0;border:2px solid var(--line);border-radius:8px;background:var(--card2);position:relative;cursor:pointer;transition:background var(--d-1) var(--e-out),border-color var(--d-1) var(--e-out),transform var(--d-1) var(--e-out);display:grid;place-items:center}
  .chk input[type=checkbox]:active{transform:scale(.9)}
  .chk input[type=checkbox]:checked{background:linear-gradient(135deg,#D6FF3A,#A6E635);border-color:transparent;box-shadow:0 3px 10px -2px rgba(216,255,52,.5)}
  /* Галочка рисуется маской, а не повёрнутыми границами. Прежний приём —
     border-left+border-bottom с rotate(-45deg) — оптически смещает знак: у
     повёрнутого прямоугольника центр масс не совпадает с центром бокса, и
     галочка садилась криво. Маска центрируется сама и не зависит от поворота. */
  .chk input[type=checkbox]:checked::after{content:"";width:14px;height:14px;background:#10160a;
    -webkit-mask:var(--tick) center/14px 14px no-repeat;mask:var(--tick) center/14px 14px no-repeat}
  .chk b{color:var(--ink)}.chk a{color:var(--blue2);text-decoration:underline}
  .seg{display:flex;gap:8px;margin-top:6px}
  .seg__b{flex:1;padding:11px 6px;border:1.5px solid var(--line);border-radius:12px;font-weight:800;font-size:13px;background:var(--card);color:var(--muted)}
  .seg__b.on{border-color:var(--cyan);background:#D8FF3422;color:var(--ink);font-weight:800}
  .langseg{display:flex;gap:8px;margin-top:6px}
  .langseg button{flex:1;padding:10px 6px;border:1.5px solid var(--line);border-radius:12px;font-weight:800;font-size:13px;background:var(--card);color:var(--muted);cursor:pointer;transition:transform var(--d-1) var(--e-out)}
  .langseg button:active{transform:scale(.95)}
  .langseg button.on{border-color:var(--blue);background:#D8FF3414;color:var(--blue2)}
  /* 🔓 upsell overlay (freemium soft-gate) */
  .upsell{position:fixed;inset:0;z-index:95;display:none;align-items:flex-end;justify-content:center;background:rgba(4,7,14,.6);backdrop-filter:blur(var(--gb-s));-webkit-backdrop-filter:blur(var(--gb-s))}
  .upsell.on{display:flex;animation:ufade .2s}
  @keyframes ufade{from{opacity:0}to{opacity:1}}
  .upsell__card{width:min(96%,440px);margin-bottom:calc(16px + var(--sab));background:linear-gradient(160deg,#1a1405,#141a2c 60%);border:1px solid #D8FF3455;border-radius:20px;padding:22px 20px 18px;box-shadow:0 -10px 50px rgba(0,0,0,.6);animation:uslide .28s cubic-bezier(.2,.8,.3,1)}
  @keyframes uslide{from{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}
  /* Карточка залита тёмным градиентом жёстко, а текст брал цвет из темы: в светлой
     --ink тёмный, и всё содержимое окна оказывалось тёмным по тёмному — читались
     только кнопка и цена. Внутри карточки цвета свои и от темы не зависят. */
  .upsell__card,.upsell__card b,.upsell__card li{color:#F2F5F9}
  .upsell__card .eic{color:#D8FF34}
  .upsell__b .eic{color:#241c02}
  .upsell__ic{font-size:40px;text-align:center;color:#D8FF34}
  .upsell__t{font-size:19px;font-weight:900;text-align:center;margin:6px 0 4px;color:#fff}
  .upsell__s{font-size:13px;color:#AEB8C4;text-align:center;line-height:1.5;margin-bottom:12px}
  .upsell__card ul li{color:#DCE3EB}
  .upsell__card .rankttl,.upsell__rank{color:#D8FF34 !important;-webkit-text-fill-color:#D8FF34}
  .upsell__trial{background:#D8FF3418;border:1px solid #D8FF3466;border-radius:12px;padding:9px 12px;font-size:12.5px;margin:2px 0 12px;line-height:1.5;color:#EAF2D8}
  .upsell__trial b{color:#D8FF34}
  .upsell__note{text-align:center;font-size:11px;color:#8D97A5;margin-top:8px}
  .upsell__later{color:#AEB8C4}
  .upsell__rank{display:block;text-align:center;font-weight:900;font-size:13px;margin-bottom:12px}
  .upsell__b{width:100%;padding:14px;border:0;border-radius:16px;font-weight:900;font-size:15px;background:linear-gradient(120deg,#D8FF34,#B8860B);color:#241c02}
  .upsell__later{width:100%;padding:11px;margin-top:8px;border:0;background:none;color:var(--muted);font-weight:800;font-size:13px}
  .lockmini{font-size:11px;font-weight:900;color:#241c02;background:var(--gold);padding:1px 6px;border-radius:6px;margin-left:6px;vertical-align:middle}
  /* 🍪 cookie-consent */
  .consent{position:fixed;left:50%;transform:translateX(-50%) translateY(220%);opacity:0;pointer-events:none;bottom:calc(96px + var(--sab));z-index:70;width:min(94%,440px);background:#0d1424f5;border:1px solid var(--line);border-radius:28px;padding:12px 12px 12px 16px;box-shadow:0 16px 44px rgba(0,0,0,.55);transition:transform var(--d-3) cubic-bezier(.2,.8,.3,1),opacity var(--d-2) var(--e-out)}
  .consent.on{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto}
  /* Компактно: строка текста и две равные капсулы в ряд. Полоса закрывала
     пол-ленты длинным абзацем; подробности — по ссылке, в Cookie-политике. */
  .consent__t{font-size:12.5px;line-height:1.45;color:var(--muted)}.consent__t b{color:var(--ink)}.consent__t a{color:var(--blue2);text-decoration:underline}
  .consent__b{display:flex;gap:8px;margin-top:9px}.consent__b .btn{margin:0;flex:1;border-radius:999px;padding:10px 12px}
  /* 🏠 Главная кабинета */
  .basicbanner{border-color:#F0443840;background:linear-gradient(120deg,#F0443810,var(--card))}
  .basicbanner__h{font-size:15px}
  .pbar{height:9px;border-radius:999px;background:var(--card2);overflow:hidden;border:1px solid var(--line)}
  .pbar i{display:block;height:100%;background:#D8FF34;border-radius:999px;transition:width var(--d-3) var(--e-out)}
  .homechoice__row{display:flex;gap:8px;margin-top:6px}.homechoice__row .btn{margin-top:0}
  /* DIRECT PAY / Verified */
  .dpcard{border-color:var(--blue-a2)}
  .anq{font-size:12.5px;font-weight:900;color:var(--blue2);margin:14px 0 4px;padding-top:10px;border-top:1px solid var(--line)}
  .dprow{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
  .dprow:first-of-type{border-top:0}
  .dpdot{flex:0 0 auto;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--card2);border:1px solid var(--line);color:var(--muted)}
  .dpdot.on{background:rgba(60,180,90,.16);border-color:transparent;color:#1e8f45}
  .dpdot .eic{width:12px;height:12px}
  .dpcard select,.dpcard input{width:100%}
  .pwrow{display:flex;align-items:center;gap:6px;flex:0 0 auto}
  .pwrow input{width:76px;text-align:right;padding:7px 9px;font-size:13px}
  .pwrow b{font-size:12px;color:var(--muted);font-weight:700}
  .lockhint{font-size:11px;color:var(--muted);line-height:1.5;margin:-2px 2px 10px}
  .lgbadge{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:5px 11px;border-radius:999px;background:#D8FF3426;color:var(--limeink);font-size:11.5px;font-weight:800}
  .lgstages{display:flex;gap:8px;margin-top:10px}
  .lgstages__r{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:12px;background:var(--bg2)}
  .lgstages__r span{font-size:11px;color:var(--muted);text-align:center;line-height:1.2}
  .lgstages__r b{font-size:16px;font-weight:900}
  /* Печать наклеек пачкой */
  .lblpick{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;border-radius:12px;background:var(--bg2);cursor:pointer}
  .lblpick span{font-size:12px;font-weight:700;color:var(--muted)}
  .lblpick input{width:17px;height:17px;accent-color:var(--blue);flex:0 0 auto}
  .lblbar{position:sticky;bottom:calc(var(--sab) + 8px);z-index:5;display:none;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:16px;border:1px solid var(--blue);background:var(--card);box-shadow:0 6px 20px #0000001f}
  .lblbar.on{display:flex}
  .lblbar>span{flex:1;min-width:0;font-size:12.5px;font-weight:800}
  .lblbar .btn{margin:0;width:auto;padding:8px 14px}
  .lblbar__x{flex:0 0 auto;width:32px;height:32px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer}
  /* Активная посылка на главной */
  .apcard{display:flex;align-items:center;gap:11px;width:100%;margin-bottom:12px;padding:12px 13px;border-radius:16px;border:1px solid var(--line);background:var(--card);text-align:left;cursor:pointer;transition:border-color var(--d-2) var(--e-out),background var(--d-2) var(--e-out)}
  .apcard:active{border-color:var(--blue)}
  .apcard--ready{border-color:var(--blue);background:#D8FF340F}
  .apcard__ic{flex:0 0 auto;width:34px;height:34px;border-radius:12px;background:var(--bg2);display:flex;align-items:center;justify-content:center;color:var(--ink)}
  .apcard--ready .apcard__ic{background:#D8FF3433}
  .apcard__t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .apcard__t b{font-size:13.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .apcard__t span{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .apcard__go{flex:0 0 auto;color:var(--muted);display:flex}
  .riskrow{display:flex;align-items:center;gap:9px;margin-top:8px;padding:9px 11px;border-radius:12px;background:#F5A52414;color:var(--warn)}
  .riskrow>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .riskrow b{font-size:12px;font-weight:800}
  .riskrow span{font-size:11px;color:var(--muted)}
  .riskrow--hard{background:#F0443814;color:var(--err)}
  .vacbox{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding:12px 13px;border-radius:16px;border:1px solid var(--line);background:var(--card)}
  .vacbox.on{border-color:var(--warn);background:#F5A52412}
  .vacbox__t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .vacbox__t b{font-size:13.5px;font-weight:800}
  .vacbox__t span{font-size:11.5px;color:var(--muted);line-height:1.4}
  .vacbox.on .vacbox__t b{color:var(--warn)}
  .vacnote{display:flex;align-items:center;gap:10px;margin-top:8px;padding:9px 11px;border-radius:12px;background:#F5A52414;color:var(--warn)}
  .vacnote>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .vacnote b{font-size:12px;font-weight:800}
  .vacnote span{font-size:11px;color:var(--muted)}
  /* Срок отправки */
  .shdl{display:flex;align-items:center;gap:10px;margin-top:8px;padding:9px 11px;border-radius:12px;background:var(--bg2);border:1px solid var(--line)}
  .shdl__ic{flex:0 0 auto;color:var(--muted);display:flex}
  .shdl__t{flex:1;min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:8px}
  .shdl__t b{font-size:11.5px;font-weight:700;color:var(--muted)}
  .shdl__v{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
  .shdl--warn{border-color:var(--warn);background:#F5A52414}
  .shdl--warn .shdl__ic,.shdl--warn .shdl__v{color:var(--warn)}
  .shdl--over{border-color:var(--err);background:#F0443812}
  .shdl--over .shdl__ic,.shdl--over .shdl__v{color:var(--err)}
  /* Отслеживание: этапы, журнал, код от ячейки */
  .trkcard{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
  .trkhead{display:flex;align-items:center;gap:10px;margin-bottom:12px}
  .trkhead__ic{flex:0 0 auto;width:34px;height:34px;border-radius:12px;background:var(--bg2);display:flex;align-items:center;justify-content:center;color:var(--ink)}
  .trkhead>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .trkhead b{font-size:13.5px;font-weight:800}
  .trkhead span{font-size:11.5px;color:var(--muted)}
  .trkcard--warn .trkhead__ic{background:#F0443818;color:var(--err)}
  .trkbar{display:flex;gap:4px;margin-bottom:12px}
  .trkbar__s{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px}
  .trkbar__d{width:100%;height:4px;border-radius:999px;background:var(--line);display:flex;align-items:center;justify-content:center;color:transparent;overflow:hidden}
  .trkbar__s.done .trkbar__d,.trkbar__s.on .trkbar__d{background:var(--blue)}
  .trkbar__s.on .trkbar__d{box-shadow:0 0 0 3px #D8FF3433}
  .trkbar__l{font-size:11px;line-height:1.2;text-align:center;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .trkbar__s.done .trkbar__l,.trkbar__s.on .trkbar__l{color:var(--ink);font-weight:700}
  .trkbar__d svg{display:none}
  /* Раньше плашка была рамкой вокруг крупного кода от ячейки. Кода у площадки
     нет — перевозчик шлёт его получателю сам, — поэтому здесь маршрут до пункта
     выдачи и прямой ответ, откуда придёт код. Колонкой, а не в строку: текст
     длиннее числа. */
  .trkpin{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:11px 13px;border-radius:12px;background:#D8FF3418;border:1px solid var(--blue);margin-bottom:10px}
  .trkpin__go{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:var(--blue);text-decoration:none}
  .trkpin__go .eic{width:15px;height:15px}
  .trkpin__n{font-size:11.5px;line-height:1.45;color:var(--muted);font-weight:700}
  .trkhelp{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:10px;padding:9px;border-radius:12px;border:1px dashed var(--line);background:transparent;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}
  .trkhelp:active{border-color:var(--err);color:var(--err)}
  .trkhold{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:9px 11px;border-radius:12px;background:var(--bg2);color:var(--muted)}
  .trkhold span{flex:1;min-width:0;font-size:11.5px;font-weight:700}
  .trkhold b{font-size:13px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
  .trkhold--warn{background:#F5A52414;color:var(--warn)}
  .trkhold--warn b{color:var(--warn)}
  .trklog{margin-top:10px}
  .trklog summary{font-size:12px;color:var(--muted);cursor:pointer;padding:4px 0}
  .trklog__r{display:flex;flex-wrap:wrap;gap:2px 8px;padding:7px 0;border-top:1px solid var(--line)}
  .trklog__r b{font-size:12.5px;font-weight:700}
  .trklog__r span{font-size:11.5px;color:var(--muted)}
  .trklog__r i{flex-basis:100%;font-size:11px;font-style:normal;color:var(--muted);opacity:.85}
  /* DPD: выбор пакомата на чекауте */
  .dpdpick{display:flex;align-items:center;gap:11px;width:100%;margin-top:10px;padding:12px;border-radius:16px;border:1px solid var(--line);background:var(--card);text-align:left;cursor:pointer;transition:border-color var(--d-2) var(--e-out),background var(--d-2) var(--e-out)}
  .dpdpick.on{border-color:var(--blue);background:#D8FF340F}
  .dpdpick.bad{border-color:var(--err);animation:shake .4s}
  .dpdpick__ic{flex:0 0 auto;width:34px;height:34px;border-radius:12px;background:var(--bg2);display:flex;align-items:center;justify-content:center;color:var(--ink)}
  /* Та же подложка цвета перевозчика, что и в карточках доставки: строка про
     пакомат Omniva должна быть оранжевой, а не серой. */
  .dpdpick__ic--mark{background:color-mix(in srgb, var(--cbrand) 14%, transparent);
                     box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--cbrand) 30%, transparent)}
  .dpdpick__ic .cmark{width:26px;height:26px}
  .dpdpick__t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .dpdpick__t b{font-size:13.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dpdpick__t span{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dpdpick__go{flex:0 0 auto;color:var(--muted);display:flex}
  .dpdhead{display:flex;align-items:center;gap:8px;margin-bottom:10px}
  .dpdhead h3{margin:0;display:flex;align-items:center;gap:8px}
  /* Знак перевозчика в заголовке: экран один на двоих, и человек должен видеть,
     чьи пакоматы перед ним, не читая мелкий текст. */
  .pudohead__m{vertical-align:0}
  .pudohead{color:var(--cink)}
  /* Оплата при получении: та же форма, что у строки выбора пакомата — они стоят
     рядом и должны читаться как один блок, а не как кнопка и переключатель. */
  .dpdback{flex:0 0 auto;width:32px;height:32px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
  .dpdctry{display:flex;gap:6px;margin-bottom:10px}
  .dpdctry__b{flex:1;padding:8px 6px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:12.5px;font-weight:800;cursor:pointer}
  .dpdctry__b.on{border-color:var(--blue);background:#D8FF3418;color:var(--ink)}
  .dpdsearch{display:flex;gap:8px;margin-top:4px}
  .dpdsearch input{flex:1}
  .dpdsearch.bad input{border-color:var(--err)}
  .dpdnear{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:8px;padding:10px;border-radius:12px;border:1px dashed var(--line);background:transparent;color:var(--muted);font-size:12.5px;font-weight:700;cursor:pointer}
  .dpdalt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin:0 0 12px;padding:12px 14px;border-radius:16px;border:1.5px solid var(--blue);background:var(--card);color:var(--ink);cursor:pointer;font:inherit}
  .acx__bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden;margin-top:8px}
  .acx__bar i{display:block;height:100%;background:var(--blue);border-radius:999px}
  .acx__ok{color:var(--ok);display:flex;align-items:center}
  .acx__go{font-size:12.5px;font-weight:700;color:var(--blue2,var(--blue));white-space:nowrap}
  .dpdalt__m{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px}
  .dpdalt__t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .dpdalt__t b{font-size:14px}
  .dpdalt__t span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dpdalt__t i{font-style:normal;font-size:11.5px;color:var(--muted)}
  .dpdnear:active{border-color:var(--blue);color:var(--ink)}
  .dpditem__m{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
  .dpditem__m em,.dpditem__m u{font-style:normal;text-decoration:none;font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px}
  .dpditem__m em{background:#D8FF3426;color:var(--limeink)}
  .dpditem__m u{background:var(--bg2);color:var(--muted)}
  .dpditem__go{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:-4px 0;border-radius:12px;color:var(--muted)}
  .dpditem__go:active{color:var(--blue)}
  .pudoqs{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
  .pudoq__lbl{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:6px 2px 2px}
  .pudoq{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border-radius:12px;border:1px solid var(--line);background:var(--card);text-align:left;cursor:pointer}
  .pudoq:active{border-color:var(--blue)}
  .pudoq__ic{flex:0 0 auto;color:var(--muted);display:flex}
  .pudoq__t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .pudoq__t b{font-size:12.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pudoq__t span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dpditem__fav{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:-4px -4px -4px 0;border-radius:12px;color:var(--line)}
  .dpditem__fav.on{color:var(--warn)}
  .dpdlist{display:flex;flex-direction:column;gap:8px;margin-top:12px}
  .dpditem{display:flex;align-items:flex-start;gap:10px;width:100%;padding:11px 12px;border-radius:16px;border:1px solid var(--line);background:var(--card);text-align:left;cursor:pointer}
  .dpditem:active{border-color:var(--blue)}
  .dpditem__ic{flex:0 0 auto;color:var(--muted);display:flex;margin-top:1px}
  .dpditem__t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .dpditem__t b{font-size:13px;font-weight:800}
  .dpditem__t span{font-size:11.5px;color:var(--muted)}
  .dpditem__t i{font-size:11px;color:var(--muted);font-style:normal;opacity:.8}
  .dpdmsg{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:20px;padding:18px;color:var(--muted);font-size:12.5px;text-align:center;border:1px dashed var(--line);border-radius:16px}
  /* Пакомат в карточке заказа и в кабинете продавца */
  .ordpudo{display:flex;align-items:flex-start;gap:9px;margin-top:10px;padding:10px 11px;border-radius:12px;background:var(--bg2)}
  .ordpudo__ic{flex:0 0 auto;color:var(--muted);display:flex;margin-top:1px}
  .ordpudo b{display:block;font-size:12.5px;font-weight:800}
  .ordpudo span{display:block;font-size:11.5px;color:var(--muted)}
  /* 📍 Подсказка о пакомате. Живёт под карточкой пункта в заказе: человек
     читает адрес и тут же видит, где терминал искать глазами. */
  .ptip{margin-top:10px;padding:12px 13px}
  .ptip__h{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:800;margin-bottom:8px}
  .ptip__tx{font-size:12.5px;line-height:1.5}
  .ptip__tx.muted{color:var(--muted)}
  .ptip__by{font-size:11px;color:var(--muted);margin-top:4px}
  .ptip__note{font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:8px}
  .ptip textarea{margin-top:8px;font-size:13px;min-height:56px}
  .ptip .btn{margin-top:8px}
  .dpdacts{display:flex;gap:8px;margin-top:8px}
  .dpdacts .btn{margin:0}
  /* платёжные шаги (мультипродавец) */
  .payrow{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin-top:10px}
  .payrow.done{border-color:var(--blue-a2);background:#D8FF3410}
  .payrow__n{width:26px;height:26px;flex:0 0 auto;border-radius:50%;background:var(--card2);display:grid;place-items:center;font-weight:900;font-size:13px}
  .payrow.done .payrow__n{background:var(--ok);color:#04121f}
  .payrow__t b{font-size:13.5px}.payrow__t span{font-size:11.5px;color:var(--muted);display:block}
  /* Две кнопки (оплатить и написать продавцу) не влезали в строку рядом с текстом и
     уезжали за край экрана: переносим их на свою строку во всю ширину. */
  .payrow{flex-wrap:wrap}.payrow__t{min-width:0;flex:1 1 160px}.payrow>.btn{flex:1 1 100%;width:100%;margin-top:6px}
  .payrow .btn{margin:0;padding:8px 12px;font-size:12.5px;width:auto;flex:0 0 auto}
  .tybox{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin:14px 0}
  .tyrow{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;line-height:1.45;color:var(--muted);padding:5px 0}
  .tyrow span{font-size:16px;flex:0 0 auto}.tyrow b{color:var(--ink)}
  /* таймлайн статусов */
  .tl{display:flex;align-items:center;margin:8px 0 2px}
  .tl__step{flex:1;display:flex;flex-direction:column;align-items:center;position:relative}
  .tl__dot{width:20px;height:20px;border-radius:50%;background:var(--card2);border:2px solid var(--line);display:grid;place-items:center;font-size:11px;z-index:2}
  .tl__step.done .tl__dot{background:var(--ok);border-color:var(--ok);color:#fff}
  .tl__step.act .tl__dot{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px #D8FF3433}
  .tl__l{font-size:11px;color:var(--muted);margin-top:4px;text-align:center}
  .tl__step.done .tl__l,.tl__step.act .tl__l{color:var(--ink);font-weight:700}
  .tl__bar{position:absolute;top:9px;left:-50%;width:100%;height:2px;background:var(--line);z-index:1}
  .tl__step.done .tl__bar,.tl__step.act .tl__bar{background:var(--ok)}
  .tl__step:first-child .tl__bar{display:none}
  /* tabbar */
  .tabbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + var(--sab));z-index:35;display:flex;gap:3px;padding:7px;border-radius:28px;
    background:linear-gradient(180deg,rgba(30,40,64,.52),rgba(9,13,24,.62));
    backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat)) brightness(1.08);-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat)) brightness(1.08);
    border:1px solid rgba(255,255,255,.14);
    box-shadow:0 24px 60px -14px rgba(0,0,0,.66), 0 2px 12px rgba(0,0,0,.36), inset 0 1.5px 0 rgba(255,255,255,.22), inset 0 -1px 0 rgba(0,0,0,.3), inset 0 0 22px rgba(120,160,255,.06);
    width:min(94%,440px);overflow:hidden}
  /* верхний глянец-стекло */
  .tabbar::before{content:'';position:absolute;left:0;right:0;top:0;height:52%;background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.02) 60%,transparent);pointer-events:none;border-radius:28px 28px 40% 40%}
  /* «жидкий» блик, медленно скользит по стеклу */
  .tabbar::after{content:'';position:absolute;top:-40%;bottom:-40%;width:38%;left:-40%;pointer-events:none;border-radius:50%;
    background:radial-gradient(closest-side,rgba(255,255,255,.16),rgba(255,255,255,.05) 55%,transparent 72%);
    filter:blur(6px);animation:tbSheen 6.5s cubic-bezier(.6,0,.4,1) infinite}
  @keyframes tbSheen{0%,12%{left:-45%;opacity:0}22%{opacity:.9}55%{opacity:.7}78%,100%{left:120%;opacity:0}}
  .tabbar button{flex:1;position:relative;padding:7px 0;border:0;background:transparent;color:var(--muted);font-weight:700;font-size:11px;letter-spacing:.1px;display:flex;flex-direction:column;align-items:center;gap:3px;border-radius:20px;transition:color var(--d-2) var(--e-out),background var(--d-2) cubic-bezier(.34,1.56,.64,1),transform var(--d-1) cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent;touch-action:none}
  .tabbar button:active{transform:scale(.94)}
  .tbic{display:grid;place-items:center;height:24px}
  .tbic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--d-2) cubic-bezier(.34,1.56,.64,1),filter var(--d-2) var(--e-out)}
  .tabbar button.on .tbic svg{transform:scale(1.05) translateY(-1px);filter:drop-shadow(0 2px 4px rgba(60,80,0,.22))}
  /* Активная вкладка залита, неактивная — тонкий контур: так глаз ловит
     текущий раздел за один взгляд, не читая подписи. */
  .tabbar button.on .tbic svg{fill:currentColor;fill-opacity:.2}
  .tbic svg{fill-opacity:0;transition:transform var(--d-2) cubic-bezier(.34,1.56,.64,1),filter var(--d-2) var(--e-out),fill-opacity var(--d-2) var(--e-out)}
  .tabbar button.flash{animation:tabFlash .5s cubic-bezier(.34,1.56,.64,1)}
  .tabbar button.flash .tbic svg{color:#D6FF3A}
  @keyframes tabFlash{0%{transform:scale(1)}30%{transform:scale(1.22);filter:drop-shadow(0 0 10px rgba(216,255,52,.7))}100%{transform:scale(1)}}
  .tabbar button.peekhold{transform:scale(1.14);z-index:2}
  .tabbar button.peekhold .tbic svg{transform:scale(1.2)}
  .tabbar button.on{color:#141a05;background:linear-gradient(135deg,#E4FF62,#B0EA4A 82%);box-shadow:0 7px 16px -8px rgba(216,255,52,.42), inset 0 1px 0 rgba(255,255,255,.5);animation:tbPop .42s cubic-bezier(.34,1.56,.64,1)}
  .tabbar button.on .tbic{height:22px}
  .tabbar button.on{margin:1px 0}
  @keyframes tbPop{0%{transform:scale(.82)}60%{transform:scale(1.06)}100%{transform:scale(1)}}
  /* ⚡ Match — центральная приподнятая кнопка (killer-фича) */
  .tabgap{flex:0 0 62px;pointer-events:none}
  .tabfab{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--sab) + 30px);z-index:36;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;padding:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .tabfab__ic{position:relative;width:58px;height:58px;border-radius:50%;background:linear-gradient(140deg,#E8FF6E,#C6F53A 55%,#A8E62A);display:grid;place-items:center;box-shadow:0 14px 28px -6px rgba(150,215,20,.72),0 6px 16px rgba(0,0,0,.28),inset 0 2px 0 rgba(255,255,255,.6);border:3px solid rgba(255,255,255,.92);transition:transform var(--d-1) cubic-bezier(.34,1.56,.64,1)}
  :root[data-theme="dark"] .tabfab__ic{border-color:rgba(14,20,32,.9)}
  .tabfab__ic::after{content:'';position:absolute;inset:-3px;border-radius:50%;box-shadow:0 0 0 0 rgba(200,245,58,.55);animation:fabPulse 2.6s ease-out infinite}
  .tabfab__ic svg{width:30px;height:30px;color:#141a05;filter:drop-shadow(0 1px 1px rgba(255,255,255,.45))}
  .tabfab__lbl{font-size:11px;font-weight:900;letter-spacing:.3px;color:#4C8700}
  :root[data-theme="dark"] .tabfab__lbl{color:#C6F53A;text-shadow:0 1px 6px rgba(0,0,0,.5)}
  .tabfab:active .tabfab__ic{transform:scale(.9)}
  .tabfab.pop .tabfab__ic{animation:fabPop .42s cubic-bezier(.34,1.56,.64,1)}
  @keyframes fabPop{0%{transform:scale(1)}45%{transform:scale(1.16)}100%{transform:scale(1)}}
  @keyframes fabPulse{0%{box-shadow:0 0 0 0 rgba(200,245,58,.5)}70%{box-shadow:0 0 0 12px rgba(200,245,58,0)}100%{box-shadow:0 0 0 0 rgba(200,245,58,0)}}
  @media (prefers-reduced-motion:reduce){.tabfab__ic::after{animation:none}.tabfab.pop .tabfab__ic{animation:none}}
  /* long-press peek над корзиной */
  .cartpeek{position:fixed;left:50%;transform:translateX(-50%) translateY(14px) scale(.86);transform-origin:bottom center;z-index:60;width:min(92%,360px);
    bottom:calc(12px + var(--sab) + 78px);opacity:0;pointer-events:none;transition:opacity var(--d-2) var(--e-out),transform var(--d-2) cubic-bezier(.34,1.56,.64,1);
    background:linear-gradient(180deg,rgba(32,42,66,.72),rgba(12,17,30,.8));backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));
    border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:14px;
    box-shadow:0 30px 70px -16px rgba(0,0,0,.72), inset 0 1.5px 0 rgba(255,255,255,.2)}
  .cartpeek.on{opacity:1;transform:translateX(-50%) translateY(0) scale(1);pointer-events:auto}
  .cartpeek::after{content:'';position:absolute;left:50%;bottom:-8px;width:18px;height:18px;transform:translateX(-50%) rotate(45deg);background:linear-gradient(135deg,rgba(12,17,30,.8),rgba(12,17,30,.8));border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);border-radius:0 0 5px 0}
  .cartpeek__h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .cartpeek__h b{font-size:14.5px}
  .cartpeek__tot{font-weight:900;color:var(--acc);font-size:14.5px}
  .cartpeek__items{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .cartpeek__items::-webkit-scrollbar{display:none}
  .cartpeek__it{flex:0 0 auto;width:52px;text-align:center}
  .cartpeek__it img{width:52px;height:52px;border-radius:12px;object-fit:cover;background:var(--card2);box-shadow:0 3px 10px rgba(0,0,0,.35)}
  .cartpeek__it span{display:block;font-size:11px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cartpeek__it .qb{position:relative;display:inline-block}
  .cartpeek__it .qb i{position:absolute;top:-5px;right:-6px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:var(--acc);color:#141a05;font-size:11px;font-weight:900;font-style:normal;display:grid;place-items:center;box-shadow:0 2px 5px rgba(0,0,0,.3)}
  .cartpeek__acts{display:flex;gap:8px;margin-top:12px}
  .cartpeek__act{flex:1;padding:11px 8px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:var(--fg);font-weight:800;font-size:12.5px;display:flex;align-items:center;justify-content:center;gap:6px;transition:transform var(--d-1) var(--e-out),background var(--d-1) var(--e-out),box-shadow var(--d-1) var(--e-out)}
  .cartpeek__act.primary{background:linear-gradient(135deg,#E4FF62,#A6E635);color:#141a05;border-color:transparent}
  .cartpeek__act.hot{transform:scale(1.06);box-shadow:0 8px 22px -6px rgba(216,255,52,.5)}
  .cartpeek__act.hot:not(.primary){background:rgba(255,255,255,.14)}
  .cartpeek__empty{text-align:center;padding:8px 4px 4px;color:var(--muted);font-size:12.5px}
  :root[data-theme="light"] .cartpeek{background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(244,247,252,.8));border-color:rgba(255,255,255,.9)}
  :root[data-theme="light"] .cartpeek::after{background:rgba(248,250,253,.82);border-color:rgba(0,0,0,.06)}
  :root[data-theme="light"] .cartpeek__act{background:rgba(20,30,60,.05);border-color:rgba(20,40,80,.1);color:#1E2433}
  @media (prefers-reduced-motion:reduce){.tabbar::after{animation:none;opacity:0}.tabbar button.on{animation:none}}
  .tabbar .ic{font-size:18px}
  .tabbar .tdot{position:absolute;top:2px;right:calc(50% - 20px);min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#ff4d4d;color:#fff;font-size:11px;font-weight:900;display:none;place-items:center;box-shadow:0 0 0 2px var(--bg2),0 2px 6px rgba(255,60,60,.5)}
  .tabbar button.on .tdot{box-shadow:0 0 0 2px #bff03a,0 2px 6px rgba(255,60,60,.5)}
  /* 💧 Liquid Glass (как таб-бар Telegram на iOS 26). Капсула из стекла, активная
     вкладка — не заливка, а стеклянная линза; её можно тянуть пальцем между
     вкладками: линза растёт, по кромке — радужное преломление, иконка под ней
     увеличивается. Отпустил — линза пружиной садится на ближайшую вкладку.
     Цвет бренда остаётся только у активной иконки и подписи. Блик, бегавший по
     бару по кругу, убран: постоянное движение на элементе, который виден всегда,
     только отвлекает. */
  .tabbar{border-radius:999px;padding:6px;overflow:visible;
    background:linear-gradient(180deg,rgba(40,44,54,.46),rgba(18,20,26,.58));
    border:1px solid rgba(255,255,255,.10);
    box-shadow:0 18px 44px -14px rgba(0,0,0,.62),0 2px 10px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.20),inset 0 -1px 0 rgba(255,255,255,.05),inset 0 0 0 .5px rgba(255,255,255,.04)}
  /* Размытие 28px на полосе высотой ~60px Chromium (Telegram на Android) не рисует
     вовсе — под «стеклом» был чёткий контент. 14px размывает честно, а
     насыщенность даёт тот самый «жидкий» цвет. */
  .tabbar,:root[data-theme="light"] .tabbar{-webkit-backdrop-filter:blur(var(--gb-m)) saturate(1.9) brightness(1.06);backdrop-filter:blur(var(--gb-m)) saturate(1.9) brightness(1.06)}
  .tabbar::before{border-radius:999px 999px 46% 46%;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.015) 62%,transparent)}
  .tabbar::after{animation:none;opacity:0;display:none}
  .tabbar button{border-radius:999px;color:rgba(235,240,250,.62)}
  .tabbar button.on{color:#D8FF34;background:transparent;box-shadow:none;animation:none;margin:0}
  .tabbar button.on .tbic svg{filter:none;transform:none}
  .tabbar button.on .tdot{box-shadow:0 0 0 2px rgba(24,27,34,.95),0 2px 6px rgba(255,60,60,.45)}
  .tabbar .tbic svg,.tabbar button>span:not(.tbic):not(.tdot){transition:transform var(--d-3) var(--e-spring),color var(--d-2) var(--e-out)}
  .tabbar__pill{top:6px;bottom:6px;border-radius:999px;transform-origin:center;
    background:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,.07));
    border:1px solid rgba(255,255,255,.12);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.26),inset 0 -1px 1px rgba(255,255,255,.05),0 6px 16px -8px rgba(0,0,0,.55);
    transition:transform var(--d-3) var(--e-spring),width var(--d-3) var(--e-spring),opacity var(--d-2) var(--e-out),box-shadow var(--d-2) var(--e-out),background var(--d-2) var(--e-out)}
  /* Линза под пальцем: больше бара, светлее, с хроматической кромкой. */
  .tabbar.lg-drag .tabbar__pill{z-index:2;transition:width var(--d-2) var(--e-out),box-shadow var(--d-2) var(--e-out),background var(--d-2) var(--e-out);
    transform:translateX(var(--tabx)) scale(1.12,1.24);
    background:radial-gradient(120% 90% at 50% 18%,rgba(255,255,255,.16),rgba(255,255,255,.03) 62%,rgba(255,255,255,.08));
    -webkit-backdrop-filter:saturate(1.8) brightness(1.12) contrast(1.06);backdrop-filter:saturate(1.8) brightness(1.12) contrast(1.06);
    border-color:rgba(255,255,255,.34);
    box-shadow:inset 0 1.5px 0 rgba(255,255,255,.5),inset 2px 0 3px -1px rgba(255,90,190,.55),inset -2px 0 3px -1px rgba(80,210,255,.55),inset 0 -2px 3px -1px rgba(255,215,90,.4),inset 0 0 14px rgba(255,255,255,.10),0 14px 30px -10px rgba(0,0,0,.6)}
  .tabbar.lg-drag button.lg-under .tbic svg{transform:scale(1.22)}
  .tabbar.lg-drag button.lg-under>span:not(.tbic):not(.tdot){transform:scale(1.1)}
  .tabbar.lg-drag button:active{transform:none}
  :root[data-theme="light"] .tabbar{background:linear-gradient(180deg,rgba(255,255,255,.66),rgba(246,248,252,.54));border-color:rgba(255,255,255,.9);
    box-shadow:0 16px 40px -14px rgba(20,40,80,.26),0 1px 6px rgba(20,40,80,.08),inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 .5px rgba(20,40,80,.06)}
  :root[data-theme="light"] .tabbar button{color:#5d6b80}
  :root[data-theme="light"] .tabbar button.on{color:#3E6B00}
  :root[data-theme="light"] .tabbar button.on .tdot{box-shadow:0 0 0 2px #fff,0 2px 6px rgba(255,60,60,.35)}
  :root[data-theme="light"] .tabbar__pill{background:linear-gradient(180deg,rgba(20,30,60,.075),rgba(20,30,60,.045));border-color:rgba(20,40,80,.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 4px 12px -8px rgba(20,40,80,.35)}
  :root[data-theme="light"] .tabbar.lg-drag .tabbar__pill{background:radial-gradient(120% 90% at 50% 18%,rgba(255,255,255,.55),rgba(255,255,255,.12) 62%,rgba(255,255,255,.3));border-color:rgba(255,255,255,.95);
    box-shadow:inset 0 1.5px 0 #fff,inset 2px 0 3px -1px rgba(255,90,190,.45),inset -2px 0 3px -1px rgba(60,180,255,.45),inset 0 -2px 3px -1px rgba(255,190,60,.35),0 12px 28px -10px rgba(20,40,80,.4)}
  /* Match — тот же язык: стеклянное кольцо вместо толстой обводки и без вечной пульсации. */
  .tabfab__ic{border:1px solid rgba(255,255,255,.55);box-shadow:0 12px 26px -8px rgba(150,215,20,.6),0 6px 14px rgba(0,0,0,.26),0 0 0 5px rgba(255,255,255,.07),inset 0 2px 0 rgba(255,255,255,.6)}
  :root[data-theme="dark"] .tabfab__ic{border-color:rgba(255,255,255,.4)}
  :root[data-theme="light"] .tabfab__ic{box-shadow:0 12px 26px -8px rgba(120,180,0,.5),0 6px 14px rgba(20,40,80,.14),0 0 0 5px rgba(255,255,255,.6),inset 0 2px 0 rgba(255,255,255,.6)}
  .tabfab__ic::after{animation:none;display:none}
  @media (prefers-reduced-motion:reduce){
    .tabbar.lg-drag .tabbar__pill{transform:translateX(var(--tabx))}
    .tabbar.lg-drag button.lg-under .tbic svg,.tabbar.lg-drag button.lg-under>span:not(.tbic):not(.tdot){transform:none}
  }
  .empty{text-align:center;color:var(--muted);padding:28px 10px}
  /* Центрируем полями, а не сдвигом: при left:50% без right ширина тоста
     упиралась в половину экрана (206 px), и текст с иконкой переносился. */
  .toast{position:fixed;left:0;right:0;margin:0 auto;width:fit-content;bottom:104px;transform:translateY(16px);background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:12px;font-weight:800;font-size:14px;opacity:0;transition:var(--d-2) var(--e-out);z-index:80;pointer-events:none;max-width:88%;text-align:center}
  /* Иконка идёт в строку с текстом. Flex-контейнером тост делать нельзя:
     текст становится анонимным элементом и переносится на вторую строку. */
  .toast__ic{display:inline-flex;vertical-align:-4px;margin-right:6px}
  /* Полоса «отменить» после удаления из корзины. Отдельная от тоста: у тоста
     нет кнопки и он живёт 2 секунды, а на «нажал случайно» этого мало.
     Радиус из той же шкалы, что и у тоста. */
  .undob{position:fixed;left:0;right:0;margin:0 auto;width:fit-content;max-width:92%;bottom:104px;
    display:flex;align-items:center;gap:14px;transform:translateY(16px);opacity:0;
    background:var(--ink);color:var(--bg);padding:10px 12px 10px 18px;border-radius:12px;
    font-weight:800;font-size:14px;transition:var(--d-2) var(--e-out);z-index:81;pointer-events:none}
  .undob.on{transform:translateY(0);opacity:1;pointer-events:auto}
  .undob__go{background:transparent;border:0;color:var(--limeink);font:inherit;font-weight:900;
    padding:6px 10px;border-radius:12px;cursor:pointer;white-space:nowrap}
  .undob__go:active{background:rgba(216,255,52,.16)}
  :root[data-theme="light"] .undob{background:#0e1a2c;color:#fff}
  /* Предупреждение «эту вещь ты уже обещал». Не тревога красным — продавец
     ничего не нарушил, — но и не проходная строка: вещь одна, а обещаний
     несколько, и увидеть это он должен сразу. */
  .dupwarn{margin:0 0 12px;padding:14px;border-radius:16px;
    background:linear-gradient(160deg,rgba(255,176,32,.16),rgba(255,176,32,.05) 60%,transparent),var(--card);
    border:1px solid rgba(255,176,32,.5)}
  .dupwarn__t{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;line-height:1.3}
  .dupwarn__t .eic{width:19px;height:19px;flex:0 0 auto;color:#FFB020}
  .dupwarn__s{font-size:12.5px;line-height:1.5;color:var(--muted);margin:7px 0 11px}
  .dupwarn .btn{width:100%;margin:0}
  .toast__ic .eic{width:18px;height:18px}
  .toast.on{opacity:1;transform:translateY(0)}
  .fly{position:fixed;z-index:85;border-radius:12px;object-fit:cover;pointer-events:none;transition:all .62s cubic-bezier(.35,.65,.35,1)}
  @media (prefers-reduced-motion:reduce){.btn::after{animation:none!important;transition:none!important}}
  /* ===== DROPLY PARTNERS (премиум-режим верифицированного продавца) ===== */
  /* Минимализм: базовый тёмный UI сохраняем, добавляем лишь тонкий золотой акцент */
  body.partner .logo b{color:var(--gold);-webkit-text-fill-color:var(--gold)}
  /* hero партнёра — чистая тёмная карточка с тонкой золотой полосой сверху */
  .phero{position:relative;overflow:hidden;margin:14px 0 0;border-radius:20px;padding:18px 16px;border:1px solid var(--line);background:var(--card)}
  .phero::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),#B8860B)}
  .phero__sheen{display:none}
  .phero__tag{display:inline-block;font-size:11px;font-weight:900;letter-spacing:2px;color:var(--gold);border:1px solid #D8FF3440;border-radius:999px;padding:3px 11px}
  .phero__brand{font-size:22px;font-weight:900;line-height:1;margin:10px 0 3px;letter-spacing:.3px;color:var(--ink)}
  .phero__brand b{color:var(--gold)}
  /* 💎 Droply+-бейдж рядом с именем — перк подписки */
  .yearsave{display:flex;align-items:flex-start;gap:8px;margin-top:8px;padding:9px 11px;border-radius:12px;background:linear-gradient(135deg,#D8FF3418,#A6E63510);border:1px solid #D8FF3444;font-size:12px;line-height:1.45}
  .yearsave .eic{width:16px;height:16px;color:var(--blue2);flex:0 0 auto;margin-top:1px}.yearsave b{color:var(--ink)}
  /* 🎨 цветные иконки-акценты + иконки в заголовках секций */
  h3 .eic,h4 .eic{width:17px;height:17px;vertical-align:-3px;margin-right:7px}
  .eic.ic-gold{color:#FFC53D}.eic.ic-cyan{color:var(--cyan)}.eic.ic-blue{color:var(--blue2)}.eic.ic-flame{color:#FF7A3D}.eic.ic-green{color:var(--ok)}
  .eic.ic-gold{fill:rgba(255,197,61,.14)}.eic.ic-flame{fill:rgba(255,122,61,.12)}
  .phero__shop{font-size:13px;color:var(--muted);font-weight:700;position:relative}
  .phero__row{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;position:relative}
  .pstat{flex:1;min-width:70px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:9px 8px;text-align:center}
  .pstat b{display:block;font-size:17px;font-weight:900;color:var(--ink)}.pstat span{font-size:11px;color:var(--muted)}
  .pbal{margin-top:12px;display:flex;align-items:center;justify-content:space-between;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:10px 13px;position:relative}
  .pbal b{font-size:16px;color:var(--ink)}
  .pbadge{font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px}
  .pbadge.ok{background:#D8FF3422;color:var(--blue);border:1px solid #D8FF3455}
  .pbadge.off{background:#F0443822;color:#ff9a90;border:1px solid #F0443855}
  .prow2{display:flex;gap:8px;margin-top:12px}
  .prow2 .btn{margin-top:0}
  .pill{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:12.5px;padding:8px 13px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
  .pilltop{width:100%;justify-content:center;margin:14px 0 0;border-color:var(--blue-a2);color:#ffdf8a;background:#D8FF340f}
  .plabel{font-size:12px;font-weight:900;color:#c9b981;letter-spacing:.5px;margin:20px 2px 2px;text-transform:uppercase}
  /* карточки управления товаром */
  .mcard{display:flex;gap:11px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:11px;margin-top:10px}
  body.partner .mcard{border-color:var(--blue-a1)}
  .mcard img{width:60px;height:60px;border-radius:12px;object-fit:cover;flex:0 0 auto}
  .mcard__n{font-weight:800;font-size:13.5px;line-height:1.2}
  .mcard__m{font-size:11.5px;color:var(--muted);margin-top:2px}
  .mcard__a{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
  .mact{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;padding:6px 10px;border-radius:9px;border:1px solid var(--line);background:var(--card2);color:var(--ink)}
  .mact:active{transform:scale(.94)}
  .mact.bump{border-color:var(--blue-a2);color:#ffdf8a}
  .mact.bump.on{background:#D8FF34;color:#241c02;border-color:var(--blue)}
  .mact.views{color:var(--muted);pointer-events:none}
  /* ============ ✨ LIQUID GLASS + WOW-АНИМАЦИИ ============
     Стекло — только на оверлеях (перф), блики/свечение — на CTA и бейджах,
     микро-движения — на карточках. Всё под guard prefers-reduced-motion. */
  @keyframes gShine{0%{transform:translateX(-160%) skewX(-18deg)}60%,100%{transform:translateX(320%) skewX(-18deg)}}
  @keyframes gGlowP{0%,100%{box-shadow:0 0 0 0 rgba(216,255,52,.0)}50%{box-shadow:0 0 18px 2px rgba(216,255,52,.35)}}
  @keyframes gRise{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
  @keyframes gPop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
  @keyframes gSheen{0%{background-position:200% 0}100%{background-position:-120% 0}}
  /* 🫧 Стекло на оверлеях */
  .sheet,.cartdrawer{backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat))}
  :root[data-theme="dark"] .sheet,:root[data-theme="dark"] .cartdrawer{background:rgba(23,27,38,.82)!important;border:1px solid rgba(255,255,255,.06)}
  :root[data-theme="light"] .sheet,:root[data-theme="light"] .cartdrawer{background:rgba(255,255,255,.86)!important}
  .consent{backdrop-filter:blur(var(--gb-m)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-m)) saturate(var(--gsat))}
  /* ✨ Глянцевый блик на главных кнопках */
  .btn:not(.sec){position:relative;overflow:hidden}
  .btn:not(.sec)::after{content:"";position:absolute;top:0;left:0;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-160%) skewX(-18deg);animation:gShine 4.5s ease-in-out infinite;pointer-events:none}
  .btn{transition:transform var(--d-1) var(--e-out),box-shadow var(--d-1) var(--e-out),filter var(--d-1) var(--e-out)}
  .btn:active{transform:scale(.97)}
  @media (hover:hover) and (pointer:fine){.btn:not(.sec):hover{filter:brightness(1.04)}}
  /* 🛍 Карточки товара: появление + лифт + скольжение блеска */
  .p{animation:gRise .42s cubic-bezier(.2,.8,.2,1) both;transition:transform var(--d-1) var(--e-out),box-shadow var(--d-2) var(--e-out)}
  @media (hover:hover) and (pointer:fine){.p:hover{transform:translateY(-4px);box-shadow:0 16px 34px -14px rgba(0,0,0,.5)}}
  .p:active{transform:scale(.985)}
  .p__imgwrap{position:relative;overflow:hidden}
  .p__imgwrap::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.22) 48%,transparent 56%);transform:translateX(-120%);transition:transform .7s var(--e-out)}
  @media (hover:hover) and (pointer:fine){.p:hover .p__imgwrap::after{transform:translateX(120%)}}
  .p__price{background:linear-gradient(90deg,var(--ink),var(--blue),var(--ink));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gSheen 6s linear infinite}
  /* 🔘 Чипы категорий: активный светится */
  .chip.on{animation:gGlowP 2.6s ease-in-out infinite}
  .chip::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(255,255,255,.18),transparent);transform:translateX(-160%) skewX(-18deg)}
  .chip.on::after{animation:gShine 3.5s ease-in-out infinite}
  /* 🏷 Бейджи — мягкая пульсация «горячего» */
  .p__b,.p__stock{animation:gPop .4s cubic-bezier(.2,.9,.2,1.2) both}
  .p__ad{opacity:.9}
  /* 💚 Иконки достижений/лайв-точка */
  /* 🎛 Свечение полей ввода в фокусе */
  input:focus,textarea:focus,select:focus{box-shadow:0 0 0 3px rgba(216,255,52,.16);transition:box-shadow var(--d-1) var(--e-out)}
  /* 🌟 Приятная тень у CTA грида */
  .p__cta{transition:transform var(--d-1) var(--e-out),box-shadow var(--d-2) var(--e-out)}.p__cta:active{transform:scale(.96)}
  /* 🎯 Плавное появление секций-«sec» в кабинете/профиле */
  .sec{animation:gRise .3s ease both}
  /* ============ ✨ Полировка витрины (наша лаймовая гамма) ============ */
  .p{border-radius:20px}
  /* 1) фото крупнее и не обрезается: contain на мягком тёмном градиенте */
  .p__imgwrap{border-radius:16px 16px 0 0;background:linear-gradient(160deg,#232a3a,#1a2030)}
  :root[data-theme="light"] .p__imgwrap{background:linear-gradient(160deg,#eef2f8,#e6ecf5)}
  .p__img{object-fit:contain;padding:10px}
  /* 2) плавающий бренд-бейдж: тёмное стекло + лайм-обводка */
  .p__shop{background:rgba(13,20,36,.86);border:1px solid rgba(216,255,52,.35);color:#eaffb0;box-shadow:0 4px 12px rgba(0,0,0,.3);font-weight:800}
  .p__shop--ver{border-color:rgba(216,255,52,.6);box-shadow:0 4px 14px rgba(216,255,52,.2)}
  .p__shop b{color:#D8FF34}
  @media (hover:hover) and (pointer:fine){.p:hover .p__shop{transform:translateY(-1px)}}
  /* 3) типографика: больше воздуха + крупнее цена */
  .p__price{font-size:17px}
  .pd__price{font-size:26px;letter-spacing:.2px}
  .pd__name{letter-spacing:.2px}
  /* 4) нижний таб-бар — премиум liquid glass задаётся выше (.tabbar), тут ничего не переопределяем */
  /* 5) карусель «также доступно» (другие расцветки/модели того же бренда) */
  .pdvar{display:flex;gap:8px;overflow-x:auto;margin:10px 0 2px;padding-bottom:3px}
  .pdvar img{width:56px;height:56px;border-radius:12px;object-fit:contain;background:var(--card2);border:1px solid var(--line);flex:0 0 auto;cursor:pointer;padding:4px;transition:border-color var(--d-1) var(--e-out),transform var(--d-1) var(--e-out),box-shadow var(--d-1) var(--e-out)}
  @media (hover:hover) and (pointer:fine){.pdvar img:hover{border-color:var(--blue)}}
  .pdvar img:active{transform:scale(.93)}
  /* ============ 🫧 Больше премиум-стекла (лёгкий блик-кромка, без тяжёлого blur) ============ */
  :root[data-theme="dark"] .sec{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));border:1px solid rgba(255,255,255,.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
  :root[data-theme="light"] .sec{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 8px 20px -16px rgba(20,40,80,.25)}
  .sheet,.cartdrawer{backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat))}
  .welc,.adban{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 14px 34px -18px rgba(0,0,0,.5)}
  .btn:not(.sec):not(.ghost){box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 20px -8px rgba(216,255,52,.4)}
  .p__imgwrap{box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
  /* ============ 🧊 ОСТЕКЛЕНИЕ ВСЕГО (liquid glass) ============ */
  /* HIG (liquid-glass.md): «Don't use Liquid Glass in the content layer».
     Размытие — только у плавающего слоя (панель вкладок, шапка, шторки,
     тосты). У карточек контента остаётся вид стекла — градиент, светлая
     кромка, тень, — но без размытия под ними: под карточкой ровный фон, и
     размывать там нечего, а видеокарта платила за каждую. */
  .sec,.mcard,.tcard,.capblock,.adrcard,.citem,.ordrow,.payrow,.vipcard,.subups{
    background:linear-gradient(180deg,rgba(40,49,70,.52),rgba(26,32,48,.60))!important;
    border:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 12px 30px -18px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.10)!important}
  .sheet{background:linear-gradient(180deg,rgba(26,32,48,.80),rgba(15,20,32,.90))!important;backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));border:1px solid rgba(255,255,255,.14)!important}
  .cartdrawer__in{background:linear-gradient(180deg,rgba(26,32,48,.82),rgba(15,20,32,.92))!important;backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat))}
  .chip{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.12)!important}
  .btn.sec{background:transparent!important;border:1px solid rgba(255,255,255,.16)!important}
  /* Стеклянный вид полей ввода. Чекбоксы и радио исключены намеренно: это
     правило со !important перебивало у них и заливку, и рамку, из-за чего
     отмеченный чекбокс оставался тёмным — галочка висела на пустом квадрате и
     выглядела криво. Их собственный вид задан в .chk выше. */
  input:not([type=checkbox]):not([type=radio]),select,textarea{background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.12)!important;backdrop-filter:blur(var(--gb-s));-webkit-backdrop-filter:blur(var(--gb-s))}
  /* Карточки товара — стеклянный вид БЕЗ тяжёлого блюра (перф: их много в сетке) */
  .p{background:linear-gradient(180deg,rgba(40,49,70,.55),rgba(26,32,48,.62))!important;border:1px solid rgba(255,255,255,.10)!important;box-shadow:0 12px 26px -16px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.10)!important}
  /* Светлая тема — свой стеклянный вариант */
  :root[data-theme="light"] .sec,:root[data-theme="light"] .mcard,:root[data-theme="light"] .tcard,:root[data-theme="light"] .capblock,:root[data-theme="light"] .adrcard,:root[data-theme="light"] .citem,:root[data-theme="light"] .ordrow,:root[data-theme="light"] .payrow,:root[data-theme="light"] .subups,:root[data-theme="light"] .p{
    background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(255,255,255,.60))!important;
    border:1px solid rgba(255,255,255,.9)!important;
    box-shadow:0 12px 28px -18px rgba(20,40,80,.28), inset 0 1px 0 rgba(255,255,255,.95)!important}
  /* Droply+ — тёмная премиум-карта (как чёрная банковская): держим тёмный фон и в светлой теме, иначе белый текст на белом невидим */
  :root[data-theme="light"] .vipcard{background:radial-gradient(120% 100% at 0% 0%,#1c2740,#0D1117 70%)!important;border:1px solid #D8FF3466!important;box-shadow:0 16px 36px -16px rgba(13,17,23,.55)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  :root[data-theme="light"] .sheet,:root[data-theme="light"] .cartdrawer__in{background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(244,247,252,.94))!important}
  :root[data-theme="light"] .chip,:root[data-theme="light"] input,:root[data-theme="light"] select,:root[data-theme="light"] textarea{background:rgba(255,255,255,.66)!important;border:1px solid rgba(20,40,80,.10)!important}
  /* Вторичная кнопка остаётся контуром и на светлой теме: заливка возвращала ей вес главной. */
  :root[data-theme="light"] .btn.sec{background:transparent!important;border:1px solid rgba(20,40,80,.14)!important}
  /* ===== Поле внутри готовой оправы не рисует свою рамку =====
     У поиска их было две: оправа .srch2 со своей рамкой и радиусом 16px, а внутри
     сам input с ещё одной рамкой, фоном и радиусом 14px — «рамка в рамке». Правило
     идёт последним и с той же силой, что стеклянные выше, иначе его не перебить. */
  :root .srch input,:root .srch2 input,:root .promo input,:root[data-theme="light"] .srch input,:root[data-theme="light"] .srch2 input,:root[data-theme="light"] .promo input{
    background:transparent!important;border:0!important;box-shadow:none!important;
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  :root .srch input,:root .srch2 input{border-radius:0!important;padding:0!important}
  /* ---- Остекление второй волны ----
     Крупные поверхности уже стеклянные, а эти оставались плоской заливкой и
     выбивались рядом с ними: секции чекаута, кошелёк, подсказки, ряды чатов,
     карточки мастера объявления. Рецепт тот же самый, что выше, — чтобы всё
     стекло в приложении было одним стеклом, а не пятью похожими.
     Матовость даёт связка «полупрозрачный фон + blur + saturate»: без saturate
     под стеклом гаснут цвета, без прозрачности blur вообще нечего размывать. */
  .cosec,.cowallet,.stedit,.stprev,.pdsec,.tybox,.pfmenu{
    background:linear-gradient(180deg,rgba(40,49,70,.52),rgba(26,32,48,.60))!important;
    border:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 12px 30px -18px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.10)!important}
  /* Лаймовые подсказки остаются лаймовыми — стекло добавляется поверх оттенка,
     а не вместо него: иначе они перестают отличаться от обычной секции. */
  /* Непрочитанная строка — лаймовое пятно поверх стекла, тем же приёмом, что
     и подсказки выше. Без !important её стирало стеклянное правило для .chrow,
     и подсветки не было видно ни на тёмной теме, ни на светлой. */

  .hint,.dhint{
    background:linear-gradient(180deg,rgba(216,255,52,.10),rgba(216,255,52,.05))!important;
    border:1px solid rgba(216,255,52,.26)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important}
  /* Плитки размеров и состояния — мелкое стекло, как у чипов. Отмеченную не
     трогаем: она залита лаймом, и стекло поверх сделало бы её мутной. */
  /* Плотный фон вместо размытия: плиток на шаге бывает по десятку, а
     backdrop-filter на повторяющихся элементах роняет кадры на Android — то же
     правило, по которому его нет на пузырях чата и плашках товара. */
  .sttile:not(.on),.stedit__r{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.14)!important}
  .stedit__r{border-bottom:1px solid rgba(255,255,255,.08)!important}
  .stedit{overflow:hidden}
  :root[data-theme="light"] .cosec,:root[data-theme="light"] .cowallet,:root[data-theme="light"] .stedit,:root[data-theme="light"] .stprev,:root[data-theme="light"] .pdsec,:root[data-theme="light"] .tybox,:root[data-theme="light"] .pfmenu{
    background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(255,255,255,.60))!important;
    border:1px solid rgba(255,255,255,.9)!important;
    box-shadow:0 12px 28px -18px rgba(20,40,80,.28), inset 0 1px 0 rgba(255,255,255,.95)!important}
  /* Непрочитанная строка — лаймовое пятно: его видно боковым зрением раньше,
     чем цифру у правого края. Тот же вес, что у стеклянных карточек выше,
     иначе их !important стирает подсветку. */

  :root[data-theme="light"] .hint,:root[data-theme="light"] .dhint{
    background:linear-gradient(180deg,rgba(216,255,52,.22),rgba(216,255,52,.10))!important;
    border:1px solid rgba(140,180,20,.34)!important}
  :root[data-theme="light"] .sttile:not(.on),:root[data-theme="light"] .stedit__r{
    background:rgba(255,255,255,.72)!important;border-color:rgba(20,40,80,.12)!important}
  :root[data-theme="light"] .stedit__r{border-bottom:1px solid rgba(20,40,80,.10)!important}
  /* Без blur полупрозрачная панель — это просто выцветшая панель: текст на ней
     теряет контраст. Там, где системе велено убрать прозрачность или движение,
     возвращаем непрозрачный фон, а не оставляем стекло без матовости. */
  @media (prefers-reduced-transparency:reduce){
    .sec,.p,.chip,.mcard,.tcard,.cosec,.cowallet,.stedit,.stprev,.pdsec,.tybox,.pfmenu,.sttile:not(.on),.stedit__r,.sheet,.cartdrawer__in{
      background:var(--card)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
    .hint,.dhint{background:var(--card2)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
    /* Панели поверх контента — тоже сплошные: просвет за ними и есть то, что
       мешает читать. Сплошной фон закрывает размытие сам — отдельное правило
       размытия не нужно (их число держим под контролем). */
    .tabbar,.top,.toast,.cartdrawer{background:var(--bg2)!important}
  }
  /* Повышенный контраст: стекло — почти сплошное, у поверхностей чёткая граница. */
  @media (prefers-contrast:more){
    .tabbar,.sheet,.cartdrawer__in,.toast{background:var(--bg2)!important}
    .p,.sec,.sheet,.tabbar,.chip,.btn.sec{border-color:var(--ink)!important}
  }
  @media (prefers-reduced-motion:reduce){ .sec,.p,.chip,.mcard,.tcard{backdrop-filter:none!important;-webkit-backdrop-filter:none!important} }
  @media (prefers-reduced-motion:reduce){
    .cosec,.cowallet,.stedit,.stprev,.pdsec,.tybox,.pfmenu,.hint,.dhint,.sttile,.stedit__r{
      backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  }
  /* ============ 🛒 Каталог-полировка + конверсия (лаймовая гамма) ============ */
  .p{box-shadow:0 8px 22px -14px rgba(0,0,0,.5)}
  .p__cta{box-shadow:0 6px 18px -7px rgba(216,255,52,.55)}
  .p__off{background:#D8FF34;color:#1E2433;font-weight:900;border-radius:6px;padding:1px 5px;font-size:11px}
  @keyframes cartBump{0%,100%{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.9)}}
  .icn.bump{animation:cartBump .45s cubic-bezier(.3,1.4,.5,1)}
  /* скелетон-шиммер в нашей гамме */
  .skel__img,.skel__l{position:relative;overflow:hidden}
  .skel__img::after,.skel__l::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(216,255,52,.10),transparent);transform:translateX(-100%);animation:gSheen 1.4s linear infinite}
  /* ============ 📱 FULLSCREEN-режим Telegram (шапка не лезет под контролы …/закрыть) ============ */
  .tg-fs{--tgtop:max(calc(var(--sat) - 12px),calc(50px + env(safe-area-inset-top,0px)))}
  /* Сама полоса Telegram уже несёт ~16px воздуха под кнопками «Закрыть / •••»:
     contentSafeAreaInset больше высоты кнопок. Свои отступы сверху поверх неё
     давали пустую полосу — в полноэкранном режиме их срезаем. */
  .tg-fs .top__in{padding-top:4px}
  .tg-fs .pf2title{margin-top:4px}   /* все шапки ниже плавающих контролов Telegram; корзина остаётся у правого края */
  /* ♿ Уважаем reduced-motion — гасим всё лишнее */
  @media (prefers-reduced-motion:reduce){
    .btn:not(.sec)::after,.p,.p__price,.chip.on,.chip.on::after,.p__b,.p__stock,.sec{animation:none!important}
    .p__price{-webkit-text-fill-color:currentColor;background:none}
    .p:hover{transform:none}
  }
  /* Стоит последней в таблице стилей: любое правило ниже перебило бы её,
     а именно так и вышло с первой попытки. */
  @media (prefers-reduced-motion:reduce){ .sz,.chip,.dpplan{transition:none} }
  /* ============ 💬 ЧАТЫ ПО МАКЕТУ ============
     Список, переписка, поиск, поддержка и настройки чата. Свои токены: фон
     переписки, пузыри и чипы живут по теме приложения. В светлой — как в
     макете: серо-зелёный фон, белые входящие, бледно-лаймовые свои; в тёмной —
     то же на тёмном, свои пузыри лаймовые. */
  :root{--dcBg:#11151c;--dcPat:rgba(255,255,255,.045);--dcIn:#232a3a;--dcInInk:#F2F4F7;--dcOut:#D8FF34;--dcOutInk:#141a05;--dcOutMuted:rgba(20,26,5,.62);
    --dcTick:#3F7000;--dcChip:#262d3c;--dcChipInk:#E6EAF0;--dcChipOn:#D8FF34;--dcChipOnInk:#141a05;--dcSurf:#1a202c;--dcPill:rgba(255,255,255,.09);
    --dcSep:rgba(255,255,255,.07);--dcSet:#11151c;--dcIco:#2b3346;--dcShadow:0 1px 2px rgba(0,0,0,.35);--dcVer:#8CD400;
    --dcPatImg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.045' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 30l3 6 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1z'/%3E%3Cpath d='M120 22c-3-4-10-2-10 4 0 6 10 11 10 11s10-5 10-11c0-6-7-8-10-4z'/%3E%3Cpath d='M70 70h22l-2 18H72z M76 70v-4a5 5 0 0 1 10 0v4'/%3E%3Cpath d='M150 80l-12 12-8-8 12-12h8z'/%3E%3Ccircle cx='146' cy='80' r='1.5'/%3E%3Cpath d='M30 120l8-14h-6l4-10'/%3E%3Cpath d='M100 130h26a6 6 0 0 1 6 6v10a6 6 0 0 1-6 6h-14l-8 6v-6h-4a6 6 0 0 1-6-6v-10a6 6 0 0 1 6-6z'/%3E%3Ccircle cx='160' cy='150' r='7'/%3E%3Cpath d='M50 160h18M59 151v18'/%3E%3C/g%3E%3C/svg%3E")}
  :root[data-theme="light"]{--dcBg:#EBEFE9;--dcPat:rgba(40,60,20,.06);--dcIn:#FFFFFF;--dcInInk:#1E2433;--dcOut:#E2F6A3;--dcOutInk:#1B2410;--dcOutMuted:rgba(27,36,16,.55);
    --dcTick:#5FA300;--dcChip:#EFF2F5;--dcChipInk:#1E2433;--dcChipOn:#111418;--dcChipOnInk:#D8FF34;--dcSurf:#FFFFFF;--dcPill:#DFE4DC;
    --dcSep:#EEF1F4;--dcSet:#F3F5F8;--dcIco:#F1F4F7;--dcShadow:0 1px 2px rgba(20,30,40,.07);--dcVer:#5FA300;
    --dcPatImg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='none' stroke='%232f4518' stroke-opacity='.055' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 30l3 6 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1z'/%3E%3Cpath d='M120 22c-3-4-10-2-10 4 0 6 10 11 10 11s10-5 10-11c0-6-7-8-10-4z'/%3E%3Cpath d='M70 70h22l-2 18H72z M76 70v-4a5 5 0 0 1 10 0v4'/%3E%3Cpath d='M150 80l-12 12-8-8 12-12h8z'/%3E%3Ccircle cx='146' cy='80' r='1.5'/%3E%3Cpath d='M30 120l8-14h-6l4-10'/%3E%3Cpath d='M100 130h26a6 6 0 0 1 6 6v10a6 6 0 0 1-6 6h-14l-8 6v-6h-4a6 6 0 0 1-6-6v-10a6 6 0 0 1 6-6z'/%3E%3Ccircle cx='160' cy='150' r='7'/%3E%3Cpath d='M50 160h18M59 151v18'/%3E%3C/g%3E%3C/svg%3E")}
  .dch{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:4px 0 14px}
  .dch__t h2{font-size:30px;line-height:1.1;font-weight:900;letter-spacing:-.6px;color:var(--ink);margin:0}
  .dch__t span{display:block;margin-top:6px;font-size:14px;color:var(--muted);font-weight:500}
  .dch__b{display:flex;gap:10px;flex:0 0 auto}
  .dch__ic{width:44px;height:44px;border-radius:999px;border:0;background:var(--dcSurf);color:var(--ink);display:grid;place-items:center;box-shadow:0 4px 14px -6px rgba(20,30,50,.25);cursor:pointer}
  .dch__ic .eic{width:21px;height:21px;stroke-width:2}
  .dcq{display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;border-radius:12px;background:var(--dcChip);margin:0 0 12px}
  .dcq .eic{width:18px;height:18px;color:var(--muted)}
  .dcq button{flex:0 0 24px;width:24px;height:24px;border:0;border-radius:999px;background:var(--dcPill);color:var(--ink);font-size:15px;line-height:1;cursor:pointer}
  .dcq button[hidden]{display:none}
  /* Общие правила полей ввода (рамка и полупрозрачная заливка с !important)
     здесь не нужны: поле лежит внутри своей «таблетки». Селектор сильнее общего. */
  :root .dcv .dcq input,:root .dcq input,:root .dcv .dcs__q input,:root .dcv .dcbar__in textarea{flex:1;min-width:0;width:auto;margin:0;border:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;outline:0;border-radius:0;font-size:15px;color:var(--ink)}
  .dcq input,.dcs__q input{height:100%;padding:0}
  .dctabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 6px;padding:2px 16px 4px}
  .dctabs::-webkit-scrollbar{display:none}
  .dctab{flex:0 0 auto;height:38px;padding:0 18px;border-radius:999px;border:0;background:var(--dcChip);color:var(--dcChipInk);font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
  .dctab.on{background:var(--dcChipOn);color:var(--dcChipOnInk)}
  .dctab i{font-style:normal;font-size:11.5px;font-weight:800;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--lime);color:#141a05;display:inline-grid;place-items:center}
  .dctab.on i{background:var(--dcChipOnInk);color:var(--dcChipOn)}
  .dclist{display:flex;flex-direction:column}
  .dcrow{display:flex;align-items:center;gap:14px;width:100%;padding:10px 0;border:0;background:transparent;text-align:left;color:var(--ink);cursor:pointer;position:relative;z-index:1;transition:transform var(--d-2) var(--e-out)}
  .chwrap.open .dcrow,.chwrap.drag .dcrow{background:var(--bg)}
  .chwrap.open .dcrow{transform:translateX(-216px)}
  .dcav{width:56px;height:56px;flex:0 0 56px;border-radius:999px;display:grid;place-items:center;font-size:21px;font-weight:900;background:var(--lime);color:#141a05;overflow:hidden;position:relative}
  .dcav img{width:100%;height:100%;object-fit:cover}
  .dcav--dark{background:#12161d;color:var(--lime)}

  .dcav .eic{width:24px;height:24px}
  .dcav__on{position:absolute;right:1px;bottom:1px;width:13px;height:13px;border-radius:999px;background:#5FD400;border:2.5px solid var(--bg)}
  .dcrow__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
  .dcrow__n{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:800;min-width:0}
  .dcrow__n b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800}
  .dcrow__p{font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcrow__p em{font-style:normal;color:var(--ink);font-weight:600}
  .dcrow__tags{display:flex;gap:5px;flex-wrap:wrap}
  .dctag{font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;background:var(--dcChip);color:var(--ink);display:inline-flex;align-items:center;gap:3px}
  .dctag .eic{width:11px;height:11px}
  .dctag--wait{background:var(--blue-a1);color:var(--blue)}
  /* Заметка — твой текст, не собеседника: другим цветом и пунктирной рамкой. */
  .dctag--note{background:transparent;border:1px dashed var(--line);color:var(--warn);font-weight:700}
  .dcrow__r{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:7px;align-self:flex-start;padding-top:6px}
  .dcrow__w{font-size:12.5px;color:var(--muted)}
  .dcrow__u{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--lime);color:#141a05;font-size:12px;font-weight:900;display:grid;place-items:center}
  .dcrow__tags .chrow__it{display:flex;align-items:center;gap:5px;min-width:0;max-width:100%;font-size:12px;color:var(--ink);white-space:nowrap;overflow:hidden}
  .dcver{width:17px;height:17px;flex:0 0 17px;display:inline-block}
  .dcempty{padding:28px 6px;text-align:center;color:var(--muted);font-size:14px;line-height:1.5}
  /* Переписка */
  .dcv{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;background-color:var(--dcBg);overflow:hidden}
  .dcv::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:1;background-image:var(--dcPatImg);background-size:180px 180px}
  .dcv[data-bg="plain"]::before{display:none}
  .dcv[data-bg="lime"]{background-color:#E9F8B8}
  .dcv[data-bg="sky"]{background-color:#DCEBFA}
  .dcv[data-bg="sand"]{background-color:#F3EBDD}
  .dcv[data-bg="night"]{background-color:#0E1117}
  .dchd{display:flex;align-items:center;gap:10px;padding:calc(10px + var(--tgtop)) 12px 10px;background:var(--dcSurf);position:relative;z-index:2;box-shadow:0 1px 0 var(--dcSep)}
  .dchd__back,.dchd__menu{width:44px;height:44px;flex:0 0 44px;border-radius:999px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}
  .dchd__back .eic{width:24px;height:24px;stroke-width:2.2}
  .dchd__menu .eic{width:22px;height:22px}
  .dchd .dcav{width:44px;height:44px;flex:0 0 44px;font-size:18px}
  .dchd__m{flex:1;min-width:0;cursor:pointer}
  .dchd__n{display:flex;align-items:center;gap:6px;font-size:17px;font-weight:800;color:var(--ink);min-width:0}
  .dchd__n b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dchd__s{font-size:13px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dchd__s.on{color:var(--muted)}
  .dchd__s.ty{color:var(--blue)}
  .dcstrip{position:relative;z-index:2;display:flex;align-items:center;gap:10px;padding:9px 14px;background:var(--dcSurf);border-top:1px solid var(--dcSep);font-size:13.5px;color:var(--ink);cursor:pointer}
  .dcstrip img{width:40px;height:40px;border-radius:10px;object-fit:cover;flex:0 0 40px;background:var(--dcIco)}
  .dcstrip__m{flex:1;min-width:0}
  .dcstrip__m b{display:block;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcstrip__m span{color:var(--muted);font-size:12.5px}
  .dcstrip .eic{width:18px;height:18px;color:var(--blue)}
  .dcstrip__x{border:0;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;padding:0 4px}
  .dcmsgs{flex:1;overflow-y:auto;padding:12px 12px 8px;display:flex;flex-direction:column;gap:6px;position:relative;z-index:1;-webkit-overflow-scrolling:touch}
  .dcdate{align-self:center;margin:8px 0;padding:5px 14px;border-radius:999px;background:var(--dcPill);color:var(--ink);font-size:12.5px;font-weight:700}
  .dcm{max-width:80%;padding:9px 12px 7px;border-radius:20px;font-size:15.5px;line-height:1.36;word-wrap:break-word;white-space:pre-wrap;position:relative;box-shadow:var(--dcShadow)}
  .dcm--in{align-self:flex-start;background:var(--dcIn);color:var(--dcInInk)}
  .dcm--out{align-self:flex-end;background:var(--dcOut);color:var(--dcOutInk)}
  .dcm--in.dcm--tl{border-bottom-left-radius:6px}
  .dcm--out.dcm--tl{border-bottom-right-radius:6px}
  .dcm--gp{margin-top:-2px}
  .dcm--pend{opacity:.7}
  /* Время — в правом нижнем углу пузыря; невидимая распорка в конце текста
     оставляет ему место на последней строке (как в Telegram). */
  .dcm__sp{display:inline-block;width:44px;height:1px}
  .dcm__sp--me{width:62px}
  .dcm__who{font-size:12.5px;font-weight:800;color:var(--blue);margin-bottom:2px}
  .dcm__tm{position:absolute;right:11px;bottom:6px;font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
  .dcm--out .dcm__tm{color:var(--dcOutMuted)}
  .dcm__tm .eic{width:15px;height:15px;stroke-width:2.2;color:var(--dcTick)}
  .dcm img.dcm__img{display:block;max-width:240px;max-height:260px;border-radius:12px;margin:-3px -6px 6px}
  .dcm__lnk{color:#1e88ff;text-decoration:underline;word-break:break-all}
  .dcm__auto{font-size:11.5px;font-weight:800;color:var(--muted);margin-bottom:2px}
  .dcm__rq{border-left:3px solid var(--blue);padding:2px 8px;margin:0 0 6px;border-radius:4px;background:rgba(127,127,127,.08);font-size:13px;cursor:pointer}
  .dcm__rq b{display:block;font-size:12px;color:var(--blue)}
  .dcm__rq span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit;opacity:.85}
  .dcreact{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
  .dcreact button{border:0;border-radius:999px;padding:2px 8px;font-size:13px;background:rgba(127,127,127,.14);color:inherit;cursor:pointer}
  .dcreact button.me{background:var(--blue-a2)}
  .dcsysl{align-self:center;max-width:88%;text-align:center;font-size:12.5px;font-weight:700;color:var(--ink);background:var(--dcPill);padding:6px 12px;border-radius:12px}
  .dcsysl button{display:block;margin:7px auto 1px;height:32px;padding:0 14px;border-radius:999px;border:0;background:var(--lime);color:#141a05;font-weight:800;font-size:13px;cursor:pointer}
  /* Карточки сделки внутри пузыря */
  .dccard{display:flex;flex-direction:column;gap:6px;min-width:220px;white-space:normal}
  .dccard__h{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;opacity:.75}
  .dccard__h .eic{width:14px;height:14px}
  .dccard__t{font-size:14px;font-weight:600}
  .dccard__st{font-size:12.5px;font-weight:800;color:var(--blue)}
  .dccard__st.bad{color:var(--err)}
  .dccard__acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
  .dccard__acts button{flex:1;min-width:fit-content;height:36px;padding:0 12px;border-radius:12px;border:0;font-weight:800;font-size:13px;cursor:pointer;background:rgba(127,127,127,.14);color:inherit}
  .dccard__acts button.pri{background:#111418;color:var(--lime)}
  .dcm--out .dccard__acts button.pri{background:#111418;color:var(--lime)}
  .dccard__acts button.bad{color:var(--err)}
  .dccard__prod{display:flex;gap:10px;align-items:center}
  .dccard__prod img{width:56px;height:56px;border-radius:12px;object-fit:cover;background:var(--dcIco);flex:0 0 56px}
  .dcfile{display:flex;align-items:center;gap:12px;min-width:250px;white-space:normal;padding-bottom:2px}
  .dcfile__th{width:56px;height:56px;flex:0 0 56px;border-radius:12px;background:var(--dcIco);display:grid;place-items:center;overflow:hidden}
  .dcfile__th img{width:100%;height:100%;object-fit:cover}
  .dcfile__th .eic{width:24px;height:24px;color:var(--muted)}
  .dcfile__m{flex:1;min-width:0}
  .dcfile__m b{display:block;font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcfile__m span{font-size:13px;color:var(--muted)}
  .dcfile__dl{width:40px;height:40px;flex:0 0 40px;border-radius:999px;border:0;background:var(--dcChip);color:var(--ink);display:grid;place-items:center;cursor:pointer}
  .dcfile__dl .eic{width:19px;height:19px;stroke-width:2}
  .dcrisk{display:flex;flex-direction:column;gap:6px;align-self:stretch;margin:4px 8px;padding:12px 14px;border-radius:16px;background:rgba(245,165,36,.12);border:1px solid rgba(245,165,36,.45);font-size:13.5px;color:var(--ink)}
  .dcrisk b{display:flex;align-items:center;gap:6px;font-size:14.5px}
  .dcrisk b .eic{width:18px;height:18px;color:var(--warn)}
  .dcrisk button{align-self:flex-start;height:34px;padding:0 14px;border-radius:999px;border:0;background:#111418;color:var(--lime);font-weight:800;font-size:13px;cursor:pointer}
  /* Приветствие поддержки с темами */
  .dcsg{align-self:flex-start;max-width:86%;display:flex;flex-direction:column;gap:8px}
  .dcsg .dcm{max-width:none}
  .dcsg__opts{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:20px;background:var(--dcIn);box-shadow:var(--dcShadow)}
  .dcsg__o{display:flex;align-items:center;gap:12px;height:46px;padding:0 14px;border-radius:12px;border:0;background:var(--dcChip);color:var(--ink);font-size:15px;font-weight:600;cursor:pointer;text-align:left}
  .dcsg__o .eic{width:19px;height:19px;color:var(--muted)}
  .dcsg__note{display:flex;gap:6px;align-items:flex-start;font-size:12px;line-height:1.4;color:var(--muted);padding:0 6px}
  .dcsg__note .eic{width:14px;height:14px;flex:0 0 14px;margin-top:1px;color:var(--blue)}
  .dcsup__o{display:flex;flex-direction:column;gap:6px;margin-top:6px}
  .dcsup__o button{height:34px;border-radius:12px;border:0;background:var(--dcChip);color:var(--ink);font-weight:700;font-size:13px;cursor:pointer;text-align:left;padding:0 12px}
  /* Список: фильтр, входящие продавца, метки строки */
  .dch__ic.on{background:var(--lime);color:#141a05}
  .dcsubon{display:inline-flex;align-items:center;gap:6px;margin:0 16px 8px;padding:4px 6px 4px 12px;border-radius:999px;background:var(--dcChipOn);color:var(--dcChipOnInk);font-size:12.5px;font-weight:800}
  .dcsubon button{width:22px;height:22px;border-radius:999px;border:0;background:rgba(127,127,127,.25);color:inherit;font-size:14px;line-height:1;cursor:pointer}
  .dctag--offer{background:rgba(245,165,36,.16);color:var(--warn)}
  .dctag--new{background:var(--lime);color:#141a05}
  .dcrow__on{font-style:normal;font-size:12px;font-weight:700;color:var(--ok)}
  /* Строки над перепиской */
  .dcstrip--thin{padding:6px 14px;font-size:12.5px;color:var(--muted);cursor:default}
  .dcstrip--thin .eic{width:15px;height:15px;color:var(--muted)}
  .dcstrip--sup{background:var(--blue-a1)}
  .dcstrip__src{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* Карточки в переписке */
  .dccard__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px}
  .dccard__row span{opacity:.7}
  .dccard__p2{font-size:17px;font-weight:900;letter-spacing:-.2px}
  .dccard__sel{font-size:12px;opacity:.75;display:flex;align-items:center;gap:4px}
  .dccard--sold img{filter:grayscale(1);opacity:.6}
  .dccard__sold{align-self:flex-start;padding:5px 12px;border-radius:999px;background:#111418;color:#fff;font-size:12px;font-weight:900;letter-spacing:.6px}
  .dcpoll{display:flex;flex-direction:column;gap:6px}
  .dcpoll button{position:relative;overflow:hidden;display:flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border-radius:12px;border:0;background:rgba(127,127,127,.12);color:inherit;font-size:13.5px;font-weight:600;text-align:left;cursor:pointer}
  .dcpoll button i{position:absolute;left:0;top:0;bottom:0;background:var(--blue-a2);transition:width var(--d-2) var(--e-out)}
  .dcpoll button span,.dcpoll button b{position:relative}
  .dcpoll button span{flex:1}
  .dcpoll button.me{box-shadow:inset 0 0 0 2px var(--blue)}
  .dcsup{align-self:flex-start;max-width:86%;display:flex;flex-direction:column;gap:6px;margin:4px 0;padding:12px 14px;border-radius:20px;background:var(--dcIn);box-shadow:var(--dcShadow);white-space:normal;font-size:14px;color:var(--ink)}
  /* Видео, голос, ИИ, ветки */
  .dcvoice{display:flex;align-items:center;gap:10px;min-width:200px}
  .dcvoice__pl{width:40px;height:40px;flex:0 0 40px;border-radius:999px;border:0;background:var(--lime);color:#141a05;display:grid;place-items:center;cursor:pointer}
  .dcvoice__pl .eic{width:18px;height:18px;fill:currentColor;stroke:none}
  .dcvoice__tx{margin-top:6px;font-size:13.5px;font-style:italic;opacity:.85;white-space:normal}
  .dcai{margin-top:6px;padding:6px 10px;border-radius:12px;background:rgba(127,127,127,.12);font-size:13px;white-space:normal}
  .dcm__thr{display:flex;align-items:center;gap:4px;margin-top:6px;border:0;background:transparent;padding:0;color:var(--blue);font-weight:700;font-size:12.5px;cursor:pointer}
  .dcm__thr .eic{width:14px;height:14px}
  .dcthread{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;margin:0 0 6px;padding:8px 12px;border-radius:12px;background:var(--dcSurf);box-shadow:var(--dcShadow);font-size:13px;font-weight:700;color:var(--ink)}
  .dcthread .eic{width:16px;height:16px;color:var(--blue)}
  .dcthread span{flex:1}
  .dcthread button{border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer}
  .dcbar__ic{width:40px;height:44px;flex:0 0 40px;border-radius:999px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}
  .dcbar__ic .eic{width:22px;height:22px;stroke-width:2}
  .dcbar__ic.on{color:var(--err)}
  /* «＋»: всё, что можно отправить */
  /* Профиль собеседника и доверие */
  .dcpf{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
  .dcpf>.dcav{width:76px;height:76px;flex:0 0 76px;font-size:30px}
  .dcpf>b{display:flex;align-items:center;gap:6px;font-size:20px;font-weight:900;color:var(--ink)}
  .dcpf .btn{width:100%}
  .dcpf__line{font-size:13.5px;color:var(--muted)}
  .dcpf__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%;margin:6px 0}
  .dcpf__grid span{display:flex;flex-direction:column;gap:2px;padding:10px 4px;border-radius:12px;background:var(--dcChip);font-size:11px;color:var(--muted)}
  .dcpf__grid b{font-size:17px;font-weight:900;color:var(--ink)}
  .dcpf__rules{font-size:12px;line-height:1.45;color:var(--muted);text-align:left;padding:10px 12px;border-radius:12px;border:1px dashed var(--line);margin-bottom:6px}
  .dcbadges{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
  .dcbadge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800}
  .dcbadge--v{background:var(--blue-a1);color:var(--blue)}
  .dcbadge--r{background:rgba(0,200,83,.14);color:var(--ok)}
  .dcset__img{width:40px;height:40px;flex:0 0 40px;border-radius:10px;object-fit:cover;background:var(--dcIco)}
  /* Атрибуция канала */
  .dcchst{padding:14px 16px}
  .dcchst__g{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
  .dcchst__g span{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--dcChip);font-size:12px;color:var(--muted)}
  .dcchst__g b{font-size:17px;font-weight:900;color:var(--ink)}
  /* Канал: пост во всю ширину, реакции и просмотры под ним */
  .dcm--chan{max-width:100%;width:100%;align-self:stretch;border-radius:20px}
  .dcm--post{padding:0;overflow:hidden}
  .dcpost__img{position:relative;height:184px;background:#12161d}
  .dcpost__img img{width:100%;height:100%;object-fit:cover;display:block}
  .dcpost__badge{position:absolute;top:14px;left:14px;padding:6px 12px;border-radius:999px;background:var(--lime);color:#141a05;font-size:12px;font-weight:900;letter-spacing:.4px;text-transform:uppercase}
  .dcpost__b>.dcpost__badge{position:static;display:inline-block;margin-bottom:8px}
  .dcpost__sold{position:absolute;right:14px;top:14px;padding:6px 12px;border-radius:999px;background:#111418;color:#fff;font-size:12px;font-weight:900;letter-spacing:.6px}
  .dcpost__sold--in{position:static;display:inline-block;margin:0 0 8px 6px}
  .dcpost--sold .dcpost__img img{filter:grayscale(1);opacity:.6}
  .dcpost__b{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px;white-space:normal}
  .dcpost__t{font-size:17px;font-weight:800;color:var(--ink)}
  .dcpost__d{font-size:14.5px;line-height:1.4;color:var(--muted)}
  .dcpost__s{font-size:12.5px;font-weight:700;color:var(--muted)}
  .dcpost__p{font-size:22px;font-weight:900;letter-spacing:-.3px;color:var(--ink);margin-top:2px}
  .dcpost__go{height:46px;margin-top:6px;border-radius:999px;border:0;background:var(--blue-a2);color:var(--ink);font-size:15px;font-weight:800;cursor:pointer}
  .dcpost__ft{align-self:stretch;display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:-2px 0 4px}
  .dcpost__re{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border-radius:999px;border:0;background:var(--dcSurf);box-shadow:var(--dcShadow);font-size:14px;color:var(--ink);cursor:pointer}
  .dcpost__re span{font-size:12.5px;font-weight:700;color:var(--muted)}
  .dcpost__re.me{box-shadow:inset 0 0 0 1.5px var(--blue)}
  .dcpost__vw{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
  .dcpost__vw .eic{width:15px;height:15px}
  /* Группа и сообщество: аватар автора слева от серии сообщений */
  .dcm--ra{margin-left:44px}
  .dcm__av{position:absolute;left:-44px;bottom:0}
  .dcm__av .dcav{width:36px;height:36px;flex:0 0 36px;font-size:15px}
  .dcm__av .dcav__on{width:11px;height:11px;border-width:2px}
  .dcm--img{padding:4px}
  .dcm--img img.dcm__img{margin:0;border-radius:16px;max-width:220px}
  .dcm--img .dcm__sp{display:none}
  .dcm--img .dcm__tm{right:12px;bottom:10px;padding:2px 7px;border-radius:999px;background:rgba(0,0,0,.45);color:#fff}
  .dcm--img .dcm__tm .eic{color:#fff}
  .dcstrip--pin{margin:8px 12px 0;border:0;border-radius:16px;box-shadow:var(--dcShadow)}
  .dcstrip--pin .eic{color:var(--limeink)}
  .dcstrip--pin .dcstrip__m span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* Нижняя кнопка канала: подписаться / звук */
  .dcbar__join{flex:1;height:52px;border-radius:999px;border:0;background:#111418;color:#fff;font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
  .dcbar__join--sec{background:var(--dcSurf);color:var(--ink);box-shadow:var(--dcShadow)}
  .dcbar__join .eic{width:19px;height:19px}
  /* Новый чат */
  .dcnc{min-height:100%}
  .dcnc .dcpage__b{flex:1}
  .dcnc__seg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .dcnc__seg button{height:44px;border-radius:999px;border:0;background:var(--dcChip);color:var(--ink);font-size:15px;font-weight:700;cursor:pointer;transition:background var(--d-2) var(--e-out)}
  .dcnc__seg button.on{background:#111418;color:#fff}
  .dcnc__q{background:var(--dcSurf);box-shadow:var(--dcShadow)}
  .dcnc__sel{display:flex;gap:16px;overflow-x:auto;padding:4px 2px;scrollbar-width:none}
  .dcnc__sel::-webkit-scrollbar{display:none}
  .dcnc__chip{display:flex;flex-direction:column;align-items:center;gap:6px;width:68px;flex:0 0 68px;border:0;background:transparent;color:var(--ink);font-size:12.5px;font-weight:600;cursor:pointer;padding:0}
  .dcnc__chip .dcav{width:52px;height:52px;flex:0 0 52px;font-size:20px}
  .dcnc__chip span:last-child{max-width:68px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcnc__add .dcav{background:var(--dcChip);color:var(--muted)}
  .dcnc__add{color:var(--muted)}
  .dcnc__h{font-size:17px;font-weight:800;color:var(--ink);margin:4px 0 0}
  .dcnc__g{border-radius:20px;background:var(--dcSurf);padding:2px 14px}
  .dcnc__r{display:flex;align-items:center;gap:12px;width:100%;padding:10px 0;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}
  .dcnc__r+.dcnc__r{border-top:1px solid var(--dcSep)}
  .dcnc__r .dcav{width:46px;height:46px;flex:0 0 46px;font-size:18px}
  .dcnc__ck{width:26px;height:26px;flex:0 0 26px;border-radius:999px;border:2px solid var(--line);display:grid;place-items:center;color:transparent;transition:background var(--d-2) var(--e-out)}
  .dcnc__ck .eic{width:16px;height:16px;stroke-width:2.6}
  .dcnc__r.on .dcnc__ck{background:#8CCB2E;border-color:#8CCB2E;color:#141a05}
  .dcnc__ft{position:sticky;bottom:0;padding:10px 16px calc(14px + var(--sab));background:linear-gradient(transparent,var(--dcSet) 30%)}
  .dcnc__ft:empty{display:none}
  .dcnc__go{width:100%;height:54px;border-radius:999px;border:0;background:linear-gradient(90deg,var(--lime),#C2EE3B);color:#141a05;font-size:16px;font-weight:800;cursor:pointer}
  .dcnc__go:disabled{opacity:.45;cursor:default}
  /* Плашка товара и карточка заказа над перепиской */
  .dcpl{position:relative;display:flex;gap:12px;align-items:flex-start;margin:8px 12px 0;padding:10px 12px;border-radius:16px;background:var(--dcSurf);box-shadow:var(--dcShadow);cursor:pointer;z-index:2}
  .dcpl>img,.dcpl__ph{width:64px;height:64px;flex:0 0 64px;border-radius:12px;object-fit:cover;background:var(--dcIco);display:grid;place-items:center}
  .dcpl__ph .eic{width:22px;height:22px;color:var(--muted)}
  .dcpl__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding-right:18px}
  .dcpl__m b{font-size:15px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcpl__m span{font-size:12.5px;color:var(--muted)}
  .dcpl__m>i{font-style:normal;font-size:16px;font-weight:900;color:var(--ink)}
  .dcpl__pr{font-weight:800;color:var(--limeink)}
  .dcpl__acts{display:flex;gap:8px;margin-top:6px}
  .dcpl__buy,.dcpl__off{flex:1;height:38px;border-radius:12px;font-size:14px;font-weight:800;cursor:pointer}
  .dcpl__buy{border:0;background:var(--lime);color:#141a05}
  .dcpl__off{border:1.5px solid var(--line);background:var(--dcSurf);color:var(--ink)}
  .dcpl__x{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-size:18px;cursor:pointer}
  .dcoc{margin:8px 12px 0;padding:12px 14px;border-radius:16px;background:var(--dcSurf);box-shadow:var(--dcShadow);position:relative;z-index:2}
  .dcoc__h{display:flex;align-items:center;gap:10px}
  .dcoc__h>b{font-size:15px;font-weight:800;color:var(--ink)}
  .dcoc__ic{width:36px;height:36px;flex:0 0 36px;border-radius:12px;background:var(--blue-a1);color:var(--limeink);display:grid;place-items:center}
  .dcoc__ic .eic{width:19px;height:19px}
  .dcoc__st{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:800;background:var(--blue-a2);color:var(--ink)}
  .dcoc__st--wait{background:rgba(245,165,36,.18);color:var(--warn)}
  .dcoc__st--bad{background:rgba(240,68,56,.14);color:var(--err)}
  .dcoc__fold{margin-left:auto;width:32px;height:32px;border-radius:999px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
  .dcoc__fold .eic{width:18px;height:18px;transform:rotate(180deg);transition:transform var(--d-2) var(--e-out)}
  .dcoc--fold .dcoc__fold .eic{transform:none}
  .dcoc--fold .dcoc__b{display:none}
  .dcoc__go{width:100%;height:42px;border-radius:12px;border:0;background:#111418;color:#fff;font-size:14px;font-weight:800;cursor:pointer}
  /* Предложение цены */
  .dco{align-self:stretch;border-radius:20px;background:linear-gradient(var(--blue-a1),var(--blue-a1)),var(--dcSurf);box-shadow:var(--dcShadow);overflow:hidden}
  .dco__top{position:relative;display:flex;align-items:center;gap:12px;padding:14px 14px 12px}
  .dco__ic{width:44px;height:44px;flex:0 0 44px;border-radius:12px;background:var(--dcSurf);color:var(--limeink);display:grid;place-items:center}
  .dco__ic .eic{width:22px;height:22px}
  .dco__m{flex:1;min-width:0;display:flex;flex-direction:column}
  .dco__m span{font-size:14px;font-weight:700;color:var(--ink)}
  .dco__m b{font-size:24px;font-weight:900;color:var(--ink);letter-spacing:-.3px}
  .dco__timer{margin-right:22px;padding:6px 14px;border-radius:999px;border:1.5px solid var(--limeink);color:var(--ink);font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
  .dco__chip{margin-right:6px;padding:5px 12px;border-radius:999px;background:var(--dcSurf);color:var(--muted);font-size:12.5px;font-weight:800}
  .dco__chip--accepted{color:var(--limeink)}
  .dco__chip--declined,.dco__chip--expired{color:var(--err)}
  .dco__x{position:absolute;top:6px;right:8px;width:28px;height:28px;border-radius:999px;border:0;background:transparent;color:var(--limeink);font-size:20px;cursor:pointer}
  .dco__acts{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 12px}
  .dco__yes,.dco__alt{flex:1;min-width:fit-content;height:40px;padding:0 12px;border-radius:12px;font-size:13.5px;font-weight:800;cursor:pointer}
  .dco__yes{border:0;background:#111418;color:#fff}
  .dco__alt{border:1.5px solid var(--line);background:var(--dcSurf);color:var(--ink)}
  .dco__alt.bad{color:var(--err)}
  .dco__ft{padding:9px 14px;background:var(--dcSurf);font-size:12.5px;color:var(--muted)}
  .dco--exp{display:flex;flex-direction:column;gap:4px;padding:14px;background:rgba(240,68,56,.07);border:1px solid rgba(240,68,56,.22)}
  .dco--exp b{font-size:15px;font-weight:800;color:var(--err)}
  .dco--exp span{font-size:13.5px;color:var(--ink)}
  .dco__again{margin-top:8px;height:42px;border-radius:12px;border:1.5px solid var(--line);background:var(--dcSurf);color:var(--ink);font-size:14px;font-weight:800;cursor:pointer}
  .dccnt{max-width:86%}
  .dccnt__acts{display:flex;flex-direction:column;gap:8px;margin-top:10px}
  .dccnt__yes,.dccnt__no{height:42px;border-radius:12px;font-size:14px;font-weight:800;cursor:pointer}
  .dccnt__yes{border:0;background:var(--blue-a2);color:var(--ink)}
  .dccnt__no{border:1.5px solid var(--line);background:var(--dcSurf);color:var(--ink)}
  .dcagr{align-self:flex-end;width:86%;padding:14px;border-radius:20px;background:linear-gradient(var(--blue-a1),var(--blue-a1)),var(--dcSurf);box-shadow:var(--dcShadow);display:flex;flex-direction:column;gap:12px}
  .dcagr__top{display:flex;align-items:center;gap:12px}
  .dcagr__top b{display:block;font-size:15px;font-weight:800;color:var(--ink)}
  .dcagr__top i{display:block;font-style:normal;font-size:20px;font-weight:900;color:var(--ink)}
  .dcagr__ok{width:40px;height:40px;flex:0 0 40px;border-radius:999px;background:#2F9E44;color:#fff;display:grid;place-items:center}
  .dcagr__ok .eic{width:22px;height:22px;stroke-width:2.6}
  .dcagr__pay{height:48px;border-radius:12px;border:0;background:#111418;color:#fff;font-size:15px;font-weight:800;cursor:pointer}
  .dcagr__ft{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
  .dcagr__ft .eic{width:15px;height:15px;color:var(--limeink)}
  .dcagr__ft span{margin-left:auto}
  /* Заказ: лента событий */
  .dctl{position:relative;align-self:flex-start;max-width:88%;display:flex;gap:10px;align-items:flex-start}
  .dctl::before{content:'';position:absolute;left:13px;top:0;bottom:-6px;width:2px;background:rgba(127,127,127,.3)}
  .dctl__dot{position:relative;z-index:1;width:28px;height:28px;flex:0 0 28px;margin-top:8px;border-radius:999px;background:#12161d;color:var(--lime);display:grid;place-items:center}
  .dctl__dot .eic{width:14px;height:14px;stroke-width:2.4}
  .dctl__dot--ok{background:#2F9E44;color:#fff}
  .dctl__card{padding:8px 12px;border-radius:16px;background:var(--dcIn);box-shadow:var(--dcShadow);display:flex;flex-direction:column;gap:2px;min-width:0}
  .dctl__card b{font-size:14px;font-weight:700;color:var(--ink)}
  .dctl__card i{font-style:normal;font-size:12px;color:var(--muted)}
  .dctl--bad .dctl__card b{color:var(--err)}
  .dctl__lnk{align-self:flex-start;border:0;background:transparent;padding:2px 0 0;color:var(--blue);font-weight:700;font-size:12.5px;cursor:pointer}
  .dctl--big{max-width:100%;align-self:stretch}
  .dctl--big .dctl__card{flex:1;padding:12px 14px;cursor:pointer}
  .dctl__bh{display:flex;align-items:center;justify-content:space-between}
  .dctl__bh .eic{width:18px;height:18px;color:var(--muted)}
  .dctl__trk{font-size:12.5px;color:var(--muted)}
  .dctl__row{display:flex;align-items:center;gap:10px;margin-top:8px}
  .dctl__dots{flex:1;display:flex;align-items:center;gap:0}
  .dctl__dots i{width:10px;height:10px;border-radius:999px;background:var(--dcSep);flex:0 0 10px}
  .dctl__dots i+i{margin-left:calc((100% - 50px)/4)}
  .dctl__dots i.on{background:#2F9E44}
  .dctl__go{height:34px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--dcSurf);color:var(--ink);font-size:13px;font-weight:800;cursor:pointer}
  /* Спор */
  .dcdsp{align-self:stretch;padding:14px;border-radius:20px;background:var(--dcIn);box-shadow:var(--dcShadow);display:flex;flex-direction:column;gap:10px;cursor:pointer}
  .dcdsp__h{display:flex;align-items:flex-start;gap:12px}
  .dcdsp__h>img,.dcdsp__h>.dcpl__ph{width:56px;height:56px;flex:0 0 56px;border-radius:12px;object-fit:cover}
  .dcdsp__h>.eic{width:18px;height:18px;color:var(--muted);margin-left:auto}
  .dcdsp__m{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
  .dcdsp__m b{font-size:16px;font-weight:800;color:var(--ink)}
  .dcdsp__m i{font-style:normal;font-size:12px;color:var(--muted)}
  .dcdsp__st{padding:3px 10px;border-radius:999px;background:var(--blue-a2);color:var(--ink);font-size:12px;font-weight:800}
  .dcdsp__st--done{background:var(--dcChip);color:var(--muted)}
  .dcdsp__it{display:flex;gap:12px;align-items:center}
  .dcdsp__it img{width:48px;height:48px;flex:0 0 48px;border-radius:12px;object-fit:cover}
  .dcdsp__it b{display:block;font-size:14px;font-weight:700;color:var(--ink)}
  .dcdsp__it i{font-style:normal;font-size:15px;font-weight:900;color:var(--ink)}
  .dcdsp__r{font-size:13.5px;color:var(--ink)}
  .dcdsp__r span{font-weight:800}
  .dcdsp__n{font-size:13.5px;color:var(--muted);white-space:pre-wrap}
  .dcdsp__ph{display:flex;gap:8px}
  .dcdsp__ph img{width:72px;height:72px;border-radius:12px;object-fit:cover;background:var(--dcIco)}
  .dcdsp__by{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
  .dcdsp__by .eic{width:15px;height:15px}
  .dcdsp__by span{margin-left:auto;font-size:11.5px}
  .dcrad{display:flex;flex-direction:column;border-radius:16px;background:var(--dcSurf);overflow:hidden}
  .dcrad button{display:flex;align-items:center;gap:10px;min-height:50px;padding:0 16px;border:0;background:transparent;color:var(--ink);font-size:15px;text-align:left;cursor:pointer}
  .dcrad button+button{border-top:1px solid var(--dcSep)}
  .dcrad button span{flex:1}
  .dcrad button i{width:22px;height:22px;border-radius:999px;border:2px solid var(--line)}
  .dcrad button.on i{border:6px solid #2F9E44}
  .dcnext{width:100%;height:52px;margin-top:14px;border-radius:999px;border:0;background:var(--lime);color:#141a05;font-size:16px;font-weight:800;cursor:pointer}
  .dcnext:disabled{opacity:.45;cursor:default}
  .dcphs{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
  .dcphs__i{position:relative;width:76px;height:76px}
  .dcphs__i img{width:100%;height:100%;border-radius:12px;object-fit:cover}
  .dcphs__i button{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:999px;border:0;background:#111418;color:#fff;font-size:14px;cursor:pointer}
  .dcphs__add{width:76px;height:76px;border-radius:12px;border:1.5px dashed var(--line);background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
  .dcphs__add .eic{width:24px;height:24px}
  /* Кешбэк и Drop Balance */
  .dccb{position:relative;align-self:stretch;padding:14px;border-radius:20px;background:linear-gradient(var(--blue-a1),var(--blue-a1)),var(--dcSurf);box-shadow:var(--dcShadow);display:flex;flex-direction:column;gap:8px}
  .dccb--bal{background:var(--dcIn)}
  .dccb--bal .dccb__ok{background:var(--blue-a1);color:var(--limeink)}
  .dccb__top{display:flex;align-items:center;gap:12px;margin-bottom:4px}
  .dccb__top div>span{display:block;font-size:14px;font-weight:700;color:var(--ink)}
  .dccb__top b{display:block;font-size:24px;font-weight:900;color:var(--ink);letter-spacing:-.3px}
  .dccb__top i{display:block;font-style:normal;font-size:12.5px;color:var(--muted)}
  .dccb__ok{width:52px;height:52px;flex:0 0 52px;border-radius:16px;background:var(--dcSurf);color:#2F9E44;display:grid;place-items:center}
  .dccb__ok .eic{width:26px;height:26px;stroke-width:2.6}
  .dccb__x{position:absolute;top:8px;right:10px;width:28px;height:28px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer}
  .dccb__spend{height:44px;border-radius:12px;border:0;background:var(--lime);color:#141a05;font-size:14.5px;font-weight:800;cursor:pointer}
  .dccb__wal{height:44px;border-radius:12px;border:1.5px solid var(--line);background:var(--dcSurf);color:var(--ink);font-size:14.5px;font-weight:800;cursor:pointer}
  .dccb__tm{align-self:flex-end;font-size:11px;color:var(--muted)}
  /* Шаблоны над полем */
  .dctp{position:relative;z-index:2;margin:0 12px 6px;padding:12px 12px 10px;border-radius:20px;background:var(--dcSurf);box-shadow:var(--dcShadow)}
  .dctp__h{display:flex;align-items:center;justify-content:space-between;padding:0 4px 6px}
  .dctp__h b{font-size:15px;font-weight:800;color:var(--ink)}
  .dctp__h button{width:30px;height:30px;border:0;background:transparent;color:var(--muted);font-size:18px;font-weight:800;cursor:pointer}
  .dctp__l{max-height:38vh;overflow-y:auto}
  .dctp__r{display:flex;align-items:center;gap:12px;width:100%;padding:8px 4px;border:0;background:transparent;text-align:left;cursor:pointer}
  .dctp__r+.dctp__r{border-top:1px solid var(--dcSep)}
  .dctp__ic{width:34px;height:34px;flex:0 0 34px;border-radius:12px;background:var(--dcChip);color:var(--ink);display:grid;place-items:center}
  .dctp__ic .eic{width:16px;height:16px}
  .dctp__m{min-width:0;display:flex;flex-direction:column}
  .dctp__m b{font-size:13.5px;font-weight:800;color:var(--ink)}
  .dctp__m i{font-style:normal;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dctp__ai{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:46px;margin-top:8px;border-radius:999px;border:0;background:var(--blue-a2);color:var(--ink);font-size:15px;font-weight:800;cursor:pointer}
  .dctp__ai .eic{width:18px;height:18px}
  /* Продажи */
  .dcsl__hd{display:flex;align-items:center;gap:4px;padding:calc(10px + var(--tgtop)) 8px 6px}
  .dcsl__hd h3{flex:1;margin:0 0 0 4px;font-size:22px;font-weight:900;color:var(--ink)}
  .dcsl__ban{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:16px;border:1px solid var(--blue-a2);background:var(--blue-a1);color:var(--ink);text-align:left;cursor:pointer}
  .dcsl__ban>span:nth-child(2){flex:1;display:flex;flex-direction:column}
  .dcsl__ban b{font-size:15px;font-weight:800}
  .dcsl__ban i{font-style:normal;font-size:12.5px;color:var(--muted)}
  .dcsl__ban>.eic{width:18px;height:18px;color:var(--muted)}
  .dcsl__ok{width:28px;height:28px;flex:0 0 28px;border-radius:999px;background:#2F9E44;color:#fff;display:grid;place-items:center}
  .dcsl__ok .eic{width:16px;height:16px;stroke-width:2.6}
  .dcsl__tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
  .dcsl__tabs::-webkit-scrollbar{display:none}
  .dcsl__tabs button{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:999px;border:0;background:var(--dcSurf);color:var(--ink);font-size:13.5px;font-weight:700;cursor:pointer}
  .dcsl__tabs button i{font-style:normal;font-size:12px;color:var(--muted)}
  .dcsl__tabs button.on{background:var(--blue-a2)}
  .dcsl__tabs button.on i{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--lime);color:#141a05;display:inline-grid;place-items:center;font-weight:800}
  .dcsl__list{border-radius:20px;background:var(--dcSurf);padding:0 12px}
  .dcsl__r{display:flex;gap:10px;align-items:flex-start;width:100%;padding:12px 0;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--ink)}
  .dcsl__r+.dcsl__r{border-top:1px solid var(--dcSep)}
  .dcsl__r .dcav{width:44px;height:44px;flex:0 0 44px;font-size:17px}
  .dcsl__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
  .dcsl__m>b{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:800;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .dcsl__on{width:8px;height:8px;flex:0 0 8px;border-radius:999px;background:#5FD400}
  .dcsl__msg{display:flex;align-items:center;gap:8px;min-width:0}
  .dcsl__msg img{width:40px;height:40px;flex:0 0 40px;border-radius:10px;object-fit:cover}
  .dcsl__msg span{font-size:13.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .dcsl__r--u .dcsl__msg span{color:var(--ink);font-weight:600}
  .dcsl__rt{flex:0 0 auto;max-width:44%;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
  .dcsl__top{display:flex;align-items:center;gap:2px}
  .dcsl__top>.eic{width:16px;height:16px;color:var(--muted)}
  .dcsl__w{font-size:12px;color:var(--muted)}
  .dcst{padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .dcst--ord{background:rgba(47,158,68,.14);color:#2F9E44}
  .dcst--off{background:rgba(245,165,36,.18);color:var(--warn)}
  .dcst--new{background:rgba(124,92,255,.14);color:#7C5CFF}
  .dcst--src{background:rgba(30,136,255,.12);color:#1E88FF}
  /* Страница магазина */
  .dcsp .dcpage__b{gap:14px}
  .dcsp__top{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;margin-top:-30px}
  .dcsp__top>.dcav{width:84px;height:84px;flex:0 0 84px;font-size:32px}
  .dcsp__top b{display:flex;align-items:center;justify-content:center;gap:6px;font-size:21px;font-weight:900;color:var(--ink)}
  .dcsp__chip{display:inline-block;margin-top:6px;padding:4px 12px;border-radius:999px;background:var(--blue-a1);color:var(--limeink);font-size:12.5px;font-weight:800}
  .dcsp__stats{display:grid;grid-template-columns:repeat(4,1fr);border-radius:20px;background:var(--dcSurf);padding:12px 4px}
  .dcsp__stats span{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
  .dcsp__stats span+span{border-left:1px solid var(--dcSep)}
  .dcsp__stats b{display:flex;align-items:center;gap:4px;font-size:17px;font-weight:900;color:var(--ink)}
  .dcsp__stats b .eic{width:16px;height:16px;color:#F5A524;fill:#F5A524}
  .dcsp__stats i{font-style:normal;font-size:11.5px;color:var(--muted)}
  .dcsp__acts{display:flex;gap:10px}
  .dcsp__sub{flex:1;height:48px;border-radius:999px;border:0;background:var(--blue-a2);color:var(--ink);font-size:15px;font-weight:800;cursor:pointer}
  .dcsp__sub.on{background:var(--dcChip);color:var(--muted)}
  .dcsp__msg{width:48px;height:48px;flex:0 0 48px;border-radius:16px;border:1.5px solid var(--line);background:var(--dcSurf);color:var(--ink);display:grid;place-items:center;cursor:pointer}
  .dcsp__msg .eic{width:20px;height:20px}
  .dcsp__about{font-size:14px;line-height:1.45;color:var(--ink)}
  .dcsp__pills{display:flex;flex-wrap:wrap;gap:8px}
  .dcsp__pills:empty{display:none}
  .dcsp__pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;background:var(--dcSurf);font-size:12px;font-weight:700;color:var(--ink)}
  .dcsp__pill .eic{width:15px;height:15px;color:#2F9E44}
  .dcsp__h{display:flex;align-items:center;justify-content:space-between;margin-top:4px}
  .dcsp__h b{font-size:17px;font-weight:800;color:var(--ink)}
  .dcsp__h button{border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:700;cursor:pointer}
  .dcsp__per{padding:4px 10px;border-radius:999px;background:var(--dcSurf);font-size:12px;font-weight:700;color:var(--muted)}
  .dcsp__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .dcsp__bd{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:16px;background:var(--dcSurf)}
  .dcsp__bd>span{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:rgba(47,158,68,.14);color:#2F9E44;margin-bottom:4px}
  .dcsp__bd--fast>span{background:rgba(30,136,255,.12);color:#1E88FF}
  .dcsp__bd--rating>span{background:rgba(245,165,36,.18);color:#F5A524}
  .dcsp__bd--disputes>span{background:rgba(20,184,166,.15);color:#14B8A6}
  .dcsp__bd>span .eic{width:19px;height:19px}
  .dcsp__bd b{font-size:14px;font-weight:800;color:var(--ink)}
  .dcsp__bd i{font-style:normal;font-size:12px;color:var(--muted)}
  .dcsp__bd.off{opacity:.55}
  .dcsp__card{padding:14px;border-radius:20px;background:var(--dcSurf)}
  .dcsp__bars{display:flex;align-items:flex-end;gap:3px;height:90px}
  .dcsp__bars i{flex:1;border-radius:999px;background:#7FD13B;min-height:4px}
  .dcsp__nodata{font-size:13px;color:var(--muted);padding:8px 0}
  .dcsp__nums{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}
  .dcsp__nums span{display:flex;flex-direction:column;gap:2px}
  .dcsp__nums i{font-style:normal;font-size:12px;color:var(--muted)}
  .dcsp__nums b{font-size:16px;font-weight:900;color:var(--ink)}
  .dcsp__nums em{font-style:normal;font-size:11.5px;font-weight:800;color:#2F9E44}
  .dcsp__nums em.dn{color:var(--err)}
  .dcsp__items{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  .dcsp__items button{padding:0;border:0;background:transparent;cursor:pointer}
  .dcsp__items img{width:100%;aspect-ratio:1;border-radius:12px;object-fit:cover;display:block;background:var(--dcIco)}
  .dcsp__crit{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:20px;background:#12161d;color:#E6EAF0}
  .dcsp__crit>b{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800}
  .dcsp__crit .eic{width:16px;height:16px;flex:0 0 16px;color:#7FD13B}
  .dcsp__crit>span{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.4}
  .dcsp__crit em{font-style:normal;color:#C6F432;font-weight:700}
  .dcsp__crit small{font-size:11.5px;color:#9AA3B2;line-height:1.4}
  /* Видео в пузыре */
  .dcvid{position:relative;width:240px;max-width:100%;aspect-ratio:1;border-radius:16px;overflow:hidden;background:#000}
  .dcvid video{width:100%;height:100%;object-fit:cover;display:block}
  .dcvid__play{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:999px;border:2px solid rgba(255,255,255,.9);background:rgba(0,0,0,.35);color:#fff;display:grid;place-items:center;cursor:pointer}
  .dcvid__play .eic{width:24px;height:24px;fill:currentColor;stroke:none;transform:translateX(2px)}
  .dcvid__dur{position:absolute;left:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;background:rgba(0,0,0,.5);color:#fff;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
  .dcvid__dur i{width:10px;height:10px;border-radius:999px;border:2px solid #fff}
  .dcvid__fs{position:absolute;right:8px;bottom:8px;width:32px;height:32px;border-radius:10px;border:0;background:rgba(0,0,0,.4);color:#fff;display:grid;place-items:center;cursor:pointer}
  .dcvid__fs .eic{width:17px;height:17px}
  .dcvid.on .dcvid__play,.dcvid.on .dcvid__dur,.dcvid.on .dcvid__fs{display:none}
  /* Голосовое: волна громкости */
  .dcvoice__wv{flex:1;display:flex;align-items:center;gap:2px;height:30px;min-width:120px}
  .dcvoice__wv i{flex:1;min-width:2px;border-radius:999px;background:rgba(127,127,127,.4)}
  .dcvoice__wv i.on{background:#2F9E44}
  .dcvoice__d{display:block;margin:2px 0 0 50px;font-size:12px;font-variant-numeric:tabular-nums;opacity:.7}
  .dcvoice__show{display:block;margin:8px auto 2px;height:34px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--dcSurf);color:var(--ink);font-size:13px;font-weight:700;cursor:pointer}
  @keyframes dcRecP{from{opacity:1}to{opacity:.55}}
  /* Долгое нажатие: реакции и меню поверх затемнения */
  .dcpop{position:absolute;inset:0;z-index:20}
  .dcpop__bg{position:absolute;inset:0;background:rgba(15,20,25,.28);backdrop-filter:blur(var(--gb-s));-webkit-backdrop-filter:blur(var(--gb-s))}
  .dcpop__box{position:absolute;left:16px;right:16px;display:flex;flex-direction:column;gap:8px}
  .dcpop__box.r{align-items:flex-end}
  .dcpop__emo{display:flex;gap:2px;padding:6px 8px;border-radius:999px;background:var(--dcSurf);box-shadow:0 8px 24px rgba(0,0,0,.18)}
  .dcpop__emo button{width:40px;height:40px;border-radius:999px;border:0;background:transparent;font-size:24px;cursor:pointer}
  .dcpop__emo button.me{background:var(--blue-a2)}
  .dcpop__menu{width:250px;max-width:100%;border-radius:16px;background:var(--dcSurf);box-shadow:0 8px 24px rgba(0,0,0,.18);overflow:hidden}
  .dcpop__menu button{display:flex;align-items:center;gap:14px;width:100%;height:48px;padding:0 16px;border:0;background:transparent;color:var(--ink);font-size:15px;text-align:left;cursor:pointer}
  .dcpop__menu button+button{border-top:1px solid var(--dcSep)}
  .dcpop__menu button .eic{width:20px;height:20px}
  .dcpop__menu button.bad{color:var(--err)}
  .dcpop__msg{position:absolute!important;margin:0!important;max-width:none!important;pointer-events:none;z-index:1}
  .dcpop__box{z-index:2}
  /* Поиск по переписке */
  .dcgs{display:flex;flex-direction:column}
  .dcgs__hd{gap:6px}
  .dcgs__q{flex:1;display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;border-radius:999px;background:var(--dcSurf);box-shadow:var(--dcShadow)}
  .dcgs__q .eic{width:18px;height:18px;color:var(--muted)}
  .dcgs .dcgs__q input{flex:1;min-width:0;height:auto;margin:0;padding:0;border-radius:0;outline:0;font-size:15.5px;color:var(--ink)}
  /* Поле внутри «таблетки» поиска — без своей рамки и стекла: их даёт сама таблетка. */
  .dcgs .dcgs__q input:not([type=checkbox]):not([type=radio]){background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .dcgs__x{width:36px;height:36px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-size:22px;cursor:pointer}
  .dcgs__chips{display:flex;gap:8px;overflow-x:auto;padding:4px 16px 10px;scrollbar-width:none}
  .dcgs__chips::-webkit-scrollbar{display:none}
  .dcgs__chips button{flex:0 0 auto;height:34px;padding:0 16px;border-radius:999px;border:0;background:var(--dcSurf);color:var(--ink);font-size:13.5px;font-weight:700;cursor:pointer}
  .dcgs__chips button.on{background:#2F9E44;color:#fff}
  .dcgs__chips button[data-dcgk="order"].on{background:var(--blue-a2);color:var(--ink)}
  .dcgs__list{flex:1;overflow-y:auto;margin:0 16px;border-radius:20px;background:var(--dcSurf);padding:0 12px}
  .dcgs__list:empty{display:none}
  .dcgs__r{display:flex;gap:12px;align-items:flex-start;width:100%;padding:12px 0;border:0;background:transparent;text-align:left;color:var(--ink);cursor:pointer}
  .dcgs__r+.dcgs__r{border-top:1px solid var(--dcSep)}
  .dcgs__th,.dcgs__av{width:48px;height:48px;flex:0 0 48px;border-radius:12px;object-fit:cover;background:var(--dcIco);display:grid;place-items:center}
  .dcgs__th .eic{width:20px;height:20px;color:var(--muted)}
  .dcgs__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .dcgs__m b{font-size:15px;font-weight:800}
  .dcgs__m>span{font-size:13px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .dcgs__m>.dcgs__p{color:var(--ink);font-weight:600}
  .dcgs__st{display:flex!important;align-items:center;gap:5px;color:var(--ink)!important;font-weight:700}
  .dcgs__st .eic{width:15px;height:15px;padding:2px;border-radius:999px;background:#2F9E44;color:#fff;stroke-width:3}
  .dcgs__st.bad .eic{background:var(--err)}
  .dcgs__rt{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
  .dcgs__rt img{width:44px;height:44px;border-radius:10px;object-fit:cover}
  .dcgs__w{font-size:12px;color:var(--muted);white-space:nowrap}
  .dcgs__ft{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px calc(12px + var(--sab))}
  .dcgs__ft span{flex:1;padding:12px 16px;border-radius:999px;background:var(--dcSurf);font-size:13px;color:var(--muted)}
  .dcgs__ft span:empty{visibility:hidden}
  .dcgs__up{width:48px;height:48px;flex:0 0 48px;border-radius:999px;border:0;background:var(--lime);color:#141a05;display:grid;place-items:center;cursor:pointer}
  .dcgs__up .eic{width:20px;height:20px;stroke-width:2.4}
  .dcgsrow{display:flex;align-items:center;gap:10px;width:calc(100% - 32px);margin:0 16px 8px;padding:12px 14px;border-radius:16px;border:0;background:var(--dcSurf);color:var(--ink);font-size:14px;font-weight:700;text-align:left;cursor:pointer}
  .dcgsrow span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcgsrow .eic{width:18px;height:18px;color:var(--muted)}
  /* 📣 Пост канала как в Telegram: имя канала, текст, реакции и просмотры —
     внутри пузыря; снизу — комментарии; справа — «переслать». */
  .dcpostw{align-self:stretch;display:flex;align-items:flex-end;gap:8px;max-width:100%}
  .dcpostw>.dcm--chan{flex:1;min-width:0;width:auto}
  .dcm--chan>.dcpost__ft{margin:8px 0 0}
  .dcm--post>.dcpost__ft{padding:0 16px 10px;margin:0}
  .dcpost__fw{width:36px;height:36px;flex:0 0 36px;border-radius:999px;border:0;background:var(--dcSurf);color:var(--muted);box-shadow:var(--dcShadow);display:grid;place-items:center;cursor:pointer}
  .dcpost__fw .eic{width:18px;height:18px}
  .dcpost__cm{display:flex;align-items:center;gap:10px;width:calc(100% + 24px);margin:8px -12px -7px;padding:10px 12px;border:0;border-top:1px solid var(--dcSep);border-radius:0 0 20px 20px;background:transparent;color:var(--blue);font:inherit;font-size:14.5px;font-weight:700;text-align:left;cursor:pointer}
  .dcm--post>.dcpost__cm{width:100%;margin:0;padding:10px 16px}
  .dcpost__cm>span:not(.dcpost__cmav){flex:1}
  .dcpost__cm>.eic{width:20px;height:20px}
  .dcpost__cm>.eic:last-child{width:16px;height:16px;color:var(--muted)}
  .dcpost__cmav{display:flex;padding-right:8px}
  .dcpost__cmav .dcav{width:24px;height:24px;flex:0 0 24px;font-size:11px;margin-right:-8px;box-shadow:0 0 0 2px var(--dcIn)}
  .dcm__fwd{display:flex;align-items:center;gap:5px;margin-bottom:4px;font-size:12.5px;font-weight:700;color:var(--blue);white-space:normal}
  .dcm__fwd .eic{width:14px;height:14px}
  /* «Назад» со счётчиком непрочитанного в других чатах */
  .dchd__back{position:relative}
  .dchd__cnt{position:absolute;top:2px;right:-4px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--blue);color:#fff;font-size:11.5px;font-weight:800;line-height:20px;text-align:center}
  /* Колокольчик (тихо) и часы (отложить) в поле админа канала */
  .dcbar__in:has(.dcbar__opt){padding-right:12px}
  .dcbar__in textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcbar__opt{width:30px;height:30px;flex:0 0 30px;margin-right:-6px;border-radius:999px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
  .dcbar__opt+.dcbar__opt{margin-left:6px}
  .dcbar__opt .eic{width:20px;height:20px}
  .dcbar__opt.on{color:var(--blue)}
  .dcsch__x{margin-left:auto;width:32px;height:32px;flex:0 0 32px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}
  /* 📍 Карта из плиток OpenStreetMap и карточка геопозиции */
  .dcmap{position:relative;overflow:hidden;border-radius:16px;background:#dfe6da}
  .dcmap img{position:absolute;width:256px;height:256px;max-width:none}
  .dcmap__pin{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:999px;background:#2f7cf6;border:3px solid #fff;box-shadow:0 0 0 9px rgba(47,124,246,.22)}
  .dcmap__c{position:absolute;right:4px;bottom:3px;padding:1px 5px;border-radius:6px;background:rgba(255,255,255,.82);color:#333;font-size:11px}
  .dcmap--wait{display:grid;place-items:center;align-content:center;gap:10px;padding:0 20px;color:var(--muted);font-size:14px;text-align:center}
  .dcgeo{display:flex;flex-direction:column;gap:8px;width:240px;max-width:100%;white-space:normal}
  .dcgeo .dcmap{width:100%;border-radius:12px}
  .dcgeo__m{display:flex;flex-direction:column;gap:2px}
  .dcgeo__m b{display:flex;align-items:center;gap:6px;font-size:15px}
  .dcgeo__m span{font-size:12.5px;opacity:.7}
  .dcgeo__dot{width:8px;height:8px;flex:0 0 8px;border-radius:999px;background:#2F9E44;animation:dcRecP 1s var(--e-out) infinite alternate}
  .dcgeo__acts{display:flex;gap:6px}
  .dcgeo__acts button{flex:1;height:36px;border-radius:999px;border:0;background:rgba(127,127,127,.14);color:inherit;font:inherit;font-size:13.5px;font-weight:700;cursor:pointer}
  .dcgeo__acts button.bad{color:var(--err)}
  .dcgeo__ic{width:40px;height:40px;flex:0 0 40px;border-radius:999px;background:#2f7cf6;color:#fff;display:grid;place-items:center}
  .dcgeo__ic .eic{width:20px;height:20px}
  .dcgeo__ic--live{background:#2F9E44}
  /* 📎 Вложения: содержимое вкладки сверху, панель вкладок снизу */
  .dcat2{display:flex;flex-direction:column;min-height:56vh}
  .dcat2__hd{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;margin:-6px -4px 8px}
  .dcat2__hd b{text-align:center;font-size:17px;font-weight:800}
  .dcat2__x{width:36px;height:36px;border-radius:999px;border:0;background:transparent;color:var(--ink);font-size:26px;line-height:1;cursor:pointer}
  .dcat2__p{flex:1;overflow-y:auto}
  .dcat2__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;border-radius:12px;overflow:hidden}
  .dcat2__tile{position:relative;aspect-ratio:1;padding:0;border:0;background:rgba(127,127,127,.12);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:12.5px;font-weight:700;overflow:hidden;cursor:pointer}
  .dcat2__tile .eic{width:28px;height:28px}
  .dcat2__cam{background:#111418;color:#fff}
  .dcat2__ph img,.dcat2__ph video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--d-2) var(--e-out)}
  .dcat2__ph.on img,.dcat2__ph.on video{transform:scale(.88);border-radius:10px}
  .dcat2__ph i{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:999px;border:2px solid #fff;background:rgba(0,0,0,.2);color:#fff;font-style:normal;font-size:12.5px;font-weight:800;display:grid;place-items:center}
  .dcat2__ph.on i{background:var(--blue)}
  .dcat2__send{display:flex;gap:8px;margin-top:10px}
  .dcat2__send input{flex:1;min-width:0}
  .dcat2__send button{height:44px;padding:0 18px;border-radius:999px;border:0;background:var(--lime);color:#141a05;font:inherit;font-weight:800;cursor:pointer}
  .dcat2 .dcset__l b,.dcat2 .dcset__l small{display:block}
  .dcat2 .dcset__l small{margin-top:2px}
  .dcat2__file{display:flex;flex-direction:column;align-items:center;gap:12px;padding:30px 16px;color:var(--muted);font-size:14px;text-align:center}
  .dcat2__file>.eic{width:44px;height:44px;color:var(--blue)}
  .dcat2__tabs{display:flex;gap:2px;margin:12px -12px -4px;padding:8px 8px 0;border-top:1px solid var(--dcSep);overflow-x:auto;scrollbar-width:none}
  .dcat2__tabs::-webkit-scrollbar{display:none}
  .dcat2__tabs button{flex:1 0 62px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:4px 2px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:11.5px;font-weight:700;cursor:pointer}
  .dcat2__tabs i{width:44px;height:44px;border-radius:999px;background:rgba(127,127,127,.12);display:grid;place-items:center;transition:background var(--d-2) var(--e-out)}
  .dcat2__tabs i .eic{width:21px;height:21px}
  .dcat2__tabs button.on{color:var(--blue)}
  .dcat2__tabs button.on i{background:var(--blue);color:#fff}
  /* 🔔 Плашка о новом сообщении в другом чате */
  .dcban{position:fixed;top:calc(8px + var(--sat));left:12px;right:12px;max-width:520px;margin:0 auto;z-index:75;display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:20px;background:var(--dcSurf);color:var(--ink);box-shadow:0 8px 28px rgba(0,0,0,.18);font:inherit;text-align:left;cursor:pointer;animation:dcBanIn var(--d-2) var(--e-out);transition:transform var(--d-2) var(--e-out),opacity var(--d-2) var(--e-out)}
  .dcban.out{transform:translateY(-130%);opacity:0}
  @keyframes dcBanIn{from{transform:translateY(-130%)}}
  .dcban .dcav{width:40px;height:40px;flex:0 0 40px;font-size:16px}
  .dcban__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .dcban__m b{font-size:15px}
  .dcban__m i{font-style:normal;font-size:13.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcban__t{align-self:flex-start;font-size:12px;color:var(--muted)}
  /* 🎙 Запись голосового: полоса поверх поля, большой микрофон, замок сверху */
  .dcbar--rec .dcbar__send{display:none}
  .dcbar--rec .dcbar__ic.on{position:relative;z-index:3;width:44px;flex-basis:44px;background:var(--blue);color:#fff;transform:translateX(-8px) scale(1.5);transition:transform var(--d-2) var(--e-out)}
  .dcbar--rec .dcbar__ic.on .eic{width:18px;height:18px}
  .dcvrec{position:absolute;left:12px;right:76px;top:8px;height:44px;z-index:2;display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:999px;background:var(--dcSurf);box-shadow:var(--dcShadow)}
  .dcvrec__dot{width:10px;height:10px;flex:0 0 10px;border-radius:999px;background:var(--err);animation:dcRecP 1s var(--e-out) infinite alternate}
  .dcvrec__dot.off{animation:none;opacity:.35}
  .dcvrec b{min-width:70px;color:var(--ink);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
  .dcvrec__slide{flex:1;display:flex;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:14.5px;white-space:nowrap}
  .dcvrec__slide .eic{width:16px;height:16px}
  .dcvrec__x{margin-left:auto;padding:8px;border:0;background:transparent;color:var(--blue);font:inherit;font-size:15px;font-weight:700;cursor:pointer}
  .dcvrec__play{width:32px;height:32px;flex:0 0 32px;border-radius:999px;border:0;background:rgba(127,127,127,.14);color:var(--ink);display:grid;place-items:center;cursor:pointer}
  .dcvrec__play .eic{width:16px;height:16px}
  .dcvlock{position:absolute;right:22px;bottom:calc(100% + 26px);z-index:3;width:40px;padding:10px 0;border-radius:999px;background:var(--dcSurf);box-shadow:0 4px 16px rgba(0,0,0,.15);color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:4px}
  .dcvlock .eic{width:18px;height:18px}
  .dcvlock>.eic:last-child{width:14px;height:14px;transform:rotate(90deg)}
  .dcvlock--on{padding:0}
  .dcvlock button{width:40px;height:40px;border-radius:999px;border:0;background:transparent;color:var(--err);display:grid;place-items:center;cursor:pointer}
  .dcvlock__tip{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);width:max-content;max-width:220px;padding:8px 12px;border-radius:12px;background:#111418;color:#fff;font-size:13px;font-weight:600}
  /* Листы в духе макетов: шапка с крестиком, группы строк, переключатели */
  .dcfl__hd{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;margin:-6px -4px 10px}
  .dcfl__hd b{grid-column:2;text-align:center;font-size:17px;font-weight:800}
  .dcfl__x{grid-column:3;width:36px;height:36px;border-radius:999px;border:0;background:transparent;color:var(--ink);font-size:26px;line-height:1;cursor:pointer}
  .dcfl__h{margin:12px 2px 6px;font-size:13px;font-weight:800;color:var(--muted)}
  .dcfl__g,.dcnrs{border-radius:16px;background:var(--dcSurf);box-shadow:var(--dcShadow);overflow:hidden}
  .dcfl__r{display:flex;align-items:center;gap:12px;width:100%;min-height:50px;padding:0 14px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:15.5px;text-align:left;cursor:pointer}
  .dcfl__r+.dcfl__r{border-top:1px solid var(--dcSep)}
  .dcfl__r>span:not(.dcsw){flex:1}
  .dcfl__r>b{font-size:14px;color:var(--muted);font-weight:700}
  .dcfl__r.on{background:rgba(216,255,52,.22)}
  .dcfl__ic{width:22px;height:22px;display:grid;place-items:center;font-style:normal;color:var(--ink)}
  .dcfl__ic .eic{width:20px;height:20px}
  .dcfl .btn{margin-top:14px}
  .dcfl__reset{display:block;margin:10px auto 0;border:0;background:transparent;color:var(--muted);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
  .dcnr{display:flex;align-items:center;gap:12px;padding:11px 14px}
  .dcnr+.dcnr{border-top:1px solid var(--dcSep)}
  .dcnr__ic{width:36px;height:36px;flex:0 0 36px;border-radius:999px;background:var(--c);color:#fff;display:grid;place-items:center}
  .dcnr__ic .eic{width:18px;height:18px}
  .dcnr__m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .dcnr__m b{font-size:15px}
  .dcnr__m small{font-size:12.5px;color:var(--muted)}
  .dcblk__who{display:flex;flex-direction:column;align-items:center;gap:4px;margin:6px 0 12px}
  .dcblk__who .dcav{width:72px;height:72px;flex:0 0 72px;font-size:28px}
  .dcblk__who b{font-size:19px;margin-top:6px}
  .dcblk__who span{font-size:13.5px;color:#2F9E44;font-weight:700}
  .dcblk__s{font-size:14.5px;line-height:1.45;color:var(--ink);margin:0 0 12px}
  .dcblk__box{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;background:rgba(216,255,52,.2);margin-bottom:16px}
  .dcblk__box div{display:flex;align-items:center;gap:10px;font-size:14px}
  .dcblk__box .eic{width:18px;height:18px;flex:0 0 18px;color:#2F9E44}
  .dcblk__go{background:#111418;color:#fff;margin-bottom:8px}
  .dcrep__g{display:flex;flex-direction:column}
  .dcrep__r{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 4px;border:0;border-bottom:1px solid var(--dcSep);background:transparent;color:var(--ink);font:inherit;font-size:15.5px;text-align:left;cursor:pointer}
  .dcrep__r i{width:22px;height:22px;flex:0 0 22px;border-radius:999px;border:2px solid var(--line);box-sizing:border-box;transition:border var(--d-2) var(--e-out)}
  .dcrep__r.on i{border:7px solid #2F9E44}
  .dcrep textarea{width:100%;resize:none}
  .dcrep__n{text-align:right;font-size:12px;color:var(--muted);margin:4px 2px 0}
  .dcrep .btn{margin-top:12px}
  .dcshr__p{display:flex;gap:12px;padding:12px;border-radius:16px;background:var(--dcSurf);box-shadow:var(--dcShadow)}
  .dcshr__p>img,.dcshr__p>i{width:86px;height:86px;flex:0 0 86px;border-radius:12px;object-fit:cover;background:rgba(127,127,127,.12);display:grid;place-items:center}
  .dcshr__p>div{min-width:0;display:flex;flex-direction:column;gap:3px}
  .dcshr__p b{font-size:16px}
  .dcshr__p span{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dcshr__p em{font-style:normal;font-size:17px;font-weight:900;margin-top:2px}
  .dcshr__p small{align-self:flex-start;padding:3px 10px;border-radius:999px;background:rgba(216,255,52,.35);font-size:12px;font-weight:800}
  .dcshr__q{display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;border-radius:999px;background:rgba(127,127,127,.12);color:var(--muted)}
  .dcshr__q .eic{width:18px;height:18px}
  .dcshr__q input{flex:1;min-width:0;height:auto;margin:0;padding:0;border-radius:0;outline:0;font:inherit;font-size:15px;color:var(--ink)}
  .dcshr .dcshr__q input:not([type=checkbox]):not([type=radio]){background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .dcshr__l{max-height:40vh;overflow-y:auto;margin-top:6px}
  .dcshr__r{display:flex;align-items:center;gap:12px;width:100%;padding:8px 2px;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
  .dcshr__r .dcav{width:44px;height:44px;flex:0 0 44px;font-size:17px}
  .dcshr__r>span:not(.dcav){flex:1;min-width:0;display:flex;flex-direction:column}
  .dcshr__r b{font-size:15px}
  .dcshr__r small{font-size:12.5px;color:var(--muted)}
  .dcshr__r>i{width:24px;height:24px;flex:0 0 24px;border-radius:999px;border:2px solid var(--line);box-sizing:border-box;display:grid;place-items:center;color:transparent;font-style:normal}
  .dcshr__r>i .eic{width:14px;height:14px}
  .dcshr__r.on>i{background:#2F9E44;border-color:#2F9E44;color:#fff}
  .dcshr .btn{margin-top:12px}
  .dcemp{margin:auto;display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 28px;text-align:center}
  .dcemp__art{width:150px;height:150px;border-radius:999px;background:radial-gradient(circle at 50% 45%,rgba(28,126,214,.16),rgba(28,126,214,.04) 70%),var(--dcBg);display:grid;place-items:center;margin-bottom:10px}
  .dcemp__art i{width:76px;height:76px;border-radius:28px;background:var(--dcSurf);box-shadow:var(--dcShadow);display:grid;place-items:center;font-style:normal;color:#1C7ED6}
  .dcemp__art .eic{width:38px;height:38px;stroke-width:1.8}
  .dcemp b{font-size:19px;font-weight:800;color:var(--ink)}
  .dcemp span{font-size:14.5px;line-height:1.45;color:var(--muted);max-width:290px}
  .dcemp__go{width:auto;min-width:220px;margin-top:14px;padding-left:28px;padding-right:28px}
  .dcs__hrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding-top:12px;border-top:1px solid var(--dcSep)}
  .dcs__hrow .dcs__h{margin:0;padding-top:0;border-top:0}
  .dcs__imp{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:#1C7ED6;font:inherit;font-size:13.5px;font-weight:800;cursor:pointer;padding:6px 0}
  .dcs__imp .eic{width:16px;height:16px}
  .dcs__tg{margin-left:6px;padding:1px 6px;border-radius:999px;background:rgba(28,126,214,.12);color:#1C7ED6;font-size:11px;font-style:normal;font-weight:800;vertical-align:2px}
  .dcs__c--inv{cursor:default}
  .dcs__inv{flex:0 0 auto;height:34px;padding:0 14px;border-radius:999px;border:0;background:var(--lime);color:#141a05;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
  .dcs__rm{flex:0 0 auto;width:30px;height:30px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
  /* Перевод, запрос фото, проверка, сделка, сводка */
  .dctr{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:12px;opacity:.75;white-space:normal}
  .dctr .eic{width:13px;height:13px}
  .dctr button{border:0;background:transparent;padding:0;color:#1C7ED6;font:inherit;font-weight:800;cursor:pointer}
  .dctrbar{display:flex;align-items:center;gap:8px;margin:0 12px 6px;padding:7px 12px;border-radius:999px;background:var(--dcSurf);box-shadow:var(--dcShadow);font-size:13px;color:var(--ink)}
  .dctrbar .eic{width:15px;height:15px;color:#1C7ED6}
  .dctrbar b{flex:1;font-weight:700}
  .dctrbar button{border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
  .dcqr button .eic{width:15px;height:15px;margin-right:5px;vertical-align:-3px}
  .dcpq{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .dcpq__r{position:relative;display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 10px;border-radius:16px;border:2px solid transparent;background:var(--dcSurf);box-shadow:var(--dcShadow);color:var(--ink);font:inherit;font-size:14px;font-weight:700;text-align:left;cursor:pointer}
  .dcpq__r i{width:32px;height:32px;flex:0 0 32px;border-radius:12px;background:rgba(127,127,127,.12);display:grid;place-items:center;font-style:normal}
  .dcpq__r i .eic{width:17px;height:17px}
  .dcpq__r em{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:999px;background:#2F9E44;color:#fff;display:none;place-items:center}
  .dcpq__r em .eic{width:11px;height:11px}
  .dcpq__r.on{border-color:#2F9E44}
  .dcpq__r.on em{display:grid}
  .dcpqc{display:flex;flex-direction:column;gap:6px;min-width:230px;white-space:normal}
  .dcpqc__h{display:flex;align-items:center;gap:8px;font-size:14.5px}
  .dcpqc__h span{width:28px;height:28px;border-radius:999px;background:var(--lime);color:#141a05;display:grid;place-items:center}
  .dcpqc__h .eic{width:15px;height:15px}
  .dcpqc__s{font-size:13.5px;opacity:.8}
  .dcpqc__r{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:rgba(127,127,127,.1);font-size:14px;font-weight:600}
  .dcpqc__r i{display:grid;place-items:center;font-style:normal}
  .dcpqc__r .eic{width:17px;height:17px}
  .dcpqc__go{display:flex;align-items:center;justify-content:center;gap:8px;height:44px;margin-top:4px;border-radius:999px;border:0;background:var(--lime);color:#141a05;font:inherit;font-size:14.5px;font-weight:800;cursor:pointer}
  .dcpqc__go .eic{width:17px;height:17px}
  .dcpqc__done,.dcpqc__wait{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:13px;font-weight:700}
  .dcpqc__done{color:#2F9E44}
  .dcpqc__done .eic{width:15px;height:15px}
  .dcpqc__wait{opacity:.65}
  .dcchk{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:10px 12px;border-radius:16px;background:rgba(47,158,68,.08);white-space:normal}
  .dcchk__h{display:flex;align-items:center;gap:8px;font-size:14px}
  .dcchk__h .eic{width:18px;height:18px;color:#2F9E44}
  .dcchk__r{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;line-height:1.35}
  .dcchk__r .eic{width:16px;height:16px;flex:0 0 16px;margin-top:1px}
  .dcchk__r--ok .eic{color:#2F9E44}
  .dcchk__r--warn .eic{color:#E8590C}
  .dcchk__r--bad .eic{color:var(--err)}
  .dcchk__n{font-size:11.5px;opacity:.65;margin-top:2px}
  .dcoc--deal .dcoc__h b{flex:1;color:#2F9E44}
  .dcoc__it{display:flex;gap:12px;align-items:center}
  .dcoc__it img,.dcoc__it .dcoc__ic{width:64px;height:64px;flex:0 0 64px;border-radius:12px;object-fit:cover}
  .dcoc__it>div{min-width:0;display:flex;flex-direction:column;gap:3px}
  .dcoc__it>div b{font-size:15.5px}
  .dcoc__it>div span{font-size:13.5px;color:var(--muted)}
  .dcoc__it .dcoc__st{align-self:flex-start;font-style:normal}
  .dcoc--deal .dcoc__go{margin-top:12px}
  .dcoc__prob{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:8px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
  .dcoc__prob .eic{width:14px;height:14px}
  .dcsafe{display:flex;align-items:center;gap:8px;width:calc(100% - 24px);margin:0 12px 6px;padding:8px 12px;border:0;border-radius:999px;background:rgba(47,158,68,.12);color:#2F9E44;font:inherit;font-size:13px;font-weight:800;text-align:left;cursor:pointer}
  .dcsafe span{flex:1}
  .dcsafe .eic{width:16px;height:16px}
  .dcsafe__g,.dcsum__g{border-radius:16px;background:var(--dcSurf);box-shadow:var(--dcShadow);overflow:hidden}
  .dcsafe__r{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;font-size:14px;line-height:1.4}
  .dcsafe__r+.dcsafe__r,.dcsum__r+.dcsum__r{border-top:1px solid var(--dcSep)}
  .dcsafe__r i{width:30px;height:30px;flex:0 0 30px;border-radius:999px;background:rgba(47,158,68,.14);color:#2F9E44;display:grid;place-items:center;font-style:normal}
  .dcsafe__r i .eic{width:16px;height:16px}
  .dcsum__r{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;font-size:14px}
  .dcsum__r span{color:var(--muted)}
  .dcsum__r b{text-align:right}
  /* Закрепы, упоминания, напоминание, защита, переговоры */
  .dcpins{margin:0 12px 6px;border-radius:16px;background:var(--dcSurf);box-shadow:var(--dcShadow);overflow:hidden}
  .dcpins__h{display:flex;align-items:center;gap:8px;width:100%;padding:9px 14px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}
  .dcpins__h .eic{width:16px;height:16px}
  .dcpins__h b{flex:1}
  .dcpins__go{width:16px;height:16px;color:var(--muted);transition:transform var(--d-2) var(--e-out)}
  .dcpins--fold .dcpins__h .dcpins__go{transform:rotate(180deg)}
  .dcpins__r{display:flex;align-items:center;gap:12px;padding:9px 14px;border-top:1px solid var(--dcSep);cursor:pointer}
  .dcpins__r i{width:30px;height:30px;flex:0 0 30px;border-radius:12px;background:var(--cb);color:var(--c);display:grid;place-items:center;font-style:normal}
  .dcpins__r i .eic{width:16px;height:16px}
  .dcpins__r span{flex:1;min-width:0;display:flex;flex-direction:column}
  .dcpins__r b{font-size:14.5px}
  .dcpins__r small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcpins__x{width:28px;height:28px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
  .dcmen{color:#1C7ED6;font-weight:700}
  .dcmen--me{padding:0 4px;border-radius:6px;background:rgba(28,126,214,.14)}
  .dcmenbox{margin:0 12px 6px;border-radius:16px;background:var(--dcSurf);box-shadow:var(--dcShadow);overflow:hidden}
  .dcmenbox button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
  .dcmenbox button+button{border-top:1px solid var(--dcSep)}
  .dcmenbox .dcav{width:34px;height:34px;flex:0 0 34px;font-size:14px}
  .dcmenbox span{display:flex;flex-direction:column}
  .dcmenbox small{font-size:12.5px;color:var(--muted)}
  .dcpay{display:flex;flex-direction:column;gap:10px;min-width:250px;white-space:normal}
  .dcpay__h{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(216,255,52,.35);font-size:14.5px}
  .dcpay__h .eic{width:17px;height:17px;color:#2F9E44}
  .dcpay__it{display:flex;gap:12px;align-items:center;padding:10px;border-radius:16px;background:rgba(127,127,127,.08)}
  .dcpay__it img,.dcpay__it i{width:64px;height:64px;flex:0 0 64px;border-radius:12px;object-fit:cover;background:rgba(127,127,127,.12);display:grid;place-items:center;font-style:normal}
  .dcpay__it div{display:flex;flex-direction:column;gap:3px;min-width:0}
  .dcpay__it span{font-size:13.5px;opacity:.75}
  .dcpay__s{font-size:13.5px;line-height:1.4}
  .dcpay__go,.dcpay__later{height:44px;border-radius:999px;font:inherit;font-size:14.5px;font-weight:800;cursor:pointer}
  .dcpay__go{border:0;background:var(--lime);color:#141a05}
  .dcpay__later{border:1px solid var(--line);background:transparent;color:inherit}
  .dcsafecard{align-self:stretch;display:flex;flex-direction:column;gap:8px;margin:4px 0 8px;padding:14px;border-radius:20px;background:rgba(216,255,52,.18);border:1px solid rgba(47,158,68,.25)}
  .dcsafecard__h{display:flex;align-items:center;gap:10px;font-size:16px}
  .dcsafecard__h i{width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#2F9E44;color:#fff;display:grid;place-items:center;font-style:normal}
  .dcsafecard__h i .eic{width:20px;height:20px}
  .dcsafecard__r{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink)}
  .dcsafecard__r .eic{width:16px;height:16px;color:#2F9E44}
  .dcsafecard__go{height:42px;margin-top:4px;border-radius:999px;border:1px solid var(--line);background:var(--dcSurf);color:var(--ink);font:inherit;font-size:14px;font-weight:800;cursor:pointer}
  .dcnego__cnt{color:#2F9E44}
  .dcnego__fix{margin-top:12px;padding:14px;border-radius:20px;background:rgba(216,255,52,.25);border:1px solid rgba(47,158,68,.3)}
  .dcnego__fh{display:flex;gap:12px;align-items:center}
  .dcnego__fh i{width:40px;height:40px;flex:0 0 40px;border-radius:12px;background:#2F9E44;color:#fff;display:grid;place-items:center;font-style:normal}
  .dcnego__fh i .eic{width:20px;height:20px}
  .dcnego__fh div{display:flex;flex-direction:column}
  .dcnego__fh b{font-size:16px}
  .dcnego__fh span{font-size:14px;font-weight:800}
  .dcnego__hold{margin-top:8px;font-size:13px;color:var(--muted)}
  .dcnego__pay{width:100%;height:48px;margin-top:10px;border-radius:999px;border:0;background:#111418;color:#fff;font:inherit;font-size:15px;font-weight:800;cursor:pointer}
  .dcnego__h{align-items:center;justify-content:flex-start}
  .dcnego__h .eic{width:16px;height:16px;flex:0 0 16px}
  .dcnego__h--ok .eic{color:#2F9E44}
  .dcnego__h--bad .eic{color:var(--err)}
  .dcnego__h b{flex:1;text-align:left}
  /* Поле ввода */
  .dcbar{display:flex;align-items:flex-end;gap:8px;padding:8px 12px calc(10px + var(--sab));position:relative;z-index:2}
  .dcbar__plus,.dcbar__send{width:44px;height:44px;flex:0 0 44px;border-radius:999px;border:0;display:grid;place-items:center;cursor:pointer}
  .dcbar__plus{background:var(--dcSurf);color:var(--ink);box-shadow:var(--dcShadow)}
  .dcbar__plus .eic{width:22px;height:22px;stroke-width:2}
  .dcbar__send{background:var(--lime);color:#141a05}
  .dcbar__send .eic{width:20px;height:20px;stroke-width:2;transform:translateX(-1px)}
  .dcbar__in{flex:1;min-width:0;min-height:44px;border-radius:20px;background:var(--dcSurf);box-shadow:var(--dcShadow);display:flex;align-items:center;padding:0 16px}
  .dcbar__tpl{width:30px;height:30px;flex:0 0 30px;margin:0 6px 0 -8px;border-radius:999px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
  .dcbar__tpl .eic{width:19px;height:19px}
  .dcbar__in textarea{flex:1;border:0;background:transparent;outline:0;resize:none;font:inherit;font-size:15.5px;line-height:1.35;color:var(--ink);padding:11px 0;max-height:110px}
  .dcbar__ro{flex:1;text-align:center;font-size:13.5px;color:var(--muted);padding:12px}
  .dcreply{position:relative;z-index:2;display:flex;align-items:center;gap:10px;margin:0 12px;padding:8px 12px;border-radius:12px 14px 0 0;background:var(--dcSurf);border-left:3px solid var(--blue);font-size:13px}
  .dcreply div{flex:1;min-width:0}
  .dcreply b{display:block;color:var(--blue);font-size:12px}
  .dcreply span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
  .dcreply button{border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer}
  .dcqr{display:flex;gap:6px;overflow-x:auto;padding:4px 12px 0;position:relative;z-index:2;scrollbar-width:none}
  .dcqr::-webkit-scrollbar{display:none}
  .dcqr button{flex:0 0 auto;height:34px;padding:0 14px;border-radius:999px;border:0;background:var(--dcSurf);color:var(--ink);font-size:13.5px;font-weight:600;box-shadow:var(--dcShadow);cursor:pointer}
  .dcdown{position:absolute;right:14px;bottom:78px;z-index:3;width:40px;height:40px;border-radius:999px;border:0;background:var(--dcSurf);color:var(--ink);box-shadow:0 6px 16px rgba(0,0,0,.18);display:none;place-items:center}
  /* Действия над сообщением */
  /* Настройки чата, поиск: экран поверх переписки */
  .dcpage{position:absolute;inset:0;z-index:5;background:var(--dcSet);display:flex;flex-direction:column;overflow-y:auto;animation:dcIn var(--d-2) var(--e-out)}
  @keyframes dcIn{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
  .dcpage__hd{display:flex;align-items:center;gap:8px;padding:calc(10px + var(--tgtop)) 12px 6px}
  .dcpage__hd h3{flex:1;text-align:center;font-size:17px;font-weight:800;margin:0;color:var(--ink);padding-right:40px}
  .dcpage__b{padding:8px 16px calc(24px + var(--sab));display:flex;flex-direction:column;gap:14px}
  .dcset__me{display:flex;align-items:center;gap:14px;padding:16px;border-radius:20px;background:var(--dcSurf)}
  .dcset__me .dcav{width:64px;height:64px;flex:0 0 64px;font-size:26px}
  .dcset__mt{min-width:0}
  .dcset__mt b{display:flex;align-items:center;gap:6px;font-size:19px;font-weight:800;color:var(--ink)}
  .dcset__mt i{display:block;font-style:normal;font-size:14px;color:var(--muted);margin-top:3px}
  .dcset__g{border-radius:20px;background:var(--dcSurf);overflow:hidden}
  .dcset__r{display:flex;align-items:center;gap:14px;width:100%;min-height:56px;padding:0 16px;border:0;background:transparent;color:var(--ink);font-size:16px;font-weight:500;text-align:left;cursor:pointer}
  .dcset__r+.dcset__r{border-top:1px solid var(--dcSep)}
  .dcset__r>.eic:first-child{width:22px;height:22px;color:var(--ink);opacity:.8}
  .dcset__l{flex:1}
  .dcset__r .chev{width:18px;height:18px;color:var(--muted)}
  .dcset__r.bad{color:var(--err)}
  .dcset__r.bad>.eic:first-child{color:var(--err);opacity:1}
  .dcset__r small{font-size:13px;color:var(--muted);font-weight:500}
  .dcsw{width:50px;height:30px;flex:0 0 50px;border-radius:999px;background:var(--dcPill);position:relative;transition:background var(--d-2) var(--e-out)}
  .dcsw::after{content:'';position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:999px;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:transform var(--d-2) var(--e-out)}
  .dcsw.on{background:#8CCB2E}
  .dcsw.on::after{transform:translateX(20px)}
  .dcbgs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .dcbgs button{height:92px;border-radius:16px;border:2px solid transparent;cursor:pointer;font-weight:700;font-size:13px;color:#1E2433}
  .dcbgs button.on{border-color:var(--blue)}
  /* Поиск */
  .dcs__t{font-size:30px;font-weight:900;letter-spacing:-.6px;color:var(--ink);margin:0}
  .dcs__q{display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;border-radius:16px;background:var(--dcChip)}
  .dcs__q .eic{width:19px;height:19px;color:var(--muted)}
  .dcs__q input{flex:1;min-width:0;border:0;background:transparent;outline:0;font-size:15.5px;color:var(--ink)}
  .dcs__acts{display:flex;flex-direction:column}
  .dcs__a{display:flex;align-items:center;gap:16px;height:60px;border:0;background:transparent;color:var(--ink);font-size:16px;font-weight:600;cursor:pointer;text-align:left;padding:0}
  .dcs__a i{width:46px;height:46px;border-radius:999px;background:var(--lime);display:grid;place-items:center;color:#141a05}
  .dcs__a i .eic{width:21px;height:21px;stroke-width:2}
  .dcs__h{font-size:17px;font-weight:800;color:var(--ink);margin:4px 0 0;padding-top:12px;border-top:1px solid var(--dcSep)}
  .dcs__c{display:flex;align-items:center;gap:14px;padding:8px 0;border:0;background:transparent;width:100%;text-align:left;color:var(--ink);cursor:pointer}
  .dcs__c .dcav{width:50px;height:50px;flex:0 0 50px;font-size:19px}
  .dcs__tx{flex:1;min-width:0;display:block}
  .dcs__tx b{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:800}
  .dcs__tx i{display:block;font-style:normal;font-size:13.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcpick{display:flex;flex-direction:column;gap:2px;max-height:46vh;overflow-y:auto;margin:8px 0}
  .dcpick label{display:flex;align-items:center;gap:12px;padding:8px 2px;font-size:15px;font-weight:600;color:var(--ink)}
  .dcpick input{width:20px;height:20px;accent-color:#5FA300}
  /* ============ 🍏 МАТОВЫЕ КНОПКИ + LIQUID GLASS (последний слой) ============
     По-эпловски: кнопки матовые — без бегущего блика, мерцающей цены и
     светящейся обводки; глубину дают стекло, мягкие градиенты и
     пружинящее нажатие. Слой последний в файле — перекрывает глянец выше,
     ничего не удаляя из старых правил. */
  .btn::after,.btn:not(.sec)::after,.sellerbtn::after,.chip::after,.chip.on::after,.p__cta::after,.p__cta:not(.out)::after{display:none!important;animation:none!important}
  /* Волна-«рябь» от пальца — приём Material, не iOS: отклик даёт пружинящее нажатие. */
  .rip{display:none!important}
  .chip.on{animation:none}
  .p__price{background:none;-webkit-text-fill-color:currentColor;animation:none;color:var(--ink)}
  /* Главная кнопка: ровный матовый лайм, тень — только чтобы отделить от фона. */
  .btn:not(.sec):not(.ghost),.sellerbtn,.splash__btn.pri,.welc__cta,.chip.on,.p__cta,.ptz__btn,.mintro__cta,.vipcard__btn,.p__mysize{
    box-shadow:0 1px 2px rgba(0,0,0,.22),0 6px 16px -10px rgba(0,0,0,.35)!important}
  .vipcard__btn,.cat.on,.upsell__b,.cartpeek__act.primary{background:#D8FF34!important}
  .cat.on{box-shadow:0 1px 2px rgba(0,0,0,.22),0 6px 16px -10px rgba(0,0,0,.35)}
  .vipcard__btn::after,.welc__sheen,.adban__sheen,.p__imgwrap::after{display:none!important;animation:none!important}
  @media (hover:hover) and (pointer:fine){.btn:not(.sec):not(.ghost):hover,.sellerbtn:hover{filter:brightness(1.03)}}
  /* Второстепенная кнопка — матовое стекло с тонкой светлой кромкой. */
  .btn.sec{background:transparent!important;border:1px solid rgba(255,255,255,.16)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important}
  :root[data-theme="light"] .btn.sec{background:transparent!important;border:1px solid rgba(20,40,80,.14)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)!important}
  .aob__chip{background-color:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
  :root[data-theme="light"] .aob__chip{background-color:rgba(255,255,255,.7);border-color:rgba(20,40,80,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
  /* Стекло без размытия на всех карточках приложения: мягкий вертикальный
     градиент поверх цвета карточки. Только background-image — собственный цвет,
     рамка и тень каждой карточки остаются. Карточки, у которых уже есть свой
     градиент или картинка, в список не входят. Blur здесь не ставим: карточек
     на экране десятки, а размытие пересчитывается на каждом кадре прокрутки. */
  :root{--gl-grad:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.012) 70%);--gl-edge:inset 0 1px 0 rgba(255,255,255,.07)}
  :root[data-theme="light"]{--gl-grad:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.55));--gl-edge:inset 0 1px 0 rgba(255,255,255,.95)}
  .splash__cd div,.sp2__prop,.srch2,.fbtn,.cbhow__now,.dcard,.recocard,.ccard,.nsh,.swk,.ach,.shabout .arow,.ordv__card,.ordv__prod,.admt,.admsh,.admrows,.lbprice,.lbcar__i,.lbpin,.lblow,.gcown,
  .amt__k,.pepv,.wvtg,.wvearn,.giftcode,.wvs__row,.tghow__r,.wv__qa button,.ord2,.ord2__open,.sv__search,.sv__popc,.mshop,.mshopf,.dirrow,.favbtn,.bnbar,.ofrow,.dmcard,.freebar,
  .stslot,.stinp,.sttile,.empty2,.cabsub,.fold,.actc,.gcterms,.stnet,.shb,.netbar,.pdspec__c,.scpt,.schhero,.schbal,.schq__i,.tour__card,.shrev,.myshop,.remchip,.strc,.advc,.freeb,.scoll__r,.pdbuy,
  .pmbal,.pmrow,.sban,.auc,.plusban,.dppitch,.dpplan,.malt,.mbrow,.moc,.mfrow,.mfnotify,.mreq,.mrstats,.msscore,.msai,.msol,.msquota,.mswin--empty,.msins,.micard,.skcard,.promocard,.srstep,.lvrow,
  .hrow,.faq,.supc__c,.nrow,.adrc,.dst,.pfcb,.pfins,.pfstats,.dplpin,.stat,.capwrap,.brmetrics div,.aob__found li,.aob__hero,.aob__list li,.aob__card,.aob__perm,.aob__more,.grp,.intel,.st__post,
  .aob__item,.aob__store,.aob__resume,.ce__post,.ag__res,.aih__task,.aob__sec,.aob__grp,.aob__bk,.refcode,.conudge,.lblbar,.apcard,.vacbox,.dpdpick,
  .dpdalt,.dpditem,.aih__ask,.aih__brief,.aih__sq,.aih__tile,.aih__kpi div,.aih__vp,.aob__ai,.aic__b:not(.aic__b--me),.aic__post{background-image:var(--gl-grad)}
  .aih__ask,.aih__brief,.aih__sq,.aih__tile,.aih__kpi div,.aih__vp,.aob__ai,.aic__b:not(.aic__b--me),.aic__post{box-shadow:var(--gl-edge),0 10px 24px -18px rgba(0,0,0,.45)}
  /* Срочность — цветом из угла, плавно, а не только рамкой. */
  .aih__sq--red{background-image:radial-gradient(120% 90% at 0% 0%,rgba(255,92,92,.16),transparent 62%),linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01) 70%)}
  .aih__sq--yellow{background-image:radial-gradient(120% 90% at 0% 0%,rgba(245,180,0,.14),transparent 62%),linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01) 70%)}
  .aih__sq--green{background-image:radial-gradient(120% 90% at 0% 0%,rgba(155,210,26,.13),transparent 62%),linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01) 70%)}
  /* Шапка и строка ввода чата — настоящее стекло: под ними прокручивается переписка. */
  .aic__top{background:rgba(23,27,38,.95);backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));-webkit-backdrop-filter:blur(var(--gb-l)) saturate(var(--gsat));border-bottom-color:rgba(255,255,255,.08)}
  :root[data-theme="light"] .aic__top{background:rgba(255,255,255,.96);border-bottom-color:rgba(20,40,80,.08)}
  :root[data-theme="light"] .aic__ib{background:rgba(255,255,255,.8);border-color:rgba(20,40,80,.10);box-shadow:inset 0 1px 0 #fff}
  :root[data-theme="light"] .aic__av:not(.aic__av--ai){background:rgba(20,40,80,.08)}
  .aic__ib{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
  .aic__send{box-shadow:0 1px 2px rgba(0,0,0,.22)}
  /* Пружинящее нажатие и плавные переходы цвета. */
  .btn,.sellerbtn,.aob__chip,.chip,.aih__sq,.aih__tile,.aih__vp,.aic__send,.aic__ib{
    transition:transform var(--d-3) var(--e-spring),background-color var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out),box-shadow var(--d-2) var(--e-out),filter var(--d-2) var(--e-out)}
  .btn:active,.sellerbtn:active,.aob__chip:active,.aih__sq:active,.aih__tile:active,.aih__vp:active,.aic__send:active,.aic__ib:active{transform:scale(.96);transition-duration:var(--d-1)}
  .p,.dcard,.mcard,.ccard,.cat,.recocard,.mshop,.chip,.p__cta,.splash__btn,.welc__cta,.vipcard__btn{transition-timing-function:var(--e-spring)}
  .sheet.on .sheet__body{animation:glIn var(--d-3) var(--e-out) backwards}
  /* ============ 🛍 Карточка товара в ленте ============
     Фото на всю ширину карточки, без рамки-отступа и пустой полосы под ним;
     поверх фото — только сердце (вверху справа) и магазин (внизу слева).
     Текст в две строки, мета — одной строкой; кнопка — тонированная, а не
     лаймовый блок в каждой карточке: акцент остаётся на фото и цене. */
  .p__img{object-fit:cover;padding:0}
  .p.hot{border-color:rgba(216,255,52,.28)!important}
  .p__fav{top:8px;bottom:auto;right:8px;width:32px;height:32px;background:rgba(10,14,24,.5);border:1px solid rgba(255,255,255,.18);color:#fff;z-index:3;
    transition:transform var(--d-2) var(--e-spring),background-color var(--d-2) var(--e-out)}
  .p__fav:active{transform:scale(.86)}
  .p__fav .eic{width:17px;height:17px}
  .p__shop{top:auto;right:auto;bottom:8px;left:8px;max-width:78%;padding:4px 9px;font-size:11px;border:1px solid rgba(255,255,255,.14);color:#fff;box-shadow:none}
  .p__shop--ver{border-color:rgba(255,255,255,.14);box-shadow:none}
  .p:hover .p__shop{transform:none}
  .p__ad{top:12px;bottom:auto;left:auto;right:48px}
  .p__mysize{top:auto;bottom:8px;right:8px;box-shadow:none}
  .p__stock{bottom:34px}
  .p__in{padding:11px 12px 12px}
  .p__brand{font-size:11px;letter-spacing:.5px;text-transform:uppercase}
  .p__name{font-size:14px;font-weight:750;margin:2px 0 6px;min-height:35px}
  .p__rate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .p__meta{flex-wrap:nowrap!important;overflow:hidden}.p__meta>span{white-space:nowrap}
  .p__cta{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:9px 6px;font-size:12.5px;letter-spacing:-.1px}
  .p__cta .eic{width:15px;height:15px;margin:0;flex:0 0 auto}
  .p__name{margin-bottom:4px}
  .dcard__fav{background:rgba(10,14,24,.5);border:1px solid rgba(255,255,255,.18);color:#fff;transition:transform var(--d-2) var(--e-spring)}
  .dcard__fav:active{transform:scale(.86)}
  .dcard__fav.on .eic{fill:#ff5a7a;stroke:#ff5a7a}
  /* ============ 🛍 Карточка ленты и экран товара — по макету 3.0 ============
     Карточка: фото во внутренней рамке на тёмном «софите», метка слева вверху,
     сердце справа, точки кадров; ниже бренд, название, рейтинг (только
     настоящий), цена, ярлыки и сплошная лаймовая кнопка. */
  .p{padding:7px}
  .p__imgwrap{aspect-ratio:1/1.04;border-radius:16px;background:radial-gradient(85% 70% at 50% 36%,rgba(255,255,255,.13),transparent 70%),#0d121c}
  :root[data-theme="light"] .p__imgwrap{background:radial-gradient(85% 70% at 50% 36%,#fff,transparent 70%),#e8edf4}
  .p__b{top:8px;left:8px;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:800;letter-spacing:0;text-transform:none;
    background:rgba(10,14,24,.66);color:#eaffb0;border:1px solid rgba(216,255,52,.55)}
  .p__b .eic{width:13px;height:13px;color:#D8FF34}
  .p__b--new{color:#fff;border-color:rgba(255,255,255,.32)}.p__b--new .eic{color:#fff}
  .p__fav{background:transparent;border:0;width:30px;height:30px}
  .p__fav .eic{width:21px;height:21px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}
  .p__dots{position:absolute;right:10px;bottom:10px;z-index:2;display:flex;gap:4px}
  .p__dots i{width:5px;height:5px;border-radius:999px;background:rgba(255,255,255,.55)}.p__dots i.on{background:#D8FF34}
  .p__in{padding:10px 5px 3px}
  .p__brand{font-size:12px;letter-spacing:0;text-transform:none;font-weight:600}
  .p__name{font-size:15px;font-weight:800;-webkit-line-clamp:1;min-height:0;margin:1px 0 5px}
  .p__rate{font-size:12px;display:flex;align-items:center;gap:6px}
  .p__rate b{color:var(--ink);display:inline-flex;align-items:center;gap:4px}.p__rate b .eic{width:13px;height:13px;color:#D8FF34;fill:#D8FF34}
  .p__rc{color:var(--muted);font-weight:600;padding-left:6px;border-left:1px solid var(--line)}
  .p__prow{margin-top:7px}.p__price{font-size:19px}
  .p__meta{display:flex;gap:5px;margin-top:6px}
  .p__tg{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;border:1px solid var(--line);font-size:11px;font-weight:700;color:var(--muted);background:rgba(255,255,255,.03)}
  .p__tg .eic{width:11px;height:11px;margin:0;color:#9bd21a}
  .p__tg--hot{color:#ffb347;border-color:rgba(255,160,60,.35)}.p__tg--hot .eic{color:#ff9a3c}
  .p__tg--torg{color:var(--limeink);border-color:rgba(216,255,52,.3)}.p__tg--torg .eic{color:var(--limeink)}
  .p__cta{margin-top:10px;padding:11px 6px;border-radius:16px;font-size:13.5px;font-weight:850;background:#D8FF34;color:#1E2433;border:0}
  .p__cta .eic{color:#1E2433}
  .p__cta.out{background:var(--card2);color:var(--muted)}
  /* Категории — капсулы с иконкой в строку; выбранная — лаймовая кромка и подсветка. */
  .cats{gap:8px;padding:14px 0 4px}
  .cat{width:auto;flex-direction:row;gap:7px;padding:9px 15px;border-radius:999px}
  .cat .eic{width:19px;height:19px}
  .cat span{font-size:13.5px;font-weight:700}
  .cat.on{background:rgba(216,255,52,.16)!important;border-color:rgba(216,255,52,.7);box-shadow:0 0 18px -4px rgba(216,255,52,.45);animation:none}
  .cat.on .eic,.cat.on svg{color:#D8FF34;stroke:#D8FF34}.cat.on span{color:#eaffb0}
  :root[data-theme="light"] .cat.on .eic,:root[data-theme="light"] .cat.on svg{color:#3F7000;stroke:#3F7000}:root[data-theme="light"] .cat.on span{color:#2b4d00}
  /* Экран товара. */
  .pdtop__ic{flex:0 0 40px;width:40px;height:40px;border-radius:999px}
  .pdtop__ic.on .eic{fill:#ff5a7a;stroke:#ff5a7a}
  .pd__gal{border-radius:20px;background:radial-gradient(60% 55% at 50% 55%,rgba(216,255,52,.16),transparent 72%);box-shadow:0 30px 60px -36px rgba(216,255,52,.45)}
  .pd__img{aspect-ratio:1/1}
  .pd__dots{display:none}
  .pd__cnt{position:absolute;right:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;color:#fff;background:rgba(10,14,24,.62);border:1px solid rgba(255,255,255,.16)}
  .pd__cnt .eic{width:16px;height:16px}.pd__cnt b{font-weight:800}
  .pd__gal .pd__thumbs{position:absolute;left:10px;top:10px;bottom:10px;z-index:2;flex-direction:column;margin:0;overflow-y:auto;scrollbar-width:none;padding:2px}
  .pd__gal .pd__thumbs::-webkit-scrollbar{display:none}
  .pd__gal .pd__thumbs img{width:52px;height:52px;border-width:2px;border-color:rgba(255,255,255,.22);box-shadow:0 6px 16px -8px rgba(0,0,0,.6)}
  .pd__gal .pd__thumbs img.on{border-color:#D8FF34;transform:none}
  .pdbadges{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 8px}
  .pdbadge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:800;color:var(--ink);border:1px solid var(--line);background:rgba(255,255,255,.04)}
  .pdbadge .eic{width:15px;height:15px}
  .pdbadge--hot .eic{color:#ff9a3c}
  .pdbadge--ver{border-color:rgba(216,255,52,.6);color:#eaffb0}.pdbadge--ver .eic{color:#D8FF34}
  :root[data-theme="light"] .pdbadge--ver{color:#2b4d00}:root[data-theme="light"] .pdbadge--ver .eic{color:#3F7000}
  .pd__brand{display:inline-flex;align-items:center;gap:2px;margin-top:4px;padding:0;border:0;background:none;font:inherit;font-size:17px;font-weight:750;color:var(--ink);cursor:pointer}
  .pd__brand .eic{width:17px;height:17px;margin:0;color:var(--muted)}
  .pd__name{font-size:28px;font-weight:900;letter-spacing:-.5px;line-height:1.15;margin:2px 0}
  .pd__sub{font-size:15px;font-weight:600;color:var(--muted);margin:2px 0 6px}
  .pdrate{font-size:15px;display:flex;align-items:center;gap:8px}
  .pdrate b{color:var(--ink);display:inline-flex;align-items:center;gap:5px;font-size:17px}.pdrate b .eic{width:18px;height:18px;color:#D8FF34;fill:#D8FF34}
  .pd__price{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:34px;letter-spacing:-.5px;margin:10px 0 12px}
  .pd__price .p__old{font-size:16px;font-weight:600}
  .pdsave{margin:0;font-size:15px;padding:4px 12px;border-radius:999px;color:#D8FF34;background:linear-gradient(135deg,rgba(40,160,60,.45),rgba(216,255,52,.14));border:1px solid rgba(216,255,52,.3);box-shadow:0 0 16px -4px rgba(120,220,40,.5)}
  :root[data-theme="light"] .pdsave{color:#2b4d00}
  .pdtrust{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));margin:4px 0 14px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .pdtrust>div{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;padding:0 4px}
  .pdtrust>div+div{border-left:1px solid var(--line)}
  .pdtrust span{width:42px;height:42px;border-radius:999px;display:grid;place-items:center;background:rgba(216,255,52,.08);border:1px solid rgba(216,255,52,.22)}
  .pdtrust span .eic{width:20px;height:20px;color:#D8FF34}
  :root[data-theme="light"] .pdtrust span .eic{color:#3F7000}
  .pdtrust b{font-size:11.5px;font-weight:650;line-height:1.3;color:var(--muted)}
  .pdsz{margin:6px 0 10px;padding:10px 14px 4px;border-radius:20px;border:1px solid var(--line);background-image:var(--gl-grad)}
  .pdsz .brk{padding:2px 0}.pdsz label.f{font-size:16px;font-weight:800;color:var(--ink)}
  .pdsz .szchartbtn{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--muted);font-size:12.5px}
  .pdsz .szchartbtn .eic{width:18px;height:18px}
  .pdsz .sz{border-radius:999px;min-width:54px;padding:9px 14px;text-align:center}
  .pdsz .sz.on{border-color:#D8FF34;color:#D8FF34;background:rgba(216,255,52,.10);box-shadow:0 0 14px -4px rgba(216,255,52,.5)}
  :root[data-theme="light"] .pdsz .sz.on{color:#2b4d00;border-color:#7fb800}
  .pdstock{display:flex;align-items:center;gap:7px;margin:4px 0 10px;font-size:14px}
  .pdstock .eic{width:20px;height:20px;color:#D8FF34}.pdstock b{color:#D8FF34;font-weight:750}.pdstock span{color:var(--muted)}
  :root[data-theme="light"] .pdstock .eic,:root[data-theme="light"] .pdstock b{color:#3F7000}
  .pdbuy__row{display:flex;gap:10px;align-items:center}
  .pdbuy__row #pdAdd{flex:1;min-width:0;border-radius:999px;padding:17px;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px}
  .pdbuy__row #pdAdd .eic{width:20px;height:20px;margin:0}
  .pdbuy__fav{flex:0 0 56px;width:56px;height:56px;border-radius:999px;display:grid;place-items:center;border:1px solid var(--line);background:rgba(255,255,255,.05);color:#D8FF34;cursor:pointer;
    transition:transform var(--d-2) var(--e-spring)}
  .pdbuy__fav:active{transform:scale(.9)}
  .pdbuy__fav .eic{width:24px;height:24px}.pdbuy__fav.on .eic{fill:#D8FF34}
  :root[data-theme="light"] .pdbuy__fav{color:#3F7000}:root[data-theme="light"] .pdbuy__fav.on .eic{fill:#3F7000}
  .pdbuy__alt{margin-top:2px}
  .sheet.sheet--qs{min-height:0}
  .qs{padding:4px 0 6px}
  .qs__sz .sz{color:var(--ink)}
  .qs__h{display:flex;align-items:center;gap:12px}
  .qs__h img{width:64px;height:64px;border-radius:16px;object-fit:cover;flex:0 0 auto;background:var(--card2)}
  .qs__h div{display:flex;flex-direction:column;min-width:0}
  .qs__h span{font-size:12px;color:var(--muted);font-weight:600}
  .qs__h b{font-size:16px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .qs__h em{font-style:normal;font-size:16px;font-weight:900;margin-top:2px}
  .qs__l{margin:16px 0 8px;font-size:14px;font-weight:800}
  .qs__sz{display:flex;flex-wrap:wrap;gap:8px}
  .qs__sz .sz{position:relative;border-radius:999px;min-width:58px;padding:12px 16px;text-align:center;font-size:15px}
  .qs__sz .sz.on{border-color:#D8FF34;color:#D8FF34;background:rgba(216,255,52,.12);transform:scale(.94)}
  .qs__sz .sz.mine::after{content:'';position:absolute;top:5px;right:9px;width:6px;height:6px;border-radius:999px;background:#D8FF34}
  :root[data-theme="light"] .qs__sz .sz.on{color:#2b4d00;border-color:#7fb800}:root[data-theme="light"] .qs__sz .sz.mine::after{background:#7fb800}
  .qs__more{display:inline-flex;align-items:center;gap:2px;margin-top:14px}.qs__more .eic{width:15px;height:15px}
  /* Лента как на фото: плотнее, магазин — на карточке товара, не на фото. */
  .grid{gap:10px}
  #grid .p__shop{display:none}
  .p__fav{background:rgba(10,14,24,.45);border-radius:999px}
  .p__fav .eic{width:18px;height:18px}
  .p__in{padding:8px 4px 2px}
  .p__brand{font-size:11.5px}
  .p__name{font-size:14px;margin:1px 0 3px}
  .p__rate{font-size:11.5px}
  .p__prow{margin-top:5px}.p__price{font-size:17px}
  .p__meta{margin-top:5px}.p__tg{font-size:11px;padding:2px 7px}
  .p__cta{margin-top:8px;padding:10px 6px;font-size:13px}
  /* Кнопка «В корзину» — всегда по нижнему краю: ярлыки могут занять две строки. */
  .p{display:flex;flex-direction:column}.p__in{flex:1;display:flex;flex-direction:column}.p__cta{margin-top:auto}.p__meta{flex-wrap:wrap!important;margin-bottom:8px}
  .p__tg--free .eic{color:#9bd21a}
  /* break-ui: худшие реальные данные. Метка продавца — в одну строку и не
     заезжает под сердечко; бренд — в строку с многоточием; название без
     пробелов («AirJordan1Retro…») переносится, а не режется на краю; подпись
     кнопки не вылезает за края. */
  .p__b{max-width:calc(100% - 46px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  @media (max-width:359px){.p__b .eic{display:none}}
  .p__in{min-width:0}
  .p__brand{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .p__name{overflow-wrap:anywhere}
  .p__cta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  /* 💳 Схема оплаты: шаги загораются по очереди, точка бежит по линии. */
  .pfx__list{position:relative;margin-top:14px;padding-left:4px}
  .pfx__line{position:absolute;left:25px;top:22px;bottom:22px;width:2px;background:var(--line)}
  .pfx__dot{position:absolute;left:20px;top:18px;width:12px;height:12px;border-radius:999px;background:#D8FF34;box-shadow:0 0 14px 2px rgba(216,255,52,.6);animation:pfxRun 3.4s var(--e-out) .3s both}
  @keyframes pfxRun{from{top:18px}to{top:calc(100% - 30px)}}
  .pfx__s{position:relative;display:flex;gap:14px;padding:10px 0;opacity:0;animation:glIn var(--d-3) var(--e-spring) both;animation-delay:calc(var(--k) * .6s + .2s)}
  .pfx__s>span{flex:0 0 44px;height:44px;border-radius:999px;display:grid;place-items:center;background:var(--card);border:1px solid rgba(216,255,52,.35);z-index:1}
  .pfx__s>span .eic{width:20px;height:20px;color:#D8FF34}
  :root[data-theme="light"] .pfx__s>span .eic{color:#3F7000}
  .pfx__s b{display:block;font-size:15px;font-weight:850}.pfx__s em{display:block;font-style:normal;font-size:13px;line-height:1.45;color:var(--muted);margin-top:2px}
  .pfx__split{display:flex;gap:4px;margin-top:8px;height:26px}
  .pfx__split i{display:flex;align-items:center;padding:0 10px;border-radius:999px;font-style:normal;font-size:11.5px;font-weight:800;white-space:nowrap;animation:pfxGrow var(--d-3) var(--e-spring) both 1.1s}
  .pfx__split i:first-child{flex:1;background:rgba(216,255,52,.16);color:var(--limeink);border:1px solid rgba(216,255,52,.4)}
  .pfx__split i:last-child{flex:0 0 auto;background:var(--card2);color:var(--muted)}
  @keyframes pfxGrow{from{transform:scaleX(.2);transform-origin:left;opacity:0}to{transform:none;opacity:1}}
  /* 🏆 Почему Droply: строки появляются по одной. */
  .whyd__h,.whyd__r{display:grid;grid-template-columns:1.05fr 1fr 1.15fr;gap:8px;align-items:start}
  .whyd__h{margin:10px 0 4px;font-size:11px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
  .whyd__h span:last-child{color:var(--limeink)}
  .whyd__r{padding:10px 0;border-top:1px solid var(--line);font-size:12.5px;line-height:1.4;animation:glIn var(--d-3) var(--e-out) both;animation-delay:calc(var(--k) * .12s)}
  .whyd__r b{font-size:13px;font-weight:850}
  .whyd__r span:nth-child(2){color:var(--muted)}
  .whyd__r span:last-child{display:flex;gap:5px;color:var(--ink);font-weight:650}
  .whyd__r span:last-child .eic{flex:0 0 15px;width:15px;height:15px;color:#9bd21a;margin-top:1px}
  @media (prefers-reduced-motion:reduce){.pfx__dot,.pfx__s,.pfx__split i,.whyd__r{animation:none;opacity:1}}
  /* 🎬 Режим показа */
  .show .tour__hole{transition:top var(--d-3) var(--e-out),left var(--d-3) var(--e-out),width var(--d-3) var(--e-out),height var(--d-3) var(--e-out),opacity var(--d-2) var(--e-out)}
  .show--open{background:transparent}
  .show__card{transition:opacity var(--d-2) var(--e-out),top var(--d-3) var(--e-out),bottom var(--d-3) var(--e-out);max-width:520px;margin:0 auto}
  .show__card--wait{opacity:.55}
  .show__top{display:flex;align-items:center;gap:8px}
  .show__ch{font-size:11px;font-weight:900;letter-spacing:.6px;text-transform:uppercase;color:#1E2433;background:#D8FF34;border-radius:999px;padding:3px 9px}
  .show__n{font-size:12px;font-weight:800;color:var(--muted);margin-right:auto}
  .show__x{width:32px;height:32px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:20px;line-height:1;cursor:pointer}
  .show__bar{height:3px;border-radius:999px;background:var(--line);margin:10px 0 2px;overflow:hidden}
  .show__bar i{display:block;height:100%;background:#D8FF34;transition:width var(--d-3) var(--e-out)}
  .show__btns .show__b{flex:0 0 52px;padding:0;display:grid;place-items:center}
  .show__btns .show__b .eic{width:20px;height:20px;margin:0}
  .show__btns .show__b:disabled{opacity:.35}
  .show__card--in{animation:showIn var(--d-3) var(--e-spring) both}
  @keyframes showIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
  .show__splash{position:fixed;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none;
    background:radial-gradient(70% 50% at 50% 50%,rgba(216,255,52,.16),transparent 70%),rgba(6,10,18,.92);animation:showSplash 1.5s var(--e-out) both}
  .show__splash span{font-size:14px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#D8FF34}
  .show__splash b{font-size:40px;font-weight:900;letter-spacing:-1px;color:#fff;animation:showIn var(--d-3) var(--e-spring) both .12s}
  @keyframes showSplash{0%{opacity:0}14%{opacity:1}74%{opacity:1}100%{opacity:0}}
  @media (prefers-reduced-motion:reduce){.show__card--in,.show__splash,.show__splash b{animation:none}}
  /* Полёт в корзину рисует Web Animations; CSS-переход здесь только мешал бы. */
  .fly{transition:none;transform-origin:center;will-change:transform,opacity;box-shadow:0 14px 30px -8px rgba(0,0,0,.45)}
  @keyframes dotPop{0%{transform:scale(.4)}55%{transform:scale(1.28)}100%{transform:scale(1)}}
  .icn .dot.pop{animation:dotPop var(--d-3) var(--e-spring)}
  /* Подсказка внизу — стеклянная капсула, всплывает с лёгкой пружиной. */
  .toast{border-radius:999px;padding:11px 18px;background:rgba(22,26,36,.9);color:#fff;border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 34px -14px rgba(0,0,0,.55);
    transition:opacity var(--d-2) var(--e-out),transform var(--d-3) var(--e-spring)}
  :root[data-theme="light"] .toast{background:rgba(22,26,36,.92);color:#fff}
  /* Главная: «Магазин недели» без обложки не держит пустую плиту в 118 px. */
  .swk__cover.noimg{height:58px;background:radial-gradient(120% 160% at 85% 0%,rgba(216,255,52,.18),transparent 55%),linear-gradient(120deg,#21304d,#141a2a)}
  :root[data-theme="light"] .swk__cover.noimg{background:radial-gradient(120% 160% at 85% 0%,rgba(150,210,0,.22),transparent 55%),linear-gradient(120deg,#eef2f8,#e2e8f2)}
  /* Droply+ на главной в тёмной теме: заголовок и цена были тёмными на тёмном. */
  :root:not([data-theme="light"]) .dpb--banner .dpb__name,:root:not([data-theme="light"]) .dpb--banner .dpb__pmain b,:root:not([data-theme="light"]) .dpb--banner .dpb__ft b{color:var(--dpbInk)}
  :root:not([data-theme="light"]) .dpb--banner .dpb__s,:root:not([data-theme="light"]) .dpb--banner .dpb__psub,:root:not([data-theme="light"]) .dpb--banner .dpb__pmain span{color:var(--dpbInk2)}
  /* Новые сообщения чата и дела на главной появляются мягко. */
  @keyframes glIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
  /* 🍏 apple-design.
     · Отклик на касании, а не на отпускании — у всего, что нажимается и своего
       отклика не имеет: строка/иконка гаснет сразу и проявляется обратно.
     · Меню сортировки раскрывается из своей кнопки (origin — верх-лево).
     · Цифры, которые меняются на глазах, — моноширинные: не прыгают.
     · Оптический размер шрифта — системный, как в iOS. */
  :where(button,a,[role="button"],[data-nav],.mrow,.pfrow,.icn,.trend__c,.cat):where(:not(.btn,.chip,.p,.sz,.tabbar button,.tabfab,:disabled)):active{opacity:.6}
  .sortmenu.on{animation:popFrom var(--d-2) var(--e-out) both;transform-origin:top left}
  @keyframes popFrom{from{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:none}}
  body{font-optical-sizing:auto}
  /* Карточка «Открыть страницу»: ссылка, пришедшая с сервера, открывается её кнопкой. */
  .extgo{position:fixed;inset:0;z-index:9600;display:flex;align-items:flex-end;justify-content:center;padding:16px 16px calc(16px + var(--sab));background:rgba(6,10,18,.45);animation:fadeUp var(--d-2) var(--e-out) both}
  .extgo__c{width:100%;max-width:460px;display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:28px;background:var(--bg2);border:1px solid var(--line);box-shadow:0 24px 60px -20px rgba(0,0,0,.6)}
  .extgo__c b{font-size:17px;font-weight:850}
  .extgo__c span{font-size:14px;color:var(--muted);line-height:1.45}
  .extgo__c .btn{margin-top:6px}
  .extgo__x{background:none;border:0;color:var(--muted);font-weight:700;font-size:15px;min-height:44px;cursor:pointer}
  /* HIG accessibility.md: текст до 17 pt — 4.5:1, жирный — 3:1.
     Счётчик корзины: белые цифры на лайме давали 1.50:1 — тёмные дают 13:1.
     Размеры на карточке товара в тёмной теме были чёрными на #232A3A — 1.46:1. */
  .icn .dot{color:#1E2433}
  .pdsz .sz:not(.on){color:var(--ink)}
  /* Кнопки меньше 44×44: рисунок прежний, а зона нажатия добирается до 44
     невидимым слоем — тем же приёмом, что у кнопок карточек выше. */
  .pd__brand,.szchartbtn,.aob__link,.mic,.topava,.ordv__ic,.cartdh__x,.qty button{position:relative}
  .p__fav::after,.pd__brand::after,.szchartbtn::after,.aob__link::after,.mic::after,.topava::after,.ordv__ic::after,.cartdh__x::after,.qty button::after,.pf2cam::after,.icn::after{
    content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,44px);height:max(100%,44px);border-radius:inherit}
  /* Аватар в шапке обрезает свой невидимый слой (круг с overflow:hidden) —
     поэтому сам он 44×44, на 4 px больше прежнего. Кнопка на баннере стоит у
     края карточки-карусели, слой за край не выходит — поднимаем её до 32 px
     (минимум HIG — 28). «Все» перекрывал следующий блок — кладём выше него. */
  .topava{width:44px;height:44px}
  .cbhero__cta{min-height:32px}
  .vsec__all{z-index:1;min-height:28px!important;display:inline-flex;align-items:center}
  /* Поле поиска — на всю высоту своей капсулы (было 18 px в капсуле 49). */
  .srch2 input{align-self:stretch;min-height:44px}
  /* Шторка открыта — экран под ней уходит вглубь (как стопка шторок в iOS):
     чуть меньше, скруглён, опущен. Масштаб — от середины видимой части, а не
     от середины всей длинной страницы. */
  .wrap{transition:transform var(--d-3) var(--e-drawer),border-radius var(--d-3) var(--e-drawer)}
  body.sheet-on .wrap{transform:scale(.94) translateY(10px);transform-origin:50% calc(var(--sy,0px) + 50vh);border-radius:28px;overflow:hidden}
  @media (prefers-reduced-motion:reduce){body.sheet-on .wrap{transform:none;border-radius:0}}
  .dot,#cartDot,.splash__cd b,.qty{font-variant-numeric:tabular-nums}
  @media (prefers-reduced-motion:reduce){
    /* Меньше движения — не «ничего», а мягкое проявление вместо выезда. */
    .sheet,.cartdrawer,.ordview,.chatview,.searchview{transform:none!important;opacity:0;visibility:hidden;transition:opacity var(--d-2) var(--e-out),visibility var(--d-2) step-end!important}
    .sheet.on,.cartdrawer.on,.ordview.on,.chatview.on,.searchview.on{opacity:1;visibility:visible;transition:opacity var(--d-2) var(--e-out)!important}
    .cartdrawer,.cartdrawer.on{transform:translateX(-50%)!important}
    .sortmenu.on{animation:none}
  }
  /* 🎬 СЦЕНЫ — движение режима показа во всём приложении.
     1) Блоки экрана въезжают каскадом на той же пружине, что карточка показа
        (showIn): снизу, с лёгким масштабом, с шагом 60 мс.
     2) При прокрутке блоки появляются той же пружиной, а не простым сдвигом. */
  .scn{animation:showIn var(--d-3) var(--e-out) both;animation-delay:calc(var(--k,0) * 40ms)}
  .rvl{transform:translateY(18px) scale(.97)}
  .rvl.in{transition:opacity var(--d-3) var(--e-out),transform var(--d-3) var(--e-spring)}
  @media (prefers-reduced-motion:reduce){.scn{animation:none}.rvl,.rvl.in{transform:none}}
  .aic__new{animation:glIn var(--d-3) var(--e-out) backwards}
  .aih__sq{animation:glIn var(--d-3) var(--e-out) backwards}
  .aih__sq:nth-child(2){animation-delay:.05s}.aih__sq:nth-child(3){animation-delay:.1s}.aih__sq:nth-child(4){animation-delay:.15s}
  @media (prefers-reduced-motion:reduce){
    .aic__new,.aih__sq,.sheet.on .sheet__body,.icn .dot.pop{animation:none}
    .btn:active,.sellerbtn:active,.aob__chip:active,.aih__sq:active,.aih__tile:active,.aih__vp:active,.aic__send:active,.aic__ib:active{transform:none}}
  /* 💧 Liquid Glass во всём приложении — тем же языком, что таб-бар.
     По HIG стекло — это слой управления, который плавает над контентом: кнопки,
     поиск, переключатели, шторки, тосты. Сам контент (карточки товаров, списки,
     переписка) остаётся плотным — иначе текст ложится на текст, а на Android
     размытие каждой карточки в ленте роняет FPS. Поэтому:
       · одиночный хром — стекло с размытием (иконки шапки, поиск, фильтр,
         кнопки страницы товара, переключатели, тосты, меню);
       · то, что повторяется десятками (сердечки на фото, размеры, подсказки
         поиска), — тот же вид стекла, но без размытия;
       · у переключателей выбранный пункт — стеклянная линза, она переезжает
         пружиной (код ниже, lgSeg), цвет бренда — у текста выбранного пункта;
       · нажатие на стеклянную кнопку — лёгкое «вздутие», как в iOS 26. */
  :root{--lg-fill:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.045));--lg-edge:rgba(255,255,255,.13);
    --lg-spec:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(255,255,255,.04);--lg-drop:0 8px 22px -14px rgba(0,0,0,.6);
    --lg-lens:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.08));--lg-on:#D8FF34}
  :root[data-theme="light"]{--lg-fill:linear-gradient(180deg,rgba(255,255,255,.84),rgba(255,255,255,.6));--lg-edge:rgba(20,40,80,.08);
    --lg-spec:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(20,40,80,.03);--lg-drop:0 8px 20px -14px rgba(20,40,80,.35);
    --lg-lens:linear-gradient(180deg,rgba(20,30,60,.085),rgba(20,30,60,.05));--lg-on:#3E6B00}
  .icn,.fbtn,.srch2,.ordv__ic,.pdbuy__fav,.trend__c,.sz,.scpf,.favtabs,.seg,.cats,.dctabs{
    background:var(--lg-fill)!important;border:1px solid var(--lg-edge)!important;box-shadow:var(--lg-spec),var(--lg-drop)!important}
  .icn:not(.topgrp .icn),.fbtn,.srch2,.ordv__ic,.pdbuy__fav,.scpf,.favtabs,.seg,.cats,.dctabs,.toast,.sortmenu,.topgrp,.dch__b,.pdtop,.scrhd,#minibar,#pfLegacy.pfsheet #pfSecBack,.svflt,.cartfoot,.netbar,.lblbar,.bglass,.levelup__card{
    -webkit-backdrop-filter:blur(var(--gb-m)) saturate(1.8);backdrop-filter:blur(var(--gb-m)) saturate(1.8)}
  .icn,.ordv__ic,.pdbuy__fav{border-radius:999px!important}
  /* Стекло поверх фото: всегда тёмный тон — белая иконка должна читаться на любом снимке. */
  .p__fav,.dcard__fav,.pd__cnt{background:linear-gradient(180deg,rgba(30,34,44,.42),rgba(10,12,18,.5))!important;border:1px solid rgba(255,255,255,.22)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 4px 12px -6px rgba(0,0,0,.5)!important;color:#fff}
  .sz.on,.pdsz .sz.on,.qs__sz .sz.on{background:var(--lg-lens)!important;border-color:var(--lg-edge)!important;color:var(--lg-on)!important;box-shadow:var(--lg-spec),0 0 0 1.5px var(--lg-on)!important}
  /* Переключатели: дорожка из стекла, пункты прозрачные, выбранный — линза. */
  .scpf,.favtabs,.cats,.dctabs{position:relative;border-radius:999px!important;padding:4px!important;gap:2px!important;scrollbar-width:none}
  .scpf{margin:0 0 12px!important}
  .dctabs{margin:0 0 8px!important}
  .dctabs>.dctab.on i{background:var(--lime);color:#141a05}
  .cats{margin-top:14px}
  .seg{position:relative;padding:4px;gap:4px;border-radius:16px!important}
  .scpf>button,.favtabs>.favtab,.cats>.cat,.seg>.seg__b,.dctabs>.dctab{position:relative;z-index:1;background:transparent!important;border-color:transparent!important;box-shadow:none!important;animation:none!important}
  .scpf>button.on,.favtabs>.favtab.on,.cats>.cat.on,.seg>.seg__b.on,.dctabs>.dctab.on{background:transparent!important;color:var(--lg-on)!important;box-shadow:none!important}
  .cats>.cat.on span,.cats>.cat.on .eic,.cats>.cat.on svg{color:var(--lg-on)!important;stroke:var(--lg-on)!important}
  .lgx{position:absolute;left:0;top:0;z-index:0;pointer-events:none;border-radius:999px;background:var(--lg-lens);
    box-shadow:var(--lg-spec),0 4px 12px -8px rgba(0,0,0,.45);border:1px solid var(--lg-edge);
    transition:transform var(--d-3) var(--e-spring),width var(--d-3) var(--e-spring),height var(--d-3) var(--e-spring),opacity var(--d-2) var(--e-out)}
  .seg>.lgx{border-radius:12px}
  .lgx.lgx--new{transition:none}
  /* Нажатие на стеклянную кнопку — «вздутие», а не провал вниз и не затемнение. */
  .icn,.fbtn,.ordv__ic,.pdbuy__fav,.p__fav,.dcard__fav,.trend__c{transition:transform var(--d-2) var(--e-spring),box-shadow var(--d-2) var(--e-out)}
  .icn:active,.fbtn:active,.ordv__ic:active,.pdbuy__fav:active,.p__fav:active,.dcard__fav:active,.trend__c:active,.dch__ic:active{transform:scale(1.08)!important;opacity:1!important}
  /* Шторки, тосты, меню — стекло с бликом по верхней кромке. */
  .sheet{border:1px solid rgba(255,255,255,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 -10px 40px -12px rgba(0,0,0,.5)}
  :root[data-theme="light"] .sheet{border-color:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 -10px 40px -14px rgba(20,40,80,.25)}
  .toast{background:linear-gradient(180deg,rgba(40,44,56,.72),rgba(18,20,28,.78))!important;border:1px solid rgba(255,255,255,.14)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 14px 34px -14px rgba(0,0,0,.55)!important}
  .sortmenu{background:var(--lg-fill),var(--bg2)!important;border:1px solid var(--lg-edge)!important;box-shadow:var(--lg-spec),0 22px 50px -12px rgba(0,0,0,.5)!important}
  @media (prefers-reduced-motion:reduce){
    .lgx{transition:none}
    .icn:active,.fbtn:active,.ordv__ic:active,.pdbuy__fav:active,.p__fav:active,.dcard__fav:active,.trend__c:active{transform:none!important}
  }
  /* 🫧 «Всё в стекле», как в Apple Maps. Стекло видно, только когда за ним что-то
     есть: на ровном фоне полупрозрачная карточка выглядит просто серой. Поэтому
     за приложением — неподвижный мягкий свет (лайм, бирюза, фиолет), а все
     поверхности (--card, --card2) стали полупрозрачными пластинами с бликом по
     верхней кромке; пластина на пластине светлее — «стекло на стекле».
     Размытие по-прежнему только у плавающего слоя: под карточками в ленте
     размывать нечего, кроме этого света, а видеокарта платила бы за каждую. */
  :root{--ambient:radial-gradient(42vmax 34vmax at 86% 6%,rgba(216,255,52,.13),transparent 70%),
      radial-gradient(48vmax 40vmax at 6% 46%,rgba(56,200,230,.14),transparent 70%),
      radial-gradient(46vmax 40vmax at 78% 88%,rgba(150,110,255,.16),transparent 70%)}
  :root[data-theme="light"]{--ambient:radial-gradient(42vmax 34vmax at 86% 6%,rgba(206,255,40,.32),transparent 70%),
      radial-gradient(48vmax 40vmax at 6% 46%,rgba(110,205,255,.30),transparent 70%),
      radial-gradient(46vmax 40vmax at 78% 88%,rgba(185,160,255,.28),transparent 70%)}
  body::before{content:'';position:fixed;inset:-12vh -12vw;z-index:-1;pointer-events:none;background:var(--ambient)}
  :root[data-theme="light"] body::before{background:var(--ambient)}
  /* Фоновый слой .bgfx в тёмной теме был плотным и закрывал этот свет целиком —
     стеклу снова нечего было показать. Свет теперь в нём самом. */
  .bgfx{background:var(--ambient),var(--bg)!important}
  :root[data-theme="light"] .bgfx{background:transparent!important}
  /* Полноэкранные окна (товар, заказ, переписка, поиск) закрывают главный экран —
     прозрачными им быть нельзя, но свет у них свой, иначе пластины внутри серые. */
  .ordview:not(#walletView):not(#matchView),.chatview,.searchview{background:var(--ambient),var(--bg)}
  :root[data-theme="light"] :is(.ordview:not(#walletView):not(#matchView),.chatview,.searchview){background:var(--ambient),linear-gradient(180deg,#ffffff,#eef2f8 45%,#e6ecf6)}
  /* Шапка страницы товара — закреплена над прокруткой: стекло с размытием. */
  .pdtop{background:linear-gradient(180deg,rgba(30,36,51,.66),rgba(30,36,51,.52))!important;border-bottom-color:rgba(255,255,255,.08)!important}
  :root[data-theme="light"] .pdtop{background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(255,255,255,.58))!important;border-bottom-color:rgba(20,40,80,.06)!important}
  .p__imgwrap{background-color:rgba(255,255,255,.04)!important}
  :root[data-theme="light"] .p__imgwrap{background-color:rgba(118,128,150,.08)!important}
  .adban{background:linear-gradient(120deg,rgba(10,35,64,.74),rgba(16,52,95,.62) 55%,rgba(10,35,64,.74))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
  .pfsell--hero,:root[data-theme="dark"] .pfsell--hero{background:linear-gradient(135deg,rgba(30,34,26,.74),rgba(17,19,9,.8))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 14px 34px -22px rgba(0,0,0,.7)}
  /* В светлой теме карточка светлая, текст на ней тёмный — стекло тоже светлое. */
  :root[data-theme="light"] .pfsell--hero{background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(238,248,214,.62))!important;box-shadow:inset 0 1px 0 #fff,0 14px 30px -22px rgba(20,40,80,.35)}
  /* Лаймовые кнопки — «тонированное стекло»: блик сверху и мягкая тень, а не плоская заливка. */
  .btn:not(.sec):not(.ghost):not(:disabled),.p__cta:not(.out),.cbhero__cta,.matchcta__ic{box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -1px 0 rgba(0,0,0,.10),0 8px 18px -10px rgba(140,200,0,.55)!important}
  .sec,.mcard,.tcard,.capblock,.adrcard,.citem,.ordrow,.payrow,.subups,.p,.dcard,.stat,.ccard,.recocard,.mshop,.aob__card,.aob__sec,.aih__brief,.aih__ask,.aih__task,.aih__tile,.myshop,.ord2,.ordv__card,.faq,.promocard,.intel,.auc,.grp,.tour__card,.cosec,.cowallet,.pdsec,.tybox,.pfmenu,.pfstats,.estate,.matchcta,.cbhero{
    background:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,.035))!important;border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 -1px 0 rgba(255,255,255,.03),0 14px 34px -22px rgba(0,0,0,.7)!important}
  :root[data-theme="light"] :is(.sec,.mcard,.tcard,.capblock,.adrcard,.citem,.ordrow,.payrow,.subups,.p,.dcard,.stat,.ccard,.recocard,.mshop,.aob__card,.aob__sec,.aih__brief,.aih__ask,.aih__task,.aih__tile,.myshop,.ord2,.ordv__card,.faq,.promocard,.intel,.auc,.grp,.tour__card,.cosec,.cowallet,.pdsec,.tybox,.pfmenu,.pfstats,.estate,.cbhero){
    background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.5))!important;border:1px solid rgba(255,255,255,.95)!important;
    box-shadow:inset 0 1px 0 #fff,0 14px 30px -22px rgba(20,40,80,.35)!important}
  /* «Найти для меня» — тёмная плашка и в светлой теме: на ней белый текст. */
  .matchcta{background:linear-gradient(180deg,rgba(40,60,10,.55),rgba(20,28,8,.62))!important}
  :root[data-theme="light"] .matchcta{background:linear-gradient(180deg,rgba(30,40,12,.86),rgba(18,24,8,.9))!important;border-color:rgba(255,255,255,.4)!important}
  /* Шторка — как в Maps: заметно прозрачнее, контент за ней читается цветом. */
  .sheet{background:linear-gradient(180deg,rgba(34,40,56,.62),rgba(18,22,34,.74))!important}
  :root[data-theme="light"] .sheet{background:linear-gradient(180deg,rgba(255,255,255,.66),rgba(242,246,252,.76))!important}
  /* Колокольчик и корзина — одна стеклянная группа, как кнопки в шапке Telegram. */
  .dch__b{display:flex;align-items:center;gap:2px!important;padding:3px;border-radius:999px;background:var(--lg-fill);border:1px solid var(--lg-edge);box-shadow:var(--lg-spec),var(--lg-drop)}
  .dch__b .dch__ic{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
  .topgrp{display:flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:var(--lg-fill);border:1px solid var(--lg-edge);box-shadow:var(--lg-spec),var(--lg-drop)}
  .topgrp .icn{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
  .svflt,.cartfoot,.netbar,.lblbar{background:linear-gradient(180deg,rgba(34,40,56,.66),rgba(18,22,34,.78))!important}
  :root[data-theme="light"] :is(.svflt,.cartfoot,.netbar,.lblbar){background:rgba(255,255,255,.78)!important}
  /* Контраст на стекле (проверено по пикселям скриншотов, а не по CSS):
     подписи бара, «Match» и зелёные акценты в светлой теме темнее, плашка
     скидки — тёмно-красная, чтобы белые цифры читались. */
  :root[data-theme="light"] .tabbar button{color:#46536A}
  :root[data-theme="light"] .tabfab__lbl{color:#2F5600}
  :root[data-theme="light"] .mintro__t em{color:#3D6B00}
  .smini__off{background:#C92A1E!important}
  :root[data-theme="light"] .tabbar button.on{color:#2F5600}
  :root[data-theme="light"] :is(.aih__vp,.aih__pf) b.ok{color:#3D6B00}
  :root:not([data-theme="light"]) :is(.schstat__l,.vhero__s,.vhero__n){color:#C3CCD8}
  :root:not([data-theme="light"]) .aic__beta{color:#ECFF9A}
  /* 🗂 Разделы — отдельные экраны, как в iOS: заходят справа, у каждого своя
     стеклянная шапка «‹ Назад · Заголовок», своя прокрутка; назад — кнопкой,
     системной «назад» Telegram или жестом от левого края. */
  .scrhd{position:sticky;top:0;z-index:6;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;
    margin:0 -18px 12px;padding:calc(6px + var(--sat,0px)) 10px 6px;
    background:linear-gradient(180deg,rgba(30,36,51,.74),rgba(30,36,51,.56));border-bottom:1px solid var(--lg-edge)}
  :root[data-theme="light"] .scrhd{background:linear-gradient(180deg,rgba(255,255,255,.8),rgba(255,255,255,.62))}
  .scrhd__back{justify-self:start;display:inline-flex;align-items:center;gap:0;min-height:44px;max-width:100%;padding:0 8px 0 0;border:0;background:none;color:var(--lg-on);font-size:16px;font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .scrhd__back .eic{width:26px;height:26px;flex:0 0 auto}
  .scrhd__t{font-size:17px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw;text-align:center}
  .scr-push{animation:scrPush var(--d-3) var(--e-drawer) both}
  .scr-pop{animation:scrPop var(--d-3) var(--e-drawer) both}
  @keyframes scrPush{from{transform:translateX(100%)}to{transform:none}}
  @keyframes scrPop{from{transform:translateX(-28%);opacity:.55}to{transform:none;opacity:1}}
  /* Входы в разделы кабинета — стеклянные строки со стрелкой: это переход на экран, а не переключатель. */
  .cabnav{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 6px}
  .cabnav__i{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:78px;padding:12px;border-radius:20px;
    background:var(--lg-fill);border:1px solid var(--lg-edge);box-shadow:var(--lg-spec),var(--lg-drop);color:var(--ink);font-weight:800;font-size:14px;cursor:pointer;text-align:left;position:relative;transition:transform var(--d-2) var(--e-spring)}
  .cabnav__i .eic{width:22px;height:22px;color:var(--lg-on)}
  .cabnav__i .cabnav__go{position:absolute;right:10px;top:12px;width:18px;height:18px;color:var(--muted)}
  .cabnav__i:active{transform:scale(1.04)}
  /* Полоса у левого края: ловит жест «назад», пока открыт экран-раздел. Своя
     полоса нужна потому, что вертикально прокручиваемый экран отдал бы жест браузеру. */
  #edgeBack{position:fixed;left:0;top:0;bottom:0;width:18px;z-index:96;touch-action:none;display:none}
  body.edge-on #edgeBack{display:block}
  #pfLegacy.pfsheet #pfSecBack{background:linear-gradient(180deg,rgba(30,36,51,.74),rgba(30,36,51,.56))!important;border-bottom-color:var(--lg-edge)!important}
  :root[data-theme="light"] #pfLegacy.pfsheet #pfSecBack{background:linear-gradient(180deg,rgba(255,255,255,.8),rgba(255,255,255,.62))!important}
  #pfLegacy.pfsheet{background:var(--ambient),var(--bg)}
  :root[data-theme="light"] #pfLegacy.pfsheet{background:var(--ambient),linear-gradient(180deg,#ffffff,#eef2f8 45%,#e6ecf6)}
  @media (prefers-reduced-motion:reduce){.scr-push,.scr-pop{animation:scrFade var(--d-2) var(--e-out) both}}
  @keyframes scrFade{from{opacity:0}to{opacity:1}}
  /* Лента и список чатов листаются вертикально браузером, горизонталь — наш свайп между экранами. */
  #grid,#viewChats,body.tab-chats{touch-action:pan-y}
  .ordview.on,#chatView.on,#pfLegacy.on{box-shadow:-14px 0 34px -16px rgba(0,0,0,.55)}
  .admfn span{position:relative;flex:1;min-width:0}
  .admfn__bar{display:block;height:4px;margin-top:5px;border-radius:999px;background:var(--lg-on);opacity:.55}
  .admfn em{font-style:normal;font-weight:700;color:var(--muted);margin-left:6px;font-size:12px}
  .admfn--worst em{color:var(--err)}
  .admfn--worst .admfn__bar{background:var(--err)}
  /* 📸 Фото пачкой */
  .bp__pick{width:100%;height:auto;min-height:64px;flex-direction:row;gap:10px;margin:12px 0 4px;font-size:14px;font-weight:700;color:var(--ink)}
  .bp__th{display:flex;gap:4px;flex:0 0 auto}.bp__th img,.bp__th i{width:44px;height:44px;border-radius:12px;object-fit:cover;background:var(--card2);display:grid;place-items:center;color:var(--muted)}
  .bp__th i .eic{width:20px;height:20px}
  .bp__skip{flex:0 0 auto;min-height:44px}
  .bp__pub{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
  /* 💊 Форма iOS 26: всё, что нажимают или во что вводят, — капсула; круглые
     кнопки-иконки — круг. Прямоугольник со скруглёнными углами 12–16 px —
     язык прошлых лет, рядом с капсулами бара и поиска он выглядел устаревшим.
     Карточки — крупнее скругление (28), а то, что лежит внутри, — концентрично:
     радиус внутреннего = радиус карточки минус отступ, иначе углы «спорят».
     Иконки-плитки разделов (квадрат со скруглением) не трогаем — в iOS они
     такие же. Многострочное поле — не капсула: у текста в несколько строк
     полукруглые края съели бы буквы. */
  .btn,.backbuyer,.scpt__del,.cbhero__cta,.estate__btn,.p__cta,.pfcb__btn,.adban__b,.aob__more,.cartpeek__act,.dcoc__go,.dcphs__add,.dcsp__pill,.dpdctry__b,.dpditem__go,.favbtn,.favmass__b,.gmrow__b,.hsstep__go,.mctab__pick,.mctabwrap,.mintro__cta,.msreq__b,.msvar__add,.mtabs,.mtab,.myshop__go,.pdcbpill,.phtab,.pricebtn,.promocard__b,.promohero__b,.refcode__b,.remchip,.seg,.seg__b,.stscale__b,.svflt__go,.tmrolebtn,.undob__go,.upsell__b,.vipcard__btn,.welc__cta,.srch2,.chip,.aob__chip,.sz,select,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]){border-radius:999px!important}
  .qty,.qty button{border-radius:999px!important}
  textarea,textarea.aob__in{border-radius:20px!important}
  .fbtn,.pfback__btn,.ccard__more,.lblbar__x{border-radius:999px!important}
  .seg>.lgx{border-radius:999px}
  .sec,.mcard,.tcard,.capblock,.adrcard,.citem,.ordrow,.payrow,.subups,.p,.dcard,.ccard,.recocard,.mshop,.aob__card,.aob__sec,.aih__brief,.aih__ask,.aih__task,.aih__tile,.myshop,.ord2,.ordv__card,.faq,.promocard,.intel,.auc,.grp,.tour__card,.cosec,.cowallet,.pdsec,.tybox,.pfmenu,.pfstats,.estate,.matchcta,.cbhero,.cabnav__i,.adban,.pfsell--hero{border-radius:28px!important}
  .p__imgwrap{border-radius:20px!important;margin:8px 8px 0;width:auto!important}
  .dcard__img{border-radius:20px;margin:8px 8px 0}
  /* 📷 Товар по фото */
  .qp__wait{display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px 0 18px;color:var(--muted);font-weight:700}
  .qp__wait img{width:160px;height:160px;object-fit:cover;border-radius:28px;box-shadow:var(--lg-spec),var(--lg-drop)}
  .qp__wait span{display:flex;align-items:center;gap:8px}
  /* 🧭 Сжимающаяся шапка, как в iOS: большой заголовок уехал — сверху появляется
     компактная стеклянная полоса. На Главной в ней поиск-капсула и корзина,
     на остальных вкладках — название экрана. Появляется только при прокрутке. */
  #minibar{position:fixed;left:0;right:0;top:0;z-index:34;display:flex;align-items:center;gap:8px;padding:calc(var(--tgtop,0px) + 6px) 12px 8px;
    background:linear-gradient(180deg,rgba(24,28,40,.78),rgba(24,28,40,.6));border-bottom:1px solid var(--lg-edge);box-shadow:var(--lg-spec);
    transform:translateY(-110%);opacity:0;pointer-events:none;transition:transform var(--d-3) var(--e-drawer),opacity var(--d-2) var(--e-out)}
  :root[data-theme="light"] #minibar{background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.68))}
  #minibar.on{transform:none;opacity:1;pointer-events:auto}
  body.sheet-on #minibar,body.pfsheet-on #minibar{transform:translateY(-110%);opacity:0;pointer-events:none}
  .mb__t{flex:1;text-align:center;font-size:17px;font-weight:800;color:var(--ink)}
  .mb__logo,.mb__ic{width:40px;height:40px;flex:0 0 auto;border-radius:999px;border:0;background:transparent;display:grid;place-items:center;color:var(--ink);cursor:pointer;position:relative}
  .mb__logo svg{width:26px;height:26px}.mb__ic .eic{width:21px;height:21px}
  .mb__q{flex:1;min-width:0;height:40px;border-radius:999px;border:1px solid var(--lg-edge);background:var(--lg-fill);box-shadow:var(--lg-spec);display:flex;align-items:center;gap:8px;padding:0 14px;color:var(--muted);font-size:15px;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden}
  .mb__q .eic{width:18px;height:18px;flex:0 0 auto}
  .mb__ic .dot{position:absolute;top:2px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--lime);color:#141a05;font-size:11px;font-weight:900;display:grid;place-items:center}
  /* ↓ Потянуть, чтобы обновить: стеклянный кружок сверху, стрелка поворачивается
     по мере протяжки, отпустил за порогом — крутится, пока идёт загрузка. */
  #ptr{position:fixed;left:50%;top:calc(var(--tgtop,0px) + 8px);z-index:36;width:40px;height:40px;margin-left:-20px;border-radius:999px;
    background:var(--lg-fill),var(--bg2);border:1px solid var(--lg-edge);box-shadow:var(--lg-spec),var(--lg-drop);display:grid;place-items:center;color:var(--lg-on);
    transform:translateY(-70px);opacity:0;pointer-events:none}
  #ptr.anim{transition:transform var(--d-3) var(--e-spring),opacity var(--d-2) var(--e-out)}
  .ptr__ic{width:20px;height:20px;border:2.5px solid currentColor;border-top-color:transparent;border-radius:999px}
  #ptr.spin .ptr__ic{animation:ptrSpin .8s linear infinite}
  @keyframes ptrSpin{to{transform:rotate(360deg)}}
  @media (prefers-reduced-motion:reduce){#minibar{transition:none}#ptr.spin .ptr__ic{animation-duration:2s}}
  /* 🎬 Подпись режима показа — непрозрачная. Карточка жила в общей «стеклянной»
     группе, и экран под ней просвечивал сквозь текст: на презентации подпись
     не читалась. Фон сплошной, тень темнее, текст — основным цветом. */
  .tour .tour__card{background:var(--card-solid)!important;box-shadow:0 18px 50px -12px rgba(0,0,0,.75),0 0 0 1px var(--line)!important}
  .tour .tour__card .tour__s{color:var(--ink);opacity:.82}
  .tour.show--open{background:rgba(6,10,18,.45)}
