/**
Super Specials thanks to
https://github.com/rouge-ruby/rouge/wiki/List-of-tokens - Rouge Wiki for Tokens reference
https://python.catppuccin.com/docs/catppuccin/extras/pygments.html - Catppuccin Pygments implementation for color usage reference
https://github.com/rouge-ruby/rouge/blob/main/lib/rouge/token.rb - Rouge token to class conversion source
*/

:root[data-theme^="ctp"] {
  .highlight {
    background-color: var(--ctp-crust);
    color: var(--ctp-text);
    border-radius: 8px;
  }

  /* ── Text / Other ───────────────────────────────────────────────────────── */
  .highlight .w,                                          /* Text.Whitespace */
  .highlight .x { color: var(--ctp-text) }                /* Other */
  .highlight .esc { color: var(--ctp-pink) }              /* Escape */
  .highlight .err { color: var(--ctp-red) }               /* Error */

  /* ── Keywords ───────────────────────────────────────────────────────────── */
  .highlight .k,                                          /* Keyword */
  .highlight .kc,                                         /* Keyword.Constant */
  .highlight .kd,                                         /* Keyword.Declaration */
  .highlight .kn,                                         /* Keyword.Namespace */
  .highlight .kr,                                         /* Keyword.Reserved */
  .highlight .kv { color: var(--ctp-mauve) }              /* Keyword.Variable */
  .highlight .kd { font-style: italic }                   /* Keyword.Declaration is italicized */
  .highlight .kp { color: var(--ctp-pink) }               /* Keyword.Pseudo */
  .highlight .kt { color: var(--ctp-yellow) }             /* Keyword.Type */

  /* ── Names ──────────────────────────────────────────────────────────────── */
  .highlight .n,                                          /* Name */
  .highlight .no,                                         /* Name.Constant */
  .highlight .nd,                                         /* Name.Decorator */
  .highlight .ni,                                         /* Name.Entity */
  .highlight .nn,                                         /* Name.Namespace */
  .highlight .nx,                                         /* Name.Other */
  .highlight .nv,                                         /* Name.Variable */
  .highlight .vg,                                         /* Name.Variable.Global */
  .highlight .vi { color: var(--ctp-text) }               /* Name.Variable.Instance */
  .highlight .vm { color: var(--ctp-text); font-style: italic }   /* Name.Variable.Magic */
  .highlight .na { color: var(--ctp-green) }              /* Name.Attribute */
  .highlight .py { color: var(--ctp-green) }              /* Name.Property */
  .highlight .nb { color: var(--ctp-red); font-style: italic }    /* Name.Builtin */
  .highlight .bp { color: var(--ctp-red) }                /* Name.Builtin.Pseudo */
  .highlight .nc,                                         /* Name.Class */
  .highlight .ne { color: var(--ctp-yellow) }             /* Name.Exception */
  .highlight .vc { color: var(--ctp-yellow); font-style: italic } /* Name.Variable.Class */
  .highlight .nf,                                         /* Name.Function */
  .highlight .fm,                                         /* Name.Function.Magic */
  .highlight .nt { color: var(--ctp-blue) }               /* Name.Tag */
  .highlight .nl { color: var(--ctp-teal); font-style: italic }   /* Name.Label */

  /* ── Literals — Strings ─────────────────────────────────────────────────── */
  .highlight .l,                                          /* Literal */
  .highlight .ld { color: var(--ctp-text) }               /* Literal.Date */
  .highlight .s,                                          /* String */
  .highlight .sa,                                         /* String.Affix */
  .highlight .sb,                                         /* String.Backtick */
  .highlight .sc,                                         /* String.Char */
  .highlight .dl,                                         /* String.Delimiter */
  .highlight .sd,                                         /* String.Doc */
  .highlight .s2,                                         /* String.Double */
  .highlight .sh,                                         /* String.Heredoc */
  .highlight .si,                                         /* String.Interpol */
  .highlight .sx,                                         /* String.Other */
  .highlight .s1 { color: var(--ctp-green) }              /* String.Single */
  .highlight .se,                                         /* String.Escape */
  .highlight .sr { color: var(--ctp-pink) }               /* String.Regex */
  .highlight .ss { color: var(--ctp-red) }                /* String.Symbol */

  /* ── Literals — Numbers ─────────────────────────────────────────────────── */
  .highlight .m,                                          /* Number */
  .highlight .mb,                                         /* Number.Bin */
  .highlight .mf,                                         /* Number.Float */
  .highlight .mh,                                         /* Number.Hex */
  .highlight .mi,                                         /* Number.Integer */
  .highlight .il,                                         /* Number.Integer.Long */
  .highlight .mo,                                         /* Number.Oct */
  .highlight .mx { color: var(--ctp-peach) }              /* Number.Other */

  /* ── Operators ──────────────────────────────────────────────────────────── */
  .highlight .o { color: var(--ctp-sky) }                 /* Operator */
  .highlight .ow { color: var(--ctp-mauve) }              /* Operator.Word */

  /* ── Punctuation ────────────────────────────────────────────────────────── */
  .highlight .p,                                          /* Punctuation */
  .highlight .pi { color: var(--ctp-overlay2) }           /* Punctuation.Indicator */

  /* ── Comments ───────────────────────────────────────────────────────────── */
  .highlight .c,                                          /* Comment */
  .highlight .ch,                                         /* Comment.Hashbang */
  .highlight .cd,                                         /* Comment.Doc */
  .highlight .cm,                                         /* Comment.Multiline */
  .highlight .c1,                                         /* Comment.Single */
  .highlight .cs { color: var(--ctp-overlay2); opacity: 0.5 } /* Comment.Special */
  .highlight .cp,                                         /* Comment.Preproc */
  .highlight .cpf { color: var(--ctp-pink) }              /* Comment.PreprocFile */

  /* ── Generic ────────────────────────────────────────────────────────────── */
  .highlight .g,                                          /* Generic */
  .highlight .gr,                                         /* Generic.Error */
  .highlight .gp,                                         /* Generic.Prompt */
  .highlight .gs,                                         /* Generic.Strong */
  .highlight .gt { color: var(--ctp-text) }               /* Generic.Traceback */
  .highlight .gd { color: var(--ctp-red) }                /* Generic.Deleted */
  .highlight .gi { color: var(--ctp-green) }              /* Generic.Inserted */
  .highlight .go,                                         /* Generic.Output */
  .highlight .gl { color: var(--ctp-overlay0) }           /* Generic.Lineno */
  .highlight .ge { color: var(--ctp-text); text-decoration: underline }          /* Generic.Emph */
  .highlight .gh,                                         /* Generic.Heading */
  .highlight .gu,                                         /* Generic.Subheading */
  .highlight .ges { color: var(--ctp-text); font-weight: bold }  /* Generic.EmphStrong */
}
