/* Venue TV viewport: reserve visible space for ten session leaders per board. */
.tv{--header-height:96px;--board-row:clamp(18px,2.6vh,28px);--board-height:calc(30px + 10 * var(--board-row));height:100vh;height:100dvh;min-height:0;overflow:hidden}
.tv .topbar{height:var(--header-height);min-height:0;padding:12px 3%;gap:30px;justify-content:flex-start}
.tv .brand{flex-shrink:0}.tv .tv-status{flex:1;min-width:0}
.tv .tv-status .round-meta{font-size:25px;letter-spacing:.5px;line-height:1.25;gap:14px}
.tv .tv-status #phase-label{min-width:0;flex:1;overflow-wrap:anywhere}
.tv .tv-status .progress{margin:8px 0 0}.tv .tv-status #timer{font-size:36px}
.tv .tv-timer{display:flex;align-items:baseline;flex-shrink:0;white-space:nowrap;gap:8px;color:var(--lime);font-variant-numeric:tabular-nums}
.tv #tv-points{font-size:25px;letter-spacing:0}.tv .tv-timer-label{font-size:20px;font-weight:700;letter-spacing:.5px;color:var(--text)}
.tv-shell{height:calc(100vh - var(--header-height));height:calc(100dvh - var(--header-height));padding:12px 3%;gap:28px;grid-template-columns:minmax(0,1fr) clamp(220px,22vw,340px);grid-template-rows:minmax(0,1fr);position:relative}
.tv-shell>#connection{position:absolute;left:3%;right:3%;top:8px;z-index:3}
.tv-main{display:grid;grid-template-rows:18px minmax(0,1fr) var(--board-height);gap:10px;min-height:0;min-width:0}
.tv-main>.connection-badge{grid-row:1;margin:0;font-size:12px;line-height:18px}
.tv .question-panel{grid-row:2;display:grid;grid-template-rows:minmax(0,1.25fr) minmax(0,.65fr) minmax(0,1.3fr);gap:8px;min-height:0;padding:0}
.tv .question-panel .question-title{grid-row:1;font-size:50px;line-height:1.12;letter-spacing:-1px;margin:0;min-height:0;overflow-wrap:anywhere;overflow:hidden}
.tv .reveal-fact{grid-row:2;font-size:24px;line-height:1.2;margin:0;min-height:0;overflow-wrap:anywhere;overflow:hidden}
.tv .answers{grid-row:3;min-height:0;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:10px}
.tv .answer{min-height:0;padding:6px 10px;gap:12px}.tv .answer .letter{flex-shrink:0}
.tv .answer-copy{display:block;flex:1;min-width:0;min-height:0;height:100%;font-size:28px;line-height:1.15;overflow-wrap:anywhere;overflow:hidden;align-content:center}
.tv .boards{grid-row:3;min-height:0;gap:26px;padding-top:5px;align-content:start}
.tv .boards>section{min-width:0}.tv .boards h2{font-size:18px;line-height:24px;margin:0 0 1px}
.tv .board-row,.tv .board-row:nth-child(n+6){display:flex;height:var(--board-row);padding:0 6px;gap:8px;font-size:clamp(13px,1.65vh,20px);line-height:1.15}
.tv .board-row:nth-child(n+11){display:none}.tv .board-row>div{min-width:0;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.tv .board-row small{display:none}.tv .rank{flex:0 0 24px;font-size:inherit}.tv .board-score{flex-shrink:0;margin-left:6px}
.tv .tv-join{align-self:stretch;min-height:0;padding:18px;overflow:hidden}.tv-join h2{font-size:clamp(36px,4vw,60px);margin-bottom:14px}
.tv-join .eyebrow{margin-bottom:14px}.tv .qr{max-width:250px;padding:8px;margin:12px auto 8px}.tv .qr svg{max-height:28vh}
.tv .venue-code{border-top:0;margin-top:10px;padding-top:0}.tv .venue-code strong{font-size:32px;margin:6px 0 12px}.tv .tv-join p{margin-bottom:10px}.tv .player-count{padding-top:10px}
.tv[data-phase="break"] .tv-main,.tv[data-phase="final"] .tv-main{grid-template-rows:18px auto minmax(0,1fr) var(--board-height)}
.tv[data-phase="break"] .question-panel,.tv[data-phase="final"] .question-panel{display:block;grid-row:2;padding:0}
.tv[data-phase="break"] .question-panel .eyebrow,.tv[data-phase="final"] .question-panel .eyebrow{display:none}
.tv[data-phase="break"] .question-panel h1,.tv[data-phase="final"] .question-panel h1{font-size:clamp(22px,2vw,34px);line-height:1.12;margin:0 0 5px;letter-spacing:-.5px}
.tv[data-phase="break"] .question-panel .lede,.tv[data-phase="final"] .question-panel .lede{font-size:13px;line-height:1.3;margin:0;max-width:none}
.tv .break-media{grid-row:3;min-height:0;margin:0;display:flex;flex-direction:column}.tv .break-media img{flex:1;min-height:0;height:0;max-height:none;object-fit:contain}.tv .break-media>p{font-size:11px;line-height:14px;margin:3px 0 0}
.tv[data-phase="break"] .boards,.tv[data-phase="final"] .boards{grid-row:4;padding-top:5px}
@media(max-height:760px){.tv{--header-height:84px}.tv .topbar{gap:24px}.tv .tv-status .round-meta{font-size:20px}.tv .tv-timer-label{font-size:17px}.tv #tv-points{font-size:20px}.tv .tv-status #timer{font-size:32px}.tv .venue-brand-logo{height:48px}.tv .tv-join h2{font-size:38px}.tv .tv-join .eyebrow{font-size:8px}.tv .boards h2{font-size:16px}}
@media(max-width:900px){.tv .brand{font-size:14px}.tv .topbar{gap:18px}.tv .tv-status .round-meta{font-size:16px}.tv .tv-timer-label{font-size:14px}.tv-shell{gap:18px}.tv .tv-join{padding:12px}}
/* Small browser windows can scroll instead of clipping a venue screen. */
@media(max-width:700px),(max-height:550px){.tv{height:auto;min-height:100vh;overflow:auto}.tv-shell{height:auto;min-height:650px;grid-template-columns:minmax(0,1fr)}.tv-main{min-height:650px}.tv-join{display:none}.tv .topbar{height:auto;min-height:84px}.tv .tv-status .round-meta{flex-wrap:wrap}}
