/* Pygments dark theme (GitHub Dark palette).
 * All token colors meet WCAG AA against the --code-bg: #1e1e2e background.
 *
 * Prior version used GitHub Light palette (#24292f, #032f62, #6a737d) which
 * are dark-on-dark and invisible on the dark code-block background. This
 * version uses bright tokens (#c9d1d9 default, #ff7b72 keywords, #a5d6ff
 * strings) suitable for the dark theme. */

/* Reset */
pre.pygments-highlighted, pre[class*="language-"] {
    background: #1e1e2e;
    color: #c9d1d9;
}

/* Base wrapper */
.pygments-highlighted .highlight, .highlight {
    background: #1e1e2e;
    color: #c9d1d9;
}

/* === Comments === */
.pygments-highlighted .c   { color: #8b949e; font-style: italic; }  /* comment */
.pygments-highlighted .ch  { color: #8b949e; font-style: italic; }  /* hashbang */
.pygments-highlighted .cm  { color: #8b949e; font-style: italic; }  /* multiline */
.pygments-highlighted .cp  { color: #ff7b72; }                       /* preprocessor */
.pygments-highlighted .cpf { color: #a5d6ff; }                       /* preprocessor file */
.pygments-highlighted .c1  { color: #8b949e; font-style: italic; }  /* single-line */
.pygments-highlighted .cs  { color: #8b949e; font-style: italic; }  /* special */

/* === Errors === */
.pygments-highlighted .err { color: #ffa198; background: rgba(248,81,73,0.15); }

/* === Keywords (control flow, declarations) === */
.pygments-highlighted .k   { color: #ff7b72; font-weight: 600; }
.pygments-highlighted .kc  { color: #79c0ff; font-weight: 600; }  /* constant: True/False/None */
.pygments-highlighted .kd  { color: #ff7b72; font-weight: 600; }  /* declaration: def/class */
.pygments-highlighted .kn  { color: #ff7b72; font-weight: 600; }  /* namespace: import/from */
.pygments-highlighted .kp  { color: #ff7b72; font-weight: 600; }  /* pseudo: not/in/is */
.pygments-highlighted .kr  { color: #ff7b72; font-weight: 600; }  /* reserved */
.pygments-highlighted .kt  { color: #ff7b72; font-weight: 600; }  /* type */

/* === Literals === */
.pygments-highlighted .l   { color: #a5d6ff; }   /* literal */
.pygments-highlighted .ld  { color: #a5d6ff; }   /* literal date */
.pygments-highlighted .m   { color: #79c0ff; }   /* number */
.pygments-highlighted .mb  { color: #79c0ff; }
.pygments-highlighted .mf  { color: #79c0ff; }   /* float */
.pygments-highlighted .mh  { color: #79c0ff; }   /* hex */
.pygments-highlighted .mi  { color: #79c0ff; }   /* int */
.pygments-highlighted .mo  { color: #79c0ff; }   /* octal */
.pygments-highlighted .il  { color: #79c0ff; }   /* int long */

/* === Strings === */
.pygments-highlighted .s   { color: #a5d6ff; }
.pygments-highlighted .sa  { color: #a5d6ff; }
.pygments-highlighted .sb  { color: #a5d6ff; }
.pygments-highlighted .sc  { color: #a5d6ff; }
.pygments-highlighted .dl  { color: #a5d6ff; }   /* delimiter */
.pygments-highlighted .sd  { color: #a5d6ff; font-style: italic; }  /* doc */
.pygments-highlighted .s2  { color: #a5d6ff; }   /* double */
.pygments-highlighted .se  { color: #79c0ff; }   /* escape */
.pygments-highlighted .sh  { color: #a5d6ff; }
.pygments-highlighted .si  { color: #79c0ff; }   /* interpolation */
.pygments-highlighted .sx  { color: #a5d6ff; }
.pygments-highlighted .sr  { color: #a5d6ff; }   /* regex */
.pygments-highlighted .s1  { color: #a5d6ff; }   /* single */
.pygments-highlighted .ss  { color: #a5d6ff; }   /* symbol */

/* === Names === */
.pygments-highlighted .n   { color: #c9d1d9; }   /* default name */
.pygments-highlighted .na  { color: #79c0ff; }   /* attribute */
.pygments-highlighted .nb  { color: #79c0ff; }   /* builtin: print, len, list */
.pygments-highlighted .nc  { color: #d2a8ff; font-weight: 600; }  /* class */
.pygments-highlighted .no  { color: #79c0ff; }   /* constant */
.pygments-highlighted .nd  { color: #d2a8ff; }   /* decorator */
.pygments-highlighted .ni  { color: #c9d1d9; }   /* entity */
.pygments-highlighted .ne  { color: #ff7b72; font-weight: 600; }  /* exception */
.pygments-highlighted .nf  { color: #d2a8ff; }   /* function */
.pygments-highlighted .nl  { color: #c9d1d9; }   /* label */
.pygments-highlighted .nn  { color: #c9d1d9; }   /* namespace */
.pygments-highlighted .nx  { color: #c9d1d9; }
.pygments-highlighted .py  { color: #c9d1d9; }
.pygments-highlighted .nt  { color: #7ee787; }   /* tag (HTML) */
.pygments-highlighted .nv  { color: #c9d1d9; }   /* variable */
.pygments-highlighted .vc  { color: #c9d1d9; }
.pygments-highlighted .vg  { color: #c9d1d9; }
.pygments-highlighted .vi  { color: #c9d1d9; }
.pygments-highlighted .vm  { color: #c9d1d9; }
.pygments-highlighted .fm  { color: #d2a8ff; }   /* function magic */
.pygments-highlighted .bp  { color: #79c0ff; }   /* builtin pseudo: self, cls */

/* === Operators / Punctuation === */
.pygments-highlighted .o   { color: #ff7b72; }   /* operator */
.pygments-highlighted .ow  { color: #ff7b72; font-weight: 600; }  /* word op: not/in/is */
.pygments-highlighted .p   { color: #c9d1d9; }   /* punctuation */
.pygments-highlighted .w   { color: #c9d1d9; }   /* whitespace */

/* === Generic (for diffs, output) === */
.pygments-highlighted .g   { color: #c9d1d9; }
.pygments-highlighted .gd  { color: #ffa198; background: rgba(248,81,73,0.15); }  /* deleted */
.pygments-highlighted .ge  { color: #c9d1d9; font-style: italic; }   /* emphasis */
.pygments-highlighted .ges { color: #c9d1d9; font-weight: 600; font-style: italic; }
.pygments-highlighted .gr  { color: #ffa198; }   /* error */
.pygments-highlighted .gh  { color: #79c0ff; font-weight: 600; }     /* heading */
.pygments-highlighted .gi  { color: #7ee787; background: rgba(46,160,67,0.15); }  /* inserted */
.pygments-highlighted .go  { color: #c9d1d9; }                       /* output */
.pygments-highlighted .gp  { color: #ff7b72; }                       /* prompt */
.pygments-highlighted .gs  { color: #c9d1d9; font-weight: 600; }     /* strong */
.pygments-highlighted .gu  { color: #d2a8ff; font-weight: 600; }     /* subheading */
.pygments-highlighted .gt  { color: #ffa198; }                       /* traceback */

/* === Highlighted line / hll === */
.pygments-highlighted .hll { background: rgba(255,212,59,0.1); }
.pygments-highlighted .special { color: #ff7b72; }

/* === Defensive: make ANY span without an explicit color inherit
 *    the light base color, so even unstyled tokens are legible. === */
.pygments-highlighted span { color: inherit; }

/* === Light-bg override: when a code block sits inside a callout that
 *    forces a light background (algorithm, library-shortcut, etc.), the
 *    surrounding callout already remaps tokens (see book.css). For pre
 *    blocks NOT in a callout — which is the default — the dark palette
 *    above applies. === */
