/* Detailed 3D workbench: labels stay readable while the geometry rotates. */
.lab .viewport{height:570px}
.lab-layout{grid-template-columns:minmax(0,1fr) 292px}
.lab-controls{max-height:570px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#426271 transparent}
.lab-controls .part-readout{display:block;border:0;border-left:2px solid var(--signal);padding:0 0 0 12px;margin:0 0 20px;min-height:0}
.part-eyebrow{display:block;font:11px var(--mono);color:var(--muted);letter-spacing:.06em;margin-bottom:8px}
.lab-controls .part-readout h3{font-size:17px;line-height:1.5;margin:0 0 3px}
.lab-controls .part-readout small{display:block;font-size:11px;color:var(--muted);margin-bottom:9px}
.lab-controls .part-readout p{font-size:13px;line-height:1.8;color:var(--ink)}
.model-annotations{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.model-annotations[hidden],.model-label[hidden]{display:none}
.model-annotations svg{position:absolute;width:100%;height:100%;overflow:visible}
.model-annotations path{fill:none;stroke:#b2cfdf70;stroke-width:1}
.model-annotations circle{fill:#9fc8d9;stroke:#122a3a;stroke-width:1.5}
.model-annotations path.selected{stroke:#56f5e6;stroke-width:1.5}
.model-annotations circle.selected{fill:#56f5e6;stroke:#133a40}
.model-label{position:absolute;pointer-events:auto;font-size:11px;line-height:1.4;min-height:30px;padding:6px 7px;border-radius:4px;border:1px solid #567082;background:#0b1c2bed;color:#dce9f2;box-shadow:0 3px 12px #0004;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.model-label:hover{border-color:#5be7df;color:#5be7df;background:#122d3d}
.model-label.active{color:#05232a;background:#7fe2d9;border-color:#acf9ef;font-weight:600}
.view-buttons{z-index:2;gap:5px;bottom:14px}
.view-buttons button{background:#102b3be8;border-color:#446273;font-size:11px;padding:6px 9px}
.view-buttons [data-view=expand]{border-color:#41b9b2;color:#8ae3dc}
.lab-help{font-size:11px}
.lab .parts{padding-top:9px}
.lab.is-expanded{position:fixed;inset:14px;z-index:100;margin:0;display:flex;flex-direction:column;border:1px solid #496575;box-shadow:0 0 0 30px #020b13e8,0 18px 70px #000b}
.lab.is-expanded .lab-head{flex:0 0 auto}
.lab.is-expanded .lab-layout{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) 310px}
.lab.is-expanded .viewport-wrap{min-height:0}
.lab.is-expanded .viewport{height:100%}
.lab.is-expanded .lab-controls{max-height:none;min-height:0;overflow:auto}
.lab.is-expanded .lab-help{flex:0 0 auto}
.lab.is-expanded .parts{display:none}
.lab.is-expanded .model-label{font-size:12px}
@media(max-width:1200px){.lab-layout{grid-template-columns:minmax(0,1fr) 245px}.lab-controls{padding:16px 13px}.lab .viewport{height:550px}.lab-controls{max-height:550px}}
@media(max-width:980px){.lab-layout{grid-template-columns:1fr}.lab-controls{max-height:none}.lab-controls .part-readout{grid-column:1/-1;padding:3px 0 3px 14px}.lab .viewport{height:500px}.lab.is-expanded .lab-layout{grid-template-columns:minmax(0,1fr) 250px}.lab.is-expanded .lab-controls{display:block}.lab.is-expanded .viewport{height:100%}}
@media(max-width:760px){.lab .viewport{height:440px}.model-label{font-size:10px;padding:6px 4px}.lab.is-expanded{inset:5px}.lab.is-expanded .lab-layout{display:flex;flex-direction:column;overflow:auto}.lab.is-expanded .viewport-wrap{flex:0 0 58vh}.lab.is-expanded .viewport{height:58vh}.lab.is-expanded .lab-controls{overflow:visible;flex:0 0 auto}.lab.is-expanded .lab-help{display:none}.lab.is-expanded .model-label{font-size:10px}}

.lab-controls .part-focus-hint{color:var(--signal);font-size:11px;margin:10px 0 0}.lab-controls .part-readout .part-focus-hint[hidden]{display:none}.viewport{scroll-margin-top:85px}

/* A reserved caption row keeps even small sensors unobscured at every angle. */
.part-focus-note{flex:0 0 auto;display:grid;grid-template-columns:minmax(130px,auto) 1fr;align-items:center;gap:6px 16px;margin:10px 14px;padding:11px 15px;border:1px solid #64dcc649;border-left:3px solid #64dcc6a6;border-radius:8px;background:linear-gradient(110deg,#1644389c,#15313f70);color:#ecfff9;pointer-events:none}
.part-focus-note[hidden]{display:none}
.part-focus-note strong{font-size:13px;line-height:1.5;color:#95eadb}
.lab .part-focus-note p{font-size:14px;line-height:1.7;color:#e1efec;margin:0}
.light .part-focus-note{background:linear-gradient(110deg,#d5efeac9,#e7f3f480);border-color:#318b7866;color:#183f39}
.light .part-focus-note strong{color:#136b5c}.light .lab .part-focus-note p{color:#244d45}
@media(max-width:760px){.part-focus-note{grid-template-columns:1fr;margin:8px 10px;padding:9px 12px;gap:3px}.part-focus-note strong{font-size:12px}.lab .part-focus-note p{font-size:13px;line-height:1.6}}
