.lab3d{background:#0d1a2a;border-top:1px solid #35465f;border-bottom:1px solid #35465f}
.lab3d-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;padding:17px 20px}.lab3d-heading strong{font-size:22px}.lab3d-heading p{margin:4px 0 0;font-size:13px;color:#a8bfd9}#threeStatus{font-size:12px;color:#7de1c6;white-space:nowrap}
.lab3d-tools{display:flex;align-items:end;gap:10px;padding:0 20px 12px;flex-wrap:wrap}.lab3d-tools label{font-size:12px}.lab3d button{padding:8px 11px;font-size:13px;min-height:38px}
.lab3d-viewer{display:flex;flex-direction:column;background:#0d1a2a}
.lab3d-viewer.is-full{width:100vw;height:100vh}.lab3d-viewer.is-full .lab3d-stage{flex:1;aspect-ratio:auto}
.lab3d-stage{position:relative;aspect-ratio:16/10;max-height:78vh;background:#162133;overflow:hidden}
.lab3d-stage canvas{display:block;width:100%;height:100%;touch-action:none;outline:none;cursor:grab}.lab3d-stage canvas:active{cursor:grabbing}.lab3d-stage canvas:focus-visible{outline:2px solid #7de1c6;outline-offset:-2px}
.lab3d-hud{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:3px;max-width:min(430px,62%);padding:10px 13px;background:#071322d9;border:1px solid #45627e80;border-radius:9px;pointer-events:none}.lab3d-hud strong{font-size:15px}.lab3d-hud span{font-size:12px;color:#bfd1e6}
.lab3d-corner{position:absolute;top:12px;right:12px;display:flex;align-items:start;gap:6px}
.lab3d-counts{display:flex;flex-direction:column;padding:7px 11px;background:#071322d9;border-radius:9px;font-size:14px;font-variant-numeric:tabular-nums;pointer-events:none}.lab3d-counts .a{color:#6de9c4}.lab3d-counts .b{color:#ff8eab}
.lab3d .lab3d-icon{width:38px;height:38px;padding:0;border-radius:50%;background:#071322d9;font-size:17px;line-height:1}
.lab3d-label{position:absolute;left:0;top:0;color:#a0ffe0;font-size:12px;white-space:nowrap;background:#0a1625bb;border-radius:5px;padding:3px 7px;pointer-events:none;will-change:transform}.lab3d-label.victim{color:#ffadbf}
.lab3d-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);max-width:calc(100% - 24px);padding:8px 14px;border-radius:999px;background:#071322e6;border:1px solid #6de9c466;color:#d8e6f5;font-size:13px;text-align:center;pointer-events:none;transition:opacity .6s}.lab3d-hint.gone{opacity:0}
.lab3d-help{position:absolute;right:12px;top:60px;z-index:4;width:min(360px,calc(100% - 24px));max-height:calc(100% - 72px);overflow:auto;padding:14px 16px;background:#071322f2;border:1px solid #45627e;border-radius:12px;font-size:13px}
.lab3d-help dl{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:8px 0 14px}.lab3d-help dt{color:#ffd38d;font-family:ui-monospace,monospace;font-size:12px}.lab3d-help dd{margin:0;color:#c9d6ea}
.lab3d-help.is-touch .mouse,.lab3d-help.is-mouse .touch{display:none}
.lab3d-loading{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center;background:#111e30ed;color:#b5cce5;z-index:5}.lab3d-loading[hidden]{display:none}
.lab3d-bar{display:flex;align-items:center;gap:8px;padding:10px 20px;flex-wrap:wrap}
.lab3d-playback{background:#0a1626;border-bottom:1px solid #22344b}.lab3d-playback .fire{background:#206c5b;border-color:#60bfa7;font-weight:600}
.lab3d-scrub{position:relative;flex:1;min-width:220px;padding-bottom:18px}.lab3d-scrub input{width:100%;margin:0}
.lab3d-ticks{position:absolute;left:8px;right:8px;bottom:0;height:16px;pointer-events:none}
.lab3d-ticks span{position:absolute;top:0;transform:translateX(-50%);font-size:10.5px;color:#7f93ad;white-space:nowrap;padding-top:4px;border-left:1px solid #4a5e7a}
.lab3d-ticks span.done{color:#7de1c6}.lab3d-ticks span:last-child{transform:translateX(-100%);border-left:0;border-right:1px solid #4a5e7a}.lab3d-ticks span.mute{font-size:0}
.lab3d-speed{flex-direction:row!important;align-items:center;gap:6px!important;font-size:12px}
.lab3d-views{padding-top:8px;padding-bottom:12px}.lab3d-views [aria-pressed="true"]{border-color:#7de1c6;background:#1c3a46}
.lab3d-display{padding-top:4px}.lab3d-display label{display:flex;flex-direction:row;align-items:center;gap:5px;font-size:12px}.lab3d-display input{accent-color:#6de9c4}
.lab3d-note{padding:14px 20px;margin:0;color:#a5bad3;font-size:12px;line-height:1.6}
.lab3d-diagnostic{padding:12px 20px;background:#112034}.lab3d-diagnostic>summary{cursor:pointer;color:#7de1c6;font-size:13px}.lab3d-diagnostic .scene-stage::before{background:none}.lab3d-diagnostic .scene-stage{margin-top:10px}.three-page .scene-note{padding-top:10px}.three-page #sceneView{max-width:100%}
@media(max-width:650px){
 .lab3d-heading{padding:14px;display:block}.lab3d-heading strong{font-size:20px}#threeStatus{display:block;margin-top:8px}
 .lab3d-tools,.lab3d-bar{padding-left:12px;padding-right:12px}.lab3d-tools label{flex:1;min-width:30%}.lab3d-tools button{width:100%}
 .lab3d-stage{aspect-ratio:4/5;max-height:70vh}.lab3d-hud{top:8px;left:8px;max-width:calc(100% - 120px);padding:7px 9px}.lab3d-hud strong{font-size:13px}.lab3d-hud span{font-size:11px}
 .lab3d-corner{top:8px;right:8px;flex-direction:column-reverse;align-items:end}.lab3d-counts{font-size:12px;padding:6px 8px}.lab3d-label{font-size:10px}
 .lab3d-playback{gap:6px}.lab3d-playback .fire{flex:1}.lab3d-scrub{order:5;flex-basis:100%}.lab3d-speed{margin-left:auto}
 .lab3d-views{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.lab3d-views #threeFocus{grid-column:span 2}.lab3d-views button{padding:8px 4px}
 .lab3d-display{gap:10px}.lab3d-display #threeRun{flex-basis:100%}.lab3d-note{padding:12px 14px}.lab3d-help{top:auto;bottom:12px}
}
