/*
 * Rouge syntax theme. Colours are defined as variables so light and dark share
 * one set of token rules.
 */

:root {
  --syn-comment: #8a8578;
  --syn-keyword: #8b3a62;
  --syn-string: #4a6b3a;
  --syn-number: #9a5518;
  --syn-function: #2f5d8a;
  --syn-constant: #7a4a96;
  --syn-class: #8a6216;
  --syn-operator: #6b6a63;
  --syn-punctuation: #75726a;
  --syn-variable: #a8442a;
  --syn-error: #9c3328;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --syn-comment: #6f6a5e;
    --syn-keyword: #e28fb4;
    --syn-string: #a8cf8e;
    --syn-number: #e5a76a;
    --syn-function: #86b8e0;
    --syn-constant: #c4a2e8;
    --syn-class: #e3c37a;
    --syn-operator: #a29d92;
    --syn-punctuation: #948f83;
    --syn-variable: #e69a7c;
    --syn-error: #e0897c;
  }
}

:root[data-theme="dark"] {
  --syn-comment: #6f6a5e;
  --syn-keyword: #e28fb4;
  --syn-string: #a8cf8e;
  --syn-number: #e5a76a;
  --syn-function: #86b8e0;
  --syn-constant: #c4a2e8;
  --syn-class: #e3c37a;
  --syn-operator: #a29d92;
  --syn-punctuation: #948f83;
  --syn-variable: #e69a7c;
  --syn-error: #e0897c;
}

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

.highlight .c,
.highlight .ch,
.highlight .cd,
.highlight .cm,
.highlight .cp,
.highlight .c1,
.highlight .cs { color: var(--syn-comment); font-style: italic; }

.highlight .k,
.highlight .kc,
.highlight .kd,
.highlight .kn,
.highlight .kp,
.highlight .kr,
.highlight .kv { color: var(--syn-keyword); }

.highlight .kt { color: var(--syn-class); }

.highlight .s,
.highlight .sa,
.highlight .sb,
.highlight .sc,
.highlight .dl,
.highlight .sd,
.highlight .s2,
.highlight .se,
.highlight .sh,
.highlight .si,
.highlight .sx,
.highlight .s1,
.highlight .ss { color: var(--syn-string); }

.highlight .sr { color: var(--syn-variable); }

.highlight .m,
.highlight .mb,
.highlight .mf,
.highlight .mh,
.highlight .mi,
.highlight .il,
.highlight .mo,
.highlight .mx { color: var(--syn-number); }

.highlight .nf,
.highlight .fm { color: var(--syn-function); }

.highlight .nc,
.highlight .nn { color: var(--syn-class); }

.highlight .no,
.highlight .nb,
.highlight .bp { color: var(--syn-constant); }

.highlight .nv,
.highlight .vc,
.highlight .vg,
.highlight .vi,
.highlight .nd { color: var(--syn-variable); }

.highlight .na,
.highlight .nt { color: var(--syn-function); }

.highlight .nl,
.highlight .py { color: var(--text-secondary); }

.highlight .o,
.highlight .ow { color: var(--syn-operator); }

.highlight .p { color: var(--syn-punctuation); }

.highlight .err { color: var(--syn-error); }

.highlight .gd { color: var(--danger); }
.highlight .gi { color: var(--success); }
.highlight .ge { font-style: italic; }
.highlight .gs { font-weight: 600; }
.highlight .gh,
.highlight .gu { color: var(--text-muted); font-weight: 600; }
