/* Presentation-only Live Lab. Shared shell, participant forms and reports stay unchanged. */
.lab-live-host{overflow-anchor:none}
.lab-live-host #liveQuestionStatus{display:flex;align-items:center;gap:9px}
.lab-live-host #liveQuestionStatus:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-dark);flex-shrink:0}
.lab-live-host[data-live-state="LOCKED"] #liveQuestionStatus:before{border:2px solid var(--muted);background:transparent;width:9px;height:9px}
.lab-live-host[data-live-state="ENDED"] #liveQuestionStatus:before{background:var(--muted)}
.lab-live-display{position:relative;min-height:280px;padding:8px 0 22px;isolation:isolate;overflow-anchor:none}
.lab-live-display:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(var(--line) .8px,transparent .8px);background-size:30px 30px;opacity:.38}
.lab-live-empty{min-height:280px;display:grid;align-content:center;justify-items:center;gap:18px;color:var(--muted);text-align:center;padding:30px}
.lab-live-empty-symbol{font-size:58px;color:var(--accent-dark);opacity:.7}
.lab-live-empty p{font-size:clamp(17px,2vw,25px);margin:0;line-height:1.7}
.lab-live-caption{display:block;text-align:center;color:var(--muted);font-size:12px;line-height:1.6;margin:16px auto 0;max-width:850px}
.lab-intake{height:270px;position:relative;width:100%;max-width:880px;margin:auto}
.lab-intake-canvas{width:100%;height:100%;display:block}
.lab-intake-copy{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);text-align:center;display:grid;gap:5px}
.lab-intake-copy strong{font-size:48px;font-weight:500;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.lab-intake-copy span{font-size:13px;color:var(--muted)}
.lab-sample-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:8px 0}
.lab-sample-card{position:relative;min-width:0;padding:26px 24px 24px;border:1px solid var(--line-strong);border-radius:18px;background:var(--surface);box-shadow:var(--soft-shadow);align-self:start;overflow-wrap:anywhere}
.lab-sample-mark{display:block;width:6px;height:6px;border-radius:50%;background:var(--accent-dark);margin-bottom:14px;opacity:.7}
.lab-sample-card p{font-size:clamp(18px,1.8vw,28px);line-height:1.65;margin:0;color:var(--ink);white-space:pre-wrap}
.lab-sample-card small{display:block;font-size:13px;color:var(--muted);margin-top:18px}
.lab-sample-board.bubbles .lab-sample-card{border-radius:24px 24px 24px 5px;background:var(--accent-soft);box-shadow:none}
.lab-sample-board.flow{grid-template-columns:1fr;gap:0}
.lab-sample-board.flow .lab-sample-card{display:grid;grid-template-columns:8px 1fr;gap:10px 18px;border-width:0 0 1px;border-radius:0;background:transparent;box-shadow:none}
.lab-sample-board.flow .lab-sample-mark{margin-top:13px}
.lab-sample-board.flow .lab-sample-card small{grid-column:2;margin-top:0}
.lab-measurements{display:grid;grid-template-columns:repeat(var(--channels,4),minmax(0,1fr));gap:18px;align-items:stretch;margin:4px 0 22px}
.lab-measurement{min-width:0;display:grid;grid-template-rows:220px auto;gap:18px;padding:22px 14px 18px;border:1px solid var(--line);border-radius:20px;background:var(--surface-soft)}
.lab-measure-glass{position:relative;justify-self:center;align-self:stretch;width:min(68px,65%);min-width:35px;border:2px solid var(--line-strong);border-radius:8px 8px 28px 28px;overflow:hidden;background:var(--surface-strong)}
.lab-measure-liquid{position:absolute;inset:0;transform:scaleY(0);transform-origin:bottom;transition:transform .55s cubic-bezier(.2,.8,.2,1);background:linear-gradient(180deg,var(--accent),var(--accent-dark));border-top:3px solid var(--accent-dark);opacity:.7}
.lab-measurement:nth-child(3n+2) .lab-measure-liquid{opacity:.5}.lab-measurement:nth-child(3n) .lab-measure-liquid{opacity:.85}
.lab-measure-ticks{position:absolute;inset:12px auto 12px 0;width:11px;z-index:1;background:repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),var(--line-strong) calc(25% - 1px),var(--line-strong) 25%)}
.lab-measure-shine{position:absolute;top:12px;bottom:24px;left:7px;width:4px;border-radius:5px;background:var(--surface-strong);opacity:.6;pointer-events:none}
.lab-measure-copy{text-align:center;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:12px}
.lab-measure-copy h3{font-size:clamp(16px,1.8vw,25px);font-weight:500;line-height:1.5;overflow-wrap:anywhere;margin:0;color:var(--ink)}
.lab-measure-numbers{display:grid;gap:3px;font-variant-numeric:tabular-nums}
.lab-measure-percent{font-size:clamp(26px,3vw,40px);font-weight:500;color:var(--ink)}
.lab-measure-count{font-size:13px;color:var(--muted)}
.lab-molecular-field{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:12px 0}
.lab-molecule{height:124px;min-width:0;position:relative;display:flex;align-items:center;justify-content:center;padding:14px 12px 24px;text-align:center;isolation:isolate}
.lab-molecule:before{content:"";position:absolute;inset:8px 3px 12px;border:1px solid var(--line-strong);border-radius:48% 52% 45% 55%;background:var(--surface-soft);z-index:-1}
.lab-molecule:after{content:"";position:absolute;width:5px;height:5px;top:22px;right:20%;border-radius:50%;background:var(--accent-dark);opacity:.65}
.lab-molecule:nth-child(3n):before{border-radius:55% 45% 52% 48%}.lab-molecule:nth-child(2n):after{right:auto;left:18%;top:auto;bottom:28px}
.lab-molecule-text{display:block;max-width:100%;width:100%;font-size:28px;font-weight:500;line-height:1.35;overflow-wrap:anywhere;color:var(--ink)}
.lab-molecule.is-long-word{grid-column:span 2}
.lab-molecule-count{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);min-width:25px;padding:2px 6px;border:1px solid var(--line);border-radius:20px;background:var(--surface-strong);color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.lab-live-display[data-state="LOCKED"] *,.lab-live-display[data-state="ENDED"] *,.lab-live-display[data-motion="reduced"] *{transition:none!important}
html:fullscreen .route-labs .app:has(.lab-live-host){width:100%;max-width:1600px}
html:fullscreen .lab-live-host .lab-room-qr{width:125px;height:125px}
html:fullscreen .lab-live-host .lab-intake{height:clamp(270px,43dvh,560px);max-width:1100px}
html:fullscreen .lab-live-host .lab-intake-copy strong{font-size:clamp(48px,6vw,78px)}
html:fullscreen .lab-live-host .lab-measurement{grid-template-rows:clamp(150px,27dvh,340px) auto}
html:fullscreen .lab-live-host .lab-molecular-field{grid-template-columns:repeat(8,minmax(0,1fr))}
html:fullscreen .lab-live-host .lab-presenter-bar{margin-top:20px}
@media(max-width:1050px){.lab-sample-board{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-molecular-field{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-measurements{gap:12px}.lab-measurement{padding-inline:10px;grid-template-rows:180px auto}}
@media(max-width:650px){.lab-live-display{padding-top:0}.lab-intake{height:270px}.lab-intake-copy strong{font-size:42px}.lab-live-caption{font-size:11px}.lab-sample-board{grid-template-columns:1fr;gap:14px}.lab-sample-card{padding:22px}.lab-sample-card p{font-size:18px}.lab-measurements{grid-template-columns:1fr;gap:12px}.lab-measurement{grid-template-columns:50px minmax(0,1fr);grid-template-rows:auto;gap:24px;padding:18px 22px;min-height:145px}.lab-measure-glass{width:42px;min-height:112px}.lab-measure-copy{text-align:left;justify-content:center;gap:10px}.lab-measure-copy h3{font-size:18px}.lab-measure-numbers{display:flex;align-items:baseline;gap:12px}.lab-measure-percent{font-size:28px}.lab-molecular-field{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lab-molecule{height:166px;padding-inline:10px}.lab-molecule-text{font-size:24px}.lab-molecule:before{inset-inline:0}.lab-live-empty{padding-inline:12px}.lab-live-host .lab-live-meta{gap:8px}html:fullscreen .lab-live-host .lab-measurement{grid-template-rows:auto}html:fullscreen .lab-live-host .lab-molecular-field{grid-template-columns:repeat(2,minmax(0,1fr))}html:fullscreen .lab-live-host .lab-room-qr{width:75px;height:75px}}
@media(prefers-reduced-motion:reduce){.lab-live-display *{animation:none!important;transition:none!important}}
