/* ===== Syntax Highlighting (Chroma) ===== */
/* Light mode — muted, paper-like tones */
.chroma { color: #3a3a3a; background-color: var(--code-bg); }
.chroma .lnlinks { outline: none; text-decoration: none; color: inherit; }
.chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
.chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
.chroma .hl { background-color: #e8f0e8; }
.chroma .lnt,
.chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em; color: #b0b0b0; }
.chroma .line { display: flex; }

/* Keywords */
.chroma .k,
.chroma .kc,
.chroma .kd,
.chroma .kp,
.chroma .kr,
.chroma .kt { color: #2d7a3e; }
.chroma .kn { color: #b04868; }

/* Names */
.chroma .na,
.chroma .nc,
.chroma .nf,
.chroma .fm,
.chroma .nd,
.chroma .ne,
.chroma .nx { color: #4a6e8a; }
.chroma .no { color: #2d7a3e; }
.chroma .nt { color: #b04868; }

/* Strings */
.chroma .s, .chroma .sa, .chroma .sb, .chroma .sc, .chroma .dl,
.chroma .sd, .chroma .s2, .chroma .sh, .chroma .si, .chroma .sx,
.chroma .sr, .chroma .s1, .chroma .ss, .chroma .ld { color: #7a6030; }
.chroma .se { color: #8a5090; }

/* Numbers */
.chroma .l, .chroma .m, .chroma .mb, .chroma .mf,
.chroma .mh, .chroma .mi, .chroma .il, .chroma .mo { color: #8a5090; }

/* Operators */
.chroma .o, .chroma .ow { color: #b04868; }

/* Comments */
.chroma .c, .chroma .ch, .chroma .cm, .chroma .c1,
.chroma .cs, .chroma .cp, .chroma .cpf { color: #9aaa9a; font-style: italic; }

/* Diff */
.chroma .gd { color: #b04868; }
.chroma .gi { color: #2d7a3e; }
.chroma .ge { font-style: italic; }
.chroma .gs { font-weight: bold; }
.chroma .gu { color: #9aaa9a; }
.chroma .err { color: #b04868; }

/* ===== Dark mode ===== */
[data-theme="dark"] .chroma { color: #c8dcc8; background-color: var(--code-bg); }
[data-theme="dark"] .chroma .hl { background-color: #1a2e1a; }
[data-theme="dark"] .chroma .lnt,
[data-theme="dark"] .chroma .ln { color: #4a5a4a; }

/* Keywords */
[data-theme="dark"] .chroma .k,
[data-theme="dark"] .chroma .kc,
[data-theme="dark"] .chroma .kd,
[data-theme="dark"] .chroma .kp,
[data-theme="dark"] .chroma .kr,
[data-theme="dark"] .chroma .kt { color: #66d9ef; }
[data-theme="dark"] .chroma .kn { color: #f0859f; }

/* Names */
[data-theme="dark"] .chroma .na,
[data-theme="dark"] .chroma .nc,
[data-theme="dark"] .chroma .nf,
[data-theme="dark"] .chroma .fm,
[data-theme="dark"] .chroma .nd,
[data-theme="dark"] .chroma .ne,
[data-theme="dark"] .chroma .nx { color: #a6e22e; }
[data-theme="dark"] .chroma .no { color: #66d9ef; }
[data-theme="dark"] .chroma .nt { color: #f0859f; }

/* Strings */
[data-theme="dark"] .chroma .s, [data-theme="dark"] .chroma .sa,
[data-theme="dark"] .chroma .sb, [data-theme="dark"] .chroma .sc,
[data-theme="dark"] .chroma .dl, [data-theme="dark"] .chroma .sd,
[data-theme="dark"] .chroma .s2, [data-theme="dark"] .chroma .sh,
[data-theme="dark"] .chroma .si, [data-theme="dark"] .chroma .sx,
[data-theme="dark"] .chroma .sr, [data-theme="dark"] .chroma .s1,
[data-theme="dark"] .chroma .ss, [data-theme="dark"] .chroma .ld { color: #e6db74; }
[data-theme="dark"] .chroma .se { color: #ae81ff; }

/* Numbers */
[data-theme="dark"] .chroma .l, [data-theme="dark"] .chroma .m,
[data-theme="dark"] .chroma .mb, [data-theme="dark"] .chroma .mf,
[data-theme="dark"] .chroma .mh, [data-theme="dark"] .chroma .mi,
[data-theme="dark"] .chroma .il, [data-theme="dark"] .chroma .mo { color: #ae81ff; }

/* Operators */
[data-theme="dark"] .chroma .o,
[data-theme="dark"] .chroma .ow { color: #f0859f; }

/* Comments */
[data-theme="dark"] .chroma .c, [data-theme="dark"] .chroma .ch,
[data-theme="dark"] .chroma .cm, [data-theme="dark"] .chroma .c1,
[data-theme="dark"] .chroma .cs, [data-theme="dark"] .chroma .cp,
[data-theme="dark"] .chroma .cpf { color: #75715e; font-style: italic; }

/* Diff */
[data-theme="dark"] .chroma .gd { color: #f0859f; }
[data-theme="dark"] .chroma .gi { color: #a6e22e; }
[data-theme="dark"] .chroma .gu { color: #75715e; }
[data-theme="dark"] .chroma .err { color: #f0859f; }
