/* Allocate the actual TV viewport to the track, including all eight lanes. */
@media(min-width:900px){
 body.audience{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
 .audience>header{flex:none;min-height:0;padding:8px 2vw;gap:12px;flex-wrap:nowrap}
 .audience>header button,.audience>header a.secondary{padding:7px 12px;font-size:13px}
 .audience #commentary-controls{flex:none;padding:6px 2vw;gap:10px;font-size:12px}
 .audience #commentary-controls button{padding:7px 10px;font-size:12px}
 .audience #commentary-controls label{font-size:12px;gap:5px}
 .audience #commentary-controls input{width:75px}
 .audience #commentary-status{font-size:12px}
 .audience main{flex:1;min-height:0;width:100%;max-width:none;margin:0;padding:10px 2vw;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:8px 18px}
 .audience.audience-lobby main{grid-template-columns:minmax(0,1fr) clamp(200px,19vw,310px)}
 .audience #error{grid-row:1;grid-column:1/-1;padding:6px 12px;margin:0}
 .audience #race-panel{grid-row:2;grid-column:1;min-height:0;min-width:0;display:flex;flex-direction:column}
 .audience .race-panel .panelhead{padding:9px 16px;flex:none}
 .audience .stats{padding:8px 16px;gap:15px;font-size:clamp(14px,1.25vw,21px);flex:none}
 .audience .stats span{min-width:0}.audience .stats span:last-child{max-width:50%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
 .audience .track{flex:1;min-height:0;display:grid;grid-template-rows:repeat(var(--lanes,8),minmax(0,1fr));padding:4px 16px}
 .audience .lane{height:auto;min-height:0;grid-template-columns:clamp(185px,18vw,300px) minmax(0,1fr) 74px;gap:10px}
 .audience .name{min-width:0;font-size:clamp(14px,1.25vw,21px);line-height:1.2}
 .audience .name small{display:none}
 .audience .lane-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .audience .road{height:100%;min-height:0}.audience .road:after{height:100%}
 .audience .horse{top:0;margin:0;height:100%;max-height:125px;width:clamp(80px,8vw,150px)}
 .audience .racer-art{height:100%;width:100%;overflow:visible}
 .audience .lane .score{font-size:clamp(16px,1.5vw,25px)}
 .audience #public-pot{flex:none;margin:3px 0;padding:4px 16px;font-size:clamp(15px,1.35vw,23px);line-height:1.25}
 .audience #public-pot:empty,.audience #race-result:empty{display:none}
 .audience #race-result{flex:none;min-height:0;padding:5px 16px;font-size:clamp(16px,1.5vw,25px);line-height:1.25}
 .audience .race-panel .footer{display:none}
 .audience #audience-join{grid-row:2;grid-column:2;margin:0;padding:16px 8px;align-self:center;flex-direction:column;gap:14px;text-align:center;min-width:0}
 .audience #audience-join img{width:clamp(150px,14vw,230px);height:auto;max-width:100%;background:white;border-radius:10px}
 .audience #audience-join h2{font-size:clamp(18px,1.6vw,27px);margin:0 0 12px}
 .audience #audience-code{font-size:clamp(48px,5vw,80px)}
 .audience .audience-join-address{font-size:clamp(14px,1.2vw,22px)}
 .audience #audience-join-status{font-size:16px}
 .audience .rules{grid-row:3;grid-column:1/-1;margin:0;font-size:11px;line-height:1.25}
}
