/* Shared layout for new 3D experiments; existing laboratories stay scoped. */
.lab[data-lab3d] .lab-layout{grid-template-columns:220px minmax(0,1fr) 250px}
.lab[data-lab3d] .lab-center{padding:18px}
.lab[data-lab3d] .lab-controls,.lab[data-lab3d] .lab-insights{padding:18px}
.atlas-3d-host{position:relative;width:100%;height:460px;min-height:340px;overflow:hidden;border-radius:10px;background:#132c39}
.l3-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-4px}
.l3-view-tools{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:6px;z-index:2;flex-wrap:wrap;pointer-events:none}
.l3-view-tools button{pointer-events:auto;min-width:44px;min-height:44px;padding:6px 12px;border:1px solid #829eae;border-radius:8px;background:#edf5f9ee;color:#244351;font-size:12px}
.l3-view-tools button[aria-pressed=true]{background:#276a7e;color:white}
.l3-view-help{position:absolute;bottom:0;left:0;right:0;margin:0;padding:7px 12px;background:#163242dd;color:#e1edf4;font-size:12px;text-align:center;pointer-events:none}
.l3-label-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.l3-label{position:absolute;transform:translate(-50%,-100%);background:#f3f8f2ed;color:#254d57;padding:3px 7px;border-radius:5px;font:600 12px var(--font);max-width:150px;white-space:nowrap}
.l3-fallback{position:absolute;inset:25% 18px auto;padding:18px;background:var(--surface);color:var(--ink);border-radius:10px;font-size:14px;line-height:1.8}
.lab[data-lab3d] .l3-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:20px}
.lab[data-lab3d] .l3-presets button,.lab[data-lab3d] .l3-steps button{font-size:12px;min-width:44px;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.lab[data-lab3d] .l3-presets button[aria-pressed=true],.lab[data-lab3d] .l3-steps button[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--surface2)}
.lab[data-lab3d] .l3-check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px;cursor:pointer}
.lab[data-lab3d] .l3-check input{width:19px;height:19px;accent-color:var(--accent)}
.lab[data-lab3d] .l3-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px}
.lab[data-lab3d] .lab-controls .l3-steps{grid-template-columns:1fr;padding:0;margin:16px 0}
.lab[data-lab3d] .l3-summary{padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:13px;line-height:1.8;margin:12px 0}
.lab[data-lab3d] .l3-timeline{padding:10px 12px;font-size:12px}
.lab[data-lab3d] .l3-timeline .control-head{flex-wrap:wrap}
.lab[data-lab3d] .l3-timeline input[type=range]{width:100%;height:44px;accent-color:var(--accent)}
.lab[data-lab3d] table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}
.lab[data-lab3d] th,.lab[data-lab3d] td{border:1px solid var(--line);padding:8px 5px;overflow-wrap:anywhere;text-align:center}
.lab[data-lab3d] select{max-width:100%;min-height:44px}
@media(max-width:760px){.lab[data-lab3d="boat-crossing"] .chart-text{font-size:24px}}
@media(max-width:1150px) and (min-width:761px){.lab[data-lab3d] .lab-layout{grid-template-columns:220px minmax(0,1fr)}.lab[data-lab3d] .lab-insights{grid-column:1/-1}}
@media(max-width:760px){.lab[data-lab3d] .lab-layout{display:flex}.lab[data-lab3d] .lab-center{padding:16px 12px}.lab[data-lab3d] .lab-insights,.lab[data-lab3d] .lab-controls{padding:20px 16px}.atlas-3d-host{height:340px;min-height:340px}.l3-view-tools{top:8px;left:8px;right:8px;gap:4px}.l3-view-tools button{padding:6px 9px}.l3-label{font-size:11px;padding:2px 5px}.lab[data-lab3d] .l3-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.lab[data-lab3d] .control-help{font-size:13px}}
