/*******************************************************************************
 * shCpp-light.css
 *
 * SyntaxHighlighter theme for C / C++ — LIGHT background variant.
 *
 * Palette taken directly from VS Code "Default Light+" / "Light Modern"
 * token colours. Every class maps to a named VS Code scope so you can
 * verify with Developer › Inspect Editor Tokens and Scopes.
 *
 * VS Code Light+ reference mapping
 * ──────────────────────────────────────────────────────────────────────────
 *   Background          #ffffff    editor.background
 *   Foreground          #000000    editor.foreground
 *   Line highlight      #f5f5f5    editor.lineHighlightBackground
 *   Selection           #add6ff    editor.selectionBackground
 *   Gutter              #237893    editorLineNumber.foreground (active #0b216f)
 *   Comments            #008000    comment
 *   Keywords (control)  #af00db    keyword.control              (purple)
 *   Keywords (storage)  #0000ff    storage.type / storage.modifier (blue)
 *   Types               #267f99    entity.name.type / support.type (teal)
 *   Class keywords      #0000ff    storage.type.class
 *   Preprocessor        #800000    meta.preprocessor            (dark red)
 *   Strings             #a31515    string                       (brick red)
 *   Char literals       #a31515    string.quoted.single
 *   Numbers             #098658    constant.numeric             (dark green)
 *   Macros              #001080    variable                     (dark navy)
 *   Functions           #795e26    entity.name.function         (brown-gold)
 *   Operators (word)    #0000ff    keyword.operator.word
 *   Operators (symbol)  #000000    keyword.operator             (plain fg)
 *   Casts               #af00db    keyword.operator.cast        (purple)
 *   Literals true/false #0000ff    constant.language
 *   stdlib names        #267f99    support.class / support.function
 ******************************************************************************/

/* ── Base code block ─────────────────────────────────────────────────────── */
.syntaxhighlighter {
    background-color : #ffffff !important;
    border           : 1px solid #e4e4e4;
    border-radius    : 4px;
    font-size        : 0.88em;
    line-height      : 1.55;
    color            : #000000 !important;
}

/* ── Comments  //  and  /* … */ ─────────────────────────────────────────── */
.syntaxhighlighter .cpp_comment {
    color      : #008000 !important;   /* VS Code Light+ green */
    font-style : italic;
}

/* ── Preprocessor  #include  #define  #pragma ────────────────────────────── */
.syntaxhighlighter .cpp_preprocessor {
    color : #800000 !important;        /* dark red — meta.preprocessor */
}

/* ── Control-flow keywords  if  for  while  return  try … ───────────────── */
.syntaxhighlighter .cpp_keyword {
    color       : #af00db !important;  /* purple — keyword.control */
    font-weight : normal;
}

/* ── Built-in types  int  float  bool  uint32_t … ───────────────────────── */
.syntaxhighlighter .cpp_type {
    color : #267f99 !important;        /* teal — entity.name.type */
}

/* ── Storage / CV / linkage  const  static  inline  virtual … ───────────── */
.syntaxhighlighter .cpp_modifier {
    color : #0000ff !important;        /* blue — storage.modifier */
}

/* ── OOP / template  class  struct  template  typename  using … ──────────── */
.syntaxhighlighter .cpp_class_kw {
    color       : #0000ff !important;  /* blue — storage.type.class */
    font-weight : normal;
}

/* ── Cast operators  static_cast  dynamic_cast … ────────────────────────── */
.syntaxhighlighter .cpp_cast {
    color : #af00db !important;        /* purple — keyword.operator.cast */
}

/* ── Strings  "hello\n"  R"(raw)" ───────────────────────────────────────── */
.syntaxhighlighter .cpp_string {
    color : #a31515 !important;        /* brick red — string */
}

/* ── Character literals  'a'  '\n' ──────────────────────────────────────── */
.syntaxhighlighter .cpp_char {
    color : #a31515 !important;        /* same as strings */
}

/* ── Numeric literals  42  0xFF  3.14f  0b1010 ──────────────────────────── */
.syntaxhighlighter .cpp_number {
    color : #098658 !important;        /* dark green — constant.numeric */
}

/* ── Boolean / pointer literals  true  false  nullptr  this ─────────────── */
.syntaxhighlighter .cpp_literal {
    color : #0000ff !important;        /* blue — constant.language */
}

/* ── Word-form & symbolic operators ─────────────────────────────────────── */
.syntaxhighlighter .cpp_operator {
    color : #000000 !important;        /* plain foreground — keyword.operator */
}

/* ── ALL_CAPS macros  ASSERT  MAX_SIZE  DEBUG_FLAG … ────────────────────── */
.syntaxhighlighter .cpp_macro {
    color : #001080 !important;        /* dark navy — variable */
}

/* ── Function / method calls  printf(  std::sort( … ─────────────────────── */
.syntaxhighlighter .cpp_function {
    color : #795e26 !important;        /* brown-gold — entity.name.function */
}

/* ── Standard-library names  std::vector  cout  make_unique … ───────────── */
.syntaxhighlighter .cpp_stdlib {
    color : #267f99 !important;        /* teal — support.class / support.function */
}

/* ── Gutter (line numbers) ───────────────────────────────────────────────── */
.syntaxhighlighter .gutter {
    background-color : #f3f3f3 !important;   /* activityBar.background-ish */
    color            : #237893 !important;   /* editorLineNumber.foreground */
    border-right     : 1px solid #e4e4e4;
}

.syntaxhighlighter .gutter .line {
    border-right : none !important;
}

/* ── Active line number ──────────────────────────────────────────────────── */
.syntaxhighlighter .gutter .line.highlighted {
    color : #0b216f !important;        /* editorLineNumber.activeForeground */
}

/* ── Highlighted / active line ───────────────────────────────────────────── */
.syntaxhighlighter .line.highlighted {
    background-color : #f5f5f5 !important;   /* editor.lineHighlightBackground */
}

/* ── Hover highlight ─────────────────────────────────────────────────────── */
.syntaxhighlighter .line:hover {
    background-color : #f5f5f5 !important;
}

/* ── Selection ───────────────────────────────────────────────────────────── */
.syntaxhighlighter .line .selection {
    background-color : #add6ff !important;   /* editor.selectionBackground */
}

/* ── Toolbar ─────────────────────────────────────────────────────────────── */
.syntaxhighlighter .toolbar {
    background-color : #f3f3f3 !important;
    border-bottom    : 1px solid #e4e4e4;
}

.syntaxhighlighter .toolbar a {
    color : #616161 !important;        /* icon.foreground */
}

.syntaxhighlighter .toolbar a:hover {
    color : #000000 !important;
}