:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--primary-color: #2196f3;--secondary-color: #4caf50;--error-color: #f44336;--border-color: #333;--cell-bg: #fff;--cell-given-bg: #e3f2fd;--cell-selected-bg: #bbdefb;--cell-highlighted-bg: #fff9c4}*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;margin:0;padding:0}.app{max-width:800px;margin:0 auto;padding:20px;min-height:100vh}.app-header{text-align:center;color:#fff;margin-bottom:20px}.app-header h1{margin:0;font-size:2.5rem;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.app-main{background:#fff;border-radius:15px;padding:30px;box-shadow:0 10px 40px #0003}.controls{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;align-items:center;margin-bottom:20px;width:100%}.difficulty-section{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.difficulty-label{font-weight:700;color:#333;font-size:1.1rem}.difficulty-selector{display:grid;grid-template-columns:repeat(4,minmax(85px,1fr));gap:8px;max-width:600px;width:100%}@media (max-width: 600px){.difficulty-selector{grid-template-columns:repeat(2,1fr)}}.difficulty-selector button,.new-game-btn,.hint-btn{padding:10px 16px;border:2px solid var(--primary-color);background:#fff;color:var(--primary-color);border-radius:8px;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .3s ease;white-space:nowrap}.difficulty-selector button:hover,.new-game-btn:hover,.hint-btn:hover{background:var(--primary-color);color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.difficulty-selector button.active{background:var(--primary-color);color:#fff}.difficulty-selector button.ultra-hard{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#764ba2;font-weight:700;animation:pulse 2s infinite}.difficulty-selector button.ultra-hard:hover{background:linear-gradient(135deg,#764ba2,#667eea);transform:translateY(-2px) scale(1.05)}.difficulty-selector button.ultra-hard.active{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 6px 12px #764ba266}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.difficulty-selector button:disabled,.new-game-btn:disabled,.hint-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.memo-btn{padding:10px 20px;border:2px solid #9c27b0;background:#f3e5f5;color:#6a1b9a;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s ease}.memo-btn.active{background:#9c27b0;color:#fff;border-color:#6a1b9a;box-shadow:0 4px 8px #9c27b04d}.memo-btn:hover:not(:disabled){background:#ce93d8;border-color:#6a1b9a;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.memo-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.message{background:#e8f5e9;padding:15px;border-radius:8px;margin-bottom:20px;text-align:center;font-weight:700;color:#2e7d32;border-left:5px solid var(--secondary-color)}.puzzle-info{display:flex;justify-content:space-around;flex-wrap:wrap;gap:15px;margin-bottom:20px;padding:15px;background:#f5f5f5;border-radius:8px}.puzzle-info span{font-weight:700;color:#555}.sudoku-board{display:flex;justify-content:center;margin-bottom:20px}.board-grid{display:inline-block;border:3px solid var(--border-color);background:var(--border-color);border-radius:8px;overflow:hidden}.board-row{display:flex}.cell{width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;background:var(--cell-bg);border:1px solid #ddd;cursor:pointer;transition:all .2s ease;position:relative}.cell:hover{background:#f0f0f0}.cell.given{background:var(--cell-given-bg);color:#1565c0;cursor:default}.cell.editable{color:#333}.cell.selected{background:var(--cell-selected-bg);box-shadow:inset 0 0 0 2px var(--primary-color)}.cell.highlighted{background:var(--cell-highlighted-bg)}.cell.border-right{border-right:2px solid var(--border-color)}.cell.border-bottom{border-bottom:2px solid var(--border-color)}.notes-grid{position:absolute;top:0;left:0;width:100%;height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:0;padding:2px}.note-item{display:flex;align-items:center;justify-content:center;font-size:.6rem;color:#999;font-weight:400}.note-item.active{color:#9c27b0;font-weight:700}.cell-value{font-size:1.5rem;font-weight:700}.controls-help{text-align:center;margin:15px 0;padding:10px;background:#e3f2fd;border-radius:8px;color:#1565c0;font-size:.9rem}.controls-help p{margin:0}.number-pad{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;max-width:400px;margin:0 auto}.number-btn{padding:15px;font-size:1.5rem;font-weight:700;border:2px solid #ddd;background:#fff;color:#333;border-radius:8px;cursor:pointer;transition:all .2s ease}.number-btn:hover:not(:disabled){background:#f0f0f0;border-color:var(--primary-color);transform:scale(1.05)}.number-btn:active:not(:disabled){transform:scale(.95)}.number-btn:disabled{opacity:.3;cursor:not-allowed}.clear-btn{grid-column:span 2;background:#ffebee;border-color:var(--error-color);color:var(--error-color);font-weight:700;font-size:1.2rem}.clear-btn:before{content:"⌫ ";font-size:1.4rem}.clear-btn:hover:not(:disabled){background:var(--error-color);color:#fff}.app-footer{text-align:center;color:#fff;margin-top:20px;padding:20px}.app-footer p{margin:5px 0;text-shadow:1px 1px 2px rgba(0,0,0,.3)}@media (max-width: 600px){.app{padding:10px}.app-header h1{font-size:1.8rem}.app-main{padding:15px}.cell{width:35px;height:35px;font-size:1.2rem}.number-pad{grid-template-columns:repeat(3,1fr)}.controls,.difficulty-selector{flex-direction:column}}.speed-control{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;background:#ffffff0d;border-radius:8px;margin:8px 0;min-width:200px}.speed-control label{font-size:.9rem;color:#e0e0e0;font-weight:500}.speed-control input[type=range]{width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,#4caf50,#ff9800,#f44336);outline:none;-webkit-appearance:none;cursor:pointer}.speed-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 2px 6px #0000004d;transition:transform .2s ease}.speed-control input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.speed-control input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;cursor:pointer;border:none;box-shadow:0 2px 6px #0000004d;transition:transform .2s ease}.speed-control input[type=range]::-moz-range-thumb:hover{transform:scale(1.2)}.speed-control input[type=range]:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:linear-gradient(135deg,#1e293b,#334155);border-radius:16px;padding:24px;max-width:500px;width:90%;box-shadow:0 8px 32px #0006;animation:slideUp .3s ease}.modal-content.load-modal{max-width:600px;max-height:80vh;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-content h2{margin:0 0 20px;font-size:1.5rem;color:#e0e0e0}.modal-body{margin-bottom:20px}.modal-body label{display:block;margin-bottom:8px;color:#e0e0e0;font-weight:500}.modal-body input[type=text]{width:100%;padding:12px;border:2px solid #475569;border-radius:8px;background:#0f172a;color:#e0e0e0;font-size:1rem;transition:border-color .2s ease}.modal-body input[type=text]:focus{outline:none;border-color:#3b82f6}.modal-info{margin-top:16px;padding:12px;background:#ffffff0d;border-radius:8px}.modal-info p{margin:4px 0;color:#cbd5e1;font-size:.9rem}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.modal-actions button{padding:10px 20px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-cancel{background:#475569;color:#e0e0e0}.btn-cancel:hover{background:#64748b}.btn-save{background:#3b82f6;color:#fff}.btn-save:hover{background:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.btn-load{background:#10b981;color:#fff;padding:8px 16px;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-load:hover{background:#059669;transform:translateY(-2px)}.btn-delete{background:#ef4444;color:#fff;padding:8px 12px;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:all .2s ease}.btn-delete:hover{background:#dc2626;transform:scale(1.1)}.no-saves{text-align:center;padding:40px 20px;color:#94a3b8;font-size:1.1rem}.saved-puzzles-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.saved-puzzle-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#ffffff0d;border-radius:8px;border:2px solid transparent;transition:all .2s ease}.saved-puzzle-item:hover{background:#ffffff14;border-color:#3b82f6}.puzzle-info h3{margin:0 0 8px;color:#e0e0e0;font-size:1.1rem}.puzzle-info p{margin:4px 0;color:#cbd5e1;font-size:.85rem}.save-date{color:#94a3b8!important;font-size:.75rem!important;margin-top:8px!important}.puzzle-actions{display:flex;gap:8px;flex-shrink:0}.save-btn,.load-btn{background:linear-gradient(135deg,#667eea,#764ba2)}.save-btn:hover,.load-btn:hover{background:linear-gradient(135deg,#764ba2,#667eea)}.retry-progress{margin:16px 0;padding:12px 16px;background:#ff98001a;border-radius:8px;border:2px solid #ff9800;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{border-color:#ff9800;box-shadow:0 0 #ff980066}50%{border-color:#ffb74d;box-shadow:0 0 20px #ff980099}}.retry-progress span{display:block;color:#ffb74d;font-weight:600;margin-bottom:8px;font-size:.95rem}.retry-bar{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;position:relative}.retry-bar-fill{height:100%;background:linear-gradient(90deg,#ff9800,#ffb74d);transition:width .5s ease;position:relative;animation:shimmer 2s linear infinite}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}.retry-bar-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:slide 1.5s ease-in-out infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(100%)}}
