@import url('../global.css');

:root {
  --title-color: var(--color-blokus);
  /* Engraved walnut tray with glossy resin pieces. */
  --blokus-tray: #3a2a1c;
  --blokus-tray-groove: #2a1d13;
  --blokus-cell-bg: #4a3626;
}

.blokus-board[data-visual-theme='arcade'] {
  --blokus-tray: #3a1030;
  --blokus-tray-groove: #240a1f;
  --blokus-cell-bg: #5c2350;
}

.blokus-board[data-visual-theme='midnight'] {
  --blokus-tray: #14202e;
  --blokus-tray-groove: #0c1520;
  --blokus-cell-bg: #1e3245;
}

.blokus-board[data-visual-theme='daylight'] {
  --blokus-tray: #4c3a63;
  --blokus-tray-groove: #382a4a;
  --blokus-cell-bg: #6a4f8c;
}

.blokus-board[data-visual-theme='amber'] {
  --blokus-tray: #4a2f0c;
  --blokus-tray-groove: #331f07;
  --blokus-cell-bg: #6a4514;
}

/* ─── Board grid ──────────────────────────────────────────────────────────── */

.blokus-board {
  display: grid;
  grid-template-columns: repeat(20, 1fr);
  grid-template-rows: repeat(20, 1fr);
  gap: 1px;
  background: var(--blokus-tray-groove);
  border: 6px solid var(--blokus-tray);
  border-radius: var(--border-radius-sm);
  box-shadow: inset 0 0 18px rgba(0, 0, 0, 0.6);
  overflow: hidden;
}

.blokus-cell {
  background: var(--blokus-cell-bg);
  cursor: pointer;
  transition: background 80ms;
}

.blokus-cell.is-seat-0 {
  background: var(--ludo-seat-0);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.45),
    inset 0 -2px 3px rgba(0, 0, 0, 0.3);
}
.blokus-cell.is-seat-1 {
  background: var(--ludo-seat-1);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.45),
    inset 0 -2px 3px rgba(0, 0, 0, 0.3);
}
.blokus-cell.is-seat-2 {
  background: var(--ludo-seat-2);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.45),
    inset 0 -2px 3px rgba(0, 0, 0, 0.3);
}
.blokus-cell.is-seat-3 {
  background: var(--ludo-seat-3);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.45),
    inset 0 -2px 3px rgba(0, 0, 0, 0.3);
}

.blokus-cell.is-ghost {
  background: var(--seat-color);
  opacity: 0.55;
}

.blokus-cell.is-ghost-invalid {
  background: var(--danger);
  opacity: 0.35;
}

/* ─── Piece panel ─────────────────────────────────────────────────────────── */

.blokus-pieces {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs);
  padding: var(--spacing-xs) 0;
  justify-content: center;
}

.blokus-piece {
  background: none;
  border: 2px solid transparent;
  border-radius: var(--border-radius-sm);
  padding: 3px;
  cursor: pointer;
  opacity: 0.25;
  transition:
    opacity 120ms,
    border-color 120ms;
}

.blokus-piece.is-available {
  opacity: 1;
}

.blokus-piece.is-available:hover {
  border-color: var(--line);
}

.blokus-piece.is-selected {
  border-color: var(--accent);
  opacity: 1;
}

.blokus-piece:disabled {
  cursor: default;
}

.blokus-piece-grid {
  display: grid;
  gap: 1px;
  width: 2.5rem;
  height: 2.5rem;
}

.blokus-piece-dot {
  background: transparent;
}

.blokus-piece-dot.is-filled {
  background: var(--seat-color);
  border-radius: 1px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
