/* ─── Syntax highlighting — token colours for highlight.js ─────────────────
 *
 * Colours only. Container styling (background, padding, radius, overflow) is
 * owned by the existing `pre` / `pre code` rules in specviber.css and
 * base-theme.css — this file must not fight them, so .hljs itself stays
 * transparent and inherits its foreground.
 *
 * Palette follows VS Code Dark+ / Light+ so a code block reads the same here as
 * in the editor. The VS Code webview has its own copy of this file
 * (vscode-spevi/src/webview/code-theme.css) keyed on VS Code's own body class;
 * only the selectors differ.
 *
 * See #D1197 for why highlighting is a token-level pass rather than a DOM pass.
 */

.hljs {
    background: transparent;
    color: inherit;
}

/* ── Light (default) — VS Code Light+ ───────────────────────────────────── */
.hljs-comment,
.hljs-quote            { color: #008000; font-style: italic; }
.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-doctag,
.hljs-type,
.hljs-name,
.hljs-tag              { color: #0000ff; }
.hljs-meta,
.hljs-meta-keyword,
.hljs-subst            { color: #af00db; }
.hljs-string,
.hljs-meta .hljs-string,
.hljs-regexp,
.hljs-char.escape_     { color: #a31515; }
.hljs-number,
.hljs-symbol,
.hljs-bullet           { color: #098658; }
.hljs-title,
.hljs-title.function_,
.hljs-section          { color: #795e26; }
.hljs-title.class_,
.hljs-class .hljs-title,
.hljs-built_in         { color: #267f99; }
.hljs-variable,
.hljs-template-variable,
.hljs-attr,
.hljs-property,
.hljs-params           { color: #001080; }
.hljs-attribute,
.hljs-selector-attr,
.hljs-selector-class,
.hljs-selector-id,
.hljs-selector-pseudo  { color: #e50000; }
.hljs-operator,
.hljs-punctuation      { color: inherit; }
.hljs-link             { color: #0000ff; text-decoration: underline; }
.hljs-addition         { color: #098658; }
.hljs-deletion         { color: #a31515; }
.hljs-emphasis         { font-style: italic; }
.hljs-strong           { font-weight: 600; }

/* ── Dark — VS Code Dark+ ───────────────────────────────────────────────── */
body.dm-dark .hljs-comment,
body.dm-dark .hljs-quote            { color: #6a9955; }
body.dm-dark .hljs-keyword,
body.dm-dark .hljs-selector-tag,
body.dm-dark .hljs-literal,
body.dm-dark .hljs-doctag,
body.dm-dark .hljs-tag,
body.dm-dark .hljs-name             { color: #569cd6; }
body.dm-dark .hljs-meta,
body.dm-dark .hljs-meta-keyword,
body.dm-dark .hljs-subst            { color: #c586c0; }
body.dm-dark .hljs-string,
body.dm-dark .hljs-meta .hljs-string,
body.dm-dark .hljs-regexp,
body.dm-dark .hljs-char.escape_     { color: #ce9178; }
body.dm-dark .hljs-number,
body.dm-dark .hljs-symbol,
body.dm-dark .hljs-bullet           { color: #b5cea8; }
body.dm-dark .hljs-title,
body.dm-dark .hljs-title.function_,
body.dm-dark .hljs-section          { color: #dcdcaa; }
body.dm-dark .hljs-title.class_,
body.dm-dark .hljs-class .hljs-title,
body.dm-dark .hljs-type,
body.dm-dark .hljs-built_in         { color: #4ec9b0; }
body.dm-dark .hljs-variable,
body.dm-dark .hljs-template-variable,
body.dm-dark .hljs-attr,
body.dm-dark .hljs-property,
body.dm-dark .hljs-params           { color: #9cdcfe; }
body.dm-dark .hljs-attribute,
body.dm-dark .hljs-selector-attr,
body.dm-dark .hljs-selector-class,
body.dm-dark .hljs-selector-id,
body.dm-dark .hljs-selector-pseudo  { color: #d7ba7d; }
body.dm-dark .hljs-link             { color: #569cd6; }
body.dm-dark .hljs-addition         { color: #b5cea8; }
body.dm-dark .hljs-deletion         { color: #ce9178; }
