/* ══════════ TELEGRAM MINI APP — адаптация макета прототипа ══════════
   Без рамки iPhone и статус-бара: экран занимает всё окно Telegram.
   Высота — по фактическим границам окна Mini App (position:fixed), а не по --tg-viewport-stable-height:
   когда появляется MainButton, Telegram уменьшает окно, а переменная обновляется с опозданием и на iOS
   расходится с размером окна — экран прыгал и между меню и кнопкой оставался разрыв.
   отступы — из safe-area Telegram (полноэкранный режим) и env() браузера. */
:root{
  --tma-top:calc(var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px));
  --tma-bottom:max(var(--tg-safe-area-inset-bottom,0px),env(safe-area-inset-bottom,0px));
}
html,body{height:100%;overscroll-behavior:none}
body{display:block;padding:0;min-height:0;background:var(--b0);overflow:hidden}
body.light{background:var(--b0)}
.tma-frame{display:contents}
.sc{height:100vh;height:100dvh;max-height:none;width:100%;max-width:560px;margin:0 auto;padding-top:var(--tma-top)}
body.tma-tg .sc{position:fixed;top:0;bottom:0;left:0;right:0;height:auto}
/* overflow:hidden можно прокрутить программно (scrollIntoView, фокус поля) — тогда меню уезжало вверх; clip — нельзя */
.sc{overflow:clip}
/* невидимые шторки не должны размывать экран своим backdrop-filter */
.overlay{visibility:hidden;transition:opacity .28s ease,visibility 0s linear .28s}
.overlay.open{visibility:visible;transition:opacity .28s ease}
.dlg-ov{visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}
.dlg-ov.open{visibility:visible;transition:opacity .2s ease}
/* в обычном браузере (имитация) — окно размера телефона по центру, под ним — панель Telegram с MainButton */
body.tma-mock{background:#07090F;display:flex;align-items:center;justify-content:center;height:100vh}
body.tma-mock.light{background:#DCE1EA}
body.tma-mock .tma-frame{display:flex;flex-direction:column;width:390px;max-width:100vw;height:min(820px,100vh);border-radius:17.5px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.45);background:var(--b1)}
body.tma-mock .sc{flex:1;min-height:0;height:auto;max-width:none}
@media (max-width:430px){body.tma-mock .tma-frame{width:100vw;height:100vh;border-radius:0}}
.sh{padding-top:14px}

/* нижнее меню: 4 вкладки + отступ безопасной зоны */
.bn{padding-bottom:calc(10px + var(--tma-bottom))}
.bni{padding:8px 2px}
.bnil{font-size:9px}

/* назад — системной кнопкой Telegram (BackButton); кнопка над шторкой остаётся только в имитации */
body.tma-tg .sheet-back{display:none!important}
.sheet{padding-bottom:calc(32px + var(--tma-bottom))}

/* сегменты вкладки «Проверка» */
.tma-seg{margin:12px 24px 4px}
.tma-seg .seg-i{flex:1;text-align:center;padding:7px 4px;font-size:11.5px}

/* примеры адресов: «Пример:» отдельно, три плашки в одну строку */
/* в одну строку от 360 px; на более узких экранах последняя плашка переносится, а не вылезает за край */
.tma-smpl{flex-wrap:wrap;align-items:center;gap:5px}
.tma-smpl .smpl-l{font-size:10.5px;color:var(--t2);flex-shrink:0;margin-right:1px}
.tma-smpl .nc{padding:6px 8px;font-size:11px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.tma-smpl .dotc{margin:0}

/* тип проверки: экспресс / полная */
.tma-kind{display:flex;gap:8px;padding:12px 24px 0}
.tma-kind .apk-mini{position:relative}
.tma-kind .apk-mini.dis{opacity:.5}
.tma-hint{padding:8px 24px 0;font-size:10.5px;color:var(--t1);line-height:1.45}
.tma-hint b{color:var(--t0)}

/* цены в Telegram Stars */
.stars{display:inline-flex;align-items:center;gap:3px;font-weight:800;white-space:nowrap}
.stars::before{content:'';width:.95em;height:.95em;flex-shrink:0;background:linear-gradient(135deg,#FFD34E,#F5A623);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7L12 17.2 5.8 20.9l1.6-7L2 9.2l7.1-.6z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7L12 17.2 5.8 20.9l1.6-7L2 9.2l7.1-.6z'/%3E%3C/svg%3E") center/contain no-repeat}
.tprice .usd,.tma-usd{display:block;font-size:9.5px;font-weight:600;color:var(--t2);margin-top:1px}

/* полная проверка: дополнительные блоки отчёта */
.fr-card{margin:12px 24px 0;background:var(--b2);border:1px solid var(--bo);border-radius:13px;padding:12px 14px}
.fr-h{font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--t2);margin-bottom:6px;display:flex;justify-content:space-between}
.fr-r{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--bo);font-size:11.5px}
.fr-r:last-child{border-bottom:none}
.fr-r b{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fr-r small{font-family:var(--fm);font-size:10.5px;color:var(--t1)}
.fr-r em{font-style:normal;font-family:var(--fm);font-size:11px;font-weight:700;min-width:26px;text-align:right}
.fr-hop{display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;width:20px;height:20px;border-radius:5px;background:var(--b3);color:var(--t1);flex-shrink:0}
.fr-graph{width:100%;height:auto;display:block}
.fr-graph line{stroke:var(--bm);stroke-width:1.2}
.fr-graph text{font-family:var(--fm);font-size:7px;fill:var(--t1)}
.fr-lock{margin:12px 24px 0;padding:12px 14px;border-radius:11px;border:1px dashed var(--bm);font-size:11px;color:var(--t1);line-height:1.5;text-align:center}
.fr-lock b{color:var(--t0)}

/* рынок: пока грузятся свечи */
.mk-wait{height:190px;display:flex;align-items:center;justify-content:center;font-size:11.5px;color:var(--t2)}

/* проверка ссылки */
.lk-cmp{margin:10px 24px 0;background:var(--b2);border:1px solid var(--bo);border-radius:11px;padding:11px 13px;font-family:var(--fm);font-size:12px;line-height:1.7}
.lk-cmp small{display:block;font-family:var(--fu);font-size:9.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--t2)}
.lk-cmp .x{background:rgba(240,69,90,.18);color:var(--bd);border-radius:2.5px;padding:0 1px}

/* мониторинг */
.mon-hero{margin:12px 24px 0;padding:14px;border-radius:14.5px;background:linear-gradient(135deg,color-mix(in srgb,var(--bp) 12%,var(--b2)),var(--b2));border:1px solid var(--bo);display:flex;gap:12px;align-items:center}
.mon-hero .lg{width:48px;height:48px;flex-shrink:0}
.mon-hero .lg svg{width:48px;height:48px;fill:none;stroke:var(--bp);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.mon-hero .lg svg .d{fill:var(--bp);fill-opacity:.15;stroke:none}
.mon-hero .lg svg .h{stroke-opacity:.5}
.mon-hero b{display:block;font-size:14px;font-weight:800;letter-spacing:-.2px}
.mon-hero span{display:block;font-size:11px;color:var(--t1);margin-top:2px;line-height:1.45}
.mon-stat{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 24px 0}
.mon-stat div{background:var(--b2);border:1px solid var(--bo);border-radius:10.5px;padding:9px 10px}
.mon-stat b{display:block;font-size:16px;font-weight:800;font-family:var(--fm)}
.mon-stat small{font-size:9.5px;color:var(--t1)}
.wl-row{display:flex;align-items:center;gap:11px;padding:11px 14px;border-bottom:1px solid var(--bo);cursor:pointer}
.wl-row:last-child{border-bottom:none}
.wl-sc{width:38px;height:38px;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--fm);font-weight:800;font-size:13px;flex-shrink:0}
.wl-sc small{font-size:6.5px;font-weight:700;letter-spacing:.4px;opacity:.8}
.wl-in{flex:1;min-width:0}
.wl-n{font-size:12.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wl-a{font-family:var(--fm);font-size:10px;color:var(--t1);margin-top:2px}
.wl-row.off{opacity:.5}
.al-row{display:flex;gap:11px;padding:12px 14px;border-bottom:1px solid var(--bo);cursor:pointer}
.al-row:last-child{border-bottom:none}
.al-ic{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px}
.al-t{font-size:12.5px;font-weight:700}
.al-s{font-size:10.5px;color:var(--t1);margin-top:2px;line-height:1.4}
.al-row.done{opacity:.55}
.al-acts{display:flex;flex-wrap:wrap;gap:6px;padding:12px 24px 0}
.box{margin:0 24px;background:var(--b2);border:1px solid var(--bo);border-radius:13px;overflow:hidden}
.box .toggle-row{padding:12px 14px}
.thr{display:flex;gap:6px;padding:10px 14px 12px}
.thr span{flex:1;text-align:center;padding:8px 4px;border-radius:8px;background:var(--b3);border:1px solid var(--bo);font-size:11px;font-weight:700;color:var(--t1);cursor:pointer}
.thr span.on{background:rgba(0,212,170,.1);border-color:rgba(0,212,170,.4);color:var(--bp-t)}
.thr span small{display:block;font-size:9px;font-weight:600;color:var(--t2);margin-top:1px}

/* профиль */
.pf-user{margin:12px 24px 0;display:flex;align-items:center;gap:12px}
.pf-av{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#00D4AA,#1A56F0);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff;flex-shrink:0;overflow:hidden}
.pf-av img{width:100%;height:100%;object-fit:cover}
.pf-un b{display:block;font-size:16px;font-weight:800}
.pf-un span{font-size:11px;color:var(--t1);font-family:var(--fm)}
.pf-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--bo);cursor:pointer;font-size:12.5px}
.pf-row:last-child{border-bottom:none}
.pf-row>span{flex:1;min-width:0}
.pf-row small{display:block;font-size:10.5px;color:var(--t1);margin-top:2px;line-height:1.4}
.pf-row em{font-style:normal;font-size:11.5px;font-weight:700;color:var(--t1);flex-shrink:0}
.pf-ic{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;overflow:hidden;
  background:linear-gradient(145deg,var(--c,#5B8FFF),var(--c2,#2747D0));box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(0,0,0,.18),0 3px 10px -4px var(--c2,#2747D0)}
/* блик на плитке */
.pf-ic::before{content:'';position:absolute;left:0;top:0;width:70%;height:55%;background:radial-gradient(ellipse at top left,rgba(255,255,255,.32),transparent 70%);pointer-events:none}
.pf-ic svg{width:20px;height:20px;position:relative;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pf-ic svg .d{fill:#fff;fill-opacity:.2;stroke:none}
.pf-ic svg .d2{fill:#fff;fill-opacity:.45;stroke:none}
.pf-ic svg .h{stroke-opacity:.6;stroke-width:1.2}
.pf-ic svg .dot{fill:#fff;stroke:none}
.pf-ic.lg{width:44px;height:44px;border-radius:10.5px}.pf-ic.lg svg{width:26px;height:26px}
.pf-ic[data-k=checks]{--c:#19E6BE;--c2:#008F78}.pf-ic[data-k=protect]{--c:#5C93FF;--c2:#2747D0}.pf-ic[data-k=purchases]{--c:#FFC85C;--c2:#D6860E}
.pf-ic[data-k=write]{--c:#4FD3F7;--c2:#1383C2}.pf-ic[data-k=cmd_check]{--c:#3FE08C;--c2:#0E8F55}.pf-ic[data-k=cmd_watch]{--c:#A986FF;--c2:#5F3FD8}
.pf-ic[data-k=inline]{--c:#4CB8F5;--c2:#1C78C9}.pf-ic[data-k=group]{--c:#FF9A6B;--c2:#D4532A}.pf-ic[data-k=lang]{--c:#6FA8FF;--c2:#3A4FD6}
.pf-ic[data-k=theme]{--c:#FFB84D;--c2:#C9670F}.pf-ic[data-k=blacklist]{--c:#FF6478;--c2:#C3233B}.pf-ic[data-k=sync]{--c:#5FD0E8;--c2:#1A8AA6}
.pf-ic[data-k=delete]{--c:#FF6478;--c2:#B11E35}.pf-ic[data-k=reset]{--c:#9AA6C8;--c2:#56607F}.pf-ic[data-k=app]{--c:#00E0B8;--c2:#1A56F0}
.pf-cmd{font-family:var(--fm);font-weight:700;color:var(--bp-t)}
.pf-app{margin:14px 24px 0;padding:14px;border-radius:14.5px;background:linear-gradient(135deg,rgba(26,86,240,.2),rgba(0,212,170,.12));border:1px solid rgba(91,143,255,.3)}
.pf-app-h{display:flex;align-items:center;gap:12px}
.pf-app b{display:block;font-size:14px;font-weight:800}
.pf-app span{display:block;font-size:11px;color:var(--t1);margin-top:4px;line-height:1.5}
.pf-app .cbtn{margin-top:12px;height:42px;width:100%}
.lang-sw{display:flex;gap:6px}
.lang-sw span{padding:5px 10px;border-radius:6.5px;background:var(--b3);border:1px solid var(--bo);font-size:11px;font-weight:700;color:var(--t1);cursor:pointer}
.lang-sw span.on{background:rgba(0,212,170,.1);border-color:rgba(0,212,170,.4);color:var(--bp-t)}

/* оплата Stars (имитация окна Telegram вне Telegram) */
.st-pay{padding:20px 24px 0;text-align:center}
.st-pay .ic{width:64px;height:64px;border-radius:14.5px;margin:0 auto 10px;background:linear-gradient(135deg,#FFD34E,#F5A623);display:flex;align-items:center;justify-content:center;font-size:30px}
.st-pay b{display:block;font-size:17px;font-weight:800}
.st-pay span{display:block;font-size:12px;color:var(--t1);margin-top:4px;line-height:1.5}
.st-pay .amt{font-size:30px;margin-top:12px;justify-content:center}
.st-bal{margin:12px 24px 0;font-size:11px;color:var(--t2);text-align:center}

/* превью сообщения бота в чате */
.tma-chat{position:absolute;left:12px;right:12px;top:calc(var(--tma-top) + 10px);z-index:400;background:var(--b2);border:1px solid var(--bm);border-radius:13px;padding:10px 12px;box-shadow:0 12px 40px rgba(0,0,0,.35);
  transform:translateY(-140%);transition:transform .35s cubic-bezier(.22,1,.36,1);cursor:pointer}
.tma-chat.show{transform:translateY(0)}
.tc-h{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--t2)}
.tc-h i{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#00D4AA,#1A56F0);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:10px;font-weight:800;color:#fff}
.tc-h b{color:var(--t0);font-size:12px}
.tc-m{font-size:12px;line-height:1.45;margin-top:6px;white-space:pre-line}
.tc-k{display:flex;gap:6px;margin-top:8px}
.tc-k span{flex:1;text-align:center;font-size:11px;font-weight:700;padding:7px 4px;border-radius:7px;background:var(--b3);color:#5B8FFF}

/* имитация нижней панели Telegram с MainButton */
.tma-bar{flex-shrink:0;padding:8px 12px 12px;background:var(--b1);border-top:1px solid var(--bo);position:relative}
.tma-bar[hidden]{display:none}
.tma-mainbtn{height:46px;border-radius:9.5px;background:#2AABEE;color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;padding:0 12px;text-align:center}
.tma-mainbtn.dis{opacity:.5;pointer-events:none}

/* тёмная тема: заголовки разделов и неактивные пункты нижнего меню светлее —
   --t2 (#4E5878) на тёмном фоне давал контраст ~2.5:1; заголовки — ~11:1, меню — ~8:1; светлая тема не меняется */
body:not(.light) .sl,body:not(.light) .mk-sh span{color:#C6CDE2}
body:not(.light) .mk-sh small{color:#7F89AB}
body:not(.light) .bni:not(.actv) .bnic svg{stroke:#A6AFCC}
body:not(.light) .bni:not(.actv) .bnil{color:#A6AFCC}
/* вкладки режимов «Проверки» (AML-риск / Сеть и монета / Ссылка): неактивные на 50% светлее --t2 —
   #4E5878, смешанный пополам с белым */
body:not(.light) .tma-seg .seg-i:not(.actv){color:#A6ABBB}

/* ── контраст (проверка по WCAG: 4.5:1 обычный текст, 3:1 крупный) ── */
/* светлая тема: янтарный «среднего риска» #EE9A12 хорош для полос и заливок, но как цвет текста на белом — 2.3:1.
   Текст с этим цветом (проценты категорий, скор в истории и мониторинге, число шкалы) задаётся инлайн-стилем
   color:var(--risk-mid) — для него тёмный янтарный ~5:1 */
body.light [style*="color:var(--risk-mid)"]{color:#9A6100!important}
body.light .bgw{color:#8F5B00}
body.light .tc-k span{color:#2F55D4}
.wl-sc small{opacity:1;font-size:7px}
/* неактивная синяя кнопка: не полупрозрачная (белый на бледном синем терялся), а тонированная плашка с синим текстом */
.cbtn-b.dis{opacity:1;background:rgba(26,86,240,.2);color:#A9BDF7;box-shadow:none}
body.light .cbtn-b.dis{background:#DCE4FB;color:#3552C2}
/* тёмная тема: второстепенный серый --t2 (#4E5878) — 2.4–2.8:1 на тёмных карточках. В Mini App он светлее (~4.7–5:1):
   подписи «Пример:», «≈ $», «Монета», номера и капитализация на «Рынке», заметки об источниках, пустые списки */
body:not(.light){--t2:#7A84A6}
/* красный текст на тёмном фоне (падение цены, «Заблокировать сайт») — 4.1–4.3:1, светлее до ~5:1; заливки не меняются */
body:not(.light) .mk-ch.dn,body:not(.light) [style*="color:var(--bd)"]{color:#FF6B7E!important}

/* ── рынок: интерактивный график (js/market-chart.js) ── */
.mk-tv{position:relative;height:300px;margin:4px -4px 0;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.mk-tv-lg{position:absolute;left:6px;top:2px;z-index:3;display:flex;gap:9px;align-items:center;font:600 9.5px var(--fm);color:var(--t1);pointer-events:none}
.mk-tv-lg span{display:inline-flex;align-items:center;gap:4px}
.mk-tv-lg i{width:9px;height:2px;border-radius:1px;display:inline-block}
.mk-tv-lg .src{color:var(--t2)}
.mk-tv-lg .live{width:6px;height:6px;border-radius:50%;background:var(--bsu);box-shadow:0 0 0 3px rgba(0,192,118,.18);margin-right:2px;animation:pulse2 1.6s infinite}
.mk-tv-st{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 24px;font-size:11.5px;color:var(--t1);pointer-events:none}
.mk-tv-st[hidden]{display:none}
/* таймфреймы: крупнее и свободнее, справа — «к последним свечам» */
.mk-tf{gap:4px;margin-top:10px;flex-wrap:nowrap}
.mk-tf span{font-size:11.5px;padding:5px 0;flex:1;text-align:center;border-radius:6.5px;background:var(--b3)}
.mk-tf span.actv{background:rgba(0,212,170,.14)}
.mk-tv-fit{flex-shrink:0;width:30px;height:27px;border-radius:6.5px;border:1px solid var(--bo);background:var(--b3);color:var(--t1);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-left:2px}
.mk-tv-fit svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mk-ohlc{font-size:10px;margin:8px 0 0;gap:2px 4px;flex-wrap:wrap;white-space:normal;overflow:visible}
.mk-ohlc b{margin-right:4px}
/* кнопки под графиком: два ряда вместо пяти кнопок в строку */
.mk-act{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:10px}
.mk-act span{grid-column:span 2;height:36px;font-size:12px;gap:6px;border-radius:8px}
.mk-act span.buy,.mk-act span.sell{grid-column:span 3}
.mk-act span svg{width:14px;height:14px}
/* полоса рынка и статистика монеты — подписи крупнее */
.mk-strip{gap:6px}
.mk-strip>div{padding:7px 8px}
.mk-strip small{font-size:8.5px;letter-spacing:.2px}
.mk-strip b{font-size:12.5px;margin-top:3px}
.mk-strip i{font-size:9.5px;margin-top:1px}
.mk-stats{gap:6px;margin-top:10px}
.mk-stats>div{padding:7px 8px}
.mk-stats small{font-size:9px}
.mk-stats b{font-size:12px}

/* ── профиль: генеративный аватар (icons.js, pfAvatar) ── */
@property --avA{syntax:'<angle>';initial-value:0deg;inherits:false}
.pf-av2{position:relative;flex-shrink:0;border-radius:50%}
/* кольцо: градиент тарифа, медленно вращается */
.pf-av2 .ring{position:absolute;inset:-3px;border-radius:50%;padding:2.5px;
  background:conic-gradient(from var(--avA),var(--r1),var(--r2),var(--r1) 60%,transparent 75%,var(--r1));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:avSpin 6s linear infinite}
@keyframes avSpin{to{--avA:360deg}}
.pf-av2 .core{position:absolute;inset:2px;border-radius:50%;overflow:hidden;box-shadow:0 6px 18px -6px rgba(0,0,0,.5)}
.pf-av2 .core>svg{width:100%;height:100%;display:block}
.pf-av2 .glass{position:absolute;left:50%;top:50%;width:54%;height:54%;transform:translate(-50%,-50%);border-radius:50%;
  background:rgba(8,12,24,.32);backdrop-filter:blur(5px) saturate(140%);-webkit-backdrop-filter:blur(5px) saturate(140%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),0 4px 14px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;overflow:hidden}
.pf-av2 .glass b{font-size:17px;font-weight:800;color:#fff;letter-spacing:.5px;text-shadow:0 1px 6px rgba(0,0,0,.35)}
.pf-av2 .glass img{width:100%;height:100%;object-fit:cover}
.pf-av2 .badge{position:absolute;right:-3px;bottom:-3px;width:22px;height:22px;border-radius:50%;background:var(--bc);border:2px solid var(--b0);
  display:flex;align-items:center;justify-content:center}
.pf-av2 .badge svg{width:12px;height:12px;fill:none;stroke:#0B0E17;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
body.light .pf-av2 .badge{border-color:#fff}
@media (prefers-reduced-motion:reduce){.pf-av2 .ring{animation:none}}

/* ── торговый бот: плитки иконок (icons.js, TB_ICO) — как .pf-ic ── */
.tb-ic{width:34px;height:34px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;overflow:hidden;vertical-align:middle;
  background:linear-gradient(145deg,var(--c),var(--c2));box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(0,0,0,.18),0 3px 10px -4px var(--c2)}
.tb-ic::before{content:'';position:absolute;left:0;top:0;width:70%;height:55%;background:radial-gradient(ellipse at top left,rgba(255,255,255,.32),transparent 70%);pointer-events:none}
.tb-ic svg{width:20px;height:20px;position:relative;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tb-ic svg .d{fill:#fff;fill-opacity:.2;stroke:none}.tb-ic svg .d2{fill:#fff;fill-opacity:.4;stroke:none}
.tb-ic svg .h{stroke-opacity:.6;stroke-width:1.2}.tb-ic svg .dot{fill:#fff;stroke:none}
.tb-ic.lg{width:42px;height:42px;border-radius:9.5px}.tb-ic.lg svg{width:25px;height:25px}
.tb-ic.sm{width:28px;height:28px;border-radius:6.5px;margin-right:8px}.tb-ic.sm svg{width:17px;height:17px}
.tb-ic.xs{width:20px;height:20px;border-radius:5px;margin-right:7px}.tb-ic.xs svg{width:13px;height:13px;stroke-width:1.8}
.tb-ic.xxs{width:15px;height:15px;border-radius:3px;margin-right:4px}.tb-ic.xxs svg{width:11px;height:11px;stroke-width:2}
.tb-ic[data-k=bot]{--c:#21E3C0;--c2:#5B47E8}.tb-ic[data-k=dca]{--c:#3FE08C;--c2:#0E8F55}.tb-ic[data-k=grid]{--c:#A986FF;--c2:#5F3FD8}
.tb-ic[data-k=trend]{--c:#5C93FF;--c2:#2747D0}.tb-ic[data-k=aml]{--c:#19E6BE;--c2:#008F78}
.mk-sh span:has(.tb-ic){display:inline-flex;align-items:center}
.trlt:has(.tb-ic){display:flex;align-items:center}
.bot-st i{margin:0 auto 4px;display:flex;justify-content:center}
.bot-st i .tb-ic{width:36px;height:36px}
.bot-st>div:not(.actv) .tb-ic{filter:saturate(.55) brightness(.9)}
.bot-promo{padding:11px 12px}
/* кнопки пауза / продолжить / стоп / удалить */
.tb-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:7px;background:var(--b3);border:1px solid var(--bo);margin-left:4px}
.tb-btn .tb-ctl{width:13px;height:13px;fill:currentColor;stroke:none}
.tb-btn.del .tb-ctl{fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.tb-btn.pause{color:var(--bg)}.tb-btn.play{color:var(--bsu)}.tb-btn.stop{color:var(--t1)}.tb-btn.del{color:var(--t2)}

/* ── кнопка «Бот» под графиком: переливающаяся градиентная рамка, градиентная иконка, блик, метка 24/7 ── */
@property --tbA{syntax:'<angle>';initial-value:0deg;inherits:false}
.mk-act span.bot-cta{position:relative;overflow:hidden;border:1.5px solid transparent;color:var(--t0);font-weight:800;
  background:linear-gradient(135deg,#0F1830,#141B33) padding-box,conic-gradient(from var(--tbA),#00E0B8,#2F7BFF,#A27BFF,#00E0B8) border-box;
  box-shadow:0 0 0 1px rgba(47,123,255,.08),0 6px 18px -8px rgba(47,123,255,.65);animation:tbSpin 4s linear infinite}
@keyframes tbSpin{to{--tbA:360deg}}
.mk-act span.bot-cta svg{width:19px;height:19px;stroke:url(#tbCtaG);stroke-width:1.7}
.mk-act span.bot-cta svg .d{fill:url(#tbCtaG);fill-opacity:.18;stroke:none}
.mk-act span.bot-cta svg .d2{fill-opacity:.35;stroke:none}
.mk-act span.bot-cta svg .h{stroke-opacity:.6;stroke-width:1.1}
.mk-act span.bot-cta svg .dot{fill:#00E0B8;stroke:none}
.mk-act span.bot-cta>b{font-weight:800;background:linear-gradient(90deg,#E9FFFA,#CFE0FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.mk-act span.bot-cta em{font-style:normal;font-size:8.5px;font-weight:800;letter-spacing:.4px;padding:2px 5px;border-radius:4px;color:#07090F;
  background:linear-gradient(135deg,#00E0B8,#5B8FFF)}
.mk-act span.bot-cta::after{content:'';position:absolute;top:0;bottom:0;width:38%;left:-45%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.18),transparent);transform:skewX(-18deg);animation:tbShine 3.4s ease-in-out infinite}
@keyframes tbShine{0%,55%{left:-45%}85%,100%{left:120%}}
body.light .mk-act span.bot-cta{background:linear-gradient(135deg,#FFFFFF,#F2F6FF) padding-box,conic-gradient(from var(--tbA),#00C2A0,#2F5BEA,#7B5CF0,#00C2A0) border-box;
  box-shadow:0 6px 16px -8px rgba(47,91,234,.5)}
body.light .mk-act span.bot-cta>b{font-weight:800;background:linear-gradient(90deg,#0A7764,#2F5BEA);-webkit-background-clip:text;background-clip:text}
@media (prefers-reduced-motion:reduce){.mk-act span.bot-cta,.mk-act span.bot-cta::after{animation:none}}

/* ── «Проверка»: вкладки с иконками, поле адреса, примеры — стеклянный стиль ── */
.tma-seg{padding:4px;gap:0;border-radius:13px;border:1px solid rgba(140,160,220,.13);
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01)),var(--b2)}
.tma-seg .seg-i{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 4px;font-size:12.5px;
  border-radius:10px;border:1px solid transparent;white-space:nowrap}
.tma-seg .seg-i svg{width:17px;height:17px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tma-seg .seg-i+.seg-i::before{content:'';position:absolute;left:-1px;top:20%;bottom:20%;width:1px;background:rgba(140,160,220,.14)}
.tma-seg .seg-i.actv::before,.tma-seg .seg-i.actv+.seg-i::before{opacity:0}
body:not(.light) .tma-seg .seg-i:not(.actv){color:#A6AFCC}
body:not(.light) .tma-seg .seg-i.actv{color:#2EF2CF;border-color:rgba(0,229,190,.42);
  background:linear-gradient(180deg,rgba(0,212,170,.24),rgba(0,140,130,.10));
  box-shadow:0 0 18px -5px rgba(0,212,170,.55),inset 0 1px 0 rgba(255,255,255,.08)}
.tma-seg .seg-i.actv::after{content:'';position:absolute;left:22%;right:22%;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,#2EF2CF,transparent);opacity:.8}
@media (max-width:360px){.tma-seg .seg-i{gap:5px;font-size:11.5px}.tma-seg .seg-i svg{width:15px;height:15px}}

#chkScroll .addrwrap .inp{padding:17px 16px;padding-right:104px;border-radius:13px;font-size:14px;
  border:1px solid rgba(140,160,220,.16);background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01)),var(--b2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
#chkScroll .addrwrap .inp:focus{border-color:rgba(0,229,190,.5)}
#chkScroll .addrwrap .inp::placeholder{font-family:var(--fu);font-weight:500;font-size:14.5px;color:#7F89AB}
#chkScroll .addrbtns{right:8px;gap:7px}
#chkScroll .addrbtns .abtn.ico{width:40px;height:40px;padding:0;justify-content:center;border-radius:10px;
  background:rgba(255,255,255,.035);border:1px solid rgba(140,160,220,.17);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
#chkScroll .addrbtns .abtn.ico svg{width:18px;height:18px;stroke:#DCE2F2;stroke-width:1.7}

.tma-smpl{gap:8px}
.tma-smpl .smpl-l{font-size:12px;color:#8C95B3;margin-right:2px}
.tma-smpl .nc{position:relative;overflow:hidden;padding:8px 13px;gap:8px;font-size:12px;border-radius:12px;color:#C6CDE2;
  border:1px solid rgba(140,160,220,.14);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}
.tma-smpl .nc::after{content:'';position:absolute;left:18%;right:18%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--gc,#5C93FF),transparent);opacity:.75}
.tma-smpl .dotc{width:9px;height:9px;box-shadow:0 0 8px var(--gc,transparent)}

body.light .tma-seg{background:#fff;border-color:rgba(21,27,45,.08)}
body.light .tma-seg .seg-i:not(.actv){color:#4B5470}
body.light .tma-seg .seg-i.actv{color:#0A7764;border-color:rgba(14,159,133,.35);background:linear-gradient(180deg,#E3F7F2,#F1FBF8);box-shadow:0 4px 12px -6px rgba(14,159,133,.45)}
body.light .tma-seg .seg-i.actv::after{background:linear-gradient(90deg,transparent,#0E9F85,transparent)}
body.light .tma-seg .seg-i+.seg-i::before{background:rgba(21,27,45,.09)}
body.light #chkScroll .addrwrap .inp{background:#fff;border-color:rgba(21,27,45,.1);box-shadow:0 1px 3px rgba(21,27,45,.05)}
body.light #chkScroll .addrwrap .inp:focus{border-color:var(--bp)}
body.light #chkScroll .addrwrap .inp::placeholder{color:#6B7390}
body.light #chkScroll .addrbtns .abtn.ico{background:#F4F6FA;border-color:rgba(21,27,45,.1);box-shadow:none}
body.light #chkScroll .addrbtns .abtn.ico svg{stroke:#3A4360}
body.light .tma-smpl .smpl-l{color:#5F6781}
body.light .tma-smpl .nc{color:#3A4360;background:#fff;border-color:rgba(21,27,45,.09)}
/* примеры — всегда три в ряд: размер шрифта следует за шириной экрана (11 px от 375 px и шире), отступы, точки и скругления — в em */
.tma-smpl{flex-wrap:nowrap;gap:0;font-size:clamp(7px,calc((100vw - 48px) / 29.7),11px)}
.tma-smpl>*+*{margin-left:.45em}
.tma-smpl .smpl-l{font-size:1em;margin-right:0}
.tma-smpl .nc{flex-shrink:0;padding:.64em .82em;gap:.45em;font-size:1em;border-radius:1.09em}
.tma-smpl .dotc{width:.73em;height:.73em}
#chkScroll .addrwrap .inp::placeholder{font-size:13.5px}#chkScroll .addrwrap .inp{text-overflow:ellipsis}

/* тарифы и пакеты: без меток «Популярный / Текущий / Выгодно» — освобождают место сверху карточек */
.tcard.apk .apk-hit{display:none}

/* рынок: список всех ценовых алертов — монета, направление, цель, дата и время создания */
.mk-al .mk-r{padding:9px 10px;cursor:default}
.mk-al .mk-r-in b{font-size:13px;gap:6px}
.mk-al .mk-ch{min-width:0;padding:2px 6px;font-size:9.5px}
.mk-al .mk-r-in small{font-size:10.5px;margin-top:2px}

/* «Сеть и монета»: строка, ожидающая ответа сервера (чёрный список эмитента) */
.cmp-r.wait i{background:rgba(92,147,255,.15);color:var(--bp-t,#5C93FF);animation:cmpWait 1s ease-in-out infinite alternate}
@keyframes cmpWait{to{opacity:.4}}

/* вкладки «Проверки» — всегда в одну строку и с полями внутри рамки:
   ширина вкладки — по её содержимому (длинная «Сеть и монета» шире), свободное место делится поровну;
   размер шрифта следует за шириной экрана, а если шрифт телефона шире (Android) — check.js уменьшает его до вмещения (--segfs) */
.tma-seg{gap:2px}
.tma-seg .seg-i,.tma-seg .seg-i svg{transition:none}
.tma-seg .seg-i{flex:1 1 auto;min-width:0;font-size:var(--segfs,clamp(8px,calc((100vw - 58px) / 28),12.5px));gap:.45em;padding:.78em .7em;overflow:hidden}
.tma-seg .seg-i span{overflow:hidden;text-overflow:clip}
.tma-seg .seg-i svg{width:1.3em;height:1.3em}

/* «Сеть и монета»: примеров до пяти — в две строки, в том же стеклянном стиле, без выхода за край экрана */
#cmpDemo{flex-wrap:wrap;gap:6px;align-items:center;row-gap:7px}
#cmpDemo .nc{padding:7px 11px;font-size:11.5px;border-radius:12px;white-space:nowrap;color:#C6CDE2;
  border:1px solid rgba(140,160,220,.14);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}
#cmpDemo>span{font-size:11.5px!important;color:#8C95B3!important}
body.light #cmpDemo .nc{color:#3A4360;background:#fff;border-color:rgba(21,27,45,.09)}
body.light #cmpDemo>span{color:#5F6781!important}

/* чёрный список: предупреждение под полем адреса и окно списка */
.adet-bl{margin-top:6px;padding:7px 10px;border-radius:9px;font-size:11.5px;line-height:1.4;color:#FF8A99;background:rgba(240,69,90,.12);border:1px solid rgba(240,69,90,.28)}
.adet-bl b{font-weight:800}
body.light .adet-bl{color:#A11F37;background:#FDECEF;border-color:rgba(161,31,55,.22)}
.bl-list{padding:0}
.bl-r{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--bo)}
.bl-r:last-child{border-bottom:none}
.bl-net{flex-shrink:0;display:flex}
.bl-in{flex:1;min-width:0}
.bl-in b{display:block;font-family:var(--fm);font-size:11.5px;font-weight:600;word-break:break-all;line-height:1.35}
.bl-in small{display:block;font-size:10.5px;color:var(--t1);margin-top:2px}
.bl-x{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--t2);background:var(--b3);border:1px solid var(--bo);cursor:pointer}
/* больше воздуха между строкой «Пример» и плашками «Экспресс / Полная» */
.tma-kind{padding-top:20px}
.pf-ic[data-k=support]{--c:#FFB547;--c2:#E8457C}

/* «AML-риск» и «Сеть и монета»: кнопки «Монета» и «Сеть» — 92% от исходного размера (−20%, затем +15%), по центру;
   списки открываются на всю ширину пары */
#amlDD,#cmpDD{width:calc(92% - 44px);margin:14px auto 0;gap:14px}
#amlDD .dd-l,#cmpDD .dd-l{font-size:9.8px;margin:0 0 5px 2px}
#amlDD .dd-b,#cmpDD .dd-b{gap:8px;padding:8px 9px;border-radius:9.8px}
#amlDD .dd-b .dd-ic .cg,#cmpDD .dd-b .dd-ic .cg{width:24px;height:24px}
#amlDD .dd-b .dd-ic .cg .chainb,#cmpDD .dd-b .dd-ic .cg .chainb{width:10px;height:10px}
#amlDD .dd-b .dd-t b,#cmpDD .dd-b .dd-t b{font-size:12px}
#amlDD .dd-b .dd-t small,#cmpDD .dd-b .dd-t small{font-size:9.8px}
#amlDD .dd-b .dd-c,#cmpDD .dd-b .dd-c{width:12.5px;height:12.5px}
#amlDD .dd-ck,#cmpDD .dd-ck{width:17px;height:17px;font-size:9.8px}
#ddAmlCoin .dd-m,#ddCmpCoin .dd-m{width:calc(200% + 14px);right:auto}
#ddAmlNet .dd-m,#ddCmpNet .dd-m{width:calc(200% + 14px);left:auto}
/* примеры «Сеть и монета»: тот же вид, что у соседних вкладок, но с переносом строки (плашек до пяти) */
.tma-smpl.tma-smpl-w{flex-wrap:wrap;font-size:11px;row-gap:7px}
.tma-smpl.tma-smpl-w>*+*{margin-left:0}
.tma-smpl.tma-smpl-w{gap:6px}
#cmpDemo.tma-smpl .nc{padding:.64em .82em;font-size:1em;border-radius:1.09em;color:#C6CDE2;
  border:1px solid rgba(140,160,220,.14);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}
#cmpDemo.tma-smpl>.smpl-l{font-size:11px!important;color:#8C95B3!important}
body.light #cmpDemo.tma-smpl .nc{color:#3A4360;background:#fff;border-color:rgba(21,27,45,.09)}
body.light #cmpDemo.tma-smpl>.smpl-l{color:#5F6781!important}

/* документы: иконки, окно с текстом, строка у оплаты */
.pf-ic[data-k=doc_terms]{--c:#5C93FF;--c2:#2747D0}.pf-ic[data-k=doc_privacy]{--c:#19E6BE;--c2:#008F78}
.pf-ic[data-k=doc_pay]{--c:#FFB547;--c2:#D97A00}.pf-ic[data-k=doc_method]{--c:#A986FF;--c2:#5F3FD8}
.doc-v{padding:4px 2px 8px;line-height:1.6;font-size:13.5px}
.doc-v header .brand{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--bp-t,#00D4AA)}
.doc-v h1{font-size:20px;line-height:1.25;margin:6px 0 4px}
.doc-v .ed{font-size:11.5px;color:var(--t2)}
.doc-v h2{font-size:14.5px;margin:18px 0 6px}
.doc-v p,.doc-v li{color:var(--t1)}
.doc-v ul{padding-left:18px;margin:6px 0}
.doc-v b{color:var(--t0)}
.doc-v a{color:var(--bp-t,#00D4AA);cursor:pointer}
.doc-v .ph{background:rgba(245,166,35,.16);color:#F5A623;border-radius:4px;padding:0 4px;font-weight:600}
.doc-v .draft{border:1px solid rgba(245,166,35,.35);background:rgba(245,166,35,.08);border-radius:10px;padding:8px 11px;font-size:12px;margin:12px 0 4px;color:var(--t1)}
.doc-nav{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 4px}
.doc-nav span{font-size:11.5px;font-weight:700;padding:6px 10px;border-radius:9px;border:1px solid var(--bo);background:var(--b3);color:var(--t1);cursor:pointer}
.doc-pay{font-size:11px;color:var(--t2);text-align:center;margin:10px 24px 0;line-height:1.5}
.doc-pay a{color:var(--t1);text-decoration:underline;cursor:pointer}
body.light .doc-v .ph{color:#8F5B00}

/* превью сообщения бота: спрятанное — целиком за верхним краем и невидимо. Раньше оно уезжало вверх только на
   собственную высоту, и в полноэкранном режиме (большой отступ сверху под кнопки Telegram) пустая рамка
   оставалась видна под кнопками «Закрыть» и «⌄ •••» */
.tma-chat{transform:translateY(calc(-100% - var(--tma-top) - 24px));visibility:hidden;transition:transform .35s cubic-bezier(.22,1,.36,1),visibility 0s linear .35s}
.tma-chat.show{transform:translateY(0);visibility:visible;transition:transform .35s cubic-bezier(.22,1,.36,1)}
