/* Чат поддержки, вариант D (30.09). Корень — только угол экрана высотой в
   капсулу: to-top.js ставит «Наверх» над чатом по высоте корня, а окно
   растёт из капсулы в своей рамке и в поток не входит. */
/* знак-цветок приходит из шаблона (style="--sup-mark:url-адрес картинки", путь через {% static %});
   здесь запасное значение — без него переменная числится необъявленной */
#sup-chat { --sup-mark: none; position: fixed; right: 20px; bottom: 20px; z-index: 90; height: 54px;
  /* подъём над панелью покупки пишет to-top.js в --corner-lift; кривая и время — как у самой панели */
  translate: 0 calc(-1 * var(--corner-lift, 0px));
  transition: translate .6s cubic-bezier(.33,1,.68,1), opacity .2s ease, visibility 0s; }
/* раскрытая панель корзины на узком экране: капсула уступает (to-top.js) */
#sup-chat.sup-under-dock { opacity: 0; visibility: hidden; pointer-events: none;
  transition: translate .6s cubic-bezier(.33,1,.68,1), opacity .2s ease, visibility 0s linear .2s; }
@media (prefers-reduced-motion: reduce) { #sup-chat { transition: none; } }
/* атрибут hidden обязан побеждать наши display-правила ниже — иначе
   панель «не закрывается» (баг: display:flex перебивал UA-стиль hidden) */
#sup-chat[hidden], #sup-chat-panel[hidden], #sup-chat-badge[hidden],
#sup-chat [hidden] { display: none; }

/* ── капсула «Спросить» ── ширину во время наведения и ответа ведёт скрипт
   пружиной; без него капсула просто по содержимому */
#sup-chat-fab {
  position: absolute; right: 0; bottom: 0; height: 54px; width: max-content;
  display: flex; align-items: center; gap: 10px; padding: 0 20px;
  border: 0; border-radius: 27px; background: var(--night); color: #fff;
  font-family: inherit; font-size: 16px; font-weight: 600; white-space: nowrap;
  overflow: hidden; cursor: pointer; text-align: left;
  /* Тень отдана glow.css: там свет разгорается, а своя высота над плоскостью
     уезжает в --glow-keep и остаётся в обоих состояниях. Свой box-shadow
     здесь перебил бы glow.css по весу id — и свет щёлкал бы. */
  --glow-keep: ,var(--float), 0 2px 8px var(--edge-card);
  /* свет — как в glow.css, но без opacity: её на каждом кадре пишет пружина,
     и переход из общего списка тянул капсулу следом с опозданием */
  transition: box-shadow var(--btn-glow-dur) var(--ease-ui),
              background-color var(--btn-glow-dur) var(--ease-ui),
              color var(--btn-glow-dur) var(--ease-ui);
}
#sup-chat-fab > * { flex: none; }
/* круг вместо «Спросить», пока листают и ниже первого экрана: иконку и
   прозрачность подписи ведёт пружина support-chat.js (compact) */
#sup-chat-fab .sup-chat__ico { position: absolute; right: 15px; top: 15px; width: 24px; height: 24px;
  fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; opacity: 0; pointer-events: none; }
/* Над тёмным подвалом капсула светлая, как кнопка «Наверх»: тёмная сливалась
   с фоном (Даня 07.10). Класс ставит support-chat.js по положению подвала. */
#sup-chat.sup-light #sup-chat-fab { background: #fff; color: var(--violet); }
#sup-chat.sup-light #sup-chat-fab small, #sup-chat.sup-light .sup-chat__rep { color: var(--muted); }
#sup-chat.sup-light #sup-chat-fab .sup-chat__dot { background: rgba(86,61,135,.35); }
#sup-chat.sup-light.sup-on #sup-chat-fab .sup-chat__dot { background: #2FA866; box-shadow: 0 0 0 4px rgba(47,168,102,.16); }
#sup-chat-fab small { font-weight: 400; font-size: 13px; color: rgba(255,255,255,.72); opacity: 0; }
#sup-chat-fab:focus-visible { outline: 2px solid var(--nx-lavender); outline-offset: 3px; }
.sup-chat__rep { display: inline-block; overflow: hidden; vertical-align: bottom;
  width: 0; font-weight: 400; color: rgba(255,255,255,.75); }
/* точка статуса: зелёная в часы поддержки, серая вне их (класс ставит скрипт) */
.sup-chat__dot { width: 8px; height: 8px; border-radius: 50%; flex: none;
  background: rgba(255,255,255,.4); }
#sup-chat.sup-on .sup-chat__dot { background: #7EE2A8; box-shadow: 0 0 0 4px rgba(126,226,168,.18); }
/* непрочитанный ответ — отдельно от точки: счётчик в углу капсулы */
#sup-chat-badge {
  position: absolute; top: -7px; right: -5px; min-width: 22px; height: 22px;
  padding: 0 6px; box-sizing: border-box; border-radius: 11px;
  background: var(--terra); color: #fff; border: 2px solid #fff;
  font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
  pointer-events: none;
}

/* ── окно ── растёт из капсулы: видимую часть панели режет clip-path, от
   прямоугольника капсулы до всей панели. Низ панели — у низа корня, верх
   держит потолок max-height.
   Потолок вычитает липкую шапку сайта: она рисуется поверх чата (z-100
   против 90), и без этого её низ накрывал шапку окна — палец по шеврону
   попадал в бургер, открывалось меню (замер 360×740, 07.09). Высоту меряет
   инлайн-замер в base.html, фолбэк 232px — худший случай с анонс-баром.
   vh объявлен первым: в Telegram in-app и старых Safari dvh не поддержан. */
.sup-chat__frame {
  position: absolute; right: 0; bottom: 0; width: min(400px, calc(100vw - 40px));
  pointer-events: none; filter: drop-shadow(0 20px 28px rgba(46,34,71,.26));
}
#sup-chat-panel { position: relative; height: 660px;
  max-height: calc(100vh - 40px - var(--sticky-top, 232px));
  max-height: calc(100dvh - 40px - var(--sticky-top, 232px));
  background: var(--night); border-radius: 24px; overflow: hidden; pointer-events: auto; }
/* На карточке товара липкая панель покупки поднимает угол — to-top.js пишет
   #sup-chat свой bottom и ставит класс .sup-lifted (не :has(): его не знают
   Safari до 15.4 и старые вебвью Telegram, правило отбрасывалось целиком). */
#sup-chat.sup-lifted #sup-chat-panel {
  max-height: calc(100vh - 152px - var(--sticky-top, 232px));
  max-height: calc(100dvh - 152px - var(--sticky-top, 232px));
}
.sup-chat__in { position: absolute; inset: 0; display: flex; flex-direction: column; opacity: 0;
  overflow-y: auto; }

/* Телефон — окно во всю ширину с отступом 12px и во всю высоту до липкой
   шапки: её не накрывает, шеврон под палец не уходит. Высоту даёт видимая
   область (--sup-vv-h, скрипт по visualViewport), а --sup-kb поднимает окно
   над клавиатурой: поле ввода и кнопка отправки на виду. */
@media (max-width: 560px) {
  #sup-chat { right: 12px; bottom: 12px; }
  .sup-chat__frame { width: calc(100vw - 24px); bottom: var(--sup-kb, 0px); }
  #sup-chat-panel { height: 100vh; height: 100dvh;
    max-height: calc(100vh - 22px - var(--sticky-top, 232px));
    max-height: calc(var(--sup-vv-h, 100dvh) - 22px - var(--sticky-top, 232px)); }
  #sup-chat.sup-lifted #sup-chat-panel {
    max-height: calc(100vh - 146px - var(--sticky-top, 232px));
    max-height: calc(var(--sup-vv-h, 100dvh) - 146px - var(--sticky-top, 232px)); }

  /* Открытое окно — на весь экран поверх шапки сайта (Даня 07.10). Сдвиг
     угла снимаем: с ним #sup-chat держал бы fixed-рамку внутри себя, а не
     у краёв экрана. Высота — видимая область, низ — над клавиатурой. */
  #sup-chat.sup-open { z-index: var(--z-overlay); translate: none; transition: none; }
  #sup-chat.sup-open .sup-chat__frame { position: fixed; left: 0; right: 0; top: auto; width: auto;
    bottom: var(--sup-kb, 0px); height: 100vh; height: var(--sup-vv-h, 100dvh); filter: none; }
  /* окно у низа экрана: на первом экране оно ниже экрана (шторка по
     содержимому, высоту пишет support-chat.js), страница над ним видна */
  #sup-chat.sup-open #sup-chat-panel { position: absolute; left: 0; right: 0; bottom: 0;
    height: 100%; max-height: none; border-radius: 0; }
  /* первый экран прокручивается окном целиком (лист держит высоту
     содержимого): contain у самого листа запирал жест, и ни низ листа, ни
     «Закрыть» вверху было не достать */
  #sup-chat-log, .sup-chat__in { overscroll-behavior: contain; }
  /* Выход — видная белая кнопка со словом, а не шеврон в полупрозрачном круге */
  #sup-chat.sup-open #sup-chat-close { width: auto; height: 44px; margin: 0 -4px 0 0; padding: 0 16px 0 12px;
    gap: 6px; display: inline-flex; align-items: center; border-radius: 22px;
    background: #fff; color: var(--nx-violet); font: inherit; font-size: 15px; font-weight: 600; }
  #sup-chat.sup-open #sup-chat-close::before { display: none; }
  #sup-chat.sup-open #sup-chat-close .sup-chat__chev { display: none; }
  #sup-chat.sup-open #sup-chat-close .sup-chat__x { display: block; width: 18px; height: 18px; stroke-width: 2.4; }
  #sup-chat.sup-open #sup-chat-close .sup-chat__close-t { display: inline; }
  #sup-chat.sup-open #sup-chat-close:focus-visible { outline: 2px solid var(--nx-lavender); outline-offset: 2px; }
}
/* страница под окном на весь экран не прокручивается (класс ставит support-chat.js) */
html.sup-full, html.sup-full body { overflow: hidden; }

/* шапка окна */
.sup-chat__head { flex: none; display: grid; gap: 14px; padding: 16px; color: #fff; }
.sup-chat__who { display: flex; align-items: center; gap: 10px; }
.sup-chat__name { min-width: 0; flex: 1; }
.sup-chat__name b { display: block; font-family: 'Arsenal', Georgia, serif; font-weight: 400;
  font-size: 22px; line-height: 1.1; }
.sup-chat__status { display: flex; align-items: center; gap: 7px; font-size: 13px;
  color: rgba(255,255,255,.78); }
.sup-chat__status em { font-style: normal; font-weight: 400; }
.sup-chat__ava { width: 34px; height: 34px; border-radius: 50%; flex: none;
  background: #fff var(--sup-mark) center/78% no-repeat; box-shadow: 0 0 0 1px var(--nx-line2); }
/* зона нажатия 44×44 — сама кнопка (её и ловит палец), круг 34 рисует ::before */
.sup-chat__back, #sup-chat-close { position: relative; flex: none; width: 44px; height: 44px;
  margin: -5px; padding: 0; border: 0; border-radius: 50%; background: none; display: grid; place-items: center;
  cursor: pointer; color: #fff; }
.sup-chat__back::before, #sup-chat-close::before { content: ""; position: absolute; inset: 5px;
  border-radius: 50%; background: rgba(255,255,255,.12); pointer-events: none; }
.sup-chat__back { width: 0; margin-right: -10px; overflow: hidden; opacity: 0; }
.sup-chat__back svg, #sup-chat-close svg { position: relative; width: 16px; height: 16px;
  stroke: currentColor; fill: none; stroke-width: 2; }
.sup-chat__back:focus-visible, #sup-chat-close:focus-visible { outline: none; }
/* крестик и слово «Закрыть» — только у окна на весь экран (телефон) */
#sup-chat-close .sup-chat__x, #sup-chat-close .sup-chat__close-t { display: none; }
.sup-chat__back:focus-visible::before, #sup-chat-close:focus-visible::before { outline: 2px solid var(--nx-lavender); outline-offset: 2px; }
/* Неделя и «Где ответим» складываются в переписке. Отступ в 3px — место под
   кольцо сегодняшнего дня: без него overflow срезал кольцо по краям. */
.sup-chat__more { display: grid; gap: 14px; overflow: hidden; padding: 3px; margin: -3px; }
.sup-chat__wk { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px;
  margin: 0; padding: 0; list-style: none; }
.sup-chat__wk li { display: grid; place-items: center; height: 26px; border-radius: 8px;
  font-size: 11px; font-weight: 700; color: #fff; background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.22); }
.sup-chat__wk li.is-today { box-shadow: 0 0 0 2px var(--nx-lavender); }
.sup-chat__reach-h { margin: 0 0 -6px; font-size: 11px; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--nx-lavender); }
.sup-chat__reach { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
  gap: 8px; margin: 0; padding: 0; list-style: none; }
.sup-chat__reach button, .sup-chat__reach a { width: 100%; height: 100%; display: grid;
  justify-items: center; align-content: start; gap: 7px; padding: 10px 4px 9px;
  border-radius: 16px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05);
  color: #fff; text-decoration: none; font: inherit; font-size: 12px; font-weight: 600;
  line-height: 1.3; text-align: center; overflow-wrap: anywhere; cursor: pointer;
  transition: background .3s, border-color .3s, transform .12s; }
.sup-chat__reach button:hover, .sup-chat__reach a:hover { background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.26); }
.sup-chat__reach button:active, .sup-chat__reach a:active { transform: scale(.97); }
.sup-chat__reach button:focus-visible, .sup-chat__reach a:focus-visible { outline: 2px solid var(--nx-lavender); outline-offset: 2px; }
.sup-chat__reach i { width: 38px; height: 38px; border-radius: 50%; display: grid;
  place-items: center; background: rgba(255,255,255,.12); color: #fff; }
.sup-chat__reach .is-main i { background: #fff; color: var(--nx-violet); }
.sup-chat__reach svg { width: 18px; height: 18px; }
/* шторка «Email» раскрывается по высоте (строка сетки 0fr → 1fr) и
   прерывается на полпути; hidden ставит и снимает скрипт по концу перехода.
   Отрицательный верх съедает зазор сетки .sup-chat__more, поля по 4px — место
   под кольцо фокуса внутри обрезки */
.sup-chat__mail { display: grid; grid-template-rows: 0fr; opacity: 0; margin: -14px -4px 0;
  transition: grid-template-rows .3s cubic-bezier(.33,1,.68,1), opacity .3s ease; }
.sup-chat__mail.is-open { grid-template-rows: 1fr; opacity: 1; }
.sup-chat__mail-clip { min-height: 0; overflow: hidden; }
.sup-chat__mail-in { display: grid; gap: 10px; padding: 14px 4px 4px; }
.sup-chat__mail-in .sup-chat__reach-h { margin: 0; }
.sup-chat__mail-row { display: flex; align-items: center; gap: 8px; padding: 5px 5px 5px 14px;
  border-radius: 16px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05); }
.sup-chat__mail-addr { flex: 1; min-width: 0; font-size: 17px; font-weight: 600; color: #fff;
  overflow-wrap: anywhere; user-select: all; -webkit-user-select: all; }
.sup-chat__mail-row button { flex: none; min-height: 44px; padding: 0 16px; border: 0; border-radius: 12px;
  background: #fff; color: var(--nx-violet); font: inherit; font-size: 13px; font-weight: 600;
  cursor: pointer; transition: transform .12s; }
.sup-chat__mail-row button:active { transform: scale(.97); }
.sup-chat__mail-from { margin: 2px 0 -4px; font-size: 12px; color: rgba(255,255,255,.78); }
.sup-chat__mail-web { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sup-chat__mail-web a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px;
  border-radius: 22px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05);
  color: #fff; text-decoration: none; font-size: 13px; font-weight: 600;
  transition: background .3s, border-color .3s; }
.sup-chat__mail-web a:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.26); }
.sup-chat__mail-app { justify-self: start; display: inline-flex; align-items: center; min-height: 44px;
  margin-top: -6px; font-size: 13px; color: rgba(255,255,255,.78); text-underline-offset: 3px; }
.sup-chat__mail-app:hover { color: #fff; }
.sup-chat__mail-row button:focus-visible, .sup-chat__mail-web a:focus-visible,
.sup-chat__mail-app:focus-visible { outline: 2px solid var(--nx-lavender); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .sup-chat__mail { transition: none; } }

/* лист под шапкой: первый экран уезжает влево, переписка — справа */
.sup-chat__sheet { position: relative; flex: 1; min-height: 0; background: #fff;
  border-radius: 22px 22px 0 0; overflow: hidden; }
.sup-chat__view { position: absolute; inset: 0; min-height: 0; }
/* первый экран высотой по содержимому — по нему скрипт меряет окно; выше
   листа не растёт и прокручивается */
.sup-chat__home { bottom: auto; max-height: 100%; overflow: auto; padding: 16px 16px 14px;
  display: flex; flex-direction: column; gap: 12px; }
.sup-chat__card { border: 1px solid var(--nx-line); border-radius: 18px; padding: 14px;
  display: grid; gap: 6px; }
.sup-chat__card small { font-size: 11px; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--nx-terra-ink); }
.sup-chat__card b { font-weight: 600; color: var(--nx-ink); font-size: 15px; line-height: 1.4; }
.sup-chat__link { justify-self: start; font-weight: 600; font-size: 14px; color: var(--nx-violet);
  text-decoration: none; }
.sup-chat__link:hover { text-decoration: underline; }
/* соцсети прибиты к низу первого экрана */
.sup-chat__soc { position: sticky; bottom: -14px; margin: auto -16px -14px; padding: 12px 16px 14px;
  border-top: 1px solid var(--nx-line2); background: #fff; display: grid; gap: 8px; }
.sup-chat__soc-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.sup-chat__soc-top small { font-size: 11px; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--muted); }
.sup-chat__soc-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
  margin: 0; padding: 0; list-style: none; }
.sup-chat__soc-row svg { width: 26px; height: 26px; display: block; }
/* родные цвета площадок — те же, что у панели на главной (home.css
   .nx-social__logo--*): home.css грузится не на всех страницах */
.sup-chat__logo--tg { color: #26A5E4; }
.sup-chat__logo--vk { color: #0077FF; }
.sup-chat__logo--max { color: #8419FF; }
.sup-chat__logo--dzen { color: #202022; }
.sup-chat__logo--ok { color: #EE8208; }
.sup-chat__logo--rutube { color: #0F0F0F; }
.sup-chat__logo--youtube { color: #FF0000; }
.sup-chat__bots { margin: 0; font-size: 12px; line-height: 1.5; color: var(--muted); }
.sup-chat__bots a { color: var(--nx-violet); text-decoration: none; font-weight: 600; }

/* переписка. Лента ужимается первой, форма остаётся целой: min-height:0 у
   формы и своя прокрутка — иначе высокий блок спецсогласия уводил кнопку
   отправки за край окна (замер 360×640, 07.09) */
.sup-chat__chat { display: flex; flex-direction: column; background: #fff; }
#sup-chat-log { flex: 1 1 0; min-height: 30px; overflow-y: auto; padding: 12px 14px 10px;
  display: flex; flex-direction: column; gap: 8px; }
.sup-chat__offh { position: sticky; top: -12px; z-index: 1; margin: -12px -14px 2px; padding: 9px 14px;
  background: #fff; border-bottom: 1px solid var(--nx-line2); font-size: 12px; line-height: 1.4;
  color: var(--muted); display: flex; gap: 8px; align-items: center; }
.sup-chat__offh::before { content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: var(--nx-lavender); flex: none; }
.sup-chat__date { align-self: center; margin: 4px 0 2px; padding: 3px 10px; font-size: 11px;
  font-weight: 600; color: var(--muted); border: 1px solid var(--nx-line2); border-radius: 999px; }
.sup-chat__start { display: flex; flex-direction: column; gap: 8px; }
.sup-chat__row { display: flex; gap: 8px; align-items: flex-end; }
.sup-chat__row--client { justify-content: flex-end; }
.sup-chat__row .sup-chat__ava { width: 26px; height: 26px; }
.sup-chat__msg { position: relative; max-width: 78%; padding: 8px 12px 20px; border-radius: 18px;
  font-size: var(--fs-sm); line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.sup-chat__msg--staff { background: #fff; border: 1px solid var(--nx-line);
  border-bottom-left-radius: 6px; color: var(--ink); }
.sup-chat__msg--client { background: var(--nx-violet); color: #fff; border-bottom-right-radius: 6px; }
.sup-chat__msg--greet { padding-bottom: 10px; white-space: normal; }
.sup-chat__msg time { position: absolute; right: 10px; bottom: 4px; font-size: var(--fs-micro);
  color: var(--muted); white-space: nowrap; }
.sup-chat__msg--client time { color: rgba(255,255,255,.72); }
.sup-chat__by { display: block; font-size: 11px; font-weight: 700; color: var(--nx-violet);
  margin-bottom: 1px; white-space: normal; }
.sup-chat__msg--error { align-self: center; max-width: 90%; padding: 0; color: var(--error);
  font-size: 12px; text-align: center; }
.sup-chat__sys { align-self: center; max-width: 90%; margin: 4px 0; text-align: center;
  font-size: 12px; line-height: 1.45; color: var(--muted); }
/* варианты столбиком у правого края */
.sup-chat__qr { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; margin: 2px 0 4px; }
.sup-chat__qr button { border: 1px solid var(--nx-violet); color: var(--nx-violet); background: #fff;
  border-radius: 999px; padding: 7px 14px; font: inherit; font-weight: 600; font-size: 13.5px;
  cursor: pointer; transition: background .25s, color .25s, transform .12s; }
.sup-chat__qr button:hover { background: var(--nx-violet); color: #fff; }
.sup-chat__qr button:active { transform: scale(.97); }
.sup-chat__qr button:focus-visible { outline: 2px solid var(--nx-violet); outline-offset: 2px; }
/* карточка ассистентов по «Запись на приём» — локальная, на сервер не идёт */
.sup-chat__door { display: grid; gap: 8px; padding: 14px; border: 1px solid var(--nx-line);
  border-radius: 16px; font-size: 14px; color: var(--muted); }
.sup-chat__door b { font-weight: 600; color: var(--nx-ink); }
.sup-chat__door a { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0 0;
  border-top: 1px solid var(--nx-line2); text-decoration: none; font-weight: 600;
  color: var(--nx-violet); }
.sup-chat__door a span { white-space: nowrap; }

/* поле и согласие */
/* На низком окне (телефон с клавиатурой) прокручивался весь блок формы с
   верха — согласие гостьи выталкивало поле ввода за край окна (обход 07.10,
   390×664). Теперь сжимается и прокручивается само согласие, а поле ввода
   стоит внизу и всегда на виду; галочку согласия видно хотя бы строкой.
   Когда и так не влезает (ошибка длины под выросшим полем), прокручивается
   форма: без этого ошибка уходила под край окна (r85), скрипт докручивает. */
#sup-chat-form { flex: 0 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 8px;
  padding: 8px 12px 12px; border-top: 1px solid var(--nx-line2); overflow-y: auto; }
.sup-chat__consent { flex: 0 1 auto; min-height: 52px; overflow-y: auto; box-sizing: border-box;
  padding: 12px 14px; border: 1px solid var(--nx-line); border-radius: 16px;
  background: #fff; font-size: 13px; line-height: 1.45; }
.sup-chat__consent label { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px;
  align-items: start; }
.sup-chat__consent input { margin: 2px 0 0; accent-color: var(--nx-violet); width: 16px; height: 16px; }
.sup-chat__consent a { font-size: 12px; color: var(--nx-violet); }
#sup-chat-special-consent-error { margin: 6px 0 0; font-size: 12px; }
/* кнопка отправки 44×44 под палец: поле отдаёт ей 3 px своего отступа, а
   поле ввода забирает их своим — высота строки и место текста прежние */
.sup-chat__field { flex: none; display: flex; align-items: flex-end; gap: 8px; padding: 3px 3px 3px 16px;
  border: 1px solid var(--nx-line); border-radius: 24px; background: #fff; transition: border-color .3s; }
.sup-chat__field:focus-within { border-color: var(--nx-violet); }
#sup-chat-text { flex: 1; min-width: 0; border: 0; outline: 0; resize: none; background: transparent;
  font: inherit; font-size: 15px; line-height: 1.4; padding: 11px 0; max-height: 120px; min-height: 22px;
  color: var(--ink); }
/* Длительность и набор свойств перехода — общие, из glow.css: свой
   transition тут перебивал бы его по весу (id), и свет кнопки щёлкал бы. */
#sup-chat-form .sup-chat__send { flex: none; width: 44px; height: 44px; padding: 0; border: 0;
  border-radius: 50%; background: var(--nx-violet); color: #fff; display: grid; place-items: center;
  cursor: pointer; }
#sup-chat-form .sup-chat__send:active { transform: scale(.92); }
#sup-chat-form .sup-chat__send[disabled] { opacity: .35; cursor: default; }
#sup-chat-form .sup-chat__send svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2.2; }
#sup-chat-form .sup-chat__send:focus-visible { outline: 2px solid var(--nx-lavender); outline-offset: 2px; }
/* «Прочитать полностью» под спецсогласием (law.js) — не кнопка отправки:
   glow.css светит всем кнопкам формы, здесь свечение снято. */
#sup-chat-form .law-more,
#sup-chat-form .law-more:hover { min-width: 0; min-height: 0; padding: 2px 0; margin: 4px 0 0;
  border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--nx-violet);
  font-size: 11px; cursor: pointer; }

/* Подъём над buy-баром задаёт static/js/to-top.js: он один знает фактическую
   высоту панели и высоту бабла, и расставляет все три этажа угла разом.
   Зашитые здесь 96px складывались с его подъёмом — чат уезжал вдвое выше и
   садился на кнопку «Наверх» (F024/F030). */

/* подпись для читалок: имя кнопки — «Спросить — чат с поддержкой», видимое слово в нём
   есть; по нему же кнопку ищут сценарии e2e/walk */
.sup-chat__sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
