.highlight pre {
  background: var(--code-surface);
  color: var(--on-code-surface);
  border-radius: var(--border-radius);
  overflow-x: auto;
}

/* Base text */
.chroma {
  color: var(--on-code-surface);
}

/* Comments */
.chroma .c {
  color: var(--on-surface-muted);
}

/* Keywords */
.chroma .k {
  color: var(--primary);
}

/* Strings */
.chroma .s {
  color: var(--success);
}

/* Numbers / literals */
.chroma .m {
  color: var(--info);
}

/* Functions */
.chroma .nf {
  color: var(--secondary);
}

/* Line highlight */
.chroma .hl {
  background: var(--surface-variant);
}

/* Line numbers */
.chroma .ln,
.chroma .lnt {
  color: var(--on-surface-muted);
  user-select: none;
}

/* --- Syntax Mapping (Compressed & Semantic) --- */

/* Comments */
.chroma .c,
.chroma .cm,
.chroma .c1,
.chroma .cs,
.chroma .cp,
.chroma .cpf,
.chroma .ch {
  color: var(--on-surface-muted);
  font-style: italic;
}

/* Keywords */
.chroma .k,
.chroma .kc,
.chroma .kd,
.chroma .kn,
.chroma .kp,
.chroma .kr,
.chroma .kt,
.chroma .nt {
  color: var(--primary);
}

/* Strings */
.chroma .s,
.chroma .sa,
.chroma .sb,
.chroma .sc,
.chroma .dl,
.chroma .sd,
.chroma .s2,
.chroma .se,
.chroma .sh,
.chroma .si,
.chroma .sx,
.chroma .sr,
.chroma .s1,
.chroma .ss {
  color: var(--success);
}

/* Numbers / literals */
.chroma .m,
.chroma .mb,
.chroma .mf,
.chroma .mh,
.chroma .mi,
.chroma .il,
.chroma .mo {
  color: var(--info);
}

/* Functions & attributes */
.chroma .nf,
.chroma .fm,
.chroma .na {
  color: var(--secondary);
}

/* Operators */
.chroma .o,
.chroma .ow {
  color: var(--secondary);
  font-weight: 600;
}

/* Errors */
.chroma .err,
.chroma .gr,
.chroma .gt {
  color: var(--danger);
}

/* Insert / Delete (diff blocks) */
.chroma .gi {
  color: var(--success);
  background: var(--surface-variant);
}

.chroma .gd {
  color: var(--danger);
  background: var(--surface-variant);
}
