/*!
  Theme: GENESIS Expression (gen-exp)
  Description: Syntax-highlighting theme for the ICONICS GENESIS 64 expression language (gen_exp).
               Colours are sourced directly from the GENESIS 64 Expression Editor rendering pipeline.
  Maintainer: ICONICS Technical Documentation
  Colour source reference (Color.FromArgb values):
    UnaryOperator / BinaryOperator / Function / NumberValue → rgb(0,0,0)       Black
    StringValue                                                 → rgb(128,0,0)     DarkRed   (string/char literals only)
    BooleanValue / If / Then / Else                         → rgb(0,0,255)     Blue
    Variable / AliasValue / Flare {{}} tags                 → rgb(0,128,128)   DarkCyan  (user override: point names unified with variables)
    Comments and type-cast names have no entry in the source; editorial defaults are used.
*/

/* ── Code block container ────────────────────────────────────────────────── */
pre code.hljs {
  display: block;
  overflow-x: auto;
  padding: 1em;
}

code.hljs {
  padding: 3px 5px;
}

/* Base text and background */
.hljs {
  background: #f8f8f8;
  color: #000000;
  font-family: "Courier New", monospace;
  font-size: 0.9em;
  line-height: 1.5;
}

/* ── Comments — source: rgb(0,128,0) Dark Green ─────────────────────────── */
/* // single-line   and   /* block *\/  */
.hljs-comment {
  color: #008000;
}

/* ── Control-flow keywords (IF THEN ELSE …) — source: Blue rgb(0,0,255) ──── */
/* Also covers CASE WHEN END BEGIN FOR FOREACH and other code-block keywords. */
.hljs-keyword {
  color: #0000ff;
}

/* ── Built-in functions (sin, concat, now, quality …) — source: Black ─────── */
.hljs-built_in {
  color: #000000;
}

/* ── Constant literals (true / false / null) — source: Blue rgb(0,0,255) ─── */
/* Note: pi and e are MathConstantTokens; they share the Black colour of     */
/* NumberValue in the source but are kept here as Blue for readability.       */
.hljs-literal {
  color: #0000ff;
}

/* ── Explicit type-cast types (long, int, string, datetime …) ─────────────── */
/* No source entry; using Black to match Function/Operator convention.         */
.hljs-type {
  color: #000000;
}

/* ── Strings, char literals, data-point references ─────────────────────── */
/*    Covers "text", 'c', $"escaped"$, <<PointName>>, /?Asset.Prop?/        */
/*    StringValue → rgb(128,0,0) DarkRed;  AliasValue → same colour.         */
.hljs-string {
  color: #800000;
}

/* ── Numeric literals (decimal, hex 0xFF, octal 0t, binary 0b) ─────────── */
/*    NumberValue → rgb(0,0,0) Black.                                         */
.hljs-number {
  color: #000000;
}

/* ── Internal variables (@varName, @@) — source: DarkCyan rgb(0,128,128) ─── */
.hljs-variable {
  color: #008080;
}

/* ── Operators (+, -, *, /, ==, !=, &&, ||, /|, ..) ─────────────────────── */
/*    UnaryOperator / BinaryOperator → rgb(0,0,0) Black.                      */
.hljs-operator {
  color: #000000;
}

/* ── Punctuation ─────────────────────────────────────────────────────────── */
.hljs-punctuation {
  color: #000000;
}
