:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16181d;--panel:#1e2128;--border:#2b2f38;--text:#d6d8de;--text-dim:#8a8f9c;--accent:#4f8cff}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif;font-size:13px;overflow:hidden}.app-shell{grid-template:"topbar topbar topbar"44px"left viewport right"1fr/240px 1fr 280px;height:100%;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--border);grid-area:topbar;align-items:center;gap:12px;padding:0 12px;display:flex}.app-title{letter-spacing:.04em;font-weight:600}.project-name{color:var(--text-dim)}.topbar-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.topbar-status{color:var(--text-dim);text-align:right;min-width:90px;font-size:12px}.panel{background:var(--panel);padding:10px;overflow-y:auto}.panel-left{border-right:1px solid var(--border);grid-area:left}.panel-right{border-left:1px solid var(--border);grid-area:right}.panel-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:6px 0;font-size:11px;font-weight:600}.panel-placeholder{color:var(--text-dim);padding:4px 0 12px;font-size:12px}.toolbar{grid-template-columns:1fr 1fr;gap:4px;padding-bottom:8px;display:grid}.snap-toggles{grid-template-columns:1fr 1fr 1fr;gap:4px;padding-bottom:8px;display:grid}.tool-button{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:4px;padding:6px 8px}.tool-button:hover{border-color:var(--accent)}.tool-button.active{background:var(--accent);border-color:var(--accent);color:#fff}.element-list{flex-direction:column;gap:2px;display:flex}.element-item{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:5px 8px}.element-item:hover{background:var(--bg)}.element-item.selected{background:var(--bg);border-color:var(--accent)}.opening-row{color:var(--text-dim);margin-left:16px}.opening-row.selected{color:var(--text)}.props-kind{text-transform:capitalize;margin-bottom:8px;font-weight:600}.props-fields{flex-direction:column;gap:6px;display:flex}.prop-field{grid-template-columns:1fr 110px;align-items:center;gap:8px;display:grid}.prop-label{color:var(--text-dim)}.prop-field input{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:4px;padding:4px 6px}.prop-field input:focus{border-color:var(--accent);outline:none}.prop-field select{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:4px;padding:4px 6px}.prop-field select:focus{border-color:var(--accent);outline:none}.danger-button{color:#e07a7a;font:inherit;cursor:pointer;background:0 0;border:1px solid #5a3338;border-radius:4px;margin-top:4px;padding:6px 8px}.danger-button:hover{background:#3a2226;border-color:#e07a7a}.material-panel{flex-direction:column;padding-bottom:10px;display:flex}.material-current{color:var(--text-dim);flex-direction:column;gap:2px;margin:6px 0;font-size:12px;display:flex}.material-grid{flex-direction:column;gap:2px;margin:4px 0 8px;display:flex}.material-item{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:4px 8px;display:flex}.material-item:hover{background:var(--bg)}.material-item.selected{background:var(--bg);border-color:var(--accent)}.material-swatch{border:1px solid var(--border);border-radius:50%;flex:none;width:14px;height:14px}.viewport-area{grid-area:viewport;min-width:0;min-height:0;position:relative}.viewport-canvas{position:absolute;inset:0}.render-confirm{z-index:50;background:#08090c99;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.render-confirm-box{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:320px;max-width:80vw;padding:18px;box-shadow:0 12px 40px #00000080}.render-confirm-message{margin:0 0 16px;line-height:1.6}.render-confirm-actions{justify-content:flex-end;gap:8px;display:flex}.render-overlay{z-index:10;background:#15171c;position:absolute;inset:0}.render-overlay-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.render-overlay-bar{z-index:1;border-bottom:1px solid var(--border);background:#0d0f13d9;align-items:center;gap:12px;padding:8px 12px;font-size:12px;display:flex;position:relative}.render-overlay-title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.render-overlay-progress{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tool-button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.plan-import-overlay{z-index:5;background:#0d0f13;flex-direction:column;display:flex;position:absolute;inset:0}.plan-import-bar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:6px 12px;font-size:12px;display:flex}.plan-import-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);font-weight:600}.plan-import-file{color:var(--text-dim);margin-right:auto}.plan-import-body{flex:1;min-height:0;display:flex}.plan2d-view{flex:1;min-width:0;position:relative}.plan2d-canvas{cursor:crosshair;touch-action:none;display:block;position:absolute;inset:0}.plan-controls{background:var(--panel);border-left:1px solid var(--border);flex:none;width:280px;padding:10px;overflow-y:auto}.plan-section{margin-bottom:14px}.plan-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:6px;font-size:11px;font-weight:600}.plan-scale-auto,.plan-candidate-meta{color:var(--text-dim);margin-bottom:6px;font-size:11px}.plan-field{grid-template-columns:1fr 110px;align-items:center;gap:8px;display:grid}.plan-field input{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:4px;padding:4px 6px}.plan-palette,.plan-layers{flex-direction:column;gap:3px;display:flex}.palette-item,.layer-item{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:4px 8px;display:flex}.palette-item:hover,.layer-item:hover{background:var(--bg)}.palette-item.active{background:var(--bg);border-color:var(--accent)}.layer-item{opacity:.45}.layer-item.on{opacity:1}.palette-swatch{border:1px solid var(--border);border-radius:3px;flex:none;width:12px;height:12px}.palette-swatch.erase{background:repeating-linear-gradient(45deg,#555,#555 2px,#888 2px 4px)}.candidate-list{border:1px solid var(--border);background:var(--bg);border-radius:4px;position:relative;overflow-y:auto}.candidate-spacer{position:relative}.candidate-item{height:26px;color:var(--text);border:none;border-bottom:1px solid var(--border);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 8px;font-size:11px;display:flex;position:absolute;left:0;right:0}.candidate-item:hover{background:var(--panel)}.candidate-item.rejected{color:var(--text-dim);text-decoration:line-through}.candidate-mark{width:12px;color:var(--accent);flex:none}.candidate-item.rejected .candidate-mark{color:#e07a7a}.candidate-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plan-actions{flex-direction:column;gap:6px;display:flex}.plan-busy{color:var(--text-dim);flex-direction:column;align-items:center;gap:10px;margin:auto;display:flex}.plan-busy-stage{font-size:13px}.plan-busy-bar{background:var(--border);border-radius:3px;width:240px;height:6px;overflow:hidden}.plan-busy-fill{background:var(--accent);height:100%;transition:width .2s}.plan-busy-pct{font-variant-numeric:tabular-nums}
