Spaces:
Sleeping
Sleeping
| * { | |
| 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%; | |
| } | |
| } |