/* Shared 2D/3D workbench. Touch and mouse inputs edit the same canonical model. */
.spatial-workbench { margin-top: 16px; padding: 18px; min-width: 0; }
.spatial-workbench .card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.spatial-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.spatial-toolbar label { display: inline-flex; align-items: center; gap: 8px; color: var(--text, #dceff0); font-size: 13px; }
.spatial-toolbar select { max-width: 240px; }
.spatial-toolbar input[type="checkbox"] { width: auto; }
.spatial-dual { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.spatial-pane { min-width: 0; background: #102b3a; border: 1px solid #476777; border-radius: 12px; overflow: hidden; }
.spatial-pane h4 { font-size: 14px; color: #dcebf0; margin: 10px 12px; }
.spatial-pane svg,.spatial-pane canvas { display: block; background: #102b3a; width: 100%; height: 315px; cursor: crosshair; touch-action: none; }
.spatial-pane svg .spatial-room { cursor: move; }
.spatial-pane svg [data-wb-object] { cursor: move; }
.spatial-pane svg .spatial-handle { cursor: crosshair; }
.spatial-pane .help { font-size: 12px; color: #b6cad2; margin: 10px 12px 13px; }
.spatial-properties { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-top: 15px; }
.spatial-properties form { padding: 12px; background: var(--surface,#122b3c); border: 1px solid var(--border,#536676); border-radius: 12px; min-width: 0; }
.spatial-properties h4 { font-size: 14px; margin: 0 0 9px; }
.spatial-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 10px 0; }
.spatial-fields label { font-size: 12px; min-width: 0; }
.spatial-fields input { display: block; width: 100%; box-sizing: border-box; margin-top: 4px; min-width: 0; }
.spatial-readout,.spatial-status { font-size: 13px; margin: 9px 0 0; }
.spatial-status[data-error="true"] { color: #ffab89; }
.spatial-status:not([data-error="true"]) { color: #a2e9d8; }
@media(max-width: 980px){.spatial-dual,.spatial-properties{grid-template-columns:1fr;} .spatial-pane svg,.spatial-pane canvas{height:280px;}}

.spatial-properties form,.spatial-properties form label,.spatial-properties form h4 { color: #e4f0f4; }
.spatial-properties input,.spatial-properties select { background: #f9fcfc; color: #193443; }
.spatial-workbench .spatial-status { min-height: 1em; }
