/* Syntax Highlighting Styles (Prism.js compatible) */
/* Extracted from main.css for better organization and maintainability */
/* Optimized for performance: consolidated selectors, added fallbacks, and CSS custom properties */

/* CSS Custom Properties for color scheme */
:root {
  --syntax-comment-color: #6a737d;
  --syntax-primary-color: #d73a49;
  --syntax-string-color: #032f62;
  --syntax-function-color: #6f42c1;
  --syntax-variable-color: #e36209;
  --syntax-text-color: #3a4a5c;
  --syntax-text-secondary: #5a6c7e;
}

/* Token Styles - Consolidated and optimized */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: var(--syntax-comment-color, #6a737d);
  font-style: italic;
}

.token.punctuation {
  color: var(--syntax-text-color, #3a4a5c);
}

/* Consolidated primary color tokens */
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted,
.token.operator,
.token.entity,
.token.url,
.token.atrule,
.token.attr-value,
.token.keyword,
.language-css .token.string,
.style .token.string {
  color: var(--syntax-primary-color, #d73a49);
}

/* Consolidated string color tokens */
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
  color: var(--syntax-string-color, #032f62);
}

/* Consolidated function color tokens */
.token.function,
.token.class-name {
  color: var(--syntax-function-color, #6f42c1);
}

/* Variable and regex tokens */
.token.regex,
.token.important,
.token.variable {
  color: var(--syntax-variable-color, #e36209);
}

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

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

.token.entity {
  cursor: help;
}

/* Language-specific adjustments using custom properties */
.language-bash {
  --syntax-function-color: #005cc5;
  --syntax-parameter-color: #d73a49;
}

.language-bash .token.function {
  color: var(--syntax-function-color, #005cc5);
}

.language-bash .token.parameter {
  color: var(--syntax-parameter-color, #d73a49);
}

.language-javascript {
  --syntax-function-variable-color: #6f42c1;
}

.language-javascript .token.function-variable {
  color: var(--syntax-function-variable-color, #6f42c1);
}

.language-css {
  --syntax-css-property-color: #005cc5;
  --syntax-css-selector-color: #6f42c1;
}

.language-css .token.property {
  color: var(--syntax-css-property-color, #005cc5);
}

.language-css .token.selector {
  color: var(--syntax-css-selector-color, #6f42c1);
}

/* Code block improvements */
.article-content pre[class*='language-'] {
  position: relative;
}

.article-content pre[class*='language-']::before {
  content: attr(class);
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  font-size: 0.75rem;
  color: var(--syntax-text-secondary, #5a6c7e);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 500;
  speak: none; /* Prevent screen readers from reading this visual element */
}

.article-content pre.language-bash::before {
  content: 'BASH';
}

.article-content pre.language-javascript::before {
  content: 'JAVASCRIPT';
}

.article-content pre.language-css::before {
  content: 'CSS';
}

.article-content pre.language-html::before {
  content: 'HTML';
}

.article-content pre.language-json::before {
  content: 'JSON';
}

.article-content pre.language-markdown::before {
  content: 'MARKDOWN';
}
