/* Оформление ответов модели (Markdown → DOM) */
.md { font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
.md > * + * { margin-top: .85em; }
.md p { margin: 0; }
.md > :first-child { margin-top: 0; }
.md strong { font-weight: 650; }
.md del { opacity: .65; }
.md a { color: var(--accent-ink); }
.md .md-h { font: 650 1.12em/1.3 var(--font-ui); letter-spacing: -.01em; margin-top: 1.25em; }
.md h3.md-h1, .md h3.md-h2 { font-size: 1.25em; }
.md h5 { font-size: .98em; text-transform: none; }
.md ul, .md ol { padding-left: 1.4em; margin: 0; }
.md li { padding-left: .15em; }
.md li + li { margin-top: .3em; }
.md li > p.md-tight { display: inline; }
.md li > ul, .md li > ol { margin-top: .3em; }
.md ::marker { color: var(--text-3); }
.md blockquote { margin: 0; padding: .1em 0 .1em 1em; border-left: 2px solid var(--accent-ink); color: var(--text-2); }
.md hr { border: 0; border-top: 1px solid var(--line-2); margin: 1.3em 0; }
.md .md-icode { font: 500 .88em var(--font-mono); background: var(--surface-3); border: 1px solid var(--line); border-radius: 5px; padding: .08em .38em; word-break: break-word; }
.md .md-table { overflow-x: auto; border: 1px solid var(--line-2); border-radius: var(--r-sm); }
.md table { border-collapse: collapse; width: 100%; font-size: .94em; }
.md th, .md td { padding: 8px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.md th { font: 600 .82em var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--text-2); background: var(--surface-2); }
.md tr:last-child td { border-bottom: 0; }

/* блок кода */
.md .code-block { border: 1px solid var(--code-line); border-radius: var(--r); background: var(--code-bg); overflow: hidden; }
.md .code-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 6px 6px 14px; border-bottom: 1px solid var(--code-line); background: color-mix(in srgb, var(--surface-2) 70%, var(--code-bg)); }
.md .code-lang { font: 500 11px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-3); }
.md .code-copy { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 0 10px; border-radius: var(--r-sm); font: 500 12px/1 var(--font-mono); color: var(--text-2); transition: background .15s, color .15s; }
.md .code-copy:hover { background: var(--surface-3); color: var(--text); }
.md .code-copy.done { color: var(--accent-ink); }
.md .code-block pre { margin: 0; padding: 14px 16px; overflow-x: auto; font: 400 13.5px/1.6 var(--font-mono); tab-size: 2; }
.md .code-block code { font: inherit; background: none; border: 0; padding: 0; white-space: pre; }
.tk-k { color: #c792ea; } .tk-s { color: #8bd49c; } .tk-n { color: #f2a65a; } .tk-c { color: var(--text-3); font-style: italic; } .tk-f { color: #82aaff; } .tk-t { color: #f07178; } .tk-p { color: var(--text-2); }
[data-theme='light'] .tk-k { color: #7c3aed; } [data-theme='light'] .tk-s { color: #0f7a3b; } [data-theme='light'] .tk-n { color: #b45309; } [data-theme='light'] .tk-f { color: #1d4ed8; } [data-theme='light'] .tk-t { color: #be123c; }

/* стриминг: мерцающий курсор и «проявление» новых символов */
.md .stream-cursor { display: inline-block; width: .55em; height: 1.05em; margin-left: 2px; vertical-align: -.16em; background: var(--accent); border-radius: 1px; box-shadow: 0 0 10px var(--accent-glow); animation: blink 1s steps(2, jump-none) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.md .fresh { animation: fresh .38s ease-out both; }
@keyframes fresh { from { opacity: 0; filter: blur(3px); } }
.md .block-in { animation: block-in .32s var(--ease) both; }
@keyframes block-in { from { opacity: 0; transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) { .md .fresh, .md .block-in { animation: none; } .md .stream-cursor { animation: none; } }
