:root{--bg-color:#0f172a;--panel-bg:#1e293bb3;--cell-bg:#1e293b80;--cell-bg-hover:#334155cc;--cell-bg-selected:#38bdf833;--cell-bg-highlight:#38bdf81a;--cell-bg-error:#ef444433;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-given:#38bdf8;--text-input:#f8fafc;--text-error:#ef4444;--accent:#0ea5e9;--accent-glow:0 0 15px #0ea5e980;--border-color:#334155;--border-thick:#64748b;--font-main:"Outfit", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);color:var(--text-primary);background:radial-gradient(circle at 100% 0,#1e293b 0%,#0f172a 100%);justify-content:center;align-items:center;min-height:100vh;display:flex;overflow-x:hidden}.app-container{flex-direction:column;gap:24px;width:100%;max-width:500px;padding:20px;display:flex}header{text-align:center}h1{letter-spacing:-.5px;margin-bottom:16px;font-size:2.5rem;font-weight:800}h1 .highlight{color:var(--accent);text-shadow:var(--accent-glow)}.controls{background:var(--panel-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:16px;flex-direction:column;gap:16px;padding:16px;display:flex;box-shadow:0 8px 32px #0000004d}.difficulty-selector{justify-content:space-between;gap:8px;display:flex}.diff-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:8px 0;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .3s}.diff-btn:hover{background:#ffffff0d}.diff-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--accent-glow)}.status-bar{justify-content:space-between;padding:0 8px;font-size:1.1rem;font-weight:600;display:flex}.errors{color:var(--text-error)}.board-container{justify-content:center;display:flex}.sudoku-board{background:var(--border-color);border:3px solid var(--border-thick);aspect-ratio:1;border-radius:8px;grid-template-columns:repeat(9,1fr);gap:1px;width:100%;display:grid;overflow:hidden;box-shadow:0 10px 40px #00000080}.cell{background:var(--cell-bg);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:clamp(1.2rem,5vw,1.8rem);font-weight:600;transition:background-color .2s,transform .1s;display:flex}.cell:nth-child(3n){border-right:2px solid var(--border-thick)}.cell:nth-child(9n){border-right:none}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--border-thick)}.cell.given{color:var(--text-given);font-weight:800}.cell:hover:not(.given){background:var(--cell-bg-hover)}.cell.selected{background:var(--cell-bg-selected);box-shadow:inset 0 0 0 2px var(--accent)}.cell.highlighted{background:var(--cell-bg-highlight);color:var(--accent);text-shadow:0 0 5px #0ea5e980;z-index:2;font-weight:900;transform:scale(1.05)}.cell.row-col-highlighted{background:#ffffff08}.cell.error{background:var(--cell-bg-error);color:var(--text-error);animation:.4s ease-in-out shake}.cell.pop{animation:.3s cubic-bezier(.175,.885,.32,1.275) popIn}.numpad{grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px;display:grid}.num-btn,.action-btn{background:var(--panel-bg);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);font-size:1.5rem;font-weight:600;font-family:var(--font-main);border-radius:12px;padding:12px 0;transition:all .2s}.num-btn:hover,.action-btn:hover{background:#ffffff1a;transform:translateY(-2px)}.num-btn:active,.action-btn:active{transform:translateY(1px)}.action-btn{color:var(--text-error)}.extra-controls{gap:8px;margin-top:10px;display:flex}.toggle-btn,.hint-btn{background:var(--panel-bg);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:8px;flex:1;padding:8px 0;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .3s}.toggle-btn.active{color:var(--accent);border-color:var(--accent);background:#0ea5e933}.hint-btn{color:#eab308;background:#eab30826;border-color:#eab30880}.hint-btn:hover:not(:disabled){background:#eab3084d}.hint-btn:disabled{opacity:.5;cursor:not-allowed}.actions{gap:12px;margin-top:10px;display:flex}.primary-btn,.secondary-btn{cursor:pointer;border:none;border-radius:12px;flex:1;padding:14px;font-family:inherit;font-size:1.1rem;font-weight:600;transition:all .3s}.primary-btn{color:#fff;background:linear-gradient(135deg,#0ea5e9,#2563eb);box-shadow:0 4px 15px #0ea5e966}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0ea5e999}.secondary-btn{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0}.secondary-btn:hover{color:#fff;background:#ffffff0d}.modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:100;opacity:1;background:#0f172ad9;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.modal-overlay.hidden{opacity:0;pointer-events:none}.modal-content{background:var(--panel-bg);border:1px solid var(--border-color);text-align:center;border-radius:20px;width:90%;max-width:300px;padding:30px;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);transform:scale(1);box-shadow:0 20px 50px #00000080}.modal-overlay.hidden .modal-content{transform:scale(.8)}.modal-content h2{margin-bottom:10px;font-size:2rem}.modal-content p{color:var(--text-secondary);margin-bottom:20px;font-size:1.1rem}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-3px)}40%,80%{transform:translate(3px)}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@media (width<=400px){.app-container{gap:16px;padding:10px}h1{margin-bottom:10px;font-size:2rem}.numpad{gap:4px}.num-btn,.action-btn{padding:10px 0;font-size:1.2rem}}
