Sudoku Solver

Type in a puzzle, hit solve. The interesting part isn't the backtracking — it's choosing which cell to guess at next.

Built with this prompt

Build a Sudoku solver in React with:
- A 9x9 input grid with thicker borders around each 3x3 box
- Cells accept only 1-9; typing replaces the digit
- Live conflict highlighting for duplicates in any row, column, or box
- A backtracking solver that picks the empty cell with the fewest candidates first (MRV)
- Solved digits rendered in a different colour from the entered clues
- Buttons: Solve, Clear, and three sample puzzles (easy / hard / evil)
- Report solve time and say so clearly when a grid is unsolvable
- Dark theme, no dependencies