/**
 * Dracula Theme for Prism.js
 * Originally by Zeno Rocha [@zenorocha]
 * https://draculatheme.com/
 * Ported for PrismJS by Albert Vallverdu [@byverdu]
 * Customized for RoamingPigs dark code blocks
 */

/* Base code styling */
code[class*="language-"],
pre[class*="language-"] {
    color: #f8f8f2;
    text-align: left;
    white-space: pre;
    word-spacing: normal;
    word-break: normal;
    word-wrap: normal;
    tab-size: 4;
    hyphens: none;
    font-family: 'JetBrains Mono', 'Fira Code', ui-monospace, monospace;
    font-size: 0.875rem;
    line-height: 1.6;
}

/* Selection */
code[class*="language-"] ::selection,
code[class*="language-"]::selection,
pre[class*="language-"] ::selection,
pre[class*="language-"]::selection {
    text-shadow: none;
    background: rgba(189, 147, 249, 0.3);
}

/* Comments - Dracula blue-gray */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
    color: #6272a4;
    font-style: italic;
}

/* Punctuation */
.token.punctuation {
    color: #f8f8f2;
}

.namespace {
    opacity: 0.7;
}

/* Tags, properties, constants - Dracula pink */
.token.property,
.token.tag,
.token.constant,
.token.symbol,
.token.deleted {
    color: #ff79c6;
}

/* Booleans and numbers - Dracula purple */
.token.boolean,
.token.number {
    color: #bd93f9;
}

/* Strings, selectors, chars - Dracula green */
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
    color: #50fa7b;
}

/* Operators, URLs, variables */
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable {
    color: #f8f8f2;
}

/* Functions, class names - Dracula yellow */
.token.atrule,
.token.attr-value,
.token.function,
.token.class-name {
    color: #f1fa8c;
}

/* Keywords - Dracula cyan */
.token.keyword {
    color: #8be9fd;
}

/* Regex and important - Dracula orange */
.token.regex,
.token.important {
    color: #ffb86c;
}

.token.important,
.token.bold {
    font-weight: 700;
}

.token.italic {
    font-style: italic;
}

.token.entity {
    cursor: help;
}

/* Assembly-specific: labels and registers */
.token.label {
    color: #f1fa8c;
}

.token.register {
    color: #bd93f9;
}

/* Diff highlighting */
.token.inserted {
    color: #50fa7b;
}

.token.deleted {
    color: #ff79c6;
}
