.tv-page{--tv-player-font-size:clamp(.8rem,1.1vw,1.55rem);height:100svh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.tv-header{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:1rem;padding:1.1vh 1.2vw;border-bottom:1px solid var(--colour-border);background:#081620}
.tv-brand{display:flex;align-items:center;gap:1vw;width:fit-content}.tv-brand img:first-child{width:clamp(90px,9vw,180px);height:auto}.tv-brand img:last-child{width:clamp(50px,5vw,100px);height:5vh;object-fit:contain}.tv-brand>span{height:3vh;width:1px;background:var(--colour-border)}
.tv-event{text-align:center;min-width:0}.tv-event h1{font-size:clamp(1rem,1.45vw,2rem);line-height:1.2;margin-top:.3rem}.tv-event .eyebrow{font-size:clamp(.6rem,.72vw,1rem);color:var(--colour-action)}
.tv-clock{text-align:right;line-height:1.1}.tv-clock>time{font-size:clamp(.6rem,.7vw,.95rem);font-weight:700;color:var(--colour-text-muted);text-transform:uppercase}.tv-clock>div{display:inline-flex;align-items:baseline;gap:.45rem;margin-left:.6rem}.tv-clock #tv-time{font:900 clamp(1.4rem,2.3vw,3.5rem) var(--font-heading);font-variant-numeric:tabular-nums}.tv-clock span{font-size:.65rem;color:var(--colour-action);font-weight:800}
.tv-clock button,.tv-panel-footer button{border:0;background:transparent;color:var(--colour-text-muted);font-size:.7rem;text-decoration:underline;cursor:pointer;padding:.25rem}.tv-clock button{display:block;margin-left:auto}
.tv-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,.85fr) minmax(0,1.15fr);gap:1vw;padding:1vw;min-height:0}
.tv-panel{min-width:0;min-height:0;border:1px solid #58758c;border-radius:1rem;overflow:hidden;background:var(--colour-brand-blue);display:grid;grid-template-rows:auto minmax(0,1fr)}
.tv-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2vh 1.2vw;border-bottom:1px solid var(--colour-border);background:linear-gradient(110deg,var(--colour-brand-navy),#164767)}
.tv-panel-heading h2{font-size:clamp(1.15rem,1.9vw,2.6rem);margin-top:.4vh}.tv-panel-heading .eyebrow{font-size:clamp(.6rem,.7vw,.95rem);color:var(--colour-action)}
.tv-badge{border:1px solid var(--colour-border);border-radius:2rem;padding:.4em .8em;color:var(--colour-brand-lime);font-size:clamp(.6rem,.68vw,.9rem);font-weight:800;white-space:nowrap;text-transform:uppercase}
.tv-page .court-score{min-height:0;padding:1vh 1.2vw;display:flex;flex-direction:column;justify-content:center;overflow:auto;border:0}
.tv-page .court-score__empty,.tv-page .court-score__loading{min-height:0;flex:1;gap:.2vh;line-height:1.25;font-size:clamp(.8rem,1vw,1.4rem)}
.tv-page .court-score__upcoming strong{font:800 clamp(.9rem,1.2vw,1.7rem)/1.2 var(--font-heading)}
.tv-page .court-score__upcoming .active-tournament-context,.tv-page .court-score__upcoming>p:last-child{font-size:clamp(.65rem,.8vw,1rem)}
.tv-page .court-score__status{margin-bottom:.6vh}.tv-page .court-score__columns,.tv-page .court-score__team{grid-template-columns:minmax(0,1fr) repeat(5,minmax(0,3.8vw));gap:.5vw}
.tv-page .court-score__team{flex:1;min-height:0;padding:.7vh 0}.tv-page .court-score__name{font-size:clamp(.8rem,1.1vw,1.55rem)}.tv-page .court-score__number{min-height:4vh;font-size:clamp(1rem,1.6vw,2.2rem)}.tv-page .court-score__columns{font-size:clamp(.5rem,.65vw,.85rem)}.tv-page .court-score__footer{padding-top:.5vh;font-size:clamp(.55rem,.65vw,.9rem)}
.tv-fixtures,.tv-standings{grid-template-rows:auto minmax(0,1fr) auto}.tv-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5vh 1.2vw;border-top:1px solid var(--colour-border);font-size:clamp(.6rem,.7vw,.9rem);color:var(--colour-text-muted)}
.tv-fixture-list{display:grid;grid-auto-rows:minmax(0,1fr);gap:.6vh;padding:.8vh 1vw;min-height:0}.tv-fixture{display:grid;grid-template-rows:auto 1fr;padding:.4vh .5vw;border-bottom:1px solid var(--colour-border);min-height:0}.tv-fixture:last-child{border:0}
.tv-fixture-meta{display:flex;justify-content:space-between;gap:.5rem;font-size:clamp(.55rem,.65vw,.9rem);color:var(--colour-text-muted);text-transform:uppercase;font-weight:700}.tv-fixture-meta strong{color:var(--colour-action)}.tv-fixture-meta .is-live{color:var(--colour-brand-lime)}
.tv-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1vw;min-height:0}.tv-team{display:flex;align-items:center;justify-content:space-between;gap:.5vw;min-width:0}.tv-team>span{font-weight:700;font-size:clamp(.7rem,.92vw,1.3rem);line-height:1.3;overflow-wrap:anywhere}.tv-team>span span{display:block}.tv-team.is-winner{color:var(--colour-brand-lime)}.tv-scores{display:flex;gap:.3vw;flex-shrink:0;font-size:clamp(.85rem,1.1vw,1.5rem);font-variant-numeric:tabular-nums}.tv-scores b{min-width:1.1em;text-align:center}.tv-versus{font-size:.6rem;color:var(--colour-text-muted);text-transform:uppercase}
.tv-tables{padding:.7vh 1vw;display:grid;gap:.7vh;align-content:start;overflow:auto;min-height:0}.tv-table{width:100%;table-layout:fixed;font-size:clamp(.7rem,.85vw,1.2rem);line-height:1.25}.tv-table caption{text-align:left;color:var(--colour-action);font-weight:800;padding:.4vh .4vw;font-size:clamp(.7rem,.8vw,1.1rem)}.tv-table th{font-size:.7em;text-transform:uppercase;color:var(--colour-text-muted);text-align:left}.tv-table td,.tv-table th{padding:.55vh .4vw;border-bottom:1px solid var(--colour-border)}.tv-table th:first-child{width:6%}.tv-table th:nth-child(3),.tv-table th:nth-child(4){width:8%}.tv-table th:last-child{width:12%}.tv-table td:nth-child(n+3),.tv-table th:nth-child(n+3){text-align:center}.tv-table td:nth-child(2){font-weight:700;overflow-wrap:anywhere}.tv-table td:nth-child(2) span+span::before{content:' / ';color:var(--colour-text-muted)}.tv-table tbody .is-leader{color:var(--colour-brand-lime)}.tv-empty{display:grid;place-items:center;height:100%;color:var(--colour-text-muted);font-weight:700;text-align:center}
@media(max-width:700px){.tv-page{height:auto;min-height:100svh;overflow:auto}.tv-header{grid-template-columns:1fr auto;padding:1rem}.tv-event{grid-row:2;grid-column:1/-1}.tv-brand img:last-child{height:2.5rem}.tv-board{grid-template-columns:1fr;grid-template-rows:repeat(2,20rem) auto auto;gap:1rem;padding:1rem}.tv-panel-heading{padding:1rem}.tv-fixture-list{grid-auto-rows:minmax(5.5rem,auto);padding:.5rem}.tv-tables{padding:.5rem}.tv-table td,.tv-table th{padding:.6rem .25rem}.tv-page .court-score{padding:1rem}.tv-page .court-score__columns,.tv-page .court-score__team{grid-template-columns:minmax(0,1fr) repeat(5,1.8rem)}.tv-panel-footer{padding:.5rem}.tv-fixture{padding:.5rem}.tv-team>span{font-size:.75rem}.tv-clock #tv-time{font-size:1.7rem}}
/* Shared hub tables have a minimum width; TV tables must fit their quadrant. */
.tv-table{min-width:0}.tv-table th,.tv-table td{white-space:normal}

/* Keep player names equally readable across all four TV panels. */
.tv-page .court-score__name,.tv-page .court-score__upcoming strong,.tv-team>span:first-child,.tv-table td:nth-child(2){font-size:var(--tv-player-font-size)}
@media(min-width:701px){.tv-table td,.tv-table th{padding-block:.25vh}}
