/* Structune Hub V17.7.4.478 — Labels & QR lifecycle and workspace cleanup. */

html.labels-qr-first-paint,
html.labels-qr-first-paint body,
html body.v17-labels-constrained{
  width:100%;
  height:100%;
  overflow:hidden!important;
  background:#0B1723!important;
}

/* Prevent unrelated SPA views and detached portals flashing during a direct
   Labels route refresh. The Labels preview and marker portals are released by
   the existing route lifecycle after startup. */
html.labels-qr-first-paint #content>.view:not(#view-labels-qr),
html.labels-qr-first-paint #arToolsFab,
html.labels-qr-first-paint #arToolsDock,
html.labels-qr-first-paint #arToolMessage,
html.labels-qr-first-paint #labelsPrintModal,
html.labels-qr-first-paint #labelsPrintStage,
html.labels-qr-first-paint #arMarkerModal,
html.labels-qr-first-paint #productionPasteModal,
html.labels-qr-first-paint #productionConfirmModal,
html.labels-qr-first-paint #view-ar-site-setout,
body.v17-labels-constrained #content>.view:not(#view-labels-qr),
body.v17-labels-constrained #arToolsFab,
body.v17-labels-constrained #arToolsDock,
body.v17-labels-constrained #arToolMessage,
body.v17-labels-constrained #productionPasteModal,
body.v17-labels-constrained #productionConfirmModal,
body.v17-labels-constrained #view-ar-site-setout{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* The main Labels page has no persistent right context drawer. Remove the old
   empty 360 px reservation so its functional viewport reaches the shell edge.
   The A4 preview keeps its dedicated 264.207 px context drawer unchanged. */
body.v17-labels-constrained{--st-labels-context-reserve:0px!important}
html[data-structune-shell="v432"] body.v432-shell-geometry.v17-labels-constrained #view-labels-qr{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  right:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#0B1723!important;
}

body.v17-labels-constrained #view-labels-qr>.labels-tabs{
  flex:none!important;
  margin:0 0 10px!important;
}
body.v17-labels-constrained #view-labels-qr>.labels-tab-panel.active{
  min-width:0!important;
  min-height:0!important;
}

/* Keep scrolling local to the data register and use the unified dark surface
   around it. Table structure, column widths and sticky headers remain owned by
   the existing Labels styles. */
body.v17-labels-constrained #view-labels-qr .labels-table-panel{
  overscroll-behavior:contain!important;
}
body.v17-labels-constrained #view-labels-qr :is(.labels-output-card,.labels-tabs,.labels-toolbar input,.labels-toolbar select){
  box-shadow:none!important;
}

@media(max-width:900px){
  body.v17-labels-constrained #view-labels-qr{padding:0!important}
}
