:root{color:#293044;background:#e8ebf2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}html,body,#root{width:100%;height:100%;overflow:hidden}*{box-sizing:border-box}body{min-width:0;margin:0}button{font:inherit}button:focus-visible{outline:3px solid rgb(99 102 241 / 42%);outline-offset:3px}.appShell{--page-bg: #e8ebf2;--surface: #e8ebf2;--surface-raised: #edf0f6;--surface-pressed: #dfe3ec;--ink: #293044;--ink-strong: #20263a;--muted: #70798d;--muted-strong: #596277;--accent: #6366f1;--accent-strong: #5046d8;--accent-soft: #e3e4ff;--teal: #238c88;--teal-soft: #d8f0ec;--danger: #b74b58;--danger-soft: #f8e0e2;--warning: #a16b31;--warning-soft: #f8ead8;--board-bg: #1e2229;--board-line-thick: #1e2229;--board-line-thin: #cbd1dc;--cell-bg: #fbfcfd;--cell-hover: #eef7f5;--cage-line: #0f625c;--cage-label: #12625d;--shadow-light: rgb(255 255 255 / 86%);--shadow-dark: rgb(174 181 198 / 72%);--shadow-raised: 8px 8px 18px var(--shadow-dark), -8px -8px 18px var(--shadow-light);--shadow-raised-tight: 5px 5px 11px var(--shadow-dark), -5px -5px 11px var(--shadow-light);--shadow-pressed: inset 5px 5px 10px var(--shadow-dark), inset -5px -5px 10px var(--shadow-light);display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px;width:100%;height:100dvh;overflow:hidden;padding:18px;background:radial-gradient(circle at 12% 8%,rgb(255 255 255 / 58%),transparent 28%),radial-gradient(circle at 88% 92%,rgb(207 214 232 / 54%),transparent 30%),var(--page-bg);color:var(--ink);color-scheme:light;transition:background .18s ease,color .18s ease}.appShell[data-theme=dark]{--page-bg: #242936;--surface: #242936;--surface-raised: #2a3040;--surface-pressed: #202532;--ink: #e7ebf5;--ink-strong: #f8f9ff;--muted: #a1aabd;--muted-strong: #c2c9d8;--accent: #8d91ff;--accent-strong: #a9acff;--accent-soft: #363957;--teal: #63c8c0;--teal-soft: #293f43;--danger: #ff9ca4;--danger-soft: #4b3038;--warning: #f0b76d;--warning-soft: #4a3b2b;--board-bg: #121212;--board-line-thick: #737373;--board-line-thin: #353535;--cell-bg: #121212;--cell-hover: #1d1d1d;--cage-line: #f7f7f2;--cage-label: #63d7d1;--shadow-light: rgb(58 66 84 / 70%);--shadow-dark: rgb(13 16 24 / 58%);color-scheme:dark;background:radial-gradient(circle at 12% 8%,rgb(73 82 105 / 28%),transparent 28%),radial-gradient(circle at 88% 92%,rgb(12 16 25 / 34%),transparent 30%),var(--page-bg)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;color:var(--ink-strong);font-size:1.05rem;line-height:1.1;letter-spacing:-.02em;white-space:nowrap}h1 span{display:inline-flex;align-items:center;min-height:23px;margin-left:9px;padding:0 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;vertical-align:2px}h2{margin-bottom:12px;color:var(--ink-strong);font-size:.9rem;font-weight:900;letter-spacing:.02em}.appTitle{min-width:0}.topBar{display:flex;align-items:center;justify-content:space-between;gap:14px;width:min(1200px,100%);min-height:42px;margin:0 auto}.headerActions{display:flex;align-items:center;gap:10px}.headerButton,.difficultyGrid button,.numberPad button,.resetButton,.combinationList .combination{border:0;background:var(--surface);color:var(--ink);cursor:pointer;font-weight:850;transition:color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}.headerButton{min-height:40px;padding:0 15px;border-radius:13px;box-shadow:var(--shadow-raised-tight)}.headerButton:hover,.difficultyGrid button:hover,.numberPad button:hover:not(:disabled),.resetButton:hover:not(:disabled),.combinationList .combination:hover:not(:disabled){color:var(--accent-strong);transform:translateY(-1px)}.headerButton:active,.difficultyGrid button:active,.numberPad button:active:not(:disabled),.resetButton:active:not(:disabled),.combinationList .combination:active:not(:disabled){box-shadow:var(--shadow-pressed);transform:translateY(0)}.inviteButton{color:var(--accent-strong)}.themeToggle{min-width:76px}.eyebrow{margin:0 0 4px;color:var(--teal);font-size:.68rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase}.muted{color:var(--muted)}.gameLayout{display:grid;grid-template-columns:minmax(0,1fr) minmax(232px,292px);gap:18px;align-items:stretch;width:min(1200px,100%);height:100%;min-height:0;margin:0 auto;overflow:visible}.preGameLayout{display:grid;place-items:center;width:min(760px,100%);height:100%;min-height:0;margin:0 auto;overflow:hidden}.preGamePanel{display:grid;gap:15px;width:min(520px,100%);padding:30px;border-radius:22px;background:var(--surface);box-shadow:var(--shadow-raised)}.preGamePanel h2{margin:0;font-size:1.55rem}.preGamePanel dl{margin-bottom:0}.loadingMark{width:38px;height:38px;border:0;border-radius:50%;box-shadow:var(--shadow-pressed);position:relative;animation:spin .9s linear infinite}.loadingMark:after{position:absolute;inset:9px;border:3px solid transparent;border-top-color:var(--accent);border-right-color:var(--teal);border-radius:50%;content:""}@keyframes spin{to{transform:rotate(360deg)}}.difficultyGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.difficultyGridLarge{grid-template-columns:repeat(2,minmax(0,1fr))}.difficultyGrid button{min-height:42px;border-radius:13px;box-shadow:var(--shadow-raised-tight);text-transform:capitalize}.difficultyGridLarge button{min-height:62px;font-size:1rem}.difficultyGrid button:hover,.difficultyGrid button.active{background:var(--accent-soft);color:var(--accent-strong)}.difficultyGrid button.active{box-shadow:var(--shadow-pressed)}.boardArea{display:grid;grid-template-rows:minmax(0,1fr);gap:0;min-width:0;min-height:0;overflow:hidden;padding:0;border-radius:0;background:transparent;box-shadow:none}.boardFrame{container:board-frame / size;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden}.sudokuBoard{position:relative;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));width:min(100%,720px);height:auto;aspect-ratio:1;margin:0;overflow:visible;border:3px solid var(--board-line-thick);border-radius:0;background:var(--board-bg);box-shadow:none;touch-action:none;-webkit-user-select:none;user-select:none}@supports (width: 100cqw){.sudokuBoard{width:min(100cqw,100cqh,720px)}}.cursorLayer{position:absolute;inset:0;z-index:6;pointer-events:none}.remoteCursor{--player-color: #6366f1;position:absolute;display:grid;gap:3px;transform:translate(2px,2px);transition:left 80ms linear,top 80ms linear;will-change:left,top}.remoteCursor:before{width:17px;height:22px;background:var(--player-color);clip-path:polygon(0 0,0 18px,5px 13px,8px 21px,12px 20px,9px 12px,16px 12px);filter:drop-shadow(0 2px 2px rgb(0 0 0 / 25%));content:""}.remoteCursor span{width:max-content;max-width:120px;padding:3px 8px;border-radius:8px;background:var(--player-color);color:#fff;font-size:.68rem;font-weight:850;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 4px 10px #0000002e}.cell{position:relative;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;padding:0;border:0;background:var(--cell-bg);color:#21262f;cursor:pointer}.cell:focus,.cell:focus-visible{outline:none}.cageOverlay{position:absolute;inset:0;z-index:3;pointer-events:none}.gridOverlay{position:absolute;inset:0;z-index:5;pointer-events:none}.gridOverlay line{vector-effect:non-scaling-stroke}.gridOverlay .thin{stroke:var(--board-line-thin);stroke-width:1}.gridOverlay .thick{stroke:var(--board-line-thick);stroke-width:3}.cageOverlay path{fill:none;stroke:var(--cage-line);stroke-width:.032;stroke-dasharray:.15 .11;stroke-linecap:round;stroke-linejoin:round}.cell:hover{background:var(--cell-hover)}.cell.selected{z-index:2;background:#fff4cc;border-color:#fff4cc}.cell.peerSelected:after{position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-radius:999px;background:var(--player-color, #4b69d8);content:""}.cell.conflict{background:#ffe8e4;color:#8d2218}.cell.cageConflict{background:#fff0df}.cageSvgLabels text{color:var(--cage-label);fill:currentColor;font-size:.19px;font-weight:900;letter-spacing:0;paint-order:stroke;stroke:transparent;stroke-width:0}.cellValue{font-size:clamp(1.2rem,5vw,2.4rem);font-weight:750;line-height:1}.notesGrid{display:grid;grid-template-columns:repeat(3,1fr);width:72%;height:68%;color:#65707d;font-size:clamp(.46rem,1.55vw,.74rem);font-weight:800;line-height:1}.notesGrid span{display:grid;place-items:center;min-width:0}.numberPad{display:grid;grid-template-columns:repeat(3,minmax(54px,1fr));gap:9px;width:100%;margin:0 auto}.numberPad button,.resetButton{min-height:38px;border-radius:12px;box-shadow:var(--shadow-raised-tight)}.inputPanel .numberPad button,.inputPanel .numberPad .clearButton{min-height:34px}.inputActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}.inputActions .resetButton{min-height:33px;font-size:.75rem}.numberPad button:disabled,.resetButton:disabled{background:var(--surface-pressed);color:var(--muted);cursor:not-allowed;opacity:.7;box-shadow:inset 2px 2px 5px var(--shadow-dark),inset -2px -2px 5px var(--shadow-light)}.numberPad .clearButton{grid-column:1 / -1;color:var(--danger)}.sidePanel{display:grid;grid-template-rows:max-content max-content max-content;gap:14px;min-height:0;align-content:start;min-width:0;overflow:visible;padding-bottom:16px}.statusPanel{min-height:0;overflow:visible;padding:16px;border-radius:20px;background:var(--surface);box-shadow:var(--shadow-raised)}.cagePanel{min-height:0}.playersPanel{align-self:start}.combinationBlock{margin-top:14px}.combinationBlock h3{margin:0 0 9px;color:var(--muted-strong);font-size:.68rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase}.combinationList{display:flex;flex-wrap:wrap;gap:7px}.combinationList .combination{display:inline-flex;gap:.14em;padding:5px 8px;border-radius:9px;box-shadow:var(--shadow-raised-tight);font-size:.78rem;line-height:1.2}.combinationList .combination.compatible{background:var(--teal-soft);color:var(--teal)}.combinationList .combination:focus,.combinationList .combination:focus-visible{outline:none}.combinationList .combination:disabled{cursor:default}.combinationList .combination.dimmed{opacity:.34}.combination span{display:inline-block}dl{display:grid;gap:7px;margin:0 0 8px}dl div{display:flex;justify-content:space-between;gap:12px}dt{color:var(--muted);font-weight:750}dd{margin:0;color:var(--ink-strong);font-weight:900}.resetButton{width:100%}.cageDetails{display:grid;grid-template-columns:58px 1fr;gap:5px 13px;align-items:center}.cageDetails strong{grid-row:span 2;display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:var(--teal-soft);color:var(--teal);font-size:1.3rem;box-shadow:var(--shadow-pressed)}.cageDetails span{color:var(--muted);font-size:.82rem}.playerList{display:grid;gap:8px;padding:0;margin:0;list-style:none}.playerList li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:32px}.avatar{--player-color: #6366f1;display:grid;place-items:center;width:30px;height:30px;border-radius:11px;background:var(--player-color);color:#fff;font-weight:900;text-transform:uppercase;overflow:hidden;box-shadow:3px 3px 7px #00000029,-2px -2px 5px #ffffff6b}.avatar img{width:100%;height:100%;object-fit:cover}.playerList em{color:var(--accent-strong);font-size:.67rem;font-style:normal;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.playerBadges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.appShell[data-theme=dark] .cell{color:#f2f5f9}.appShell[data-theme=dark] .cell:hover{background:var(--cell-hover)}.appShell[data-theme=dark] .cell.selected{background:#5a4216;border-color:#5a4216}.appShell[data-theme=dark] .cell.conflict{background:#45211e;color:#ffd2cb}.appShell[data-theme=dark] .cell.cageConflict{background:#3b2a19}.appShell[data-theme=dark] .notesGrid{color:#aab4c2}@media(max-width:920px){.gameLayout{grid-template-columns:minmax(0,1fr) 216px;gap:14px}.sidePanel{gap:10px}.statusPanel{padding:13px}.difficultyGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.appShell{gap:12px;padding:12px}.topBar{min-height:36px}.headerButton{min-height:36px;padding:0 12px;font-size:.84rem}.gameLayout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:12px}.boardArea{padding:0;border-radius:0}.sidePanel{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:12px;padding-bottom:8px}.playersPanel{display:none}.inputPanel{order:2}.statusPanel{padding:12px;border-radius:17px}}@media(max-height:720px){.appShell{gap:12px;padding:12px}.topBar{min-height:34px}.headerButton{min-height:34px;padding:0 11px;font-size:.82rem}h1{font-size:.96rem}.numberPad{width:min(190px,100%)}.numberPad button,.resetButton{min-height:30px;font-size:.82rem}}@media(max-height:760px){.playersPanel{display:none}}@media(max-height:640px){.cagePanel{display:none}.sidePanel{grid-template-rows:max-content}.inputPanel h2{display:none}.inputPanel .numberPad button{min-height:28px}.inputActions .resetButton{min-height:28px;font-size:.74rem}}@media(max-height:540px){.statusPanel{padding:9px}}@media(max-width:430px),(max-height:430px){.appShell{gap:8px;padding:8px}.topBar{min-height:30px}h1{font-size:.82rem}h1 span{min-height:20px;margin-left:5px;padding:0 6px;font-size:.58rem}.themeToggle{display:none}.headerButton{min-height:30px;padding:0 9px;border-radius:10px;font-size:.76rem}.preGamePanel{gap:10px;padding:18px;border-radius:18px}.preGamePanel h2{font-size:1.08rem}.difficultyGridLarge{grid-template-columns:1fr}.difficultyGridLarge button{min-height:38px}.gameLayout{grid-template-rows:minmax(0,1fr)}.boardArea{grid-template-rows:minmax(0,1fr);padding:0;border-radius:0}.sidePanel,.inputPanel{display:none}}
