:root{color-scheme:light;--bg: #f7f3ea;--panel: #fffdf8;--text: #1b1f24;--muted: #667085;--line: #4b5563;--thin-line: #c7c9cf;--accent: #0f766e;--accent-strong: #115e59;--accent-soft: #d7f4ed;--danger: #c2410c;--danger-soft: #ffedd5;--given: #111827;--solved: #5b21b6;--shadow: 0 18px 50px rgba(25, 32, 38, .16);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #111827;--panel: #18212f;--text: #f8fafc;--muted: #aab4c2;--line: #e2e8f0;--thin-line: #475569;--accent: #2dd4bf;--accent-strong: #5eead4;--accent-soft: #123f3b;--danger: #fb923c;--danger-soft: #431f13;--given: #f8fafc;--solved: #67e8f9;--shadow: 0 18px 50px rgba(0, 0, 0, .35)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);overflow:auto}button{font:inherit}.app-shell{display:flex;flex-direction:column;width:min(1180px,100%);height:100dvh;min-width:320px;min-height:calc(350px + env(safe-area-inset-top) + env(safe-area-inset-bottom));margin:0 auto;padding:max(6px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:6px}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:0 0 auto}h1{margin:0;font-size:clamp(1rem,2.8vw,2rem);line-height:1.1;min-width:0}.top-actions{display:flex;flex:0 0 auto;gap:4px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-template-rows:minmax(0,1fr);gap:6px;flex:1 1 auto;min-height:0}.workspace.layout-bottom{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.board-wrap,.controls{background:var(--panel);border:1px solid color-mix(in srgb,var(--thin-line),transparent 35%);border-radius:8px;box-shadow:var(--shadow)}.board-wrap{display:grid;place-items:center;min-width:0;min-height:0;padding:4px;container-type:size}.sudoku-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));width:min(100cqw,100cqh);height:min(100cqw,100cqh);border:3px solid var(--line);background:var(--line)}.cell{display:grid;place-items:center;aspect-ratio:1;width:100%;height:100%;min-width:0;min-height:0;padding:0;border:0;border-right:1px solid var(--thin-line);border-bottom:1px solid var(--thin-line);background:var(--panel);color:var(--given);font-size:clamp(.5rem,min(6cqw,6cqh),2.55rem);font-weight:750;line-height:1;cursor:pointer}.cell:nth-child(3n){border-right:3px solid var(--line)}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:3px solid var(--line)}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+73){border-bottom:0}.cell.solved{color:var(--solved);font-weight:850}.cell.selected{background:var(--accent-soft);outline:3px solid var(--accent);outline-offset:-3px}.cell.conflict{background:var(--danger-soft);color:var(--danger)}.status{min-height:20px;margin:0;color:var(--muted);font-size:.78rem;line-height:1.2;overflow-wrap:anywhere}.status.error{color:var(--danger);font-weight:700}.controls{display:grid;gap:4px;align-self:start;min-width:0;padding:6px}.icon-button,.keypad button,.move-cluster button,.settings-panel button{min-width:44px;min-height:44px;border:1px solid var(--thin-line);border-radius:8px;background:color-mix(in srgb,var(--panel),var(--bg) 25%);color:var(--text);cursor:pointer}.icon-button{width:44px;flex:0 0 44px;display:grid;place-items:center}.primary,.settings-panel button.active{border-color:var(--accent);background:var(--accent);color:#fff}:root[data-theme=dark] .primary,:root[data-theme=dark] .settings-panel button.active{color:#06201d}.solve-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:44px;min-height:44px;border-radius:8px;font-size:1.15rem;font-weight:850}.keypad,.move-cluster{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.keypad button{height:44px;font-size:clamp(1.05rem,2.5svh,1.4rem);font-weight:800}.move-cluster button{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:clamp(.78rem,1.8svh,.92rem);font-weight:760;white-space:nowrap}.settings-panel{width:min(460px,calc(100vw - 32px));max-height:100%;overflow:auto;padding:clamp(8px,1.1svh,12px);border:1px solid color-mix(in srgb,var(--thin-line),transparent 35%);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,var(--bg),transparent 22%)}.overlay-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.overlay-head strong{overflow:hidden;overflow-wrap:anywhere}.layout-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:8px}.layout-options button{display:grid;place-items:center;font-weight:800}.panel-layout-icon{width:min(72px,88%);height:clamp(30px,4.8svh,42px);fill:none;stroke:currentColor;stroke-width:4;stroke-linejoin:round}button:disabled{cursor:not-allowed;opacity:.52}@media(max-width:599px){.app-shell{min-height:calc(560px + env(safe-area-inset-top) + env(safe-area-inset-bottom))}.workspace.layout-right{grid-template-columns:minmax(0,1fr) 204px}.workspace.layout-right .move-cluster button{flex-direction:column;gap:0;font-size:.7rem;padding:2px}}@media(orientation:portrait),(max-width:599px){.workspace.layout-auto{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}}@media(min-width:600px){.layout-bottom .keypad{grid-template-columns:repeat(9,1fr)}.layout-bottom .move-cluster{grid-template-columns:repeat(6,1fr)}}@media(min-width:600px)and (max-height:450px){.app-shell{padding-top:max(2px,env(safe-area-inset-top));padding-bottom:max(2px,env(safe-area-inset-bottom));gap:2px}.controls{padding:2px;gap:2px}.keypad,.move-cluster{gap:2px}.status{min-height:14px;font-size:.75rem;line-height:14px}}
