/* Phase 34J.5 — Scoreboard selected-theme surface bridge.
   Loaded after both /styles.css and the selected theme stylesheet so the big-screen
   scoreboard cards follow the selected server theme instead of mode/default colors. */

html[data-theme],
body.scoreboard-display-body[data-theme] {
  color: var(--score-text, #f6f1e7) !important;
}

body.scoreboard-display-body[data-theme] {
  --score-ink: #050505;
  --score-text: #f6f1e7;
  --score-muted: #d2bfaa;
  --score-accent: #ffbd62;
  --score-accent-2: #ffd166;
  --score-border: rgba(255, 189, 98, 0.48);
  --score-border-strong: rgba(255, 189, 98, 0.82);
  --score-card-bg: rgba(16, 12, 10, 0.86);
  --score-card-bg-soft: rgba(34, 22, 15, 0.78);
  --score-red: #e05a3b;
  --score-blue: #62b7ff;
}

body.scoreboard-display-body[data-theme="default"] {
  --score-text: #fff1d2;
  --score-muted: #d9bd95;
  --score-accent: #ff9f1c;
  --score-accent-2: #ffd166;
  --score-border: rgba(255, 159, 28, 0.56);
  --score-border-strong: rgba(255, 209, 102, 0.88);
  --score-card-bg: rgba(22, 13, 10, 0.88);
  --score-card-bg-soft: rgba(44, 27, 19, 0.80);
}

body.scoreboard-display-body[data-theme="neon-80s"] {
  --score-text: #fff5ff;
  --score-muted: #c8fbff;
  --score-accent: #ff4fd8;
  --score-accent-2: #00f0ff;
  --score-border: rgba(255, 79, 216, 0.58);
  --score-border-strong: rgba(0, 240, 255, 0.90);
  --score-card-bg: rgba(20, 7, 42, 0.90);
  --score-card-bg-soft: rgba(35, 12, 61, 0.82);
}

body.scoreboard-display-body[data-theme="zombie-tag"] {
  --score-text: #f8ffe7;
  --score-muted: #cbe7b9;
  --score-accent: #8df06b;
  --score-accent-2: #ffe45c;
  --score-border: rgba(141, 240, 107, 0.54);
  --score-border-strong: rgba(255, 228, 92, 0.84);
  --score-card-bg: rgba(7, 24, 10, 0.90);
  --score-card-bg-soft: rgba(17, 42, 14, 0.82);
}

body.scoreboard-display-body[data-theme="tactical-camo"] {
  --score-text: #eee7d1;
  --score-muted: #d2c8a0;
  --score-accent: #d4c27a;
  --score-accent-2: #b8c98c;
  --score-border: rgba(212, 194, 122, 0.52);
  --score-border-strong: rgba(184, 201, 140, 0.84);
  --score-card-bg: rgba(28, 32, 20, 0.90);
  --score-card-bg-soft: rgba(44, 50, 34, 0.82);
}

body.scoreboard-display-body[data-theme="tron-sci-fi"],
body.scoreboard-display-body[data-theme="laser-tag-arena"] {
  --score-text: #e9fbff;
  --score-muted: #b7f8ff;
  --score-accent: #62f7ff;
  --score-accent-2: #3b82ff;
  --score-border: rgba(98, 247, 255, 0.54);
  --score-border-strong: rgba(98, 247, 255, 0.90);
  --score-card-bg: rgba(5, 17, 32, 0.90);
  --score-card-bg-soft: rgba(12, 32, 55, 0.82);
}

body.scoreboard-display-body[data-theme="candy-apocalypse"] {
  --score-text: #fff7ff;
  --score-muted: #ffd9f5;
  --score-accent: #ff74c3;
  --score-accent-2: #61ebff;
  --score-border: rgba(255, 174, 215, 0.62);
  --score-border-strong: rgba(89, 228, 255, 0.90);
  --score-card-bg: rgba(92, 27, 95, 0.90);
  --score-card-bg-soft: rgba(112, 35, 116, 0.82);
}

body.scoreboard-display-body[data-theme="cartoon-chaos"] {
  --score-text: #142652;
  --score-muted: #4d5e98;
  --score-accent: #ffd84f;
  --score-accent-2: #57b8ff;
  --score-border: rgba(17, 34, 76, 0.76);
  --score-border-strong: rgba(17, 34, 76, 0.96);
  --score-card-bg: rgba(255, 255, 255, 0.92);
  --score-card-bg-soft: rgba(236, 244, 255, 0.88);
}

body.scoreboard-display-body[data-theme="toxic-slime-lab"] {
  --score-text: #f8ffe0;
  --score-muted: #c3df95;
  --score-accent: #d4ff00;
  --score-accent-2: #00ffbf;
  --score-border: rgba(212, 255, 0, 0.58);
  --score-border-strong: rgba(0, 255, 191, 0.88);
  --score-card-bg: rgba(33, 48, 9, 0.90);
  --score-card-bg-soft: rgba(45, 64, 13, 0.82);
}

body.scoreboard-display-body[data-theme="retro-arcade"] {
  --score-text: #fff8fb;
  --score-muted: #f4d3ff;
  --score-accent: #ff4dcd;
  --score-accent-2: #ffe44d;
  --score-border: rgba(255, 77, 205, 0.56);
  --score-border-strong: rgba(255, 228, 77, 0.88);
  --score-card-bg: rgba(19, 10, 48, 0.90);
  --score-card-bg-soft: rgba(34, 17, 78, 0.82);
}

body.scoreboard-display-body[data-theme="superhero-city"] {
  --score-text: #f4f8ff;
  --score-muted: #d8e6ff;
  --score-accent: #ffd84f;
  --score-accent-2: #57b8ff;
  --score-border: rgba(255, 216, 79, 0.56);
  --score-border-strong: rgba(87, 184, 255, 0.90);
  --score-card-bg: rgba(22, 56, 136, 0.90);
  --score-card-bg-soft: rgba(33, 76, 164, 0.82);
}

body.scoreboard-display-body[data-theme="pirate-treasure"] {
  --score-text: #fff3d8;
  --score-muted: #e6c58b;
  --score-accent: #f2c14e;
  --score-accent-2: #c77d2a;
  --score-border: rgba(242, 193, 78, 0.58);
  --score-border-strong: rgba(255, 222, 138, 0.88);
  --score-card-bg: rgba(42, 21, 8, 0.91);
  --score-card-bg-soft: rgba(64, 34, 12, 0.83);
}

body.scoreboard-display-body[data-theme="alien-invasion"] {
  --score-text: #f2fffb;
  --score-muted: #b8e8de;
  --score-accent: #80ffb2;
  --score-accent-2: #ae55ff;
  --score-border: rgba(128, 255, 178, 0.56);
  --score-border-strong: rgba(174, 85, 255, 0.88);
  --score-card-bg: rgba(24, 23, 67, 0.90);
  --score-card-bg-soft: rgba(35, 31, 86, 0.82);
}

/* Re-apply the selected theme variables on mode boards so Ghost Hunt/Zombie
   personality no longer locks the cards to purple/green when another theme is selected. */
body.scoreboard-display-body[data-theme="default"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="default"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="default"] .scoreboard-content { --score-text:#fff1d2; --score-muted:#d9bd95; --score-accent:#ff9f1c; --score-accent-2:#ffd166; --score-border:rgba(255,159,28,.56); --score-border-strong:rgba(255,209,102,.88); --score-card-bg:rgba(22,13,10,.88); --score-card-bg-soft:rgba(44,27,19,.80); }
body.scoreboard-display-body[data-theme="neon-80s"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="neon-80s"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="neon-80s"] .scoreboard-content { --score-text:#fff5ff; --score-muted:#c8fbff; --score-accent:#ff4fd8; --score-accent-2:#00f0ff; --score-border:rgba(255,79,216,.58); --score-border-strong:rgba(0,240,255,.90); --score-card-bg:rgba(20,7,42,.90); --score-card-bg-soft:rgba(35,12,61,.82); }
body.scoreboard-display-body[data-theme="zombie-tag"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="zombie-tag"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="zombie-tag"] .scoreboard-content { --score-text:#f8ffe7; --score-muted:#cbe7b9; --score-accent:#8df06b; --score-accent-2:#ffe45c; --score-border:rgba(141,240,107,.54); --score-border-strong:rgba(255,228,92,.84); --score-card-bg:rgba(7,24,10,.90); --score-card-bg-soft:rgba(17,42,14,.82); }
body.scoreboard-display-body[data-theme="tactical-camo"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="tactical-camo"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="tactical-camo"] .scoreboard-content { --score-text:#eee7d1; --score-muted:#d2c8a0; --score-accent:#d4c27a; --score-accent-2:#b8c98c; --score-border:rgba(212,194,122,.52); --score-border-strong:rgba(184,201,140,.84); --score-card-bg:rgba(28,32,20,.90); --score-card-bg-soft:rgba(44,50,34,.82); }
body.scoreboard-display-body[data-theme="tron-sci-fi"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="tron-sci-fi"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="tron-sci-fi"] .scoreboard-content,
body.scoreboard-display-body[data-theme="laser-tag-arena"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="laser-tag-arena"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="laser-tag-arena"] .scoreboard-content { --score-text:#e9fbff; --score-muted:#b7f8ff; --score-accent:#62f7ff; --score-accent-2:#3b82ff; --score-border:rgba(98,247,255,.54); --score-border-strong:rgba(98,247,255,.90); --score-card-bg:rgba(5,17,32,.90); --score-card-bg-soft:rgba(12,32,55,.82); }
body.scoreboard-display-body[data-theme="candy-apocalypse"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="candy-apocalypse"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="candy-apocalypse"] .scoreboard-content { --score-text:#fff7ff; --score-muted:#ffd9f5; --score-accent:#ff74c3; --score-accent-2:#61ebff; --score-border:rgba(255,174,215,.62); --score-border-strong:rgba(89,228,255,.90); --score-card-bg:rgba(92,27,95,.90); --score-card-bg-soft:rgba(112,35,116,.82); }
body.scoreboard-display-body[data-theme="cartoon-chaos"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="cartoon-chaos"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="cartoon-chaos"] .scoreboard-content { --score-text:#142652; --score-muted:#4d5e98; --score-accent:#ffd84f; --score-accent-2:#57b8ff; --score-border:rgba(17,34,76,.76); --score-border-strong:rgba(17,34,76,.96); --score-card-bg:rgba(255,255,255,.92); --score-card-bg-soft:rgba(236,244,255,.88); }
body.scoreboard-display-body[data-theme="toxic-slime-lab"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="toxic-slime-lab"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="toxic-slime-lab"] .scoreboard-content { --score-text:#f8ffe0; --score-muted:#c3df95; --score-accent:#d4ff00; --score-accent-2:#00ffbf; --score-border:rgba(212,255,0,.58); --score-border-strong:rgba(0,255,191,.88); --score-card-bg:rgba(33,48,9,.90); --score-card-bg-soft:rgba(45,64,13,.82); }
body.scoreboard-display-body[data-theme="retro-arcade"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="retro-arcade"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="retro-arcade"] .scoreboard-content { --score-text:#fff8fb; --score-muted:#f4d3ff; --score-accent:#ff4dcd; --score-accent-2:#ffe44d; --score-border:rgba(255,77,205,.56); --score-border-strong:rgba(255,228,77,.88); --score-card-bg:rgba(19,10,48,.90); --score-card-bg-soft:rgba(34,17,78,.82); }
body.scoreboard-display-body[data-theme="superhero-city"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="superhero-city"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="superhero-city"] .scoreboard-content { --score-text:#f4f8ff; --score-muted:#d8e6ff; --score-accent:#ffd84f; --score-accent-2:#57b8ff; --score-border:rgba(255,216,79,.56); --score-border-strong:rgba(87,184,255,.90); --score-card-bg:rgba(22,56,136,.90); --score-card-bg-soft:rgba(33,76,164,.82); }
body.scoreboard-display-body[data-theme="pirate-treasure"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="pirate-treasure"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="pirate-treasure"] .scoreboard-content { --score-text:#fff3d8; --score-muted:#e6c58b; --score-accent:#f2c14e; --score-accent-2:#c77d2a; --score-border:rgba(242,193,78,.58); --score-border-strong:rgba(255,222,138,.88); --score-card-bg:rgba(42,21,8,.91); --score-card-bg-soft:rgba(64,34,12,.83); }
body.scoreboard-display-body[data-theme="alien-invasion"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="alien-invasion"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="alien-invasion"] .scoreboard-content { --score-text:#f2fffb; --score-muted:#b8e8de; --score-accent:#80ffb2; --score-accent-2:#ae55ff; --score-border:rgba(128,255,178,.56); --score-border-strong:rgba(174,85,255,.88); --score-card-bg:rgba(24,23,67,.90); --score-card-bg-soft:rgba(35,31,86,.82); }

/* Explicit card/panel surfaces. This is intentionally broad across all scoreboard
   renderers so every card follows the same theme token. */
body.scoreboard-display-body[data-theme] .score-box-card,
body.scoreboard-display-body[data-theme] .round-status-card,
body.scoreboard-display-body[data-theme] .round-timer-box,
body.scoreboard-display-body[data-theme] .team-roster-card,
body.scoreboard-display-body[data-theme] .scoreboard-map-card,
body.scoreboard-display-body[data-theme] .scoreboard-event-strip,
body.scoreboard-display-body[data-theme] .scoreboard-events-card,
body.scoreboard-display-body[data-theme] .scoreboard-display-header,
body.scoreboard-display-body[data-theme] .team-score-panel,
body.scoreboard-display-body[data-theme] .generic-scoreboard-header,
body.scoreboard-display-body[data-theme] .generic-team-card,
body.scoreboard-display-body[data-theme] .scoreboard-controls-panel,
body.scoreboard-display-body[data-theme] .scoreboard-game-notification {
  color: var(--score-text) !important;
  border-color: var(--score-ink) !important;
  background:
    radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--score-accent) 14%, transparent), transparent 34%),
    radial-gradient(circle at 92% 0%, color-mix(in srgb, var(--score-accent-2) 10%, transparent), transparent 28%),
    linear-gradient(180deg, color-mix(in srgb, var(--score-card-bg) 84%, var(--score-accent) 16%), var(--score-card-bg)) !important;
}

body.scoreboard-display-body[data-theme] .roster-player-card,
body.scoreboard-display-body[data-theme] .team-player-row,
body.scoreboard-display-body[data-theme] .scoreboard-event-chip,
body.scoreboard-display-body[data-theme] .scoreboard-event-row,
body.scoreboard-display-body[data-theme] .zombie-live-map-status {
  color: var(--score-text) !important;
  border-color: color-mix(in srgb, var(--score-accent) 42%, var(--score-ink)) !important;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--score-card-bg-soft) 80%, var(--score-accent) 20%), var(--score-card-bg-soft)) !important;
}

body.scoreboard-display-body[data-theme] .scoreboard-map-wrap,
body.scoreboard-display-body[data-theme] .scoreboard-leaflet-map,
body.scoreboard-display-body[data-theme] .scoreboard-map-center .leaflet-container,
body.scoreboard-display-body[data-theme] .map-background {
  background:
    radial-gradient(circle at 50% 24%, color-mix(in srgb, var(--score-accent) 12%, transparent), transparent 40%),
    color-mix(in srgb, var(--score-card-bg) 74%, #000000) !important;
  fill: color-mix(in srgb, var(--score-card-bg) 74%, #000000) !important;
}

/* Phase 35D.2 — Haunted DLC scoreboard treatment.
   Uses real background art and the supplied graveyard card silhouette instead
   of procedural placeholder shapes. Cosmetic only. */
body.scoreboard-display-body[data-theme="haunted"] {
  --score-ink: #050507;
  --score-text: #f0edf4;
  --score-muted: #b9b1c3;
  --score-accent: #cdb7e8;
  --score-accent-2: #8e63c7;
  --score-border: rgba(201, 194, 215, 0.54);
  --score-border-strong: rgba(205, 183, 232, 0.88);
  --score-card-bg: rgba(16, 15, 21, 0.92);
  --score-card-bg-soft: rgba(34, 31, 42, 0.84);
  --score-red: #9e4a64;
  --score-blue: #c8c6d6;
  background:
    linear-gradient(180deg, rgba(5, 5, 7, 0.16), rgba(5, 5, 7, 0.82)),
    url("/assets/themes/haunted/haunted_desktop_background.png?v=35D8") center center / cover fixed no-repeat,
    #050507 !important;
}

body.scoreboard-display-body[data-theme="haunted"] .ghost-hunt-board,
body.scoreboard-display-body[data-theme="haunted"] .zombie-extraction-board,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-content {
  --score-text: #f0edf4;
  --score-muted: #b9b1c3;
  --score-accent: #cdb7e8;
  --score-accent-2: #8e63c7;
  --score-border: rgba(201, 194, 215, 0.54);
  --score-border-strong: rgba(205, 183, 232, 0.88);
  --score-card-bg: rgba(16, 15, 21, 0.92);
  --score-card-bg-soft: rgba(34, 31, 42, 0.84);
}

body.scoreboard-display-body[data-theme="haunted"] .scoreboard-display,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-content {
  position: relative;
  z-index: 1;
}

body.scoreboard-display-body[data-theme="haunted"] .score-box-card,
body.scoreboard-display-body[data-theme="haunted"] .round-status-card,
body.scoreboard-display-body[data-theme="haunted"] .round-timer-box,
body.scoreboard-display-body[data-theme="haunted"] .team-roster-card,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-map-card,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-event-strip,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-events-card,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-display-header,
body.scoreboard-display-body[data-theme="haunted"] .team-score-panel,
body.scoreboard-display-body[data-theme="haunted"] .generic-scoreboard-header,
body.scoreboard-display-body[data-theme="haunted"] .generic-team-card,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-controls-panel,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-game-notification {
  position: relative;
  overflow: hidden;
  border-color: rgba(5, 5, 7, 0.94) !important;
  box-shadow: 7px 7px 0 rgba(5, 5, 7, 0.82), 0 0 34px rgba(142, 99, 199, 0.20) !important;
  background: linear-gradient(180deg, rgba(36, 33, 43, 0.94), rgba(10, 9, 13, 0.96)) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .score-box-card::after,
body.scoreboard-display-body[data-theme="haunted"] .team-roster-card::after,
body.scoreboard-display-body[data-theme="haunted"] .generic-team-card::after,
body.scoreboard-display-body[data-theme="haunted"] .round-status-card::after {
  content: "";
  position: absolute;
  inset: auto 12px 8px 12px;
  height: 38%;
  pointer-events: none;
  opacity: 0.14;
  background: url("/assets/themes/haunted/haunted_card_graveyard_silhouette.png?v=35D8") center bottom / 100% 100% no-repeat;
}

body.scoreboard-display-body[data-theme="haunted"] .scoreboard-display-header h1,
body.scoreboard-display-body[data-theme="haunted"] .generic-scoreboard-header h1 {
  color: #f0edf4 !important;
  text-shadow: 0 0 24px rgba(142, 99, 199, 0.38);
}

body.scoreboard-display-body[data-theme="haunted"] .round-timer-box,
body.scoreboard-display-body[data-theme="haunted"] .generic-scoreboard-clock {
  color: #f0edf4 !important;
  text-shadow: 0 0 18px rgba(205, 183, 232, 0.34);
}

/* Phase 35D.7 — Haunted scoreboard control/button lock. */
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-control-button,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-controls-close,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-controls-gear,
body.scoreboard-display-body[data-theme="haunted"] button,
body.scoreboard-display-body[data-theme="haunted"] .button-link {
  border-color: #050507 !important;
  background:
    linear-gradient(180deg, rgba(240, 237, 244, 0.18), transparent 42%),
    linear-gradient(180deg, #8e63c7, #3a244f) !important;
  color: #f7f3fb !important;
  text-shadow: none !important;
  box-shadow: 5px 5px 0 rgba(5, 5, 7, 0.88), 0 0 22px rgba(142, 99, 199, 0.24) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .scoreboard-control-button:hover,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-controls-close:hover,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-controls-gear:hover,
body.scoreboard-display-body[data-theme="haunted"] button:hover,
body.scoreboard-display-body[data-theme="haunted"] .button-link:hover {
  background:
    linear-gradient(180deg, rgba(240, 237, 244, 0.28), transparent 42%),
    linear-gradient(180deg, #a37ada, #432b5c) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .scoreboard-control-button.stop,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-control-button.warning,
body.scoreboard-display-body[data-theme="haunted"] .scoreboard-controls-message.error {
  background: linear-gradient(180deg, #9e4a64, #4f1f31) !important;
  color: #f7f3fb !important;
}



/* Phase 35D.7 — Haunted scoreboard no-brown sweep. */
body.scoreboard-display-body[data-theme="haunted"] :is(
  .score-box-card,
  .round-status-card,
  .round-status-shell,
  .round-timer-box,
  .team-roster-card,
  .team-score-panel,
  .team-score-box,
  .scoreboard-map-card,
  .scoreboard-events-card,
  .scoreboard-event-strip,
  .scoreboard-event-chip,
  .scoreboard-event-row,
  .scoreboard-controls-panel,
  .scoreboard-game-notification,
  .generic-scoreboard-header,
  .generic-team-card,
  .team-player-row,
  .roster-player-card,
  .zombie-live-map-status,
  .zombie-survivor-card,
  .ghost-hunter-card,
  .ghost-journal-card
) {
  color: #f0edf4 !important;
  border-color: rgba(201, 194, 215, 0.58) !important;
  background: linear-gradient(180deg, rgba(40, 37, 48, 0.96), rgba(12, 11, 16, 0.97)) !important;
  box-shadow: 5px 5px 0 rgba(5, 5, 7, 0.78), 0 0 22px rgba(142, 99, 199, 0.16) !important;
}

body.scoreboard-display-body[data-theme="haunted"] :is(
  button,
  .button-link,
  .scoreboard-control-button,
  .scoreboard-controls-close,
  .scoreboard-controls-gear
) {
  color: #f7f3fb !important;
  border: 2px solid #050507 !important;
  background:
    linear-gradient(180deg, rgba(240, 237, 244, 0.18), transparent 42%),
    linear-gradient(180deg, #8e63c7, #3a244f) !important;
  box-shadow: 5px 5px 0 rgba(5, 5, 7, 0.88), 0 0 22px rgba(142, 99, 199, 0.24) !important;
  text-shadow: none !important;
}

body.scoreboard-display-body[data-theme="haunted"] :is(h1, h2, h3, .score, .generic-team-score, .score-box-value, .round-status-primary) {
  color: #cdb7e8 !important;
  text-shadow: 0 0 16px rgba(142, 99, 199, 0.28) !important;
}

body.scoreboard-display-body[data-theme="haunted"] :is(.muted, .score-box-meta, .round-status-secondary, .roster-player-stats, .team-player-status, .scoreboard-empty-list) {
  color: rgba(185, 177, 195, 0.94) !important;
}

/* Phase 36D.25 — Haunted Zombie Tag scoreboard polish.
   Cosmetic only: keeps Zombie Tag role colors while making the big-screen
   scoreboard feel like the selected Haunted DLC theme. */
body.scoreboard-display-body[data-theme="haunted"] {
  --haunted-fog: rgba(205, 183, 232, 0.10);
  --haunted-fog-strong: rgba(142, 99, 199, 0.20);
  --haunted-panel-top: rgba(46, 42, 57, 0.96);
  --haunted-panel-bottom: rgba(7, 6, 10, 0.98);
  --zombie-tag-survivor: #54d979;
  --zombie-tag-zombie: #ff4c4c;
}

body.scoreboard-display-body[data-theme="haunted"]::before,
body.scoreboard-display-body[data-theme="haunted"]::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

body.scoreboard-display-body[data-theme="haunted"]::before {
  background:
    radial-gradient(circle at 18% 14%, rgba(205, 183, 232, 0.16), transparent 30%),
    radial-gradient(circle at 86% 10%, rgba(158, 74, 100, 0.14), transparent 28%),
    linear-gradient(180deg, rgba(5, 5, 7, 0.16), rgba(5, 5, 7, 0.52) 42%, rgba(5, 5, 7, 0.86));
}

body.scoreboard-display-body[data-theme="haunted"]::after {
  opacity: 0.22;
  background:
    url("/assets/themes/haunted/haunted_card_graveyard_silhouette.png?v=36D25") left bottom / 38% 28% no-repeat,
    url("/assets/themes/haunted/haunted_card_graveyard_silhouette.png?v=36D25") right bottom / 42% 30% no-repeat;
  filter: drop-shadow(0 0 26px rgba(142, 99, 199, 0.22));
}

body.scoreboard-display-body[data-theme="haunted"] .scoreboard-display {
  position: relative;
  z-index: 1;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 28px;
  padding: clamp(2px, 0.25vw, 5px);
  --score-text: #f0edf4;
  --score-muted: #c8c1d0;
  --score-accent: #cdb7e8;
  --score-accent-2: #8e63c7;
  --score-card-bg: rgba(17, 15, 23, 0.90);
  --score-card-bg-soft: rgba(38, 34, 48, 0.84);
  --score-border: rgba(205, 183, 232, 0.54);
  --score-border-strong: rgba(205, 183, 232, 0.88);
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 0%, rgba(205, 183, 232, 0.14), transparent 36%),
    radial-gradient(circle at 8% 78%, rgba(84, 217, 121, 0.09), transparent 28%),
    radial-gradient(circle at 92% 78%, rgba(255, 76, 76, 0.11), transparent 30%),
    linear-gradient(180deg, rgba(8, 7, 12, 0.12), rgba(8, 7, 12, 0.40));
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board > * {
  position: relative;
  z-index: 1;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board :is(
  .score-box-card,
  .round-status-card,
  .round-timer-box,
  .team-roster-card,
  .scoreboard-map-card,
  .scoreboard-event-strip,
  .zombie-live-map-status,
  .scoreboard-event-chip,
  .roster-player-card
) {
  color: #f0edf4 !important;
  background:
    linear-gradient(180deg, rgba(240, 237, 244, 0.045), transparent 34%),
    radial-gradient(circle at 50% 100%, rgba(205, 183, 232, 0.10), transparent 52%),
    linear-gradient(180deg, var(--haunted-panel-top), var(--haunted-panel-bottom)) !important;
  border-color: rgba(205, 183, 232, 0.64) !important;
  box-shadow:
    5px 5px 0 rgba(5, 5, 7, 0.88),
    0 0 26px rgba(142, 99, 199, 0.20),
    inset 0 0 0 1px rgba(240, 237, 244, 0.045) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board :is(
  .score-box-card,
  .round-status-card,
  .team-roster-card,
  .scoreboard-map-card
)::after {
  opacity: 0.20;
  background: url("/assets/themes/haunted/haunted_card_graveyard_silhouette.png?v=36D25") center bottom / 100% 100% no-repeat;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .round-status-card {
  border-color: rgba(205, 183, 232, 0.76) !important;
  background:
    linear-gradient(90deg, rgba(84, 217, 121, 0.09), transparent 24%, transparent 76%, rgba(255, 76, 76, 0.10)),
    linear-gradient(180deg, rgba(52, 47, 65, 0.98), rgba(11, 10, 16, 0.99)) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .round-status-primary {
  color: #f0edf4 !important;
  text-shadow: 0 0 22px rgba(205, 183, 232, 0.36) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .round-status-secondary,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .scoreboard-event-strip-label {
  color: #cdb7e8 !important;
  text-shadow: 0 0 16px rgba(142, 99, 199, 0.36) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .round-timer-box {
  color: #f0edf4 !important;
  background:
    linear-gradient(180deg, rgba(205, 183, 232, 0.20), rgba(58, 36, 79, 0.30)),
    rgba(8, 7, 12, 0.96) !important;
  border-color: rgba(205, 183, 232, 0.90) !important;
  text-shadow: 0 0 18px rgba(205, 183, 232, 0.44) !important;
  box-shadow: 4px 4px 0 rgba(5, 5, 7, 0.92), 0 0 28px rgba(142, 99, 199, 0.34) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .score-box-zombie-survivors,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .team-roster-zombie-survivors {
  border-color: color-mix(in srgb, var(--zombie-tag-survivor) 64%, #cdb7e8) !important;
  background:
    linear-gradient(180deg, rgba(84, 217, 121, 0.11), transparent 42%),
    linear-gradient(180deg, rgba(35, 43, 41, 0.97), rgba(7, 10, 9, 0.98)) !important;
  box-shadow: 5px 5px 0 rgba(5, 5, 7, 0.88), 0 0 24px rgba(84, 217, 121, 0.16) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .score-box-zombie-zombies,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .team-roster-zombie-zombies {
  border-color: color-mix(in srgb, var(--zombie-tag-zombie) 66%, #cdb7e8) !important;
  background:
    linear-gradient(180deg, rgba(255, 76, 76, 0.13), transparent 42%),
    linear-gradient(180deg, rgba(45, 30, 39, 0.97), rgba(12, 7, 10, 0.98)) !important;
  box-shadow: 5px 5px 0 rgba(5, 5, 7, 0.88), 0 0 24px rgba(255, 76, 76, 0.17) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .score-box-zombie-survivors .score-box-value,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .roster-player-card.survivor-player :is(.roster-player-name, .roster-player-status) {
  color: var(--zombie-tag-survivor) !important;
  text-shadow: 0 0 14px rgba(84, 217, 121, 0.34) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .score-box-zombie-zombies .score-box-value,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .roster-player-card.zombie-player :is(.roster-player-name, .roster-player-status) {
  color: var(--zombie-tag-zombie) !important;
  text-shadow: 0 0 14px rgba(255, 76, 76, 0.34) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .score-box-label {
  color: #f0edf4 !important;
  letter-spacing: 0.02em;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .score-box-meta,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .roster-player-stats,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .scoreboard-event-chip {
  color: rgba(216, 209, 226, 0.94) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .roster-player-card.survivor-player {
  border-color: color-mix(in srgb, var(--zombie-tag-survivor) 54%, rgba(205, 183, 232, 0.34)) !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(84, 217, 121, 0.24), transparent 48%),
    rgba(10, 14, 12, 0.72) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .roster-player-card.zombie-player {
  border-color: color-mix(in srgb, var(--zombie-tag-zombie) 56%, rgba(205, 183, 232, 0.32)) !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(255, 76, 76, 0.26), transparent 48%),
    rgba(16, 9, 12, 0.72) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .scoreboard-map-card {
  background:
    linear-gradient(180deg, rgba(205, 183, 232, 0.06), rgba(5, 5, 7, 0.24)),
    linear-gradient(180deg, rgba(20, 18, 26, 0.96), rgba(6, 6, 9, 0.98)) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .scoreboard-map-wrap,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .scoreboard-leaflet-map,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .scoreboard-map-center .leaflet-container {
  border-color: rgba(5, 5, 7, 0.96) !important;
  background:
    radial-gradient(circle at 50% 24%, rgba(205, 183, 232, 0.12), transparent 40%),
    rgba(6, 6, 9, 0.88) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .scoreboard-map-center .leaflet-tile-pane {
  opacity: 0.74;
  filter: grayscale(0.68) sepia(0.22) hue-rotate(225deg) saturate(0.78) brightness(0.58) contrast(1.12);
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .zombie-live-map-status {
  border-style: solid !important;
  border-color: rgba(205, 183, 232, 0.62) !important;
  background:
    linear-gradient(90deg, rgba(84, 217, 121, 0.08), rgba(142, 99, 199, 0.12), rgba(255, 76, 76, 0.09)),
    rgba(8, 7, 12, 0.90) !important;
  color: #f0edf4 !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .scoreboard-event-strip {
  background:
    linear-gradient(90deg, rgba(205, 183, 232, 0.08), rgba(12, 11, 16, 0.96) 18%, rgba(12, 11, 16, 0.96) 82%, rgba(158, 74, 100, 0.09)) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .scoreboard-event-chip strong {
  color: #cdb7e8 !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .leaflet-player-marker.survivor-player span {
  background: var(--zombie-tag-survivor) !important;
  border-color: #f0edf4 !important;
  box-shadow: 0 0 16px rgba(84, 217, 121, 0.86), 0 0 0 4px rgba(5, 5, 7, 0.36) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .leaflet-player-marker.zombie-player span {
  background: var(--zombie-tag-zombie) !important;
  border-color: #f0edf4 !important;
  box-shadow: 0 0 16px rgba(255, 76, 76, 0.88), 0 0 0 4px rgba(5, 5, 7, 0.36) !important;
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .leaflet-player-marker b,
body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .leaflet-objective-marker b {
  color: #f0edf4;
  background: rgba(8, 7, 12, 0.86);
  border-color: rgba(205, 183, 232, 0.40);
  box-shadow: 0 0 14px rgba(142, 99, 199, 0.20);
}

body.scoreboard-display-body[data-theme="haunted"] .zombie-tag-board .leaflet-objective-marker.zombie-tag-crate span {
  color: #100c14;
  background: #cdb7e8 !important;
  border-color: #f0edf4 !important;
  box-shadow: 0 0 16px rgba(205, 183, 232, 0.70) !important;
}


/* Phase 36D.25 — selected-theme scoreboard fix.
   The screenshot showed Zombie Tag mode chrome winning over the selected Haunted
   DLC theme. These rules are intentionally stronger and keyed to both the
   selected theme and the scoreboard mode so the Haunted look is obvious while
   role colors remain survivor-green / zombie-red. */
body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"],
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] {
  background:
    radial-gradient(circle at 50% 4%, rgba(205, 183, 232, 0.22), transparent 32%),
    radial-gradient(circle at 8% 72%, rgba(84, 217, 121, 0.12), transparent 30%),
    radial-gradient(circle at 92% 72%, rgba(255, 76, 76, 0.14), transparent 32%),
    linear-gradient(180deg, rgba(5, 5, 7, 0.28), rgba(5, 5, 7, 0.88)),
    url("/assets/themes/haunted/haunted_desktop_background.png?v=36D25") center center / cover fixed no-repeat,
    #050507 !important;
}

body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] .zombie-tag-board,
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] .zombie-tag-board {
  background:
    linear-gradient(180deg, rgba(13, 11, 19, 0.46), rgba(5, 5, 7, 0.18)),
    radial-gradient(circle at 50% 0%, rgba(205, 183, 232, 0.18), transparent 36%) !important;
}

body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] :is(.round-status-card, .round-timer-box, .scoreboard-map-card, .scoreboard-event-strip),
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] :is(.round-status-card, .round-timer-box, .scoreboard-map-card, .scoreboard-event-strip) {
  border-color: rgba(205, 183, 232, 0.82) !important;
  background:
    linear-gradient(180deg, rgba(240, 237, 244, 0.075), transparent 34%),
    linear-gradient(180deg, rgba(45, 40, 58, 0.98), rgba(8, 7, 12, 0.99)) !important;
  box-shadow:
    6px 6px 0 rgba(5, 5, 7, 0.94),
    0 0 34px rgba(142, 99, 199, 0.30),
    inset 0 0 0 1px rgba(240, 237, 244, 0.06) !important;
}

body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] :is(.score-box-card, .team-roster-card),
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] :is(.score-box-card, .team-roster-card) {
  background:
    linear-gradient(180deg, rgba(240, 237, 244, 0.05), transparent 30%),
    url("/assets/themes/haunted/haunted_card_graveyard_silhouette.png?v=36D25") center bottom / 100% 42% no-repeat,
    linear-gradient(180deg, rgba(38, 34, 48, 0.98), rgba(7, 6, 10, 0.99)) !important;
  box-shadow:
    6px 6px 0 rgba(5, 5, 7, 0.94),
    0 0 30px rgba(142, 99, 199, 0.26) !important;
}

body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] .score-box-zombie-survivors,
body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] .team-roster-zombie-survivors,
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] .score-box-zombie-survivors,
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] .team-roster-zombie-survivors {
  border-color: rgba(84, 217, 121, 0.82) !important;
  box-shadow: 6px 6px 0 rgba(5, 5, 7, 0.94), 0 0 28px rgba(84, 217, 121, 0.20) !important;
}

body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] .score-box-zombie-zombies,
body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] .team-roster-zombie-zombies,
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] .score-box-zombie-zombies,
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] .team-roster-zombie-zombies {
  border-color: rgba(255, 76, 76, 0.84) !important;
  box-shadow: 6px 6px 0 rgba(5, 5, 7, 0.94), 0 0 28px rgba(255, 76, 76, 0.22) !important;
}

body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] .round-status-primary,
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] .round-status-primary {
  color: #f0edf4 !important;
  text-shadow: 0 0 18px rgba(205, 183, 232, 0.42), 0 3px 0 rgba(5, 5, 7, 0.82) !important;
}

body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] .round-status-secondary,
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] .round-status-secondary,
body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] .zombie-live-map-status,
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] .zombie-live-map-status {
  color: #cdb7e8 !important;
}

body.scoreboard-display-body[data-theme="haunted"][data-scoreboard-mode="zombie_tag"] .scoreboard-map-center .leaflet-tile-pane,
body.scoreboard-display-body.theme-haunted[data-scoreboard-mode="zombie_tag"] .scoreboard-map-center .leaflet-tile-pane {
  opacity: 0.62 !important;
  filter: grayscale(0.82) sepia(0.34) hue-rotate(226deg) saturate(0.72) brightness(0.48) contrast(1.20) !important;
}

/* Phase 36D.25 — hard Haunted scoreboard application.
   Uses an explicit class from scoreboard.js so this still applies if a browser
   has stale data-theme attributes while the selected display theme is Haunted. */
body.scoreboard-display-body.scoreboard-theme-haunted-active[data-scoreboard-mode="zombie_tag"],
html.scoreboard-theme-haunted-active body.scoreboard-display-body[data-scoreboard-mode="zombie_tag"] {
  background:
    radial-gradient(circle at 50% 5%, rgba(205, 183, 232, 0.30), transparent 30%),
    radial-gradient(circle at 6% 80%, rgba(84, 217, 121, 0.16), transparent 28%),
    radial-gradient(circle at 94% 78%, rgba(255, 76, 76, 0.18), transparent 30%),
    linear-gradient(180deg, rgba(5, 5, 7, 0.18), rgba(5, 5, 7, 0.76)),
    url("/assets/themes/haunted/haunted_desktop_background.png?v=36D25") center center / cover fixed no-repeat,
    #050507 !important;
}

body.scoreboard-display-body.scoreboard-theme-haunted-active[data-scoreboard-mode="zombie_tag"] .zombie-tag-board :is(.score-box-card, .team-roster-card, .round-status-card, .round-timer-box, .scoreboard-map-card, .scoreboard-event-strip),
html.scoreboard-theme-haunted-active body.scoreboard-display-body[data-scoreboard-mode="zombie_tag"] .zombie-tag-board :is(.score-box-card, .team-roster-card, .round-status-card, .round-timer-box, .scoreboard-map-card, .scoreboard-event-strip) {
  border-color: rgba(205, 183, 232, 0.90) !important;
  background:
    linear-gradient(180deg, rgba(240, 237, 244, 0.075), transparent 32%),
    url("/assets/themes/haunted/haunted_card_graveyard_silhouette.png?v=36D25") center bottom / 100% 38% no-repeat,
    linear-gradient(180deg, rgba(44, 38, 58, 0.98), rgba(6, 5, 9, 0.99)) !important;
  box-shadow:
    7px 7px 0 rgba(5, 5, 7, 0.96),
    0 0 36px rgba(142, 99, 199, 0.30),
    inset 0 0 0 1px rgba(240, 237, 244, 0.08) !important;
}

body.scoreboard-display-body.scoreboard-theme-haunted-active[data-scoreboard-mode="zombie_tag"] .zombie-tag-board .round-status-primary,
html.scoreboard-theme-haunted-active body.scoreboard-display-body[data-scoreboard-mode="zombie_tag"] .zombie-tag-board .round-status-primary,
body.scoreboard-display-body.scoreboard-theme-haunted-active[data-scoreboard-mode="zombie_tag"] .zombie-tag-board .round-timer-box,
html.scoreboard-theme-haunted-active body.scoreboard-display-body[data-scoreboard-mode="zombie_tag"] .zombie-tag-board .round-timer-box {
  color: #f7f3fb !important;
  text-shadow: 0 0 20px rgba(205, 183, 232, 0.50), 0 3px 0 rgba(5, 5, 7, 0.92) !important;
}

body.scoreboard-display-body.scoreboard-theme-haunted-active[data-scoreboard-mode="zombie_tag"] .zombie-tag-board .scoreboard-map-center .leaflet-tile-pane,
html.scoreboard-theme-haunted-active body.scoreboard-display-body[data-scoreboard-mode="zombie_tag"] .zombie-tag-board .scoreboard-map-center .leaflet-tile-pane {
  opacity: 0.56 !important;
  filter: grayscale(0.88) sepia(0.40) hue-rotate(226deg) saturate(0.68) brightness(0.42) contrast(1.24) !important;
}
