/* ═══════════════════════════════════════════════════════════════════
   Vexora Theme System  — CSS custom-property tokens
   Applied via  document.documentElement.setAttribute('data-theme', name)
   Rainbow theme intentionally excluded.
═══════════════════════════════════════════════════════════════════ */

:root {
  --primary-50: #eef2ff;
  --primary-500: #1e15c3;
  --primary-600: #130791;
  --gray-50: #f9fafb;
  --gray-100: #f3f4f6;
  --gray-200: #e5e7eb;
  --gray-300: #d1d5db;
  --gray-400: #9ca3af;
  --gray-500: #6b7280;
  --gray-600: #4b5563;
  --gray-700: #374151;
  --gray-800: #1f2937;
  --gray-900: #111827;
  --body-bg: linear-gradient(135deg, #ffffff 0%, #1207911a 50%, #ffffff 100%);
  --card-bg: rgba(255, 255, 255, 0.72);
  --popup-bg: #ffffff;
  --hover-bg: rgba(243, 244, 246, 0.8);
  --border-color: var(--gray-200);
  --text-primary: var(--gray-900);
  --text-secondary: var(--gray-600);
  --text-muted: var(--gray-500);
  --success: #10b981;
  --warning: #f59e0b;
  --error: #ef4444;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), var(--primary-50));
}

[data-theme="dark"] {
  --primary-50: #0a0a0a;
  --primary-500: #1e15c3;
  --primary-600: #130791;
  --body-bg: linear-gradient(135deg, #0d0d0d 0%, #0f0f1a 50%, #0d0d0d 100%);
  --card-bg: rgba(20, 20, 20, 0.6);
  --popup-bg: #141414;
  --hover-bg: rgba(28, 28, 28, 0.7);
  --border-color: #262626;
  --gray-100: #0f0f0f;
  --gray-200: #1a1a1a;
  --text-primary: #f3f4f6;
  --text-secondary: #cfd2f0;
  --text-muted: #a0a3b8;
  --success: #34d399;
  --warning: #facc15;
  --error: #f87171;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #1c1c1c);
  /* editor shell */
  --bg: #0d0d0d;
  --panel: #141414;
  --panel-2: #1a1a1a;
  --panel-3: #1f1f1f;
  --border: #262626;
  --border-2: #353535;
  --text: #f3f4f6;
  --text-soft: #cfd2f0;
  --text-dim: #a0a3b8;
  --accent: #1e15c3;
  --accent-2: #3b5ff8;
}

[data-theme="parchment"] {
  --primary-50: #fef9ec;
  --primary-500: #b8860b;
  --primary-600: #8b6309;
  --body-bg: linear-gradient(135deg, #fffef5 0%, #f8eecc 50%, #fffef5 100%);
  --card-bg: rgba(255, 253, 240, 0.76);
  --popup-bg: #fffef5;
  --hover-bg: rgba(248, 238, 204, 0.82);
  --border-color: #e8d8a0;
  --gray-100: #faf4de;
  --gray-200: #f0e6c0;
  --text-primary: #3c2808;
  --text-secondary: #785820;
  --text-muted: #a88040;
  --success: #2e7d52;
  --warning: #b45309;
  --error: #c03020;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), var(--primary-50));
  /* editor shell */
  --bg: #fdf8e8;
  --panel: #fffef5;
  --panel-2: #faf4de;
  --panel-3: #f0e6c0;
  --border: #e8d8a0;
  --border-2: #d8c880;
  --text: #3c2808;
  --text-soft: #785820;
  --text-dim: #a88040;
  --accent: #b8860b;
  --accent-2: #8b6309;
}

[data-theme="blossom"] {
  --primary-50: #fdf2f7;
  --primary-500: #e0478a;
  --primary-600: #be2d72;
  --body-bg: linear-gradient(135deg, #fff8fc 0%, #fce4f2 50%, #fff8fc 100%);
  --card-bg: rgba(255, 248, 252, 0.74);
  --popup-bg: #fff8fc;
  --hover-bg: rgba(252, 228, 242, 0.82);
  --border-color: #f4bcd8;
  --gray-100: #fef0f8;
  --gray-200: #fbd8ee;
  --text-primary: #4a0828;
  --text-secondary: #921850;
  --text-muted: #c05880;
  --success: #0d9488;
  --warning: #d97706;
  --error: #dc2626;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), var(--primary-50));
  /* editor shell */
  --bg: #fff0f8;
  --panel: #fff8fc;
  --panel-2: #fef0f8;
  --panel-3: #fbd8ee;
  --border: #f4bcd8;
  --border-2: #e890c0;
  --text: #4a0828;
  --text-soft: #921850;
  --text-dim: #c05880;
  --accent: #e0478a;
  --accent-2: #be2d72;
}

[data-theme="seaglass"] {
  --primary-50: #ecfdf8;
  --primary-500: #0e9282;
  --primary-600: #0a7068;
  --body-bg: linear-gradient(135deg, #f0fdf9 0%, #c8f5ec 50%, #f0fdf9 100%);
  --card-bg: rgba(240, 253, 249, 0.74);
  --popup-bg: #f0fdf9;
  --hover-bg: rgba(200, 245, 236, 0.80);
  --border-color: #92e0d0;
  --gray-100: #ddf8f2;
  --gray-200: #b8eedf;
  --text-primary: #0a3028;
  --text-secondary: #0e6058;
  --text-muted: #388880;
  --success: #047857;
  --warning: #b45309;
  --error: #c83030;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), var(--primary-50));
  /* editor shell */
  --bg: #e8faf5;
  --panel: #f0fdf9;
  --panel-2: #ddf8f2;
  --panel-3: #b8eedf;
  --border: #92e0d0;
  --border-2: #60c8b8;
  --text: #0a3028;
  --text-soft: #0e6058;
  --text-dim: #388880;
  --accent: #0e9282;
  --accent-2: #0a7068;
}

[data-theme="wisteria"] {
  --primary-50: #f5f0ff;
  --primary-500: #7c4fd8;
  --primary-600: #6030c0;
  --body-bg: linear-gradient(135deg, #faf7ff 0%, #ecdeff 50%, #faf7ff 100%);
  --card-bg: rgba(250, 247, 255, 0.74);
  --popup-bg: #faf7ff;
  --hover-bg: rgba(236, 222, 255, 0.82);
  --border-color: #d0b8f4;
  --gray-100: #f0e8ff;
  --gray-200: #e0d0f8;
  --text-primary: #2e1060;
  --text-secondary: #5c2898;
  --text-muted: #8858c8;
  --success: #047857;
  --warning: #c08010;
  --error: #c03050;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), var(--primary-50));
  /* editor shell */
  --bg: #f2eaff;
  --panel: #faf7ff;
  --panel-2: #f0e8ff;
  --panel-3: #e0d0f8;
  --border: #d0b8f4;
  --border-2: #b890e8;
  --text: #2e1060;
  --text-soft: #5c2898;
  --text-dim: #8858c8;
  --accent: #7c4fd8;
  --accent-2: #6030c0;
}

[data-theme="sunrise"] {
  --primary-50: #fff5ec;
  --primary-500: #e06830;
  --primary-600: #c04818;
  --body-bg: linear-gradient(135deg, #fffaf6 0%, #fde8d0 50%, #fffaf6 100%);
  --card-bg: rgba(255, 250, 246, 0.74);
  --popup-bg: #fffaf6;
  --hover-bg: rgba(253, 232, 208, 0.82);
  --border-color: #f8c898;
  --gray-100: #fef0e0;
  --gray-200: #fad8c0;
  --text-primary: #3c1808;
  --text-secondary: #803028;
  --text-muted: #b86048;
  --success: #2e7d52;
  --warning: #b45309;
  --error: #c03020;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), var(--primary-50));
  /* editor shell */
  --bg: #fff0e0;
  --panel: #fffaf6;
  --panel-2: #fef0e0;
  --panel-3: #fad8c0;
  --border: #f8c898;
  --border-2: #e8a870;
  --text: #3c1808;
  --text-soft: #803028;
  --text-dim: #b86048;
  --accent: #e06830;
  --accent-2: #c04818;
}

[data-theme="glacier"] {
  --primary-50: #f0f6ff;
  --primary-500: #3b7dd8;
  --primary-600: #2460b8;
  --body-bg: linear-gradient(135deg, #f8fbff 0%, #daeeff 50%, #f8fbff 100%);
  --card-bg: rgba(248, 251, 255, 0.74);
  --popup-bg: #f8fbff;
  --hover-bg: rgba(218, 238, 255, 0.82);
  --border-color: #a8d0f0;
  --gray-100: #e8f4ff;
  --gray-200: #c8e4f8;
  --text-primary: #0c2040;
  --text-secondary: #284878;
  --text-muted: #507098;
  --success: #047857;
  --warning: #b45309;
  --error: #c03020;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), var(--primary-50));
  /* editor shell */
  --bg: #e8f4ff;
  --panel: #f8fbff;
  --panel-2: #e8f4ff;
  --panel-3: #c8e4f8;
  --border: #a8d0f0;
  --border-2: #80b8e0;
  --text: #0c2040;
  --text-soft: #284878;
  --text-dim: #507098;
  --accent: #3b7dd8;
  --accent-2: #2460b8;
}

[data-theme="forest"] {
  --primary-50: #1a3020;
  --primary-500: #4ec880;
  --primary-600: #30a860;
  --body-bg: linear-gradient(135deg, #101c12 0%, #1e3220 50%, #101c12 100%);
  --card-bg: rgba(18, 30, 20, 0.72);
  --popup-bg: #182816;
  --hover-bg: rgba(30, 50, 34, 0.80);
  --border-color: rgba(78, 200, 128, 0.18);
  --gray-100: #18280e;
  --gray-200: #223818;
  --text-primary: #d8f8e0;
  --text-secondary: #88d8a0;
  --text-muted: #508860;
  --success: #30c870;
  --warning: #d8a838;
  --error: #e86050;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #0c1a0e);
  /* editor shell */
  --bg: #0e1810;
  --panel: #121e14;
  --panel-2: #18280e;
  --panel-3: #223818;
  --border: #203828;
  --border-2: #2e5038;
  --text: #d8f8e0;
  --text-soft: #88d8a0;
  --text-dim: #508860;
  --accent: #4ec880;
  --accent-2: #30a860;
}

[data-theme="ink"] {
  --primary-50: #18243e;
  --primary-500: #5888f8;
  --primary-600: #3060e0;
  --body-bg: linear-gradient(135deg, #0e1628 0%, #182038 50%, #0e1628 100%);
  --card-bg: rgba(16, 22, 40, 0.72);
  --popup-bg: #141e36;
  --hover-bg: rgba(28, 36, 60, 0.80);
  --border-color: rgba(88, 136, 248, 0.20);
  --gray-100: #141e38;
  --gray-200: #1e2c50;
  --text-primary: #d8e8ff;
  --text-secondary: #88a8e8;
  --text-muted: #506888;
  --success: #30d880;
  --warning: #e8b830;
  --error: #e85870;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #080e1c);
  /* editor shell */
  --bg: #0c1626;
  --panel: #10203a;
  --panel-2: #141e38;
  --panel-3: #1e2c50;
  --border: #1e2e50;
  --border-2: #283c68;
  --text: #d8e8ff;
  --text-soft: #88a8e8;
  --text-dim: #506888;
  --accent: #5888f8;
  --accent-2: #3060e0;
}

[data-theme="terracotta"] {
  --primary-50: #3c2010;
  --primary-500: #e07040;
  --primary-600: #c05020;
  --body-bg: linear-gradient(135deg, #281408 0%, #402418 50%, #281408 100%);
  --card-bg: rgba(40, 22, 12, 0.72);
  --popup-bg: #361c0e;
  --hover-bg: rgba(60, 32, 18, 0.80);
  --border-color: rgba(224, 112, 64, 0.20);
  --gray-100: #341a0a;
  --gray-200: #4a2812;
  --text-primary: #f8e0cc;
  --text-secondary: #d09070;
  --text-muted: #a06848;
  --success: #40c870;
  --warning: #e8a830;
  --error: #f05848;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #1e0e06);
  /* editor shell */
  --bg: #241008;
  --panel: #2e1808;
  --panel-2: #341a0a;
  --panel-3: #4a2812;
  --border: #4a2010;
  --border-2: #623010;
  --text: #f8e0cc;
  --text-soft: #d09070;
  --text-dim: #a06848;
  --accent: #e07040;
  --accent-2: #c05020;
}

[data-theme="plum"] {
  --primary-50: #341048;
  --primary-500: #b050e8;
  --primary-600: #8830c8;
  --body-bg: linear-gradient(135deg, #1e0a30 0%, #300e48 50%, #1e0a30 100%);
  --card-bg: rgba(32, 12, 48, 0.72);
  --popup-bg: #2a1040;
  --hover-bg: rgba(50, 20, 70, 0.80);
  --border-color: rgba(176, 80, 232, 0.22);
  --gray-100: #281040;
  --gray-200: #381858;
  --text-primary: #f0d8ff;
  --text-secondary: #c080e8;
  --text-muted: #8848b0;
  --success: #40d890;
  --warning: #e8b840;
  --error: #f05878;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #180826);
  /* editor shell */
  --bg: #1c0828;
  --panel: #221030;
  --panel-2: #281040;
  --panel-3: #381858;
  --border: #381050;
  --border-2: #501870;
  --text: #f0d8ff;
  --text-soft: #c080e8;
  --text-dim: #8848b0;
  --accent: #b050e8;
  --accent-2: #8830c8;
}

[data-theme="teal-depths"] {
  --primary-50: #0e2830;
  --primary-500: #00d8c8;
  --primary-600: #00b0a0;
  --body-bg: linear-gradient(135deg, #081820 0%, #0e2430 50%, #081820 100%);
  --card-bg: rgba(10, 24, 32, 0.72);
  --popup-bg: #0c2030;
  --hover-bg: rgba(16, 38, 50, 0.80);
  --border-color: rgba(0, 216, 200, 0.18);
  --gray-100: #0a1e28;
  --gray-200: #122c3a;
  --text-primary: #c8f8f4;
  --text-secondary: #60d8d0;
  --text-muted: #389890;
  --success: #00c8b0;
  --warning: #e8c040;
  --error: #f05868;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #040e14);
  /* editor shell */
  --bg: #071620;
  --panel: #0c1e2c;
  --panel-2: #0a1e28;
  --panel-3: #122c3a;
  --border: #102030;
  --border-2: #183040;
  --text: #c8f8f4;
  --text-soft: #60d8d0;
  --text-dim: #389890;
  --accent: #00d8c8;
  --accent-2: #00b0a0;
}

[data-theme="bronze"] {
  --primary-50: #2a1808;
  --primary-500: #c87a30;
  --primary-600: #a05818;
  --body-bg: linear-gradient(135deg, #1a1008 0%, #2e1e0a 50%, #1a1008 100%);
  --card-bg: rgba(34, 22, 8, 0.82);
  --popup-bg: #261808;
  --hover-bg: rgba(50, 32, 12, 0.86);
  --border-color: rgba(200, 122, 48, 0.20);
  --gray-100: #221408;
  --gray-200: #321e0e;
  --text-primary: #f4e0c0;
  --text-secondary: #c89060;
  --text-muted: #886038;
  --success: #38d880;
  --warning: #e8a830;
  --error: #e86050;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #180e04);
  /* editor shell */
  --bg: #180e06;
  --panel: #201406;
  --panel-2: #221408;
  --panel-3: #321e0e;
  --border: #301808;
  --border-2: #482410;
  --text: #f4e0c0;
  --text-soft: #c89060;
  --text-dim: #886038;
  --accent: #c87a30;
  --accent-2: #a05818;
}

[data-theme="midnight"] {
  --primary-50: #060e1c;
  --primary-500: #4488ff;
  --primary-600: #2268e8;
  --body-bg: linear-gradient(135deg, #040810 0%, #0a1424 50%, #040810 100%);
  --card-bg: rgba(7, 12, 26, 0.82);
  --popup-bg: #070e20;
  --hover-bg: rgba(12, 20, 42, 0.88);
  --border-color: rgba(68, 136, 255, 0.16);
  --gray-100: #070c1a;
  --gray-200: #0e162c;
  --text-primary: #d0e4ff;
  --text-secondary: #6888d8;
  --text-muted: #3e5878;
  --success: #28d878;
  --warning: #e8b828;
  --error: #e85060;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #060c18);
  /* editor shell */
  --bg: #030710;
  --panel: #070c1a;
  --panel-2: #0a1228;
  --panel-3: #0e162c;
  --border: #0e1428;
  --border-2: #14203c;
  --text: #d0e4ff;
  --text-soft: #6888d8;
  --text-dim: #3e5878;
  --accent: #4488ff;
  --accent-2: #2268e8;
}

[data-theme="deep-space"] {
  --primary-50: #0d0520;
  --primary-500: #a060f0;
  --primary-600: #7838d0;
  --body-bg: linear-gradient(135deg, #080412 0%, #130a24 50%, #080412 100%);
  --card-bg: rgba(12, 6, 22, 0.84);
  --popup-bg: #0e0820;
  --hover-bg: rgba(20, 10, 36, 0.88);
  --border-color: rgba(160, 96, 240, 0.18);
  --gray-100: #0c0616;
  --gray-200: #140d28;
  --text-primary: #e8d8ff;
  --text-secondary: #9870d8;
  --text-muted: #5838a0;
  --success: #28d888;
  --warning: #d8a828;
  --error: #e83858;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #0c0618);
  /* editor shell */
  --bg: #06030e;
  --panel: #0c061a;
  --panel-2: #100820;
  --panel-3: #140d28;
  --border: #140a28;
  --border-2: #1e1040;
  --text: #e8d8ff;
  --text-soft: #9870d8;
  --text-dim: #5838a0;
  --accent: #a060f0;
  --accent-2: #7838d0;
}

[data-theme="coal-fire"] {
  --primary-50: #1e0e04;
  --primary-500: #f87030;
  --primary-600: #d85018;
  --body-bg: linear-gradient(135deg, #0e0602 0%, #1e0e06 50%, #0e0602 100%);
  --card-bg: rgba(18, 8, 2, 0.84);
  --popup-bg: #1a0c06;
  --hover-bg: rgba(32, 14, 4, 0.88);
  --border-color: rgba(248, 112, 48, 0.18);
  --gray-100: #180c06;
  --gray-200: #28140a;
  --text-primary: #f8e8d8;
  --text-secondary: #d08060;
  --text-muted: #906048;
  --success: #30d878;
  --warning: #f88030;
  --error: #f04050;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #140804);
  /* editor shell */
  --bg: #0c0602;
  --panel: #140a04;
  --panel-2: #180c06;
  --panel-3: #28140a;
  --border: #28100a;
  --border-2: #3c1a0e;
  --text: #f8e8d8;
  --text-soft: #d08060;
  --text-dim: #906048;
  --accent: #f87030;
  --accent-2: #d85018;
}

[data-theme="blood-moon"] {
  --primary-50: #1e060c;
  --primary-500: #e02840;
  --primary-600: #b01028;
  --body-bg: linear-gradient(135deg, #110406 0%, #22080c 50%, #110406 100%);
  --card-bg: rgba(18, 4, 6, 0.84);
  --popup-bg: #1c0a0e;
  --hover-bg: rgba(34, 10, 14, 0.88);
  --border-color: rgba(224, 40, 64, 0.18);
  --gray-100: #180c0e;
  --gray-200: #281214;
  --text-primary: #f8d8d8;
  --text-secondary: #d06070;
  --text-muted: #904858;
  --success: #28d870;
  --warning: #e8b828;
  --error: #f02848;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #180608);
  /* editor shell */
  --bg: #0e0204;
  --panel: #160408;
  --panel-2: #180c0e;
  --panel-3: #281214;
  --border: #281010;
  --border-2: #3c1818;
  --text: #f8d8d8;
  --text-soft: #d06070;
  --text-dim: #904858;
  --accent: #e02840;
  --accent-2: #b01028;
}

[data-theme="arctic-night"] {
  --primary-50: #041410;
  --primary-500: #00d890;
  --primary-600: #00b070;
  --body-bg: linear-gradient(135deg, #020a08 0%, #061410 50%, #020a08 100%);
  --card-bg: rgba(4, 12, 10, 0.76);
  --popup-bg: #061412;
  --hover-bg: rgba(8, 22, 18, 0.88);
  --border-color: rgba(0, 216, 144, 0.14);
  --gray-100: #061210;
  --gray-200: #0c1e18;
  --text-primary: #d0f8ec;
  --text-secondary: #50c8a0;
  --text-muted: #288868;
  --success: #00d890;
  --warning: #d8c028;
  --error: #e84850;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #020a08);
  /* editor shell */
  --bg: #020806;
  --panel: #060e0c;
  --panel-2: #061210;
  --panel-3: #0c1e18;
  --border: #0c1a14;
  --border-2: #142818;
  --text: #d0f8ec;
  --text-soft: #50c8a0;
  --text-dim: #288868;
  --accent: #00d890;
  --accent-2: #00b070;
}

[data-theme="carbon"] {
  --primary-50: #141414;
  --primary-500: #808898;
  --primary-600: #5c6470;
  --body-bg: linear-gradient(135deg, #080808 0%, #101214 50%, #080808 100%);
  --card-bg: rgba(12, 12, 14, 0.78);
  --popup-bg: #0e0e10;
  --hover-bg: rgba(20, 20, 24, 0.88);
  --border-color: #1e2028;
  --gray-100: #0e0e10;
  --gray-200: #181820;
  --text-primary: #d8dce8;
  --text-secondary: #8890a8;
  --text-muted: #4c5268;
  --success: #30c870;
  --warning: #d8a828;
  --error: #e84858;
  --progress: linear-gradient(270deg, var(--primary-500), var(--primary-600), #080808);
  /* editor shell */
  --bg: #080808;
  --panel: #0c0c0e;
  --panel-2: #0e0e10;
  --panel-3: #181820;
  --border: #1e2028;
  --border-2: #282c38;
  --text: #d8dce8;
  --text-soft: #8890a8;
  --text-dim: #4c5268;
  --accent: #808898;
  --accent-2: #5c6470;
}
