/* Structune Hub V17.7.4.519 — Steel SCI02 lifecycle and viewport repair.
   This file intentionally does not own the Steel table or header grid. */

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

/* Establish the final 264.207 px drawer-to-drawer Steel shell from the route
   marker in the initial document head. Do not wait for the shared-shell module
   to add its runtime attributes/classes before the first visible frame. */
@media screen and (min-width:821px){
  html.steel-first-paint body .app:not(.access-mode){
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:0!important;
    display:block!important;
    background:#0B1723!important;
  }
  html.steel-first-paint body .shell{
    position:fixed!important;
    left:264.207px!important;
    right:264.207px!important;
    top:48px!important;
    bottom:48px!important;
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    max-width:none!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    overflow:visible!important;
    background:#0B1723!important;
  }
  html.steel-first-paint body #content{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:0!important;
    max-width:100%!important;
    max-height:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#0B1723!important;
  }
}

/* Keep the unmeasured native table out of the first visible frame. SBS-165
   removes this guard only after the shared shell and table viewport are ready. */
html.steel-sbs-preinit #view-assemblies>.assemblies-table-panel{
  visibility:hidden!important;
  pointer-events:none!important;
  background:#0B1723!important;
}

/* Prevent unrelated SPA views and route-specific portals flashing or
   intercepting input while a direct/hard-refresh Steel route starts. */
html.steel-first-paint #content>.view:not(#view-assemblies),
html.steel-first-paint #arToolsFab,
html.steel-first-paint #arToolsDock,
html.steel-first-paint #arToolMessage,
html.steel-first-paint #labelsPrintModal,
html.steel-first-paint #labelsPrintStage,
html.steel-first-paint #arMarkerModal,
html.steel-first-paint #productionPasteModal,
html.steel-first-paint #productionConfirmModal,
html.steel-first-paint body>.v17-right-handle,
body.v17-assemblies-constrained #content>.view:not(#view-assemblies),
body.v17-assemblies-constrained #arToolsFab,
body.v17-assemblies-constrained #arToolsDock,
body.v17-assemblies-constrained #arToolMessage,
body.v17-assemblies-constrained #labelsPrintModal,
body.v17-assemblies-constrained #labelsPrintStage,
body.v17-assemblies-constrained #arMarkerModal,
body.v17-assemblies-constrained #productionPasteModal,
body.v17-assemblies-constrained #productionConfirmModal,
body.v17-assemblies-constrained>.v17-right-handle{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* The shared A3 shell already occupies the exact region between the fixed
   header/footer and drawer lanes. Steel fills that shell, never the window. */
html[data-structune-shell="v432"] body.v432-shell-geometry.v17-assemblies-constrained{
  overflow:hidden!important;
  background:#0B1723!important;
}
html[data-structune-shell="v432"] body.v432-shell-geometry.v17-assemblies-constrained #view-assemblies{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  color:#eef5fb!important;
  background:#0B1723!important;
  z-index:20!important;
}

/* Keep the existing assembly workspace navigation as a functional control,
   without retaining the obsolete hidden page-title wrapper. */
body.v17-assemblies-constrained #view-assemblies>.steel-workspace-nav{
  box-sizing:border-box!important;
  flex:0 0 42px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0 14px!important;
  display:flex!important;
  align-items:center!important;
  border-bottom:1px solid #1d3446!important;
  background:#0B1723!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none!important;
}
body.v17-assemblies-constrained #view-assemblies>.steel-workspace-nav::-webkit-scrollbar{
  display:none!important;
}

body.v17-assemblies-constrained #view-assemblies>.assembly-filter-toolbar{
  flex:0 0 auto!important;
  min-width:0!important;
  margin-top:0!important;
}
body.v17-assemblies-constrained #view-assemblies>#assemblyMetadataStatus{
  flex:0 0 auto!important;
  min-width:0!important;
}
body.v17-assemblies-constrained #view-assemblies>.assemblies-table-panel{
  flex:1 1 auto!important;
  min-width:0!important;
  min-height:0!important;
  max-height:none!important;
  margin-bottom:0!important;
}
