*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%}body{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;padding:10px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex}.container{background:#fff;border-radius:10px;flex-direction:column;width:100%;max-width:550px;height:100%;padding:12px;display:flex;overflow:scroll;box-shadow:0 10px 40px #0000004d}h1{text-align:center;color:#333;flex-shrink:0;margin-bottom:2px;font-size:1.6em}.subtitle{text-align:center;color:#666;flex-shrink:0;margin-bottom:8px;font-size:.75em}.sudoku-grid{aspect-ratio:1;border:3px solid #333;flex-shrink:0;grid-template-columns:repeat(9,1fr);gap:0;width:100%;margin-bottom:8px;display:grid}.sudoku-cell{aspect-ratio:1;cursor:pointer;background:#fff;border:1px solid #999;justify-content:center;align-items:center;width:100%;padding:0;font-size:1.1em;font-weight:700;transition:background-color .2s,color .2s;display:flex}.sudoku-cell:hover{background-color:#f0f0f0}.sudoku-cell input{text-align:center;background:0 0;border:none;outline:none;width:100%;height:100%;padding:0;font-size:1.1em;font-weight:700}.sudoku-cell input::placeholder{color:#ccc}.sudoku-cell:nth-child(3n){border-right:3px solid #333}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom:3px solid #333}.sudoku-cell.solved input{color:#27ae60;background-color:#ecf7ed}.sudoku-cell.error input{color:#e74c3c;background-color:#fadbd8}.button-group{flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:6px;margin-bottom:6px;display:flex}button{cursor:pointer;text-transform:uppercase;letter-spacing:.5px;border:none;border-radius:5px;flex:1;min-width:100px;padding:8px 12px;font-size:.75em;font-weight:700;transition:all .3s}.btn-solve{color:#fff;background-color:#27ae60}.btn-solve:hover{background-color:#229954}.btn-solve:active{transform:scale(.95)}.btn-clear{color:#fff;background-color:#e74c3c}.btn-clear:hover{background-color:#c0392b}.btn-clear:active{transform:scale(.95)}.btn-example{color:#fff;background-color:#3498db}.btn-example:hover{background-color:#2980b9}.btn-example:active{transform:scale(.95)}.message{text-align:center;border-radius:5px;flex-shrink:0;padding:8px;font-size:.75em;font-weight:700;line-height:1.3;display:none}.message.success{color:#155724;background-color:#d4edda;display:block}.message.error{color:#721c24;background-color:#f8d7da;display:block}.message.info{color:#0c5460;background-color:#d1ecf1;display:block}.steps-container{background-color:#f8f9fa;border-radius:5px;flex-shrink:0;max-height:200px;margin-top:8px;padding:12px;font-size:.75em;display:none;overflow-y:auto}.steps-container.visible{display:block}.steps-container h3{color:#667eea;background-color:#f8f9fa;margin-bottom:8px;padding-bottom:4px;font-size:1.1em;position:sticky;top:0}.step{background-color:#fff;border-left:3px solid #667eea;border-radius:3px;margin-bottom:4px;padding:6px 8px;line-height:1.5}.step .step-number{color:#667eea;font-weight:700}.step .technique{color:#27ae60;font-weight:700}.step .cell-ref{color:#e74c3c;font-family:monospace}.btn-human-solve{color:#fff;background-color:#9b59b6}.btn-human-solve:hover{background-color:#8e44ad}.btn-human-solve:active{transform:scale(.95)}
