/* JVDS self-hosted Prism theme (A831)
   Works offline and adapts token colours to the site's light and dark themes.
   Loaded on tools/code-snippet-generator.html instead of the CDN prism-tomorrow.css. */

:root {
  --prism-bg: #f6f8fa;
  --prism-fg: #1f2328;
  --prism-comment: #6e7781;
  --prism-keyword: #cf222e;
  --prism-string: #0a3069;
  --prism-number: #0550ae;
  --prism-function: #8250df;
  --prism-class: #953800;
  --prism-operator: #0550ae;
  --prism-punct: #57606a;
  --prism-builtin: #116329;
  --prism-annotation: #953800;
}

@media (prefers-color-scheme: dark) {
  :root {
    --prism-bg: #0d1117;
    --prism-fg: #e6edf3;
    --prism-comment: #8b949e;
    --prism-keyword: #ff7b72;
    --prism-string: #a5d6ff;
    --prism-number: #79c0ff;
    --prism-function: #d2a8ff;
    --prism-class: #ffa657;
    --prism-operator: #79c0ff;
    --prism-punct: #c9d1d9;
    --prism-builtin: #7ee787;
    --prism-annotation: #ffa657;
  }
}

[data-theme="dark"] {
  --prism-bg: #0d1117;
  --prism-fg: #e6edf3;
  --prism-comment: #8b949e;
  --prism-keyword: #ff7b72;
  --prism-string: #a5d6ff;
  --prism-number: #79c0ff;
  --prism-function: #d2a8ff;
  --prism-class: #ffa657;
  --prism-operator: #79c0ff;
  --prism-punct: #c9d1d9;
  --prism-builtin: #7ee787;
  --prism-annotation: #ffa657;
}

pre[class*="language-"],
code[class*="language-"],
.code-block {
  background: var(--prism-bg) !important;
  color: var(--prism-fg);
  text-shadow: none;
  font-family: 'JetBrains Mono', monospace;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata { color: var(--prism-comment); }
.token.keyword { color: var(--prism-keyword); }
.token.string,
.token.attr-value,
.token.char { color: var(--prism-string); }
.token.number,
.token.tag,
.token.symbol { color: var(--prism-number); }
.token.function { color: var(--prism-function); }
.token.class-name,
.token.class-name-definition { color: var(--prism-class); }
.token.operator { color: var(--prism-operator); }
.token.punctuation { color: var(--prism-punct); }
.token.builtin,
.token.boolean,
.token.constant { color: var(--prism-builtin); }
.token.annotation,
.token.attr-name,
.token.decorator { color: var(--prism-annotation); }
.token.namespace { opacity: .8; }
