/* Neon Cyberpunk Pinball Styling */
:root {
  --neon-cyan: #00f3ff;
  --neon-pink: #ff0055;
  --neon-lime: #39ff14;
  --neon-amber: #ffaa00;
  --neon-purple: #9d00ff;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  -webkit-user-select: none;
}

body {
  margin: 0;
  padding: 0;
  background-color: #05050c;
  overflow: hidden;
  height: 100vh;
  height: 100dvh;
  touch-action: none;
}

#game-container {
  height: 100vh;
  height: 100dvh;
  padding-top: max(8px, env(safe-area-inset-top));
  padding-bottom: max(8px, env(safe-area-inset-bottom));
  padding-left: max(8px, env(safe-area-inset-left));
  padding-right: max(8px, env(safe-area-inset-right));
}

/* Playfield responsive scale */
#cabinet-frame {
  height: 100%;
  max-height: 98vh;
  max-height: 98dvh;
}

#playfield-wrap {
  flex: 1;
  min-height: 0;
}

/* Table selection card selected glow */
.table-card.selected {
  border-width: 2px;
  transform: scale(1.02);
}

.table-card[data-table="cyber"].selected {
  border-color: var(--neon-cyan);
  box-shadow: 0 0 25px rgba(0, 243, 255, 0.4);
}

.table-card[data-table="synthwave"].selected {
  border-color: var(--neon-pink);
  box-shadow: 0 0 25px rgba(255, 0, 85, 0.4);
}

.table-card[data-table="quantum"].selected {
  border-color: var(--neon-lime);
  box-shadow: 0 0 25px rgba(57, 255, 20, 0.4);
}

/* Smooth active button states */
button {
  cursor: pointer;
}

/* Canvas crisp rendering */
canvas {
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

/* Quick launch button pulse when ball is waiting */
#btn-quick-launch.ready-to-launch {
  animation: pulse-launch 1.2s infinite;
}

@keyframes pulse-launch {
  0%, 100% {
    box-shadow: 0 0 10px rgba(0, 243, 255, 0.6), inset 0 0 8px rgba(255, 255, 255, 0.4);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 25px rgba(0, 243, 255, 1), inset 0 0 15px rgba(255, 255, 255, 0.8);
    transform: scale(1.05);
  }
}

/* Custom scrollbar hidden */
::-webkit-scrollbar {
  display: none;
}