.lab-grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 36px; align-items: start; }
.controls { position: sticky; top: 24px; max-height: calc(100vh - 48px); overflow: auto; }
.controls .grp { font: 500 11px var(--m); letter-spacing: .12em; text-transform: uppercase; color: var(--amberDeep); margin: 18px 0 10px; padding-top: 12px; border-top: 1px solid var(--line); }
.controls .grp:first-child { margin-top: 0; border-top: 0; padding-top: 0; }
.controls .f { margin-bottom: 12px; }
.controls .f .top { display: flex; justify-content: space-between; font: 500 11px var(--m); letter-spacing: .06em; text-transform: uppercase; color: var(--ink2); margin-bottom: 3px; }
.controls .f .top output { font-weight: 700; color: var(--ink); }
.controls .tg { display: flex; align-items: center; gap: 10px; font: 500 12px var(--m); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; cursor: pointer; }
.controls .tg input { width: 18px; height: 18px; accent-color: var(--amber); }
.errs { font: 400 12.5px/1.5 var(--m); color: var(--bad); margin-top: 6px; }
.dwrap { position: relative; aspect-ratio: 16 / 10; background: var(--panel); }
.dwrap canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.ctl2 { margin-top: 18px; gap: 12px; }
.ctl2 .inl { display: flex; align-items: center; gap: 10px; margin: 0 0 0 auto; min-width: 190px; } .ctl2 .inl input { width: 120px; }
#chart { width: 100%; height: 240px; }
.legend { display: flex; gap: 18px; font: 400 11.5px var(--m); color: var(--mute); margin-top: 6px; } .legend i { display: inline-block; width: 14px; height: 3px; margin-right: 6px; vertical-align: middle; } .legend i.b { width: 3px; height: 12px; background: var(--bad); }
.k4 .v { font: 800 1.35rem/1.15 var(--m); letter-spacing: -.03em; margin-top: 6px; }
.wl { display: flex; gap: 10px; padding: 5px 0; align-items: baseline; } .wl .ok { color: var(--ok); font-weight: 700; } .wl .no { color: var(--bad); font-weight: 700; }
@media (max-width: 1020px) { .lab-grid { grid-template-columns: 1fr; } .controls { position: static; max-height: none; } .ctl2 .inl { margin: 0; } }
.g5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
@media (max-width: 1100px) { .g5 { grid-template-columns: 1fr 1fr; } }
