/* Built-in palettes other than Everforest. Every block is scoped to the
   data-theme value theme.js writes, so a page loads all of them and only the
   selected one applies. The tokens are the same names everforest.css defines;
   a palette that leaves one unset would inherit the fallback from vole.css.

   Catppuccin (MIT), Nord (MIT), and Solarized (MIT) are vendored as colour
   values. See NOTICE and the matching license files beside this sheet. */

/* ---------- Catppuccin Mocha ---------- */

:root[data-theme="catppuccin-mocha"] {
  color-scheme: dark;

  --bg: #1e1e2e;
  --bg-panel: #181825;
  --bg-raised: #313244;
  --bg-hover: #45475a;
  --bg-active: #585b70;
  --border: #313244;
  --border-strong: #585b70;

  --fg: #cdd6f4;
  --fg-muted: #a6adc8;
  --fg-faint: #7f849c;

  --accent: #89b4fa;
  --accent-fg: #11111b;
  --accent-soft: color-mix(in srgb, var(--accent) 16%, transparent);
  --running: #74c7ec;
  --good: #a6e3a1;
  --good-soft: rgba(166, 227, 161, 0.14);
  --bad: #f38ba8;
  --bad-soft: rgba(243, 139, 168, 0.14);
  --warn: #f9e2af;
  --warn-soft: rgba(249, 226, 175, 0.14);
  --merged: #cba6f7;
  --merged-soft: rgba(203, 166, 247, 0.14);

  --syn-comment: #7f849c;
  --syn-punctuation: #9399b2;
  --syn-operator: #fab387;
  --syn-number: #cba6f7;
  --syn-string: #a6e3a1;
  --syn-keyword: #f38ba8;
  --syn-function: #89b4fa;
  --syn-type: #f9e2af;
  --syn-variable: #cdd6f4;
  --syn-added: #a6e3a1;
  --syn-deleted: #f38ba8;
}

/* ---------- Catppuccin Latte ---------- */

:root[data-theme="catppuccin-latte"] {
  color-scheme: light;

  --bg: #eff1f5;
  --bg-panel: #e6e9ef;
  --bg-raised: #ccd0da;
  --bg-hover: #bcc0cc;
  --bg-active: #acb0be;
  --border: #ccd0da;
  --border-strong: #acb0be;

  --fg: #4c4f69;
  --fg-muted: #6c6f85;
  --fg-faint: #8c8fa1;

  --accent: #1e66f5;
  --accent-fg: #eff1f5;
  --accent-soft: rgba(30, 102, 245, 0.12);
  --running: #04a5e5;
  --good: #40a02b;
  --good-soft: rgba(64, 160, 43, 0.12);
  --bad: #d20f39;
  --bad-soft: rgba(210, 15, 57, 0.10);
  --warn: #df8e1d;
  --warn-soft: rgba(223, 142, 29, 0.12);
  --merged: #8839ef;
  --merged-soft: rgba(136, 57, 239, 0.12);

  --syn-comment: #8c8fa1;
  --syn-punctuation: #7c7f93;
  --syn-operator: #fe640b;
  --syn-number: #8839ef;
  --syn-string: #40a02b;
  --syn-keyword: #d20f39;
  --syn-function: #1e66f5;
  --syn-type: #df8e1d;
  --syn-variable: #4c4f69;
  --syn-added: #40a02b;
  --syn-deleted: #d20f39;
}

/* ---------- Nord ---------- */

:root[data-theme="nord"] {
  color-scheme: dark;

  --bg: #2e3440;
  --bg-panel: #3b4252;
  --bg-raised: #434c5e;
  --bg-hover: #4c566a;
  --bg-active: #4c566a;
  --border: #434c5e;
  --border-strong: #4c566a;

  --fg: #d8dee9;
  --fg-muted: #a3adc2;
  --fg-faint: #7b88a1;

  --accent: #88c0d0;
  --accent-fg: #2e3440;
  --accent-soft: color-mix(in srgb, var(--accent) 16%, transparent);
  --running: #5e81ac;
  --good: #a3be8c;
  --good-soft: rgba(163, 190, 140, 0.14);
  --bad: #bf616a;
  --bad-soft: rgba(191, 97, 106, 0.14);
  --warn: #ebcb8b;
  --warn-soft: rgba(235, 203, 139, 0.14);
  --merged: #b48ead;
  --merged-soft: rgba(180, 142, 173, 0.14);

  --syn-comment: #7b88a1;
  --syn-punctuation: #a3adc2;
  --syn-operator: #d08770;
  --syn-number: #b48ead;
  --syn-string: #a3be8c;
  --syn-keyword: #bf616a;
  --syn-function: #88c0d0;
  --syn-type: #ebcb8b;
  --syn-variable: #d8dee9;
  --syn-added: #a3be8c;
  --syn-deleted: #bf616a;
}

/* ---------- Solarized Light ---------- */

:root[data-theme="solarized-light"] {
  color-scheme: light;

  --bg: #fdf6e3;
  --bg-panel: #eee8d5;
  --bg-raised: #e6dfc8;
  --bg-hover: #ddd6c1;
  --bg-active: #d5ceb8;
  --border: #ddd6c1;
  --border-strong: #c9c2ad;

  --fg: #586e75;
  --fg-muted: #657b83;
  --fg-faint: #93a1a1;

  --accent: #268bd2;
  --accent-fg: #fdf6e3;
  --accent-soft: rgba(38, 139, 210, 0.12);
  --running: #2aa198;
  --good: #859900;
  --good-soft: rgba(133, 153, 0, 0.12);
  --bad: #dc322f;
  --bad-soft: rgba(220, 50, 47, 0.10);
  --warn: #b58900;
  --warn-soft: rgba(181, 137, 0, 0.12);
  --merged: #6c71c4;
  --merged-soft: rgba(108, 113, 196, 0.12);

  --syn-comment: #93a1a1;
  --syn-punctuation: #657b83;
  --syn-operator: #cb4b16;
  --syn-number: #d33682;
  --syn-string: #2aa198;
  --syn-keyword: #859900;
  --syn-function: #268bd2;
  --syn-type: #b58900;
  --syn-variable: #586e75;
  --syn-added: #859900;
  --syn-deleted: #dc322f;
}

/* ---------- Rosé Pine Moon ---------- */

:root[data-theme="rose-pine-moon"] {
  color-scheme: dark;

  --bg: #232136;
  --bg-panel: #2a273f;
  --bg-raised: #393552;
  --bg-hover: #44415a;
  --bg-active: #524f67;
  --border: #393552;
  --border-strong: #524f67;

  --fg: #e0def4;
  --fg-muted: #908caa;
  --fg-faint: #6e6a86;

  --accent: #c4a7e7;
  --accent-fg: #232136;
  --accent-soft: rgba(196, 167, 231, 0.16);
  --running: #3e8fb0;
  --good: #9ccfd8;
  --good-soft: rgba(156, 207, 216, 0.14);
  --bad: #eb6f92;
  --bad-soft: rgba(235, 111, 146, 0.14);
  --warn: #f6c177;
  --warn-soft: rgba(246, 193, 119, 0.14);
  --merged: #ea9a97;
  --merged-soft: rgba(234, 154, 151, 0.14);

  --syn-comment: #6e6a86;
  --syn-punctuation: #908caa;
  --syn-operator: #ea9a97;
  --syn-number: #f6c177;
  --syn-string: #9ccfd8;
  --syn-keyword: #eb6f92;
  --syn-function: #3e8fb0;
  --syn-type: #c4a7e7;
  --syn-variable: #e0def4;
  --syn-added: #9ccfd8;
  --syn-deleted: #eb6f92;
}

/* ---------- Rosé Pine Dawn ---------- */

:root[data-theme="rose-pine-dawn"] {
  color-scheme: light;

  --bg: #faf4ed;
  --bg-panel: #fffaf3;
  --bg-raised: #f2e9e1;
  --bg-hover: #dfdad9;
  --bg-active: #cecacd;
  --border: #f2e9e1;
  --border-strong: #dfdad9;

  --fg: #464261;
  --fg-muted: #797593;
  --fg-faint: #9893a5;

  --accent: #907aa9;
  --accent-fg: #faf4ed;
  --accent-soft: rgba(144, 122, 169, 0.12);
  --running: #56949f;
  --good: #286983;
  --good-soft: rgba(40, 105, 131, 0.12);
  --bad: #b4637a;
  --bad-soft: rgba(180, 99, 122, 0.10);
  --warn: #ea9d34;
  --warn-soft: rgba(234, 157, 52, 0.12);
  --merged: #d7827e;
  --merged-soft: rgba(215, 130, 126, 0.12);

  --syn-comment: #9893a5;
  --syn-punctuation: #797593;
  --syn-operator: #d7827e;
  --syn-number: #907aa9;
  --syn-string: #56949f;
  --syn-keyword: #b4637a;
  --syn-function: #286983;
  --syn-type: #ea9d34;
  --syn-variable: #464261;
  --syn-added: #286983;
  --syn-deleted: #b4637a;
}

/* ---------- Kanagawa Wave ---------- */

:root[data-theme="kanagawa-wave"] {
  color-scheme: dark;

  --bg: #1f1f28;
  --bg-panel: #181820;
  --bg-raised: #2a2a37;
  --bg-hover: #363646;
  --bg-active: #54546d;
  --border: #2a2a37;
  --border-strong: #54546d;

  --fg: #dcd7ba;
  --fg-muted: #c8c093;
  --fg-faint: #727169;

  --accent: #7e9cd8;
  --accent-fg: #1f1f28;
  --accent-soft: rgba(126, 156, 216, 0.16);
  --running: #7fb4ca;
  --good: #98bb6c;
  --good-soft: rgba(152, 187, 108, 0.14);
  --bad: #c34043;
  --bad-soft: rgba(195, 64, 67, 0.14);
  --warn: #dca561;
  --warn-soft: rgba(220, 165, 97, 0.14);
  --merged: #957fb8;
  --merged-soft: rgba(149, 127, 184, 0.14);

  --syn-comment: #727169;
  --syn-punctuation: #c8c093;
  --syn-operator: #ffa066;
  --syn-number: #d27e99;
  --syn-string: #98bb6c;
  --syn-keyword: #e46876;
  --syn-function: #7e9cd8;
  --syn-type: #e6c384;
  --syn-variable: #dcd7ba;
  --syn-added: #98bb6c;
  --syn-deleted: #c34043;
}

/* ---------- Dracula ---------- */

:root[data-theme="dracula"] {
  color-scheme: dark;

  --bg: #282a36;
  --bg-panel: #21222c;
  --bg-raised: #44475a;
  --bg-hover: #52556b;
  --bg-active: #5f6379;
  --border: #44475a;
  --border-strong: #6272a4;

  --fg: #f8f8f2;
  --fg-muted: #c5c8d6;
  --fg-faint: #8f93b0;

  --accent: #bd93f9;
  --accent-fg: #282a36;
  --accent-soft: rgba(189, 147, 249, 0.16);
  --running: #8be9fd;
  --good: #50fa7b;
  --good-soft: rgba(80, 250, 123, 0.14);
  --bad: #ff5555;
  --bad-soft: rgba(255, 85, 85, 0.14);
  --warn: #f1fa8c;
  --warn-soft: rgba(241, 250, 140, 0.14);
  --merged: #ff79c6;
  --merged-soft: rgba(255, 121, 198, 0.14);

  --syn-comment: #6272a4;
  --syn-punctuation: #b0b3c5;
  --syn-operator: #ff79c6;
  --syn-number: #bd93f9;
  --syn-string: #f1fa8c;
  --syn-keyword: #ff79c6;
  --syn-function: #50fa7b;
  --syn-type: #8be9fd;
  --syn-variable: #f8f8f2;
  --syn-added: #50fa7b;
  --syn-deleted: #ff5555;
}

/* ---------- Tokyo Night ---------- */

:root[data-theme="tokyo-night"] {
  color-scheme: dark;

  --bg: #1a1b26;
  --bg-panel: #16161e;
  --bg-raised: #292e42;
  --bg-hover: #2f334d;
  --bg-active: #363b54;
  --border: #292e42;
  --border-strong: #3b4261;

  --fg: #c0caf5;
  --fg-muted: #a9b1d6;
  --fg-faint: #565f89;

  --accent: #7aa2f7;
  --accent-fg: #1a1b26;
  --accent-soft: rgba(122, 162, 247, 0.16);
  --running: #7dcfff;
  --good: #9ece6a;
  --good-soft: rgba(158, 206, 106, 0.14);
  --bad: #f7768e;
  --bad-soft: rgba(247, 118, 142, 0.14);
  --warn: #e0af68;
  --warn-soft: rgba(224, 175, 104, 0.14);
  --merged: #bb9af7;
  --merged-soft: rgba(187, 154, 247, 0.14);

  --syn-comment: #565f89;
  --syn-punctuation: #a9b1d6;
  --syn-operator: #89ddff;
  --syn-number: #ff9e64;
  --syn-string: #9ece6a;
  --syn-keyword: #bb9af7;
  --syn-function: #7aa2f7;
  --syn-type: #2ac3de;
  --syn-variable: #c0caf5;
  --syn-added: #9ece6a;
  --syn-deleted: #f7768e;
}

/* ---------- Ayu Light ---------- */

:root[data-theme="ayu-light"] {
  color-scheme: light;

  --bg: #fcfcfc;
  --bg-panel: #f8f9fa;
  --bg-raised: #ebeef0;
  --bg-hover: #e1e5e8;
  --bg-active: #d6dbdf;
  --border: #e1e5e8;
  --border-strong: #c9cfd4;

  --fg: #5c6773;
  --fg-muted: #6b7d8f;
  --fg-faint: #9aa5af;

  --accent: #d97706;
  --accent-fg: #fcfcfc;
  --accent-soft: rgba(217, 119, 6, 0.12);
  --running: #22a4e6;
  --good: #5c8a00;
  --good-soft: rgba(92, 138, 0, 0.12);
  --bad: #e65050;
  --bad-soft: rgba(230, 80, 80, 0.10);
  --warn: #b8860b;
  --warn-soft: rgba(184, 134, 11, 0.12);
  --merged: #a37acc;
  --merged-soft: rgba(163, 122, 204, 0.12);

  --syn-comment: #9aa5af;
  --syn-punctuation: #6b7d8f;
  --syn-operator: #ed9366;
  --syn-number: #a37acc;
  --syn-string: #5c8a00;
  --syn-keyword: #d97706;
  --syn-function: #22a4e6;
  --syn-type: #22a4e6;
  --syn-variable: #5c6773;
  --syn-added: #5c8a00;
  --syn-deleted: #e65050;
}
