/* Shared window chrome. The content nodes stay alive when a panel is moved. */
.desktop-shell:has(.has-dock-panels) { grid-template-columns: minmax(0, 1fr); }
.workbench.has-dock-panels {
  position: relative;
  grid-template-columns: 42px var(--dock-left-width, 280px) var(--dock-left-divider, 6px) minmax(0, 1fr) var(--dock-right-divider, 6px) var(--dock-right-width, 280px);
}
.has-dock-panels > .left-rail { grid-column: 1; grid-row: 1; }
.has-dock-panels > .workspace { grid-column: 4; grid-row: 1; }
.dock-column { display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; background: #d9dfe6; }
.dock-column[data-side="left"] { grid-column: 2; grid-row: 1; }
.dock-column[data-side="right"] { grid-column: 6; grid-row: 1; }
.has-dock-panels > #leftWorkbenchResizer { display: block; grid-column: 3; grid-row: 1; touch-action: none; }
.has-dock-panels > #rightWorkbenchResizer { display: block; grid-column: 5; grid-row: 1; touch-action: none; }
.has-dock-panels > #leftWorkbenchResizer[hidden], .has-dock-panels > #rightWorkbenchResizer[hidden], .dock-column[hidden] { display: none; }
.dock-window, .has-dock-panels .properties-panel.dock-window {
  position: relative; display: flex; flex-direction: column; min-height: 0; min-width: 0;
  margin: 0; padding: 0; overflow: hidden; background: #fff; border: 1px solid #8c96a3;
}
.dock-window > .dock-titlebar {
  display: flex; align-items: center; flex: 0 0 25px; height: 25px; min-height: 25px;
  margin: 0; padding: 2px 3px 2px 7px; border: 0; line-height: 19px; font-size: 12px;
  color: #fff; background: linear-gradient(#515861, #30343b); cursor: grab; touch-action: none; user-select: none;
}
.dock-title { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.dock-titlebar button {
  display: grid; place-items: center; flex: 0 0 21px; width: 21px; height: 21px; min-width: 0; padding: 0;
  border: 1px solid transparent; border-radius: 0; background: transparent; color: #fff; font: 15px/1 Arial, sans-serif; cursor: pointer;
}
.dock-titlebar button:hover, .dock-titlebar button:focus-visible { background: #758697; border-color: #c4cfdb; }
.dock-titlebar button[data-window-action="close"]:hover { background: #ba4038; }
.dock-window:focus-within > .dock-titlebar { background: linear-gradient(#566f88, #30465d); }
.dock-titlebar:focus-visible { outline: 2px solid #e8ba4b; outline-offset: -2px; }
.dock-window.structure-panel > .structure-toolbar, .dock-window.structure-panel > .structure-columns { flex: 0 0 auto; }
.dock-window.structure-panel > .parts-list { flex: 1 1 0; min-height: 0; overflow: auto; }
.dock-window.properties-panel > .properties-body { flex: 1 1 0; min-height: 0; min-width: 0; margin: 0; overflow: auto; }
.dock-window.is-collapsed > :not(.dock-titlebar):not(.dock-float-resizer) { display: none !important; }
.dock-window[hidden] { display: none !important; }
.dock-stack-divider { flex: 0 0 6px; min-height: 6px; background: #d4dbe4; border-top: 1px solid #f8faff; border-bottom: 1px solid #8c96a3; cursor: row-resize; touch-action: none; }
.dock-stack-divider:hover, .dock-stack-divider:focus-visible { background: #efbe56; }
.dock-floating-layer { position: absolute; inset: 0; z-index: 20; pointer-events: none; overflow: hidden; }
.dock-floating-layer > .dock-window { position: absolute; pointer-events: auto; border: 3px solid #8c96a3; box-shadow: 0 4px 18px #0005; }
.dock-float-resizer { display: none; position: absolute; z-index: 3; touch-action: none; }
.dock-floating-layer .dock-float-resizer { display: block; }
.dock-float-resizer[data-edge="n"], .dock-float-resizer[data-edge="s"] { left: 7px; right: 7px; height: 6px; cursor: ns-resize; }
.dock-float-resizer[data-edge="n"] { top: -3px; }
.dock-float-resizer[data-edge="s"] { bottom: -3px; }
.dock-float-resizer[data-edge="e"], .dock-float-resizer[data-edge="w"] { top: 7px; bottom: 7px; width: 6px; cursor: ew-resize; }
.dock-float-resizer[data-edge="e"] { right: -3px; }
.dock-float-resizer[data-edge="w"] { left: -3px; }
.dock-float-resizer[data-edge="ne"], .dock-float-resizer[data-edge="nw"], .dock-float-resizer[data-edge="se"], .dock-float-resizer[data-edge="sw"] { width: 10px; height: 10px; }
.dock-float-resizer[data-edge="ne"] { right: -3px; top: -3px; cursor: nesw-resize; }
.dock-float-resizer[data-edge="nw"] { left: -3px; top: -3px; cursor: nwse-resize; }
.dock-float-resizer[data-edge="se"] { right: -3px; bottom: -3px; cursor: nwse-resize; }
.dock-float-resizer[data-edge="sw"] { left: -3px; bottom: -3px; cursor: nesw-resize; }
.dock-drop-preview { position: absolute; z-index: 21; pointer-events: none; border: 2px solid #387fbe; background: #65ace44d; }
body.is-dock-interacting, body.is-dock-interacting * { cursor: var(--dock-cursor, grabbing) !important; user-select: none !important; }
body.is-dock-viewport-resizing #editor2d, body.is-dock-viewport-resizing .scene-edge-band-legend { visibility: hidden; }
#dockLiveStatus { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.window-menu-item { display: flex; align-items: center; gap: 8px; }
.window-menu-item kbd { margin-left: auto; padding-left: 18px; font: 11px Tahoma, sans-serif; color: #4e5965; }
.window-menu-check { width: 12px; }
.window-menu-item[aria-checked="true"] .window-menu-check::after { content: "✓"; }
.window-menu-icon { width: 22px; height: 22px; text-align: center; border: 1px solid #b19657; background: linear-gradient(#fff4cc, #e6bf64); color: #31465e; font: bold 20px/20px Arial, sans-serif; }
.window-menu-icon--properties { color: #387b4a; }
.window-menu-icon--explorer { color: #8b5e1b; }
.file-explorer { font-size: 12px; }
.explorer-toolbar { padding: 5px; display: flex; gap: 4px; flex: 0 0 auto; background: #e5eaf0; border-bottom: 1px solid #b8c3d0; }
.explorer-toolbar button { min-width: 27px; min-height: 27px; padding: 3px 7px; }
.explorer-source { flex: 1; min-width: 0; min-height: 27px; padding: 3px 5px; font-size: 12px; }
.explorer-path { flex: 0 0 auto; display: block; width: calc(100% - 10px); min-height: 27px; margin: 5px; padding: 3px 5px; font-size: 12px; }
.explorer-search { flex: 0 0 auto; display: block; min-width: 0; width: calc(100% - 10px); margin: 0 5px 5px; padding: 4px 6px; }
.explorer-list { flex: 1 1 0; overflow: auto; min-height: 0; padding: 6px; }
.explorer-entry { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 196px; padding: 8px; border: 1px solid transparent; border-radius: 0; text-align: left; color: #162535; background: white; }
.explorer-entry:hover { background: #f0f5fc; border-color: #d2dfed; }
.explorer-entry[aria-selected="true"] { background: #d8e9ff; border-color: #7da8d4; }
.explorer-entry svg { width: 80px; height: 64px; flex: 0 0 80px; }
.explorer-entry span { min-width: 0; overflow-wrap: anywhere; font: 12px/1.4 Tahoma, sans-serif; }
.explorer-entry .explorer-thumbnail { display: grid; place-items: center; position: relative; flex: 0 0 min(180px, 54%); width: min(180px, 54%); aspect-ratio: 1; overflow: hidden; }
.explorer-thumbnail .explorer-preview-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.explorer-thumbnail [hidden] { display: none !important; }
.explorer-message { padding: 16px 12px; margin: 0; color: #526275; font-size: 12px; line-height: 1.5; }
.explorer-status { flex: 0 0 auto; max-height: 65px; overflow: auto; padding: 4px 7px; border-top: 1px solid #c3cbd6; font-size: 11px; color: #526275; }
.explorer-status.is-error { color: #a6261d; }
.explorer-reconnect { margin: 8px; }
