.direct-chat-lightblue .direct-chat-text a {
    text-decoration: underline;
}

.direct-chat-lightblue .right .direct-chat-text a {
    color: #bad9ff;
}

.direct-chat-lightblue .right .direct-chat-text a:hover {
    color: #a0bbdb;
}


/* Markdown в сообщениях чата (Parsedown): в пузыре нужны компактные отступы, иначе
   заголовки и списки разносят сообщение по высоте сильнее самого текста. */
.chat-md > *:first-child {
    margin-top: 0;
}

.chat-md > *:last-child {
    margin-bottom: 0;
}

.chat-md p {
    margin-bottom: 6px;
}

.chat-md h1,
.chat-md h2,
.chat-md h3,
.chat-md h4,
.chat-md h5,
.chat-md h6 {
    margin: 8px 0 4px;
    font-size: 1rem;
    font-weight: bold;
}

.chat-md ul,
.chat-md ol {
    margin-bottom: 6px;
    padding-left: 20px;
}

.chat-md pre {
    margin-bottom: 6px;
    padding: 6px 8px;
    background-color: rgba(0, 0, 0, .05);
    border-radius: 4px;
    white-space: pre-wrap;
    word-break: break-word;
}

.chat-md code {
    word-break: break-word;
}

.chat-md blockquote {
    margin: 0 0 6px;
    padding-left: 8px;
    border-left: 3px solid rgba(0, 0, 0, .15);
    color: #6c757d;
}

.chat-md table {
    width: 100%;
    margin-bottom: 6px;
}

.chat-md table th,
.chat-md table td {
    padding: 2px 6px;
    border: 1px solid rgba(0, 0, 0, .1);
}

/* Разбор чата моделью: ход прогона читают сверху вниз, поэтому шаги разделены полосой слева,
   а её цвет отличает вызовы инструментов от размышлений и сбоев. */
.chat-ai-step {
    position: relative;
    margin-bottom: 8px;
    padding: 4px 0 4px 10px;
    border-left: 3px solid rgba(0, 0, 0, .1);
}

.chat-ai-step-tool_call {
    border-left-color: #7952b3;
}

.chat-ai-step-tool_result {
    border-left-color: #28a745;
}

.chat-ai-step-reasoning {
    border-left-color: #17a2b8;
}

.chat-ai-step-attempt_failed,
.chat-ai-step-model_fallback {
    border-left-color: #dc3545;
}

.chat-ai-time {
    float: right;
    color: #adb5bd;
    font-size: .75rem;
}

.chat-ai-head {
    font-weight: bold;
    color: #243a78;
    font-size: .9rem;
}

.chat-ai-text {
    white-space: pre-wrap;
    word-break: break-word;
}

/* Высоту не ограничиваем: раскрыли — значит читают целиком, а внутренняя прокрутка на полотне
   только мешает. Длинные строки переносятся, горизонтальной прокрутки не появляется. */
.chat-ai-pre {
    margin: 4px 0 0;
    padding: 8px;
    background-color: rgba(0, 0, 0, .04);
    border-radius: 4px;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: .8rem;
}

/* Подсветка JSON (см. highlightJson в process_chat.js). */
.json-key {
    color: #7952b3;
    font-weight: bold;
}

.json-string {
    color: #1a7f37;
}

.json-number {
    color: #0b5ed7;
}

.json-boolean {
    color: #b35c00;
}

.json-null {
    color: #6c757d;
}
