:root{color-scheme:light dark;--vscode-editor-foreground: #1f2328;--vscode-editor-background: #f6f8fa;--vscode-panel-border: #d0d7de;--vscode-button-foreground: #ffffff;--vscode-button-background: #0969da;--vscode-button-hoverBackground: #0757b8;--vscode-input-background: #ffffff;--vscode-input-foreground: #1f2328;--vscode-list-hoverBackground: #eaeef2;--vscode-focusBorder: #0969da;--vscode-editorWarning-foreground: #9a6700;--vscode-editorError-foreground: #cf222e;--vscode-font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--pane-ratio: .5}@media (prefers-color-scheme: dark){:root{--vscode-editor-foreground: #e6edf3;--vscode-editor-background: #0d1117;--vscode-panel-border: #30363d;--vscode-button-foreground: #ffffff;--vscode-button-background: #238636;--vscode-button-hoverBackground: #2ea043;--vscode-input-background: #161b22;--vscode-input-foreground: #e6edf3;--vscode-list-hoverBackground: #21262d;--vscode-focusBorder: #58a6ff;--vscode-editorWarning-foreground: #d29922;--vscode-editorError-foreground: #f85149}}*{box-sizing:border-box}body{margin:0;color:var(--vscode-editor-foreground);background:var(--vscode-editor-background);font:13px/1.4 var(--vscode-font-family)}button,input,select{font:inherit}button{border:1px solid var(--vscode-panel-border);color:var(--vscode-button-foreground);background:var(--vscode-button-background);padding:4px 8px;cursor:pointer;transition:background-color 80ms ease,border-color 80ms ease,transform 60ms ease,filter 80ms ease}button:hover:not(:disabled){background:var(--vscode-button-hoverBackground);border-color:var(--vscode-focusBorder)}button:active:not(:disabled){transform:translateY(1px);filter:brightness(.92)}button.secondary{color:var(--vscode-editor-foreground);background:var(--vscode-input-background)}button.secondary:hover:not(:disabled){background:var(--vscode-list-hoverBackground)}button.active{outline:2px solid var(--vscode-focusBorder)}button:disabled{opacity:.45;cursor:default}input{width:100%;border:1px solid var(--vscode-panel-border);color:var(--vscode-input-foreground);background:var(--vscode-input-background);padding:4px 6px}.app{height:100vh;display:grid;overflow:hidden}.web-shell{grid-template-columns:minmax(360px,calc((100vw - 6px) * var(--pane-ratio))) 6px minmax(420px,1fr)}.web-pane{min-width:0;min-height:0;display:grid;overflow:hidden}.splitter{background:var(--vscode-panel-border);cursor:col-resize;min-width:6px}.splitter:hover,.splitter:focus-visible{background:var(--vscode-focusBorder);outline:0}.editor-app{grid-template-columns:240px minmax(420px,1fr) 280px}.game-app{grid-template-columns:280px minmax(520px,1fr)}.panel{border-right:1px solid var(--vscode-panel-border);padding:12px;overflow:auto}.app>.panel:last-child,.web-pane>.panel:last-child{border-right:0}.main{padding:12px;overflow:auto}.toolbar,.row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.list{display:grid;gap:4px}.list button{width:100%;text-align:left}.block-list-item{display:grid;gap:4px;overflow-x:auto}.block-title{font-weight:600}.field{display:grid;gap:4px;margin-bottom:10px}.issues{display:grid;gap:6px;margin-top:12px}.issue{border-left:3px solid var(--vscode-editorWarning-foreground);padding:4px 6px;background:var(--vscode-input-background)}.issue.error{border-color:var(--vscode-editorError-foreground)}.grid{--cell: 34px;--cell-height: calc(var(--cell) * 1.3);display:grid;grid-template-columns:repeat(var(--cols),var(--cell));grid-template-rows:repeat(var(--rows),var(--cell-height));gap:1px;width:max-content;background:var(--vscode-panel-border);border:1px solid var(--vscode-panel-border)}.editor-board{--cell: 68px}.preview-grid{--cell: 17px;pointer-events:none;gap:1px}.preview-grid .cell{border:2px solid rgba(245,248,255,.78)}.preview-grid .cell.empty{background:transparent;border-color:transparent}.cell{width:var(--cell);height:var(--cell-height);position:relative;background:var(--vscode-input-background);-webkit-user-select:none;user-select:none}.cell.module{background:#4d8fcb}.cell.corridor{background:#8a7f45}.cell.preview-ok{background:#48a0628c}.cell.preview-bad{background:#c24848a6}.cell.preview-module.preview-ok{background:#4d8fcbb3}.cell.preview-corridor.preview-ok{background:#8a7f45bf}.cell.preview-module.preview-bad{background:#c24848b8}.cell.preview-corridor.preview-bad{background:#a65338b8}.cell.placed-module{background:#546fbf}.cell.placed-corridor{background:#8f7d3c}.game-board{gap:0}.game-board .cell{border:1px solid rgba(0,0,0,0)}.game-board .cell.join-N{border-top-color:transparent}.game-board .cell.join-E{border-right-color:transparent}.game-board .cell.join-S{border-bottom-color:transparent}.game-board .cell.join-W{border-left-color:transparent}.game-board .wall.N,.game-board .wall.S{left:3px;right:3px;height:5px}.game-board .wall.E,.game-board .wall.W{top:3px;bottom:3px;width:5px}.preview-grid .cell.join-N{border-top-width:0}.preview-grid .cell.join-E{border-right-width:0}.preview-grid .cell.join-S{border-bottom-width:0}.preview-grid .cell.join-W{border-left-width:0}.preview-wall{position:absolute;background:#e05252;z-index:2}.preview-wall.N,.preview-wall.S{left:1px;right:1px;height:3px}.preview-wall.N{top:0}.preview-wall.S{bottom:0}.preview-wall.E,.preview-wall.W{top:1px;bottom:1px;width:3px}.preview-wall.E{right:0}.preview-wall.W{left:0}.wall{position:absolute;background:#f5f8ffb8;z-index:2}.wall.N,.wall.S{left:4px;right:4px;height:8px}.wall.N.extend-start,.wall.S.extend-start{left:0}.wall.N.extend-end,.wall.S.extend-end{right:0}.wall.N{top:0}.wall.S{bottom:0}.wall.E,.wall.W{top:4px;bottom:4px;width:8px}.wall.E.extend-start,.wall.W.extend-start{top:0}.wall.E.extend-end,.wall.W.extend-end{bottom:0}.wall.E{right:0}.wall.W{left:0}.wall.disallowed,.conflict{background:#e05252}.selected,.cell.drag-preview{outline:2px solid var(--vscode-focusBorder);outline-offset:-2px}.cell.drag-invalid{outline-color:var(--vscode-editorError-foreground)}.status{margin-top:10px;min-height:22px}@media (max-width: 1180px){.web-shell{grid-template-columns:1fr;grid-template-rows:minmax(520px,1fr) 6px minmax(520px,1fr)}.splitter{cursor:row-resize}}
