/* VEFreeSpins — UI compartida de free spins de operador (#650).
   Fuente única. Estructura y comportamiento idénticos en todos los juegos, pero la
   PALETA es temable por CSS variables (el juego las define en su :root; los valores
   por defecto = tema neón de OverVolt). Así el overlay encaja con cada juego, igual
   que el botón SPIN y los controles. Variables:
     --vefs-accent  color de acento (borde, título-glow, importe, botón "ahora", badge)
     --vefs-soft    color de texto claro (título, badge)
     --vefs-ink     texto sobre el botón de acento
     --vefs-count   resalte del contador (badge)
     --vefs-panel   fondo del panel (caja + badge) */

.vefs-overlay {
  position: fixed;
  inset: 0;
  /* Above EVERYTHING (intro/.vc-intro=120, buy-confirm=202, preloader=50) so the
     free-spins welcome is always visible on game open, never trapped behind them. */
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(2, 8, 16, 0.72);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.vefs-overlay.vefs-hidden,
.vefs-badge.vefs-hidden { display: none; }

.vefs-box {
  background: var(--vefs-panel, linear-gradient(180deg, #0a2233, #06141f));
  border: 1px solid var(--vefs-accent, #19d3ff);
  border-radius: 16px;
  padding: 28px 30px;
  text-align: center;
  max-width: 340px;
  box-shadow: 0 0 38px -6px var(--vefs-accent, #19d3ff);
  font-family: inherit;
}
.vefs-bolt {
  font-size: 54px;
  filter: drop-shadow(0 0 16px var(--vefs-accent, #19d3ff));
  animation: vefsbolt 1s ease-in-out infinite alternate;
}
@keyframes vefsbolt {
  from { transform: scale(0.92); opacity: 0.8; }
  to   { transform: scale(1.08); opacity: 1; }
}
.vefs-title { font-size: 20px; font-weight: 800; color: var(--vefs-soft, #bfefff); margin-top: 6px; }
.vefs-amount { font-size: 26px; font-weight: 800; color: var(--vefs-accent, #19d3ff); margin-top: 10px; }
.vefs-amount .vefs-count { color: #fff; }
.vefs-bet { margin-top: 6px; color: var(--vefs-soft, #9fe9ff); font-size: 14px; min-height: 14px; }
.vefs-expiry { margin-top: 4px; color: #ffd11a; font-size: 12px; min-height: 14px; }

.vefs-actions { display: flex; gap: 12px; margin-top: 22px; }
.vefs-btn {
  flex: 1;
  padding: 12px;
  border-radius: 9px;
  cursor: pointer;
  font-weight: 700;
  font-size: 14px;
  border: 1px solid;
  font-family: inherit;
  touch-action: manipulation;
}
.vefs-later { background: transparent; border-color: rgba(255, 255, 255, 0.3); color: #ccc; }
.vefs-now {
  background: var(--vefs-accent, #19d3ff);
  border-color: var(--vefs-accent, #19d3ff);
  color: var(--vefs-ink, #04222a);
}
.vefs-now:hover { box-shadow: 0 0 16px var(--vefs-accent, #19d3ff); }

/* Contador flotante de giros restantes (centrado, sobre la barra de control). */
.vefs-badge {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 92px;
  z-index: 80;
  background: var(--vefs-panel, rgba(4, 16, 24, 0.92));
  border: 1px solid var(--vefs-accent, #19d3ff);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 700;
  color: var(--vefs-soft, #cfefff);
  pointer-events: none;
  white-space: nowrap;
  box-shadow: 0 0 16px -2px var(--vefs-accent, #19d3ff);
}
.vefs-badge .vefs-badge-count { color: var(--vefs-count, #ff3ea5); }
.vefs-badge.vefs-clickable { pointer-events: auto; cursor: pointer; }
.vefs-badge.vefs-clickable:hover { box-shadow: 0 0 22px -2px var(--vefs-accent, #19d3ff); }
/* Active state: pulsing + brighter, so it's obvious the current spins are free. */
.vefs-badge--active {
  border-width: 2px;
  background: var(--vefs-accent, #19d3ff);
  color: #08121a;
  animation: vefsBadgePulse 0.8s ease-in-out infinite alternate;
}
.vefs-badge--active .vefs-badge-count {
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9), 0 0 4px rgba(0, 0, 0, 0.75);
}
@keyframes vefsBadgePulse {
  from { transform: translateX(-50%) scale(1);    box-shadow: 0 0 14px -2px var(--vefs-accent, #19d3ff); }
  to   { transform: translateX(-50%) scale(1.09); box-shadow: 0 0 30px 3px var(--vefs-accent, #19d3ff); }
}
