/* Catppuccin Syntax Highlighting for Chroma/Hugo */
/* https://github.com/catppuccin/catppuccin/blob/main/docs/style-guide.md */

/* Code block container - Chroma uses .highlight pre */
.highlight pre {
  background-color: var(--code-bg) !important;
  border-radius: 6px;
  padding: 16px;
  overflow-x: auto;
  color: var(--text-color);
  margin: 0;
  font-size: 13pt;
}

/* Plain code blocks (without language specifier) */
pre {
  background-color: var(--code-bg);
  border-radius: 6px;
  padding: 16px;
  overflow-x: auto;
  color: var(--text-color);
  margin: 0;
}

pre code {
  background-color: transparent;
  color: var(--text-color);
  display: block;
  padding: 0;
  margin: 0;
  white-space: pre;
  font-size: 13pt;
}

/* Fix first line indentation */
.highlight pre code {
  display: block;
  padding: 0;
  margin: 0;
}

/* Reset line element spacing */
.chroma .line,
.chroma .cl {
  display: block;
  padding: 0;
  margin: 0;
  text-indent: 0;
}

/* Ensure code inside pre doesn't have extra spacing */
.highlight pre code .line:first-child {
  margin-left: 0;
  padding-left: 0;
  text-indent: 0;
}

/* Override any inline background colors */
.highlight pre,
.chroma {
  background-color: var(--code-bg) !important;
}

.chroma {
  color: var(--text-color);
}

/* Line table - Chroma uses this structure */
.highlight table,
.chroma table {
  background-color: var(--code-bg) !important;
}

.highlight table td,
.chroma table td {
  padding: 5px;
  background-color: transparent !important;
}

.highlight table pre,
.chroma table pre {
  margin: 0;
  background-color: transparent !important;
}

/* Comments - Overlay 2 */
.chroma .c,
.chroma .cm,
.chroma .c1,
.chroma .ch,
.chroma .cd,
.chroma .cpf {
  color: var(--ctp-overlay2);
  font-style: italic;
}

.chroma .cp,
.chroma .cs {
  color: var(--ctp-overlay1);

}

.chroma .cs {
  font-style: italic;
}

/* Errors - Red */
.chroma .err {
  color: var(--ctp-red);
  background-color: rgba(243, 139, 168, 0.1);
}

/* General */
.chroma .ge {
  font-style: italic;
}

.chroma .gr {
  color: var(--ctp-red);
}

.chroma .gh {
  color: var(--ctp-overlay1);
}

.chroma .go {
  color: var(--ctp-overlay0);
}

.chroma .gp {
  color: var(--ctp-subtext0);
}

.chroma .gs {

}

.chroma .gu {
  color: var(--ctp-overlay0);
}

.chroma .gt {
  color: var(--ctp-red);
}

/* Keywords - Mauve */
.chroma .k,
.chroma .kc,
.chroma .kd,
.chroma .kn,
.chroma .kp,
.chroma .kr,
.chroma .kv {
  color: var(--ctp-mauve);

}

/* Types, Classes, Interfaces, Enums - Yellow */
.chroma .kt,
.chroma .nc {
  color: var(--ctp-yellow);

}

/* Enum Variants - Teal */
.chroma .no {
  color: var(--ctp-teal);
}

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

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

.chroma .sr {
  color: var(--ctp-teal);
}

.chroma .ss {
  color: var(--ctp-pink);
}

/* Names - Variables, Properties */
.chroma .na {
  color: var(--ctp-blue);
}

/* Builtins - Red */
.chroma .nb,
.chroma .bp {
  color: var(--ctp-red);
}

/* Methods, Functions - Blue */
.chroma .nd,
.chroma .nf,
.chroma .fm,
.chroma .nl {
  color: var(--ctp-blue);

}

.chroma .nn {
  color: var(--ctp-yellow);
}

/* Tags, Attributes */
.chroma .nt {
  color: var(--ctp-mauve);
}

/* Variables, Parameters */
.chroma .vc,
.chroma .vg,
.chroma .vi,
.chroma .nv,
.chroma .vm,
.chroma .nx {
  color: var(--ctp-text);
}

/* Operators - Sky */
.chroma .ow,
.chroma .o {
  color: var(--ctp-sky);

}

/* Punctuation, Delimiters */
.chroma .p {
  color: var(--ctp-overlay2);
}

/* Line numbers */
.chroma .lnt,
.chroma .ln {
  color: var(--ctp-overlay0);
}

/* Diff */
.chroma .gd {
  color: var(--ctp-red);
  background-color: rgba(243, 139, 168, 0.2);
}

.chroma .gi {
  color: var(--ctp-green);
  background-color: rgba(166, 227, 161, 0.2);
}

/* Generic */
.chroma .w {
  color: var(--ctp-overlay2);
}

/* Line highlighting */
.chroma .hl {
  background-color: var(--ctp-surface1);
}
