/* Catppuccin Mocha syntax theme
   Uses variables from palette.css (:root --ctp-mocha-*) */

.highlight table td { padding: 0px 1em; }
.highlight table pre { margin: 0; }

/* Base */
.highlight {
  color: var(--ctp-mocha-text);
  background-color: var(--ctp-mocha-base);
}

/* Comments */
.highlight .c,
.highlight .ch,
.highlight .cd,
.highlight .cm,
.highlight .c1,
.highlight .cpf {
  color: var(--ctp-mocha-overlay0);
  font-style: italic;
}

.highlight .cp {
  color: var(--ctp-mocha-surface1);
}

.highlight .cs {
  color: var(--ctp-mocha-surface1);
  font-style: italic;
}

/* Errors / warnings */
.highlight .err {
  color: var(--ctp-mocha-crust);
  background-color: var(--ctp-mocha-red);
  border-radius: 2px;
  padding: 0 .15em;
}

/* Generic emphasis/strong */
.highlight .ge { font-style: italic; }
.highlight .gs { font-weight: 600; }
.highlight .ges { font-weight: 600; font-style: italic; }

/* Insertions / deletions (diff) */
.highlight .gi { color: var(--ctp-mocha-green); }
.highlight .gd { color: var(--ctp-mocha-red); }
.highlight .gt,
.highlight .gr { color: var(--ctp-mocha-red); }
.highlight .gh,
.highlight .go,
.highlight .gu { color: var(--ctp-mocha-overlay2); }

/* Keywords */
.highlight .k {
  color: var(--ctp-mocha-red);
}

.highlight .kc,
.highlight .kd,
.highlight .kn,
.highlight .kp,
.highlight .kr,
.highlight .kt,
.highlight .kv {
  color: var(--ctp-mocha-mauve);
}

/* Operators & punctuation */
.highlight .o,
.highlight .ow {
  color: var(--ctp-mocha-red);
}

/* Names (identifiers) */
.highlight .na { color: var(--ctp-mocha-text); }        /* attribute / param name */
.highlight .nb { color: var(--ctp-mocha-yellow); font-style: italic; }          /* builtins */
.highlight .bp,
.highlight .ni,
.highlight .nn,
.highlight .nv,
.highlight .vm,
.highlight .vc,
.highlight .vg,
.highlight .vi { color: var(--ctp-mocha-text); }

/* Functions & methods */
.highlight .nf,
.highlight .fm {
  color: var(--ctp-mocha-blue);
  font-style: italic;
}
.highlight .nx {
  color: var(--ctp-mocha-text);
}

/* Classes, enums, decorators */
.highlight .nc,
.highlight .nd,
.highlight .ne {
  color: var(--ctp-mocha-yellow);
  font-weight: 600;
}

/* Constants / Tags */
.highlight .no { color: var(--ctp-mocha-peach); }
.highlight .nt { color: var(--ctp-mocha-red); }
.highlight .nl { color: var(--ctp-mocha-lavender); font-weight: 600; }
.highlight .gp { color: var(--ctp-mocha-sapphire); }

/* Strings */
.highlight .s,
.highlight .sa,
.highlight .sb,
.highlight .sc,
.highlight .sd,
.highlight .s1,
.highlight .s2,
.highlight .sh,
.highlight .si,
.highlight .sr,
.highlight .ss,
.highlight .dl {
  color: var(--ctp-mocha-green);
}

/* Numbers */
.highlight .m,
.highlight .mb,
.highlight .mf,
.highlight .mh,
.highlight .mi,
.highlight .il,
.highlight .mo,
.highlight .mx,
.highlight .se {
  color: var(--ctp-mocha-peach);
}

/* Whitespace / other */
.highlight .w { color: var(--ctp-mocha-overlay0); }

/* Code blocks inside .highlight that need subtle surfaces */
.highlight pre,
.highlight code {
  background: transparent;
}

/* Optional: line highlight stripe (if your highlighter emits it) */
.highlight .hll {
  background-color: rgba(var(--ctp-mocha-surface1-rgb) / 0.35);
}

/* Optional: gutter line numbers */
.highlight .lineno {
  color: var(--ctp-mocha-overlay2);
}
