/* ─── Reset ─────────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --blue:    #00aaff;
  --green:   #00e87a;
  --orange:  #ffaa00;
  --red:     #ff2200;
  --dim:     rgba(0, 0, 0, 0.55);
  --border:  rgba(0, 180, 255, 0.25);
  --text:    rgba(180, 220, 255, 0.9);
  --font:    'Courier New', Courier, monospace;
}

html, body {
  width: 100%; height: 100%;
  background: #000;
  overflow: hidden;
  font-family: var(--font);
  color: var(--text);
  user-select: none;
}

/* ─── Canvas ─────────────────────────────────────────────────────────────────── */
#canvas {
  display: block;
  width: 100%;
  height: 100%;
  cursor: none; /* cursor substituído pelo indicador de mouse no HUD */
}

/* ─── Tela de carregamento ───────────────────────────────────────────────────── */
#loading-screen {
  position: fixed; inset: 0;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
}

.loading-box {
  text-align: center;
  padding: 40px 60px;
  border: 1px solid var(--border);
  background: rgba(0, 10, 30, 0.9);
}

.loading-box h1 {
  font-size: 2.8rem;
  letter-spacing: 0.35em;
  color: var(--blue);
  text-shadow: 0 0 20px var(--blue);
  margin-bottom: 8px;
}

.loading-box .subtitle {
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  color: rgba(100, 160, 220, 0.6);
  margin-bottom: 32px;
}

.progress-wrap {
  width: 320px;
  height: 3px;
  background: rgba(0, 150, 255, 0.15);
  border: 1px solid rgba(0, 150, 255, 0.3);
  margin: 0 auto 16px;
}

.progress-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #0055ff, #00aaff);
  transition: width 0.3s ease;
  box-shadow: 0 0 8px var(--blue);
}

#loading-status {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: rgba(100, 160, 220, 0.7);
}

/* ─── HUD ────────────────────────────────────────────────────────────────────── */
#hud {
  position: fixed; inset: 0;
  pointer-events: none;
  z-index: 10;
}

.hidden { display: none !important; }

/* Vitals — canto superior esquerdo */
#hud-vitals {
  position: absolute;
  top: 20px; left: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.vital-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.vital-row label {
  width: 54px;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  color: rgba(130, 190, 255, 0.7);
  text-align: right;
}

.bar-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
}

.bar-wrap span {
  font-size: 0.65rem;
  color: rgba(180, 220, 255, 0.8);
  min-width: 28px;
  text-align: right;
}

.bar {
  width: 150px;
  height: 7px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(0, 150, 255, 0.25);
  transition: width 0.15s ease;
}

.hull-bar          { background: linear-gradient(90deg,#00e87a,#00bb55); }
.shield-bar        { background: linear-gradient(90deg,#0088ff,#0055cc); }
.enemy-bar         { background: linear-gradient(90deg,#ff5500,#ff2200); }
.enemy-shield-bar  { background: linear-gradient(90deg,#ff2266,#aa0044); }

/* Velocidade — topo centro */
#hud-center-top {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
}

#hud-speed {
  font-size: 1.5rem;
  color: rgba(160, 210, 255, 0.85);
  letter-spacing: 0.04em;
}

#hud-speed small {
  font-size: 0.55rem;
  letter-spacing: 0.15em;
  color: rgba(100, 160, 220, 0.6);
}

/* Info do alvo — canto superior direito */
#hud-target-info {
  position: absolute;
  top: 20px; right: 20px;
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 160px;
}

#target-name {
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  color: rgba(255, 140, 80, 0.9);
}

#target-dist {
  font-size: 0.6rem;
  color: rgba(180, 180, 180, 0.7);
}

#target-hp-row .vital-row label,
#target-shield-row .vital-row label,
#hud-target-info label {
  color: rgba(255, 140, 80, 0.7);
  text-align: left;
  width: auto;
  font-size: 0.55rem;
  letter-spacing: 0.12em;
}

#target-hp-row .bar,
#target-shield-row .bar {
  width: 100px;
}

#hud-target-info .bar-wrap {
  justify-content: flex-end;
}

#hud-target-info .bar-val {
  font-size: 0.6rem;
  color: rgba(220, 220, 220, 0.75);
  min-width: 34px;
  text-align: right;
}

/* Destaque quando o target está TRAVADO via Tab */
#hud-target-info.locked #target-name {
  color: #ff3322;
  text-shadow: 0 0 4px rgba(255, 40, 20, 0.6);
}

/* ──────────────────────────────────────────────────────────────────────────
 * Floating target nameplate — projetado do 3D pro 2D via Vector3.Project
 * Fica perto do target na tela (estilo Taikodom / MMO nameplate)
 * ────────────────────────────────────────────────────────────────────────── */
#target-nameplate {
  position: absolute;
  top: 0; left: 0;
  transform: translate(-50%, -100%);      /* anchor = centro-inferior do box */
  padding: 4px 7px 3px 7px;
  min-width: 110px;
  text-align: center;
  pointer-events: none;
  font-family: 'Rajdhani', sans-serif;
  background: rgba(20, 5, 10, 0.55);
  border: 1px solid rgba(255, 70, 50, 0.6);
  box-shadow: 0 0 8px rgba(255, 40, 20, 0.35);
  backdrop-filter: blur(2px);
  transition: opacity 0.1s linear;
}

#target-nameplate.hidden { opacity: 0; display: none; }

#target-nameplate.locked {
  border-color: #ff3322;
  box-shadow: 0 0 14px rgba(255, 40, 20, 0.8);
}

#target-nameplate .np-name {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: rgba(255, 120, 90, 0.95);
  margin-bottom: 3px;
}

#target-nameplate.locked .np-name {
  color: #ff3322;
  text-shadow: 0 0 5px rgba(255, 40, 20, 0.75);
}

#target-nameplate .np-bars {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 3px;
}

#target-nameplate .np-bar-wrap {
  width: 100%;
  height: 3px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 70, 50, 0.3);
}

#target-nameplate .np-bar {
  height: 100%;
  transition: width 0.12s ease;
}

#target-nameplate .np-hp     { background: linear-gradient(90deg, #ff5500, #ff2200); }
#target-nameplate .np-shield { background: linear-gradient(90deg, #ff2266, #aa0044); }

#target-nameplate .np-dist {
  font-size: 0.55rem;
  letter-spacing: 0.1em;
  color: rgba(200, 180, 180, 0.75);
}

/* ──────────────────────────────────────────────────────────────────────────
 * Lead indicator — ballistic reticle (War Thunder style)
 * Mostra ONDE apontar pra acertar um target em movimento, considerando
 * velocidade do projétil vs velocidade do alvo.
 * ────────────────────────────────────────────────────────────────────────── */
#target-lead {
  position: absolute;
  top: 0; left: 0;
  width: 36px;
  height: 36px;
  transform: translate(-50%, -50%);
  pointer-events: none;
  /* A animação do pulse chama atenção */
  animation: leadPulse 1.2s ease-in-out infinite;
}

#target-lead.hidden { display: none; }

#target-lead .lead-circle {
  position: absolute;
  inset: 0;
  border: 1.5px solid rgba(255, 220, 80, 0.9);
  border-radius: 50%;
  box-shadow:
    0 0 6px rgba(255, 200, 60, 0.7),
    inset 0 0 4px rgba(255, 220, 100, 0.3);
}

#target-lead .lead-cross {
  position: absolute;
  background: rgba(255, 220, 80, 0.85);
}

#target-lead .lead-h {
  top: 50%;
  left: -6px;
  right: -6px;
  height: 1px;
  transform: translateY(-50%);
}

#target-lead .lead-v {
  left: 50%;
  top: -6px;
  bottom: -6px;
  width: 1px;
  transform: translateX(-50%);
}

@keyframes leadPulse {
  0%, 100% { opacity: 0.85; }
  50%      { opacity: 1;    }
}

/* ──────────────────────────────────────────────────────────────────────────
 * Target list — painel lateral esquerdo com contatos (enemies) em range.
 * Cada linha é clicável → seleciona como alvo lockado.
 * ────────────────────────────────────────────────────────────────────────── */
#target-list {
  position: absolute;
  top: 100px;
  left: 20px;
  width: 180px;
  max-height: 50vh;
  background: rgba(10, 10, 20, 0.55);
  border: 1px solid rgba(255, 70, 50, 0.35);
  font-family: 'Rajdhani', sans-serif;
  pointer-events: auto;
  user-select: none;
  backdrop-filter: blur(2px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

#target-list .tl-header {
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  padding: 5px 8px;
  color: rgba(255, 120, 90, 0.8);
  border-bottom: 1px solid rgba(255, 70, 50, 0.25);
  background: rgba(255, 40, 20, 0.08);
}

#target-list ul {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  flex: 1;
}

#target-list li {
  padding: 4px 8px;
  font-size: 0.6rem;
  color: rgba(220, 200, 200, 0.8);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255, 70, 50, 0.08);
  transition: background 0.08s linear;
}

#target-list li:hover {
  background: rgba(255, 60, 40, 0.18);
  color: #fff;
}

#target-list li.locked {
  background: rgba(255, 40, 20, 0.25);
  border-left: 2px solid #ff3322;
  color: #ff6644;
}

#target-list li .tl-name {
  flex: 1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

#target-list li .tl-dist {
  font-size: 0.55rem;
  color: rgba(180, 180, 180, 0.6);
  margin-left: 6px;
}

#target-list li.dead {
  opacity: 0.3;
  text-decoration: line-through;
  pointer-events: none;
}

/* Controles — canto inferior esquerdo */
#hud-controls {
  position: absolute;
  bottom: 20px; left: 20px;
  font-size: 0.6rem;
  letter-spacing: 0.06em;
  color: rgba(100, 150, 200, 0.55);
  line-height: 1.8;
}

#hud-controls span {
  color: rgba(0, 180, 255, 0.75);
  font-weight: bold;
}

/* Status Iris — canto inferior direito */
#hud-drone {
  position: absolute;
  bottom: 20px; right: 20px;
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
}

.drone-label {
  color: rgba(0, 255, 170, 0.8);
  font-size: 0.7rem;
}

#drone-status {
  color: rgba(0, 255, 170, 0.55);
  font-size: 0.58rem;
}

/* Indicador de mouse (substitui cursor do sistema) */
#mouse-indicator {
  position: fixed;
  width: 16px; height: 16px;
  border: 1px solid rgba(0, 200, 255, 0.85);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 20;
  transition: border-color 0.08s, opacity 0.08s;
  box-shadow: 0 0 6px rgba(0, 200, 255, 0.3);
}
/* Argola de seleção — raio definido via CSS variable no HUD.update() */
#mouse-indicator::before {
  content: '';
  position: absolute;
  width: var(--select-ring, 160px);
  height: var(--select-ring, 160px);
  border: 1px solid rgba(0, 200, 255, 0.15);
  border-radius: 50%;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  transition: border-color 0.15s, width 0.15s, height 0.15s;
}
/* Highlight quando tem target lockado */
#mouse-indicator.has-target::before {
  border-color: rgba(255, 100, 50, 0.35);
  box-shadow: 0 0 8px rgba(255, 100, 50, 0.15);
}
/* Dentro da dead zone: indicador esmaece para mostrar que a nave não gira */
#mouse-indicator.deadzone {
  border-color: rgba(80, 140, 200, 0.35);
  box-shadow: none;
}

#mouse-indicator::after {
  content: '';
  position: absolute;
  width: 3px; height: 3px;
  background: rgba(0, 200, 255, 0.9);
  border-radius: 50%;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  transition: background 0.08s;
}
#mouse-indicator.deadzone::after {
  background: rgba(80, 140, 200, 0.35);
}

/* Throttle — barra lateral esquerda */
#hud-throttle {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.throttle-label {
  font-size: 0.52rem;
  letter-spacing: 0.12em;
  color: rgba(100, 160, 220, 0.5);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  margin-bottom: 4px;
}

.throttle-track {
  width: 6px;
  height: 100px;
  background: rgba(0, 150, 255, 0.1);
  border: 1px solid rgba(0, 150, 255, 0.2);
  position: relative;
  display: flex;
  flex-direction: column-reverse;
}

.throttle-fill {
  width: 100%;
  background: linear-gradient(0deg, #0055ff, #00aaff);
  transition: height 0.1s ease;
  min-height: 0;
}

.throttle-zero {
  position: absolute;
  bottom: 0;
  left: -3px; right: -3px;
  height: 1px;
  background: rgba(0, 150, 255, 0.4);
}

/* Onda e abates */
#hud-wave-info {
  position: absolute;
  top: 110px; right: 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

#hud-wave {
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  color: rgba(0, 200, 255, 0.65);
}

#hud-kills {
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  color: rgba(255, 200, 80, 0.75);
}

/* Vinheta de dano */
#damage-overlay {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 16;
  opacity: 0;
  transition: opacity 0.05s linear;
}

/* Tela de morte */
#death-screen {
  position: fixed; inset: 0;
  background: rgba(0, 0, 0, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 50;
}

.death-inner {
  text-align: center;
  border: 1px solid rgba(255, 30, 0, 0.3);
  padding: 48px 80px;
  background: rgba(20, 0, 0, 0.6);
}

#death-screen h2 {
  font-size: 3rem;
  letter-spacing: 0.3em;
  color: var(--red);
  text-shadow: 0 0 30px var(--red);
  margin-bottom: 20px;
}

#death-screen p {
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: rgba(200, 150, 150, 0.7);
}

#death-screen p span {
  color: rgba(255, 200, 100, 0.9);
  font-weight: bold;
}

/* ============================================================
 * SLOT BAR (estilo DarkOrbit) — 10 slots numerados 1..0
 * ============================================================ */
#slot-bar {
  position: fixed;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 4px;
  padding: 6px;
  background: linear-gradient(180deg, rgba(20, 35, 50, 0.85), rgba(8, 15, 25, 0.95));
  border: 1px solid rgba(80, 130, 180, 0.6);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0, 100, 200, 0.3), inset 0 0 10px rgba(0, 0, 0, 0.6);
  z-index: 14;
  pointer-events: auto;
}

#slot-bar .slot {
  position: relative;
  width: 48px;
  height: 48px;
  background: rgba(0, 10, 20, 0.85);
  border: 1px solid rgba(60, 100, 140, 0.5);
  border-radius: 3px;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.1s, box-shadow 0.1s;
  background-position: center;
  background-size: 78%;
  background-repeat: no-repeat;
}

#slot-bar .slot::before {
  /* Tecla atalho no canto top-left */
  content: attr(data-key);
  position: absolute;
  top: 1px;
  left: 3px;
  font: bold 10px monospace;
  color: rgba(150, 200, 255, 0.85);
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.9);
  z-index: 2;
  pointer-events: none;
}

#slot-bar .slot:hover {
  border-color: rgba(120, 180, 230, 0.95);
  box-shadow: 0 0 8px rgba(80, 160, 230, 0.6), inset 0 0 6px rgba(80, 160, 230, 0.2);
}

#slot-bar .slot.active {
  border-color: rgba(80, 220, 100, 0.95);
  box-shadow: 0 0 10px rgba(80, 220, 100, 0.8), inset 0 0 8px rgba(80, 220, 100, 0.3);
}

#slot-bar .slot.firing {
  border-color: rgba(255, 200, 80, 1);
  box-shadow: 0 0 14px rgba(255, 200, 80, 0.9);
}

#slot-bar .slot .count {
  /* Contador de munição no canto bottom-right */
  position: absolute;
  bottom: 0;
  right: 2px;
  font: bold 10px monospace;
  color: #fff;
  text-shadow: 0 0 3px rgba(0, 0, 0, 1), 1px 1px 1px rgba(0, 0, 0, 0.9);
  z-index: 2;
  pointer-events: none;
}

#slot-bar .slot .cooldown {
  /* Overlay radial de cooldown (escurece o slot proporcional ao cd restante) */
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  pointer-events: none;
  z-index: 1;
  /* Animado via clip-path circular pelo JS */
}

#slot-bar .slot.empty {
  background-color: rgba(0, 0, 0, 0.6);
  border-color: rgba(40, 60, 80, 0.4);
  cursor: default;
}

#slot-bar .slot.empty:hover {
  border-color: rgba(40, 60, 80, 0.4);
  box-shadow: none;
}

/* ============================================================
 * ItemsControlMenu — SlotBar + PremiumBar + CategoryBar (DarkOrbit)
 * ============================================================ */
.icm-bar {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 4px;
  padding: 6px;
  background: linear-gradient(180deg, rgba(20, 35, 50, 0.85), rgba(8, 15, 25, 0.95));
  border: 1px solid rgba(80, 130, 180, 0.6);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0, 100, 200, 0.3), inset 0 0 10px rgba(0, 0, 0, 0.6);
  z-index: 14;
  pointer-events: auto;
}

#slot-bar { bottom: 18px; }
#premium-bar { bottom: 78px; opacity: 0.85; }

.icm-slot {
  position: relative;
  width: 50px;
  height: 50px;
  background-color: rgba(0, 10, 20, 0.85);
  border: 1px solid rgba(60, 100, 140, 0.5);
  border-radius: 3px;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.1s, box-shadow 0.1s, transform 0.05s;
  background-position: center;
  background-size: 78%;
  background-repeat: no-repeat;
}
.icm-slot:hover {
  border-color: rgba(120, 180, 230, 0.95);
  box-shadow: 0 0 8px rgba(80, 160, 230, 0.6);
}
.icm-slot:active { transform: scale(0.95); }
.icm-slot.selected {
  border-color: rgba(80, 220, 100, 0.95);
  box-shadow: 0 0 12px rgba(80, 220, 100, 0.8), inset 0 0 6px rgba(80, 220, 100, 0.3);
}
.icm-slot.cooling { filter: brightness(0.5); }
.icm-slot.unavailable { opacity: 0.35; cursor: not-allowed; }
.icm-slot.empty { background: rgba(0, 0, 0, 0.6); border-color: rgba(40, 60, 80, 0.4); cursor: default; }
.icm-slot.empty:hover { border-color: rgba(40, 60, 80, 0.4); box-shadow: none; }

.icm-key {
  position: absolute;
  top: 2px; left: 4px;
  font: bold 10px monospace;
  color: rgba(150, 200, 255, 0.9);
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.9);
  z-index: 2;
  pointer-events: none;
}
.icm-count {
  position: absolute;
  bottom: 2px; right: 3px;
  font: bold 11px monospace;
  color: #fff;
  text-shadow: 0 0 3px rgba(0, 0, 0, 1), 1px 1px 1px rgba(0, 0, 0, 0.9);
  z-index: 2;
  pointer-events: none;
}
.icm-cd {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: rgba(0, 0, 0, 0.7);
  z-index: 1;
  pointer-events: none;
}
.icm-bar-fill {
  position: absolute;
  bottom: 0; left: 0;
  height: 4px;
  background: linear-gradient(90deg, #4d9, #2c8);
  z-index: 2;
}
.icm-dots {
  position: absolute;
  bottom: 2px; left: 0; right: 0;
  display: flex;
  justify-content: center;
  gap: 2px;
  z-index: 2;
}
.icm-dot {
  width: 4px; height: 4px;
  border-radius: 50%;
  background: rgba(80, 80, 80, 0.6);
}
.icm-dot.on { background: rgba(80, 220, 100, 1); box-shadow: 0 0 3px rgba(80, 220, 100, 0.7); }

/* ─── CategoryBar lateral ───────────────────────────────── */
.icm-cat-bar {
  position: fixed;
  left: 12px;
  bottom: 90px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  z-index: 15;
  pointer-events: auto;
}
.icm-cat-btn {
  position: relative;
  width: 42px; height: 42px;
  background: linear-gradient(180deg, rgba(20, 35, 50, 0.9), rgba(8, 15, 25, 0.95));
  border: 1px solid rgba(80, 130, 180, 0.6);
  border-radius: 3px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; color: rgba(150, 200, 255, 0.9);
}
.icm-cat-btn:hover { border-color: rgba(120, 180, 230, 0.95); box-shadow: 0 0 6px rgba(80, 160, 230, 0.5); }
.icm-cat-btn.open { border-color: rgba(80, 220, 100, 0.95); box-shadow: 0 0 8px rgba(80, 220, 100, 0.7); }
.icm-cat-active {
  position: absolute;
  bottom: -4px; right: -4px;
  width: 18px; height: 18px;
  background-size: cover; background-position: center;
  border: 1px solid rgba(80, 220, 100, 0.9);
  border-radius: 2px;
  background-color: rgba(0, 10, 20, 0.85);
}

.icm-cat-panel {
  position: absolute;
  left: 50px;
  bottom: 0;
  width: 220px;
  max-height: 280px;
  overflow-y: auto;
  background: linear-gradient(180deg, rgba(20, 35, 50, 0.95), rgba(8, 15, 25, 0.98));
  border: 1px solid rgba(80, 130, 180, 0.7);
  border-radius: 4px;
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  box-shadow: 0 0 20px rgba(0, 100, 200, 0.4);
}
.icm-cat-panel.hidden { display: none; }

.icm-cat-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  background-color: rgba(0, 10, 20, 0.6);
  border: 1px solid rgba(60, 100, 140, 0.4);
  border-radius: 3px;
  cursor: pointer;
  background-position: 6px center;
  background-size: 28px 28px;
  background-repeat: no-repeat;
  padding-left: 42px;
  min-height: 36px;
  position: relative;
}
.icm-cat-item:hover { border-color: rgba(120, 180, 230, 0.95); }
.icm-cat-item.selected { border-color: rgba(80, 220, 100, 0.95); background-color: rgba(20, 60, 30, 0.7); }
.icm-cat-item .icm-label {
  font: bold 11px monospace;
  color: rgba(200, 230, 255, 0.95);
  flex: 1;
}
.icm-cat-item .icm-count {
  position: static;
  font: bold 11px monospace;
  color: rgba(255, 220, 80, 0.95);
  text-shadow: none;
}

/* ============================================================
 * FIRE OVERLAY — visível quando player atravessa nuvem de fogo
 * ============================================================ */
#fire-overlay {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 95;
  opacity: 0;
  transition: opacity 0.15s;
  background: radial-gradient(ellipse at center,
    rgba(255, 80, 0, 0.05) 0%,
    rgba(255, 100, 20, 0.25) 40%,
    rgba(180, 40, 0, 0.55) 80%,
    rgba(40, 0, 0, 0.85) 100%);
  mix-blend-mode: screen;
  animation: fireFlicker 0.08s infinite;
}
#fire-overlay.active {
  opacity: 1;
}
#fire-overlay::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(255, 200, 80, 0.4) 0%, transparent 25%),
    radial-gradient(circle at 70% 60%, rgba(255, 150, 40, 0.35) 0%, transparent 30%),
    radial-gradient(circle at 50% 80%, rgba(255, 100, 20, 0.45) 0%, transparent 28%);
  mix-blend-mode: lighten;
  animation: fireWaver 0.6s ease-in-out infinite alternate;
}
@keyframes fireFlicker {
  0%, 100% { filter: brightness(1) hue-rotate(0deg); }
  50%      { filter: brightness(1.15) hue-rotate(-5deg); }
}
@keyframes fireWaver {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(2%, -1%) scale(1.04); }
}
