.hw-assembly-launch{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem;background:linear-gradient(120deg,#063b42,#152a42);border:1px solid #1e8e93;border-radius:14px;margin-bottom:1rem;box-shadow:0 12px 28px rgba(4,15,28,.35)}.hw-assembly-launch strong{color:#77f5d7;font-size:1.05rem}.hw-assembly-launch p{font-size:.9rem;margin:.35rem 0 0;max-width:48rem}.hw-assembly-launch button{min-height:48px;flex-shrink:0}
.asm-bench{color:#e4eef7;background:#0a1422;border:1px solid #33495f;border-radius:16px;overflow:hidden;box-shadow:0 18px 42px rgba(3,9,18,.48)}.asm-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;background:linear-gradient(115deg,#12343e,#17223c)}.asm-heading h3{font-size:1.5rem;margin:.15rem 0}.asm-badge{font-size:.8rem;color:#6ef1d2;border:1px solid #297b7f;border-radius:30px;padding:.45rem .8rem;background:rgba(14,116,144,.18)}.asm-bench button,.asm-bench select{font:inherit;color:#ecf5ff;background:#203248;border:1px solid #496279;border-radius:7px;padding:.65rem .8rem;min-height:44px;cursor:pointer;max-width:100%;white-space:normal;transition:background-color .15s ease,border-color .15s ease}.asm-bench button:hover{background:#2c465c;border-color:#41d8bb}.asm-bench button:focus-visible,.asm-bench select:focus-visible{outline:3px solid #6ef1d2;outline-offset:3px}.asm-bench button[aria-pressed=true]{background:#006b68;border-color:#61e4ca}.asm-power{display:flex;gap:.45rem;flex-wrap:wrap;padding:.8rem 1rem;align-items:center;border-bottom:1px solid #33495f}.asm-power strong{font-size:.85rem;color:#8fe8dc;margin-left:auto}.asm-next{margin:0;padding:.85rem 1.2rem;background:#102e36;border-bottom:1px solid #27545e;font-size:.93rem}.asm-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);min-width:0}.asm-visual{min-width:0;padding:.75rem}.asm-scene{height:clamp(330px,38vw,520px);position:relative;background:radial-gradient(ellipse at 45% 35%,#183748,#091322);border:1px solid #2e4b60;border-radius:12px;overflow:hidden;isolation:isolate;box-shadow:inset 0 0 36px rgba(0,0,0,.45)}.asm-scene canvas{width:100%;height:100%;display:block;touch-action:pan-y}.asm-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.75rem;padding:1.5rem;text-align:center;color:#a5bed3;pointer-events:none}.asm-loading[hidden]{display:none}.asm-loading strong{font-size:1.15rem;color:#77f5d7}.asm-camera{display:flex;gap:.35rem;flex-wrap:wrap;padding:.65rem 0}.asm-camera button{font-size:.8rem;padding:.5rem .65rem}.asm-camera button:first-child{background:#006b68}.asm-view-status,.asm-tip{font-size:.8rem;color:#a8bfd3;line-height:1.5;margin:.35rem 0}.asm-controls{padding:1rem;background:#101e30;border-left:1px solid #33495f;min-width:0}.asm-controls label{display:flex;gap:.4rem;flex-direction:column;font-size:.85rem}.asm-controls select{width:100%}.asm-part-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0}.asm-part-tabs button{font-size:.75rem;padding:.5rem;flex:1 1 95px}.asm-controls h4{margin:1rem 0 .4rem;font-size:1.1rem;color:#77f5d7}.asm-controls [data-asm-part-state]{font-size:.9rem;line-height:1.6;min-height:3em}.asm-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.asm-actions button{font-size:.85rem;text-align:left}.asm-feedback{font-size:.9rem;line-height:1.5;background:#073e42;border:1px solid #157975;border-radius:8px;padding:.8rem;overflow-wrap:anywhere}.asm-help{padding:.8rem 1.2rem;border-top:1px solid #33495f;font-size:.9rem;line-height:1.7}.asm-help summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:bold;color:#8febd8}.asm-help ol{padding-left:1.3rem}.asm-delivery{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:1rem;background:#102a35;border-top:1px solid #33495f}.asm-delivery strong{flex-basis:100%;font-size:.9rem}.asm-delivery button{font-size:.85rem}
.asm-actions .asm-action-ready{border-color:#36bda4;background:#12433f}.asm-actions .asm-action-wait{color:#b0c1d2;background:#1a2b3e}

/* 3D Virtual Learning Lab Room Hub & Pathway Stations */
.asm-cable-state{flex-basis:100%;margin:.6rem 0 0;font-size:.88rem;line-height:1.5;color:#bce8df;overflow-wrap:anywhere}
.asm-tool-controls[data-cable-mode=true]{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) repeat(2,minmax(0,1fr));align-items:end}.asm-tool-controls[data-cable-mode=true]>label{min-width:0}.asm-tool-controls[data-cable-mode=true]>p{grid-column:1/-1}.asm-tool-controls[data-cable-mode=true]>button{min-width:0}@media(max-width:1000px){.asm-bench .asm-tool-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.asm-tool-controls[data-cable-mode=true]{grid-template-columns:repeat(2,minmax(0,1fr))}}
.vlab-hub{margin:1.5rem auto;padding:1.35rem;background:linear-gradient(145deg,#091526,#0f2138);border:1px solid #2b4868;border-radius:18px;color:#e6f0fa;box-shadow:0 20px 48px rgba(4,12,24,.42)}
.vlab-hub-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.vlab-hub-header h2{font-size:clamp(1.35rem,2.4vw,1.85rem);margin:.2rem 0;color:#f8fafc}
.vlab-hub-sub{margin:.25rem 0 0;color:#a5bed4;font-size:.95rem;max-width:46rem}
.vlab-cam-bar,.vlab-station-controls{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.vlab-hub button,.vlab-station-card button{font:inherit;font-size:.82rem;color:#ecf5ff;background:#1c314a;border:1px solid #416080;border-radius:8px;padding:.5rem .75rem;min-height:40px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.vlab-hub button:hover,.vlab-station-card button:hover{background:#274463;border-color:#5eead4}
.vlab-hub button:focus-visible,.vlab-station-card button:focus-visible{outline:3px solid #5eead4;outline-offset:2px}
.vlab-station-switcher{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin-bottom:1rem}
.vlab-station-pill{display:flex;align-items:center;gap:.55rem;text-align:left;font-weight:600}
.vlab-station-pill[aria-pressed=true]{background:linear-gradient(120deg,#0d5c59,#163e63);border-color:#5eead4;color:#fff}
.vlab-pill-num{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border-radius:6px;background:rgba(94,234,212,.16);color:#5eead4;font-size:.76rem;flex-shrink:0}
.vlab-hub-body{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(260px,1fr);gap:1rem;align-items:stretch}
.vlab-stage,.vlab-station-stage{position:relative;height:clamp(290px,34vw,430px);background:radial-gradient(ellipse at 50% 35%,#16324f,#07111f);border:1px solid #2e4b68;border-radius:14px;overflow:hidden;isolation:isolate}
.vlab-station-stage{height:clamp(230px,26vw,320px)}
.vlab-canvas{width:100%;height:100%;display:block;touch-action:pan-y;cursor:grab}
.vlab-canvas:active{cursor:grabbing}
.vlab-inspector{display:flex;flex-direction:column;gap:.65rem;padding:1.1rem;background:#0d1b2e;border:1px solid #29435c;border-radius:14px}
.vlab-inspector h3{margin:0;font-size:1.2rem;color:#77f5d7}
.vlab-inspector p{margin:0;font-size:.9rem;line-height:1.55;color:#b8cde0}
.vlab-ticket-list{display:flex;flex-direction:column;gap:.45rem;margin-top:auto}
.vlab-ticket-pill{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.55rem .75rem;background:#132740;border:1px solid #31506e;border-radius:8px;color:#e6f2ff;text-decoration:none;font-size:.84rem;transition:border-color .15s ease,background-color .15s ease}
.vlab-ticket-pill:hover{background:#1b3656;border-color:#5eead4}
.vlab-ticket-pill strong{color:#5eead4;font-size:.78rem;flex-shrink:0}
.vlab-ticket-pill span:nth-child(2){margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vlab-pathway-btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem .85rem;margin-top:.25rem;background:#0e5856;border:1px solid #38d9c0;border-radius:8px;color:#fff;text-decoration:none;font-weight:600;font-size:.86rem}
.vlab-pathway-btn:hover{background:#136f6c}

.vlab-station-card{margin:0 0 1.15rem;padding:1rem 1.15rem;background:linear-gradient(145deg,#091525,#102238);border:1px solid #2d4c6b;border-radius:14px;color:#e5effa;box-shadow:0 12px 30px rgba(4,10,20,.34)}
.vlab-station-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:.75rem}
.vlab-station-head h3{margin:.15rem 0 0;font-size:1.2rem;color:#f8fafc}
.vlab-station-caption{margin:.55rem 0 0;font-size:.82rem;color:#a5bed4}
.vlab-fallback{display:flex;align-items:center;justify-content:center;height:100%;padding:1.2rem;text-align:center;color:#9fb6cc;font-size:.9rem}

@media(max-width:1000px){.asm-layout,.vlab-hub-body{grid-template-columns:minmax(0,1fr)}.asm-controls{border-left:0;border-top:1px solid #33495f}.asm-part-tabs{display:none}.asm-scene{height:380px}.asm-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.asm-controls [data-asm-part-state]{min-height:0}.asm-power strong{flex-basis:100%;margin-left:0}.vlab-station-switcher{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.hw-assembly-launch{align-items:stretch;flex-direction:column}.asm-badge{display:none}.asm-heading{padding:.8rem}.asm-scene{height:300px}.asm-visual{padding:.5rem}.asm-camera button{flex:1 1 75px}.asm-power{padding:.7rem}.asm-power button{flex:1 1 43%;font-size:.85rem}.asm-controls{padding:.75rem}.asm-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.asm-heading h3{font-size:1.2rem}.asm-next{padding:.7rem}.asm-delivery button{flex:1 1 100%}.vlab-station-switcher{grid-template-columns:repeat(2,minmax(0,1fr))}.vlab-stage{height:260px}}
.asm-toolbox{padding:.85rem 1rem;background:#0d2330;border-bottom:1px solid #2b5964}.asm-tool-buttons{display:flex;flex-wrap:wrap;gap:.45rem}.asm-tool-buttons button{flex:1 1 110px;min-height:48px}.asm-toolbox [data-asm-tool-help]{font-size:.88rem;line-height:1.55;margin:.65rem 0 0;color:#bfd6e4}.asm-tool-controls{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}.asm-tool-controls:empty{display:none}.asm-tool-controls label{display:flex;flex-direction:column;gap:.35rem;flex:1 1 200px;font-size:.85rem;margin-top:.65rem}.asm-tool-controls select{width:100%}.asm-tool-controls>span{flex-basis:100%;font-size:.85rem;margin-top:.6rem}.asm-tool-controls button{min-height:48px;margin-top:.5rem}.asm-tool-buttons button[aria-pressed="true"]{background:#007871;border-color:#80f0d5;box-shadow:inset 0 -3px #80f0d5}@media(max-width:600px){.asm-toolbox{padding:.75rem}.asm-tool-buttons button{flex:1 1 29%;font-size:.8rem;padding:.6rem .35rem}.asm-tool-controls button{flex:1 1 130px}}

/* Repair view: equipment first; deeper controls remain native, stable drawers. */
.asm-repair{--asm-edge:#30495f;--asm-accent:#6ee7cf;--asm-panel:#0d1d2c;border-radius:12px;box-shadow:none}
.asm-repair [hidden]{display:none!important}
.asm-repair .asm-power{gap:.35rem;padding:.45rem .6rem;background:#101f2d;border-color:var(--asm-edge)}
.asm-repair .asm-machine-status{display:flex;flex-direction:column;gap:.15rem;flex:1 1 190px;min-width:0}
.asm-repair .asm-power strong{margin:0;font-size:.81rem;color:var(--asm-accent)}
.asm-repair [data-asm-next]{font-size:.75rem;color:#b7cbda;line-height:1.35}
.asm-repair .asm-power button{font-size:.78rem;padding:.45rem .65rem;min-height:44px;flex:0 1 auto}
.asm-repair [data-assembly-action=boot]{background:#00736a;border-color:#6ee7cf;font-weight:700}
.asm-repair [data-assembly-action=open-document]{border-color:#73a9c6}
.asm-repair .asm-toolbox{padding:.4rem .55rem;background:#0b1927;border-color:var(--asm-edge)}
.asm-repair .asm-tool-buttons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.3rem}
.asm-repair .asm-tool-buttons button{min-height:48px;min-width:0;font-size:.8rem;padding:.4rem .35rem;flex:none}
.asm-repair .asm-layout{display:block;min-width:0}
.asm-repair .asm-visual{padding:.45rem}
.asm-repair .asm-quick-view{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;padding:0 .45rem .45rem;background:#0a1422}
.asm-repair .asm-quick-view button{min-height:48px;min-width:0;padding:.45rem .3rem;font-size:.82rem;font-weight:600;touch-action:manipulation}
.asm-repair .asm-quick-view button:disabled{opacity:.5;cursor:default}
.asm-repair .asm-scene{height:clamp(360px,58vh,660px);border-radius:8px;scroll-margin-top:5.25rem}
.larger-reading .asm-repair .asm-scene{scroll-margin-top:6rem}
.asm-repair .asm-feedback{margin:0;padding:.55rem .75rem;border:0;border-top:1px solid var(--asm-edge);border-bottom:1px solid var(--asm-edge);border-radius:0;background:#102b32;font-size:.83rem;line-height:1.45;min-height:2.45rem}
.asm-repair .asm-drawers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;background:#0c1927}
.asm-repair .asm-drawer,.asm-repair .asm-help{margin:0;padding:0;border:0;border-bottom:1px solid var(--asm-edge);min-width:0;background:var(--asm-panel)}
.asm-repair .asm-drawer[open],.asm-repair .asm-help[open]{grid-column:1/-1}
.asm-repair .asm-drawer summary,.asm-repair .asm-help summary{display:list-item;list-style-position:inside;min-height:44px;padding:.65rem .75rem;cursor:pointer;font-size:.83rem;font-weight:650;color:#d2e6ee;line-height:1.4}
.asm-repair summary:focus-visible{outline:3px solid var(--asm-accent);outline-offset:-3px}
.asm-repair .asm-drawer[open]>summary,.asm-repair .asm-help[open]>summary{color:var(--asm-accent);border-bottom:1px solid var(--asm-edge)}
.asm-repair .asm-tool-drawer{border-bottom:1px solid var(--asm-edge)}
.asm-repair .asm-tool-drawer>p{margin:.5rem .75rem;font-size:.82rem;color:#b9cddb;line-height:1.5}
.asm-repair .asm-tool-controls{padding:0 .75rem .65rem;gap:.45rem}
.asm-repair .asm-tool-controls>label{margin-top:.15rem;min-width:0;font-size:.8rem}
.asm-repair .asm-tool-controls>button{margin-top:.2rem;font-size:.8rem}
.asm-repair .asm-tool-controls[data-cable-mode=true]{grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) repeat(2,minmax(0,1fr))}
.asm-repair .asm-camera{padding:.65rem .75rem}
.asm-repair .asm-view-status{padding:0 .75rem .65rem;margin:0;font-size:.8rem}
.asm-repair .asm-controls{border:0;padding:.75rem;background:transparent}
.asm-repair .asm-part-tabs{display:none}
.asm-repair .asm-controls h4{margin:.65rem 0 .35rem;font-size:1rem}
.asm-repair .asm-controls [data-asm-part-state]{min-height:0;font-size:.84rem;line-height:1.5;margin:.4rem 0 .65rem}
.asm-repair .asm-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
.asm-repair .asm-help ol,.asm-repair .asm-help>p{margin:.6rem 1rem .8rem;font-size:.83rem;line-height:1.6}
.asm-repair .asm-help ol{padding-left:1.2rem}
.asm-repair .asm-delivery{display:block;padding:0}
.asm-repair .asm-delivery>strong{display:block;margin:.65rem .75rem;font-size:.83rem;line-height:1.5}
.asm-repair .asm-delivery>button{margin:0 0 .65rem .75rem;font-size:.8rem}
@media(max-width:780px){.asm-repair .asm-scene{height:clamp(330px,52vh,520px)}.asm-repair .asm-power strong{flex-basis:auto}.asm-repair .asm-tool-controls[data-cable-mode=true]{grid-template-columns:repeat(2,minmax(0,1fr))}.asm-repair .asm-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.asm-repair .asm-machine-status{flex:1 1 100%}.asm-repair .asm-power{padding:.45rem}.asm-repair .asm-power button{flex:1 1 80px}.asm-repair .asm-tool-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.asm-repair .asm-tool-buttons button{font-size:.76rem}.asm-repair .asm-scene{height:clamp(310px,48vh,440px);scroll-margin-top:6rem}.asm-repair .asm-drawers{grid-template-columns:minmax(0,1fr)}.asm-repair .asm-tool-controls[data-cable-mode=true]{grid-template-columns:minmax(0,1fr)}.asm-repair .asm-drawer summary,.asm-repair .asm-help summary{font-size:.82rem}}
