/* OnlyChats v2 — экран чата в дизайне B.
   Работает поверх style.css, base.css и разметки, которую строит app.js
   (renderChatPage, createMessageElement). Все правила начинаются с html.v2.
   Разметку дооформляет v2/js/chat.js: фон с артом, аватар и статус в шапке,
   кнопка «⋯», ряд быстрых действий, строка под полем, шторки.
   Шрифт авторского голоса — Cormorant Garamond Italic 600, встроен data-URI
   (CSP не пускает Google Fonts), подмножества кириллица + латиница. */

@font-face {
    font-family: 'Cormorant Garamond';
    font-style: italic;
    font-weight: 500 700;
    font-display: swap;
    src: url(data:font/woff2;base64,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) format('woff2');
    unicode-range: U+0400-045F, U+0490-0491, U+2116;
}

@font-face {
    font-family: 'Cormorant Garamond';
    font-style: italic;
    font-weight: 500 700;
    font-display: swap;
    src: url(data:font/woff2;base64,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) format('woff2');
    unicode-range: U+0020-007E, U+00A0, U+00AB, U+00BB, U+2010-2027, U+2030-203A, U+2122;
}

html.v2 {
    --v2-chat-serif: 'Cormorant Garamond', 'Times New Roman', Georgia, serif;
    --v2-chat-card: rgba(21, 16, 29, .84);
    --v2-chat-field: rgba(21, 16, 29, .92);
    --v2-chat-glass: rgba(11, 7, 16, .62);
    /* Вид чата (Настройки → «Вид чата», base.js v2ChatLook): по умолчанию неон, как в B */
    --v2-ct-text: var(--v2-text-1);
    --v2-ct-action: rgba(255, 111, 177, .9);
    --v2-ct-card-border: rgba(255, 45, 138, .22);
    --v2-ct-card-glow: 0 0 24px -10px rgba(255, 45, 138, .45);
    --v2-ct-user-bg: var(--v2-accent-fill);
    --v2-ct-user-glow: 0 0 0 1px rgba(255, 45, 138, .6), 0 0 22px rgba(255, 45, 138, .32);
    --v2-ct-act-font: var(--v2-chat-serif);
    --v2-ct-act-weight: 600;
    --v2-ct-fs: 17px;
    --v2-ct-ufs: 16px;
    /* --v2-gem переехал в tokens.css */
    --v2-gem-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3.5h10l4.5 5.5L12 21 2.5 9z' fill='%2314091f'/%3E%3C/svg%3E");
}

@keyframes v2Ken { from { transform: scale(1.04); } to { transform: scale(1.12) translate(-1%, 1%); } }
@keyframes v2Word { from { opacity: 0; transform: translateY(2px); } to { opacity: 1; transform: none; } }
@keyframes v2Develop { 0% { opacity: 0; filter: brightness(2.4) saturate(0) blur(8px); } 40% { opacity: 1; } 100% { filter: none; } }
@keyframes v2StatusIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes v2StatusOut { from { opacity: 1; } to { opacity: 0; transform: translateY(-4px); } }
@keyframes v2Rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes v2TtsPulse { 50% { opacity: .35; } }

/* ============ 1. Страница и фон ============ */

/* Чат занимает весь вьюпорт, без лимита 600px старого #app */
html.v2 #app:has(> .chat-page) {
    max-width: none;
    padding: 0;
}

html.v2 .page-container.chat-page {
    position: relative;
    height: 100%;
    max-width: none;
    margin: 0;
    padding-bottom: 0 !important;
    overflow: hidden;
    background: var(--v2-bg-1);
    isolation: isolate;
    animation: none;
}

/* Арт персонажа на весь экран: размыт, затемнён, с зерном и медленным наездом */
html.v2 .v2-chat-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

html.v2 .v2-chat-bg-img {
    position: absolute;
    inset: -32px;
    width: calc(100% + 64px);
    height: calc(100% + 64px);
    object-fit: cover;
    object-position: center 15%;
    filter: blur(12px) brightness(.25) saturate(1.25);
    transform-origin: center;
    /* 4 шага в секунду: за шаг арт сдвигается меньше чем на пиксель, а размытие
       на весь экран пересчитывается в 15 раз реже, чем при 60 кадрах */
    animation: v2Ken 28s steps(112) infinite alternate;
}

html.v2 .v2-chat-bg-tint {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(70% 50% at 0% 40%, rgba(255, 45, 138, .3), rgba(255, 45, 138, 0) 70%),
        radial-gradient(55% 40% at 100% 88%, rgba(123, 60, 255, .28), rgba(123, 60, 255, 0) 70%);
}

html.v2 .v2-chat-bg-grain {
    position: absolute;
    inset: 0;
    opacity: .12;
    mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

@media (prefers-reduced-motion: reduce) {
    html.v2 .v2-chat-bg-img {
        animation: none !important;
        transform: scale(1.06);
    }
}

/* ============ 2. Шапка, как в макете B: назад, аватар, имя + «меню сцены», чип модели ============ */

/* Скрыто визуально, но в разметке (тексты и обработчики app.js живут) */
html.v2 .v2-sr {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    border: 0 !important;
    box-shadow: none !important;
    white-space: nowrap !important;
}

html.v2 .chat-page .header {
    position: relative;
    z-index: 20;
    flex: none;
    display: flex;
    align-items: center;
    gap: 8px;
    /* 64 + рамка снизу 1: иначе внутри 63 и кнопки стояли на дробном y 9.5 */
    height: 65px;
    min-height: 65px;
    margin: 0;
    padding: 0 12px 0 4px !important;
    /* Без своей плашки (Павел 27.10): под кнопками Telegram она обрывалась
       и выбивалась. Шапка лежит прямо на сцене, как и полоса над ней */
    background: transparent;
    border-bottom: 1px solid transparent;
}

/* «← Назад»: текст в разметке и в aria-label, на экране шеврон 44×44 */
html.v2 .chat-page .back-btn {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0 !important;
    font-size: 0 !important;
    line-height: 0;
    color: transparent !important;
    border-radius: 50% !important;
    background: transparent !important;
    border: 0 !important;
    backdrop-filter: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

html.v2 .chat-page .back-btn::before {
    content: "";
    width: 24px;
    height: 24px;
    background: var(--v2-text-1);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E") center / 24px no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E") center / 24px no-repeat;
}

html.v2 .chat-page .back-btn:active {
    background: var(--v2-press) !important;
}

/* Аватар 44: малиновое кольцо 2px, тёмный зазор, неоновый ореол */
html.v2 .v2-chat-avatar {
    width: 44px;
    height: 44px;
    flex: none;
    padding: 2px;
    border-radius: 50%;
    background: var(--v2-accent);
    box-shadow: 0 0 16px rgba(255, 45, 138, .45);
}

html.v2 .v2-chat-avatar img {
    display: block;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 15%;
    border: 2px solid var(--v2-bg-1);
}

/* Имя 24 дисплейным + «меню сцены ▾» — одна кнопка */
html.v2 .chat-page .header-center {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 48px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 3px;
    margin: 0 !important;
    padding: 0 4px;
    text-align: left;
    cursor: pointer;
    border-radius: 12px;
}

html.v2 .chat-page .header-center:focus-visible {
    outline: 2px solid var(--v2-accent);
    outline-offset: 2px;
}

html.v2 .chat-page .chat-title {
    max-width: 100%;
    margin: 0 !important;
    font-family: var(--v2-font-display) !important;
    font-weight: 800;
    /* style.css на ≤500 ставит 16px !important */
    font-size: 24px !important;
    line-height: 1;
    letter-spacing: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--v2-text-1);
}

html.v2 .v2-chat-sub {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    color: var(--v2-text-2);
    white-space: nowrap;
}

html.v2 .v2-chat-sub svg {
    width: 13px;
    height: 13px;
}

/* Чип модели в шапке: «MOON · 2» моно капсом, планета слева */
html.v2 .chat-page .header #model-select-btn {
    flex: none;
    height: 36px;
    max-width: 150px;
    padding: 0 12px 0 8px !important;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-radius: var(--v2-r-pill) !important;
    background: rgba(30, 22, 41, .85) !important;
    border: 1px solid rgba(255, 45, 138, .5) !important;
    box-shadow: 0 0 14px rgba(255, 45, 138, .22) !important;
    color: var(--v2-text-1) !important;
    font-size: 0;
}

/* Зона тапа 44 при видимой высоте 36 */
html.v2 .chat-page .header #model-select-btn {
    position: relative;
}

html.v2 .chat-page .header #model-select-btn::before {
    content: "";
    position: absolute;
    inset: -5px 0; /* от внутренней стороны рамки 1px: 34 + 10 = 44 */
}

/* Полоса стадий под шапкой: «читает… → печатает… → подбирает слова… → почти готово» */
html.v2 .v2-stage {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(11, 7, 16, .55);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(214, 190, 255, .06);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--v2-accent-soft);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--v2-dur-base) var(--v2-ease), visibility 0s linear var(--v2-dur-base);
}

html.v2 .v2-stage.v2-on {
    opacity: 1;
    visibility: visible;
    transition: opacity var(--v2-dur-base) var(--v2-ease);
}

html.v2 .v2-stage .v2-status-text {
    position: absolute;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    animation: v2StatusIn var(--v2-dur-base) var(--v2-ease) both;
}

html.v2 .v2-stage .v2-status-text::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--v2-accent);
    box-shadow: 0 0 8px var(--v2-accent);
}

html.v2 .v2-stage .v2-status-text.v2-out {
    animation: v2StatusOut var(--v2-dur-base) var(--v2-ease) both;
}

/* ============ 3. Лента ============ */

html.v2 .chat-page .chat-container {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-height: 0;
    height: auto !important;
    padding: 0 !important;
    margin: 0;
}

html.v2 .chat-page .chat-messages {
    height: 100%;
    padding: 14px 12px 16px;
    gap: 0;
    contain: none;
}

html.v2 .chat-page .message {
    margin: 0 0 14px;
    animation: v2Enter var(--v2-dur-screen) var(--v2-ease) both;
    will-change: auto;
}

html.v2 .chat-page .message:last-child {
    margin-bottom: 0;
}

/* Аватарки в карточках B не рисуются */
html.v2 .chat-page .message-avatar-inline {
    display: none !important;
}

/* Карточка персонажа: на всю ширину минус 16px справа, тонкая акцентная
   линия слева, подложка размывает арт под собой */
html.v2 .chat-page .message:not(.user) .message-content {
    position: relative;
    width: calc(100% - 16px);
    max-width: none;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px 16px 6px;
    border-radius: 18px;
    background: var(--v2-chat-card);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    border: 1px solid var(--v2-ct-card-border);
    box-shadow: var(--v2-ct-card-glow);
    overflow: hidden;
}

/* В B у ответов розовой черты слева нет: она только у карточки ошибки (.v2-err) */
html.v2 .chat-page .message.v2-err .message-content::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    bottom: 14px;
    width: 2px;
    border-radius: 2px;
    background: rgba(255, 45, 138, .7);
}

/* Абзацы ответа: chat.js разбивает «<br><br>» на блоки .v2-par (innerText тот
   же), разрыв между ними ~9px, как в B, вместо пустой строки 25px */
html.v2 .chat-page .message-text > .v2-par {
    display: block;
    margin: 0;
}

html.v2 .chat-page .message-text > .v2-par + .v2-par {
    margin-top: 9px;
}

/* Два голоса: речь белым, *действия* и авторский текст — курсивная антиква акцентом */
html.v2 .chat-page .message-text {
    margin: 0;
    font-size: var(--v2-ct-fs);
    line-height: 1.45;
    color: var(--v2-ct-text);
    text-wrap: pretty;
    overflow-wrap: anywhere;
}

html.v2 .chat-page .message:not(.user) .message-text .action,
html.v2 .chat-page .message:not(.user) .message-text em {
    font-family: var(--v2-ct-act-font) !important;
    font-style: italic;
    font-weight: var(--v2-ct-act-weight);
    font-size: var(--v2-ct-fs);
    line-height: 1.45;
    color: var(--v2-ct-action);
}

html.v2 .chat-page .message-text strong {
    color: var(--v2-text-1);
}

html.v2 .chat-page .message-text blockquote {
    border-left: 2px solid var(--v2-accent-line);
    color: var(--v2-text-2);
}

/* Проявка по словам */
html.v2 .v2-word {
    display: inline-block;
    max-width: 100%;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    animation: v2Word 180ms var(--v2-ease) both;
}

/* Пузырь юзера: справа, акцентная заливка, свечение только по контуру */
html.v2 .chat-page .message.user {
    margin-left: auto;
    max-width: 82%;
}

html.v2 .chat-page .message.user .message-content {
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 11px 15px 4px;
    border-radius: 22px 22px 6px 22px;
    background: var(--v2-ct-user-bg);
    border: 0;
    box-shadow: var(--v2-ct-user-glow);
}

html.v2 .chat-page .message.user .message-text {
    font-size: var(--v2-ct-ufs);
    color: #fff;
}

html.v2 .chat-page .message.user .message-text .action,
html.v2 .chat-page .message.user .message-text em {
    font-family: var(--v2-ct-act-font) !important;
    font-style: italic;
    font-weight: 700;
    font-size: calc(var(--v2-ct-ufs) + 1.5px);
    color: rgba(255, 255, 255, .92);
}

/* Строка действий: пять иконок слева, время справа */
html.v2 .chat-page .message-actions {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    margin: 0 -8px 0 -10px;
    opacity: 1;
}

/* У пузыря юзера в покое видно только время; копировать, редактировать и
   удалить открываются тапом по пузырю (в макете — долгим нажатием) */
html.v2 .chat-page .message.user .message-actions {
    justify-content: flex-end;
    min-height: 14px;
    margin: 2px -8px 0 -6px;
}

html.v2 .chat-page .message.user:not(.v2-acts) .message-content:not(.editing) .message-action-btn {
    display: none !important;
}

html.v2 .chat-page .message.user .message-content {
    cursor: pointer;
}

html.v2 .chat-page .message-action-btn {
    width: 40px;
    height: 44px;
    min-width: 40px;
    border-radius: 12px;
    color: var(--v2-text-3) !important;
    transform: none !important;
}

html.v2 .chat-page .message-action-btn:hover,
html.v2 .chat-page .message-action-btn:active {
    color: var(--v2-text-1) !important;
    background: transparent !important;
}

html.v2 .chat-page .message-action-btn:active {
    color: var(--v2-accent-soft) !important;
}

html.v2 .chat-page .message-action-btn svg {
    width: 16px;
    height: 16px;
    stroke-width: 1.9;
}

html.v2 .chat-page .message.user .message-action-btn {
    color: rgba(255, 255, 255, .62) !important;
}

html.v2 .chat-page .message.user .message-action-btn:hover,
html.v2 .chat-page .message.user .message-action-btn:active {
    color: #fff !important;
}

html.v2 .chat-page .voice-btn.loading {
    animation: v2TtsPulse 1s ease-in-out infinite;
}

html.v2 .chat-page .voice-btn.playing {
    color: var(--v2-accent-soft) !important;
}

html.v2 .v2-msg-time {
    margin-left: auto;
    padding-right: 8px;
    line-height: 1;
    font-family: var(--v2-font-mono) !important;
    font-size: 11px;
    font-weight: 500;
    color: var(--v2-text-3);
    white-space: nowrap;
}

html.v2 .chat-page .message.user .v2-msg-time {
    font-size: 10.5px;
    color: rgba(255, 255, 255, .7);
    padding-right: 6px;
}

/* Редактирование сообщения */
html.v2 .chat-page .message-content.editing {
    min-width: 0;
    max-width: none;
}

html.v2 .chat-page .message-edit-textarea {
    width: 100%;
    min-height: 120px;
    padding: 12px;
    font-size: 16px;
    line-height: 1.45;
    color: var(--v2-text-1);
}

/* Картинка от персонажа: полароид, проявляется 1.4с */
html.v2 .v2-polaroid {
    display: block;
    width: fit-content;
    align-self: flex-start;
    margin: 4px 0 8px 2px;
    padding: 8px 8px 28px;
    border-radius: 4px;
    background: #f4efe8;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .5);
    transform: rotate(-1.5deg);
    max-width: calc(100% - 8px);
}

html.v2 .v2-polaroid .character-generated-image {
    display: block;
    width: 190px;
    max-width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 2px;
    cursor: zoom-in;
    margin: 0;
}

html.v2 .v2-polaroid.v2-develop .character-generated-image {
    animation: v2Develop 1.4s var(--v2-ease) both;
}

/* Ожидание ответа: карточка-скелетон с тремя точками. Текст «Генерация
   ответа…» из app.js остаётся в разметке для скринридера */
html.v2 .chat-page .message:not(.user) .message-content.loading {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 16px 14px 18px !important;
    min-height: 0;
    background: var(--v2-chat-card) !important;
}

html.v2 .chat-page .message-content.loading .loading-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* Две полоски скелетона — настоящие спаны (chat.js decorateLoading), блик
   у каждой своим псевдоэлементом на transform (v2Sweep, motion.css) */
html.v2 .v2-skel-line {
    position: relative;
    display: block;
    height: 12px;
    width: 88%;
    border-radius: 6px;
    overflow: hidden;
    background: var(--v2-control);
    order: -2;
}

html.v2 .v2-skel-line.v2-skel-short {
    width: 64%;
    order: -1;
}

html.v2 .v2-skel-line::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(42, 31, 56, 0) 0%, var(--v2-control-2) 50%, rgba(42, 31, 56, 0) 100%);
    transform: translateX(-100%);
    animation: v2Sweep 1.4s linear infinite;
}

html.v2 .v2-dots {
    display: flex;
    gap: 5px;
    padding-top: 2px;
}

html.v2 .v2-dots span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--v2-accent-soft);
    animation: v2Dot 1.1s infinite;
}

html.v2 .v2-dots span:nth-child(2) { animation-delay: 180ms; }
html.v2 .v2-dots span:nth-child(3) { animation-delay: 360ms; }

/* Ошибка генерации в ленте */
html.v2 .chat-page .message.v2-err .message-content {
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 10px 10px 10px 16px;
    background: rgba(42, 10, 28, .9);
    border-color: rgba(255, 77, 106, .45);
    box-shadow: none;
}

html.v2 .chat-page .message.v2-err .message-content::before {
    background: var(--v2-error);
    box-shadow: none;
}

html.v2 .v2-err-ic {
    flex: none;
    width: 20px;
    height: 20px;
    color: var(--v2-error);
}

html.v2 .v2-err-text {
    flex: 1;
    min-width: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--v2-text-1);
}

html.v2 .v2-err-retry {
    flex: none;
    height: 40px;
    padding: 0 14px;
    border-radius: 12px;
    background: var(--v2-control-2);
    border: 1px solid var(--v2-line-3);
    font-size: 14px;
    font-weight: 700;
    color: var(--v2-text-1);
}

/* Плашка «Нравится персонаж?» */
html.v2 .chat-page .like-reminder:last-child {
    margin-bottom: 0;
}

html.v2 .chat-page .like-reminder {
    margin: 0 16px 14px 0;
    padding: 12px 44px 12px 14px;
    border-radius: 18px !important;
    background: rgba(28, 19, 40, .92) !important;
    border: 1px solid rgba(255, 45, 138, .35) !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

html.v2 .chat-page .like-reminder-text {
    font-size: 14px;
    font-weight: 500;
    color: var(--v2-text-1);
}

html.v2 .chat-page .like-reminder-btn {
    height: 40px;
    padding: 0 12px;
    border-radius: 12px !important;
    font-size: 13px;
}

html.v2 .chat-page .like-reminder-close {
    top: 50%;
    right: 4px;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px;
    margin-top: -20px;
    color: var(--v2-text-3) !important;
}

/* Мини-плеер озвучки: волна из 24 столбиков, прогресс закрашивает её */
html.v2 .v2-player {
    align-self: flex-start;
    display: flex;
    align-items: center;
    gap: 10px;
    height: 48px;
    max-width: 100%;
    padding: 0 14px 0 6px;
    border-radius: 24px;
    background: rgba(11, 7, 16, .55);
    border: 1px solid var(--v2-line-2);
    margin: 2px 0 4px;
    animation: v2Enter var(--v2-dur-base) var(--v2-ease) both;
}

html.v2 .v2-player-btn {
    position: relative;
    width: 36px;
    height: 36px;
    flex: none;
    padding: 0;
    border-radius: 50%;
    background: var(--v2-accent-fill);
    border: 0;
    color: #fff;
    box-shadow: 0 0 0 1px rgba(255, 45, 138, .6), 0 0 22px rgba(255, 45, 138, .32);
}

html.v2 .v2-player-btn svg {
    position: absolute;
    left: 8px;
    top: 8px;
    width: 20px;
    height: 20px;
    transition: opacity var(--v2-dur-base), transform var(--v2-dur-base) var(--v2-ease);
}

html.v2 .v2-player-btn .v2-ic-pause { opacity: 0; transform: scale(.5); }
html.v2 .v2-player.v2-playing .v2-player-btn .v2-ic-play { opacity: 0; transform: scale(.5); }
html.v2 .v2-player.v2-playing .v2-player-btn .v2-ic-pause { opacity: 1; transform: none; }

html.v2 .v2-player.v2-loading .v2-player-btn {
    animation: v2TtsPulse 1s ease-in-out infinite;
}

html.v2 .v2-wave {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 28px;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

html.v2 .v2-wave span {
    width: 3px;
    flex: none;
    border-radius: 2px;
    background: rgba(214, 190, 255, .28);
    transition: background 120ms;
}

html.v2 .v2-wave span.v2-on {
    background: var(--v2-accent);
}

html.v2 .v2-player-time {
    flex: none;
    font-family: var(--v2-font-mono) !important;
    font-size: 12px;
    font-weight: 500;
    color: var(--v2-text-2);
}

/* ============ 4. Панель ввода, как в макете B ============ */

/* Панель без собственной карточки: элементы лежат на сцене, под ними
   мягкое затемнение, чтобы прокручиваемая лента не мешала читать */
html.v2 .chat-page .chat-input {
    left: 0;
    right: 0;
    gap: 8px;
    padding: 12px 12px 0 !important;
    border-radius: 0;
    /* Плотный фон: на iPhone сквозь полупрозрачный просвечивал текст переписки
       между чипами и под полем (скрин Егора 27.10). Мягкий переход — над панелью */
    background: rgb(11, 7, 16) !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    transform: none;
    /* Позицию по клавиатуре ставит app.js (initKeyboardViewportShim пишет bottom
       инлайном и сразу меряет панель в syncChatInputOffset). Перехода нет: анимация
       bottom — layout на каждом кадре, а панель и так едет вместе с клавиатурой.
       none, а не пусто: иначе включится transition: all .3s из style.css */
    transition: none;
}

/* Над панелью: лента уходит под неё плавно, без резкой границы */
html.v2 .chat-page .chat-input::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: 28px;
    background: linear-gradient(180deg, rgba(11, 7, 16, 0), rgb(11, 7, 16));
    pointer-events: none;
}

/* Под панелью до низа экрана (shim держит её на 16px выше края) */
html.v2 .chat-page .chat-input::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 80px;
    background: rgb(11, 7, 16);
    pointer-events: none;
}

html.v2 .chat-page .chat-input:focus-within {
    border: 0 !important;
    box-shadow: none !important;
}

/* Ряд: поле + кнопка отправки */
html.v2 .v2-compose {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}

/* Поле: до 5 строк (16px/22px), иконки персоны и картинки внутри,
   обводка акцентом со свечением при фокусе (свечение только по контуру) */
html.v2 .chat-page .chat-input .input-row {
    flex: 1;
    min-width: 0;
    min-height: 52px;
    gap: 0;
    align-items: flex-end;
    border-radius: 16px;
    background: var(--v2-chat-field);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border: 1.5px solid rgba(214, 190, 255, .16);
    transition: border-color var(--v2-dur-base) var(--v2-ease), box-shadow var(--v2-dur-base) var(--v2-ease);
}

html.v2 .chat-page .chat-input .input-row:focus-within {
    border-color: var(--v2-accent);
    box-shadow: 0 0 0 3px rgba(255, 45, 138, .16), 0 0 22px rgba(255, 45, 138, .38);
}

html.v2 .chat-page .chat-input textarea#message-input {
    flex: 1;
    min-width: 0;
    min-height: 49px;
    max-height: 132px;
    padding: 13px 4px 13px 14px;
    font-size: 16px;
    line-height: 22px;
    color: var(--v2-text-1);
    caret-color: var(--v2-accent);
}

html.v2 .chat-page .chat-input textarea#message-input::placeholder {
    color: var(--v2-text-3) !important;
}

/* style.css прячет кнопки внутри .input-row — наши иконки показываем */
html.v2 .chat-page .chat-input .input-row #persona-select-btn,
html.v2 .chat-page .chat-input .input-row #image-button {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: none;
    height: 49px;
    padding: 0 !important;
    margin: 0;
    border: 0 !important;
    border-radius: 12px !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--v2-text-2) !important;
    font-size: 0;
}

html.v2 .chat-page .chat-input .input-row #persona-select-btn { width: 40px; }
html.v2 .chat-page .chat-input .input-row #image-button { width: 44px; padding-right: 4px !important; }

html.v2 .chat-page .chat-input .input-row #persona-select-btn:active,
html.v2 .chat-page .chat-input .input-row #image-button:active {
    color: var(--v2-accent-soft) !important;
    transform: none;
}

/* Подпись персоны в разметке (её обновляет app.js), на экране иконка-маска */
html.v2 .chat-page #persona-select-btn .persona-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

html.v2 .chat-page #persona-select-btn > span:first-child {
    width: 21px;
    height: 21px;
    flex: none;
    font-size: 0 !important;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6c5.3 2 10.7 2 16 0v5.5a8 8 0 0 1-16 0zM8.5 11.5h2M13.5 11.5h2M9.5 15.5c1.6 1 3.4 1 5 0'/%3E%3C/svg%3E") center / 21px no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6c5.3 2 10.7 2 16 0v5.5a8 8 0 0 1-16 0zM8.5 11.5h2M13.5 11.5h2M9.5 15.5c1.6 1 3.4 1 5 0'/%3E%3C/svg%3E") center / 21px no-repeat;
}

html.v2 .chat-page #image-button img {
    display: none;
}

html.v2 .chat-page #image-button::before {
    content: "";
    width: 21px;
    height: 21px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zM9 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM21 15l-5-5L6 20'/%3E%3C/svg%3E") center / 21px no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zM9 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM21 15l-5-5L6 20'/%3E%3C/svg%3E") center / 21px no-repeat;
}

/* Ряд чипов app.js опустел (всё переехало) — не занимает место */
html.v2 .chat-page .chat-controls.v2-empty-row {
    display: none !important;
}

/* Отправка: 52×52, радиус 16, малиновая; призрачная при пустом поле */
html.v2 .chat-page #send-button {
    width: 52px;
    height: 52px;
    flex: none;
    margin: 0;
    padding: 0;
    font-size: 0;
    border-radius: 16px !important;
    background: var(--v2-accent-fill) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: 0 0 0 1px rgba(255, 45, 138, .6), 0 0 22px rgba(255, 45, 138, .32) !important;
    transition: opacity var(--v2-dur-fast), transform var(--v2-dur-fast);
}

html.v2 .chat-page #send-button::before {
    content: "";
    width: 24px;
    height: 24px;
    margin: 0;
    transform: none;
    background: #fff;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E") center / 24px no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E") center / 24px no-repeat;
}

html.v2 .chat-page #send-button:hover {
    transform: none;
}

html.v2 .chat-page #send-button:active {
    transform: scale(.92);
}

html.v2 .chat-page .chat-input.v2-empty #send-button {
    opacity: .45;
}

/* Чип модели: эмодзи 🌙 и полное имя в разметке, на экране планета и
   «MOON · 2» из data-атрибутов */
html.v2 .chat-page #model-select-btn .model-icon-text {
    width: 16px;
    height: 16px;
    flex: none;
    font-size: 0 !important;
    line-height: 0;
    border-radius: 50%;
    transform: none;
    opacity: 1;
    background: var(--v2-planet, radial-gradient(circle at 35% 30%, #c9b7ff, #7b3cff 58%, #2a1458));
    box-shadow: inset -3px -3px 5px rgba(0, 0, 0, .45);
}

html.v2 .chat-page #model-select-btn .sparkle {
    display: none !important;
}

html.v2 .chat-page #model-select-btn .model-label,
html.v2 .chat-page #model-select-btn .caret {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

html.v2 .chat-page #model-select-btn::after {
    content: attr(data-short) " · " attr(data-cost);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--v2-font-mono) !important;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--v2-text-1);
}

html.v2 .v2-model-price {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-family: var(--v2-font-mono) !important;
    font-size: 12px;
    font-weight: 700;
    color: var(--v2-crystal);
}

html.v2 .v2-model-price::after {
    content: "";
    width: 12px;
    height: 12px;
    flex: none;
    background: var(--v2-gem) center / contain no-repeat;
}

/* Быстрые действия над полем (статика) */
html.v2 .v2-quick {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    margin: 0 -12px;
    padding: 2px 12px;
    scrollbar-width: none;
}

html.v2 .v2-quick[hidden] {
    display: none;
}

html.v2 .v2-quick-chip {
    flex: none;
    height: 40px;
    padding: 0 14px;
    border-radius: var(--v2-r-pill);
    background: rgba(21, 16, 29, .88);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(214, 190, 255, .16);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    color: var(--v2-text-1);
    white-space: nowrap;
}

html.v2 .v2-quick-chip.v2-act {
    font-family: var(--v2-chat-serif) !important;
    font-style: italic;
    font-weight: 700;
    font-size: 16px;
    color: var(--v2-accent-soft);
}

html.v2 .v2-quick-chip:hover {
    background: rgba(21, 16, 29, .88);
    border-color: rgba(255, 45, 138, .6);
}

html.v2 .v2-quick-chip:active {
    border-color: var(--v2-accent);
    transform: scale(.96);
}

/* Стартовые реплики: кнопки B на всю ширину, текст слева; уходят с fade */
html.v2 .chat-page .starter-replies {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0 0 2px;
    border-bottom: 0 !important;
    transition: opacity var(--v2-dur-base) var(--v2-ease);
}

html.v2 .chat-page .starter-replies.v2-out {
    opacity: 0;
    pointer-events: none;
}

html.v2 .chat-page .starter-reply {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 12px 16px !important;
    border-radius: 16px !important;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    color: var(--v2-text-1) !important;
    background: rgba(21, 16, 29, .88) !important;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(214, 190, 255, .16) !important;
    animation: v2Rise var(--v2-dur-screen) var(--v2-ease) both;
}

html.v2 .chat-page .starter-reply:hover {
    border-color: rgba(255, 45, 138, .6) !important;
    background: rgba(21, 16, 29, .88) !important;
}

html.v2 .chat-page .starter-reply:active {
    border-color: var(--v2-accent) !important;
    transform: scale(.98);
}

html.v2 .chat-page .starter-reply:nth-child(1) { animation-delay: 120ms; }
html.v2 .chat-page .starter-reply:nth-child(2) { animation-delay: 180ms; }
html.v2 .chat-page .starter-reply:nth-child(3) { animation-delay: 240ms; }

/* Строка под полем: подсказка и баланс */
html.v2 .v2-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    min-height: 28px;
    padding: 0 4px;
    margin-top: -2px;
}

html.v2 .v2-meta-hint {
    font-family: var(--v2-chat-serif) !important;
    font-style: italic;
    font-weight: 600;
    font-size: 15px;
    line-height: 1;
    color: #a397b8;
    white-space: nowrap;
}

/* Зона тапа 44 при видимой высоте строки 28 */
html.v2 .v2-meta-balance {
    height: 44px;
    margin: -8px 0;
    padding: 0;
    border: 0 !important;
    border-radius: var(--v2-r-pill);
    background: transparent !important;
    font-family: var(--v2-font-mono) !important;
    font-size: 12px;
    font-weight: 700;
    color: var(--v2-accent-soft) !important;
    white-space: nowrap;
    box-shadow: none !important;
}

html.v2 .v2-meta-balance.v2-low {
    height: 30px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    background: var(--v2-accent-fill) !important;
    color: #fff !important;
    font-family: var(--v2-font) !important;
    box-shadow: 0 0 0 1px rgba(255, 45, 138, .6), 0 0 22px rgba(255, 45, 138, .32) !important;
}

/* Старая выпадашка моделей не показывается: вместо неё шторка B */
html.v2 .chat-page #model-dropdown {
    display: none !important;
}

/* ============ 5. Шторки чата ============ */

/* Механика и вид шторки (.v2-cs*, .v2-planet, .v2-gem-emoji) переехали в
   base.css, ими пользуются и другие экраны. Здесь только чатовое */

html.v2 .v2-price-pill {
    flex: none;
    height: 32px;
    padding: 0 10px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: rgba(240, 147, 251, .12);
    border: 1px solid rgba(240, 147, 251, .3);
    font-family: var(--v2-font-mono) !important;
    font-size: 14px;
    font-weight: 700;
    color: var(--v2-crystal);
}

html.v2 .v2-price-pill::after {
    content: "";
    width: 14px;
    height: 14px;
    background: var(--v2-gem) center / contain no-repeat;
}

html.v2 .v2-tag {
    height: 22px;
    padding: 0 8px;
    border-radius: 6px;
    background: var(--v2-violet-tint);
    color: var(--v2-violet-soft);
    font-size: 11px;
    font-weight: 700;
    line-height: 22px;
}

html.v2 .v2-cs .memory-counter {
    text-align: right;
    font-family: var(--v2-font-mono) !important;
    font-size: 12px;
    color: var(--v2-text-3);
}

html.v2 .v2-gem-ic {
    display: inline-block;
    width: .72em;
    height: .72em;
    margin: 0 .04em;
    vertical-align: -.06em;
}

html.v2 .v2-cs-btn .v2-gem-ic {
    width: 18px;
    height: 18px;
}

html.v2 .v2-noc-ic {
    display: block;
    margin: 2px 0 4px;
}

/* Подтверждение «Очистить чат» (showClearChatConfirm из app.js): шторка B */
html.v2 .confirm-modal {
    background: var(--v2-scrim) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    z-index: 1300;
}

html.v2 .confirm-modal .modal-content {
    background: var(--v2-bg-3) !important;
    border: 1px solid var(--v2-line-2) !important;
    box-shadow: var(--v2-shadow-sheet) !important;
    padding: 20px 16px calc(var(--v2-safe-bottom) + 20px);
}

html.v2 .confirm-modal .modal-header,
html.v2 .confirm-modal .modal-footer {
    padding: 0 !important;
    border: 0 !important;
}

html.v2 .confirm-modal .confirm-icon {
    display: none;
}

html.v2 .confirm-modal .confirm-title {
    font-size: 28px !important;
}

html.v2 .confirm-modal .modal-body {
    padding: 12px 0 0 !important;
}

html.v2 .confirm-modal .confirm-text {
    margin: 0;
    font-size: 15px;
    line-height: 1.45;
    color: var(--v2-text-2);
}

html.v2 .confirm-modal .modal-footer {
    display: flex;
    flex-direction: column-reverse;
    gap: 8px;
    margin-top: 18px;
}

html.v2 .confirm-modal .modal-footer button {
    width: 100%;
    height: 52px;
    margin: 0;
    border-radius: 16px !important;
    font-size: 16px;
    font-weight: 700;
}

html.v2 .confirm-modal .modal-footer .confirm-action {
    background: var(--v2-error) !important;
    color: #22040a !important;
    -webkit-text-fill-color: #22040a;
    border: 0 !important;
    box-shadow: none !important;
}

html.v2 .confirm-modal .modal-footer .btn-secondary {
    background: rgba(214, 190, 255, .06) !important;
    border: 0 !important;
    font-weight: 600;
}

@media (max-width: 1023px) {
    html.v2 .confirm-modal {
        align-items: flex-end !important;
    }

    html.v2 .confirm-modal .modal-content {
        width: 100% !important;
        max-width: none !important;
        border-bottom: 0 !important;
        border-radius: var(--v2-r-sheet) var(--v2-r-sheet) 0 0 !important;
        transform: translateY(100%) !important;
        transition: transform var(--v2-dur-screen) var(--v2-ease) !important;
    }

    html.v2 .confirm-modal.show .modal-content {
        transform: none !important;
    }

    html.v2 .confirm-modal .close-btn {
        display: none !important;
    }
}

@media (min-width: 1024px) {
    html.v2 .confirm-modal .modal-content {
        width: 480px !important;
        max-width: 480px !important;
        border-radius: var(--v2-r-sheet) !important;
        padding: 24px;
    }
}

/* Модели дешевле в шторке «Кристаллы кончились» */
html.v2 .v2-cheap {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

html.v2 .v2-cheap .v2-cs-row {
    flex: 1 1 120px;
    min-height: 52px;
    padding: 8px 10px;
    gap: 8px;
    justify-content: flex-start;
}

html.v2 .v2-cheap .v2-cs-row-title {
    font-size: 14px;
}

html.v2 .v2-cheap .v2-price-pill {
    height: 26px;
    padding: 0 8px;
    font-size: 12px;
}

/* Персона: аватар в строке */
html.v2 .v2-cs-row .v2-cs-ic .v2-emoji {
    font-size: 20px;
    line-height: 1;
}

/* ============ 6. Планшет 760–1023: одна колонка, панель по ширине колонки ============ */

@media (min-width: 760px) {
    html.v2 .chat-page .chat-input {
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        width: 100%;
        max-width: var(--content-max-w, 720px);
    }

    html.v2 .chat-page .chat-messages {
        max-width: var(--content-max-w, 720px);
        margin: 0 auto;
        width: 100%;
    }
}

/* ============ 7. ПК ≥1024: колонка 760 + панель персонажа 320, шторки — модалки 480 ============ */

@media (min-width: 1024px) {
    /* Панель персонажа 320 прижата к правому краю, всё остальное место —
       первая колонка; шапка, лента и панель ввода в ней по центру шириной
       до 760, как в B. --v2-chat-side — ширина сайдбара (desktop.css),
       --v2-chat-left — левый край колонки для fixed-панели ввода */
    html.v2 {
        --v2-chat-side: 0px;
        --v2-chat-aside-w: 320px;
        --v2-chat-main: calc(100vw - var(--v2-chat-side) - var(--v2-chat-aside-w));
        --v2-chat-col: min(760px, var(--v2-chat-main));
        --v2-chat-left: calc(var(--v2-chat-side) + (var(--v2-chat-main) - var(--v2-chat-col)) / 2);
    }

    html.v2 .page-container.chat-page {
        display: grid;
        grid-template-columns: minmax(0, 1fr) var(--v2-chat-aside-w);
        grid-template-rows: auto minmax(0, 1fr);
        justify-content: stretch;
        align-content: stretch;
    }

    html.v2 .chat-page .header {
        grid-column: 1;
        grid-row: 1;
        justify-self: center;
        box-sizing: border-box;
        width: 100%;
        max-width: var(--v2-chat-col);
        border-radius: 0 0 20px 20px;
        border: 1px solid var(--v2-line-1);
        border-top: 0;
        /* Отступ под кнопки Telegram сверху теперь внутри шапки, а не у страницы:
           иначе карточка шапки висела в воздухе с пустой полосой над ней (Павел 27.10) */
        height: auto;
        min-height: calc(65px + var(--tg-safe-area-top, 0px));
        padding: var(--tg-safe-area-top, 0px) 12px 0 4px !important;
        /* на ПК шапка — карточка от верхнего края, ей нужен свой фон */
        background: var(--v2-chat-glass);
        -webkit-backdrop-filter: blur(20px);
        backdrop-filter: blur(20px);
    }

    html.v2 .page-container.chat-page {
        padding-top: 0 !important;
    }

    html.v2 .chat-page .chat-container {
        grid-column: 1;
        grid-row: 2;
        justify-self: center;
        box-sizing: border-box;
        width: 100%;
        max-width: var(--v2-chat-col);
    }

    html.v2 .chat-page .chat-messages {
        max-width: none;
        padding: 20px 16px 16px;
    }

    html.v2 .chat-page .message-text {
        font-size: var(--v2-ct-fs);
    }

    html.v2 .chat-page .chat-input {
        left: var(--v2-chat-left);
        right: auto;
        transform: none;
        width: var(--v2-chat-col);
        max-width: none;
    }

    html.v2 .v2-chat-aside {
        grid-column: 2;
        grid-row: 1 / span 2;
        position: relative;
        z-index: 2;
        display: flex;
        flex-direction: column;
        gap: 14px;
        padding: calc(28px + var(--tg-safe-area-top, 0px)) 20px 28px;
        overflow-y: auto;
        background: rgba(16, 11, 23, .86);
        -webkit-backdrop-filter: blur(20px);
        backdrop-filter: blur(20px);
        border-left: 1px solid var(--v2-line-1);
    }

    html.v2 .v2-chat-aside-art {
        position: relative;
        aspect-ratio: 3 / 4;
        border-radius: 20px;
        overflow: hidden;
        background: var(--v2-bg-3);
        box-shadow: inset 0 0 0 1px rgba(255, 140, 200, .16);
    }

    html.v2 .v2-chat-aside-art img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 18%;
        display: block;
    }

    html.v2 .v2-chat-aside-art::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(11, 7, 16, 0) 60%, rgba(11, 7, 16, .9));
    }

    html.v2 .v2-chat-aside-name {
        font-family: var(--v2-font-display) !important;
        font-weight: 800;
        font-size: 24px;
        line-height: 1.12;
        text-wrap: balance;
    }

    html.v2 .v2-chat-aside-desc {
        margin: 0;
        font-family: var(--v2-chat-serif) !important;
        font-style: italic;
        font-weight: 600;
        font-size: 18px;
        line-height: 1.4;
        color: var(--v2-accent-soft);
    }

    html.v2 .v2-chat-aside-line {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 14px;
        color: var(--v2-text-2);
    }

    html.v2 .v2-chat-aside-line b {
        color: var(--v2-text-1);
        font-weight: 700;
    }

    html.v2 .v2-chat-aside-btn {
        height: 44px;
        border-radius: 14px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        background: var(--v2-control-2);
        border: 1px solid var(--v2-line-2);
        font-size: 14px;
        font-weight: 600;
        color: var(--v2-text-1);
    }

    html.v2 .v2-chat-aside-btn.v2-danger {
        color: var(--v2-error);
        border-color: rgba(255, 77, 106, .35);
    }

    html.v2 .v2-chat-aside-btn svg {
        width: 18px;
        height: 18px;
    }
}


@media (max-width: 1023px) {
    html.v2 .v2-chat-aside {
        display: none;
    }
}

/* Узкие телефоны: иконки в поле плотнее, плейсхолдер в одну строку */
@media (max-width: 359px) {
    html.v2 .chat-page .chat-input .input-row #persona-select-btn { width: 36px; }
    html.v2 .chat-page .chat-input .input-row #image-button { width: 40px; }

    html.v2 .chat-page .chat-input textarea#message-input {
        padding-left: 12px;
    }

    html.v2 .chat-page .chat-input textarea#message-input::placeholder {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    html.v2 .chat-page .chat-title {
        font-size: 18px !important;
    }

    html.v2 .chat-page .crystal-counter {
        padding: 0 8px 0 8px !important;
        font-size: 13px;
    }

    html.v2 .chat-page .message-text {
        font-size: 16px;
    }

    html.v2 .v2-meta-hint {
        font-size: 14px;
    }
}

/* Меньше движения: проявки и наезды выключены, состояния остаются */
@media (prefers-reduced-motion: reduce) {
    html.v2 .v2-word,
    html.v2 .v2-polaroid.v2-develop .character-generated-image,
    html.v2 .chat-page .starter-reply {
        animation: none !important;
    }
    html.v2 .v2-skel-line::after {
        animation: none !important;
        display: none;
    }
}

/* ПК от 1280 с правой панелью: кнопки Telegram (⋮ ×) только в правом верхнем углу
   над панелью персонажа. Шапка чата в центре от них далеко — ставим её от верха,
   панель персонажа начинается сразу под кнопками (Павел 27.10) */
@media (min-width: 1280px) {
    html.v2 .chat-page .header {
        min-height: 65px;
        padding: 0 12px 0 4px !important;
    }

    html.v2 .v2-chat-aside {
        padding-top: calc(min(var(--tg-safe-area-top, 0px), 40px) + 16px);
    }
}

/* ============ Вид чата: темы, шрифт действий, размер (Настройки → «Вид чата») ============ */

/* Мягкие: пыльная роза вместо неона, без свечения */
html.v2[data-v2-ct="soft"] {
    --v2-ct-text: rgba(248, 245, 255, .9);
    --v2-ct-action: rgba(226, 168, 200, .82);
    --v2-ct-card-border: rgba(214, 190, 255, .12);
    --v2-ct-card-glow: none;
    --v2-ct-user-bg: #5b2b4c;
    --v2-ct-user-glow: none;
}

/* Спокойные: без розового, серо-лавандовые действия, тёмный пузырь */
html.v2[data-v2-ct="calm"] {
    --v2-ct-text: rgba(240, 236, 246, .86);
    --v2-ct-action: rgba(196, 188, 212, .78);
    --v2-ct-card-border: rgba(214, 190, 255, .08);
    --v2-ct-card-glow: none;
    --v2-ct-user-bg: #2f2740;
    --v2-ct-user-glow: none;
}

html.v2[data-v2-cf="sans"] {
    --v2-ct-act-font: var(--v2-font);
    --v2-ct-act-weight: 500;
}

html.v2[data-v2-cs="sm"] {
    --v2-ct-fs: 15px;
    --v2-ct-ufs: 14.5px;
}

html.v2[data-v2-cs="lg"] {
    --v2-ct-fs: 19px;
    --v2-ct-ufs: 18px;
}
