/* ===== FLASH SUDOKU ===== */
.fsd-grid-wrap {
  width: 100%;
  max-width: 342px;
  margin: 0 auto;
}
.fsd-grid {
  display: grid;
  grid-template-columns: repeat(9, 1fr);
  gap: 2px;
  background: rgba(255,255,255,0.06);
  border: 2px solid rgba(255,255,255,0.18);
  border-radius: 8px;
  padding: 3px;
  aspect-ratio: 1;
}
.fsd-cell {
  background: rgba(0,0,0,0.52);
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.12s, box-shadow 0.12s;
  aspect-ratio: 1;
  color: transparent;
  user-select: none;
  position: relative;
}
/* thick borders for 3×3 box boundaries */
.fsd-cell.box-r { border-right: 2px solid rgba(255,255,255,0.28); }
.fsd-cell.box-b { border-bottom: 2px solid rgba(255,255,255,0.28); }

/* same row/col/box as selected cell */
.fsd-cell.range {
  background: rgba(139,92,246,0.1);
}

/* lit = selected cell */
.fsd-cell.lit {
  background: rgba(139,92,246,0.38);
  color: #fff;
  box-shadow: 0 0 10px rgba(139,92,246,0.7);
}
/* given (pre-filled) clue cell */
.fsd-cell.given.lit {
  background: rgba(255,255,255,0.22);
  color: #e0d8ff;
}
/* user-filled empty cell (lit) */
.fsd-cell.user-filled.lit {
  background: rgba(139,92,246,0.45);
  color: #c4b5fd;
}
/* conflict highlight */
.fsd-cell.lit.conflict {
  background: rgba(248,113,113,0.45);
  box-shadow: 0 0 10px rgba(248,113,113,0.6);
  color: #fca5a5;
}
/* all correct */
.fsd-cell.done {
  color: #4ade80 !important;
  background: rgba(74,222,128,0.18) !important;
}

.fsd-numpad {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  width: 100%;
  max-width: 310px;
}
.fsd-npbtn {
  height: 46px;
  background: rgba(255,255,255,0.09);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 10px;
  font-size: 1.15rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.12s;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.fsd-npbtn:active { transform: scale(0.88); background: rgba(139,92,246,0.32); }
.fsd-npbtn.clr { font-size: 0.85rem; color: #f87171; border-color: rgba(248,113,113,0.3); }

.fsd-status {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.5);
  text-align: center;
}
.fsd-message {
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
  min-height: 1.4em;
}
