﻿

/* ============================================
   CODE SYNTAX HIGHLIGHTING - DARCULA THEME
   ============================================ */

/* Base code styling */
code[class*="language-"],
pre[class*="language-"] {
    color: var(--code-text);
    font-family: var(--code-font-family);
    font-size: var(--code-font-size);
    text-align: left;
    white-space: pre;
    word-spacing: normal;
    word-break: normal;
    word-wrap: normal;
    line-height: var(--code-line-height);
    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;
    -webkit-hyphens: none;
    -moz-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
}

/* Pre block styling */
pre[class*="language-"] {
    padding: 1em;
    margin: 0.5em 0;
    overflow: auto;
}

/* Background colors */
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
    background: var(--code-bg);
}

/* Inline code */
:not(pre) > code[class*="language-"] {
    padding: 0.1em;
    border-radius: 0.3em;
    white-space: normal;
}

/* Token Styles */

/* Comments */
.token.block-comment,
.token.cdata,
.token.comment,
.token.doctype,
.token.prolog {
    color: var(--code-comment);
}

/* Punctuation */
.token.punctuation {
    color: var(--code-punctuation);
}

/* Tags and deleted */
.token.attr-name,
.token.deleted,
.token.namespace,
.token.tag {
    color: var(--code-tag);
}

/* Function names */
.token.function-name {
    color: var(--code-function-name);
}

/* Booleans and numbers */
.token.boolean,
.token.number {
    color: var(--code-number);
}

/* Functions */
.token.function {
    color: var(--code-function);
}

/* Class names */
.token.class-name {
    color: var(--code-class-name);
}

/* Constants */
.token.constant {
    color: var(--code-constant);
}

/* Properties */
.token.property {
    color: var(--code-property);
}

/* Symbols */
.token.symbol {
    color: var(--code-symbol);
}

/* Keywords, selectors, important */
.token.atrule,
.token.builtin,
.token.important,
.token.keyword,
.token.selector {
    color: var(--code-keyword);
}

/* Strings, attributes, chars */
.token.attr-value,
.token.char,
.token.string {
    color: var(--code-string);
}

/* Regex */
.token.regex {
    color: var(--code-regex);
}

/* Variables */
.token.variable {
    color: var(--code-variable);
}

/* Operators, URLs, entities */
.token.entity,
.token.operator,
.token.url {
    color: var(--code-operator);
}

/* Formatting */
.token.bold,
.token.important {
    font-weight: bold;
}

.token.italic {
    font-style: italic;
}

.token.entity {
    cursor: help;
}

/* Inserted text */
.token.inserted {
    color: var(--code-inserted);
}

/* Additional Darcula-specific tokens */
.token.parameter {
    color: var(--code-parameter);
}

.token.annotation,
.token.decorator {
    color: var(--code-annotation);
}

.token.type-annotation {
    color: var(--code-text);
}
