/*

Calabonga Dark: тема подсветки highlight.js 11.x.
Палитра взята из темы VS Code "Calabonga Dark" (CalabongaSoftDarkThemeVSCode).

*/

:root {
  --code-background: #252526;
  --code-foreground: #ececec;
  --code-comment: #808080;
  --code-keyword: #569cd6;
  --code-string: #09ffb5;
  --code-constant: #9cdcfe;
  --code-class: #00d7ee;
  --code-function: #ff8c00;
  --code-attribute: #ff710d;
  --code-operator: #d8a0df;
  --code-language: #ffb153;
  --code-css-property: #b2ccd6;
  --code-json-key: #f7d488;
  --code-heading: #fa8a01;
  --code-link: #82aaff;
  --code-inline: #92caf4;
  --code-muted: #65737e;
  --code-addition: #007bff;
  --code-deletion: #ff5370;
}

.hljs {
  display: block;
  overflow-x: auto;
  padding: 0.75em 1em;
  border-radius: var(--bs-border-radius, 0.5rem);
  background: var(--code-background);
  color: var(--code-foreground);
}

.hljs-subst {
  color: var(--code-foreground);
}

/* Комментарии */
.hljs-comment,
.hljs-doctag {
  color: var(--code-comment);
}

.hljs-quote {
  color: var(--code-muted);
  font-style: italic;
}

/* Ключевые слова, теги, литералы */
.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-name,
.hljs-strong,
.hljs-emphasis {
  color: var(--code-keyword);
}

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

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

/* Строки и символы */
.hljs-string,
.hljs-symbol,
.hljs-bullet {
  color: var(--code-string);
}

/* Числа, переменные, параметры, свойства */
.hljs-number,
.hljs-variable,
.hljs-template-variable,
.hljs-params,
.hljs-property {
  color: var(--code-constant);
}

.hljs-variable.language_ {
  color: var(--code-language);
  font-style: italic;
}

/* Классы и типы */
.hljs-type,
.hljs-built_in,
.hljs-title,
.hljs-title.class_,
.hljs-title.class_.inherited__ {
  color: var(--code-class);
}

/* Функции и методы */
.hljs-title.function_,
.hljs-title.function_.invoke__,
.hljs-function > .hljs-title {
  color: var(--code-function);
}

/* Классы CSS и ключи объектов */
.hljs-selector-class {
  color: var(--code-attribute);
}

.hljs-attr {
  color: var(--code-constant);
}

/* Скобки тегов, операторы, пунктуация, регулярные выражения, escape-последовательности */
.hljs-tag,
.hljs-operator,
.hljs-punctuation,
.hljs-regexp,
.hljs-char.escape_,
.hljs-meta {
  color: var(--code-operator);
}

.hljs-tag .hljs-name {
  color: var(--code-keyword);
}

/* Атрибуты HTML/XML */
.hljs-tag .hljs-attr {
  color: var(--code-attribute);
  font-style: italic;
}

.hljs-tag .hljs-string {
  color: var(--code-string);
}

.hljs-meta .hljs-keyword {
  color: var(--code-keyword);
}

.hljs-meta .hljs-string {
  color: var(--code-string);
}

/* C#: встроенные типы (int, string, bool) выглядят как ключевые слова */
.language-csharp .hljs-built_in {
  color: var(--code-keyword);
}

/* Bash и PowerShell: встроенные команды выглядят как функции */
.language-bash .hljs-built_in,
.language-powershell .hljs-built_in {
  color: var(--code-function);
}

/* CSS */
.language-css .hljs-attribute {
  color: var(--code-css-property);
}

.hljs-selector-id {
  color: var(--code-link);
}

.hljs-selector-attr,
.hljs-selector-pseudo {
  color: var(--code-inline);
}

/* JSON */
.language-json .hljs-attr {
  color: var(--code-json-key);
  font-style: normal;
}

/* Markdown */
.hljs-section {
  color: var(--code-heading);
  font-weight: bold;
}

.hljs-code {
  color: var(--code-inline);
}

.hljs-link {
  color: var(--code-link);
  text-decoration: underline;
}

/* Diff */
.hljs-addition {
  color: var(--code-addition);
}

.hljs-deletion {
  color: var(--code-deletion);
}
