/* VS Code Dark+ Theme for Highlight.js */
/* Based on https://github.com/highlightjs/highlight.js/blob/main/src/styles/vs2015.css */
/* Scoped to avoid conflicts with other styles */
@import './syntax-theme.css';

.hljs {
  color: var(--syntax-default) !important;
  background: transparent !important;
  white-space: pre !important;
  tab-size: 4;
}

/* General - Comments in Green */
.hljs-comment,
.hljs-quote {
  color: var(--syntax-comment) !important;
}

/* Variables and Tags */
.hljs-variable,
.hljs-template-variable,
.hljs-tag,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class,
.hljs-regexp,
.hljs-deletion {
  color: var(--syntax-variable) !important;
}

/* Numbers and Literals - Light Green */
.hljs-number,
.hljs-literal {
  color: var(--syntax-number) !important;
}

/* Built-ins - Cyan */
.hljs-built_in,
.hljs-builtin {
  color: var(--syntax-type) !important;
}

/* Types - Cyan */
.hljs-type,
.hljs-class {
  color: var(--syntax-type) !important;
}

/* Parameters - Light Blue */
.hljs-params {
  color: var(--syntax-variable) !important;
}

/* Meta and Links */
.hljs-meta,
.hljs-link {
  color: var(--syntax-keyword) !important;
}

/* Attributes - Light Orange */
.hljs-attribute,
.hljs-attr {
  color: var(--syntax-attribute) !important;
}

/* Strings - Orange */
.hljs-string,
.hljs-symbol,
.hljs-bullet,
.hljs-addition {
  color: var(--syntax-string) !important;
}

/* Function Names - Yellow */
.hljs-title,
.hljs-title.function_,
.hljs-title.function,
.hljs-section {
  color: var(--syntax-function) !important;
}

/* Keywords - Blue */
.hljs-keyword,
.hljs-selector-tag {
  color: var(--syntax-keyword) !important;
}

/* Additional VS Code Dark+ specific colors */
.hljs-function .hljs-title,
.hljs-class .hljs-title {
  color: var(--syntax-function) !important;
}

/* Operators and Punctuation */
.hljs-operator,
.hljs-punctuation {
  color: var(--syntax-operator) !important;
}

/* Doctags - Green */
.hljs-doctag {
  color: var(--syntax-comment) !important;
}

/* Substrings and Chars */
.hljs-subst,
.hljs-char.escape_ {
  color: var(--syntax-default) !important;
}

/* Selectors */
.hljs-selector-attr,
.hljs-selector-pseudo {
  color: var(--syntax-selector) !important;
}

/* Template Tags */
.hljs-template-tag {
  color: var(--syntax-comment) !important;
}

/* Strong/Bold */
.hljs-strong {
  color: var(--syntax-keyword) !important;
  font-weight: bold;
}

.hljs-emphasis {
  font-style: italic;
}

.hljs-strong {
  font-weight: bold;
}

/* Ensure proper contrast for additions and deletions in diffs */
.hljs-addition {
  color: var(--color-diff-added-text);
  background-color: var(--color-diff-added-bg);
}

.hljs-deletion {
  color: var(--color-diff-removed-text);
  background-color: var(--color-diff-removed-bg);
}