/* Rendered Markdown + syntax highlighting (token colours via custom properties, both themes). */
.markdown-body { overflow-wrap: break-word; }
.markdown-body > :first-child { margin-top: 0; }
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { line-height: 1.25; margin: 1.8em 0 .6em; position: relative; }
.markdown-body h1 { font-size: 2rem; margin-top: 0; padding-bottom: .3em; border-bottom: 1px solid var(--border); }
.markdown-body h2 { font-size: 1.45rem; padding-bottom: .25em; border-bottom: 1px solid var(--border); }
.markdown-body h3 { font-size: 1.2rem; } .markdown-body h4 { font-size: 1.05rem; }
.markdown-body h5, .markdown-body h6 { font-size: .95rem; color: var(--muted); }
.markdown-body p, .markdown-body ul, .markdown-body ol, .markdown-body blockquote, .markdown-body table, .markdown-body pre, .markdown-body details { margin: 0 0 1em; }
.markdown-body ul, .markdown-body ol { padding-left: 1.6em; }
.markdown-body li + li { margin-top: .25em; }
.markdown-body li > ul, .markdown-body li > ol { margin: .25em 0 0; }
.markdown-body hr { border: 0; border-top: 1px solid var(--border); margin: 2em 0; }
.markdown-body blockquote { padding: .2em 1em; color: var(--muted); border-left: 4px solid var(--border); }
.markdown-body blockquote > :last-child { margin-bottom: 0; }
.markdown-body img { max-width: 100%; height: auto; border-radius: 6px; }
.markdown-body img.wiki-broken-image { display: inline-block; min-width: 40px; min-height: 24px; outline: 2px dashed var(--danger); outline-offset: 2px; }
.markdown-body a.wiki-broken { color: var(--danger); text-decoration: underline dashed; }
.markdown-body a.wiki-broken::after { content: " ⚠"; font-size: .8em; }
.markdown-body code { padding: .15em .4em; font-size: .88em; background: var(--bg-code); border-radius: 5px; }
.markdown-body kbd { padding: .1em .4em; border: 1px solid var(--border); border-bottom-width: 2px; border-radius: 4px; background: var(--bg-soft); font-size: .85em; }
.markdown-body details { border: 1px solid var(--border); border-radius: 8px; padding: .5em 1em; }
.markdown-body summary { cursor: pointer; font-weight: 600; }
.markdown-body mark { background: var(--warn-bg); color: inherit; }

/* Tables scroll inside themselves, never the page */
.markdown-body .table-wrap { overflow-x: auto; margin: 0 0 1em; max-width: 100%; }
.markdown-body table { border-collapse: collapse; width: max-content; min-width: 100%; }
.markdown-body th, .markdown-body td { padding: 8px 12px; border: 1px solid var(--border); vertical-align: top; }
.markdown-body th { background: var(--bg-soft); text-align: left; }
.markdown-body tbody tr:nth-child(even) { background: var(--bg-soft); }

/* Task lists */
.markdown-body .task-list-item { list-style: none; margin-left: -1.4em; }
.markdown-body .task-list-item input { margin-right: .5em; }

/* Code blocks with copy button */
.code-block { position: relative; margin: 0 0 1em; }
.code-block pre { margin: 0; padding: 14px 16px; overflow-x: auto; background: var(--bg-code); border: 1px solid var(--border); border-radius: 8px; line-height: 1.5; tab-size: 4; }
.markdown-body pre code { padding: 0; background: none; font-size: .87rem; white-space: pre; border-radius: 0; }
.copy-btn { position: absolute; top: 8px; right: 8px; min-height: 28px; padding: 0 10px; font: inherit; font-size: .75rem; border: 1px solid var(--border); border-radius: 6px; background: var(--bg); color: var(--muted); cursor: pointer; opacity: 0; transition: opacity .15s; }
.code-block:hover .copy-btn, .copy-btn:focus-visible { opacity: 1; }
@media (hover: none) { .copy-btn { opacity: 1; } }
.copy-btn:hover { color: var(--text); border-color: var(--accent); }

/* highlight.js tokens */
:root {
  --hl-comment: #6a737d; --hl-keyword: #b3265f; --hl-string: #0a6b3d; --hl-number: #a15200;
  --hl-title: #6234b8; --hl-attr: #1e5fbf; --hl-meta: #6a737d; --hl-built: #0b6e87;
}
:root[data-theme="dark"] {
  --hl-comment: #8b95a7; --hl-keyword: #ff7ab2; --hl-string: #8fd49a; --hl-number: #f2b66b;
  --hl-title: #c4a5ff; --hl-attr: #8db8ff; --hl-meta: #8b95a7; --hl-built: #79d0e8;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --hl-comment: #8b95a7; --hl-keyword: #ff7ab2; --hl-string: #8fd49a; --hl-number: #f2b66b;
    --hl-title: #c4a5ff; --hl-attr: #8db8ff; --hl-meta: #8b95a7; --hl-built: #79d0e8;
  }
}
.hljs-comment, .hljs-quote { color: var(--hl-comment); font-style: italic; }
.hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-doctag, .hljs-type { color: var(--hl-keyword); }
.hljs-string, .hljs-regexp, .hljs-addition, .hljs-template-variable { color: var(--hl-string); }
.hljs-number, .hljs-symbol, .hljs-bullet, .hljs-variable, .hljs-link { color: var(--hl-number); }
.hljs-title, .hljs-section, .hljs-selector-id, .hljs-selector-class, .hljs-name { color: var(--hl-title); }
.hljs-attr, .hljs-attribute, .hljs-property { color: var(--hl-attr); }
.hljs-meta, .hljs-deletion { color: var(--hl-meta); }
.hljs-built_in, .hljs-params, .hljs-tag { color: var(--hl-built); }
.hljs-emphasis { font-style: italic; } .hljs-strong { font-weight: 700; }
