.sudoku-grid{display:flex;flex-direction:column;gap:0;background:#1e40af;border:3px solid #1e40af;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #1e40af26}.sudoku-row{display:flex}.sudoku-cell{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e2e8f0;font-size:28px;font-weight:600;cursor:pointer;transition:all .15s ease;position:relative}@media (max-width: 900px){.sudoku-grid{max-width:100%}.sudoku-cell{width:50px;height:50px;font-size:24px}}@media (max-width: 600px){.sudoku-cell{width:38px;height:38px;font-size:20px}.cell-notes{bottom:2px;right:2px}.cell-note{font-size:7px}}.sudoku-cell.fixed{background:#fff;color:#1e293b;cursor:default;font-weight:700}.sudoku-cell.editable{color:#3b82f6}.sudoku-cell.editable:hover{background:#f5f5f5}.sudoku-cell.selected{background:#dbeafe;border:2px solid #3b82f6;box-shadow:inset 0 0 0 1px #3b82f6}.sudoku-cell.highlighted{background:#f1f5f9}.sudoku-cell.same-number{background:#bfdbfe;font-weight:700}.sudoku-cell.border-bottom{border-bottom:3px solid #1e40af}.sudoku-cell.border-right{border-right:3px solid #1e40af}.sudoku-cell.completed{background:#d1fae5;color:#2e7d32}.cell-value{font-size:28px;font-weight:600}.cell-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;width:100%;height:100%;padding:2px;font-size:10px;color:#666;align-content:start}.note{display:flex;align-items:center;justify-content:center;font-weight:500}@media (max-width: 600px){.sudoku-cell{width:35px;height:35px;font-size:18px}.cell-value{font-size:18px}.cell-notes{font-size:8px}}.number-pad{display:flex;flex-direction:column;gap:12px;margin-top:20px;width:100%}@media (max-width: 900px){.number-pad{max-width:400px;margin:0 auto}.number-buttons{gap:10px}.number-button{width:55px;height:55px;font-size:22px}.action-buttons{gap:10px}.note-button,.delete-button{height:48px;font-size:15px}}@media (max-width: 600px){.number-pad{max-width:100%}.number-buttons{gap:8px;justify-content:center}.number-button{width:50px;height:50px;font-size:20px}.action-buttons{gap:8px}.note-button,.delete-button{height:45px;font-size:14px}.note-button svg,.delete-button svg{width:14px;height:14px}}.number-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.number-button{width:60px;height:60px;font-size:24px;font-weight:600;border:2px solid #e2e8f0;border-radius:8px;background:#fff;color:#3b82f6;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 3px #00000014;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.number-button.note-mode{background:#f1f5f9;color:#64748b;border:2px solid #cbd5e1}.number-button.note-mode:hover:not(:disabled){background:#64748b;color:#fff;border-color:#64748b;transform:translateY(-1px);box-shadow:0 2px 6px #64748b4d}.number-button:hover:not(:disabled){background:#3b82f6;color:#fff;border-color:#3b82f6;transform:translateY(-1px);box-shadow:0 2px 6px #3b82f64d}.number-button:active:not(:disabled){transform:translateY(0)}.number-button:disabled{opacity:.5;cursor:not-allowed}.number-button.complete{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0;opacity:.5;cursor:not-allowed}.number-button .count{font-size:10px;font-weight:500;color:#666}.action-buttons{display:flex;flex-direction:column;gap:12px}.note-button{width:100%;height:50px;font-size:16px;font-weight:600;border:2px solid #3b82f6;border-radius:8px;background:#fff;color:#3b82f6;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 3px #00000014;display:flex;align-items:center;justify-content:center;gap:6px}.note-button.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.note-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 6px #3b82f64d}.note-button:disabled{opacity:.5;cursor:not-allowed}.delete-button{width:100%;height:50px;font-size:16px;font-weight:600;border:2px solid #ef4444;border-radius:8px;background:#fff;color:#ef4444;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 3px #00000014;display:flex;align-items:center;justify-content:center;gap:6px}.delete-button:hover:not(:disabled){background:#ef4444;color:#fff;border-color:#ef4444;transform:translateY(-1px);box-shadow:0 2px 6px #ef44444d}.delete-button:active:not(:disabled){transform:translateY(0)}.delete-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 600px){.number-buttons{grid-template-columns:repeat(5,1fr)}.number-button{width:100%;height:45px;font-size:18px}}.controls{display:flex;flex-direction:column;gap:15px;align-items:center;width:100%}@media (max-width: 900px){.controls{gap:12px}.timer{padding:10px 20px}.timer-label{font-size:14px}.timer-value{font-size:20px}.verify-button{padding:14px 32px;font-size:16px}}@media (max-width: 600px){.controls{gap:10px}.timer{padding:8px 16px}.timer-label{font-size:13px}.timer-value{font-size:18px;min-width:50px}.verify-button{padding:12px 24px;font-size:15px}.completion-message{font-size:16px;padding:12px 20px}}.timer{display:flex;align-items:center;gap:10px;background:#fff;padding:12px 25px;border-radius:10px;border:2px solid #e2e8f0;box-shadow:0 2px 8px #0000000d}.timer-label{font-size:16px;font-weight:600;color:#64748b}.timer-value{font-size:22px;font-weight:700;color:#3b82f6;font-family:Courier New,monospace;min-width:60px;text-align:center}.verify-button{width:100%;padding:16px 40px;font-size:18px;font-weight:700;border:2px solid #3b82f6;border-radius:10px;background:#3b82f6;color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #3b82f633;letter-spacing:.5px;text-transform:uppercase}.verify-button:hover:not(:disabled){background:#2563eb;border-color:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.verify-button:active:not(:disabled){transform:translateY(-1px)}.verify-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.completion-message{background:#dcfce7;color:#166534;padding:15px 30px;border-radius:10px;font-size:18px;font-weight:600;text-align:center;border:2px solid #22c55e;box-shadow:0 2px 8px #22c55e33;animation:celebrate .6s ease}@keyframes celebrate{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media (max-width: 600px){.timer{padding:10px 20px}.timer-label{font-size:16px}.timer-value{font-size:20px}.verify-button{width:100%;padding:12px 30px;font-size:16px}.completion-message{font-size:18px;padding:12px 20px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;padding:40px;border-radius:16px;box-shadow:0 20px 60px #1e40af33;max-width:500px;width:90%;color:#1e293b;text-align:center;animation:slideUp .4s ease;border:1px solid #e2e8f0}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.success-icon{width:80px;height:80px;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;animation:scaleIn .5s ease;border:3px solid #22c55e}.success-icon svg{width:40px;height:40px;color:#22c55e;stroke-width:3}.trophy-emoji{font-size:48px;animation:bounce .6s ease infinite alternate}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.error-icon{width:80px;height:80px;background:#fee2e2;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;animation:shake .5s ease;border:3px solid #ef4444}.error-icon svg{width:40px;height:40px;color:#ef4444;stroke-width:3}.warning-icon{width:80px;height:80px;background:#fef3c7;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;animation:pulse 1s ease infinite;border:3px solid #f59e0b}.warning-icon svg{width:40px;height:40px;color:#f59e0b;stroke-width:3}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes scaleIn{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.modal-title{font-size:28px;font-weight:700;margin-bottom:15px;color:#1e293b}.completion-time{background:#ffffff26;border-radius:16px;padding:20px;margin:20px 0;display:flex;flex-direction:column;gap:8px}.time-label{font-size:14px;color:#fffc;text-transform:uppercase;letter-spacing:1px}.time-value{font-size:48px;font-weight:700;margin:20px 0;color:#3b82f6}.ranking-info{margin:20px 0}.ranking-badge{background:#3b82f6;color:#fff;font-size:24px;font-weight:700;padding:12px 24px;border-radius:12px;display:inline-block;margin-bottom:12px;box-shadow:0 2px 8px #3b82f633}.ranking-details{font-size:18px;color:#fff;margin:8px 0;font-weight:500}.percentile{font-size:14px;color:#fffc;margin:4px 0}.error-message{font-size:16px;margin:20px 0;color:#64748b;line-height:1.6}.modal-actions{display:flex;gap:12px;margin-top:30px;justify-content:center;flex-wrap:wrap}.modal-actions button{padding:14px 28px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.btn-share{background:#3b82f6;color:#fff;border:2px solid #3b82f6;padding:12px 24px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-share:hover{background:#2563eb;border-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-close{background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.3)}.btn-close:hover{background:#ffffff4d;transform:translateY(-2px)}.btn-try-again{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f666;padding:16px 40px;font-size:18px}.btn-try-again:hover{transform:translateY(-2px);box-shadow:0 6px 16px #3b82f680}@media (max-width: 600px){.modal-content{padding:30px 20px}.modal-title{font-size:24px}.time-value{font-size:36px}.ranking-badge{font-size:20px}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}.sudoku-page{width:100%;display:flex;justify-content:center;align-items:center;padding:20px}.sudoku-container{display:flex;flex-direction:column;align-items:center;background:#fff;padding:40px;border-radius:16px;box-shadow:0 8px 32px #1e40af1f;border:1px solid #e2e8f0;max-width:1200px;width:100%}.game-area{display:flex;gap:40px;align-items:flex-start;width:100%;justify-content:center}.grid-section{display:flex;flex-direction:column;gap:20px;align-items:center}.controls-section{display:flex;flex-direction:column;gap:20px;margin-top:80px}.mobile-controls{display:none}.desktop-controls{display:block}.header{text-align:center;margin-bottom:20px;width:100%}.title{font-size:32px;font-weight:700;color:#1e293b;margin-bottom:8px}.subtitle{font-size:14px;color:#64748b;margin:0;font-weight:500}.loading{font-size:20px;color:#64748b;text-align:center;padding:50px}.message{padding:15px 30px;border-radius:8px;font-size:18px;font-weight:600;margin-bottom:20px;text-align:center;animation:fadeIn .3s ease}.message.success{background:#dcfce7;color:#166534;border:2px solid #22c55e}.message.error{background:#fee2e2;color:#991b1b;border:2px solid #ef4444}.completed-banner{background:linear-gradient(135deg,gold,#ffed4e);color:#333;padding:15px 30px;border-radius:8px;font-size:20px;font-weight:700;margin-bottom:20px;text-align:center;box-shadow:0 4px 10px #0003;animation:bounce .5s ease}.challenge-banner{background:#fef3c7;border-radius:12px;padding:20px;margin-bottom:20px;display:flex;align-items:center;gap:15px;box-shadow:0 2px 8px #00000014;border:2px solid #fbbf24;animation:slideDown .5s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.challenge-icon{font-size:40px;animation:pulse 2s ease infinite}.challenge-text{flex:1;color:#78350f}.challenge-text h3{margin:0 0 8px;font-size:18px;font-weight:700;color:#78350f}.challenge-text p{margin:4px 0;font-size:14px;color:#92400e}.challenge-text strong{color:#78350f;font-weight:700;font-size:16px}.challenge-rank{font-weight:600;color:#78350f}.challenge-cta{background:#78350f;color:#fef3c7;padding:12px 20px;border-radius:8px;font-weight:700;font-size:14px;white-space:nowrap}.instructions{margin-top:20px;text-align:center;color:#64748b;font-size:14px;line-height:1.6}.instructions p{margin:5px 0}.session-expired{background:#fffffff2;padding:40px;border-radius:15px;text-align:center;box-shadow:0 10px 30px #0000004d}.session-expired h2{font-size:32px;color:#f44336;margin-bottom:20px}.session-expired p{font-size:18px;color:#333;margin:10px 0;line-height:1.6}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media (max-width: 900px){.sudoku-page{padding:10px;min-height:100vh;display:flex;align-items:center;justify-content:center}.sudoku-container{padding:20px;width:100%;max-width:100%}.game-area{flex-direction:column;align-items:center;gap:20px;width:100%}.grid-section{width:100%;display:flex;flex-direction:column;align-items:center}.controls-section{width:100%;max-width:100%;margin-top:0}.desktop-controls{display:none}.mobile-controls{display:flex;flex-direction:column;gap:12px;width:100%;align-items:center}.mobile-controls .timer{margin:0}.header{margin-bottom:15px}.title{font-size:24px;margin-bottom:6px}.subtitle{font-size:13px}.challenge-banner{padding:15px;gap:10px}.challenge-icon{font-size:32px}.challenge-text h3{font-size:16px}.challenge-text p{font-size:13px}.challenge-cta{padding:10px 15px;font-size:12px}}@media (max-width: 600px){.sudoku-page{padding:5px}.sudoku-container{padding:15px;border-radius:12px}.header{margin-bottom:10px}.title{font-size:22px;margin-bottom:5px}.subtitle{font-size:12px}.game-area{gap:15px}.message{font-size:14px;padding:10px 15px}.completed-banner{font-size:16px;padding:10px 15px}.instructions{font-size:12px;margin-top:15px}}.App{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}*{margin:0;padding:0;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:#f8fafc;min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}@media (max-width: 900px){body{padding:10px;align-items:flex-start}}@media (max-width: 600px){body{padding:5px}}#root{width:100%}
