:root {
  --code-bg: #331f2b;
  --code-bg-alt: #3f2735;
  --code-fg: #eac3da;
  --code-comment: #896c7d;
  --code-red: #d0435f;
  --code-green: #d18de2;
  --code-yellow: #e28d8d;
  --code-blue: #8dafe2;
  --code-magenta: #d65c8d;
  --code-cyan: #ed82c2;
}

.codehilite {
  background-color: var(--code-bg);
  padding: 0.5em 1em;
  border-radius: 5px;
  overflow: auto;
  code {
    color: var(--code-fg);
  }
}

/* Comments */
.codehilite .c,
.codehilite .cm,
.codehilite .c1 {
  color: var(--code-comment);
  font-style: italic;
}

/* Keywords */
.codehilite .k,
.codehilite .kn,
.codehilite .kp {
  color: var(--code-cyan);
  font-weight: bold;
}

/* Strings */
.codehilite .s,
.codehilite .s1,
.codehilite .s2 {
  color: var(--code-green);
}

/* Numbers */
.codehilite .m,
.codehilite .mi,
.codehilite .mf {
  color: var(--code-blue);
}

/* Functions and Methods */
.codehilite .nf,
.codehilite .fm {
  color: var(--code-blue);
}

/* Classes and Built-ins */
.codehilite .nc,
.codehilite .nb {
  color: var(--code-magenta);
}

/* Variables */
.codehilite .nv,
.codehilite .vc {
  color: var(--code-red);
}

/* Operators */
.codehilite .o,
.codehilite .ow {
  color: var(--code-yellow);
}

/* Tags (HTML/XML) */
.codehilite .nt {
  color: var(--code-cyan);
}

/* Attributes */
.codehilite .na {
  color: var(--code-green);
}

/* Error/Alerts */
.codehilite .err {
  color: var(--code-red);
  background-color: var(--code-bg-alt);
}
