:root {
  --theme-bg-start: #050508;
  --theme-bg-mid: #08080f;
  --theme-bg-end: #030306;
  --theme-accent-1: #667eea;
  --theme-accent-2: #764ba2;
  --theme-color-2-1: #a855f7;
  --theme-color-2-2: #7c3aed;
  --theme-btn-tertiary-1: #000000;
  --theme-btn-tertiary-2: #000000;
  --theme-orb-1: rgba(102, 126, 234, 0.25);
  --theme-orb-2: rgba(118, 75, 162, 0.2);
  --theme-orb-3: rgba(56, 178, 172, 0.15);
  --theme-surface: rgba(15, 15, 25, 0.95);
  --theme-surface-hover: rgba(25, 25, 40, 0.95);
  --theme-card-bg: rgba(10, 10, 18, 0.9);
  --theme-gradient: linear-gradient(135deg, var(--theme-accent-1), var(--theme-accent-2));
  /* Node type colors - borders are low opacity for subtle outlines */
  --theme-node-person: #667eea;
  --theme-node-person-border: rgba(102, 126, 234, 0.35);
  --theme-node-company: #a855f7;
  --theme-node-company-border: rgba(168, 85, 247, 0.35);
  --theme-node-family: #fbbf24;
  --theme-node-family-border: #f59e0b;
  --theme-node-custom: #ef4444;
  --theme-node-custom-border: #dc2626;
  --theme-node-validated: #22c55e;
  --theme-node-validated-border: #16a34a;
}

[data-theme="obsidian"] {
  --theme-bg-start: #000000;
  --theme-bg-mid: #050505;
  --theme-bg-end: #020202;
  --theme-accent-1: #888888;
  --theme-accent-2: #555555;
  --theme-color-2-1: #666666;
  --theme-color-2-2: #444444;
  --theme-btn-tertiary-1: #000000;
  --theme-btn-tertiary-2: #000000;
  --theme-orb-1: rgba(100, 100, 100, 0.12);
  --theme-orb-2: rgba(80, 80, 80, 0.08);
  --theme-orb-3: rgba(60, 60, 60, 0.05);
  --theme-surface: rgba(10, 10, 10, 0.95);
  --theme-surface-hover: rgba(20, 20, 20, 0.95);
  --theme-card-bg: rgba(5, 5, 5, 0.9);
  --theme-gradient: linear-gradient(135deg, var(--theme-accent-1), var(--theme-accent-2));
  --theme-node-person: #888888;
  --theme-node-person-border: rgba(136, 136, 136, 0.35);
  --theme-node-company: #666666;
  --theme-node-company-border: rgba(102, 102, 102, 0.35);
  --theme-node-family: #999999;
  --theme-node-family-border: #777777;
  --theme-node-custom: #555555;
  --theme-node-custom-border: #444444;
  --theme-node-validated: #aaaaaa;
  --theme-node-validated-border: #888888;
}

[data-theme="ocean"] {
  --theme-bg-start: #040810;
  --theme-bg-mid: #081018;
  --theme-bg-end: #030608;
  --theme-accent-1: #00b4d8;
  --theme-accent-2: #0077b6;
  --theme-color-2-1: #06d6a0;
  --theme-color-2-2: #00a878;
  --theme-btn-tertiary-1: #000000;
  --theme-btn-tertiary-2: #000000;
  --theme-orb-1: rgba(0, 180, 216, 0.2);
  --theme-orb-2: rgba(0, 119, 182, 0.15);
  --theme-orb-3: rgba(3, 169, 244, 0.1);
  --theme-surface: rgba(8, 20, 35, 0.95);
  --theme-surface-hover: rgba(15, 35, 55, 0.95);
  --theme-card-bg: rgba(5, 12, 22, 0.9);
  --theme-gradient: linear-gradient(135deg, var(--theme-accent-1), var(--theme-accent-2));
  --theme-node-person: #00b4d8;
  --theme-node-person-border: rgba(0, 180, 216, 0.35);
  --theme-node-company: #06d6a0;
  --theme-node-company-border: rgba(6, 214, 160, 0.35);
  --theme-node-family: #48cae4;
  --theme-node-family-border: #00b4d8;
  --theme-node-custom: #f72585;
  --theme-node-custom-border: #b5179e;
  --theme-node-validated: #4cc9f0;
  --theme-node-validated-border: #4895ef;
}

[data-theme="forest"] {
  --theme-bg-start: #030804;
  --theme-bg-mid: #050c06;
  --theme-bg-end: #020502;
  --theme-accent-1: #22c55e;
  --theme-accent-2: #16a34a;
  --theme-color-2-1: #facc15;
  --theme-color-2-2: #eab308;
  --theme-btn-tertiary-1: #000000;
  --theme-btn-tertiary-2: #000000;
  --theme-orb-1: rgba(34, 197, 94, 0.18);
  --theme-orb-2: rgba(22, 163, 74, 0.12);
  --theme-orb-3: rgba(74, 222, 128, 0.08);
  --theme-surface: rgba(10, 25, 12, 0.95);
  --theme-surface-hover: rgba(18, 40, 20, 0.95);
  --theme-card-bg: rgba(6, 15, 8, 0.9);
  --theme-gradient: linear-gradient(135deg, var(--theme-accent-1), var(--theme-accent-2));
  --theme-node-person: #22c55e;
  --theme-node-person-border: rgba(34, 197, 94, 0.35);
  --theme-node-company: #facc15;
  --theme-node-company-border: rgba(250, 204, 21, 0.35);
  --theme-node-family: #a3e635;
  --theme-node-family-border: #84cc16;
  --theme-node-custom: #f97316;
  --theme-node-custom-border: #ea580c;
  --theme-node-validated: #4ade80;
  --theme-node-validated-border: #22c55e;
}

[data-theme="sunset"] {
  --theme-bg-start: #080404;
  --theme-bg-mid: #0c0605;
  --theme-bg-end: #050302;
  --theme-accent-1: #f97316;
  --theme-accent-2: #ea580c;
  --theme-color-2-1: #fbbf24;
  --theme-color-2-2: #f59e0b;
  --theme-btn-tertiary-1: #000000;
  --theme-btn-tertiary-2: #000000;
  --theme-orb-1: rgba(249, 115, 22, 0.2);
  --theme-orb-2: rgba(234, 88, 12, 0.15);
  --theme-orb-3: rgba(251, 191, 36, 0.1);
  --theme-surface: rgba(25, 15, 10, 0.95);
  --theme-surface-hover: rgba(40, 25, 18, 0.95);
  --theme-card-bg: rgba(15, 10, 6, 0.9);
  --theme-gradient: linear-gradient(135deg, var(--theme-accent-1), var(--theme-accent-2));
  --theme-node-person: #f97316;
  --theme-node-person-border: rgba(249, 115, 22, 0.35);
  --theme-node-company: #fbbf24;
  --theme-node-company-border: rgba(251, 191, 36, 0.35);
  --theme-node-family: #fcd34d;
  --theme-node-family-border: #fbbf24;
  --theme-node-custom: #ef4444;
  --theme-node-custom-border: #dc2626;
  --theme-node-validated: #fb923c;
  --theme-node-validated-border: #f97316;
}

[data-theme="cyberpunk"] {
  --theme-bg-start: #040408;
  --theme-bg-mid: #080510;
  --theme-bg-end: #030408;
  --theme-accent-1: #ec4899;
  --theme-accent-2: #06b6d4;
  --theme-color-2-1: #06b6d4;
  --theme-color-2-2: #0891b2;
  --theme-btn-tertiary-1: #000000;
  --theme-btn-tertiary-2: #000000;
  --theme-orb-1: rgba(236, 72, 153, 0.22);
  --theme-orb-2: rgba(6, 182, 212, 0.18);
  --theme-orb-3: rgba(168, 85, 247, 0.12);
  --theme-surface: rgba(15, 10, 25, 0.95);
  --theme-surface-hover: rgba(25, 18, 40, 0.95);
  --theme-card-bg: rgba(10, 6, 18, 0.9);
  --theme-gradient: linear-gradient(135deg, var(--theme-accent-1), var(--theme-accent-2));
  --theme-node-person: #ec4899;
  --theme-node-person-border: rgba(236, 72, 153, 0.35);
  --theme-node-company: #06b6d4;
  --theme-node-company-border: rgba(6, 182, 212, 0.35);
  --theme-node-family: #a855f7;
  --theme-node-family-border: #9333ea;
  --theme-node-custom: #f43f5e;
  --theme-node-custom-border: #e11d48;
  --theme-node-validated: #22d3ee;
  --theme-node-validated-border: #06b6d4;
}

[data-theme="monochrome"] {
  --theme-bg-start: #040404;
  --theme-bg-mid: #080808;
  --theme-bg-end: #030303;
  --theme-accent-1: #ffffff;
  --theme-accent-2: #888888;
  --theme-color-2-1: #a0a0a0;
  --theme-color-2-2: #808080;
  --theme-btn-tertiary-1: #000000;
  --theme-btn-tertiary-2: #000000;
  --theme-orb-1: rgba(255, 255, 255, 0.06);
  --theme-orb-2: rgba(200, 200, 200, 0.04);
  --theme-orb-3: rgba(150, 150, 150, 0.03);
  --theme-surface: rgba(15, 15, 15, 0.95);
  --theme-surface-hover: rgba(25, 25, 25, 0.95);
  --theme-card-bg: rgba(8, 8, 8, 0.9);
  --theme-gradient: linear-gradient(135deg, var(--theme-accent-1), var(--theme-accent-2));
  --theme-node-person: #ffffff;
  --theme-node-person-border: rgba(255, 255, 255, 0.35);
  --theme-node-company: #a0a0a0;
  --theme-node-company-border: rgba(160, 160, 160, 0.35);
  --theme-node-family: #dddddd;
  --theme-node-family-border: #bbbbbb;
  --theme-node-custom: #666666;
  --theme-node-custom-border: #444444;
  --theme-node-validated: #eeeeee;
  --theme-node-validated-border: #cccccc;
}

[data-theme="crimson"] {
  --theme-bg-start: #080404;
  --theme-bg-mid: #0c0505;
  --theme-bg-end: #050202;
  --theme-accent-1: #dc2626;
  --theme-accent-2: #991b1b;
  --theme-color-2-1: #f97316;
  --theme-color-2-2: #ea580c;
  --theme-btn-tertiary-1: #000000;
  --theme-btn-tertiary-2: #000000;
  --theme-orb-1: rgba(220, 38, 38, 0.18);
  --theme-orb-2: rgba(153, 27, 27, 0.12);
  --theme-orb-3: rgba(248, 113, 113, 0.08);
  --theme-surface: rgba(20, 10, 10, 0.95);
  --theme-surface-hover: rgba(35, 18, 18, 0.95);
  --theme-card-bg: rgba(12, 6, 6, 0.9);
  --theme-gradient: linear-gradient(135deg, var(--theme-accent-1), var(--theme-accent-2));
  --theme-node-person: #dc2626;
  --theme-node-person-border: rgba(220, 38, 38, 0.35);
  --theme-node-company: #f97316;
  --theme-node-company-border: rgba(249, 115, 22, 0.35);
  --theme-node-family: #fca5a5;
  --theme-node-family-border: #f87171;
  --theme-node-custom: #b91c1c;
  --theme-node-custom-border: #7f1d1d;
  --theme-node-validated: #fecaca;
  --theme-node-validated-border: #fca5a5;
}

body {
  background: linear-gradient(135deg, var(--theme-bg-start) 0%, var(--theme-bg-mid) 30%, var(--theme-bg-mid) 60%, var(--theme-bg-end) 100%) !important;
}

.bg-orb-1 {
  background: radial-gradient(circle, var(--theme-orb-1) 0%, transparent 70%) !important;
}

.bg-orb-2 {
  background: radial-gradient(circle, var(--theme-orb-2) 0%, transparent 70%) !important;
}

.bg-orb-3 {
  background: radial-gradient(circle, var(--theme-orb-3) 0%, transparent 70%) !important;
}
