/* Base text & background */
pre[class*="language-"],
code[class*="language-"] {
  color: #CCCCCC;                   /* Text Color */
  background: #252525;              /* Background Color */
  font-size: 13px;
  text-shadow: none;
  font-family: Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace;
  direction: ltr;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

/* Selection */
pre[class*="language-"]::selection,
code[class*="language-"]::selection,
pre[class*="language-"] *::selection,
code[class*="language-"] *::selection {
  text-shadow: none;
  color: #FFFFFF;                   /* Selection Text Color */
  background: #0B5AAF;              /* Selection Background Color */
}

@media print {
  pre[class*="language-"],
  code[class*="language-"] {
    text-shadow: none;
  }
}

/* Block vs inline */
pre[class*="language-"] {
  padding: 1em;
  margin: .5em 0;
  overflow: auto;
}
:not(pre) > code[class*="language-"] {
  padding: .1em .3em;
  border-radius: .3em;
  background: #424242;              /* Documentation Code Block BG (inline) */
}

/* ———————————————————————————————————————————————— *
 * Tokens
 * ———————————————————————————————————————————————— */

/* Comments */
.token.comment,
.token.prolog {
  color: #666666;                   /* Comment Color */
}

/* Punctuation & operators */
.token.punctuation,
.language-html .token.punctuation,
.language-css .token.punctuation,
.language-javascript .token.punctuation,
.token.operator,
.token.entity {
  color: #CCCCCC;                   /* Brackets, dots, commas… */
}

/* Keywords (if, then, function, local, self…) */
.token.keyword,
.token.keyword.module,
.token.keyword.control-flow {
  color: #F86D7C;                   /* Luau Keyword Color */
}

/* Function names */
.token.function,
.token.function .token.maybe-class-name {
  color: #FDFBAC;                   /* Function Name Color */
}

/* Numbers, booleans, nil */
.token.number,
.token.boolean,
.token.constant {
  color: #FFC600;                   /* Number & Bool Color */
}

/* Strings */
.token.string,
.token.char,
.token.attr-value {
  color: #ADF195;                   /* String Color */
}

/* Built-ins (print, ipairs…) */
.token.builtin {
  color: #84D6F7;                   /* Built-in Function Color */
}

/* Properties & variables */
.token.property,
.token.variable,
.token.imports .token.maybe-class-name,
.token.exports .token.maybe-class-name {
  color: #61A1F1;                   /* Local Property Color */
}

/* Class/Type names (rare in Lua, but used for types or namespaces) */
.token.class-name,
.token.maybe-class-name,
.token.namespace {
  color: #00FFFF;                   /* Type Color */
}

/* Regex (unused in Lua) kept default */
.token.regex {
  color: #d16969;
}

/* Italic & important decorations */
.token.italic {
  font-style: italic;
}
.token.important {
  color: #F86D7C;
}

/* Line-highlight (e.g. Prism’s line-highlight plugin) */
pre[class*="language-"] > code[class*="language-"] {
  position: relative;
  z-index: 1;
}
.line-highlight {
  background: #2D3241;              /* Current Line Highlight Color */
  box-shadow: inset 5px 0 0 #2D3241;
  z-index: 0;
}
