/* Syntax highlighting — Pygments token classes mapped to the design system palette.
   Background and container styles live in tokens.css (.codehilite). */

pre { line-height: 125%; }

/* ── Comments ── */
.codehilite .c,
.codehilite .c1,
.codehilite .cm,
.codehilite .cp,
.codehilite .cpf,
.codehilite .ch,
.codehilite .cs  { color: var(--ink-faint); font-style: italic; }

/* ── Keywords ── */
.codehilite .k,
.codehilite .kc,
.codehilite .kd,
.codehilite .kn,
.codehilite .kp,
.codehilite .kr,
.codehilite .kt,
.codehilite .ow  { color: #a04030; font-weight: 500; }

/* ── Names: class, namespace ── */
.codehilite .nc,
.codehilite .nn  { color: #4a6b8a; font-weight: 500; }

/* ── Names: function, builtin, exception ── */
.codehilite .nf,
.codehilite .nb,
.codehilite .ne,
.codehilite .bp,
.codehilite .fm  { color: #4a6b8a; }

/* ── Decorator ── */
.codehilite .nd  { color: #7a5aa0; }

/* ── Strings ── */
.codehilite .s,
.codehilite .s1,
.codehilite .s2,
.codehilite .sa,
.codehilite .sb,
.codehilite .sc,
.codehilite .sd,
.codehilite .se,
.codehilite .sh,
.codehilite .si,
.codehilite .sl,
.codehilite .ss,
.codehilite .sx,
.codehilite .sr,
.codehilite .dl  { color: #5c7a3a; }

/* ── Numbers ── */
.codehilite .m,
.codehilite .mb,
.codehilite .mf,
.codehilite .mh,
.codehilite .mi,
.codehilite .mo,
.codehilite .il  { color: #8a5a20; }

/* ── Operators, punctuation ── */
.codehilite .o   { color: var(--ink-mute); }

/* ── Other names ── */
.codehilite .na,
.codehilite .no  { color: #8a5a20; }
.codehilite .nv,
.codehilite .vc,
.codehilite .vg,
.codehilite .vi,
.codehilite .vm  { color: var(--ink); }
.codehilite .nt  { color: #a04030; }
.codehilite .ni,
.codehilite .nl  { color: var(--ink); }

/* ── Diff / generic ── */
.codehilite .gd  { color: #b85a3d; background: var(--accent-soft); }
.codehilite .gi  { color: #3a6630; background: #e8f2e0; }
.codehilite .go  { color: var(--ink-mute); }
.codehilite .gp  { color: var(--ink-mute); font-weight: 500; }
.codehilite .gs  { font-weight: bold; }
.codehilite .ge  { font-style: italic; }
.codehilite .err { border: 1px solid #b85a3d; }

/* ── Dark mode ── */
.theme-dark .codehilite .c,
.theme-dark .codehilite .c1,
.theme-dark .codehilite .cm,
.theme-dark .codehilite .cp,
.theme-dark .codehilite .cpf,
.theme-dark .codehilite .ch,
.theme-dark .codehilite .cs  { color: #5a564b; font-style: italic; }

.theme-dark .codehilite .k,
.theme-dark .codehilite .kc,
.theme-dark .codehilite .kd,
.theme-dark .codehilite .kn,
.theme-dark .codehilite .kp,
.theme-dark .codehilite .kr,
.theme-dark .codehilite .kt,
.theme-dark .codehilite .ow  { color: #e89070; font-weight: 500; }

.theme-dark .codehilite .nc,
.theme-dark .codehilite .nn  { color: #82a8d4; font-weight: 500; }

.theme-dark .codehilite .nf,
.theme-dark .codehilite .nb,
.theme-dark .codehilite .ne,
.theme-dark .codehilite .bp,
.theme-dark .codehilite .fm  { color: #82a8d4; }

.theme-dark .codehilite .nd  { color: #c0a0e0; }

.theme-dark .codehilite .s,
.theme-dark .codehilite .s1,
.theme-dark .codehilite .s2,
.theme-dark .codehilite .sa,
.theme-dark .codehilite .sb,
.theme-dark .codehilite .sc,
.theme-dark .codehilite .sd,
.theme-dark .codehilite .se,
.theme-dark .codehilite .sh,
.theme-dark .codehilite .si,
.theme-dark .codehilite .sl,
.theme-dark .codehilite .ss,
.theme-dark .codehilite .sx,
.theme-dark .codehilite .sr,
.theme-dark .codehilite .dl  { color: #b3c98a; }

.theme-dark .codehilite .m,
.theme-dark .codehilite .mb,
.theme-dark .codehilite .mf,
.theme-dark .codehilite .mh,
.theme-dark .codehilite .mi,
.theme-dark .codehilite .mo,
.theme-dark .codehilite .il  { color: #d4a464; }

.theme-dark .codehilite .o   { color: var(--ink-mute); }

.theme-dark .codehilite .na,
.theme-dark .codehilite .no  { color: #d4a464; }
.theme-dark .codehilite .nv,
.theme-dark .codehilite .vc,
.theme-dark .codehilite .vg,
.theme-dark .codehilite .vi,
.theme-dark .codehilite .vm  { color: var(--ink); }
.theme-dark .codehilite .nt  { color: #e89070; }
.theme-dark .codehilite .ni,
.theme-dark .codehilite .nl  { color: var(--ink); }

.theme-dark .codehilite .gd  { color: #f0a085; background: var(--accent-soft); }
.theme-dark .codehilite .gi  { color: #b3c98a; background: #1e2a18; }
.theme-dark .codehilite .go  { color: var(--ink-mute); }
.theme-dark .codehilite .gp  { color: var(--ink-mute); font-weight: 500; }
