:root{--bg: #f6f7f9;--panel: #ffffff;--panel-2: #f1f3f6;--border: #dde1e7;--text: #1c2129;--muted: #667085;--accent: #2563eb;--accent-text: #ffffff;--danger: #dc2626;--warn: #b45309;--floor: #ffffff;--path: rgba(234, 179, 8, .35);--grid-major: #c5cbd4;--grid-minor: #e7eaee;--block-stroke: rgba(15, 23, 42, .55);--selected: #f59e0b;--route: #ef4444;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #111317;--panel: #181b20;--panel-2: #20242b;--border: #2c313a;--text: #e6e8ec;--muted: #9099a6;--accent: #3b82f6;--floor: #1a1d22;--path: rgba(234, 179, 8, .28);--grid-major: #3a404a;--grid-minor: #24282f;--block-stroke: rgba(0, 0, 0, .6);color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}button,input,select{font:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap}.brand{font-weight:600;font-size:14px;margin-right:6px}.spacer{flex:1}.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.seg button{border:0;background:transparent;padding:5px 8px;cursor:pointer}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--accent);color:var(--accent-text)}.check{display:inline-flex;align-items:center;gap:5px;cursor:pointer;-webkit-user-select:none;user-select:none}.btn{border:1px solid var(--border);background:var(--panel);padding:5px 10px;border-radius:8px;cursor:pointer}.btn:hover:not(:disabled){background:var(--panel-2)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.danger{color:var(--danger)}.btn.on{border-color:var(--accent);color:var(--accent)}.body{flex:1;display:grid;grid-template-columns:240px 1fr 290px;min-height:0}.sidebar,.inspector{background:var(--panel);overflow:auto;min-height:0}.sidebar{border-right:1px solid var(--border);display:flex;flex-direction:column}.inspector{border-left:1px solid var(--border)}.views{display:grid;gap:1px;background:var(--border);min-width:0;min-height:0}.views.layout-split{grid-template-columns:1fr 1fr}.pane{position:relative;background:var(--bg);min-width:0;min-height:0;display:flex;flex-direction:column}.pane-title{position:absolute;top:8px;left:10px;z-index:2;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);pointer-events:none}.section{padding:12px;border-bottom:1px solid var(--border)}.section.grow{flex:1;display:flex;flex-direction:column;min-height:0}.section h3{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12px}.warn{color:var(--warn);font-size:12px}.row{display:flex;gap:6px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}.field-label{font-size:11px;color:var(--muted)}.field-input{display:flex;align-items:center;gap:4px}.field input,.field select,.search{width:100%;border:1px solid var(--border);background:var(--panel-2);border-radius:6px;padding:5px 7px}.field input[type=color]{padding:0 2px;height:29px}.field input:disabled,.field select:disabled{opacity:.7}.unit{color:var(--muted);font-size:12px}.address{font:600 20px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;margin-bottom:10px}.address.dup{color:var(--danger)}.stats{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0}.stats dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.help{margin:0;padding-left:16px;font-size:12px}.help li{margin-bottom:4px}kbd{font:11px ui-monospace,Menlo,monospace;border:1px solid var(--border);border-radius:4px;padding:0 4px;background:var(--panel-2)}.zone-list,.block-list{list-style:none;margin:0;padding:0}.block-list{margin-top:8px;overflow:auto;flex:1}.list-btn{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:4px 6px;border-radius:6px;cursor:pointer;text-align:left}.list-btn:hover{background:var(--panel-2)}.list-btn.active{background:var(--accent);color:var(--accent-text)}.list-btn.active .muted{color:inherit}.list-btn .count{margin-left:auto;font-variant-numeric:tabular-nums}.swatch{width:10px;height:10px;border-radius:3px;flex:none}.editor2d,.view3d{position:relative;flex:1;min-height:0;overflow:hidden}.editor2d svg{display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.floor{fill:var(--floor);stroke:var(--muted);stroke-width:1.5px;vector-effect:non-scaling-stroke}.path{fill:var(--path)}.g-major{stroke:var(--grid-major);stroke-width:1px}.g-minor{stroke:var(--grid-minor);stroke-width:1px}.zone-label{font-weight:700;pointer-events:none}.block{stroke:var(--block-stroke);stroke-width:1px;fill-opacity:.85}.block.hanging{fill-opacity:.45;stroke:var(--text);stroke-width:1.5px;stroke-dasharray:4 3}.tag{margin-left:auto;font-size:10px;padding:0 5px;border-radius:999px;border:1px solid currentColor;opacity:.7}.block.dup{stroke:var(--danger);stroke-width:2.5px}.block.route-end{stroke:var(--route);stroke-width:3px}.block-label{fill:#fff;font-family:ui-monospace,Menlo,monospace;font-weight:600;pointer-events:none}.pillar{fill:#9ca3af;stroke:#4b5563;stroke-width:1.5px}.stair{fill:url(#stair-hatch);stroke:#4b5563;stroke-width:1.5px}.stair-hatch-bg{fill:#d6d3d1}.stair-hatch-line{stroke:#78716c;stroke-width:.12}.stair-arrow{fill:none;stroke:#1f2937;stroke-width:2px;stroke-linejoin:round}.stair-arrow-head{fill:#1f2937}.obstacle-label{fill:#111827;font-weight:600;paint-order:stroke;stroke:#f3f4f6;stroke-width:3px;stroke-linejoin:round;pointer-events:none}.selected{fill:none;stroke:var(--selected);stroke-width:2.5px}.route{fill:none;stroke:var(--route);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.preview{stroke-width:2px;stroke-dasharray:5 3}.preview.ok{fill:#2563eb2e;stroke:var(--accent)}.preview.bad{fill:#dc26262e;stroke:var(--danger)}.hover-cell{fill:#2563eb40;stroke:var(--accent);stroke-width:1px}.hud{position:absolute;left:10px;bottom:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:4px 8px;background:var(--panel);border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--muted)}.hud-bad{color:var(--danger)}.hud-btn{border:1px solid var(--border);background:var(--panel-2);border-radius:6px;padding:1px 8px;cursor:pointer}.label3d{pointer-events:none;white-space:nowrap;padding:2px 6px;border-radius:6px;background:#111317d9;color:#fff;font:600 12px ui-monospace,Menlo,monospace}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);padding:8px 14px;border-radius:8px;background:var(--text);color:var(--bg);box-shadow:0 6px 24px #0003;z-index:10;max-width:90vw}.toast.error{background:var(--danger);color:#fff}
