/* Кожа общего чата для зала hrisa (задача 2429, п.6 «одна кухня»).

   Чат тот же, что у alexxx.ai: разметка — content_v2.vhod_blok, стили —
   /assets/css/vhod.css, логика — /assets/js/vhod.js. Здесь НЕТ ни одного
   правила поведения — только перевод переменных, которыми vhod.css красит
   чат, на токены набора «Тёплое золото», и высота шапки зала. Своего цвета
   здесь тоже нет: всё — var(--tz-*). */

body.h-chat {
  --bg: var(--tz-fon);
  --bg-2: var(--tz-pole);
  --scene-bg: var(--tz-fon);
  --surface: var(--tz-pole);
  --text: var(--tz-tekst);
  --text-2: var(--tz-seryy);
  --line: var(--tz-ramka);
  --accent: var(--tz-zoloto);
  --accent-tekst: var(--tz-na-zolote);
  --font: var(--tz-shrift);
  --hdr-h: 74px;
}
/* Колонна чата — шире колонны страниц: переписке нужен простор на столе
   (как у /chat/ alexxx.ai — 760 px). */
body.h-chat .h-list { width: min(100%, 800px); }
body.h-chat .ekran--chat .ekran-in { width: min(100%, 760px); padding: 0 12px; margin: 0 auto; }
body.h-chat .h-chat-main { position: relative; z-index: 1; }

/* Золото — кнопкой и линией: текст на золоте — токеном «на золоте», а не
   чёрным vhod.css (#17130A), чтобы ночью и днём держать свою пару. */
body.h-chat .vhod-otpravit,
body.h-chat .vhod-karta button.glavnaya { color: var(--tz-na-zolote); }

/* ХРИСА ДУМАЕТ — МАШЕТ КРЫЛЬЯМИ (задача 2581, слово Лёхи 27.09: «нарисовать
   крылья как в логотипе и чтобы она, когда думает, махала крыльями»).
   Было: золотой круг с «Х» 26 px слева от текста (поправка Лёхи 24.09).
   Стало: знак целиком — круг и два крыла принятого знака Б (25.09), высотой
   29 px, как в шапке (канон 28–32 px), в строке «Хриса · время»; текст ответа
   под ним на всю ширину колонны — на телефоне ему даже просторнее.
   ЗНАК НЕ ПЕРЕРИСОВАН. Круг с «Х» — прежние файлы avatar-den/noch.svg; крыло —
   тот же контур из znak-b.svg (viewBox 124 20 66 58, левое — его зеркало),
   маской, а цвет — токены --tz-krylo-1/2 темы: день и ночь без второго файла.
   Масштаб знака 66/180 — все размеры ниже из него.
   ПОЧЕМУ КРУГ НА ИСКРЕ. Крылья — псевдоэлементы аватара, а фон самого
   аватара лёг бы ПОД них. Поэтому круг несёт дочерний <span> искры (его
   ставит vhod.js): он выше крыльев, а своя вспышка искры на hrisa снята —
   канон «без вспышек». Буква «А» alexxx.ai спрятана, как и раньше.
   ЖИВЁТ ТОЛЬКО КЛАССАМИ vhod.js: --dumaet ставится на пустом ответе и
   снимается первым словом или любым концом хода. Складывание за 0,3 с —
   hrisa.js: CSS-переход со снятой анимации браузер не делает (крылья
   защёлкивались мгновенно — замер стенда), поэтому последний угол
   досчитывается и доводится до покоя Web Animations. Потолка взмаха НЕТ
   (задача 2611): медиана первого слова за неделю 20,5 с, p90 72 с — потолок
   12 с гасил крылья в трёх ответах из четырёх ровно тогда, когда гость ждёт.
   Крылья машут до первого слова; строка о долгом ответе — hrisa.js, по p90,
   крыльев не останавливает. Буква «А» спрятана и на время ожидания остановлена:
   невидимая анимация — второй живой элемент для процессора. */
body.h-chat .vhod-msg--hrisa { display: block; position: relative; }
body.h-chat .vhod-avatar {
  position: absolute; left: 0; top: -6px; width: 66px; height: 29px; margin: 0;
  background: none; border-radius: 0; color: inherit;
}
body.h-chat .vhod-avatar svg { visibility: hidden; }
body.h-chat .vhod-avatar--dumaet svg { animation: none; }
body.h-chat .vhod-doc-shapka { padding-left: 74px; min-height: 18px; }
body.h-chat .vhod-avatar .vhod-avatar-iskra,
body.h-chat .vhod-avatar--vspyshka .vhod-avatar-iskra {
  left: 22px; top: 6.6px; width: 22px; height: 22px; margin: 0; z-index: 1;
  border-radius: 50%; opacity: 1; transform: none; animation: none;
  background: url(/assets/teplo-zoloto/znak/avatar-den.svg) center / contain no-repeat;
  box-shadow: 0 0 0 0 transparent;
}
[data-tema="noch"] body.h-chat .vhod-avatar .vhod-avatar-iskra { background-image: url(/assets/teplo-zoloto/znak/avatar-noch.svg); }
body.h-chat .vhod-avatar::before,
body.h-chat .vhod-avatar::after {
  content: ""; position: absolute; top: 0; width: 24.2px; height: 21.3px; z-index: 0;
  background: linear-gradient(var(--tz-krylo-1), var(--tz-krylo-2));
  -webkit-mask: var(--h-krylo) center / 100% 100% no-repeat;
  mask: var(--h-krylo) center / 100% 100% no-repeat;
}
body.h-chat .vhod-avatar::before {
  left: 0; transform-origin: 97% 86%;
  --h-krylo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='10 20 66 58'%3E%3Cpath transform='translate(200 0) scale(-1 1)' d='M124,60C138,36 162,22 190,20C182,30 174,36 166,40C174,42 180,46 184,52C174,54 164,54 156,54C162,58 166,64 168,70C154,70 138,72 126,78Z'/%3E%3C/svg%3E");
}
body.h-chat .vhod-avatar::after {
  left: 41.8px; transform-origin: 3% 86%;
  --h-krylo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='124 20 66 58'%3E%3Cpath d='M124,60C138,36 162,22 190,20C182,30 174,36 166,40C174,42 180,46 184,52C174,54 164,54 156,54C162,58 166,64 168,70C154,70 138,72 126,78Z'/%3E%3C/svg%3E");
}
/* ТРИ ВАРИАНТА ПО ОЧЕРЕДИ — атрибут data-krylya на <html>; без атрибута — А.
   Каждый не чаще одного взмаха в секунду и до первого слова (без счёта
   повторов — 2611); покой — складывание hrisa.js. В бою живут все три
   (задача 2642, «норм» Лёхи 28.09): hrisa.js ставит следующий на старте
   каждого ожидания — А → Б → В → А.
     А — мягкий взмах: вниз 14°, вверх 5°, 1,2 с;
     Б — тот же взмах и мягкое свечение круга в такт (без вспышки);
     В — парение: крылья чуть вверх-вниз, 2,4 с. */
body.h-chat .vhod-avatar--dumaet::before { animation: h-krylo-l 1.2s ease-in-out infinite; }
body.h-chat .vhod-avatar--dumaet::after { animation: h-krylo-p 1.2s ease-in-out infinite; }
@keyframes h-krylo-p { 40% { rotate: 14deg; } 75% { rotate: -5deg; } }
@keyframes h-krylo-l { 40% { rotate: -14deg; } 75% { rotate: 5deg; } }
html[data-krylya="b"] body.h-chat .vhod-avatar--dumaet .vhod-avatar-iskra { animation: h-krylo-svet 1.2s ease-in-out infinite; }
@keyframes h-krylo-svet { 40% { box-shadow: 0 0 9px 2px color-mix(in srgb, var(--tz-zoloto) 50%, transparent); } }
html[data-krylya="v"] body.h-chat .vhod-avatar--dumaet::before { animation: h-parit-l 2.4s ease-in-out infinite; }
html[data-krylya="v"] body.h-chat .vhod-avatar--dumaet::after { animation: h-parit-p 2.4s ease-in-out infinite; }
@keyframes h-parit-p { 50% { rotate: -6deg; translate: 0 -1.5px; } }
@keyframes h-parit-l { 50% { rotate: 6deg; translate: 0 -1.5px; } }
/* Крылья — ЕДИНСТВЕННЫЙ живой элемент ожидания (канон дизайна): нить с
   кометой модуля ожидания на hrisa не показывается, строка «Думаю,
   подождите, пожалуйста…» остаётся текстом; пульс кнопки «вниз» молчит. */
body.h-chat .vhod-zhdu-nit { display: none; }
body.h-chat:has(.vhod-avatar--dumaet) .vhod-vniz--puls { animation: none; }
body.h-chat .h-dolgo { margin: 6px 0 0; color: var(--tz-seryy); }
/* «Меньше движения»: без взмахов — ровное мягкое свечение круга, пока
   Хриса думает; без пульса и без перехода. */
@media (prefers-reduced-motion: reduce) {
  body.h-chat .vhod-avatar::before,
  body.h-chat .vhod-avatar::after,
  body.h-chat .vhod-avatar .vhod-avatar-iskra { animation: none !important; }
  body.h-chat .vhod-avatar--dumaet .vhod-avatar-iskra {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--tz-zoloto) 35%, transparent),
                0 0 10px 2px color-mix(in srgb, var(--tz-zoloto) 30%, transparent);
  }
}

/* Подсказки в полях чата — токен «серый» (от 4,5:1 в обеих темах): ночью
   подсказка поля телефона у vhod.css давала 3,67:1 (прогон 20260924T0845). */
body.h-chat input::placeholder,
body.h-chat textarea::placeholder { color: var(--tz-seryy); opacity: 1; }

/* Цели касания от 48 px (п.8/п.9: доступность главнее макета). У общего
   чата кнопки по 44 px; в зале hrisa они доводятся до 48 только размером —
   поведение чата не меняется. */
body.h-chat .vhod-ikonka { width: 48px; height: 48px; min-width: 48px; }
body.h-chat .vhod-otpravit,
body.h-chat .vhod-zayavka-knopka,
body.h-chat .vhod-podskazki button,
body.h-chat .vhod-melko summary,
body.h-chat .vhod-karta button,
body.h-chat .vhod-povtor { min-height: 48px; }
body.h-chat .vhod-forma textarea { min-height: 48px; }

/* Крупный текст — тот же ключ mrn_komfort: переписка и поле растут вместе
   со страницей. */
html[data-kmf="moi"] body.h-chat .vhod-lenta,
html[data-kmf="moi"] body.h-chat .vhod-forma textarea,
html[data-kmf="moi"] body.h-chat .vhod-podskazki button,
html[data-kmf="moi"] body.h-chat .vhod-karta { font-size: 1.1rem; }

/* ПРАВИЛА ЧТЕНИЯ в чате (лента #129, задача 2467, п.4). У общего чата
   подписи и кнопки-подсказки мельче (12–15 px), а реплика на столе тянется
   до 92 знаков. В зале hrisa текст чата — 17 px с интервалом 1,55, всё
   мельче поднимается до 16 px (max(1rem, кегль родителя) — крупное не
   уменьшается), абзац — не шире 60 знаков. Поведение чата не меняется. */
body.h-chat .ekran--chat { font-size: 1.0625rem; line-height: 1.55; }
body.h-chat .ekran--chat :is(button, summary, a, p, span, label, li, small, dd, dt) { font-size: max(1rem, 1em); }
body.h-chat .ekran--chat :is(p, li) { font-size: max(1.0625rem, 1em); line-height: 1.55; max-width: 60ch; }

/* 2536: door with threshold - honeypot hidden off-screen (not display:none: some bots skip hidden fields) */
body.h-chat .vhod-lovushka { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
body.h-chat .vhod-dver-knopka { display: inline-block; margin-top: .75rem; padding: .7rem 1.2rem; min-height: 48px; border-radius: 12px; border: 0; background: var(--tz-zoloto, #B8862B); color: var(--tz-na-zolote, #1B140B); font: inherit; font-size: max(1rem, 1em); font-weight: 600; text-decoration: none; cursor: pointer; }
body.h-chat .vhod-dver-knopka:disabled { opacity: .5; cursor: default; }
body.h-chat .vhod-dver-ostalos { margin: .5rem 0 0; font-size: max(1rem, 1em); opacity: .8; }
body.h-chat .vhod-galochki .vhod-doc { padding: .25rem 0; }
body.h-chat .vhod-galochka { display: flex; gap: .6rem; align-items: flex-start; margin: .5rem 0; font-size: max(1.0625rem, 1em); line-height: 1.45; max-width: 60ch; }
body.h-chat .vhod-galochka input { width: 22px; height: 22px; flex: 0 0 22px; margin-top: .1rem; accent-color: var(--tz-zoloto, #B8862B); }

/* ОДНА СТРОКА ОЖИДАНИЯ И НА ОТКАЗЕ ДВЕРИ (задача 2546, файл Г1 п.2). В
   словаре страницы одна строка «Думаю, подождите, пожалуйста…» — и для
   раздумья, и для автоповтора после отказа (otkaz): пустого блока ожидания
   на повторе быть не должно. Модуль ожидания может поставить её в два места
   сразу (строка шага и строка ожидания) — гость видит её один раз: строка
   шага уступает, пока показана строка ожидания. */
body.h-chat .vhod-zhdu .vhod-zhdu-shag:has(~ .vhod-zhdu-stroka:not([hidden]):not(:empty)) { display: none; }
