/* 3D 视窗工位标签（04 页与展示页共用）*/
/* 工位标签 */
.lab { position: absolute; z-index: 1; transform: translate(-50%, -100%); display: flex; flex-direction: column; align-items: center; pointer-events: none; }
.lab .p { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 8px 0 6px; border-radius: var(--jm-radius-sm); background: var(--jm-bg-overlay); border: 1px solid var(--jm-border-strong); font-size: 12px; white-space: nowrap; box-shadow: var(--jm-shadow-2); }
.lab .p .c { font-family: var(--jm-font-num); font-weight: 600; font-size: 13px; color: var(--jm-text-1); }
.lab .p .ic { width: 14px; height: 14px; }
.lab .p .s { display: inline-flex; align-items: center; gap: 3px; font-weight: 500; }
.lab.ok .p .ic { color: var(--jm-ok-solid); }
.lab.warn .p { border-color: var(--jm-warn-border); background: var(--jm-warn-bg); } .lab.warn .s { color: var(--jm-warn-fg); }
.lab.bad .p { border-color: var(--jm-bad-border); background: var(--jm-bad-bg); } .lab.bad .s { color: var(--jm-bad-fg); }
.lab.idle .p .c { color: var(--jm-text-3); } .lab.idle .s { color: var(--jm-idle-fg); }
.lab.sel .p { outline: 2px solid var(--jm-brand); outline-offset: 1px; }
.lab .stem { width: 1px; background: var(--jm-border-strong); }
.lab.sel .stem { background: var(--jm-brand); }
.lab .stem::after { content: ''; display: block; width: 5px; height: 5px; border-radius: 50%; background: inherit; margin: 0 0 0 -2px; position: relative; top: 100%; }
