/* Hacker theme: variables + overrides */
body.theme-hacker {
  --coverage-contour-color: #ff70c8;
  /* Core palette */
  --color-primary: #39d353;
  --color-secondary: #f85149;
  --color-bg-dark: #0d1117;
  --color-bg-panel: #161b22;
  --color-border: #21262d;
  --color-text-light: #c9d1d9;
  --color-text-muted: #8b949e;
  --color-body-bg: #0d1117;
  --color-scrollbar-track: #21262d;
  --color-shadow: rgba(0,0,0,0.8);
  --color-shadow-heavy: rgba(0,0,0,0.9);
  --color-overlay: rgba(57, 211, 83, 0.05);
  --color-panel-overlay: rgba(0,0,0,0.4);
  --color-tooltip-bg: rgba(22, 27, 34, 0.98);

  /* Glows, shadows, text effects */
  --color-primary-glow-60: rgba(57, 211, 83, 0.3);
  --color-primary-glow-50: rgba(57, 211, 83, 0.2);
  --color-primary-glow-30: rgba(57, 211, 83, 0.15);
  --color-primary-glow-20: rgba(57, 211, 83, 0.1);
  --color-secondary-glow-60: rgba(248, 81, 73, 0.3);
  --color-secondary-glow-50: rgba(248, 81, 73, 0.2);
  --color-secondary-glow-30: rgba(248, 81, 73, 0.15);
  --color-secondary-glow-20: rgba(248, 81, 73, 0.1);
  --text-shadow-primary: 0 0 6px rgba(57, 211, 83, 0.4);
  --text-shadow-secondary: 0 0 6px rgba(248, 81, 73, 0.4);
  --box-shadow-glow: 0 0 16px rgba(57, 211, 83, 0.2);
  --box-shadow-heavy: 0 8px 24px rgba(0,0,0,0.8);

  /* Radii + transitions */
  --border-radius-sm: 4px;
  --border-radius-md: 6px;
  --border-radius-lg: 8px;
  --transition-speed: 0.2s;

  /* Typography */
  --font-primary: 'Source Code Pro','Inconsolata','JetBrains Mono','Fira Code', monospace;
  --hud-font: 16px 'Source Code Pro','Inconsolata','JetBrains Mono', monospace;

  /* Canvas/Map/HUD/Receiver variables */
  --canvas-bg-color: #0d1117;
  --map-stroke-color: #39d353;
  --map-shadow-color: #39d353;
  --receiver-fill-color: #f85149;
  --receiver-shadow-color: #f85149;
  --hud-stroke-color: #39d353;
  --hud-fill-color: #39d353;
  --hud-shadow-color: #39d353;
}

.theme-hacker .control-group label,
.theme-hacker .sidebar-header h3 {
  text-transform: uppercase;
  font-family: var(--font-primary);
  letter-spacing: var(--letter-spacing-wide);
}
.theme-hacker .action-btn,
.theme-hacker .file-upload-btn {
  text-transform: uppercase;
  font-family: var(--font-primary);
  border-width: 1px;
  letter-spacing: var(--letter-spacing-normal);
}
.theme-hacker .slider-container span {
  font-family: var(--font-primary);
  letter-spacing: var(--letter-spacing-normal);
}
.theme-hacker .top-left-controls label {
  font-family: var(--font-primary);
  letter-spacing: var(--letter-spacing-normal);
}
.theme-hacker .top-left-controls {
  background: rgba(13, 17, 23, 0.95);
  border-bottom: 1px solid var(--color-primary);
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
}
.theme-hacker canvas {
  border: 1px solid var(--color-primary);
  box-shadow: 0 0 20px var(--color-primary-glow-30);
}
