/* ============================================================
   highlight.css  —  Syntax highlighting for Pygments
   ============================================================ */

.highlight { background: var(--bg3) !important; }

/* Base text */
.highlight .hll { background-color: #44475a; display: block; }

/* Comments */
.highlight .c,
.highlight .c1,
.highlight .cm,
.highlight .cs { color: #6272a4; font-style: italic; }
.highlight .cp  { color: #ff79c6; }

/* Errors */
.highlight .err { color: #ff5555; }

/* Keywords */
.highlight .k,
.highlight .kc,
.highlight .kr  { color: #ff79c6; font-weight: bold; }
.highlight .kd  { color: #8be9fd; font-style: italic; }
.highlight .kn  { color: #ff79c6; }
.highlight .kp  { color: #ff79c6; }
.highlight .kt  { color: #8be9fd; }

/* Numbers */
.highlight .m,
.highlight .mf,
.highlight .mh,
.highlight .mi,
.highlight .mo,
.highlight .il  { color: #bd93f9; }

/* Strings */
.highlight .s,
.highlight .s1,
.highlight .s2,
.highlight .sb,
.highlight .sc,
.highlight .sh,
.highlight .si,
.highlight .sx,
.highlight .sr,
.highlight .ss  { color: #f1fa8c; }
.highlight .sd  { color: #f1fa8c; font-style: italic; }
.highlight .se  { color: #ff79c6; }

/* Names */
.highlight .n,
.highlight .ni,
.highlight .nl,
.highlight .nn,
.highlight .w   { color: #f8f8f2; }
.highlight .na  { color: #50fa7b; }
.highlight .nb,
.highlight .bp  { color: #8be9fd; font-style: italic; }
.highlight .nc  { color: #50fa7b; }
.highlight .nd  { color: #50fa7b; }
.highlight .ne  { color: #50fa7b; }
.highlight .nf,
.highlight .nx  { color: #50fa7b; }
.highlight .no  { color: #bd93f9; }
.highlight .nt  { color: #ff79c6; }
.highlight .nv,
.highlight .vc,
.highlight .vg,
.highlight .vi,
.highlight .vm  { color: #8be9fd; }

/* Operators */
.highlight .o,
.highlight .ow  { color: #ff79c6; }

/* Punctuation */
.highlight .p,
.highlight .pm  { color: #f8f8f2; }

/* Generic */
.highlight .ge  { font-style: italic; }
.highlight .gs  { font-weight: bold; }
.highlight .gu  { color: #6272a4; }
.highlight .gd  { color: #ff5555; background: rgba(255,85,85,.15); display: block; }
.highlight .gi  { color: #50fa7b; background: rgba(80,250,123,.15); display: block; }
.highlight .gr  { color: #ff5555; }
.highlight .gt  { color: #ff5555; }
.highlight .gh  { color: #bd93f9; font-weight: bold; }

/* Light scheme overrides — darken some colors for readability */
[data-scheme="light"] .highlight { background: #f0f0e8 !important; }
[data-scheme="light"] .highlight .k,
[data-scheme="light"] .highlight .kc,
[data-scheme="light"] .highlight .kr,
[data-scheme="light"] .highlight .kn,
[data-scheme="light"] .highlight .kp  { color: #7c3aed; }
[data-scheme="light"] .highlight .kd  { color: #0369a1; }
[data-scheme="light"] .highlight .kt  { color: #0369a1; }
[data-scheme="light"] .highlight .m,
[data-scheme="light"] .highlight .mf,
[data-scheme="light"] .highlight .mh,
[data-scheme="light"] .highlight .mi,
[data-scheme="light"] .highlight .mo  { color: #6d28d9; }
[data-scheme="light"] .highlight .s,
[data-scheme="light"] .highlight .s1,
[data-scheme="light"] .highlight .s2,
[data-scheme="light"] .highlight .sd  { color: #b45309; }
[data-scheme="light"] .highlight .c,
[data-scheme="light"] .highlight .c1,
[data-scheme="light"] .highlight .cm  { color: #5a6380; }
[data-scheme="light"] .highlight .na,
[data-scheme="light"] .highlight .nc,
[data-scheme="light"] .highlight .nf  { color: #15803d; }
[data-scheme="light"] .highlight .nb  { color: #0369a1; }
[data-scheme="light"] .highlight .nt  { color: #be185d; }
[data-scheme="light"] .highlight .n,
[data-scheme="light"] .highlight .w,
[data-scheme="light"] .highlight .p   { color: #282a36; }
[data-scheme="light"] .highlight .o,
[data-scheme="light"] .highlight .ow  { color: #be185d; }

/* Line numbers */
.highlight table.highlighttable          { width: 100%; }
.highlight table.highlighttable td       { padding: 0; border: none; }
.highlight table.highlighttable td.linenos pre {
  padding: 1.125rem 0.75rem 1.125rem 1.25rem;
  color: var(--fg2);
  border-right: 1px solid var(--border);
  text-align: right;
  min-width: 3rem;
  background: transparent;
  user-select: none;
}
.highlight table.highlighttable td.code pre { padding: 1.125rem 1.375rem; }
