:root{
  --tv-bg:#070d18;--tv-bg2:#0c1423;--tv-card:#101a2b;--tv-card2:#131f33;--tv-line:#25334a;
  --tv-text:#f2f6fd;--tv-muted:#93a4bc;--tv-blue:#57a2ff;--tv-blue-soft:#142f51;--tv-purple:#aa8fff;--tv-purple-soft:#2b2448;
  --tv-good:#55d18b;--tv-bad:#ff7474;--tv-yellow:#ffd166;--tv-shadow:0 18px 50px rgba(0,0,0,.3);
}
html[data-tv-theme="light"]{
  --tv-bg:#edf3fb;--tv-bg2:#f7faff;--tv-card:#fff;--tv-card2:#f7f9fc;--tv-line:#dce5f0;
  --tv-text:#14213d;--tv-muted:#68778b;--tv-blue:#1769e0;--tv-blue-soft:#e8f2ff;--tv-purple:#7257d9;--tv-purple-soft:#f1edff;
  --tv-good:#16834b;--tv-bad:#d13c3c;--tv-yellow:#8d6200;--tv-shadow:0 16px 42px rgba(31,49,80,.12);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--tv-bg);color:var(--tv-text)}
.tv-body{min-height:100vh;background:radial-gradient(circle at 50% -30%,rgba(57,111,191,.23),transparent 48%),linear-gradient(180deg,var(--tv-bg2),var(--tv-bg));overflow-x:hidden}
.tv-shell{min-height:100vh;padding:1.7vh 1.5vw 1.2vh;display:flex;flex-direction:column;gap:1.3vh}
.tv-header{height:8.2vh;min-height:72px;display:grid;grid-template-columns:1fr 1.25fr .65fr;align-items:center;gap:1.4vw;padding:0 .35vw}
.tv-brand{display:flex;align-items:center;gap:.8vw}.tv-logo{width:3.2vw;height:3.2vw;min-width:48px;min-height:48px;border-radius:1vw;background:#1769e0;display:grid;place-items:center;font-size:1.65vw;box-shadow:0 8px 24px rgba(23,105,224,.3)}.tv-brand strong{display:block;font-size:1.22vw;letter-spacing:-.02em}.tv-brand small,.tv-session-title small{display:block;color:var(--tv-muted);font-size:.72vw;margin-top:.25vh}
.tv-session-title{display:flex;align-items:center;justify-content:center;gap:.75vw;text-align:left}.tv-session-title strong{font-size:1.32vw}.live-dot,.idle-dot{width:.7vw;height:.7vw;min-width:10px;min-height:10px;border-radius:50%;background:var(--tv-good);box-shadow:0 0 0 .38vw rgba(85,209,139,.13)}.idle-dot{background:var(--tv-muted);box-shadow:0 0 0 .38vw rgba(147,164,188,.1)}
.tv-clock-wrap{text-align:right}.tv-clock{font-weight:950;font-size:2vw;line-height:1;font-variant-numeric:tabular-nums}.tv-date{color:var(--tv-muted);font-size:.78vw;margin-top:.4vh;text-transform:capitalize}
.tv-metrics{display:grid;grid-template-columns:repeat(4,1fr) 1.45fr;gap:.8vw;height:9.2vh;min-height:82px}.tv-metric{border:1px solid var(--tv-line);background:linear-gradient(145deg,var(--tv-card),var(--tv-card2));border-radius:1vw;box-shadow:var(--tv-shadow);display:flex;align-items:center;gap:.85vw;padding:1vh 1vw}.tv-metric>span{width:2.25vw;height:2.25vw;min-width:40px;min-height:40px;border-radius:.72vw;background:var(--tv-blue-soft);color:var(--tv-blue);display:grid;place-items:center;font-size:1vw;font-weight:950}.tv-metric small{display:block;color:var(--tv-muted);font-size:.7vw;font-weight:750}.tv-metric strong{display:block;font-size:1.65vw;line-height:1.05;margin-top:.2vh}.tv-metric .metric-text{font-size:1.16vw}
.tv-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(520px,.75fr);grid-template-rows:minmax(0,1.18fr) minmax(0,.82fr);gap:1vw;flex:1;min-height:0}.tv-card{background:linear-gradient(150deg,var(--tv-card),var(--tv-card2));border:1px solid var(--tv-line);border-radius:1.1vw;box-shadow:var(--tv-shadow);padding:1.25vh 1.05vw;min-height:0;overflow:hidden}.tv-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1vw;margin-bottom:1vh}.tv-card-head h2{font-size:1.26vw;margin:0;letter-spacing:-.025em}.tv-card-head p{font-size:.68vw;color:var(--tv-muted);margin:.25vh 0 0}.tv-pill,.refresh-label{border-radius:999px;padding:.35vh .6vw;background:rgba(85,209,139,.12);color:var(--tv-good);font-size:.62vw;font-weight:950;letter-spacing:.08em}.refresh-label{background:var(--tv-blue-soft);color:var(--tv-blue);letter-spacing:0}.tv-icon-title{font-size:1.4vw}
.tv-table-wrap{height:calc(100% - 5vh);overflow:hidden}.tv-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.tv-table th,.tv-table td{border-bottom:1px solid var(--tv-line);text-align:left}.tv-table th{font-size:.62vw;text-transform:uppercase;letter-spacing:.07em;color:var(--tv-muted);padding:.72vh .65vw}.tv-table td{font-size:.83vw;padding:.8vh .65vw}.tv-table-large .tv-player{font-size:.92vw;font-weight:900}.tv-table tr:last-child td{border-bottom:0}.tv-pos{width:3vw;font-weight:900}.tv-win{color:var(--tv-good);font-weight:900}.tv-loss{color:var(--tv-bad);font-weight:900}.top-1 td{background:rgba(255,209,102,.055)}.top-2 td{background:rgba(180,195,220,.035)}.top-3 td{background:rgba(214,139,91,.035)}
.tv-form{display:inline-flex;gap:.22vw}.tv-form-dot{width:1.18vw;height:1.18vw;min-width:18px;min-height:18px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:950;font-size:.5vw}.tv-form-dot.win{background:#2fab65}.tv-form-dot.loss{background:#d85555}.tv-muted{color:var(--tv-muted)}
.dual-rank{height:calc(100% - 4.7vh);display:grid;grid-template-columns:1fr 1fr;gap:.75vw}.rank-column{background:rgba(255,255,255,.018);border:1px solid var(--tv-line);border-radius:.85vw;padding:.75vh .7vw;overflow:hidden}.rank-column h3{font-size:.8vw;margin:.05vh 0 .65vh;color:var(--tv-muted)}.rank-mode{display:inline-flex;border-radius:999px;background:var(--tv-blue-soft);color:var(--tv-blue);padding:.2vh .38vw;font-size:.6vw;margin-right:.25vw}.rank-mode.two{background:var(--tv-purple-soft);color:var(--tv-purple)}.tv-rank-row{height:4.15vh;min-height:34px;display:grid;grid-template-columns:1.7vw 1fr auto;align-items:center;gap:.4vw;border-bottom:1px solid var(--tv-line);font-size:.78vw}.tv-rank-row:last-child{border-bottom:0}.rank-pos{color:var(--tv-muted);font-weight:900}.tv-rank-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-elo{font-size:.94vw;font-weight:950;color:var(--tv-blue)}.rank-column:nth-child(2) .rank-elo{color:var(--tv-purple)}
.tv-match-list{display:grid;grid-template-columns:1fr 1fr;gap:.65vh .65vw}.tv-match-row{min-height:5.15vh;border:1px solid var(--tv-line);background:rgba(255,255,255,.016);border-radius:.75vw;padding:.55vh .55vw;display:grid;grid-template-columns:2.1vw 1fr auto;align-items:center;gap:.55vw}.tv-mode{border-radius:.45vw;background:var(--tv-blue-soft);color:var(--tv-blue);font-size:.54vw;font-weight:950;padding:.3vh .3vw;text-align:center}.tv-mode.two{background:var(--tv-purple-soft);color:var(--tv-purple)}.tv-match-main{min-width:0}.tv-match-main strong{display:block;font-size:.76vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-match-main span{display:block;font-size:.62vw;color:var(--tv-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.12vh}.tv-match-time{text-align:right;font-size:.76vw;font-weight:900}.tv-match-time small{display:block;color:var(--tv-good);font-size:.52vw;margin-top:.12vh}
.tv-player-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65vw;align-content:start}.tv-player-chip{height:5.1vh;min-height:42px;border:1px solid var(--tv-line);border-radius:.75vw;background:rgba(255,255,255,.018);display:flex;align-items:center;gap:.55vw;padding:.55vh .6vw}.tv-player-chip>span{width:2vw;height:2vw;min-width:32px;min-height:32px;border-radius:.62vw;background:var(--tv-blue-soft);color:var(--tv-blue);display:grid;place-items:center;font-size:.72vw;font-weight:950}.tv-player-chip strong{font-size:.77vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-empty{height:calc(100% - 5vh);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--tv-muted);gap:.55vh}.tv-empty>span{font-size:2.6vw}.tv-empty strong{font-size:1.1vw;color:var(--tv-text)}.tv-empty small{font-size:.7vw;max-width:70%}.tv-empty.compact{height:auto;min-height:5vh}.tv-empty.compact strong{font-size:.78vw}.tv-empty.compact small{font-size:.58vw}
.tv-footer{height:2.8vh;min-height:24px;display:flex;align-items:center;justify-content:space-between;color:var(--tv-muted);font-size:.6vw;padding:0 .2vw}.tv-footer a{color:var(--tv-blue);text-decoration:none}.refresh-progress{position:fixed;left:0;right:0;bottom:0;height:3px;background:transparent;overflow:hidden}.refresh-progress span{display:block;height:100%;background:var(--tv-blue);width:100%;transform-origin:left;animation:refreshbar 20s linear forwards}@keyframes refreshbar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(max-width:1200px),(max-height:720px){.tv-shell{padding:10px}.tv-header{height:65px}.tv-metrics{height:72px}.tv-grid{grid-template-columns:1.2fr .8fr;gap:8px}.tv-card{border-radius:14px;padding:10px}.tv-logo{font-size:22px}.tv-brand strong,.tv-session-title strong{font-size:16px}.tv-clock{font-size:26px}.tv-brand small,.tv-session-title small,.tv-date{font-size:10px}.tv-card-head h2{font-size:16px}.tv-card-head p{font-size:9px}.tv-table th{font-size:8px}.tv-table td{font-size:11px}.tv-table-large .tv-player{font-size:12px}.tv-rank-row{font-size:10px}.rank-elo{font-size:12px}.tv-match-main strong,.tv-player-chip strong{font-size:10px}.tv-match-main span{font-size:8px}.tv-match-time{font-size:10px}.tv-footer{font-size:8px}}

/* 2.2.0 – doporučené další zápasy */
.tv-next-grid{height:calc(100% - 4.8vh);display:grid;grid-template-columns:1fr 1fr;gap:.7vw}.tv-next-mode{min-width:0;border:1px solid var(--tv-line);border-radius:.8vw;background:rgba(87,162,255,.055);padding:.75vh .7vw;display:flex;flex-direction:column;justify-content:center}.tv-next-mode.two{background:rgba(170,143,255,.055)}.tv-next-title{display:flex;align-items:center;gap:.4vw;margin-bottom:.65vh}.tv-next-title strong{font-size:.76vw}.tv-next-teams{font-size:.88vw;font-weight:900;line-height:1.35}.tv-next-teams span{display:inline-block;color:var(--tv-muted);font-size:.62vw;margin:.12vh .3vw}.tv-next-reason{font-size:.58vw;color:var(--tv-muted);margin-top:.55vh}.tv-next-after{border-top:1px solid var(--tv-line);margin-top:.75vh;padding-top:.6vh;font-size:.58vw;color:var(--tv-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-next-empty{font-size:.68vw;color:var(--tv-muted);padding:1vh 0}@media(max-width:1200px),(max-height:720px){.tv-next-title strong{font-size:10px}.tv-next-teams{font-size:11px}.tv-next-reason,.tv-next-after{font-size:8px}}

/* 2.7.0 – 2v2 kolo na TV */
.tv-round-strip{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;align-items:center;gap:.8vw;min-height:4.4vh;padding:.7vh 1vw;border:1px solid var(--tv-line);border-radius:1vw;background:linear-gradient(90deg,var(--tv-blue-soft),var(--tv-card));box-shadow:var(--tv-shadow)}
.tv-round-label{font-weight:900;font-size:.86vw;white-space:nowrap}.tv-round-track{height:.55vh;min-height:6px;border-radius:999px;background:var(--tv-card2);overflow:hidden}.tv-round-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--tv-blue),var(--tv-good))}.tv-round-strip strong{font-size:1vw;font-variant-numeric:tabular-nums}.tv-round-strip small{color:var(--tv-muted);font-size:.66vw}
@media(max-width:1100px){.tv-round-label{font-size:12px}.tv-round-strip strong{font-size:13px}.tv-round-strip small{font-size:10px}}

/* 2.7.1 – dvě kola vedle sebe */
.tv-rounds-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8vw}.tv-rounds-grid .tv-round-strip{min-width:0}.tv-rounds-grid .tv-round-strip:nth-child(2){background:linear-gradient(90deg,var(--tv-purple-soft),var(--tv-card))}@media(max-width:1100px){.tv-rounds-grid{gap:8px}}

/* 3.0.1 – kompaktní 16:9 turnajová TV */
.tv-tournament-mode{overflow:hidden}
.tv-tournament-shell{height:100vh;min-height:100vh;padding:1vh 1vw .7vh;gap:.75vh;overflow:hidden}
.tv-tournament-header{height:6.8vh;min-height:58px;grid-template-columns:1fr 1.25fr .7fr}
.tv-tournament-header .tv-logo{width:2.8vw;height:2.8vw;min-width:44px;min-height:44px}
.tv-tournament-title strong{font-size:1.45vw}
.tv-tournament-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.65vw;height:7.4vh;min-height:64px}
.tv-tournament-metrics .tv-metric{min-width:0;border:1px solid var(--tv-line);background:linear-gradient(145deg,var(--tv-card),var(--tv-card2));border-radius:.85vw;box-shadow:var(--tv-shadow);display:flex;align-items:center;gap:.7vw;padding:.65vh .8vw}
.tv-tournament-metrics .tv-metric>span{width:2vw;height:2vw;min-width:34px;min-height:34px;border-radius:.62vw;background:var(--tv-blue-soft);display:grid;place-items:center;font-size:.9vw}
.tv-tournament-metrics .tv-metric small{display:block;color:var(--tv-muted);font-size:.62vw;font-weight:800;line-height:1.05}
.tv-tournament-metrics .tv-metric strong{display:block;font-size:1.35vw;line-height:1;margin-top:.18vh;white-space:nowrap}
.tv-tournament-progress{height:.48vh;min-height:4px;border-radius:999px;background:var(--tv-card2);overflow:hidden;margin:0 .1vw .15vh}
.tv-tournament-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--tv-blue),var(--tv-good))}

.tv-tournament-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(360px,.92fr);grid-template-rows:minmax(0,1.12fr) minmax(0,.88fr);gap:.7vw;flex:1;min-height:0;overflow:hidden}
.tv-tournament-grid .tv-card{padding:.9vh .85vw;border-radius:.9vw}
.tv-tournament-grid .tv-card-head{margin-bottom:.55vh;align-items:center}
.tv-tournament-grid .tv-card-head h2{font-size:1.08vw}
.tv-tournament-grid .tv-card-head p{font-size:.57vw;margin-top:.15vh}
.tv-tournament-grid .tv-pill,.tv-tournament-grid .refresh-label{font-size:.54vw;padding:.28vh .48vw}

.tv-current-tournament-match{grid-column:1 / 3;grid-row:1;display:flex;flex-direction:column}
.tv-tournament-ranking{grid-column:3;grid-row:1 / 3;display:flex;flex-direction:column}
.tv-tournament-queue{grid-column:1;grid-row:2;display:flex;flex-direction:column}
.tv-tournament-recent{grid-column:2;grid-row:2;display:flex;flex-direction:column}

.tv-versus-stage{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1vw;padding:.6vh .8vw .8vh}
.tv-versus-team{min-width:0;text-align:center;padding:1.2vh .85vw;border:1px solid var(--tv-line);border-radius:.9vw;background:rgba(255,255,255,.022)}
.tv-versus-team small{display:block;color:var(--tv-muted);font-size:.58vw;font-weight:900;letter-spacing:.08em;margin-bottom:.45vh}
.tv-versus-team strong{display:block;font-size:1.7vw;line-height:1.15;font-weight:950;letter-spacing:-.035em;overflow-wrap:anywhere}
.tv-versus-mark{font-size:1.25vw;font-weight:950;color:var(--tv-muted);padding:0 .15vw}
.tv-prepare-strip{min-height:5.6vh;border-top:1px solid var(--tv-line);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8vw;padding:.55vh .35vw 0}
.tv-prepare-strip span{color:var(--tv-blue);font-size:.64vw;font-weight:900;white-space:nowrap}
.tv-prepare-strip strong{font-size:.82vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.tv-prepare-strip strong em{font-style:normal;color:var(--tv-muted);font-size:.62vw;margin:0 .3vw}
.tv-prepare-strip small{color:var(--tv-muted);font-size:.58vw;white-space:nowrap}

.tv-tournament-ranking .tv-table-wrap{height:auto;flex:1;min-height:0;overflow:hidden}
.tv-tournament-ranking .tv-table th{font-size:.54vw;padding:.48vh .42vw}
.tv-tournament-ranking .tv-table td{font-size:.72vw;padding:.61vh .42vw}
.tv-tournament-ranking .tv-table-large .tv-player{font-size:.8vw}
.tv-tournament-ranking .tv-pos{width:2.2vw}

.tv-tournament-queue-list,.tv-tournament-result-list{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:.42vh}
.tv-tournament-queue-row{min-height:4.15vh;border:1px solid var(--tv-line);border-radius:.62vw;background:rgba(255,255,255,.018);display:grid;grid-template-columns:2vw minmax(0,1fr) auto;align-items:center;gap:.5vw;padding:.38vh .5vw}
.tv-queue-no{width:1.65vw;height:1.65vw;min-width:26px;min-height:26px;border-radius:.48vw;background:var(--tv-blue-soft);color:var(--tv-blue);display:grid;place-items:center;font-weight:950;font-size:.58vw}
.tv-tournament-queue-row strong{font-size:.68vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-tournament-queue-row strong em{font-style:normal;color:var(--tv-muted);font-size:.55vw;margin:0 .2vw}
.tv-tournament-queue-row small{font-size:.53vw;color:var(--tv-muted);white-space:nowrap}

.tv-tournament-result-row{min-height:4.15vh;border:1px solid var(--tv-line);border-radius:.62vw;background:rgba(255,255,255,.018);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6vw;padding:.38vh .55vw}
.tv-tournament-result-row>div:first-child{min-width:0}
.tv-tournament-result-row>div:first-child strong{display:block;font-size:.67vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-tournament-result-row>div:first-child span{display:block;color:var(--tv-muted);font-size:.53vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.08vh}
.tv-tournament-result-row>div:last-child{text-align:right}
.tv-tournament-result-row>div:last-child strong{display:block;font-size:.66vw}
.tv-tournament-result-row>div:last-child small{display:block;color:var(--tv-good);font-size:.52vw;margin-top:.08vh}

.tv-tournament-shell .tv-footer{height:2.25vh;min-height:19px;font-size:.52vw}

@media(max-width:1350px),(max-height:760px){
  .tv-tournament-shell{padding:7px 9px 5px;gap:6px}
  .tv-tournament-header{height:56px;min-height:56px}
  .tv-tournament-metrics{height:58px;min-height:58px;gap:6px}
  .tv-tournament-metrics .tv-metric{border-radius:10px;padding:6px 9px}
  .tv-tournament-metrics .tv-metric small{font-size:9px}.tv-tournament-metrics .tv-metric strong{font-size:17px}
  .tv-tournament-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(310px,.92fr);gap:6px}
  .tv-tournament-grid .tv-card{padding:8px 10px;border-radius:12px}
  .tv-tournament-grid .tv-card-head h2{font-size:15px}.tv-tournament-grid .tv-card-head p{font-size:8px}
  .tv-versus-team strong{font-size:22px}.tv-versus-team small{font-size:8px}.tv-versus-mark{font-size:17px}
  .tv-prepare-strip span{font-size:9px}.tv-prepare-strip strong{font-size:11px}.tv-prepare-strip small{font-size:8px}
  .tv-tournament-ranking .tv-table th{font-size:7px}.tv-tournament-ranking .tv-table td{font-size:10px}.tv-tournament-ranking .tv-table-large .tv-player{font-size:11px}
  .tv-tournament-queue-row strong,.tv-tournament-result-row>div:first-child strong{font-size:9px}
  .tv-tournament-queue-row small,.tv-tournament-result-row>div:first-child span,.tv-tournament-result-row>div:last-child small{font-size:7px}
  .tv-tournament-result-row>div:last-child strong{font-size:9px}
  .tv-tournament-shell .tv-footer{font-size:7px}
}


/* 3.0.3 – kompaktní 16:9 session TV bez ořezu spodních karet */
.tv-session-mode{overflow:hidden}
.tv-session-mode .tv-shell{height:100vh;min-height:100vh;padding:1vh 1.25vw .45vh;gap:.7vh;overflow:hidden}
.tv-session-mode .tv-header{height:6.4vh;min-height:54px;grid-template-columns:1fr 1.25fr .65fr;padding:0 .2vw}
.tv-session-mode .tv-logo{width:2.75vw;height:2.75vw;min-width:44px;min-height:44px;border-radius:.8vw;font-size:1.35vw}
.tv-session-mode .tv-brand strong{font-size:1.12vw}.tv-session-mode .tv-brand small,.tv-session-mode .tv-session-title small{font-size:.64vw}
.tv-session-mode .tv-session-title strong{font-size:1.2vw}.tv-session-mode .tv-clock{font-size:1.8vw}.tv-session-mode .tv-date{font-size:.7vw;margin-top:.25vh}

.tv-session-mode .tv-metrics{height:7.1vh;min-height:60px;gap:.65vw}
.tv-session-mode .tv-metric{border-radius:.85vw;gap:.7vw;padding:.65vh .8vw}
.tv-session-mode .tv-metric>span{width:2vw;height:2vw;min-width:34px;min-height:34px;border-radius:.62vw;font-size:.88vw}
.tv-session-mode .tv-metric small{font-size:.62vw;line-height:1.05}.tv-session-mode .tv-metric strong{font-size:1.4vw;margin-top:.12vh}.tv-session-mode .tv-metric .metric-text{font-size:1.02vw}

.tv-session-mode .tv-rounds-grid{gap:.65vw;min-height:0}
.tv-session-mode .tv-round-strip{min-height:3.65vh;padding:.48vh .8vw;border-radius:.8vw;gap:.65vw;box-shadow:none}
.tv-session-mode .tv-round-label{font-size:.76vw}.tv-session-mode .tv-round-strip strong{font-size:.9vw}.tv-session-mode .tv-round-strip small{font-size:.58vw}.tv-session-mode .tv-round-track{height:.42vh;min-height:4px}

.tv-session-mode .tv-grid{grid-template-columns:minmax(0,1.25fr) minmax(430px,.75fr);grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr);gap:.72vw;flex:1;min-height:0;overflow:hidden}
.tv-session-mode .tv-card{padding:.9vh .9vw;border-radius:.9vw;min-height:0;overflow:hidden}
.tv-session-mode .tv-card-head{margin-bottom:.55vh;min-height:0}
.tv-session-mode .tv-card-head h2{font-size:1.12vw}.tv-session-mode .tv-card-head p{font-size:.6vw;margin:.15vh 0 0}
.tv-session-mode .tv-pill,.tv-session-mode .refresh-label{font-size:.54vw;padding:.28vh .48vw}

.tv-session-mode .session-scoreboard,.tv-session-mode .ranks-card,.tv-session-mode .recent-card,.tv-session-mode .tv-next-card{display:flex;flex-direction:column;min-height:0}
.tv-session-mode .tv-table-wrap{height:auto;flex:1;min-height:0;overflow:hidden}
.tv-session-mode .tv-table th{font-size:.56vw;padding:.5vh .55vw}.tv-session-mode .tv-table td{font-size:.76vw;padding:.58vh .55vw}.tv-session-mode .tv-table-large .tv-player{font-size:.84vw}
.tv-session-mode .tv-form-dot{width:1.05vw;height:1.05vw;min-width:16px;min-height:16px;font-size:.44vw}

.tv-session-mode .dual-rank{height:auto;flex:1;min-height:0;gap:.6vw}
.tv-session-mode .rank-column{padding:.55vh .6vw;border-radius:.72vw;min-height:0}
.tv-session-mode .rank-column h3{font-size:.72vw;margin:0 0 .42vh}
.tv-session-mode .tv-rank-row{height:3.55vh;min-height:28px;font-size:.7vw}.tv-session-mode .rank-elo{font-size:.84vw}

.tv-session-mode .tv-match-list{height:auto;flex:1;min-height:0;overflow:hidden;align-content:start;grid-template-columns:1fr 1fr;gap:.45vh .55vw}
.tv-session-mode .tv-match-row{min-height:4.35vh;border-radius:.62vw;padding:.38vh .48vw;grid-template-columns:1.85vw 1fr auto;gap:.45vw}
.tv-session-mode .tv-match-main strong{font-size:.69vw}.tv-session-mode .tv-match-main span{font-size:.55vw}.tv-session-mode .tv-match-time{font-size:.68vw}.tv-session-mode .tv-match-time small{font-size:.47vw}.tv-session-mode .tv-mode{font-size:.49vw;padding:.22vh .22vw}

.tv-session-mode .tv-next-grid{height:auto;flex:1;min-height:0;gap:.55vw}
.tv-session-mode .tv-next-mode{padding:.55vh .6vw;border-radius:.68vw;justify-content:center;overflow:hidden}
.tv-session-mode .tv-next-title{margin-bottom:.4vh}.tv-session-mode .tv-next-title strong{font-size:.7vw}
.tv-session-mode .tv-next-teams{font-size:.78vw;line-height:1.25}.tv-session-mode .tv-next-teams span{font-size:.55vw}.tv-session-mode .tv-next-reason,.tv-session-mode .tv-next-after{font-size:.51vw}.tv-session-mode .tv-next-after{margin-top:.5vh;padding-top:.42vh}

.tv-session-mode .tv-footer{height:1.9vh;min-height:17px;font-size:.52vw;padding:0 .15vw}

@media(max-width:1350px),(max-height:760px){
  .tv-session-mode .tv-shell{padding:6px 8px 4px;gap:5px}
  .tv-session-mode .tv-header{height:50px;min-height:50px}
  .tv-session-mode .tv-metrics{height:54px;min-height:54px;gap:5px}
  .tv-session-mode .tv-round-strip{min-height:29px;padding:4px 7px}
  .tv-session-mode .tv-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:6px}
  .tv-session-mode .tv-card{padding:7px 8px;border-radius:11px}
  .tv-session-mode .tv-card-head{margin-bottom:4px}
  .tv-session-mode .tv-card-head h2{font-size:14px}.tv-session-mode .tv-card-head p{font-size:8px}
  .tv-session-mode .tv-table th{font-size:7px;padding:4px 5px}.tv-session-mode .tv-table td{font-size:10px;padding:4px 5px}.tv-session-mode .tv-table-large .tv-player{font-size:11px}
  .tv-session-mode .tv-rank-row{height:27px;min-height:27px;font-size:9px}.tv-session-mode .rank-elo{font-size:10px}
  .tv-session-mode .tv-match-row{min-height:34px}.tv-session-mode .tv-match-main strong{font-size:9px}.tv-session-mode .tv-match-main span{font-size:7px}.tv-session-mode .tv-match-time{font-size:9px}.tv-session-mode .tv-match-time small{font-size:7px}
  .tv-session-mode .tv-next-title strong{font-size:9px}.tv-session-mode .tv-next-teams{font-size:10px}.tv-session-mode .tv-next-reason,.tv-session-mode .tv-next-after{font-size:7px}
  .tv-session-mode .tv-footer{height:16px;min-height:16px;font-size:7px}
}

/* 7.2 – Pingpong Live kurt. Čerstvá fronta se polluje z runtime JSON bez DB. */
.tv-live-court{height:8.4vh;min-height:68px;border:1px solid var(--tv-line);border-radius:1vw;background:linear-gradient(135deg,rgba(32,111,219,.13),rgba(255,255,255,.025));display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,1.5fr) minmax(220px,.8fr);align-items:center;gap:.9vw;padding:.65vh .85vw;overflow:hidden}
.tv-live-court.is-playing{border-color:rgba(57,208,115,.42);background:linear-gradient(135deg,rgba(37,174,96,.15),rgba(255,255,255,.025));box-shadow:inset 0 0 0 1px rgba(57,208,115,.06)}
.tv-live-status{display:flex;align-items:center;gap:.65vw;min-width:0}.tv-live-status .live-dot{width:.62vw;height:.62vw;min-width:9px;min-height:9px}.tv-live-status small,.tv-live-status strong{display:block}.tv-live-status small{font-size:.58vw;font-weight:950;letter-spacing:.11em;color:var(--tv-good)}.tv-live-court.is-ready .tv-live-status small{color:var(--tv-blue)}.tv-live-status strong{font-size:1.05vw;margin-top:.1vh}
.tv-live-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.65vw;text-align:center;min-width:0}.tv-live-match strong{font-size:1.52vw;line-height:1.05;font-weight:950;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-live-match span{font-size:.78vw;color:var(--tv-muted);font-weight:950}
.tv-live-prep{min-width:0;border-left:1px solid var(--tv-line);padding-left:.85vw}.tv-live-prep small,.tv-live-prep strong,.tv-live-prep span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-live-prep small{font-size:.54vw;font-weight:900;color:var(--tv-blue);letter-spacing:.08em}.tv-live-prep strong{font-size:.72vw;margin-top:.18vh}.tv-live-prep strong em{font-style:normal;color:var(--tv-muted);font-size:.55vw;margin:0 .2vw}.tv-live-prep span{font-size:.52vw;color:var(--tv-good);margin-top:.2vh}
.tv-live-queue-list{display:flex;flex-direction:column;gap:.42vh;min-height:0;overflow:hidden}.tv-live-queue-row{min-height:3.5vh;border:1px solid var(--tv-line);border-radius:.62vw;background:rgba(255,255,255,.018);display:grid;grid-template-columns:1.8vw minmax(0,1fr) auto;align-items:center;gap:.5vw;padding:.3vh .48vw}.tv-live-queue-row>span{width:1.55vw;height:1.55vw;min-width:24px;min-height:24px;border-radius:.45vw;background:rgba(255,255,255,.06);display:grid;place-items:center;font-size:.52vw;font-weight:950;color:var(--tv-muted)}.tv-live-queue-row strong{font-size:.66vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-live-queue-row strong em{font-style:normal;color:var(--tv-muted);font-size:.52vw;margin:0 .2vw}.tv-live-queue-row small{font-size:.52vw;color:var(--tv-muted)}.tv-live-queue-row.current{border-color:rgba(57,208,115,.36);background:rgba(57,208,115,.075)}.tv-live-queue-row.current>span{background:rgba(57,208,115,.15);color:var(--tv-good)}.tv-live-queue-row.prepare{border-color:rgba(67,143,255,.3)}.tv-live-queue-row.prepare>span{background:rgba(67,143,255,.14);color:var(--tv-blue)}

@media(max-width:1350px),(max-height:760px){
  .tv-live-court{height:60px;min-height:60px;border-radius:11px;padding:5px 8px;gap:7px;grid-template-columns:minmax(130px,.55fr) minmax(0,1.45fr) minmax(190px,.8fr)}.tv-live-status small{font-size:8px}.tv-live-status strong{font-size:14px}.tv-live-match strong{font-size:20px}.tv-live-match span{font-size:10px}.tv-live-prep small{font-size:7px}.tv-live-prep strong{font-size:9px}.tv-live-prep span{font-size:7px}.tv-live-queue-row{min-height:27px}.tv-live-queue-row strong{font-size:9px}.tv-live-queue-row small{font-size:7px}
}


/* 7.9.45 – jednotné SVG ikonky také v TV režimu */
.tv-logo .sport-icon{width:56%;height:56%;color:#fff;filter:none!important}
.tv-metric>span .sport-icon{width:52%;height:52%;color:currentColor;filter:none!important}
.tv-metric>span .sport-icon-asset{filter:grayscale(1) brightness(1.35)!important;opacity:1}
.tv-icon-title{display:grid;place-items:center;color:var(--tv-blue)}
.tv-icon-title .sport-icon{width:1.55vw;height:1.55vw;min-width:22px;min-height:22px}
.tv-icon-heading{display:flex;align-items:center;gap:.45vw}.tv-icon-heading .sport-icon{width:1.05em;height:1.05em;color:var(--tv-blue)}
.tv-empty>span{display:grid;place-items:center}.tv-empty>span .sport-icon{width:2.3vw;height:2.3vw;min-width:30px;min-height:30px;color:var(--tv-blue)}
.tv-round-label{display:flex;align-items:center;gap:.35vw}.tv-round-label .sport-icon{width:1em;height:1em;color:var(--tv-blue)}
.tv-footer a{display:inline-flex;align-items:center;gap:.25vw}.tv-footer a .sport-icon{width:1em;height:1em}
.tv-pos{font-variant-numeric:tabular-nums}
@media(max-width:1200px),(max-height:720px){.tv-icon-title .sport-icon{width:22px;height:22px}.tv-empty>span .sport-icon{width:30px;height:30px}}
