*,*:before,*:after{box-sizing:border-box}:root{--bg: #ffffff;--fg: #111827;--grid-line: #d1d5db;--edge-unknown: #9ca3af;--wall-color: #111827;--accent: #3b82f6;--cell-bg: #f9fafb;--cell-fg: #111827;--board-border: #111827;--btn-bg: #f3f4f6;--btn-border: #e5e7eb;--btn-fg: #1f2937;--btn-active-bg: #e5e7eb;--status-fg: #4b5563;--solved-color: #10b981;--menu-bg: #ffffff;--menu-border: #e5e7eb;--menu-divider: #f3f4f6;--menu-fg: #111827;--menu-disabled-fg: #9ca3af;--cell-drag-start-bg: #eff6ff;--cell-drag-target-bg: #ecfdf5;--drag-target-border: #10b981;--cell-error-bg: #fee2e2;--cell-error-fg: #991b1b;--cell-warning-bg: #fef3c7;--cell-warning-fg: #92400e;--cell-locked-bg: #f3f4f6;--cell-locked-fg: #6b7280;--cell-same-value-bg: #fef9c3;--cell-same-value-fg: #713f12;--cell-guess-bg: #bbf7d0;--cell-guess-fg: #166534;--cell-inference-bg: #dbeafe;--cell-inference-fg: #1e40af;--cell-pair-hint-bg: #ede9fe;--cell-pair-hint-fg: #5b21b6}@media(prefers-color-scheme:dark){:root{--bg: #000000;--fg: #e2e8f0;--grid-line: #2a2a2a;--edge-unknown: #555555;--wall-color: #e2e8f0;--accent: #60a5fa;--cell-bg: #1a1a1a;--cell-fg: #e2e8f0;--board-border: #000000;--btn-bg: #1a1a1a;--btn-border: #2a2a2a;--btn-fg: #e2e8f0;--btn-active-bg: #2a2a2a;--status-fg: #94a3b8;--solved-color: #34d399;--menu-bg: #1a1a1a;--menu-border: #2a2a2a;--menu-divider: #2a2a2a;--menu-fg: #e2e8f0;--menu-disabled-fg: #555555;--cell-drag-start-bg: #0d1f3c;--cell-drag-target-bg: #021a0e;--drag-target-border: #34d399;--cell-error-bg: #2d0000;--cell-error-fg: #fca5a5;--cell-warning-bg: #2d1000;--cell-warning-fg: #fde68a;--cell-locked-bg: #2a2a2a;--cell-locked-fg: #777777;--cell-same-value-bg: #1c1400;--cell-same-value-fg: #fde68a;--cell-guess-bg: #14532d;--cell-guess-fg: #86efac;--cell-inference-bg: #1e3a5f;--cell-inference-fg: #93c5fd;--cell-pair-hint-bg: #2e1065;--cell-pair-hint-fg: #c4b5fd}}[hidden]{display:none!important}html,body{margin:0;min-height:100%;font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--fg);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-x pan-y;overflow:hidden;overscroll-behavior:none}#app{min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);touch-action:none}.shell{max-width:28rem;margin:0 auto;display:flex;flex-direction:column;min-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:1rem}.toolbar-area{position:relative;margin-top:auto}.toolbar{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;padding:1rem 0}.toolbar button{font:inherit;font-weight:500;padding:.75rem .5rem;border-radius:12px;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;touch-action:none;transition:background .1s ease,transform .1s ease}.toolbar button:active{background:var(--btn-active-bg);transform:scale(.96)}.toolbar button:disabled{opacity:.3;cursor:not-allowed}.options-menu{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 5.5rem);right:1rem;min-width:13rem;max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 6rem);overflow-y:auto;-webkit-overflow-scrolling:touch;list-style:none;margin:0;padding:.3rem 0;background:var(--menu-bg);border:1px solid var(--menu-border);border-radius:14px;box-shadow:0 8px 32px #00000040;z-index:100}.menu-item{display:flex;align-items:center;gap:.6rem;padding:.7rem 1.1rem;font:inherit;font-size:1rem;color:var(--menu-fg);cursor:pointer;user-select:none;-webkit-user-select:none}.menu-item:active{background:var(--btn-active-bg)}.menu-check{width:1.1rem;flex-shrink:0;font-size:.9rem;color:var(--accent)}.menu-item--checked .menu-check:before{content:"✓"}.menu-item--disabled{color:var(--menu-disabled-fg);cursor:default}.menu-divider{height:1px;background:var(--menu-divider);margin:.25rem 0}.menu-build{padding:.4rem 1.1rem .5rem;font-size:.72rem;color:var(--menu-disabled-fg);user-select:none;-webkit-user-select:none}.game-timer{margin:.4rem 0 0;text-align:center;font-size:1rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--status-fg)}.solve-stats{margin:0;padding-bottom:.1rem;text-align:center;font-size:.85rem;color:var(--status-fg)}.solve-stats[hidden]{display:none}.status{min-height:3.5rem;margin:.5rem 0;font-size:.95rem;line-height:1.4;text-align:center;color:var(--status-fg);display:flex;align-items:center;justify-content:center}.status--solved{color:var(--solved-color);font-size:1.5rem;font-weight:800;letter-spacing:.1em}.btn-new-puzzle{display:block;margin:0 auto .5rem;font:inherit;font-weight:500;padding:.75rem 2.5rem;border-radius:12px;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;touch-action:none;transition:background .1s ease,transform .1s ease}.btn-new-puzzle[hidden]{display:none}.btn-new-puzzle:active{background:var(--btn-active-bg);transform:scale(.96)}.board{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:0;margin:0 auto;width:100%;max-width:22rem;touch-action:none;user-select:none;-webkit-user-select:none;border:3px solid var(--board-border);background:var(--board-border);border-radius:4px;overflow:hidden}.cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:clamp(1.1rem,6vw,1.6rem);font-weight:700;background:var(--cell-bg);color:var(--cell-fg);cursor:pointer;padding:0;margin:-1.5px;line-height:1;-webkit-tap-highlight-color:transparent;transition:background .12s ease;position:relative;border:3px solid var(--grid-line)}.cell--merged{z-index:1}.cell--drag-start{background:var(--cell-drag-start-bg);z-index:3}.cell--drag-start:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:4px solid var(--accent);pointer-events:none}.cell--drag-target{background:var(--cell-drag-target-bg);z-index:3}.cell--drag-target:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:4px solid var(--drag-target-border);pointer-events:none}.cell--guess{background:var(--cell-guess-bg)!important;color:var(--cell-guess-fg)}.cell--inference{background:var(--cell-inference-bg)!important;color:var(--cell-inference-fg)}.cell--same-value{background:var(--cell-same-value-bg)!important;color:var(--cell-same-value-fg)}.cell--pair-hint{background:var(--cell-pair-hint-bg)!important;color:var(--cell-pair-hint-fg)}.cell--error{background:var(--cell-error-bg)!important;color:var(--cell-error-fg)}.cell--warning{background:var(--cell-warning-bg)!important;color:var(--cell-warning-fg)}.hint-pyramid{display:flex;flex-direction:column;align-items:center;gap:2px;margin:.75rem auto 0;width:100%;max-width:22rem}.hint-row{display:flex;gap:2px}.hint-domino{display:flex;align-items:center;gap:.3rem;padding:.15rem .3rem;border:1.5px solid var(--grid-line);border-radius:4px;background:var(--cell-bg)}.hint-domino[data-status=placed]{background:var(--cell-guess-bg);color:var(--cell-guess-fg)}.hint-domino[data-status=forced]{background:var(--cell-warning-bg);color:var(--cell-warning-fg)}.hint-domino[data-status=impossible]{background:var(--cell-error-bg);color:var(--cell-error-fg)}.hint-pip{width:.75rem;height:.75rem;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:inherit}.guess-bar{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:.5rem 0 0}.guess-bar[hidden]{display:none}.guess-bar button{font:inherit;font-weight:500;padding:.75rem .5rem;border-radius:12px;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;touch-action:none;transition:background .1s ease,transform .1s ease}.guess-bar button:active{background:var(--btn-active-bg);transform:scale(.96)}.board--locked{opacity:.8}.board--locked .cell{background:var(--cell-locked-bg);color:var(--cell-locked-fg)}
