/* ============================================
   КОД В ЧАТЕ И ФАЙЛАХ: подсветка, форматирование
   ============================================ */

/* ─── Блок кода в сообщении ─── */
.code-block {
    margin: 12px 0;
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    background: #1e2124;
}

.code-block-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 12px;
    background: #2a2b2c;
    border-bottom: 1px solid var(--border);
}

.code-block-lang {
    color: var(--accent);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

.code-block-copy {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-dim);
    padding: 3px 10px;
    border-radius: 3px;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.15s;
}
.code-block-copy i { font-size: 12px; }
.code-block-copy:hover {
    border-color: var(--accent);
    color: var(--accent);
}
.code-block-copy.copied {
    border-color: var(--ok);
    color: var(--ok);
}

.code-block pre {
    margin: 0;
    padding: 12px 16px;
    overflow-x: auto;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--text);
    tab-size: 4;
    -moz-tab-size: 4;
}
.code-block pre::-webkit-scrollbar { height: 8px; }
.code-block pre::-webkit-scrollbar-track { background: transparent; }
.code-block pre::-webkit-scrollbar-thumb {
    background: var(--bg-3);
    border-radius: 4px;
}
.code-block pre::-webkit-scrollbar-thumb:hover { background: var(--border); }

.code-block code,
.code-block code.hljs {
    font-family: inherit;
    background: transparent;
    padding: 0;
    color: inherit;
}

/* ─── Inline-код (`backticks`) ─── */
.msg-body .msg-text code,
.file-modal-content code {
    /* не используется отдельно, но на всякий */
}

.inline-code {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.06);
    padding: 1px 6px;
    border-radius: 3px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.9em;
    color: #ffcb6b;
    white-space: nowrap;
}

/* ─── Тело сообщения ─── */
.msg-body {
    white-space: normal;
    word-break: break-word;
}
.msg-body .msg-text {
    white-space: pre-wrap;
    word-break: break-word;
}
.msg-body.text-collapsed {
    max-height: 260px;
    overflow: hidden;
    position: relative;
}
.msg-body.text-collapsed::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 72px;
    background: linear-gradient(180deg, transparent, rgba(69, 70, 71, 0.95));
    pointer-events: none;
}
.msg.user .msg-body.text-collapsed::after {
    background: linear-gradient(180deg, transparent, rgba(84, 74, 50, 0.95));
}
.msg.error .msg-body.text-collapsed::after {
    background: linear-gradient(180deg, transparent, rgba(72, 30, 30, 0.95));
}

/* ─── Модалка файла: подсвеченный код ─── */
.file-modal-content {
    margin: 0;
    padding: 16px 20px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--text);
    white-space: pre;
    overflow: auto;
    max-height: 68vh;
    tab-size: 4;
    background: #1e2124;
}
.file-modal-content::-webkit-scrollbar { width: 8px; height: 8px; }
.file-modal-content::-webkit-scrollbar-track { background: transparent; }
.file-modal-content::-webkit-scrollbar-thumb {
    background: var(--bg-3);
    border-radius: 4px;
}
.file-modal-content code,
.file-modal-content code.hljs {
    font-family: inherit;
    background: transparent;
    padding: 0;
}

/* ─── Автоопределённая тема hljs (без внешнего CSS) ───
   Используем приглушённую палитру под наш проект,
   чтобы подсветка не «кричала» и не мешала чтению. */

.msg-body .hljs,
.file-modal-content .hljs {
    background: transparent;
    color: #e6e8eb;
}

.hljs-comment,
.hljs-quote {
    color: #6a737d;
    font-style: italic;
}

.hljs-keyword,
.hljs-selector-tag,
.hljs-built_in,
.hljs-name,
.hljs-tag {
    color: #fbd157;
}

.hljs-string,
.hljs-doctag,
.hljs-regexp,
.hljs-template-tag,
.hljs-template-variable {
    color: #a5d6a7;
}

.hljs-number,
.hljs-literal,
.hljs-boolean {
    color: #f78c6c;
}

.hljs-title,
.hljs-section,
.hljs-title.class_,
.hljs-title.function_ {
    color: #82aaff;
}

.hljs-attr,
.hljs-attribute,
.hljs-variable {
    color: #c792ea;
}

.hljs-type,
.hljs-class .hljs-title {
    color: #ffcb6b;
}

.hljs-symbol,
.hljs-bullet,
.hljs-link {
    color: #89ddff;
}

.hljs-meta,
.hljs-meta .hljs-keyword {
    color: #7cc4ff;
}

.hljs-deletion {
    color: #ff6f61;
    background: rgba(255, 111, 97, 0.08);
}

.hljs-addition {
    color: #00ff88;
    background: rgba(0, 255, 136, 0.06);
}

.hljs-emphasis { font-style: italic; }
.hljs-strong   { font-weight: 700; }

/* В светлых темах (на будущее, если будут) — базовый контраст оставим как есть */