/* LuxBox 3D · independent engineering viewport · Obsidian / Silver */
#luxbox3d-stage{
  display:block;flex:1;width:100%;height:100%;min-width:0;min-height:0;
  touch-action:none;cursor:grab;background:#11161c;
}
#luxbox3d-stage:active{cursor:grabbing}
#luxbox3d-stage[hidden]{display:none!important}
.studio-viewport{
  isolation:isolate;
  background:radial-gradient(ellipse at 50% 36%,rgba(174,183,194,.105),transparent 46%),linear-gradient(180deg,#171d24 0%,#11161c 68%,#0d1116 100%);
  border-inline:1px solid rgba(174,183,194,.09);
}
.v3d-workspace{background:#11161c}
#luxbox3d-status{
  position:absolute;left:16px;bottom:91px;z-index:5;max-width:calc(100% - 32px);
  padding:7px 10px;border:1px solid rgba(174,183,194,.15);border-radius:6px;
  background:rgba(10,14,19,.78);color:#AEB7C2;
  font:500 9px/1.4 "Roboto Mono",monospace;letter-spacing:.055em;
  pointer-events:none;backdrop-filter:blur(12px);
}
.luxbox3d-ui{position:absolute;inset:0;z-index:4;pointer-events:none}
.luxbox3d-ui[hidden]{display:none!important}
.luxbox3d-top-hud{
  position:absolute;top:14px;left:14px;right:14px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
}
.luxbox3d-model-label,.luxbox3d-camera-tools,.luxbox3d-bottom-hud{
  border:1px solid rgba(174,183,194,.16);border-radius:9px;
  background:rgba(14,19,25,.82);backdrop-filter:blur(14px);
  box-shadow:0 8px 28px rgba(0,0,0,.16);
}
.luxbox3d-model-label{
  display:flex;flex-direction:column;gap:4px;min-width:0;padding:10px 13px;
}
.luxbox3d-model-label>span,.luxbox3d-layer-tools>span{
  color:#8995a2;font:600 8px/1.3 "Roboto Mono",monospace;letter-spacing:.14em;
}
.luxbox3d-model-label>strong{color:#E8EDF2;font-size:13px;font-weight:650;letter-spacing:-.02em}
.luxbox3d-model-label>small{color:#8F9AA6;font-size:9px}
.luxbox3d-camera-tools{display:flex;gap:3px;padding:4px;pointer-events:auto}
.luxbox3d-camera-tools button{
  min-width:43px;min-height:31px;padding:6px 8px;border:1px solid transparent;border-radius:6px;
  background:transparent;color:#8995a2;font:600 8px/1 "Roboto Mono",monospace;letter-spacing:.06em;
}
.luxbox3d-camera-tools button:hover{color:#E8EDF2;background:rgba(255,255,255,.05)}
.luxbox3d-camera-tools button.active{
  border-color:rgba(174,183,194,.27);background:linear-gradient(180deg,#39424d,#29313b);
  color:#F1F3F5;box-shadow:inset 0 1px rgba(255,255,255,.07);
}
.luxbox3d-bottom-hud{
  position:absolute;left:14px;right:14px;bottom:12px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:9px 11px;pointer-events:auto;
}
.luxbox3d-layer-tools,.luxbox3d-model-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.luxbox3d-layer-tools>span{margin-right:3px}
.luxbox3d-layer-tools button,.luxbox3d-model-actions button{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:30px;padding:6px 9px;border:1px solid rgba(174,183,194,.13);
  border-radius:6px;background:rgba(255,255,255,.025);color:#A5AFBA;
  font:600 8px/1 "Roboto Mono",monospace;letter-spacing:.025em;white-space:nowrap;
}
.luxbox3d-layer-tools button.active{
  border-color:rgba(174,183,194,.25);background:rgba(174,183,194,.09);color:#E2E7EC;
}
.layer-dot{width:6px;height:6px;border-radius:50%;background:#697581;box-shadow:0 0 0 2px rgba(174,183,194,.08)}
.layer-hardware{background:#C1CBD5}
.layer-equipment{background:#536575}
.luxbox3d-model-actions button{color:#929EAA}
.luxbox3d-model-actions button:hover,.luxbox3d-model-actions button.active{
  border-color:rgba(174,183,194,.3);background:rgba(174,183,194,.1);color:#E8EDF2;
}
.luxbox3d-model-actions button:disabled{opacity:.38;cursor:not-allowed}
.luxbox3d-model-actions #luxbox3d-reset{border-color:rgba(174,183,194,.24);color:#D5DCE3}
.luxbox3d-ui button:focus-visible{
  outline:2px solid #AEB7C2;outline-offset:2px;
}
@media(max-width:1100px){
  .luxbox3d-bottom-hud{align-items:flex-start;flex-direction:column;gap:8px}
  #luxbox3d-status{bottom:155px}
}
@media(max-width:700px){
  .v3d-bar{align-items:flex-start;gap:7px;padding-left:10px;padding-right:9px}
  .v3d-bar-actions{gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:72%}
  .luxbox3d-top-hud{top:9px;left:9px;right:9px;gap:7px}
  .luxbox3d-model-label{padding:8px 9px;max-width:47%}
  .luxbox3d-model-label>strong{font-size:11px}
  .luxbox3d-model-label>small{font-size:8px}
  .luxbox3d-camera-tools{gap:1px;padding:3px}
  .luxbox3d-camera-tools button{min-width:34px;min-height:29px;padding:5px;font-size:7px}
  .luxbox3d-bottom-hud{left:8px;right:8px;bottom:8px;padding:8px;gap:7px}
  .luxbox3d-layer-tools{gap:4px}
  .luxbox3d-layer-tools>span{width:100%;font-size:7px}
  .luxbox3d-layer-tools button,.luxbox3d-model-actions button{min-height:29px;padding:6px 7px;font-size:7px}
  .luxbox3d-model-actions{width:100%;justify-content:space-between}
  #luxbox3d-status{left:9px;bottom:190px;font-size:8px}
}
@media(max-width:390px){
  .v3d-brand>span{font-size:8px}
  .v3d-brand .v3d-live{font-size:8px}
  .luxbox3d-model-label{max-width:42%}
  .luxbox3d-camera-tools button{min-width:30px;font-size:6px}
  .luxbox3d-layer-tools button{gap:4px;padding-inline:5px}
}
@media(max-height:560px) and (min-width:701px){
  .luxbox3d-model-label{padding:7px 10px}
  .luxbox3d-bottom-hud{padding:6px 8px}
  #luxbox3d-status{bottom:70px}
}


/* Additional rear camera preset */
.luxbox3d-camera-tools button[data-lx-view="rear"]{min-width:43px}
@media(max-width:700px){
  .luxbox3d-camera-tools button[data-lx-view="rear"]{min-width:31px}
}

#luxbox3d-explode.active{
  border-color:rgba(174,183,194,.34);
  background:linear-gradient(180deg,rgba(174,183,194,.17),rgba(174,183,194,.07));
  color:#F0F3F6;
}

.luxbox3d-motion-tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.luxbox3d-motion-tools>span{color:#8995a2;font:600 8px/1.3 "Roboto Mono",monospace;letter-spacing:.12em;margin-right:2px}
.luxbox3d-motion-tools button{
  min-height:30px;padding:6px 8px;border:1px solid rgba(174,183,194,.13);
  border-radius:6px;background:rgba(255,255,255,.025);color:#A5AFBA;
  font:600 8px/1 "Roboto Mono",monospace;letter-spacing:.025em
}
.luxbox3d-motion-tools button.active{
  border-color:rgba(174,183,194,.3);background:rgba(174,183,194,.11);color:#EDF1F5
}
@media(max-width:700px){
  .luxbox3d-motion-tools{gap:4px}
  .luxbox3d-motion-tools>span{width:100%;font-size:7px}
  .luxbox3d-motion-tools button{min-height:28px;padding:6px 7px;font-size:7px}
}

@media(max-height:560px) and (max-width:700px){
  #luxbox3d-status{display:none}
  .luxbox3d-top-hud{top:6px}
  .luxbox3d-bottom-hud{bottom:6px}
}

#luxbox3d-water-status{color:#91b6c7;font:600 8px/1.35 "Roboto Mono",monospace;letter-spacing:.08em}
@media(max-width:700px){#luxbox3d-water-status{font-size:7px}}


/* Mobile-first LuxBox HUD: controls occupy separate scrollable lanes */
@media(max-width:700px){
  #luxbox3d-status{display:none!important}
  .luxbox3d-top-hud{top:8px;left:8px;right:8px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px}
  .luxbox3d-model-label{max-width:none;width:100%;padding:7px 8px;gap:3px}
  .luxbox3d-model-label>span{font-size:7px}
  .luxbox3d-model-label>strong{font-size:10px}
  .luxbox3d-model-label>small{font-size:7px;line-height:1.25}
  .luxbox3d-camera-tools{max-width:calc(100vw - 150px);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px;padding:3px}
  .luxbox3d-camera-tools button{min-width:29px;min-height:30px;padding:5px 4px;font-size:7px}
  .luxbox3d-bottom-hud{
    left:8px;right:8px;bottom:8px;max-height:37dvh;overflow-y:auto;
    display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:7px;padding:8px;background:rgba(12,17,23,.96);backdrop-filter:blur(18px)
  }
  .luxbox3d-layer-tools,.luxbox3d-motion-tools,.luxbox3d-model-actions{
    width:100%;display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;
    gap:5px;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:none
  }
  .luxbox3d-layer-tools::-webkit-scrollbar,.luxbox3d-motion-tools::-webkit-scrollbar,.luxbox3d-model-actions::-webkit-scrollbar{display:none}
  .luxbox3d-layer-tools>span,.luxbox3d-motion-tools>span{width:auto;flex:0 0 auto;margin:0 3px 0 0;font-size:7px}
  .luxbox3d-layer-tools button,.luxbox3d-motion-tools button,.luxbox3d-model-actions button{
    flex:0 0 auto;min-height:32px;padding:7px 8px;font-size:7px;white-space:nowrap
  }
}
@media(max-width:380px){
  .luxbox3d-top-hud{grid-template-columns:minmax(0,1fr) auto;gap:4px}
  .luxbox3d-camera-tools{max-width:calc(100vw - 142px)}
  .luxbox3d-camera-tools button{min-width:26px;padding-inline:3px;font-size:6px}
  .luxbox3d-bottom-hud{max-height:39dvh}
}

/* ============================================================
   v4.78 · Компактный HUD (правка по ревью: кнопки меньше,
   группы разделены, верх/низ меньше перекрывают модель).
   ============================================================ */
.luxbox3d-model-label{gap:2px;padding:7px 11px}
.luxbox3d-model-label>strong{font-size:12px}
.luxbox3d-camera-tools{gap:2px;padding:3px}
.luxbox3d-camera-tools button{min-width:38px;min-height:26px;padding:4px 7px;font-size:7px}
.luxbox3d-bottom-hud{padding:7px 9px}
@media(min-width:1101px){
  .luxbox3d-bottom-hud{gap:0}
  .luxbox3d-layer-tools,.luxbox3d-motion-tools{padding-right:12px;margin-right:12px;border-right:1px solid rgba(174,183,194,.12)}
}
@media(max-width:1100px){
  .luxbox3d-bottom-hud{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 0}
  .luxbox3d-layer-tools,.luxbox3d-motion-tools{padding-right:10px;margin-right:10px;border-right:1px solid rgba(174,183,194,.12)}
}
.luxbox3d-layer-tools>span,.luxbox3d-motion-tools>span{margin-right:2px;font-size:7px}
.luxbox3d-layer-tools button,.luxbox3d-motion-tools button,.luxbox3d-model-actions button{
  min-height:26px;padding:5px 8px;font-size:8px;gap:5px
}
.luxbox3d-model-actions{gap:5px}
@media(max-width:700px){
  .luxbox3d-bottom-hud{max-height:24dvh;padding:6px 7px;gap:6px 0}
  .luxbox3d-layer-tools,.luxbox3d-motion-tools{padding-right:8px;margin-right:8px}
  .luxbox3d-layer-tools>span,.luxbox3d-motion-tools>span{width:auto;margin:0 2px 0 0;font-size:7px}
  .luxbox3d-layer-tools button,.luxbox3d-motion-tools button,.luxbox3d-model-actions button{
    min-height:28px;padding:5px 7px;font-size:7px
  }
  .luxbox3d-model-label{padding:6px 8px;gap:1px}
  .luxbox3d-model-label>span{display:none}
  .luxbox3d-model-label>strong{font-size:10px}
  .luxbox3d-model-label>small{font-size:7px}
  .luxbox3d-camera-tools button{min-width:28px;min-height:26px;padding:4px;font-size:6px}
}

/* v4.78.1 · Мобильный верх в одну строку + тонкая карточка модели */
@media(max-width:700px){
  .v3d-bar{flex-wrap:nowrap;align-items:center;gap:6px;padding:6px 8px}
  .v3d-brand{flex:1 1 auto;min-width:0}
  .v3d-brand>span{display:none}
  .v3d-brand .v3d-live{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .v3d-bar-actions{width:auto;flex:0 0 auto;max-width:none;gap:4px;overflow:visible}
  .v3d-panel-toggle{flex:0 0 auto;min-height:28px;padding:5px 7px;font-size:9px}
  .v3d-close{min-width:28px;min-height:28px}
  .luxbox3d-top-hud{top:44px}
  .luxbox3d-model-label{
    flex-direction:row;align-items:baseline;gap:6px;flex-wrap:nowrap;
    padding:5px 8px;max-width:none
  }
  .luxbox3d-model-label>small#luxbox3d-detail-summary{display:none}
  .luxbox3d-model-label>strong{font-size:9px;white-space:nowrap}
  .luxbox3d-model-label>small{font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .luxbox3d-camera-tools button{min-height:24px;min-width:27px;padding:3px 4px}
  .luxbox3d-bottom-hud button{min-height:26px}
}

/* ============================================================
   v4.81 · Визуальный гейт загрузки: HUD приглушён и не
   кликается, пока движок собирает сцену (is-booting снимается
   в luxbox3d-core после boot; research «CADViewer: блокировка
   взаимодействий до готовности»).
   ============================================================ */
.luxbox3d-ui.is-booting .luxbox3d-model-label,
.luxbox3d-ui.is-booting .luxbox3d-camera-tools,
.luxbox3d-ui.is-booting .luxbox3d-bottom-hud{
  opacity:.42;
  filter:saturate(.55);
  pointer-events:none;
}
.luxbox3d-ui.is-booting #luxbox3d-status{opacity:.6}
