:root{
  --v17-bg:#0b1723;--v17-panel:#102535;--v17-panel2:#132b3d;--v17-view:#1f2933;--v17-fg:#eef5fb;--v17-muted:#a7bac9;--v17-line:#304659;--v17-blue:#1396e8;--v17-left:16.666vw;--v17-right:min(23vw,360px);--v17-overlay-h:54px;--v17-bottom-h:65px;
}
html[data-theme="light"]{--v17-bg:#f4f6f8;--v17-panel:#ffffff;--v17-panel2:#f7f9fb;--v17-view:#edf1f4;--v17-fg:#17283b;--v17-muted:#657386;--v17-line:#d5dfe8}
html,body,button,input,select,textarea{font-family:Inter,Segoe UI,Arial,"Microsoft YaHei","PingFang SC",sans-serif!important}
body.v17-enhanced .brand{cursor:pointer}.v17-brand-overlay{display:none}
.v17-theme-switch{display:inline-flex;align-items:center;width:78px;height:30px;padding:2px 4px;border:1px solid #d6dee6;border-radius:7px;background:#fff;box-shadow:0 1px 2px rgba(14,35,55,.04);white-space:nowrap}
.v17-theme-switch button{flex:1;min-width:0;border:0;background:transparent;color:#657585;font-size:11px;font-weight:800;line-height:1;padding:5px 3px;border-radius:4px;cursor:pointer}.v17-theme-switch button.active{background:#0b86d1;color:#fff}.v17-theme-switch>span{width:1px;height:14px;background:#d8e1e8}
.v17-entry-theme{position:absolute;right:112px;top:22px;z-index:31;border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.09);box-shadow:none}.v17-entry-theme button{color:#dce8f1}.v17-entry-theme button.active{background:#1596e5;color:#fff}.v17-entry-theme>span{background:rgba(255,255,255,.25)}
.v17-edge-handle,.v17-tools-fab,.v17-copyright,.v17-context-overlay{display:none}

/* Global theme — conservative, non-destructive. */
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive),html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) .shell,html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) .content,html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) .workspace{background:var(--v17-bg)!important;color:var(--v17-fg)!important}


html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) .divider{background:var(--v17-line)!important}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) :is(.view,.panel,.info-card,.overview-card,.metric-card,.stat-card,.progress-card,.table-wrap,.report-card,.load-card,.side-card,.viewer-card,.card,.assembly-card,.drawing-card,.fastener-card){background:var(--v17-panel)!important;color:var(--v17-fg)!important;border-color:var(--v17-line)!important}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) :is(.page-title,.head-title h1,h1,h2,h3,strong){color:var(--v17-fg)}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) :is(.page-sub,.head-title p,.muted,.info-row span,.overview-card p){color:var(--v17-muted)!important}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) :is(input,select,textarea){background:#132b3d!important;color:var(--v17-fg)!important;border-color:var(--v17-line)!important}


/* Project header wording without rebuilding the existing header. */
.v17-project-name-inline{font-weight:800;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Immersive drawing/model shell. Only enabled on review states. */
body.v17-immersive{overflow:hidden;background:var(--v17-view)!important;color:var(--v17-fg)!important}
body.v17-immersive .app{height:100vh!important;grid-template-columns:0 minmax(0,1fr)!important;background:var(--v17-view)!important}
body.v17-immersive .sidebar{position:fixed!important;left:0;top:0;bottom:0;width:var(--v17-left)!important;min-width:210px;max-width:330px;transform:translateX(-102%);transition:transform .18s ease;z-index:100;background:#08233a!important;box-shadow:none}
body.v17-immersive.v17-left-open .sidebar{transform:translateX(0)}
body.v17-immersive .shell{height:100vh!important;min-width:0!important;background:var(--v17-view)!important;position:relative!important;display:block!important}









body.v17-immersive .brand{display:none!important}
.v17-brand-overlay{position:fixed;left:0;top:0;width:var(--v17-left);min-width:210px;max-width:330px;height:var(--v17-overlay-h);z-index:76;padding:7px 14px;display:none;align-items:center;background:rgba(6,28,46,.88);color:#fff;cursor:pointer;backdrop-filter:none;border-right:1px solid rgba(255,255,255,.08)}
body.v17-immersive .v17-brand-overlay{display:flex}.v17-brand-overlay strong{font-size:clamp(15px,1.05vw,20px);letter-spacing:.01em;white-space:nowrap}.v17-brand-overlay strong b{color:#1396e8}.v17-brand-overlay small{display:block;color:#9cb6ca;font-size:clamp(8px,.58vw,10px);margin-top:3px;white-space:nowrap}
.v17-context-overlay{position:fixed;left:50%;top:8px;transform:translateX(-50%);height:38px;z-index:77;align-items:center;gap:9px;padding:0 8px;color:#fff;font-size:clamp(10px,.74vw,12px);font-weight:700;white-space:nowrap;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.28)}body.v17-immersive .v17-context-overlay{display:flex}.v17-context-overlay>*{pointer-events:auto}.v17-context-back{border:0;background:transparent;color:inherit;font-size:20px;cursor:pointer;padding:2px 5px}.v17-view-tabs{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.22);border-radius:6px;overflow:hidden;background:rgba(5,25,42,.38);backdrop-filter:none}.v17-view-tabs button{height:28px;min-width:60px;border:0;border-left:1px solid rgba(255,255,255,.17);background:transparent;color:#dce8f1;font-size:10px;font-weight:800;cursor:pointer}.v17-view-tabs button:first-child{border-left:0}.v17-view-tabs button.active{background:#0b6fb8;color:#fff}
body.v17-immersive .workspace{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;padding:0!important;margin:0!important;background:var(--v17-view)!important;overflow:hidden!important;display:flex!important}
body.v17-immersive :is(.assembly-head,.model-head,.detail-head,.page-head,.tabs){display:none!important}
body.v17-immersive .panel{max-width:none!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;flex:1 1 auto!important}
body.v17-immersive .panel.active{display:flex!important}
body.v17-immersive :is(.viewer-layout,.layout,.cold-model-layout){position:relative!important;display:block!important;width:100%!important;height:100%!important;max-width:none!important;margin:0!important;padding:0!important;min-height:0!important;flex:1 1 auto!important}
body.v17-immersive :is(.viewer-card,.drawing-card,.cold3d-card,.single-pdf){position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;min-height:0!important;margin:0!important;border:0!important;border-radius:0!important;background:var(--v17-view)!important;overflow:hidden!important}
body.v17-immersive :is(.viewer-topbar,.single-toolbar){display:none!important}
body.v17-immersive :is(.viewer-host,.pdf-shell){position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;border:0!important;border-radius:0!important;background:var(--v17-view)!important}
body.v17-immersive :is(.pdf-shell iframe,.single-pdf iframe,.drawing-card iframe,.cold3d-card iframe,.model-runtime-frame){width:100%!important;height:100%!important;border:0!important}
body.v17-immersive .model-runtime-frame.visible{position:fixed!important;z-index:1!important;border:0!important}
body.v17-immersive .side-panels{position:fixed!important;right:0!important;top:0!important;bottom:0!important;width:var(--v17-right)!important;min-width:275px;display:grid!important;z-index:82!important;background:var(--v17-panel)!important;padding:8px!important;transform:translateX(102%)!important;transition:transform .18s ease!important;box-shadow:0 12px 36px rgba(0,0,0,.24)!important}
body.v17-immersive.v17-right-open .side-panels{transform:translateX(0)!important}
body.v17-immersive .side-card{background:var(--v17-panel2)!important;color:var(--v17-fg)!important;border-color:var(--v17-line)!important}body.v17-immersive .side-card h3,body.v17-immersive .info-row,body.v17-immersive :is(.part-row,.assembly-row,.plan-row){border-color:var(--v17-line)!important}body.v17-immersive .info-row span,body.v17-immersive :is(.parts-review-hint,.assemblies-hint,.plans-hint){color:var(--v17-muted)!important}body.v17-immersive .info-row strong,body.v17-immersive :is(.part-row,.assembly-row,.plan-row){color:var(--v17-fg)!important}
body.v17-immersive :is(.pill.current,.assembly-head .pill.current,.detail-head .pill.current,.page-head>.pill){display:none!important}
.v17-edge-handle{position:fixed;top:50%;transform:translateY(-50%);width:27px;height:54px;border:1px solid rgba(255,255,255,.13);background:#0B1723;color:#dce8f1;z-index:90;border-radius:0 8px 8px 0;cursor:pointer;font-size:24px;line-height:1;backdrop-filter:none}.v17-left-handle{left:0}.v17-right-handle{right:0;border-radius:8px 0 0 8px}.v17-tools-fab svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8}
.v17-tools-fab{position:fixed;right:14px;bottom:14px;width:48px;height:48px;border:0;border-radius:50%;background:#0877ef;color:#fff;z-index:91;place-items:center;cursor:pointer;box-shadow:0 8px 20px rgba(8,119,239,.34)}
.v17-copyright{position:fixed;left:12px;bottom:9px;z-index:75;color:#9bb4c7;font-size:10px;white-space:nowrap;pointer-events:none}
body.v17-immersive .v17-edge-handle,body.v17-immersive.v17-tools-page .v17-tools-fab,body.v17-immersive .v17-copyright{display:grid}body.v17-immersive .v17-copyright{display:block}
body.v17-immersive :is(.tool-dock,.cold-tool-dock){display:none!important}
body.v17-immersive.v17-tools-open :is(.tool-dock,.cold-tool-dock){position:fixed!important;right:14px!important;bottom:72px!important;width:min(680px,calc(100vw - 28px))!important;height:auto!important;min-height:0!important;display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;align-items:stretch!important;gap:3px!important;padding:7px!important;margin:0!important;border:1px solid var(--v17-line)!important;border-radius:10px!important;background:#0B1723!important;box-shadow:0 14px 36px rgba(0,0,0,.28)!important;z-index:89!important}
body.v17-immersive.v17-tools-open :is(.dock-btn,.dock-measure-wrap,.cold-dock-btn){width:78px!important;min-width:78px!important;flex:0 0 78px!important;height:60px!important;border:0!important;background:transparent!important;color:#eef5fb!important}body.v17-immersive.v17-tools-open :is(.dock-btn span,.cold-dock-btn span){font-size:9px!important}body.v17-immersive.v17-tools-open :is(.dock-btn svg,.cold-dock-btn svg){width:22px!important;height:22px!important}
body.v17-immersive .measure-menu{bottom:66px!important}

/* Light-mode viewer keeps engineering content intact: PDF page remains white; only shell changes. */
html[data-theme="light"] .v17-brand-overlay{background:rgba(18,43,62,.90)!important}
html[data-theme="light"] body.v17-immersive.v17-tools-open :is(.tool-dock,.cold-tool-dock){background:rgba(18,43,62,.94)!important}

@media (max-width:900px){:root{--v17-left:28vw;--v17-right:min(42vw,360px)}.v17-project-name-inline{display:none}.v17-context-overlay{max-width:45vw;overflow:hidden}.v17-brand-overlay small{display:none}}
@media (max-width:680px){:root{--v17-left:72vw;--v17-right:72vw}.v17-brand-overlay{min-width:0;max-width:none}.v17-entry-theme{right:96px;top:14px}.v17-theme-switch{width:66px;height:28px}.v17-theme-switch button{font-size:9px}.v17-context-overlay{font-size:9px;max-width:42vw}.v17-view-tabs button{min-width:50px}}
body.v17-immersive :is(#fullBtn,#miniFull,#coldFullBtn,#coldMiniFull){display:none!important}
/* Project-entry page participates in the global theme without changing geometry. */
html[data-theme="light"] body.v17-enhanced .app.access-mode,html[data-theme="light"] body.v17-enhanced .app.access-mode .shell,html[data-theme="light"] body.v17-enhanced .app.access-mode .hero-access{background:#eef2f5!important;color:#17283b!important}
html[data-theme="light"] body.v17-enhanced .app.access-mode .v13-entry-logo{color:#122c43!important}
html[data-theme="light"] body.v17-enhanced .app.access-mode .v13-entry-tag{color:#60778a!important}
html[data-theme="light"] body.v17-enhanced .app.access-mode .access-label{color:#314b61!important}
html[data-theme="light"] body.v17-enhanced .app.access-mode .v14-entry-copyright{color:#60778a!important}
html[data-theme="light"] body.v17-enhanced .entry-language,html[data-theme="light"] body.v17-enhanced .v17-entry-theme{background:rgba(18,43,62,.07)!important;border-color:rgba(18,43,62,.20)!important}
html[data-theme="light"] body.v17-enhanced .entry-language button,html[data-theme="light"] body.v17-enhanced .v17-entry-theme button{color:#496477!important}
html[data-theme="light"] body.v17-enhanced .entry-language>span,html[data-theme="light"] body.v17-enhanced .v17-entry-theme>span{background:rgba(18,43,62,.20)!important}
/* Dark theme coverage for the main Hub views. Layout dimensions are unchanged. */
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) :is(.action-card,.searchbox,.recent,.info-card,.help-card,.about-card,.metric-card,.report-card,.v12-panel,.data-table,.production-actions,.production-modal-card,.production-confirm-grid,.production-table-panel,.single-parts-table-panel,.storage-warning){background:var(--v17-panel)!important;color:var(--v17-fg)!important;border-color:var(--v17-line)!important}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) :is(.action-card p,.recent-type,.empty,.info-row,.help-card,.about-card,.about-table th,.production-field label,.production-meta-line,.production-modal-card p,.production-validation-list){color:var(--v17-muted)!important}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) :is(.action-card h3,.recent-mark,.section-title,.info-row strong,.help-card b,.about-card h2,.about-table td,.production-selected,.production-modal-card h3,.production-confirm-grid strong){color:var(--v17-fg)!important}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) :is(.recent-row,.info-row,.about-table th,.about-table td,.production-confirm-grid){border-color:var(--v17-line)!important}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) .recent-row:hover{background:#163044!important}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) :is(.v12-toolbar input,.v12-toolbar select,.production-field input,.production-field select,.production-paste-area,.searchbox input){background:#132b3d!important;color:var(--v17-fg)!important;border-color:var(--v17-line)!important}
html[data-theme="dark"] body.v17-enhanced:not(.v17-immersive) .about-link{background:#132b3d!important;color:#7bc1ff!important;border-color:var(--v17-line)!important}


/* V17.7.2 — branding belongs to the top bar, never to the left sidebar. */

body.v17-brand-in-topbar:not(.v17-immersive) .sidebar{
  margin-top:var(--top)!important;
  height:calc(100vh - var(--top))!important;
  align-self:start!important;
}





body.v17-brand-in-topbar:not(.v17-immersive) .sidebar>.brand{display:none!important}





body.v17-immersive.v17-brand-in-topbar .sidebar{top:var(--v17-overlay-h)!important}
body.v17-immersive .v17-brand-overlay{display:none!important}




/* V17.7.3 — one continuous 65 px bottom bar across the whole project workspace. */
.v17-bottom-bar{
  position:fixed!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:100vw!important;
  height:var(--v17-bottom-h)!important;
  min-height:var(--v17-bottom-h)!important;
  display:flex!important;
  align-items:center!important;
  padding:0 16px!important;
  margin:0!important;
  background:#0d2232!important;
  border-top:1px solid rgba(255,255,255,.10)!important;
  color:#9bb4c7!important;
  z-index:140!important;
  box-shadow:none!important;
}
.v17-bottom-copyright{
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#9bb4c7!important;
  font-size:10px!important;
  line-height:1!important;
  white-space:nowrap!important;
  text-align:left!important;
}
body.v17-bottom-bar-active:not(.v17-immersive) .app:not(.access-mode){height:calc(100vh - var(--v17-bottom-h))!important}
body.v17-bottom-bar-active:not(.v17-immersive) .app:not(.access-mode) .shell{height:calc(100vh - var(--v17-bottom-h))!important}
body.v17-bottom-bar-active:not(.v17-immersive) .sidebar{height:calc(100vh - var(--v17-bottom-h))!important}
body.v17-bottom-bar-active .sidebar>.side-footer{display:none!important}

/* In viewer/review modes the same bar remains visible and the viewport stops above it. */
body.v17-immersive.v17-bottom-bar-active .app{height:calc(100vh - var(--v17-bottom-h))!important}
body.v17-immersive.v17-bottom-bar-active .shell{height:calc(100vh - var(--v17-bottom-h))!important}
body.v17-immersive.v17-bottom-bar-active .sidebar{bottom:var(--v17-bottom-h)!important;height:auto!important}
body.v17-immersive.v17-bottom-bar-active .side-panels{bottom:var(--v17-bottom-h)!important}

body.v17-immersive.v17-bottom-bar-active .v17-tools-fab{bottom:calc(var(--v17-bottom-h) + 14px)!important}
body.v17-immersive.v17-bottom-bar-active.v17-tools-open :is(.tool-dock,.cold-tool-dock){bottom:calc(var(--v17-bottom-h) + 72px)!important}
body.v17-immersive.v17-bottom-bar-active .measure-menu{bottom:calc(var(--v17-bottom-h) + 66px)!important}
body.v17-immersive .v17-copyright{display:none!important}

/* Project-entry page remains a separate full-height screen with its existing copyright. */
.app.access-mode~.v17-bottom-bar{display:none!important}


/* V17.7.4 — 45 px continuous top/bottom bars + 360 px left navigation drawer. */
:root{
  --v17-bar:#0B1723;
  --v17-left:360px;
  --v17-overlay-h:45px;
  --v17-bottom-h:45px;
  --side:360px;
  --top:45px;
}

/* One uninterrupted colour across both horizontal bars. */
.v17-bottom-bar{
  height:45px!important;
  min-height:45px!important;
  background:var(--v17-bar)!important;
  background-image:none!important;
  box-shadow:none!important;
}


.v17-bottom-bar{
  background:var(--v17-bar)!important;
  border-top:0!important;
}

/* The left navigation is 360 px and opens over the workspace. */
body.v17-sidebar-drawer:not(.v17-immersive) .app:not(.access-mode){
  grid-template-columns:0 minmax(0,1fr)!important;
}
body.v17-sidebar-drawer:not(.v17-immersive) .shell{
  width:100vw!important;
  min-width:0!important;
}

body.v17-sidebar-drawer:not(.v17-immersive) .sidebar{
  position:fixed!important;
  left:0!important;
  top:45px!important;
  bottom:45px!important;
  width:360px!important;
  min-width:360px!important;
  max-width:360px!important;
  height:auto!important;
  margin-top:0!important;
  transform:translateX(-100%)!important;
  transition:transform .18s ease!important;
  z-index:100!important;
  box-shadow:none!important;
}
body.v17-sidebar-drawer:not(.v17-immersive).v17-left-open .sidebar{
  transform:translateX(0)!important;
}
body.v17-immersive .sidebar{
  width:360px!important;
  min-width:360px!important;
  max-width:360px!important;
  top:45px!important;
  bottom:45px!important;
}
body.v17-immersive.v17-brand-in-topbar .sidebar{top:45px!important}

/* Existing edge opener is now available on every active project page. */
body.v17-sidebar-drawer .v17-left-handle{display:block!important}
body.v17-sidebar-drawer.v17-immersive .v17-left-handle{display:block!important}
.v17-left-handle{
  left:0!important;
  width:28px!important;
  height:54px!important;
}
body.v17-left-open .v17-left-handle{left:360px!important}

/* Review shell respects the new fixed bar heights. */

body.v17-immersive.v17-bottom-bar-active .sidebar,body.v17-immersive.v17-bottom-bar-active .side-panels{bottom:45px!important}


/* Project entry remains untouched and has no drawer handle/bottom bar. */
body:not(.v17-sidebar-drawer) .v17-left-handle{display:none!important}

/* V17.7.4.3 — global sidebar geometry, applied to ALL project pages. */
:root{
  --v17-bar:#0B1723;
  --v17-left:360px;
  --v17-overlay-h:45px;
  --v17-bottom-h:45px;
  --side:360px;
  --top:45px;
}

/* Top and bottom bars stay continuous and exactly 45 px. */
.v17-bottom-bar{
  height:45px!important;
  min-height:45px!important;
  max-height:45px!important;
  background:var(--v17-bar)!important;
  background-image:none!important;
  box-shadow:none!important;
}

/* STRUCTUNE HUB always lives in the TOP BAR and always has the second line. */




/* Project pages use a 360 px OVERLAY drawer. */
body.v17-sidebar-drawer .app:not(.access-mode){
  grid-template-columns:0 minmax(0,1fr)!important;
}
body.v17-sidebar-drawer .shell{
  width:100vw!important;
  min-width:0!important;
}
body.v17-sidebar-drawer .sidebar,body.v17-sidebar-drawer.v17-immersive .sidebar{
  position:fixed!important;
  left:0!important;
  top:45px!important;
  bottom:45px!important;
  width:360px!important;
  min-width:360px!important;
  max-width:360px!important;
  height:auto!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  transform:translateX(-100%)!important;
  transition:transform .18s ease!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  background:linear-gradient(180deg,#071d30,#0a2f48)!important;
  box-shadow:none!important;
  z-index:2000!important;
  isolation:isolate!important;
}
body.v17-sidebar-drawer.v17-left-open .sidebar,body.v17-sidebar-drawer.v17-immersive.v17-left-open .sidebar{
  transform:translateX(0)!important;
}

/* No logo/footer/copyright inside the drawer: only navigation fills its full usable height. */
body.v17-sidebar-drawer .sidebar > .brand,body.v17-sidebar-drawer.v17-immersive .sidebar > .brand,body.v17-sidebar-drawer .sidebar > .side-foot,body.v17-sidebar-drawer .sidebar > .side-footer,body.v17-sidebar-drawer.v17-immersive .sidebar > .side-foot,body.v17-sidebar-drawer.v17-immersive .sidebar > .side-footer{
  display:none!important;
}
body.v17-sidebar-drawer .sidebar > .nav,body.v17-sidebar-drawer.v17-immersive .sidebar > .nav{
  flex:1 1 auto!important;
  min-height:0!important;
  height:100%!important;
  overflow:auto!important;
  margin:0!important;
}

/* Drawer opener follows the 360 px drawer edge and sits above every page layer. */
body.v17-sidebar-drawer .v17-left-handle{
  display:grid!important;
  left:0!important;
  z-index:2001!important;
}
body.v17-sidebar-drawer.v17-left-open .v17-left-handle{
  left:360px!important;
}

/* Nothing from any page may paint over the open drawer. */
body.v17-left-open .sidebar{
  z-index:2000!important;
}
body.v17-left-open .v17-left-handle{
  z-index:2001!important;
}

/* Bottom bar is the only footer. */
.v17-bottom-bar{
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:100vw!important;
  height:45px!important;
  min-height:45px!important;
  max-height:45px!important;
  background:var(--v17-bar)!important;
  border:0!important;
  z-index:2100!important;
}

/* The sidebar must terminate exactly at the inner edge of the bottom bar. */
body.v17-bottom-bar-active.v17-sidebar-drawer .sidebar,body.v17-bottom-bar-active.v17-sidebar-drawer.v17-immersive .sidebar{
  top:45px!important;
  bottom:45px!important;
  height:auto!important;
}

/* Project entry remains untouched. */
.app.access-mode ~ .v17-bottom-bar{display:none!important}
body:not(.v17-sidebar-drawer) .v17-left-handle{display:none!important}


/* Final cascade locks for V17.7.4.3 — beat legacy per-page/sidebar rules. */

body.v17-enhanced.v17-sidebar-drawer.v17-brand-in-topbar:not(.v17-immersive) .sidebar,body.v17-enhanced.v17-sidebar-drawer.v17-brand-in-topbar.v17-immersive .sidebar,body.v17-enhanced.v17-bottom-bar-active.v17-sidebar-drawer.v17-brand-in-topbar:not(.v17-immersive) .sidebar,body.v17-enhanced.v17-bottom-bar-active.v17-sidebar-drawer.v17-brand-in-topbar.v17-immersive .sidebar{
  position:fixed!important;
  left:0!important;
  top:45px!important;
  bottom:45px!important;
  width:360px!important;
  min-width:360px!important;
  max-width:360px!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  align-self:auto!important;
  transform:translateX(-100%)!important;
  z-index:2000!important;
}
body.v17-enhanced.v17-sidebar-drawer.v17-brand-in-topbar.v17-left-open:not(.v17-immersive) .sidebar,body.v17-enhanced.v17-sidebar-drawer.v17-brand-in-topbar.v17-left-open.v17-immersive .sidebar{
  transform:translateX(0)!important;
}
body.v17-enhanced.v17-sidebar-drawer.v17-brand-in-topbar .sidebar > .brand,body.v17-enhanced.v17-sidebar-drawer.v17-brand-in-topbar .sidebar > .side-foot,body.v17-enhanced.v17-sidebar-drawer.v17-brand-in-topbar .sidebar > .side-footer{
  display:none!important;
}

.v17-bottom-bar{box-sizing:border-box!important}




/* V17.7.4.4 — right information drawer for all review pages with .side-panels. */
:root{--v17-right-drawer:360px}

body.v17-right-drawer-page .viewer-layout,body.v17-right-drawer-page .cold-model-layout,body.v17-right-drawer-page .layout{
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
}

body.v17-right-drawer-page .side-panels{
  position:fixed!important;
  top:45px!important;
  right:0!important;
  bottom:45px!important;
  width:var(--v17-right-drawer)!important;
  min-width:var(--v17-right-drawer)!important;
  max-width:var(--v17-right-drawer)!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  gap:0!important;
  overflow:hidden!important;
  background:#102535!important;
  border-left:1px solid var(--v17-line)!important;
  border-radius:0!important;
  box-shadow:-10px 0 28px rgba(0,0,0,.22)!important;
  transform:translateX(102%)!important;
  transition:transform .18s ease!important;
  z-index:1990!important;
}
body.v17-right-drawer-page.v17-right-open .side-panels{
  transform:translateX(0)!important;
}
body.v17-right-drawer-page .side-panels .side-card{
  min-height:0!important;
  margin:0!important;
  border-radius:0!important;
  border-left:0!important;
  border-right:0!important;
  background:#102535!important;
  box-shadow:none!important;
}
body.v17-right-drawer-page .side-panels .side-card:first-child{
  border-top:0!important;
}
body.v17-right-drawer-page .side-panels .side-card:last-child{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  border-bottom:0!important;
}
body.v17-right-drawer-page .side-panels :is(.parts-list,.assemblies-list,.plans-list){
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
}
body.v17-right-drawer-page .v17-right-handle{
  display:grid!important;
  position:fixed!important;
  top:50%!important;
  right:0!important;
  transform:translateY(-50%)!important;
  width:28px!important;
  height:54px!important;
  z-index:1991!important;
  border-radius:8px 0 0 8px!important;
}
body.v17-right-drawer-page.v17-right-open .v17-right-handle{
  right:var(--v17-right-drawer)!important;
}
/* Keep both drawers independent when simultaneously open. */
body.v17-right-drawer-page.v17-left-open .sidebar{z-index:2000!important}
body.v17-right-drawer-page.v17-left-open .v17-left-handle{z-index:2001!important}
/* The 45 px bars remain above the drawer edges. */

body.v17-right-drawer-page .v17-bottom-bar{z-index:2100!important}


/* V17.7.4.5 — unmistakable right drawer for the EXISTING Assembly Info + Parts panel. */
:root{--v17-right-drawer:360px}
body.v17-right-drawer-page .side-panels{
  position:fixed!important;
  top:45px!important;
  right:0!important;
  bottom:45px!important;
  left:auto!important;
  width:360px!important;
  min-width:360px!important;
  max-width:360px!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  gap:0!important;
  overflow:hidden!important;
  background:#102535!important;
  border:0!important;
  border-left:1px solid #304659!important;
  border-radius:0!important;
  box-shadow:-10px 0 28px rgba(0,0,0,.26)!important;
  transform:translateX(100%)!important;
  transition:transform .18s ease!important;
  z-index:3000!important;
}
body.v17-right-drawer-page.v17-right-open .side-panels{transform:translateX(0)!important}
body.v17-right-drawer-page .side-panels .side-card{
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  border-radius:0!important;
  border-left:0!important;
  border-right:0!important;
  box-shadow:none!important;
}
body.v17-right-drawer-page .side-panels .side-card:first-child{border-top:0!important}
body.v17-right-drawer-page .side-panels .side-card:last-child{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  border-bottom:0!important;
}
body.v17-right-drawer-page .side-panels :is(.parts-list,.assemblies-list,.plans-list){
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
}
body.v17-right-drawer-page .v17-right-handle{
  display:grid!important;
  position:fixed!important;
  top:50%!important;
  right:0!important;
  transform:translateY(-50%)!important;
  width:30px!important;
  height:64px!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-right:0!important;
  border-radius:9px 0 0 9px!important;
  background:#17384f!important;
  color:#fff!important;
  font-size:25px!important;
  line-height:1!important;
  cursor:pointer!important;
  z-index:3001!important;
  box-shadow:-5px 0 14px rgba(0,0,0,.20)!important;
}
body.v17-right-drawer-page.v17-right-open .v17-right-handle{right:360px!important}
/* Remove the old reserved right column: the drawer overlays the workspace. */
body.v17-right-drawer-page :is(.viewer-layout,.cold-model-layout,.layout){
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
}

/* V17.7.4.6 — remove circled items globally, all project pages. */

/* Top-bar Project Information + Support only (sidebar navigation remains untouched). */


/* Remove CURRENT / REV header badges, but do not remove revision data inside tables/lists. */
body.v17-enhanced .assembly-head > .pills,body.v17-enhanced .detail-head > .pills,body.v17-enhanced .cold-head > .pills,body.v17-enhanced .page-head > .pill{
  display:none!important;
}

/* V17.7.4.7 — Assembly Drawing: 1200x850 max central canvas with transparent overlays. */
:root{
  --v17-drawing-stage-w:min(1200px,calc(100vw - 40px));
  --v17-drawing-stage-h:min(850px,calc(100vh - 90px));
}

/* Drawing canvas itself: one clean centered box. */
body.v17-drawing-stage .workspace{
  position:fixed!important;
  inset:45px 0 45px 0!important;
  width:100vw!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#0b1723!important;
}
body.v17-drawing-stage #panel-drawing.panel.active{
  position:fixed!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:var(--v17-drawing-stage-w)!important;
  height:var(--v17-drawing-stage-h)!important;
  max-width:1200px!important;
  max-height:850px!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
  overflow:hidden!important;
  z-index:30!important;
}
body.v17-drawing-stage #panel-drawing .viewer-layout,body.v17-drawing-stage #panel-drawing .viewer-card,body.v17-drawing-stage #panel-drawing .pdf-shell{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  overflow:hidden!important;
  background:#2d2d2d!important;
}
body.v17-drawing-stage #panel-drawing .pdf-shell iframe{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  display:block!important;
}

/* Use the real existing header as a transparent overlay over the drawing. */
body.v17-drawing-stage .assembly-head{
  position:fixed!important;
  left:50%!important;
  top:max(55px,calc(50% - 415px))!important;
  transform:translateX(-50%)!important;
  width:min(1180px,calc(100vw - 60px))!important;
  max-width:1180px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  z-index:92!important;
  pointer-events:none!important;
  background:transparent!important;
  border:0!important;
}
body.v17-drawing-stage .assembly-head .head-title{
  pointer-events:auto!important;
  gap:10px!important;
}
body.v17-drawing-stage .assembly-head .back{
  width:34px!important;
  height:34px!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-radius:7px!important;
  background:rgba(6,28,46,.24)!important;
  color:#fff!important;
  backdrop-filter:blur(3px)!important;
}
body.v17-drawing-stage .assembly-head .head-title h1{
  margin:0 0 2px!important;
  color:#fff!important;
  font-size:19px!important;
  text-shadow:0 1px 3px rgba(0,0,0,.65)!important;
}
body.v17-drawing-stage .assembly-head .head-title p{
  margin:0!important;
  color:rgba(255,255,255,.78)!important;
  font-size:10px!important;
  text-shadow:0 1px 3px rgba(0,0,0,.65)!important;
}
body.v17-drawing-stage .assembly-head > .pills{display:none!important}

/* Existing Drawing / 3D / Single Parts / Production / Info / History tabs float over canvas. */
body.v17-drawing-stage .tabs{
  position:fixed!important;
  left:50%!important;
  top:max(96px,calc(50% - 374px))!important;
  transform:translateX(-50%)!important;
  width:min(1180px,calc(100vw - 60px))!important;
  max-width:1180px!important;
  height:34px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  border:0!important;
  z-index:92!important;
  background:transparent!important;
}
body.v17-drawing-stage .tab-link{
  height:30px!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-radius:7px!important;
  background:rgba(6,28,46,.20)!important;
  color:rgba(255,255,255,.72)!important;
  font-size:9px!important;
  font-weight:800!important;
  backdrop-filter:blur(3px)!important;
}
body.v17-drawing-stage .tab-link.active{
  color:#fff!important;
  border-color:rgba(19,150,232,.70)!important;
  background:rgba(11,111,184,.46)!important;
}

/* Bottom existing tool dock becomes a compact transparent overlay on the drawing. */
body.v17-drawing-stage .tool-dock{
  position:fixed!important;
  left:50%!important;
  bottom:max(55px,calc(50% - 415px))!important;
  transform:translateX(-50%)!important;
  width:auto!important;
  max-width:min(1160px,calc(100vw - 80px))!important;
  height:58px!important;
  min-height:58px!important;
  margin:0!important;
  padding:4px!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:3px!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:10px!important;
  background:rgba(6,28,46,.20)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  z-index:93!important;
}
body.v17-drawing-stage .dock-btn,body.v17-drawing-stage .dock-measure-wrap{
  width:82px!important;
  min-width:82px!important;
  flex:0 0 82px!important;
  height:48px!important;
  border:0!important;
  background:transparent!important;
  color:#fff!important;
}
body.v17-drawing-stage .dock-btn{
  gap:3px!important;
  border-radius:7px!important;
}
body.v17-drawing-stage .dock-btn:hover,body.v17-drawing-stage .dock-btn.active{
  background:rgba(6,28,46,.38)!important;
}
body.v17-drawing-stage .dock-btn svg{
  width:21px!important;
  height:21px!important;
}
body.v17-drawing-stage .dock-btn span{
  font-size:9px!important;
  color:rgba(255,255,255,.88)!important;
}
body.v17-drawing-stage .measure-menu{
  bottom:56px!important;
  z-index:100!important;
}

/* V17.7.4.73 — Drawing review keeps the shared Fullscreen control in the Top App Bar.
   Only the floating context/tools controls remain suppressed on Drawing view. */
body.v17-drawing-stage .v17-context-overlay,body.v17-drawing-stage .v17-tools-fab{
  display:none!important;
}


/* Right drawer remains independent and overlays the central drawing when opened. */
body.v17-drawing-stage .side-panels{
  z-index:3000!important;
}
body.v17-drawing-stage .v17-right-handle{
  z-index:3001!important;
}

/* V17.7.4.7 geometry polish: keep transparent overlays separated inside the stage. */
body.v17-drawing-stage .assembly-head{height:40px!important;min-height:40px!important;max-height:40px!important}
body.v17-drawing-stage .tabs{top:max(100px,calc(50% - 370px))!important}
body.v17-drawing-stage .tool-dock{box-sizing:border-box!important;height:58px!important;min-height:58px!important;max-height:58px!important}
body.v17-drawing-stage .dock-btn,body.v17-drawing-stage .dock-measure-wrap{box-sizing:border-box!important}

/* V17.7.4.9 — true viewport-edge right sidebar. */

/* Drawing-stage free space is the viewport minus any open sidebar(s). */
body.v17-drawing-stage{
  --v17-free-left:0px;
  --v17-free-right:0px;
}
body.v17-drawing-stage.v17-left-open{ --v17-free-left:360px; }
body.v17-drawing-stage.v17-right-open{ --v17-free-right:360px; }

/* EXISTING Assembly Info + Parts panel becomes a true right viewport sidebar. */
body.v17-drawing-stage .side-panels{
  position:fixed!important;
  top:45px!important;
  right:0!important;
  bottom:45px!important;
  left:auto!important;
  width:360px!important;
  min-width:360px!important;
  max-width:360px!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  gap:0!important;
  overflow:hidden!important;
  background:#102535!important;
  border-left:1px solid var(--v17-line)!important;
  border-radius:0!important;
  box-shadow:-10px 0 28px rgba(0,0,0,.22)!important;
  z-index:3200!important;
  transform:translateX(100%)!important;
  transition:transform .18s ease!important;
}
body.v17-drawing-stage.v17-right-open .side-panels{
  transform:translateX(0)!important;
}
body.v17-drawing-stage .side-panels .side-card{
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  min-height:0!important;
}
body.v17-drawing-stage .side-panels .side-card + .side-card{
  border-top:1px solid var(--v17-line)!important;
}
body.v17-drawing-stage .side-panels .parts-list{
  min-height:0!important;
  height:100%!important;
  max-height:none!important;
  overflow:auto!important;
}

/* Right opener is physically attached to the sidebar edge. */
body.v17-drawing-stage .v17-right-handle{
  position:fixed!important;
  top:50%!important;
  right:0!important;
  transform:translateY(-50%)!important;
  z-index:3201!important;
}
body.v17-drawing-stage.v17-right-open .v17-right-handle{
  right:360px!important;
}

/* The drawing NEVER goes underneath the right sidebar.
   It remains max 1200x850, centred in the actually available free area. */
body.v17-drawing-stage #panel-drawing.panel.active{
  left:calc(
    var(--v17-free-left) +
    (100vw - var(--v17-free-left) - var(--v17-free-right)) / 2
  )!important;
  width:min(
    1200px,
    calc(100vw - var(--v17-free-left) - var(--v17-free-right) - 24px)
  )!important;
  transition:left .18s ease,width .18s ease!important;
}

/* Top transparent controls track exactly the same drawing centre/width. */
body.v17-drawing-stage .assembly-head,body.v17-drawing-stage .tabs{
  left:calc(
    var(--v17-free-left) +
    (100vw - var(--v17-free-left) - var(--v17-free-right)) / 2
  )!important;
  width:min(
    1180px,
    calc(100vw - var(--v17-free-left) - var(--v17-free-right) - 44px)
  )!important;
  transition:left .18s ease,width .18s ease!important;
}

/* Bottom transparent tool overlay also follows the drawing only. */
body.v17-drawing-stage .tool-dock{
  left:calc(
    var(--v17-free-left) +
    (100vw - var(--v17-free-left) - var(--v17-free-right)) / 2
  )!important;
  max-width:min(
    1160px,
    calc(100vw - var(--v17-free-left) - var(--v17-free-right) - 64px)
  )!important;
  transition:left .18s ease,max-width .18s ease!important;
}

/* Ensure the central drawing is visually separate from the fixed right drawer. */
body.v17-drawing-stage #panel-drawing .viewer-layout{
  grid-template-columns:1fr!important;
}

/* V17.7.4.10 — FIXED drawing stage.
   Sidebars never move, resize or recenter the drawing. */
body.v17-drawing-stage{
  --v17-fixed-left-lane:360px;
  --v17-fixed-right-lane:360px;
  --v17-fixed-stage-width:min(
    1200px,
    calc(100vw - var(--v17-fixed-left-lane) - var(--v17-fixed-right-lane) - 24px)
  );
}

/* The drawing is permanently centered in the fixed middle lane,
   regardless of whether either drawer is open or closed. */
body.v17-drawing-stage #panel-drawing.panel.active{
  left:calc(
    var(--v17-fixed-left-lane) +
    (100vw - var(--v17-fixed-left-lane) - var(--v17-fixed-right-lane)) / 2
  )!important;
  width:var(--v17-fixed-stage-width)!important;
  max-width:1200px!important;
  transform:translate(-50%,-50%)!important;
  transition:none!important;
}

/* Top transparent controls are locked to the same permanent stage center. */
body.v17-drawing-stage .assembly-head,body.v17-drawing-stage .tabs{
  left:calc(
    var(--v17-fixed-left-lane) +
    (100vw - var(--v17-fixed-left-lane) - var(--v17-fixed-right-lane)) / 2
  )!important;
  width:min(
    1180px,
    calc(100vw - var(--v17-fixed-left-lane) - var(--v17-fixed-right-lane) - 44px)
  )!important;
  transition:none!important;
}

/* Bottom transparent tools are locked to the same permanent stage center. */
body.v17-drawing-stage .tool-dock{
  left:calc(
    var(--v17-fixed-left-lane) +
    (100vw - var(--v17-fixed-left-lane) - var(--v17-fixed-right-lane)) / 2
  )!important;
  max-width:min(
    1160px,
    calc(100vw - var(--v17-fixed-left-lane) - var(--v17-fixed-right-lane) - 64px)
  )!important;
  transition:none!important;
}

/* Left drawer owns only the permanent 360 px lane. */
body.v17-drawing-stage .sidebar{
  left:0!important;
  width:360px!important;
  min-width:360px!important;
  max-width:360px!important;
}

/* Right drawer owns only the permanent 360 px lane. */
body.v17-drawing-stage .side-panels{
  right:0!important;
  width:360px!important;
  min-width:360px!important;
  max-width:360px!important;
}

/* Drawer state changes ONLY the drawer transform, never the drawing stage. */
body.v17-drawing-stage:not(.v17-left-open) .sidebar{
  transform:translateX(-100%)!important;
}
body.v17-drawing-stage.v17-left-open .sidebar{
  transform:translateX(0)!important;
}
body.v17-drawing-stage:not(.v17-right-open) .side-panels{
  transform:translateX(100%)!important;
}
body.v17-drawing-stage.v17-right-open .side-panels{
  transform:translateX(0)!important;
}

/* Handles attach to drawer edges without affecting canvas geometry. */
body.v17-drawing-stage .v17-left-handle{left:0!important}
body.v17-drawing-stage.v17-left-open .v17-left-handle{left:360px!important}
body.v17-drawing-stage .v17-right-handle{right:0!important}
body.v17-drawing-stage.v17-right-open .v17-right-handle{right:360px!important}

/* Explicitly neutralise previous state-dependent free-space variables. */
body.v17-drawing-stage,body.v17-drawing-stage.v17-left-open,body.v17-drawing-stage.v17-right-open,body.v17-drawing-stage.v17-left-open.v17-right-open{
  --v17-free-left:0px!important;
  --v17-free-right:0px!important;
  --v17-stage-left:0px!important;
  --v17-stage-right:0px!important;
}

/* V17.7.4.11 — the existing Assembly Info + Parts node is now a BODY child.
   Therefore these coordinates are truly viewport-relative. */
body.v17-drawing-stage > .v17-drawing-right-portal{
  position:fixed!important;
  top:45px!important;
  right:0!important;
  bottom:45px!important;
  left:auto!important;
  width:360px!important;
  min-width:360px!important;
  max-width:360px!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  gap:0!important;
  overflow:hidden!important;
  background:#102535!important;
  border-left:1px solid var(--v17-line)!important;
  border-radius:0!important;
  box-shadow:-10px 0 28px rgba(0,0,0,.22)!important;
  z-index:3200!important;
  transform:translateX(100%)!important;
  transition:transform .18s ease!important;
}
body.v17-drawing-stage.v17-right-open > .v17-drawing-right-portal{
  transform:translateX(0)!important;
}
body.v17-drawing-stage > .v17-drawing-right-portal .side-card{
  margin:0!important;
  border-left:0!important;
  border-right:0!important;
  border-radius:0!important;
  min-height:0!important;
}
body.v17-drawing-stage > .v17-drawing-right-portal .side-card + .side-card{
  border-top:1px solid var(--v17-line)!important;
}
body.v17-drawing-stage > .v17-drawing-right-portal .parts-list{
  min-height:0!important;
  height:100%!important;
  max-height:none!important;
  overflow:auto!important;
}

/* The handle belongs to the viewport lane, not the drawing. */
body.v17-drawing-stage .v17-right-handle{
  position:fixed!important;
  top:50%!important;
  right:0!important;
  transform:translateY(-50%)!important;
  z-index:3201!important;
}
body.v17-drawing-stage.v17-right-open .v17-right-handle{
  right:360px!important;
}

/* Keep drawing and its overlays absolutely stationary while the drawer toggles. */
body.v17-drawing-stage #panel-drawing.panel.active,body.v17-drawing-stage .assembly-head,body.v17-drawing-stage .tabs,body.v17-drawing-stage .tool-dock{
  transition:none!important;
}

/* V17.7.4.12 — zero horizontal gap between Drawing and both sidebar lanes. */

/* The middle drawing lane is exactly:
   viewport - 360px left lane - 360px right lane. */
body.v17-drawing-stage #panel-drawing.panel.active{
  left:360px!important;
  right:360px!important;
  width:auto!important;
  max-width:none!important;
  transform:translateY(-50%)!important;
  transition:none!important;
}

/* Every drawing wrapper fills that exact middle lane edge-to-edge. */
body.v17-drawing-stage #panel-drawing .viewer-layout,body.v17-drawing-stage #panel-drawing .viewer-card,body.v17-drawing-stage #panel-drawing .pdf-shell,body.v17-drawing-stage #panel-drawing .pdf-shell iframe{
  left:0!important;
  right:0!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Transparent top controls follow the same exact middle-lane width. */
body.v17-drawing-stage .assembly-head,body.v17-drawing-stage .tabs{
  left:360px!important;
  right:360px!important;
  width:auto!important;
  max-width:none!important;
  transform:none!important;
}

/* Bottom transparent tool overlay stays centred over the now edge-to-edge drawing. */
body.v17-drawing-stage .tool-dock{
  left:calc(360px + (100vw - 360px - 360px)/2)!important;
  max-width:calc(100vw - 360px - 360px)!important;
}

/* Drawer toggling still never moves or resizes the drawing. */
body.v17-drawing-stage,body.v17-drawing-stage.v17-left-open,body.v17-drawing-stage.v17-right-open,body.v17-drawing-stage.v17-left-open.v17-right-open{
  --v17-fixed-left-lane:360px!important;
  --v17-fixed-right-lane:360px!important;
}

/* V17.7.4.13 — unified frame colour. */
:root{
  --v17-bar:#0B1723!important;
}

/* Top and bottom bars. */
.v17-bottom-bar{
  background:#0B1723!important;
  background-image:none!important;
}

/* Left sidebar / drawer. */
body.v17-sidebar-drawer .sidebar,body.v17-sidebar-drawer.v17-immersive .sidebar,body.v17-drawing-stage .sidebar{
  background:#0B1723!important;
  background-image:none!important;
}
body.v17-sidebar-drawer .sidebar::before,body.v17-sidebar-drawer.v17-immersive .sidebar::before{
  background:#0B1723!important;
  background-image:none!important;
}

/* Right sidebar outer shell. */
body.v17-drawing-stage > .v17-drawing-right-portal,body.v17-drawing-stage .side-panels,body.v17-immersive .side-panels{
  background:#0B1723!important;
}

/* Keep right-sidebar cards visually integrated with the same frame colour. */
body.v17-drawing-stage > .v17-drawing-right-portal .side-card,body.v17-drawing-stage .side-panels .side-card{
  background:#0B1723!important;
}

/* Very subtle separators only — no second bar colour. */

.v17-bottom-bar{
  border-top:1px solid rgba(255,255,255,.08)!important;
}
body.v17-sidebar-drawer .sidebar{
  border-right:1px solid rgba(255,255,255,.06)!important;
}
body.v17-drawing-stage > .v17-drawing-right-portal{
  border-left:1px solid rgba(255,255,255,.06)!important;
}

/* V17.7.4.14 — Assembly 3D uses the actual viewer host rectangle.
   Do not force the runtime iframe to 100vw/100vh. */
body.v17-immersive .model-runtime-frame.visible{
  position:fixed!important;
  inset:auto!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}

/* V17.7.4.76 — V74 Reference Header CSS moved unchanged to /assets/v17-header-v74.css. */


/* V17.7.4.16 — Assembly 3D runtime belongs inside #viewer.
   It is no longer a fixed viewport layer. */
body.v17-immersive .model-runtime-frame,body.v17-immersive .model-runtime-frame.visible,.model-runtime-frame,.model-runtime-frame.visible{
  position:absolute!important;
  inset:0!important;
  left:0!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  display:block!important;
  z-index:2!important;
}
.model-runtime-frame:not(.visible){
  visibility:hidden!important;
  pointer-events:none!important;
}
.model-runtime-frame.visible{
  visibility:visible!important;
  pointer-events:auto!important;
}
#panel-3d #viewer{
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
}
#panel-3d #viewerLoading{
  z-index:4!important;
}

/* V17.7.4.23 — remove the extra strip above the bottom bar in immersive 3D.
   Exact geometry: 45px top bar | 3D viewport | 45px bottom bar. */
body.v17-immersive:not(.v17-drawing-stage) #panel-3d.panel.active{
  position:fixed!important;
  top:45px!important;
  right:0!important;
  bottom:45px!important;
  left:0!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  display:block!important;
}

body.v17-immersive:not(.v17-drawing-stage) #panel-3d > .viewer-layout,body.v17-immersive:not(.v17-drawing-stage) #panel-3d .viewer-card,body.v17-immersive:not(.v17-drawing-stage) #panel-3d .viewer-host,body.v17-immersive:not(.v17-drawing-stage) #panel-3d #viewer{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  overflow:hidden!important;
}

body.v17-immersive:not(.v17-drawing-stage) #panel-3d .model-runtime-frame.visible{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
}

/* The blue Tools button floats over the viewer; it reserves no layout space. */
body.v17-immersive:not(.v17-drawing-stage) .v17-tools-fab{
  position:fixed!important;
  right:14px!important;
  bottom:59px!important; /* 45px bottom bar + 14px */
  background:#0877ef!important;
  z-index:3300!important;
}


/* V17.7.4.26 — match right drawer opener exactly to left drawer opener. */
body.v17-right-drawer-page .v17-right-handle,body.v17-drawing-stage .v17-right-handle{
  display:grid!important;
  place-items:center!important;
  width:27px!important;
  min-width:27px!important;
  max-width:27px!important;
  height:54px!important;
  min-height:54px!important;
  max-height:54px!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-right:0!important;
  border-radius:8px 0 0 8px!important;
  background:#0B1723!important;
  color:#dce8f1!important;
  font-size:24px!important;
  line-height:1!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}


/* V17.7.4.27 — unify assembly 3D page colours and keep the model visible. */
body.v17-immersive:not(.v17-drawing-stage) #panel-3d.panel.active,body.v17-immersive:not(.v17-drawing-stage) #panel-3d > .viewer-layout,body.v17-immersive:not(.v17-drawing-stage) #panel-3d .viewer-card,body.v17-immersive:not(.v17-drawing-stage) #panel-3d .viewer-host,body.v17-immersive:not(.v17-drawing-stage) #panel-3d #viewer,body.v17-immersive:not(.v17-drawing-stage) .model-runtime-frame,body.v17-immersive:not(.v17-drawing-stage) .model-runtime-frame.visible{
  background:#0B1723!important;
}

body.v17-right-drawer-page:not(.v17-drawing-stage) .side-panels,body.v17-right-drawer-page:not(.v17-drawing-stage) .side-panels .side-card,body.v17-immersive:not(.v17-drawing-stage) .side-panels,body.v17-immersive:not(.v17-drawing-stage) .side-panels .side-card{
  background:#0B1723!important;
}


/* V17.7.4.63 — Structune Hub dark-only mode. */
.v17-theme-switch,.v17-entry-theme{display:none!important}


/* V17.7.4.68 — STRUCTUNE UNIFIED DRAWER OPENER
   One global visual specification for every Navigation Drawer and Context Drawer opener.
   Pages control only visibility/open state; they must not redefine opener geometry or colour. */
:root{
  --structune-drawer-opener-width:27px;
  --structune-drawer-opener-height:54px;
  --structune-drawer-opener-bg:#0B1723;
  --structune-drawer-opener-border:rgba(255,255,255,.13);
  --structune-drawer-opener-radius:8px;
  --structune-drawer-opener-color:#dce8f1;
  --structune-drawer-opener-font-size:24px;
  --structune-drawer-opener-z:3001;
}
html body button.v17-edge-handle.v17-left-handle,html body button.v17-edge-handle.v17-right-handle{
  position:fixed!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  box-sizing:border-box!important;
  width:var(--structune-drawer-opener-width)!important;
  min-width:var(--structune-drawer-opener-width)!important;
  max-width:var(--structune-drawer-opener-width)!important;
  height:var(--structune-drawer-opener-height)!important;
  min-height:var(--structune-drawer-opener-height)!important;
  max-height:var(--structune-drawer-opener-height)!important;
  margin:0!important;
  padding:0!important;
  border:1px solid var(--structune-drawer-opener-border)!important;
  background:var(--structune-drawer-opener-bg)!important;
  color:var(--structune-drawer-opener-color)!important;
  font-family:Inter,"Segoe UI",Arial,sans-serif!important;
  font-size:var(--structune-drawer-opener-font-size)!important;
  font-weight:400!important;
  line-height:1!important;
  text-align:center!important;
  align-items:center!important;
  justify-items:center!important;
  justify-content:center!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  opacity:1!important;
  cursor:pointer!important;
  z-index:var(--structune-drawer-opener-z)!important;
  transition:left .18s ease,right .18s ease,background-color .15s ease,border-color .15s ease!important;
}
html body button.v17-edge-handle.v17-left-handle{
  left:0!important;
  right:auto!important;
  border-left:0!important;
  border-radius:0 var(--structune-drawer-opener-radius) var(--structune-drawer-opener-radius) 0!important;
}
html body.v17-left-open button.v17-edge-handle.v17-left-handle{
  left:calc(360px - var(--structune-drawer-opener-width))!important;
}
html body button.v17-edge-handle.v17-right-handle{
  right:0!important;
  left:auto!important;
  border-right:0!important;
  border-radius:var(--structune-drawer-opener-radius) 0 0 var(--structune-drawer-opener-radius)!important;
}
html body.v17-right-open button.v17-edge-handle.v17-right-handle{
  right:360px!important;
}
html body.v17-sidebar-drawer button.v17-edge-handle.v17-left-handle,html body.v17-immersive.v17-sidebar-drawer button.v17-edge-handle.v17-left-handle{
  display:grid!important;
}
html body.v17-right-drawer-page button.v17-edge-handle.v17-right-handle,html body.v17-drawing-stage button.v17-edge-handle.v17-right-handle,html body.v17-ar-active button.v17-edge-handle.v17-right-handle{
  display:grid!important;
}
html body button.v17-edge-handle.v17-left-handle:hover,html body button.v17-edge-handle.v17-right-handle:hover,html body button.v17-edge-handle.v17-left-handle:focus-visible,html body button.v17-edge-handle.v17-right-handle:focus-visible{
  background:#102535!important;
  border-color:rgba(255,255,255,.22)!important;
  outline:none!important;
}
/* Never expose shell openers on the physically isolated project entrance state. */
html body:not(.v17-sidebar-drawer) button.v17-edge-handle.v17-left-handle{display:none!important;}


/* V17.7.4.70 — Dashboard reserved zone has no Context Drawer and therefore no right opener.
   This rule intentionally comes after the global Unified Drawer Opener component. */
html body.v17-dashboard-constrained button.v17-edge-handle.v17-right-handle{
  display:none!important;
}
html body.v17-dashboard-constrained,html body.v17-dashboard-constrained .shell,html body.v17-dashboard-constrained .content,html body.v17-dashboard-constrained #view-dashboard{
  background:#0B1723!important;
}

/* V17.7.4.322 — Navigation drawer edge flash fix.
   Keep the approved divider hidden during the transform, then reveal it only
   after the 180 ms open animation completes. Also retire the legacy sidebar
   pseudo-layer so it cannot participate in compositing. */
body.v17-sidebar-drawer .sidebar::before,
body.v17-sidebar-drawer.v17-immersive .sidebar::before{
  content:none!important;
  display:none!important;
}
body.v17-sidebar-drawer .sidebar,
body.v17-sidebar-drawer.v17-immersive .sidebar,
body.v17-drawing-stage .sidebar{
  border-right:1px solid transparent!important;
}
body.v17-sidebar-drawer:not(.v17-left-open) .sidebar,
body.v17-sidebar-drawer.v17-immersive:not(.v17-left-open) .sidebar,
body.v17-drawing-stage:not(.v17-left-open) .sidebar{
  border-right-color:transparent!important;
  transition:transform .18s ease!important,border-right-color 0s linear 0s!important;
}
body.v17-sidebar-drawer.v17-left-open .sidebar,
body.v17-sidebar-drawer.v17-immersive.v17-left-open .sidebar,
body.v17-drawing-stage.v17-left-open .sidebar{
  border-right-color:rgba(255,255,255,.06)!important;
  transition:transform .18s ease!important,border-right-color 0s linear .18s!important;
}
/* V17.7.4.326 — A04B Navigation opener visual simplification.
   Preserve the 27x54 click target and A04T geometry; render only the chevron glyph. */
html body button.v17-edge-handle.v17-left-handle{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
html body button.v17-edge-handle.v17-left-handle:hover,
html body button.v17-edge-handle.v17-left-handle:focus-visible{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:none!important;
  color:#FFFFFF!important;
}

/* V17.7.4.327 — wider left navigation chevron glyph.
   Keep the invisible 27x54 click target and A04T/A04B geometry; only widen the visible chevron. */
html body button.v17-edge-handle.v17-left-handle .v17-opener-chevron{
  display:block!important;
  width:16px!important;
  height:28px!important;
  overflow:visible!important;
  pointer-events:none!important;
}
