/**
 * Rosé Pine Inspired Syntax Highlighting
 * Adapted for Loper documentation
 */

/* Base code block styling */
.md-typeset .highlight {
  background-color: var(--md-code-bg-color);
}

/* Light mode - Rosé Pine Dawn inspired */
[data-md-color-scheme="default"] {
  /* Rosé Pine Dawn palette adapted to Loper colors */
  --rose-pine-base: #faf4ed;
  --rose-pine-surface: #fffaf3;
  --rose-pine-overlay: #f2e9e1;
  --rose-pine-muted: #9893a5;
  --rose-pine-subtle: #797593;
  --rose-pine-text: var(--loper-neutral-900);
  --rose-pine-love: #b4637a;
  --rose-pine-gold: #ea9d34;
  --rose-pine-rose: var(--loper-brand-bold-purple);
  --rose-pine-pine: #286983;
  --rose-pine-foam: #56949f;
  --rose-pine-iris: var(--loper-purple-600);
  --rose-pine-highlight-low: #f4ede8;
  --rose-pine-highlight-med: #dfdad9;
  --rose-pine-highlight-high: #cecacd;
}

/* Dark mode - Rosé Pine Moon inspired */
[data-md-color-scheme="slate"] {
  --rose-pine-base: #232136;
  --rose-pine-surface: #2a273f;
  --rose-pine-overlay: #393552;
  --rose-pine-muted: #6e6a86;
  --rose-pine-subtle: #908caa;
  --rose-pine-text: #e0def4;
  --rose-pine-love: #eb6f92;
  --rose-pine-gold: #f6c177;
  --rose-pine-rose: var(--loper-purple-300);
  --rose-pine-pine: #3e8fb0;
  --rose-pine-foam: #9ccfd8;
  --rose-pine-iris: var(--loper-purple-400);
  --rose-pine-highlight-low: #2a283e;
  --rose-pine-highlight-med: #44415a;
  --rose-pine-highlight-high: #56526e;
}

/* Syntax highlighting colors */
.highlight {
  /* Comments */
  .c, .c1, .cm, .cp, .cs {
    color: var(--rose-pine-muted);
    font-style: italic;
  }

  /* Keywords */
  .k, .kc, .kd, .kn, .kp, .kr, .kt {
    color: var(--rose-pine-rose);
    font-weight: 500;
  }

  /* Strings */
  .s, .s1, .s2, .sb, .sc, .sd, .se, .sh, .si, .sx {
    color: var(--rose-pine-gold);
  }

  /* Numbers */
  .m, .mf, .mh, .mi, .mo {
    color: var(--rose-pine-foam);
  }

  /* Functions */
  .n, .na, .nb, .nc, .nf, .nn, .nt {
    color: var(--rose-pine-iris);
  }

  /* Variables */
  .nv, .vc, .vg, .vi {
    color: var(--rose-pine-text);
  }

  /* Operators */
  .o, .ow {
    color: var(--rose-pine-subtle);
  }

  /* Built-ins */
  .bp {
    color: var(--rose-pine-love);
  }

  /* Decorators (Python) */
  .nd {
    color: var(--rose-pine-iris);
    font-weight: 500;
  }

  /* Class names */
  .nc {
    color: var(--rose-pine-foam);
    font-weight: 500;
  }

  /* Special identifiers */
  .kc, .no {
    color: var(--rose-pine-love);
  }

  /* Regex */
  .sr {
    color: var(--rose-pine-pine);
  }

  /* Diff additions */
  .gi {
    color: var(--loper-success-500);
    background-color: var(--loper-success-50);
  }

  /* Diff deletions */
  .gd {
    color: var(--loper-error-500);
    background-color: var(--loper-error-50);
  }

  /* Generic headings */
  .gh {
    color: var(--rose-pine-rose);
    font-weight: 600;
  }

  /* Generic subheadings */
  .gu {
    color: var(--rose-pine-iris);
    font-weight: 600;
  }
}

/* Line numbers with Rosé Pine colors */
.md-typeset .highlight .linenos {
  color: var(--rose-pine-muted);
  background-color: var(--rose-pine-overlay);
  user-select: none;
}

/* Highlighted line */
.md-typeset .highlight .hll {
  background-color: var(--rose-pine-highlight-med);
}

/* Inline code */
.md-typeset code {
  background-color: var(--rose-pine-highlight-low);
  color: var(--rose-pine-rose);
}

/* Code block background */
.md-typeset pre {
  background-color: var(--rose-pine-surface);
}

.md-typeset pre code {
  background-color: transparent;
  color: var(--rose-pine-text);
}
