:root{--bg-primary:#f3f0e7;--bg-accent:#e8eef7;--surface:#ffffffe6;--surface-strong:#fff;--surface-soft:#f8fafc;--surface-muted:#eef2f7;--border:#94a3b847;--border-strong:#0f172a;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--accent:#2563eb;--accent-soft:#dbeafe;--accent-soft-strong:#bfdbfe;--highlight:#e8f1ff;--highlight-value:#60a5fa80;--same-number-bg:#3b82f652;--same-number-ring:#2563ebe0;--same-number-text:#1d4ed8;--same-number-icon-glow:#3b82f647;--related-bg:#93c5fd33;--conflict-bg:#fca5a5f5;--error-bg:#fecacaeb;--error-text:#dc2626;--given-bg:#e2e8f0;--player-entry:#1d4ed8;--danger:#dc2626;--shadow:0 20px 45px #0f172a14;color:var(--text-primary);background:radial-gradient(circle at top, var(--bg-primary) 0%, #f7f4ee 38%, var(--bg-accent) 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}:root[data-theme=dark]{--bg-primary:#0f172a;--bg-accent:#111827;--surface:#0f172ae6;--surface-strong:#111827;--surface-soft:#172033;--surface-muted:#1f2937;--border:#94a3b838;--border-strong:#cbd5e1;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--accent:#60a5fa;--accent-soft:#1d4ed8;--accent-soft-strong:#2563eb;--highlight:#b4cdff1a;--highlight-value:#60a5fa8a;--same-number-bg:#60a5fa57;--same-number-ring:#bfdbfef0;--same-number-text:#dbeafe;--same-number-icon-glow:#bfdbfe57;--related-bg:#7db2ff2e;--conflict-bg:#991b1bc7;--error-bg:#7f1d1db8;--error-text:#ff6b6b;--given-bg:#1f2937;--player-entry:#93c5fd;--danger:#f87171;--shadow:0 24px 48px #02061759}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;width:100%;height:100dvh;overflow:hidden}html,body{overflow-x:hidden;padding:0!important}html{-webkit-text-size-adjust:100%}body{color:var(--text-primary);margin:0}button,input,textarea,select{font:inherit}a{color:inherit}#root{flex-direction:column;display:flex}.app-shell{width:100%;max-width:1180px;height:100dvh;padding:14px 14px calc(32px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;box-sizing:border-box;margin:0 auto;overflow:hidden auto}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);backdrop-filter:blur(14px);border-radius:22px}.eyebrow{color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;margin:0 0 6px;font-size:.7rem;font-weight:800}h1,h2{color:var(--text-primary);letter-spacing:-.035em;margin:0}h1{font-size:clamp(1.9rem,6.4vw,3.8rem);line-height:.98}h2{font-size:clamp(1.08rem,3.7vw,1.5rem);line-height:1.1}.subtitle,.card-copy,.rule-note,.modal-copy,.entry-card p,.section-copy{color:var(--text-secondary)}.subtitle{max-width:620px;margin:4px 0 0;font-size:clamp(.94rem,2.2vw,1.08rem);line-height:1.35}.panel-label,.stat-label{color:var(--text-muted);font-size:.82rem;font-weight:750}.primary-button,.secondary-button,.neutral-button,.numpad-button{cursor:pointer;text-align:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:14px;justify-content:center;align-items:center;min-height:38px;font-size:1rem;font-weight:700;text-decoration:none;transition:transform .14s,background-color .14s,color .14s,box-shadow .14s;display:inline-flex}.primary-button:hover,.secondary-button:hover,.neutral-button:hover,.numpad-button:hover{transform:translateY(-1px)}.primary-button{background:var(--accent);color:#fff;padding:10px 14px;box-shadow:0 12px 22px #2563eb33}.secondary-button,.neutral-button{padding:10px 14px}.secondary-button{background:var(--surface-soft);border:1px solid var(--border);color:var(--accent)}.neutral-button{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary)}.secondary-button.active,.neutral-button.active{background:var(--accent-soft);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--accent)}.numpad-button.active{color:var(--text-primary);background:#5b8def33;box-shadow:inset 0 0 0 2px #5b8defb3,0 6px 14px #5b8def24}:root[data-theme=dark] .numpad-button.active{color:var(--text-primary);background:#7db2ff38;box-shadow:inset 0 0 0 2px #7db2ffd1,0 6px 16px #60a5fa2e}.wide-button{width:100%}.home-shell{height:auto;min-height:auto;padding-bottom:calc(32px + env(safe-area-inset-bottom));flex-direction:column;justify-content:flex-start;gap:10px;display:flex;overflow:hidden visible}.home-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:relative}.home-hero{flex:1;min-width:0;padding:2px 2px 0}.close-menu-button{border:1px solid var(--border);background:var(--surface);width:38px;min-width:38px;height:38px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow);backdrop-filter:blur(12px);touch-action:manipulation;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;text-decoration:none;transition:transform .15s,background-color .15s,color .15s,border-color .15s;display:inline-flex}.close-menu-button:hover{background:var(--surface-strong);border-color:var(--accent);color:var(--accent);transform:scale(1.06)}.close-menu-button:active{transform:scale(.94)}.home-entry-list{gap:8px;display:grid}.entry-card{justify-content:space-between;align-items:center;gap:10px;min-height:88px;padding:12px 14px;display:flex}.entry-card-resume{background:linear-gradient(135deg, #2563eb29, transparent 60%), var(--surface);border-color:#3b82f673}.entry-card-featured{background:linear-gradient(135deg, #2563eb1a, transparent 58%), var(--surface)}.entry-card-strong{background:linear-gradient(135deg, #60a5fa12, transparent 54%), var(--surface)}.entry-card-soft{box-shadow:0 12px 28px #0f172a0d}.entry-card h2{font-size:clamp(1.04rem,3.5vw,1.28rem)}.entry-card p{margin:4px 0 0;font-size:.88rem;line-height:1.28}.entry-button{flex-shrink:0;width:100%;min-width:0}.detail-shell{height:auto;min-height:auto;padding-top:10px;padding-bottom:calc(22px + env(safe-area-inset-bottom));align-content:start;gap:12px;display:grid;overflow-y:visible}.back-button{border-radius:999px;width:fit-content;min-height:36px;padding:8px 14px;font-size:.9rem;font-weight:700}.detail-card{gap:18px;padding:20px;display:grid}.detail-heading{gap:5px;display:grid}.detail-info,.info-stack,.best-times{gap:8px;display:grid}.info-row,.best-time-row{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:14px;display:flex}.info-row strong,.best-time-row strong{color:var(--text-primary);text-align:right}.detail-section{gap:10px;display:grid}.detail-section h2{font-size:1.08rem}.section-copy{margin:5px 0 0}.skin-detail-card,.skin-section,.skin-option-list,.skin-actions{display:grid}.skin-detail-card{gap:20px}.skin-option-list{gap:10px}.skin-option{gap:12px;padding:16px;display:grid}.skin-option h3{color:var(--text-primary);margin:0;font-size:1rem}.skin-option p{color:var(--text-secondary);margin:4px 0 0;font-size:.9rem;line-height:1.35}.skin-option.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft-strong)}.skin-actions{gap:8px}.split-section{align-items:center}.settings-detail-card{gap:22px}.difficulty-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.rule-note{margin:0;font-size:.92rem}.game-shell{box-sizing:border-box;flex-direction:column;max-width:1100px;height:100dvh;padding:0 10px;display:flex;overflow:hidden}.game-layout{flex-direction:column;flex:1;gap:6px;height:100%;min-height:0;display:flex;overflow:hidden}.game-column{flex-direction:column;flex:1;width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.ad-slot-container,#seattle-ad-20001,#seattle-ad-10001,#seattle-ad-10002{box-sizing:border-box;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:100%;min-width:min(300px,100%);max-width:100%;height:auto;margin:0 auto;display:flex}#seattle-ad-20001{z-index:10;background:var(--bg-primary,#f3f0e7);margin-bottom:8px;position:relative}#seattle-ad-10001{margin-top:10px;margin-bottom:10px}#seattle-ad-10002{margin-top:5px;margin-bottom:10px}.ad-slot-container iframe,.ad-slot-container img,.ad-slot-container ins{flex-shrink:0;margin:0 auto;display:block;max-width:100%!important}.ad-slot-container.has-ad-label:before{content:"Advertisement";color:var(--text-muted,#8e8a80);text-transform:uppercase;letter-spacing:.05em;text-align:center;width:100%;margin-bottom:4px;font-size:8px;line-height:1.2;display:block}.ad-slot-container:empty:before{display:none}.game-main{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;min-width:0;min-height:0;padding-bottom:calc(56px + env(safe-area-inset-bottom) + var(--anchor-safe-height,0px));flex:1;align-content:start;gap:6px;display:grid;overflow:hidden auto}.game-sidebar{align-content:start;gap:6px;min-width:0;display:grid}.game-status{white-space:nowrap;justify-content:space-between;align-items:center;gap:8px;padding:0 0 6px;display:flex}.game-status .back-button{flex-shrink:0;min-height:30px;padding:5px 12px;font-size:.8rem}.game-status strong,.game-status span{min-width:0}.game-status strong{color:var(--text-primary);font-size:.92rem;line-height:1.2}.game-status span{color:var(--text-secondary);margin-left:auto;font-size:.84rem;font-weight:600;line-height:1.2}.compact-button{border-radius:999px;min-height:32px;padding:6px 10px;font-size:.82rem}.board-card{width:80%;margin:0 auto auto;padding:0;overflow:visible}.game-ad-banner-wrapper{box-sizing:border-box;justify-content:center;align-items:center;width:100%;max-width:320px;height:100px;min-height:100px;margin:4px auto 16px;display:flex;overflow:hidden}.game-ad-slot{justify-content:center;align-items:center;width:320px;min-width:320px;height:100px;min-height:100px;margin:0 auto;display:flex;overflow:hidden}.board-frame{aspect-ratio:1;box-sizing:border-box;width:min(100vw - 24px,620px);max-width:100%;margin:0 auto}.board-frame.board-skin-classic{box-shadow:none;background:0 0;border-radius:18px;padding:0}.playable-board{box-sizing:border-box;width:100%;height:100%;display:flex}.playable-board.playable-board-classic{background:var(--surface-strong);border-radius:18px;overflow:hidden}.board-frame.board-skin-wooden{background:url(/daily-sudoku/skins/boards/wooden-paper-board-plain.png) 50%/100% 100% no-repeat;border-radius:0;padding:4%;position:relative;box-shadow:0 18px 34px #0f172a1f}.playable-board.playable-board-wooden{background:#fff6e56b;border-radius:4px;overflow:hidden}:root[data-theme=dark] .board-frame.board-skin-wooden{box-shadow:0 18px 34px #02061761}:root[data-theme=dark] .playable-board.playable-board-wooden{background:#fff6e557}.board{aspect-ratio:1;border:2px solid var(--border-strong);background:var(--surface-strong);border-radius:14px;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);width:100%;max-width:100%;height:100%;margin:0 auto;display:grid;overflow:hidden}.board-frame.board-skin-classic .board{background:var(--surface-strong);border-color:var(--border-strong);border-radius:18px;margin:0}.board-frame.board-skin-wooden .board{background:#fffaf080;border-color:#463c2d6b;border-radius:4px;width:100%;max-width:none;margin:0}.board-frame.board-skin-wooden .cell{background-color:#fffaf080;border-color:#463c2d6b}.board-frame.board-skin-wooden .cell:hover{background-color:#fff6e994}.board-frame.board-skin-wooden .cell.given:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){color:#4b3625;background-color:#e6d8c294}.board-frame.board-skin-wooden .cell.same-number-cell:not(.error-cell):not(.conflict-cell):not(.selected-cell){background-color:#5695ff47;box-shadow:inset 0 0 0 2px #2563ebd1,inset 0 0 18px #ffffff29}.board-frame.board-skin-wooden .cell.same-number-cell .cell-value,.board-frame.board-skin-wooden .cell.same-number-cell .cell-value-text,.board-frame.board-skin-wooden .cell.same-number-cell .digit-fallback{color:#1e40af}.board-frame.board-skin-wooden .cell.same-number-cell .cell-icon,.board-frame.board-skin-wooden .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 10px #3b82f647)brightness(1.08)saturate(1.08)}.board-frame.board-skin-wooden .cell.player-entry:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){background-color:#fffaf075}.board-frame.board-skin-wooden .cell.box-edge-right{border-right-color:#141414e0}.board-frame.board-skin-wooden .cell.box-edge-bottom{border-bottom-color:#141414e0}.board-frame.board-skin-wooden img{opacity:1}:root[data-theme=dark] .board-frame.board-skin-wooden .board{background:#fffaf057;border-color:#463c2d6b}:root[data-theme=dark] .board-frame.board-skin-wooden .cell{background-color:#fffaf070;border-color:#463c2d6b}:root[data-theme=dark] .board-frame.board-skin-wooden .cell:hover{background-color:#fff6e98f}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.given:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){color:#3f2d1d;background-color:#e6d8c299}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell:not(.error-cell):not(.conflict-cell):not(.selected-cell){background-color:#60a5fa57;box-shadow:inset 0 0 0 2px #bfdbfee6,inset 0 0 20px #bfdbfe29}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .cell-value,:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .cell-value-text,:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .digit-fallback{color:#eff6ff}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .cell-icon,:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 12px #bfdbfe57)brightness(1.14)saturate(1.14)}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.player-entry:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){background-color:#fffaf06b}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.box-edge-right{border-right-color:#141414eb}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.box-edge-bottom{border-bottom-color:#141414eb}.cell{border:1px solid var(--border);background:var(--surface-strong);box-sizing:border-box;min-width:0;min-height:0;color:var(--text-primary);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:0;justify-content:center;align-items:center;padding:0;font-size:clamp(18px,5vw,32px);font-weight:700;line-height:1;transition:background-color .15s,color .15s;display:flex;position:relative;overflow:hidden}.cell>span,.numpad-button>span{justify-content:center;align-items:center;width:100%;height:100%;display:inline-flex}.cell-value{width:100%;height:100%;color:inherit;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:relative}.cell-value-text{font-size:clamp(22px,6.2vw,36px);font-weight:800}.cell-value-icon{font-size:0}.digit-fallback{width:100%;height:100%;color:inherit;justify-content:center;align-items:center;font-size:clamp(22px,6.2vw,36px);font-weight:800;line-height:1;display:none}.cell-icon,.number-icon{object-fit:contain;width:76%;height:76%;display:block}.numpad-number-icon{width:68%;height:68%}.numpad-number-value{justify-content:center;align-items:center;width:100%;height:100%;font-size:clamp(.92rem,3.6vw,1.1rem);font-weight:700;line-height:1;display:inline-flex}.cell:hover{background:var(--surface-soft)}.cell.related-cell{background:var(--related-bg)}.cell.same-number-cell{background:var(--same-number-bg);box-shadow:inset 0 0 0 2px var(--same-number-ring), inset 0 0 22px #ffffff24;z-index:2}.cell.same-number-cell .cell-value,.cell.same-number-cell .cell-value-text,.cell.same-number-cell .digit-fallback{color:var(--same-number-text);font-weight:900}.cell.same-number-cell .cell-icon,.cell.same-number-cell .number-icon{filter:drop-shadow(0 0 10px var(--same-number-icon-glow)) brightness(1.06) saturate(1.08);transform:scale(1.05)}.cell.selected-cell{background:var(--highlight-value);z-index:3;box-shadow:inset 0 0 0 3px #2563ebf5,inset 0 0 26px #dbeafe38}.cell.selected-cell.same-number-cell{background:#60a5fa94;box-shadow:inset 0 0 0 3px #2563ebfa,inset 0 0 30px #dbeafe38}:root[data-theme=dark] .cell.related-cell{background:var(--related-bg)}:root[data-theme=dark] .cell.same-number-cell{background:var(--same-number-bg);box-shadow:inset 0 0 0 2px var(--same-number-ring), inset 0 0 26px #bfdbfe29}:root[data-theme=dark] .cell.same-number-cell .cell-value,:root[data-theme=dark] .cell.same-number-cell .cell-value-text,:root[data-theme=dark] .cell.same-number-cell .digit-fallback{color:var(--same-number-text)}:root[data-theme=dark] .cell.same-number-cell .cell-icon,:root[data-theme=dark] .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 12px var(--same-number-icon-glow)) brightness(1.14) saturate(1.14)}:root[data-theme=dark] .cell.selected-cell{background:var(--highlight-value);z-index:3;box-shadow:inset 0 0 0 3px #bfdbfefa,inset 0 0 26px #bfdbfe2e}:root[data-theme=dark] .cell.selected-cell.same-number-cell{background:#60a5fa99;box-shadow:inset 0 0 0 3px #bfdbfefc,inset 0 0 30px #bfdbfe33}.board-frame.board-skin-only .cell.related-cell{background:#3b82f61f!important}.board-frame.board-skin-only .cell.same-number-cell{background:#3b82f64d!important;box-shadow:inset 0 0 0 2px #2563ebdb,inset 0 0 20px #ffffff29!important}.board-frame.board-skin-only .cell.same-number-cell .cell-value,.board-frame.board-skin-only .cell.same-number-cell .cell-value-text,.board-frame.board-skin-only .cell.same-number-cell .digit-fallback{color:#1e40af}.board-frame.board-skin-only .cell.same-number-cell .cell-icon,.board-frame.board-skin-only .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 10px #3b82f647)brightness(1.08)saturate(1.08)}.board-frame.board-skin-only .cell.selected-cell{background:#3b82f65c!important;box-shadow:inset 0 0 0 3px #2563ebf5,inset 0 0 24px #ffffff29!important}.board-frame.board-skin-only .cell.selected-cell.same-number-cell{background:#3b82f66b!important;box-shadow:inset 0 0 0 3px #2563ebfa,inset 0 0 28px #ffffff29!important}.board-frame.board-skin-only .cell.error-cell,.board-frame.board-skin-only .cell.error-cell.related-cell,.board-frame.board-skin-only .cell.error-cell.same-number-cell,.board-frame.board-skin-only .cell.error-cell.selected-cell,.board-frame.board-skin-only .cell.conflict-cell,.board-frame.board-skin-only .cell.conflict-cell.related-cell,.board-frame.board-skin-only .cell.conflict-cell.same-number-cell,.board-frame.board-skin-only .cell.conflict-cell.selected-cell{color:#b91c1c!important;background:#f871713d!important;box-shadow:inset 0 0 0 2px #ef4444eb!important}.board-frame.board-skin-only .cell.error-cell .cell-value,.board-frame.board-skin-only .cell.conflict-cell .cell-value,.board-frame.board-skin-only .cell.error-cell .digit-fallback,.board-frame.board-skin-only .cell.conflict-cell .digit-fallback{color:#b91c1c!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.related-cell{background:#60a5fa1f!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell{background:#60a5fa52!important;box-shadow:inset 0 0 0 2px #bfdbfeeb,inset 0 0 24px #bfdbfe29!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .cell-value,:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .cell-value-text,:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .digit-fallback{color:#eff6ff}:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .cell-icon,:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 12px #bfdbfe57)brightness(1.14)saturate(1.14)}:root[data-theme=dark] .board-frame.board-skin-only .cell.selected-cell{background:#60a5fa6b!important;box-shadow:inset 0 0 0 3px #bfdbfefa,inset 0 0 26px #bfdbfe2e!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.selected-cell.same-number-cell{background:#60a5fa7a!important;box-shadow:inset 0 0 0 3px #bfdbfefc,inset 0 0 28px #bfdbfe2e!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell.related-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell.same-number-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell.selected-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell.related-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell.same-number-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell.selected-cell{color:#ffe4e6!important;background:#f8717147!important;box-shadow:inset 0 0 0 2px #fca5a5f2!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell .cell-value,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell .cell-value,:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell .digit-fallback,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell .digit-fallback{color:#ffe4e6!important}.cell.given{color:var(--text-primary);font-weight:850}.cell.given:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){background:var(--given-bg)}.cell.player-entry{color:var(--player-entry);background-color:#93c5fd42}.cell.player-entry:not(.mistake):not(.error-cell):not(.conflict-cell) .cell-value-icon{filter:drop-shadow(1px 0 0 var(--player-entry)) drop-shadow(-1px 0 0 var(--player-entry)) drop-shadow(0 1px 0 var(--player-entry)) drop-shadow(0 -1px 0 var(--player-entry))}.cell.mistake,.cell.error-cell,.cell.error-cell.related-cell,.cell.error-cell.same-number-cell,.cell.error-cell.selected-cell,.cell.error-cell.conflict-cell{z-index:5;background:var(--error-bg)!important;color:var(--error-text)!important;box-shadow:inset 0 0 0 2px #ef4444e6!important}.cell.conflict-cell,.cell.conflict-cell.related-cell,.cell.conflict-cell.same-number-cell,.cell.conflict-cell.selected-cell{z-index:6;animation:.65s ease-out conflict-pulse;background:var(--conflict-bg)!important;color:var(--error-text)!important;box-shadow:inset 0 0 0 2px #b91c1cf5,0 0 0 1px #b91c1c1f!important}.cell.error-cell .cell-value,.cell.conflict-cell .cell-value,.cell.error-cell .digit-fallback,.cell.conflict-cell .digit-fallback,.cell.error-cell,.cell.conflict-cell{font-weight:800;color:var(--error-text)!important}.cell.error-cell img,.cell.conflict-cell img{filter:none}:root[data-theme=dark] .cell.mistake,:root[data-theme=dark] .cell.error-cell,:root[data-theme=dark] .cell.error-cell.related-cell,:root[data-theme=dark] .cell.error-cell.same-number-cell,:root[data-theme=dark] .cell.error-cell.selected-cell,:root[data-theme=dark] .cell.error-cell.conflict-cell{z-index:5;background:var(--error-bg)!important;color:var(--error-text)!important;box-shadow:inset 0 0 0 2px #f87171f2!important}:root[data-theme=dark] .cell.conflict-cell,:root[data-theme=dark] .cell.conflict-cell.related-cell,:root[data-theme=dark] .cell.conflict-cell.same-number-cell,:root[data-theme=dark] .cell.conflict-cell.selected-cell{z-index:6;background:var(--conflict-bg)!important;color:var(--error-text)!important;box-shadow:inset 0 0 0 2px #fca5a5f2,0 0 0 1px #fca5a524!important}:root[data-theme=dark] .cell.error-cell .cell-value,:root[data-theme=dark] .cell.conflict-cell .cell-value,:root[data-theme=dark] .cell.error-cell .digit-fallback,:root[data-theme=dark] .cell.conflict-cell .digit-fallback,:root[data-theme=dark] .cell.error-cell,:root[data-theme=dark] .cell.conflict-cell{font-weight:800;color:var(--error-text)!important}.cell.box-edge-right{border-right:2px solid var(--border-strong)}.cell.box-edge-bottom{border-bottom:2px solid var(--border-strong)}.cell:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.neutral-button:focus-visible,.numpad-button:focus-visible{z-index:1;outline:3px solid var(--accent);outline-offset:-3px}.notes-grid{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;gap:1px;width:100%;height:100%;padding:3px;display:grid}.note-value{color:var(--text-muted);font-size:clamp(.42rem,1.9vw,.72rem);font-weight:650;line-height:1}.mobile-controls{display:block}.desktop-controls{display:none}.game-controls{gap:6px;margin-top:2px;padding:0;display:grid}.numpad{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:0;display:grid}.numpad-button{background:var(--surface-soft);height:32px;min-height:32px;color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border);font-size:clamp(.92rem,3.6vw,1.1rem)}.clear-button{width:100%;height:38px;min-height:38px}.action-grid{gap:6px;display:grid}.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}@keyframes feedback-shake-pulse{0%{transform:translate(0);box-shadow:0 0 #ef444400}20%{transform:translate(-2px);box-shadow:0 0 0 2px #ef444438}40%{transform:translate(2px);box-shadow:0 0 0 3px #ef44442e}60%{transform:translate(-1px)}80%{transform:translate(1px)}to{transform:translate(0);box-shadow:0 0 #ef444400}}.message-box{border:1px solid var(--border);background:var(--surface-soft);min-height:36px;color:var(--text-secondary);border-radius:14px;margin-top:2px;padding:8px 10px;font-size:.9rem;font-weight:650;line-height:1.25}.feedback-message.is-neutral{color:var(--text-secondary)}.feedback-message.is-success{color:#1e3a8a;background:#eff6fff5;border:1px solid #60a5fa52}.feedback-message.is-error{color:#7f1d1d;background:#fef2f2f5;border:1px solid #f871716b;animation:.42s ease-out feedback-shake-pulse}:root[data-theme=dark] .feedback-message.is-success{color:#dbeafe;background:#1e40af47;border:1px solid #60a5fa6b}:root[data-theme=dark] .feedback-message.is-error{color:#fecaca;background:#7f1d1d61;border:1px solid #f8717180}@media (width>=768px){.cell-value-text,.digit-fallback{font-size:clamp(24px,2.4vw,38px)}}.modal-backdrop{z-index:100;background:#0f172a75;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.completion-modal{width:min(100%,540px);padding:24px;animation:.18s ease-out modal-in;position:relative;overflow:hidden}.completion-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.stat-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:16px;gap:4px;padding:10px;display:grid}.stat-card strong{color:var(--text-primary)}.best-time-badge{background:var(--accent-soft);color:var(--text-primary);border-radius:14px;margin:0 0 16px;padding:11px 13px;font-weight:800}.modal-actions{gap:6px;display:grid}.modal-actions .primary-button{gap:8px}.modal-actions .primary-button:disabled{cursor:progress;opacity:.72;transform:none}.reward-play-icon{flex-shrink:0;width:40px;height:22px}.reward-hint{color:var(--text-secondary);text-align:center;margin:0 0 10px;font-size:.9rem;font-weight:650}.celebration-burst{opacity:.92;justify-content:center;align-items:center;display:flex;position:absolute;top:18px;right:20px}.celebration-burst span{justify-content:center;align-items:center;font-size:1.5rem;line-height:1;animation:.42s ease-out celebration-pop;display:inline-flex;transform:rotate(10deg)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes conflict-pulse{0%{box-shadow:inset 0 0 #ef444400}35%{box-shadow:inset 0 0 0 999px #ef44442e}to{box-shadow:inset 0 0 #ef444400}}@keyframes celebration-pop{0%{opacity:0;transform:translateY(-4px)rotate(2deg)scale(.9)}to{opacity:1;transform:translateY(0)rotate(10deg)scale(1)}}@media (width>=760px){.app-shell{padding:22px}.home-entry-list{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-button{width:auto;min-width:150px}.detail-card{max-width:760px;margin:0 auto}.split-section{grid-template-columns:1fr auto}.modal-actions{grid-template-columns:1fr 1fr}}@media (width>=980px){.home-shell{justify-content:center}.home-entry-list{grid-template-columns:repeat(4,minmax(0,1fr))}.entry-card{flex-direction:column;align-items:stretch;min-height:150px}.entry-button{width:100%}}@media (width>=769px){.game-shell{height:100dvh;padding:8px 18px;overflow:hidden}.game-layout{grid-template-columns:minmax(0,1fr) minmax(330px,360px);align-items:stretch;gap:20px;height:100%;min-height:0;display:grid;overflow:hidden}.game-column{flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.game-main{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;flex-direction:column;flex:1;gap:8px;height:100%;min-height:0;padding-bottom:32px;display:flex;overflow:hidden auto}.game-status{white-space:nowrap;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:2px 0 6px;display:flex}.game-status strong{font-size:.95rem}.game-status span{margin-left:auto;font-size:.88rem}.board-card{justify-content:center;align-items:center;width:100%;max-width:100%;margin:0 auto;padding:0;display:flex}.board-frame{aspect-ratio:1;width:min(100%,540px,100dvh - 170px);max-width:540px;margin:0 auto}.board{width:100%;max-width:100%;height:100%}.mobile-controls{display:none}.desktop-controls{width:100%;display:block}.game-sidebar{-webkit-overflow-scrolling:touch;flex-direction:column;gap:12px;height:100%;min-height:0;padding-bottom:32px;display:flex;overflow:hidden auto}.game-controls{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:22px;gap:10px;padding:14px}.numpad{gap:6px}.numpad-button{height:38px;min-height:38px}}@media (width<=768px){.game-shell{height:100dvh;overflow:hidden}.game-layout,.game-main{gap:5px}.game-main{padding-bottom:calc(56px + env(safe-area-inset-bottom))}.game-status{gap:1px 8px;padding:0 6px 1px}.game-status .back-button{min-height:28px;padding:4px;font-size:.76rem}.game-status strong{font-size:.76rem;line-height:1.12}.game-status span{font-size:.72rem;line-height:1.12}.back-button{height:34px;min-height:34px;padding:6px 12px;font-size:.8rem}.compact-button{height:32px;min-height:32px;padding:4px 9px;font-size:.78rem}.board{border-radius:12px;width:min(100vw - 24px,620px);max-width:100%}.board-frame.board-skin-wooden{border-radius:0;padding:4%}.board-frame.board-skin-classic,.playable-board.playable-board-classic{border-radius:18px}.board-frame.board-skin-wooden .board{border-radius:4px;width:100%}.cell,.cell-value-text,.digit-fallback{font-size:clamp(18px,5vw,32px)}.mobile-controls{margin-top:2px}.game-controls{gap:6px;padding-bottom:0}.numpad{gap:4px;padding:0 6px}.numpad-button{border-radius:12px;height:26px;min-height:26px;font-size:1.05rem}.clear-button,.game-controls .secondary-button,.game-controls .primary-button,.game-controls .neutral-button{border-radius:14px;height:38px;min-height:38px;padding:7px 10px;font-size:.95rem}.action-grid{gap:6px;padding:0 6px}.message-box{border-radius:12px;width:96%;min-height:28px;margin:auto;padding:6px 10px;font-size:.78rem;line-height:1.25}}@media (width<=520px){.home-shell{min-height:auto;padding-top:12px;padding-bottom:calc(48px + env(safe-area-inset-bottom));justify-content:flex-start;overflow-y:visible}.entry-card{flex-direction:column;align-items:stretch;min-height:0;padding:12px 13px}.entry-button{width:100%;min-width:0}}@media (width<=420px){.app-shell{padding-left:0;padding-right:0}.detail-card,.entry-card{border-radius:18px}.detail-card{padding:18px}.game-shell{padding-bottom:0;padding-left:0;padding-right:0;overflow:hidden}.board{border-radius:12px;width:min(100vw - 20px,620px)}.board-frame.board-skin-wooden{padding:8px}.board-frame.board-skin-classic,.playable-board.playable-board-classic{border-radius:18px}.board-frame.board-skin-wooden .board{width:100%}.game-controls{gap:6px}.numpad-button{height:26px;min-height:26px;padding:0 6px}.neutral-button{width:96%;margin:auto}.completion-stats{grid-template-columns:1fr}}@media (width<=380px){.game-shell{padding-bottom:0;overflow:hidden}.game-layout,.game-main{gap:5px}.board{width:min(100vw - 16px,620px)}.numpad-button{height:26px;min-height:26px}.game-status strong{font-size:.72rem}.game-status span{font-size:.68rem}.message-box{width:96%;min-height:26px;margin:auto;padding:5px 8px;font-size:.74rem}.primary-button,.secondary-button,.neutral-button{height:38px;min-height:38px}.neutral-button{width:96%;margin:auto}}#new-button{color:#000;text-align:center;background:#f0f0f0;border:2px outset #7db2ff38;border-radius:1rem;margin:0;padding:1px 2px;font-size:.6rem;font-weight:700;text-decoration:none;display:inline-block}.skin-fab-group{top:calc(36px + env(safe-area-inset-top,0px));right:calc(8px + env(safe-area-inset-right,0px));z-index:50;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}.skin-toggle-fab{backdrop-filter:blur(10px);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:linear-gradient(145deg,#fffffffa,#f1f5f9e6);border:1.5px solid #8b5cf652;border-radius:50%;justify-content:center;align-items:center;width:35px;height:35px;padding:0;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,border-color .18s;display:flex;box-shadow:0 4px 14px -1px #0000001f,0 2px 5px -1px #00000014,inset 0 1px 1px #fffffff2}.skin-toggle-fab:hover{border-color:#8b5cf6a6;transform:translateY(-1px)scale(1.08);box-shadow:0 6px 18px -1px #8b5cf652,0 2px 6px -1px #0000001a,inset 0 1px 1px #fff}.skin-toggle-fab:active{transform:scale(.92)}.skin-toggle-icon{filter:drop-shadow(0 2px 3px #00000029);width:22px;height:22px;display:block}:root[data-theme=dark] .skin-toggle-fab{background:linear-gradient(145deg,#1e293bf5,#0f172aeb);border-color:#a78bfa66;box-shadow:0 4px 16px -1px #00000073,0 2px 6px -1px #0000004d,inset 0 1px 1px #ffffff29}:root[data-theme=dark] .skin-toggle-fab:hover{border-color:#a78bfab3;box-shadow:0 6px 20px -1px #a78bfa61,0 2px 6px -1px #0006,inset 0 1px 1px #ffffff40}@media (width>=769px){.skin-fab-group,.skin-toggle-fab{display:none!important}}@media (width<=299px){.game-shell{padding:0}.game-layout,.game-main{gap:4px}.game-main{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.skin-fab-group{flex-direction:row;flex-shrink:0;justify-content:flex-end;gap:4px;margin:0;padding:2px 6px 0;position:static}.skin-toggle-fab{width:26px;height:26px}.skin-toggle-icon{width:16px;height:16px}.game-status{white-space:normal;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:0 6px;padding:0 6px;display:grid}.game-status strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.68rem;line-height:1.15;overflow:hidden}.game-status span{white-space:nowrap;margin-left:0;font-size:.62rem;line-height:1.15}#new-button{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-height:22px;padding:0 8px;font-size:.68rem;line-height:1;display:inline-flex}.board-card{width:100%;margin:0;padding:0 6px}.board-frame{width:min(100%,max(100dvh - 325px,min(196px,100dvh - 170px)));max-width:100%;margin:0 auto}.board{width:100%}.board-frame.board-skin-wooden{padding:4px}.cell,.cell-value-text,.digit-fallback{font-size:clamp(12px,4.8vw,20px)}.mobile-controls{margin-top:0}.game-controls{gap:4px}.numpad,.action-grid{gap:4px;padding:0 6px}.numpad-button{border-radius:8px;height:24px;min-height:24px;font-size:.9rem}.clear-button,.game-controls .secondary-button,.game-controls .primary-button,.game-controls .neutral-button{border-radius:10px;height:30px;min-height:30px;padding:4px 6px;font-size:.8rem}.message-box{border-radius:8px;width:calc(100% - 12px);min-height:22px;margin:0 auto;padding:4px 8px;font-size:.68rem;line-height:1.2}.neutral-button{width:calc(100% - 12px);margin:0 auto}}@media (width<=299px) and (height<=420px){.skin-fab-group{gap:3px;padding-top:2px}.skin-toggle-fab{border-width:1px;width:22px;height:22px}.skin-toggle-icon{width:14px;height:14px}.game-status{column-gap:4px}.game-status strong{font-size:.6rem}.game-status span{font-size:.55rem}#new-button{min-height:18px;padding:0 6px;font-size:.6rem}.board-frame{width:min(100%,max(100dvh - 325px,min(196px,100dvh - 140px)))}.board-frame.board-skin-wooden{padding:3px}.cell,.cell-value-text,.digit-fallback{font-size:clamp(10px,4vw,14px)}.note-value{font-size:.38rem}.numpad-button{border-radius:6px;height:22px;min-height:22px;font-size:.75rem}.numpad-number-value{font-size:.75rem}.message-box{border-radius:6px;min-height:18px;padding:2px 6px;font-size:.6rem}.clear-button,.game-controls .secondary-button,.game-controls .primary-button,.game-controls .neutral-button{border-radius:8px;height:26px;min-height:26px;padding:2px 6px;font-size:.7rem}}
