:root{--gap:4px;--bg: #f5f7fb;--text: #0b2135;--muted: #556;--card: #fff;--accent: #0b6cff;--accent-soft: rgba(11,108,255,.06);--board-outer: #000000;--board-radius: 14px;--cell-inner: #b8c0cc;--cell-box: #8a96a8;--cell-cross-bg: rgba(0,0,0,.08);--cell-clue-text: #4a5568;--cell-user-text: #0055d4;--cell-selected-bg: rgba(11,108,255,.22);--board-safe-space: 260px }*{box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}html,body{height:100%;margin:0;overscroll-behavior:none}body{font-family:system-ui,Arial}.dark{--bg: #121212;--text: #e6eef8;--muted: #9fb6d6;--card: #1e1e1e;--accent: #58a6ff;--accent-soft: rgba(88,166,255,.12);--board-outer: #ffffff;--cell-inner: #555555;--cell-box: #888888;--cell-cross-bg: rgba(255,255,255,.07);--cell-clue-text: #aaaaaa;--cell-user-text: #6ab8ff;--cell-selected-bg: rgba(88,166,255,.28) }body{background:var(--bg);color:var(--text)}.app-root{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app{flex:1;min-height:0;max-width:720px;margin:0 auto;width:100%;padding:0 12px;overflow-y:auto;overscroll-behavior:none;display:flex;flex-direction:column}.top{display:flex;align-items:center;justify-content:space-between}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--card);border-bottom:1px solid rgba(0,0,0,.06);margin-bottom:12px;border-radius:0 0 8px 8px;position:sticky;top:0;z-index:1000}.topbar .left,.topbar .center,.topbar .right{display:flex;align-items:center}.topbar .left{min-width:36}.topbar .center{flex:1;justify-content:center}.topbar .title{margin:0;font-size:1.1rem}.topbar button{background:transparent;border:0;font-size:1.1rem}.sidebar-backdrop{position:fixed;inset:0;background:#0000;z-index:1199;pointer-events:none;transition:background .28s ease}.sidebar-backdrop.open{background:#00000061;pointer-events:all}.sidebar{position:fixed;top:0;right:0;height:100%;width:240px;background:var(--card);z-index:1200;display:flex;flex-direction:column;padding:8px;transform:translate(100%);box-shadow:-4px 0 32px #0000;transition:transform .28s ease,box-shadow .28s ease}.sidebar.open{transform:translate(0);box-shadow:-4px 0 32px #00000038}.sidebar-header{display:flex;justify-content:flex-end;padding:4px 0 8px;border-bottom:1px solid rgba(0,0,0,.07);margin-bottom:8px}.sidebar-close{background:transparent!important;border:0;box-shadow:none!important;color:var(--text)!important;padding:6px!important;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.sidebar-close:hover{background:var(--accent-soft)!important}.sidebar button[role=menuitem]{width:100%;text-align:left;padding:12px 16px;border-radius:10px;background:transparent!important;color:var(--text)!important;box-shadow:none!important;font-size:1rem;display:flex;align-items:center;gap:12px;cursor:pointer}.sidebar button[role=menuitem]:hover{background:var(--accent-soft)!important}button{appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;border:0;background:var(--accent);color:#fff;padding:8px 14px;border-radius:9999px;font-size:.95rem;line-height:1;cursor:pointer;box-shadow:0 6px 18px #0b6cff1f,inset 0 -1px #0000000f}button:active{transform:translateY(1px)}button[disabled]{background:var(--card);color:var(--muted);cursor:default;box-shadow:none;opacity:.75}.topbar button{width:40px;height:40px;padding:6px;border-radius:9999px;background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;box-shadow:none}.topbar button:hover{background:#0000000a}.controls button{margin-left:8px}.timer-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.difficulty-label{font-size:.85rem;font-weight:600;opacity:.6;text-transform:capitalize}.creator-status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.creator-status-text{font-size:.85rem;font-weight:500;color:var(--muted);text-align:right}.creator-error{width:100%;margin:0;color:#e53935;font-weight:600;text-align:center}.home-btn{font-size:1.1rem;padding:14px 20px}.timer-display{font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--text);opacity:.6}.timer-group{display:flex;align-items:center;gap:2px}.timer-pause{background:transparent!important;border:none!important;box-shadow:none!important;color:var(--text)!important;opacity:.6;padding:4px!important;border-radius:6px!important;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;width:28px!important;height:28px!important}.timer-pause:hover{background:#0000000f!important}.board--paused>*{color:transparent!important;pointer-events:none}.board--paused .cell-notes,.board--paused .cell-color-layer,.board--paused .cell-note--colored,.board--paused .board-drawing-layer{visibility:hidden}.board-pause-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.board-pause-btn{pointer-events:all;width:72px;height:72px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;box-shadow:0 4px 20px #00000040;transition:transform .15s}.board-pause-btn:hover{transform:scale(1.08)}.dark .board{background:#181818}.game-layout{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 0 48px}.game-main{width:100%;display:flex;flex-direction:column;align-items:center;gap:8px}.board-area{width:min(100%,720px);display:flex;flex-direction:column;align-items:center;gap:8px;flex:0 0 auto}.controls-panel{width:min(100%,720px);display:flex;flex-direction:column;align-items:stretch}.board-wrapper{width:100%;display:flex;justify-content:center;align-items:flex-start;flex:0 0 auto;position:relative;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.board-shell{width:100%}.board-shell--with-coordinates{display:grid;grid-template-columns:clamp(18px,4vw,28px) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);column-gap:8px;row-gap:6px;align-items:stretch}.board-coordinate-corner{grid-column:1;grid-row:1}.board-coordinate-columns{grid-column:2;grid-row:1;width:100%;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));justify-self:center}.board-coordinate-rows{grid-column:1;grid-row:2;display:grid;grid-template-rows:repeat(9,minmax(0,1fr));justify-items:center;align-items:center}.board-shell--with-coordinates .board{grid-column:2;grid-row:2;justify-self:center}.board-coordinate-label{display:flex;align-items:center;justify-content:center;font-size:clamp(.72rem,2.4vw,.95rem);font-weight:600;color:var(--muted);line-height:1}.board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));gap:0;width:min(100%,calc(100dvh - var(--board-safe-space)));aspect-ratio:1/1;max-width:720px;border:2px solid var(--board-outer);border-radius:var(--board-radius);box-sizing:border-box;overflow:hidden;container-type:inline-size;position:relative;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.row{display:block}.board .cell{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:clamp(.9rem,8cqi,2.6rem);font-family:inherit;line-height:1;padding:0;cursor:pointer;border:none;border-right:1px solid var(--cell-inner);border-bottom:1px solid var(--cell-inner);background:transparent;color:var(--cell-clue-text);border-radius:0;box-shadow:none;font-weight:400;margin:0;position:relative;touch-action:manipulation;user-select:none;-webkit-user-select:none}.board>.cell:nth-child(9n){border-right:none}.board>.cell:nth-child(n+73){border-bottom:none}.board .cell.given{background:transparent;color:var(--cell-clue-text);cursor:pointer}.board button.cell.user{background:transparent;color:var(--cell-user-text)!important;font-weight:400}.board .cell:disabled{opacity:1}.board .cell[disabled]{background:transparent;color:var(--cell-clue-text)}.board button.cell.selected{background:var(--cell-selected-bg);outline:none;z-index:1}.board button.cell.selected-brush,.board button.cell.selected-brush.user,.board button.cell.selected-brush.given{background:transparent;box-shadow:inset 0 0 0 2px var(--accent);z-index:2}.board button.cell.user.selected{background:var(--cell-selected-bg);color:var(--cell-user-text)!important}.board button.cell.selected.given{background:var(--cell-selected-bg);color:var(--cell-clue-text)}.board button.cell.same-digit{background:var(--cell-selected-bg);z-index:1}.board button.cell.same-digit.user{color:var(--cell-user-text)!important}.board button.cell.same-digit.given{color:var(--cell-clue-text)}.board button.cell.cross{background:var(--cell-cross-bg)}.board button.cell.cross.user{color:var(--cell-user-text)!important}.board button.cell.cross.given{background:var(--cell-cross-bg);color:var(--cell-clue-text)}.board button.cell.error,.board button.cell.error.selected,.board button.cell.error.user,.board button.cell.error.user.selected,.board button.cell.error.same-digit,.board button.cell.error.same-digit.user,.board button.cell.error.cross,.board button.cell.error.cross.user{color:#e53935!important}.num-pad-toolbar{display:flex;justify-content:center;gap:8px;width:100%;max-width:none;margin-top:10px}.tool-tray{position:relative;width:100%;margin-top:8px}.tool-tray__measure{position:absolute;inset:0;visibility:hidden;pointer-events:none;z-index:-1}.tool-tray__measure .tool-tray__panel{position:absolute;inset:0 auto auto 0}.tool-tray .num-pad-toolbar{margin-top:0}.tool-tray__panel{width:100%}.tool-tray__panel--active{position:relative}.tool-tray__panel--overlay{position:absolute;inset:0 auto auto 0;pointer-events:none}.tool-tray__panel--hidden{display:none}.tool-tray__panel--sub{justify-content:center;align-items:center;flex-wrap:wrap;gap:8px}.tool-tray__back{flex:0 0 auto}.tool-tray__content{display:flex;gap:8px;flex:0 1 auto;min-width:0;justify-content:center;align-items:center;flex-wrap:wrap;will-change:opacity,transform}.tool-tray__content--notes,.tool-tray__content--drawing{position:relative;z-index:20}.tool-tray__main-button{opacity:1;will-change:opacity,transform}.tool-tray__main-button--fading{animation:tool-tray-main-fade-out .24s cubic-bezier(.22,1,.36,1) both}.tool-tray__main-button--hidden{opacity:0;pointer-events:none}.tool-tray__selected-tool--hidden{visibility:hidden}.tool-tray__content--hidden{opacity:0;visibility:hidden;pointer-events:none}.tool-tray__content--fade-in{animation:tool-tray-subtools-fade-in .3s cubic-bezier(.16,1,.3,1) both}.tool-tray__content--fade-out{animation:tool-tray-subtools-fade-out .24s cubic-bezier(.55,0,.55,.2) both}.tool-tray__mover{position:absolute;margin:0;z-index:10;pointer-events:none;transition:transform .32s ease;background:transparent!important;color:var(--text)!important;box-shadow:none!important;border:2px solid var(--muted)!important;display:inline-flex;align-items:center;justify-content:center}.dark .tool-tray__mover{border:2px solid #555!important}.tool-tray__mover--selected{background:#1a3a6b!important;color:#fff!important;border:2px solid #1a3a6b!important}.tool-tray__panel--enter-right{animation:tool-tray-enter-right .28s cubic-bezier(.22,1,.36,1) both}.tool-tray__panel--enter-left{animation:tool-tray-enter-left .28s cubic-bezier(.22,1,.36,1) both}.tool-tray__panel--leave-left{animation:tool-tray-leave-left .28s cubic-bezier(.55,0,.55,.2) both}.tool-tray__panel--leave-right{animation:tool-tray-leave-right .28s cubic-bezier(.55,0,.55,.2) both}.tool-tray__panel--main-fade-in{animation:tool-tray-main-panel-fade-in .3s cubic-bezier(.16,1,.3,1) both}.num-pad-toolbar .num-key.clear,.num-pad-toolbar .num-key.notes-toggle,.num-pad-toolbar .num-key.brush-toggle,.num-pad-toolbar .num-key.drawing-toggle{font-size:1.1rem;min-width:60px;height:48px;padding:0 20px;background:transparent!important;color:var(--text)!important;box-shadow:none!important;border:2px solid var(--muted)!important;display:inline-flex;align-items:center;justify-content:center}.dark .num-pad-toolbar .num-key.clear,.dark .num-pad-toolbar .num-key.notes-toggle,.dark .num-pad-toolbar .num-key.brush-toggle,.dark .num-pad-toolbar .num-key.drawing-toggle{border:2px solid #555!important}.num-pad-toolbar .num-key.clear:disabled,.num-pad-toolbar .num-key.notes-toggle:disabled,.num-pad-toolbar .num-key.brush-toggle:disabled,.num-pad-toolbar .num-key.drawing-toggle:disabled{opacity:.35;cursor:default;background:transparent!important;color:var(--muted)!important;border:2px solid var(--muted)!important}.notes-toggle--active,.brush-toggle--active,.drawing-toggle--active,.flag-toggle--active,.eraser-toggle--active,.num-pad-toolbar .num-key.notes-toggle.notes-toggle--active,.num-pad-toolbar .num-key.brush-toggle.brush-toggle--active,.num-pad-toolbar .num-key.drawing-toggle.drawing-toggle--active,.num-pad-toolbar .num-key.clear.flag-toggle--active,.num-pad-toolbar .num-key.clear.eraser-toggle--active,.num-pad-toolbar .num-key.clear.brush-mode-toggle--active{background:#1a3a6b!important;color:#fff!important;border:2px solid #1a3a6b!important}.num-pad-toolbar .num-key.notes-toggle.notes-toggle--active:disabled,.num-pad-toolbar .num-key.brush-toggle.brush-toggle--active:disabled,.num-pad-toolbar .num-key.drawing-toggle.drawing-toggle--active:disabled,.num-pad-toolbar .num-key.clear.flag-toggle--active:disabled,.num-pad-toolbar .num-key.clear.eraser-toggle--active:disabled,.num-pad-toolbar .num-key.clear.brush-mode-toggle--active:disabled{background:transparent!important;color:var(--muted)!important;border:2px solid var(--muted)!important}.dark .num-pad-toolbar .num-key.clear:disabled,.dark .num-pad-toolbar .num-key.notes-toggle:disabled,.dark .num-pad-toolbar .num-key.brush-toggle:disabled,.dark .num-pad-toolbar .num-key.drawing-toggle:disabled,.dark .num-pad-toolbar .num-key.notes-toggle.notes-toggle--active:disabled,.dark .num-pad-toolbar .num-key.brush-toggle.brush-toggle--active:disabled,.dark .num-pad-toolbar .num-key.drawing-toggle.drawing-toggle--active:disabled,.dark .num-pad-toolbar .num-key.clear.flag-toggle--active:disabled,.dark .num-pad-toolbar .num-key.clear.eraser-toggle--active:disabled,.dark .num-pad-toolbar .num-key.clear.brush-mode-toggle--active:disabled{border:2px solid #555!important}.candidate-fill-row{margin-top:8px}.brush-color-row{margin-top:8px;flex-wrap:wrap;gap:10px;position:relative;z-index:20}.brush-actions-row{margin-top:8px;position:relative;z-index:20}.brush-color-button{width:32px;height:32px;min-width:32px;border-radius:9999px;border:2px solid var(--muted);background:var(--swatch-color)!important;box-shadow:none!important;padding:0!important}.brush-color-button--active{border-color:var(--text);box-shadow:0 0 0 2px #0000001f!important}.brush-color-button--clear{background:transparent!important;border-style:dashed;color:var(--text)!important}.brush-color-button__clear-mark{font-size:1.15rem;line-height:1}.brush-color-button:disabled{opacity:.35;cursor:default;transform:none}.dark .brush-color-button{border-color:#555}.dark .brush-color-button--active{border-color:#fff}.tool-tray__content .num-key.clear{min-width:48px;padding:10px 14px}.input-pad-switcher{position:relative;width:100%;margin-top:22px;z-index:20}.input-pad-switcher .number-pad{margin-top:0}.input-pad__panel{width:100%}.input-pad__panel--active{position:relative}.input-pad__panel--overlay{position:absolute;inset:0 auto auto 0;pointer-events:none}.input-pad__panel.input-pad__panel--hidden{display:none!important}.input-pad__panel--fade-in{animation:input-pad-fade-in .24s cubic-bezier(.22,1,.36,1) both}.input-pad__panel--fade-out{animation:input-pad-fade-out .22s cubic-bezier(.55,0,.55,.2) both}.brush-color-pad{align-items:center}.brush-color-pad .brush-color-button{justify-self:center;align-self:center}.number-pad .num-key--notes{background:transparent!important;color:var(--text)!important;border:2px solid var(--muted)!important;box-shadow:none!important}.number-pad{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px;width:100%;max-width:720px;margin-top:8px}.number-pad .num-key{padding:2px 1px;border-radius:10px;font-size:clamp(1.8rem,7vw,3.6rem);font-weight:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;height:56px;background:#fff!important;color:var(--cell-user-text)!important;box-shadow:none!important;border:1px solid var(--cell-inner)!important;position:relative;touch-action:manipulation;user-select:none;-webkit-user-select:none}@media(min-width:480px){.number-pad .num-key{font-size:1.6rem}}.number-pad .num-key:before{content:attr(data-digit);position:absolute;bottom:calc(100% + 6px);left:0;width:100%;background:#fff;border:1px solid var(--cell-inner);border-radius:10px;font-size:clamp(2.4rem,9vw,4.5rem);font-weight:300;color:var(--cell-user-text);line-height:1;padding:6px 0;text-align:center;pointer-events:none;opacity:0;z-index:10}.number-pad .num-key:active:before{opacity:1}.dark .number-pad .num-key:before{background:#181818;border-color:#555}.dark .number-pad .num-key{background:#181818!important;border:1px solid #555!important}.number-pad .num-key.num-key--notes{font-size:inherit;color:#a0aec0!important}.number-pad .num-key.num-key--notes:before{color:#a0aec0}.number-pad .num-key.num-key--reference{background:#f2f4f7!important;color:#98a2b3!important;border-color:#d0d5dd!important;filter:grayscale(.95);opacity:.92}.number-pad .num-key.num-key--reference:before{background:#f2f4f7;color:#98a2b3;border-color:#d0d5dd}.dark .number-pad .num-key.num-key--reference{background:#23262f!important;color:#98a2b3!important;border-color:#3a3f4b!important}.dark .number-pad .num-key.num-key--reference:before{background:#23262f;color:#98a2b3;border-color:#3a3f4b}.num-key__digit{display:flex;align-items:center;justify-content:center;height:2.8rem;line-height:1}.num-key__remaining{display:block;font-size:.65rem;font-weight:400;opacity:.65;line-height:1;height:.9rem;color:var(--text)}.dark .num-key__remaining{color:#fff}.number-pad .num-key--done{opacity:.25;cursor:default}.cell-notes{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:1px;gap:0;z-index:1}.cell-note{display:flex;align-items:center;justify-content:center;font-size:clamp(.6rem,3cqi,1.1rem);font-weight:400;line-height:1;color:#777;position:relative;border-radius:4px}.dark .cell-note{color:gray}.cell-note--colored{background:var(--annotation-color)}.cell-note--highlight{font-weight:700;color:#000}.dark .cell-note--highlight{color:#fff}.cell-value{position:relative;z-index:1}.cell-color-layer{position:absolute;inset:1px;background:var(--annotation-color);pointer-events:none}.cell-flag-border{position:absolute;inset:0;box-shadow:inset 0 0 0 2px #e53935;pointer-events:none;z-index:3}.board-drawing-layer{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}.board-drawing-layer--interactive{pointer-events:auto;touch-action:none;cursor:crosshair}.board-drawing-layer__stroke{stroke-linecap:round;stroke-linejoin:round}.brush-candidate-backdrop{position:fixed;inset:0;border:none!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0!important;z-index:21}.brush-candidate-overlay{position:fixed;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:6px;padding:10px;background:var(--card);border:1px solid var(--cell-box);border-radius:18px;box-shadow:0 14px 30px #0003;z-index:22;user-select:none;-webkit-user-select:none}.brush-candidate-button{min-width:0;min-height:0;padding:0;font-size:clamp(1.3rem,4.5vw,2rem);font-weight:500;border-radius:12px;border:1px solid var(--cell-inner);background:#fff!important;color:var(--cell-user-text)!important;box-shadow:none!important;user-select:none;-webkit-user-select:none}.brush-candidate-button[disabled]{opacity:1;cursor:default}.brush-candidate-button--empty{border-style:dashed;color:transparent!important}.brush-candidate-button:not(.brush-candidate-button--empty)[style]{background:var(--annotation-color)!important}.dark .brush-candidate-overlay{border-color:#555;box-shadow:0 14px 30px #00000073}.dark .brush-candidate-button{background:#181818!important;border-color:#555!important}@media(hover:hover)and (pointer:fine){.num-pad-toolbar .num-key.clear:hover,.num-pad-toolbar .num-key.notes-toggle:hover,.num-pad-toolbar .num-key.brush-toggle:hover,.num-pad-toolbar .num-key.drawing-toggle:hover{background:var(--accent-soft)!important}.brush-color-button:hover{transform:scale(1.04)}}@keyframes tool-tray-enter-right{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}@keyframes tool-tray-enter-left{0%{opacity:0;transform:translate(-32px)}to{opacity:1;transform:translate(0)}}@keyframes tool-tray-leave-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-32px)}}@keyframes tool-tray-leave-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(32px)}}@keyframes tool-tray-subtools-fade-in{0%{opacity:0;transform:translateY(8px)}55%{opacity:.45;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes tool-tray-subtools-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes tool-tray-main-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@keyframes tool-tray-main-panel-fade-in{0%{opacity:0}55%{opacity:.45}to{opacity:1}}@keyframes input-pad-fade-in{0%{opacity:0}to{opacity:1}}@keyframes input-pad-fade-out{0%{opacity:1}to{opacity:0}}.board>.cell:nth-child(9n+3),.board>.cell:nth-child(9n+6){border-right-width:2px;border-right-color:var(--cell-box)}.board>.cell:nth-child(n+19):nth-child(-n+27),.board>.cell:nth-child(n+46):nth-child(-n+54){border-bottom-width:2px;border-bottom-color:var(--cell-box)}.footer{margin-top:12px;color:var(--muted)}@media(min-width:980px){.app{max-width:1360px}.game-main{flex-direction:row;align-items:stretch;justify-content:center;gap:16px}.board-area{width:min(920px,calc(100dvh - 120px),calc(100vw - 420px));gap:10px}.board{width:100%;max-width:none}.controls-panel{width:360px;max-width:360px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px}.controls-panel .tool-tray__measure>.num-pad-toolbar{max-width:none;margin-top:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;justify-content:stretch;align-items:start}.controls-panel .tool-tray__measure>.num-pad-toolbar .num-key.clear,.controls-panel .tool-tray__measure>.num-pad-toolbar .num-key.notes-toggle,.controls-panel .tool-tray__measure>.num-pad-toolbar .num-key.brush-toggle,.controls-panel .tool-tray__measure>.num-pad-toolbar .num-key.drawing-toggle{width:100%;min-width:0;padding:0 8px}.controls-panel .tool-tray__measure>.tool-tray__panel--sub{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start}.controls-panel .tool-tray__measure>.tool-tray__panel .tool-tray__content{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-column:2 / span 4;width:100%;gap:8px;justify-content:stretch;align-items:start}.controls-panel>.tool-tray>.num-pad-toolbar:not(.tool-tray__panel--hidden){max-width:none;margin-top:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;justify-content:stretch;align-items:start}.controls-panel>.tool-tray>.tool-tray__panel--hidden{display:none}.controls-panel>.tool-tray>.num-pad-toolbar .num-key.clear,.controls-panel>.tool-tray>.num-pad-toolbar .num-key.notes-toggle,.controls-panel>.tool-tray>.num-pad-toolbar .num-key.brush-toggle,.controls-panel>.tool-tray>.num-pad-toolbar .num-key.drawing-toggle{width:100%;min-width:0;padding:0 8px}.controls-panel>.tool-tray>.tool-tray__panel--sub{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start}.controls-panel>.tool-tray>.tool-tray__panel .tool-tray__content{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-column:2 / span 4;width:100%;gap:8px;justify-content:stretch;align-items:start}.controls-panel .tool-tray{margin-top:auto}.controls-panel .input-pad-switcher{margin-top:8px}.controls-panel .input-pad-switcher .number-pad{margin-top:0}.controls-panel .number-pad{max-width:none;margin-top:0;grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-height:860px){:root{--board-safe-space: 250px }.game-layout{padding-bottom:24px}.num-pad-toolbar .num-key.clear,.num-pad-toolbar .num-key.notes-toggle,.num-pad-toolbar .num-key.brush-toggle,.num-pad-toolbar .num-key.drawing-toggle{min-width:54px;height:44px;padding:0 16px;font-size:1rem}}@media(max-height:760px){:root{--board-safe-space: 210px }.game-layout{gap:6px;padding-bottom:12px}.num-pad-toolbar{gap:6px;margin-top:6px}.tool-tray{margin-top:6px}.input-pad-switcher{margin-top:14px}.number-pad{margin-top:6px}.num-pad-toolbar .num-key.clear,.num-pad-toolbar .num-key.notes-toggle,.num-pad-toolbar .num-key.brush-toggle,.num-pad-toolbar .num-key.drawing-toggle{min-width:46px;height:40px;padding:0 12px;font-size:.95rem}}.settings-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1600;padding:16px;overflow:auto}.settings-panel{background:var(--card);color:var(--text);padding:16px;border-radius:12px;min-width:280px;max-width:90%;max-height:calc(100vh - 32px);overflow:auto}.settings-panel button{min-width:84px}.generator-select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--cell-inner);background:var(--card);color:var(--text);font-size:.95rem;cursor:pointer;outline:none}.generator-select:focus{border-color:var(--accent)}.generator-select:disabled{opacity:.5;cursor:default}.dark .generator-select{border-color:#555}.toggle-switch{display:inline-block}.toggle-switch input{position:absolute;opacity:0;width:0;height:0}.toggle-switch .switch{width:48px;height:28px;background:#e6eef8;border-radius:9999px;display:inline-block;position:relative;transition:background .18s ease}.toggle-switch .switch:after{content:"";position:absolute;left:4px;top:4px;width:20px;height:20px;background:#fff;border-radius:9999px;box-shadow:0 1px 3px #00000026;transition:transform .18s ease}.toggle-switch input:checked+.switch{background:var(--accent)}.toggle-switch input:checked+.switch:after{transform:translate(20px)}.toggle-switch .switch:active:after{transform:scale(.98)}@keyframes toast-in-out{0%{opacity:0;transform:translate(-50%) translateY(8px)}15%{opacity:1;transform:translate(-50%) translateY(0)}80%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-6px)}}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:10px 20px;border-radius:9999px;font-size:.9rem;z-index:2000;pointer-events:none;white-space:nowrap;animation:toast-in-out 2.2s ease forwards}@keyframes victory-fade-in{0%{opacity:0}to{opacity:1}}@keyframes victory-card-in{0%{opacity:0;transform:scale(.82) translateY(24px)}to{opacity:1;transform:scale(1) translateY(0)}}.victory-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1500;animation:victory-fade-in .25s ease both}.victory-card{background:var(--card);color:var(--text);border-radius:24px;padding:40px 32px 32px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:320px;width:90%;box-shadow:0 24px 64px #00000047;animation:victory-card-in .35s cubic-bezier(.34,1.56,.64,1) both;animation-delay:.05s}.victory-icon{font-size:3rem;line-height:1;margin-bottom:4px}.victory-title{margin:0;font-size:1.4rem;font-weight:700}.victory-time{margin:0;font-size:1.1rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--accent)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.victory-actions{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:8px}.victory-actions button{width:100%;font-size:1rem;padding:12px 0}.victory-actions button.copied{background:#1565c0}.pencil-cell-backdrop{position:fixed;inset:0;z-index:200;background:#00000040;-webkit-tap-highlight-color:transparent}.pencil-cell-canvas{border-radius:4px;outline:2px solid var(--primary, #0b6cff);outline-offset:1px;box-shadow:0 0 0 4px #0b6cff26}.pencil-chip{display:flex;align-items:center;gap:4px;background:var(--bg, #fff);border:1.5px solid var(--border, #ccc);border-radius:999px;padding:4px 10px;font-size:1.1rem;font-weight:600;box-shadow:0 4px 16px #0000002e;white-space:nowrap;pointer-events:all}.pencil-chip--confirm{border-color:var(--primary, #0b6cff)}.pencil-chip--failed{border-color:var(--error-color, #d32f2f)}.pencil-chip-text{min-width:1.2em;text-align:center}.pencil-chip-conf{font-size:.75em;font-weight:400;color:var(--muted);margin-left:2px}.pencil-chip-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:2px 4px;border-radius:50%;line-height:1;color:var(--fg)}.pencil-chip-btn--ok{color:var(--primary, #0b6cff);font-size:1.1rem}.pencil-chip-btn--retry{color:var(--error-color, #d32f2f)}
