.laboratory-shell { max-width: 1360px; }
.lab-heading { padding: 34px 0 24px; max-width: 760px; }
.lab-heading h1 { margin: 0 0 15px; font-size: clamp(28px, 4vw, 44px); letter-spacing: -0.04em; }
.lab-heading p { color: var(--steel); line-height: 1.65; max-width: 65ch; }
.lab-controls { display: flex; align-items: end; gap: 18px; flex-wrap: wrap; padding: 20px 0; border-block: 1px solid var(--line); }
.laboratory-shell label { display: flex; flex-direction: column; gap: 7px; font-size: 13px; font-weight: 600; }
.laboratory-shell select, .laboratory-shell input:not([type=range]) { min-height: 40px; border: 1px solid var(--line); padding: 8px; background: var(--surface-bright); color: var(--ink); font: inherit; max-width: 100%; }
.laboratory-shell :is(input, select):focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.lab-controls input { width: 150px; }
.lab-controls button { margin-left: auto; }
.lab-editors { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 28px 0 12px; }
.lab-editors fieldset { min-width: 0; padding: 18px 20px; border: 1px solid var(--line); background: var(--surface); }
.lab-editors legend { font-size: 18px; font-weight: 700; padding-inline: 8px; }
.lab-editor-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.lab-build-stats { font-size: 13px; line-height: 1.7; min-height: 70px; }
.lab-build-stats[data-valid=false], #lab-status[data-kind=error] { color: #8b341f; }
#lab-status { min-height: 28px; line-height: 1.6; margin: 20px 0; }
#lab-results { border-top: 1px solid var(--line); padding-top: 24px; }
.comparison-results { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.comparison-results article { padding: 10px 0 18px; border-bottom: 3px solid var(--cobalt); }
.comparison-results article:last-child { border-color: var(--amber); }
.comparison-results h3 { margin: 8px 0; }
.comparison-results p { line-height: 1.6; }
.lab-chart-controls, .replay-heading, .lab-playback { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; padding: 18px 0; }
.lab-chart-controls p { color: var(--muted); font-size: 13px; }
#comparison-chart { width: 100%; height: 270px; background: var(--surface); }
.lab-watch { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; }
#lab-canvas { width: 100%; height: 450px; background: var(--surface); }
.timeline-label { flex: 1; min-width: 180px; }
#lab-timeline { width: 100%; min-height: 34px; accent-color: var(--cobalt); }
#lab-time { font-variant-numeric: tabular-nums; }
#lab-inspector { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; font-size: 13px; }
#lab-inspector dt { color: var(--muted); } #lab-inspector dd { margin: 0; text-align: right; }
#lab-events { padding-left: 20px; color: var(--steel); font-size: 12px; line-height: 1.7; }
.lab-editor-actions { display: flex; justify-content: space-between; gap: 12px; }
@media(max-width: 850px) { .lab-watch { grid-template-columns: 1fr; } .lab-watch aside { display: block; } .lab-editors, .comparison-results { gap: 16px; } }
@media(max-width: 560px) { .lab-editors, .comparison-results { grid-template-columns: 1fr; } .lab-controls { gap: 12px; } .lab-controls button { margin-left: 0; width: 100%; } .lab-editor-fields { grid-template-columns: 1fr; } #lab-canvas { height: 340px; } }
@media(prefers-reduced-motion: reduce) { * { scroll-behavior: auto; } }

.laboratory-shell [hidden] { display: none !important; }
#lab-inspector dd { max-width: 170px; overflow-wrap: anywhere; }

.lab-editor-fields label, .lab-watch aside { min-width: 0; }

.lab-editor-fields textarea { width:100%; min-width:0; font:12px/1.5 Consolas,monospace; resize:vertical; border:1px solid #b4c5bd; padding:12px; border-radius:8px; }

.lab-tower-editor { display:block; } .lab-tower-editor h3 { font-size:14px; margin:16px 0 8px; } .lab-placement { display:grid; grid-template-columns:minmax(100px,1.3fr) minmax(75px,1fr) minmax(75px,1fr) auto; gap:6px; align-items:end; margin:8px 0; } .lab-placement label { min-width:0; } .lab-placement button { padding:8px; } .lab-wave-editor { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .lab-wave-editor h3 { grid-column:1/-1; } @media(max-width:500px) { .lab-placement { grid-template-columns:repeat(2,minmax(0,1fr)); } }
