/* Built-in multi-themes for live 3D dashboard — switch anytime, no rebuild */

/* Default = current purple/pink */
.d3-body.theme-jarvis {
  --t-a: #9B5CFF; --t-b: #FF5FD6; --t-c: #38BDF8; --t-g: #2FE08A;
  --t-bg: #050508; --t-panel: rgba(12,10,24,.72); --t-text: #f5f3fb;
}
.d3-body.theme-cyber-teal {
  --t-a: #14B8A6; --t-b: #22D3EE; --t-c: #67E8F9; --t-g: #34D399;
  --t-bg: #021016; --t-panel: rgba(2,20,28,.78); --t-text: #E0F2FE;
}
.d3-body.theme-gold-command {
  --t-a: #F59E0B; --t-b: #FBBF24; --t-c: #FCD34D; --t-g: #84CC16;
  --t-bg: #0a0804; --t-panel: rgba(24,16,4,.8); --t-text: #FFF7ED;
}
.d3-body.theme-ice-blue {
  --t-a: #60A5FA; --t-b: #93C5FD; --t-c: #BAE6FD; --t-g: #34D399;
  --t-bg: #040810; --t-panel: rgba(8,14,28,.8); --t-text: #F0F9FF;
}
.d3-body.theme-matrix {
  --t-a: #22C55E; --t-b: #4ADE80; --t-c: #86EFAC; --t-g: #BBF7D0;
  --t-bg: #020804; --t-panel: rgba(4,16,8,.82); --t-text: #DCFCE7;
}
.d3-body.theme-crimson {
  --t-a: #EF4444; --t-b: #F472B6; --t-c: #FB7185; --t-g: #FBBF24;
  --t-bg: #0c0406; --t-panel: rgba(28,6,10,.8); --t-text: #FFF1F2;
}
.d3-body.theme-sunset {
  --t-a: #F97316; --t-b: #FB7185; --t-c: #FBBF24; --t-g: #A3E635;
  --t-bg: #0c0604; --t-panel: rgba(28,12,6,.8); --t-text: #FFF7ED;
}
.d3-body.theme-midnight {
  --t-a: #A78BFA; --t-b: #C4B5FD; --t-c: #E9D5FF; --t-g: #94A3B8;
  --t-bg: #020203; --t-panel: rgba(10,10,14,.88); --t-text: #F8FAFC;
}
/* Iron Man / Hacker — mobile-friendly HUD (COPY 4501) */
.d3-body.theme-ironman {
  --t-a: #FF2A00; --t-b: #FFC400; --t-c: #FF6A00; --t-g: #FFD700;
  --t-bg: #0a0400; --t-panel: rgba(40,12,0,.88); --t-text: #FFF5E6;
}
.d3-body.theme-ironman .d3-stage-wrap {
  box-shadow: inset 0 0 80px rgba(255,42,0,.25), 0 0 40px rgba(255,196,0,.2) !important;
}
.d3-body.theme-hacker {
  --t-a: #00FF9C; --t-b: #00CC77; --t-c: #39FF14; --t-g: #00FF41;
  --t-bg: #000a04; --t-panel: rgba(0,20,10,.9); --t-text: #B8FFD9;
  font-family: ui-monospace, Consolas, monospace;
}
.d3-body.theme-hacker .d3-stage-wrap {
  background:
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,255,156,.04) 2px, rgba(0,255,156,.04) 4px),
    radial-gradient(ellipse 70% 50% at 50% 60%, rgba(0,255,156,.12), transparent 70%),
    #000a04 !important;
}
.d3-body.theme-arc-reactor {
  --t-a: #00D4FF; --t-b: #0077FF; --t-c: #66E0FF; --t-g: #00FFCC;
  --t-bg: #020810; --t-panel: rgba(0,20,40,.88); --t-text: #E6F9FF;
}
.d3-body.theme-arc-reactor .gia-core {
  animation: arcPulse 2.4s ease-in-out infinite;
}
@keyframes arcPulse {
  0%, 100% { box-shadow: 0 0 20px #00d4ff, 0 0 40px rgba(0,100,255,.4); }
  50% { box-shadow: 0 0 40px #00d4ff, 0 0 80px rgba(0,200,255,.55); }
}

.d3-body {
  background: var(--t-bg, #050508) !important;
  color: var(--t-text, #f5f3fb);
}
.d3-topbar {
  border-bottom-color: color-mix(in srgb, var(--t-a) 35%, transparent) !important;
}
.d3-brand .acc { color: var(--t-b) !important; }
.d3-chip { border-color: color-mix(in srgb, var(--t-a) 30%, transparent) !important; }
.d3-view-toggle { border-color: color-mix(in srgb, var(--t-a) 35%, transparent) !important; }
.d3-view-toggle .vt.on {
  background: linear-gradient(90deg, var(--t-a), var(--t-b)) !important;
}
.d3-nav a {
  color: var(--t-a) !important;
  border-color: color-mix(in srgb, var(--t-a) 40%, transparent) !important;
  background: color-mix(in srgb, var(--t-a) 12%, transparent) !important;
}
.d3-stage-wrap {
  border-color: color-mix(in srgb, var(--t-a) 35%, transparent) !important;
  background:
    radial-gradient(ellipse 70% 50% at 50% 60%, color-mix(in srgb, var(--t-a) 18%, transparent), transparent 70%),
    radial-gradient(ellipse 40% 30% at 80% 20%, color-mix(in srgb, var(--t-b) 12%, transparent), transparent 60%),
    rgba(5,5,12,.85) !important;
}
.d3-floor {
  background: radial-gradient(circle, color-mix(in srgb, var(--t-a) 22%, transparent) 0%, transparent 65%) !important;
  border-color: color-mix(in srgb, var(--t-a) 25%, transparent) !important;
  box-shadow: 0 0 60px color-mix(in srgb, var(--t-a) 30%, transparent) !important;
}
.d3-platform .hud-ring.r1 { border-color: color-mix(in srgb, var(--t-b) 45%, transparent) !important; }
.d3-platform .hud-ring.r2 { border-color: color-mix(in srgb, var(--t-a) 35%, transparent) !important; }
.d3-platform .hud-ring.r3 { border-color: color-mix(in srgb, var(--t-c) 30%, transparent) !important; }
.gia-core {
  background: linear-gradient(145deg, var(--t-a), var(--t-b)) !important;
  box-shadow: 0 0 30px color-mix(in srgb, var(--t-a) 55%, transparent),
    0 0 60px color-mix(in srgb, var(--t-b) 30%, transparent) !important;
}
.gia-label { color: var(--t-a) !important; }
.d3-glass {
  background: var(--t-panel) !important;
  border-color: color-mix(in srgb, var(--t-a) 28%, transparent) !important;
}
.d3-freebar {
  border-color: color-mix(in srgb, var(--t-g) 35%, transparent) !important;
}
.btn, #missionBtn, #btnOpenStudio {
  background: linear-gradient(90deg, var(--t-a), var(--t-b)) !important;
  border: 0 !important; color: #fff !important;
}

/* Theme picker dock */
.d3-theme-dock {
  position: relative; z-index: 16;
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  margin: 8px 18px 0; padding: 10px 12px;
  background: rgba(0,0,0,.4); border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
}
.d3-theme-dock b { font-size: .75rem; margin-right: 4px; color: #cfc9e8; }
.d3-theme-swatch {
  width: 28px; height: 28px; border-radius: 50%; border: 2px solid rgba(255,255,255,.2);
  cursor: pointer; padding: 0;
  box-shadow: 0 0 10px rgba(0,0,0,.4);
}
.d3-theme-swatch.active {
  border-color: #fff;
  box-shadow: 0 0 0 2px var(--t-a), 0 0 14px var(--t-b);
  transform: scale(1.12);
}
.d3-theme-name { font-size: .72rem; color: #a29dc2; margin-left: 6px; }
