/* Syntax colours for Pygments/codehilite output. Token colours are
   variables so light and dark themes share one rule set. All foreground
   colours keep at least 4.5:1 contrast on --code-bg. */
:root {
  --tok-text:#1e3437;
  --tok-keyword:#8d2f6b;
  --tok-name:#1e3437;
  --tok-func:#1d5a94;
  --tok-class:#0d6453;
  --tok-builtin:#1d5a94;
  --tok-string:#2d6a1c;
  --tok-number:#9a4a12;
  --tok-comment:#5f706e;
  --tok-operator:#56686a;
  --tok-punct:#56686a;
  --tok-decorator:#9a4a12;
  --tok-error:#b3261e;
  --tok-hll:#fff4d6;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --tok-text:#d6e2e0;
    --tok-keyword:#eba0d6;
    --tok-name:#d6e2e0;
    --tok-func:#93c5f4;
    --tok-class:#72d3b7;
    --tok-builtin:#93c5f4;
    --tok-string:#a9d98e;
    --tok-number:#f1b47c;
    --tok-comment:#8a9d9a;
    --tok-operator:#a7b7b4;
    --tok-punct:#a7b7b4;
    --tok-decorator:#f1b47c;
    --tok-error:#ff8a80;
    --tok-hll:#2d3320;
  }
}
:root[data-theme="dark"] {
  --tok-text:#d6e2e0;
  --tok-keyword:#eba0d6;
  --tok-name:#d6e2e0;
  --tok-func:#93c5f4;
  --tok-class:#72d3b7;
  --tok-builtin:#93c5f4;
  --tok-string:#a9d98e;
  --tok-number:#f1b47c;
  --tok-comment:#8a9d9a;
  --tok-operator:#a7b7b4;
  --tok-punct:#a7b7b4;
  --tok-decorator:#f1b47c;
  --tok-error:#ff8a80;
  --tok-hll:#2d3320;
}

.codehilite { color:var(--tok-text); }
.codehilite .hll { background:var(--tok-hll); display:block; }
.codehilite :is(.c,.ch,.cm,.c1,.cs,.cpf) { color:var(--tok-comment); font-style:italic; }
.codehilite .cp { color:var(--tok-decorator); }
.codehilite :is(.k,.kc,.kd,.kn,.kp,.kr,.ow) { color:var(--tok-keyword); }
.codehilite .kt { color:var(--tok-class); }
.codehilite :is(.n,.nv,.vc,.vg,.vi,.py,.nx,.nl) { color:var(--tok-name); }
.codehilite :is(.nf,.fm) { color:var(--tok-func); }
.codehilite :is(.nc,.nn,.ne) { color:var(--tok-class); }
.codehilite :is(.nb,.bp,.vm) { color:var(--tok-builtin); }
.codehilite :is(.na,.nt) { color:var(--tok-func); }
.codehilite :is(.nd,.ni) { color:var(--tok-decorator); }
.codehilite .no { color:var(--tok-number); }
.codehilite :is(.s,.sa,.sb,.sc,.dl,.sd,.s2,.se,.sh,.si,.sx,.sr,.s1,.ss) { color:var(--tok-string); }
.codehilite :is(.se,.si) { font-weight:600; }
.codehilite :is(.m,.mb,.mf,.mh,.mi,.il,.mo) { color:var(--tok-number); }
.codehilite .o { color:var(--tok-operator); }
.codehilite .p { color:var(--tok-punct); }
.codehilite .err { color:var(--tok-error); }
.codehilite :is(.gp,.gh,.gu) { color:var(--tok-class); font-weight:600; }
.codehilite .go { color:var(--tok-comment); }
.codehilite .gd { color:var(--tok-error); }
.codehilite .gi { color:var(--tok-string); }
.codehilite .ge { font-style:italic; }
.codehilite .gs { font-weight:600; }
