/* Dots & Boxes – game-specific styles */

.score-box.player-box {
  background: #2563eb;
  color: #fff;
  border-color: #1d4ed8;
}
.score-box.player-box .score-label { color: rgba(255,255,255,0.75); }

.score-box.ai-box {
  background: #e05c2a;
  color: #fff;
  border-color: #c44d22;
}
.score-box.ai-box .score-label { color: rgba(255,255,255,0.75); }

.score-box.turn-box {
  background: var(--surface);
  border-color: var(--border);
  min-width: 54px;
}
.score-box.turn-box .score-label { color: var(--text-muted); }

#turn-indicator {
  font-size: 20px;
  line-height: 1;
  transition: color .2s ease;
}

/* 2-player: rename ai label dynamically via JS */
.score-box.p2-box {
  background: #e05c2a;
  color: #fff;
  border-color: #c44d22;
}
.score-box.p2-box .score-label { color: rgba(255,255,255,0.75); }

/* Board container */
.board {
  position: relative;
  /* size set dynamically */
  background: var(--surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  touch-action: none;
  user-select: none;
}

#canvas {
  display: block;
  cursor: pointer;
}

/* Overlay */
.overlay {
  position: absolute;
  inset: 0;
  background: var(--overlay-bg);
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  z-index: 10;
  animation: fadein .25s ease-in-out;
}
.overlay[hidden] { display: none; }
.overlay-text {
  font-size: clamp(32px, 8vmin, 52px);
  font-weight: 800;
  color: var(--text-strong);
  text-align: center;
}
.overlay-sub {
  font-size: 16px;
  color: var(--text-muted);
  font-weight: 600;
  text-align: center;
}
@keyframes fadein { from { opacity: 0; } to { opacity: 1; } }

/* Thinking indicator for AI */
.toolbar .thinking {
  font-size: 13px;
  color: var(--text-muted);
  padding: 0 4px;
  animation: pulse 1s infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
