* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px; } .container { background: white; border-radius: 20px; padding: 30px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); max-width: 650px; width: 100%; } h1 { text-align: center; color: #333; margin-bottom: 30px; font-size: 2.5em; } .controls { display: flex; gap: 10px; margin-bottom: 20px; justify-content: center; flex-wrap: wrap; } .controls select, .controls button { padding: 10px 20px; border: none; border-radius: 8px; font-size: 16px; cursor: pointer; transition: all 0.3s; } .controls select { background: #f0f0f0; color: #333; } .controls button { background: #667eea; color: white; } .controls button:hover { background: #5a67d8; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4); } .message { text-align: center; padding: 10px; margin-bottom: 20px; border-radius: 8px; font-weight: bold; min-height: 40px; display: flex; align-items: center; justify-content: center; transition: all 0.3s; } .message.success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; } .message.error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; } .message.info { background: #d1ecf1; color: #0c5460; border: 1px solid #bee5eb; } .sudoku-board { display: grid; grid-template-columns: repeat(9, 1fr); gap: 1px; background: #333; padding: 3px; border-radius: 10px; margin-bottom: 20px; aspect-ratio: 1; max-width: 500px; margin-left: auto; margin-right: auto; } .cell { background: white; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: bold; cursor: pointer; transition: all 0.2s; aspect-ratio: 1; position: relative; user-select: none; } .cell-input { width: 100%; height: 100%; border: none; text-align: center; font-size: 20px; font-weight: bold; background: transparent; color: #2563eb; outline: none; cursor: pointer; } .cell-input:focus { background: #e6f3ff; } .cell.fixed { background: #f5f5f5; color: #333; cursor: not-allowed; } .cell.fixed .cell-input { color: #333; cursor: not-allowed; } .cell.error .cell-input { background: #ffe6e6; color: #cc0000; } .cell.hint { animation: pulse 1s ease-in-out; } .cell.hint .cell-input { background: #fffacd; color: #f59e0b; } /* Thick borders for 3x3 boxes */ .cell:nth-child(3n) { border-right: 3px solid #333; } .cell:nth-child(n+19):nth-child(-n+27), .cell:nth-child(n+46):nth-child(-n+54) { border-bottom: 3px solid #333; } .instructions { background: #f0f4f8; border-radius: 10px; padding: 15px; margin-bottom: 20px; border-left: 4px solid #667eea; } .instructions p { margin-bottom: 10px; color: #333; } .instructions ul { margin-left: 20px; color: #555; } .instructions li { margin-bottom: 5px; } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } /* Responsive Design */ @media (max-width: 600px) { .container { padding: 20px; } h1 { font-size: 2em; } .cell-input { font-size: 16px; } .controls { flex-direction: column; } .controls select, .controls button { width: 100%; } }