/* Whole-scene layers, the nonmodal region dock and Dragonfire tools share space.
   viewer-main owns [viewer-body (layers + canvas), region-dock]. The suite is a
   sibling of viewer-main. No overlay is allowed to set the canvas height. */
.viewer-toolbar { display:flex; flex-wrap:wrap; }
.viewer-actions,
#workspace-frame.suite-tools-open > .viewer-toolbar .viewer-actions {
  display:flex; flex-wrap:wrap; width:auto;
}
.canvas-tools { flex-wrap:wrap; }
.view-preset-buttons[hidden] { display:none!important; }
.source-scope { margin:4px 0 0; color:#a8c8d8; font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.project-status { display:flex; flex:0 1 auto; flex-direction:column; align-items:flex-end; gap:5px; max-width:100%; }
.registration-status { min-height:44px; padding:6px 10px; font-size:11px; color:#f2d592; background:#243038; border-color:#796d4a; white-space:normal; text-align:left; }
.registration-status:focus-visible { outline:2px solid #83d6ff; outline-offset:2px; }
.source-evidence { border-top:1px solid #365465; margin:16px 0; padding-top:8px; }
.source-evidence .download-list strong { display:block; overflow-wrap:anywhere; font-size:13px; }
.source-folder-link { display:inline-flex; align-items:center; min-height:44px; padding:6px 10px; border:1px solid #6c9aaf; border-radius:6px; text-decoration:underline; }
.registration-checks { list-style:none; display:grid; gap:8px; padding:0; }
.registration-checks li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 10px; border:1px solid #436173; border-radius:6px; padding:10px; }
.registration-checks strong { font-size:13px; overflow-wrap:anywhere; }
.registration-checks span { font-size:11px; padding:2px 6px; border:1px solid #6c8391; border-radius:4px; overflow-wrap:anywhere; }
.registration-checks p { grid-column:1 / -1; margin:0; font-size:12px; line-height:1.5; }

#viewer-main {
  flex:1 1 auto;
  min-width:0;
  min-height:180px;
  grid-template-rows:minmax(0,1fr);
  overflow:hidden;
}
#viewer-main > .viewer-body {
  grid-column:1; grid-row:1; height:100%; min-width:0; min-height:0;
}
#viewer-main > .viewer-body > .viewer-shell { height:100%; min-width:0; min-height:0; }
#workspace-frame .viewer-main > .region-dock {
  grid-column:2; grid-row:1; height:auto; min-height:0; max-height:100%;
}

#workspace-frame.suite-tools-open,
#workspace-frame:fullscreen.suite-tools-open,
#workspace-frame.workspace-expanded.suite-tools-open {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,350px);
  grid-template-rows:auto minmax(180px,1fr) auto auto auto;
}
#workspace-frame.suite-tools-open > .viewer-toolbar { grid-column:1 / -1; grid-row:1; }
#workspace-frame.suite-tools-open > .viewer-main { grid-column:1; grid-row:2; height:100%; min-height:0; }
#workspace-frame.suite-tools-open > #suite-panel { grid-column:2; grid-row:2 / 6; width:auto; height:auto; max-height:none; }
#workspace-frame.suite-tools-open > .canvas-tools { grid-column:1; grid-row:3; }
#workspace-frame.suite-tools-open > .viewer-status { grid-column:1; grid-row:4; }
#workspace-frame.suite-tools-open > .inspection-details { grid-column:1; grid-row:5; }
#workspace-frame.workspace-expanded > .viewer-main,
#workspace-frame:fullscreen > .viewer-main { flex:1 1 0; min-height:0; }
.workspace-frame.clean-view .view-picker,
.workspace-frame.clean-view .layer-picker { display:none; }
.workspace-frame.clean-view .viewer-actions { display:flex; width:auto; }
.workspace-frame.clean-view #layers-toggle { margin-right:auto; }

[data-theme="light"] .scan-layers,
[data-theme="light"] .view-settings-panel { background:#f5fafc; color:#183c4c; border-color:#b0c7d0; }
[data-theme="light"] .scan-layer { border-color:#b9ced7; background:#edf5f8; }
[data-theme="light"] .scan-layer[data-active="true"] { background:#d9eef7; }
[data-theme="light"] .scan-layer .layer-name,
[data-theme="light"] .layer-meta,
[data-theme="light"] .layers-footer p,
[data-theme="light"] .active-scan-label { color:#20475a; }
[data-theme="light"] .scan-layers button,
[data-theme="light"] .view-settings > summary { background:#e1eef4; color:#183f52; border-color:#8eb2c4; }
[data-theme="light"] .layer-error { color:#8e3424; }
[data-theme="light"] #overview-reset { color:#1b536c; }
[data-theme="light"] .collection-name,
[data-theme="light"] .collection-status,
[data-theme="light"] .source-scope,
[data-theme="light"] .layer-search-empty { color:#20475a; }
[data-theme="light"] .scan-collection { border-color:#aec8d6; }
[data-theme="light"] .registration-status { color:#684a0d; background:#fff6dc; border-color:#a69255; }

@media(max-width:1200px) {
  #workspace-frame.suite-tools-open { grid-template-columns:minmax(0,1fr) 310px; }
}
@media(max-width:900px) {
  #viewer-main[data-region-open="true"],
  #workspace-frame.workspace-expanded > #viewer-main[data-region-open="true"],
  #workspace-frame:fullscreen > #viewer-main[data-region-open="true"] {
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:minmax(160px,1fr) minmax(120px,min(32dvh,240px));
  }
  #workspace-frame .viewer-main[data-region-open="true"] > .region-dock {
    grid-column:1; grid-row:2; height:auto; min-height:0;
  }
  /* Make room for the live scan and sliders; Close brings these controls back. */
  #viewer-main[data-region-open="true"] ~ .canvas-tools,
  #viewer-main[data-region-open="true"] ~ .viewer-status,
  #viewer-main[data-region-open="true"] ~ .inspection-details { display:none; }
}
@media(max-width:760px) {
  .project-status { flex-direction:row; align-items:center; flex-wrap:wrap; gap:6px; }
  .project-heading { gap:8px; }
  .source-scope { font-size:11px; }
  .viewer-toolbar .viewer-actions { display:flex; width:auto; }
  .viewer-actions #overview-reset { flex:1 1 auto; }
  #workspace-frame.suite-tools-open,
  #workspace-frame:fullscreen.suite-tools-open,
  #workspace-frame.workspace-expanded.suite-tools-open { display:flex; flex-direction:column; }
  #workspace-frame.suite-tools-open > .viewer-toolbar { order:0; }
  #workspace-frame.suite-tools-open > .viewer-main { order:1; flex:1 1 auto; height:auto; min-height:140px; }
  #workspace-frame.suite-tools-open > #suite-panel { order:2; width:100%; flex:0 1 42%; min-height:160px; height:auto; max-height:42%; }
  #workspace-frame.suite-tools-open > .canvas-tools,
  #workspace-frame.suite-tools-open > .viewer-status,
  #workspace-frame.suite-tools-open > .inspection-details { display:none; }
  .primary-actions { flex:1 1 auto; }
  .canvas-tools .view-settings { margin-left:auto; }
}
@media(max-height:520px) and (orientation:landscape) {
  #workspace-frame.suite-tools-open,
  #workspace-frame:fullscreen.suite-tools-open,
  #workspace-frame.workspace-expanded.suite-tools-open {
    display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,38%);
    grid-template-rows:auto minmax(80px,1fr) auto auto auto;
  }
  #workspace-frame.suite-tools-open > .viewer-main { min-height:80px; grid-column:1; grid-row:2; }
  #workspace-frame.suite-tools-open > #suite-panel { grid-column:2; grid-row:2 / 6; max-height:100%; width:auto; height:auto; min-height:0; }
  #workspace-frame.suite-tools-open > .viewer-toolbar { grid-column:1 / -1; display:flex; }
  #workspace-frame.workspace-expanded > #viewer-main[data-region-open="true"],
  #workspace-frame:fullscreen > #viewer-main[data-region-open="true"] {
    grid-template-columns:minmax(0,1fr) minmax(220px,36%);
    grid-template-rows:minmax(0,1fr);
  }
  #workspace-frame.workspace-expanded .viewer-main[data-region-open="true"] > .region-dock,
  #workspace-frame:fullscreen .viewer-main[data-region-open="true"] > .region-dock {
    grid-column:2; grid-row:1; height:auto; min-height:0;
  }
  .workspace-frame.workspace-expanded .viewer-toolbar .view-picker,
  .workspace-frame:fullscreen .viewer-toolbar .view-picker { max-width:220px; }
}
