body.one-light {
  --bg: #fafafa;
  --text: #2c2c2c;
  --text-light: #555;
  --text-dim: #888;
  --section-bg: #ffffff;
  --chip-bg: #f3f4f7;
  --border: rgba(0, 0, 0, 0.08);
  --header-bg: #e8eaed;
  --header-text: #222;
  --btn-bg: #e0e3e7;
  --btn-bg-hover: #d5d9de;
  --btn-text: #333;
  --box-shadow: rgba(0, 0, 0, 0.06);
  --file-hover: #efefef;
  --file-label-bg: #f5f5f5;
  --file-label-border: #ccc;
  --separator-color: #888;
  --error-border-color: #e57373;
  --error-color: #c53030;
  --error-bg-color: rgba(229, 83, 83, 0.1);
  --accent: #0066ff;
  --move-active-bg: rgba(59, 130, 246, 0.15);
  --move-active-outline: rgba(59, 130, 246, 0.5);
  --action-btn-hover: rgba(0, 0, 0, 0.06);
  --badge-error-bg: #ffd9d9;
  --badge-error-color: #a00000;
  --badge-warning-bg: #fff2c6;
  --badge-warning-color: #876600;
  --badge-ok-bg: #d8ffd8;
  --badge-ok-color: #006611;
  --toast-bg: #333;
  --toast-color: #fff;
  --breadcrumb-sep: #999;
  --tree-row-focused-outline: rgba(66, 133, 244, 0.4);
  --tree-row-match-bg: rgba(251, 188, 5, 0.12);
  --tree-row-search-focus-bg: rgba(251, 188, 5, 0.25);
  --tree-row-search-focus-outline: rgba(251, 188, 5, 0.6);

  --primitive-color: #1a73e8;
  --primitive-bg-color: rgba(66, 133, 244, 0.12);
  --complex-color: #9333ea;
  --complex-bg-color: rgba(147, 51, 234, 0.12);
  --union-color: #b45309; /* darker amber (better contrast) */
  --union-bg-color: rgba(245, 158, 11, 0.18);
}

body.one-dark-pro {
  --bg: #282c34;
  --text: #abb2bf;
  --text-light: #9aa3af;
  --text-dim: #6f7684;
  --section-bg: #21252b;
  --chip-bg: #2c313a;
  --border: rgba(255, 255, 255, 0.08);
  --box-shadow: rgba(0, 0, 0, 0.4);
  --header-bg: #21252b;
  --header-text: #e5e7eb;
  --btn-bg: #3a3f4b;
  --btn-bg-hover: #4b5263;
  --btn-text: #e0e0e0;
  --file-hover: #2c313a;
  --file-label-bg: #2c313a;
  --file-label-border: #404854;
  --separator-color: #6f7684;
  --error-border-color: #e06c75;
  --error-color: #ff7875;
  --error-bg-color: rgba(224, 108, 117, 0.15);
  --accent: #4da6ff;
  --move-active-bg: rgba(97, 175, 239, 0.2);
  --move-active-outline: rgba(97, 175, 239, 0.5);
  --action-btn-hover: rgba(255, 255, 255, 0.08);
  --badge-error-bg: #5a2a2a;
  --badge-error-color: #ff6b6b;
  --badge-warning-bg: #5a4a2a;
  --badge-warning-color: #ffc87f;
  --badge-ok-bg: #2a5a2a;
  --badge-ok-color: #51cf66;
  --toast-bg: #1e1e1e;
  --toast-color: #e0e0e0;
  --breadcrumb-sep: #666;
  --tree-row-focused-outline: rgba(97, 175, 239, 0.4);
  --tree-row-match-bg: rgba(229, 192, 123, 0.15);
  --tree-row-search-focus-bg: rgba(229, 192, 123, 0.3);
  --tree-row-search-focus-outline: rgba(229, 192, 123, 0.6);

  --primitive-color: #61afef;
  --primitive-bg-color: rgba(97, 175, 239, 0.15);
  --complex-color: #c678dd;
  --complex-bg-color: rgba(198, 120, 221, 0.15);
  --union-color: #d19a66;
  --union-bg-color: rgba(209, 154, 102, 0.16);
}

body.tokyo-night {
  --bg: #1a1b26;
  --text: #c0caf5;
  --text-light: #a9b1d6;
  --text-dim: #727ab0;
  --section-bg: #16161e;
  --chip-bg: #24283b;
  --border: rgba(255, 255, 255, 0.06);
  --box-shadow: rgba(0, 0, 0, 0.5);
  --header-bg: #16161e;
  --header-text: #c0caf5;
  --btn-bg: #24283b;
  --btn-bg-hover: #2f3549;
  --btn-text: #c0caf5;
  --file-hover: #24283b;
  --file-label-bg: #24283b;
  --file-label-border: #2f3549;
  --separator-color: #727ab0;
  --error-border-color: #f7768e;
  --error-color: #f7768e;
  --error-bg-color: rgba(247, 118, 142, 0.15);
  --accent: #7aa2f7;
  --move-active-bg: rgba(122, 162, 247, 0.2);
  --move-active-outline: rgba(122, 162, 247, 0.5);
  --action-btn-hover: rgba(255, 255, 255, 0.08);
  --badge-error-bg: #5a2a2a;
  --badge-error-color: #ff6b6b;
  --badge-warning-bg: #5a4a2a;
  --badge-warning-color: #ffc87f;
  --badge-ok-bg: #2a5a2a;
  --badge-ok-color: #51cf66;
  --toast-bg: #16161e;
  --toast-color: #c0caf5;
  --breadcrumb-sep: #5a5f73;
  --tree-row-focused-outline: rgba(122, 162, 247, 0.5);
  --tree-row-match-bg: rgba(224, 175, 104, 0.15);
  --tree-row-search-focus-bg: rgba(224, 175, 104, 0.3);
  --tree-row-search-focus-outline: rgba(224, 175, 104, 0.6);

  --primitive-color: #7aa2f7;
  --primitive-bg-color: rgba(122, 162, 247, 0.15);
  --complex-color: #bb9af7;
  --complex-bg-color: rgba(187, 154, 247, 0.15);
  --union-color: #d19a66;
  --union-bg-color: rgba(209, 154, 102, 0.16);
}

body.catppuccin-mocha {
  --bg: #1e1e2e;
  --text: #cdd6f4;
  --text-light: #bac2de;
  --text-dim: #908caa;
  --section-bg: #181825;
  --chip-bg: #313244;
  --border: rgba(255, 255, 255, 0.06);
  --box-shadow: rgba(0, 0, 0, 0.45);
  --header-bg: #181825;
  --header-text: #f5e0dc;
  --btn-bg: #313244;
  --btn-bg-hover: #45475a;
  --btn-text: #cdd6f4;
  --file-hover: #313244;
  --file-label-bg: #313244;
  --file-label-border: #45475a;
  --separator-color: #908caa;
  --error-border-color: #f38ba8;
  --error-color: #f38ba8;
  --error-bg-color: rgba(243, 139, 168, 0.15);
  --accent: #89b4fa;
  --move-active-bg: rgba(137, 180, 250, 0.2);
  --move-active-outline: rgba(137, 180, 250, 0.5);
  --action-btn-hover: rgba(255, 255, 255, 0.08);
  --badge-error-bg: #5a2a2a;
  --badge-error-color: #ff6b6b;
  --badge-warning-bg: #5a4a2a;
  --badge-warning-color: #ffc87f;
  --badge-ok-bg: #2a5a2a;
  --badge-ok-color: #51cf66;
  --toast-bg: #181825;
  --toast-color: #cdd6f4;
  --breadcrumb-sep: #6c697d;
  --tree-row-focused-outline: rgba(137, 180, 250, 0.5);
  --tree-row-match-bg: rgba(249, 226, 175, 0.15);
  --tree-row-search-focus-bg: rgba(249, 226, 175, 0.3);
  --tree-row-search-focus-outline: rgba(249, 226, 175, 0.6);

  --primitive-color: #89b4fa;
  --primitive-bg-color: rgba(137, 180, 250, 0.15);
  --complex-color: #cba6f7;
  --complex-bg-color: rgba(203, 166, 247, 0.15);
  --union-color: #f5a97f; /* desaturated peach */
  --union-bg-color: rgba(245, 169, 127, 0.16);
}

body.dracula {
  --bg: #282a36;
  --text: #f8f8f2;
  --text-light: #bdc1c6;
  --text-dim: #8b8b8b;
  --section-bg: #21222c;
  --chip-bg: #343746;
  --border: rgba(255, 255, 255, 0.08);
  --box-shadow: rgba(0, 0, 0, 0.5);
  --header-bg: #21222c;
  --header-text: #f8f8f2;
  --btn-bg: #44475a;
  --btn-bg-hover: #555a70;
  --btn-text: #f8f8f2;
  --file-hover: #343746;
  --file-label-bg: #343746;
  --file-label-border: #44475a;
  --separator-color: #8b8b8b;
  --error-border-color: #ff5555;
  --error-color: #ff5555;
  --error-bg-color: rgba(255, 85, 85, 0.15);
  --accent: #8be9fd;
  --move-active-bg: rgba(139, 233, 253, 0.2);
  --move-active-outline: rgba(139, 233, 253, 0.5);
  --action-btn-hover: rgba(255, 255, 255, 0.1);
  --badge-error-bg: #5a2a2a;
  --badge-error-color: #ff6b6b;
  --badge-warning-bg: #5a4a2a;
  --badge-warning-color: #ffc87f;
  --badge-ok-bg: #2a5a2a;
  --badge-ok-color: #51cf66;
  --toast-bg: #21222c;
  --toast-color: #f8f8f2;
  --breadcrumb-sep: #5f6368;
  --tree-row-focused-outline: rgba(139, 233, 253, 0.5);
  --tree-row-match-bg: rgba(241, 250, 140, 0.2);
  --tree-row-search-focus-bg: rgba(241, 250, 140, 0.35);
  --tree-row-search-focus-outline: rgba(241, 250, 140, 0.7);

  --primitive-color: #8be9fd;
  --primitive-bg-color: rgba(139, 233, 253, 0.15);
  --complex-color: #bd93f9;
  --complex-bg-color: rgba(189, 147, 249, 0.15);
  --union-color: #ffb86c;
  --union-bg-color: rgba(255, 184, 108, 0.16);
}

body.gruvbox {
  --bg: #282828;
  --text: #ebdbb2;
  --text-light: #d5c4a1;
  --text-dim: #a89984;
  --section-bg: #1d2021;
  --chip-bg: #3c3836;
  --border: rgba(235, 219, 178, 0.1);
  --box-shadow: rgba(0, 0, 0, 0.6);
  --header-bg: #1d2021;
  --header-text: #fabd2f;
  --btn-bg: #3c3836;
  --btn-bg-hover: #504945;
  --btn-text: #ebdbb2;
  --file-hover: #3c3836;
  --file-label-bg: #3c3836;
  --file-label-border: #504945;
  --separator-color: #a89984;
  --error-border-color: #fb4934;
  --error-color: #fb4934;
  --error-bg-color: rgba(251, 73, 52, 0.15);
  --accent: #83a598;
  --move-active-bg: rgba(131, 165, 152, 0.2);
  --move-active-outline: rgba(131, 165, 152, 0.5);
  --action-btn-hover: rgba(255, 255, 255, 0.08);
  --badge-error-bg: #5a2a2a;
  --badge-error-color: #ff6b6b;
  --badge-warning-bg: #5a4a2a;
  --badge-warning-color: #ffc87f;
  --badge-ok-bg: #2a5a2a;
  --badge-ok-color: #51cf66;
  --toast-bg: #1d2021;
  --toast-color: #ebdbb2;
  --breadcrumb-sep: #7a6f68;
  --tree-row-focused-outline: rgba(131, 165, 152, 0.5);
  --tree-row-match-bg: rgba(250, 189, 47, 0.15);
  --tree-row-search-focus-bg: rgba(250, 189, 47, 0.3);
  --tree-row-search-focus-outline: rgba(250, 189, 47, 0.6);

  --primitive-color: #83a598;
  --primitive-bg-color: rgba(131, 165, 152, 0.15);
  --complex-color: #d3869b;
  --complex-bg-color: rgba(211, 134, 155, 0.15);
  --union-color: #d79921;
  --union-bg-color: rgba(215, 153, 33, 0.18);
}

body.vscode-light {
  --bg: #ffffff;
  --text: #383838;
  --text-light: #6f6f6f;
  --text-dim: #999999;
  --section-bg: #f5f5f5;
  --chip-bg: #eeeeee;
  --border: rgba(0, 0, 0, 0.08);
  --box-shadow: rgba(0, 0, 0, 0.04);
  --header-bg: #f0f0f0;
  --header-text: #2d2d30;
  --btn-bg: #e8e8e8;
  --btn-bg-hover: #dcdcdc;
  --btn-text: #2d2d30;
  --file-hover: #f3f3f3;
  --file-label-bg: #f5f5f5;
  --file-label-border: #cccccc;
  --separator-color: #999999;
  --error-border-color: #e81828;
  --error-color: #e81828;
  --error-bg-color: rgba(232, 24, 40, 0.1);
  --accent: #0000ff;
  --move-active-bg: rgba(0, 0, 255, 0.1);
  --move-active-outline: rgba(0, 0, 255, 0.3);
  --action-btn-hover: rgba(0, 0, 0, 0.05);
  --badge-error-bg: #ffd9d9;
  --badge-error-color: #a00000;
  --badge-warning-bg: #fff2c6;
  --badge-warning-color: #876600;
  --badge-ok-bg: #d8ffd8;
  --badge-ok-color: #006611;
  --toast-bg: #333;
  --toast-color: #fff;
  --breadcrumb-sep: #999;
  --tree-row-focused-outline: rgba(0, 0, 255, 0.3);
  --tree-row-match-bg: rgba(175, 128, 0, 0.1);
  --tree-row-search-focus-bg: rgba(175, 128, 0, 0.2);
  --tree-row-search-focus-outline: rgba(175, 128, 0, 0.5);

  --primitive-color: #0000ff;
  --primitive-bg-color: rgba(0, 0, 255, 0.1);
  --complex-color: #795e26;
  --complex-bg-color: rgba(121, 94, 38, 0.1);
  --union-color: #af8000;
  --union-bg-color: rgba(175, 128, 0, 0.12);
}

/* Rose Pine - Popular pink theme */
body.rose-pine {
  --bg: #191724;
  --text: #e0def4;
  --text-light: #d5c4e0;
  --text-dim: #9893a5;
  --section-bg: #1f1d2e;
  --chip-bg: #26233e;
  --border: rgba(224, 222, 244, 0.1);
  --box-shadow: rgba(0, 0, 0, 0.5);
  --header-bg: #1f1d2e;
  --header-text: #e0def4;
  --btn-bg: #26233e;
  --btn-bg-hover: #403d52;
  --btn-text: #e0def4;
  --file-hover: #26233e;
  --file-label-bg: #26233e;
  --file-label-border: #403d52;
  --separator-color: #9893a5;
  --error-border-color: #eb6f92;
  --error-color: #eb6f92;
  --error-bg-color: rgba(235, 111, 146, 0.15);
  --accent: #d5bfff;
  --move-active-bg: rgba(214, 112, 214, 0.2);
  --move-active-outline: rgba(214, 112, 214, 0.5);
  --action-btn-hover: rgba(224, 222, 244, 0.08);
  --badge-error-bg: #5a2a3a;
  --badge-error-color: #ff8fa3;
  --badge-warning-bg: #5a4a2a;
  --badge-warning-color: #f6c177;
  --badge-ok-bg: #2a5a3a;
  --badge-ok-color: #9ccfd8;
  --toast-bg: #1f1d2e;
  --toast-color: #e0def4;
  --breadcrumb-sep: #6e6a86;
  --tree-row-focused-outline: rgba(214, 112, 214, 0.4);
  --tree-row-match-bg: rgba(246, 193, 119, 0.15);
  --tree-row-search-focus-bg: rgba(246, 193, 119, 0.3);
  --tree-row-search-focus-outline: rgba(246, 193, 119, 0.6);

  --primitive-color: #d5bfff;
  --primitive-bg-color: rgba(213, 191, 255, 0.15);
  --complex-color: #d67ad6;
  --complex-bg-color: rgba(214, 122, 214, 0.15);
  --union-color: #ebbcba;
  --union-bg-color: rgba(235, 188, 186, 0.16);
}
