/* Tournament Scoreboard Viewer 25.0.0-dev.15.5.5.0
   Public Viewer Experience / Resilience Pack.
   Loaded after polish.css; these rules own Viewer-only layout stability in Classic. */

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;left:12px;top:10px;z-index:9999;transform:translateY(-160%);padding:10px 14px;border-radius:10px;background:#111827;color:#fff;font-size:12px;font-weight:900;text-decoration:none;transition:transform .15s ease}.skip-link:focus{transform:translateY(0)}
.connection.hidden{display:none!important}.connection.warn span{background:#fdb022}.connection b{font:inherit}.refresh-note:empty{display:none}
.empty{display:grid;gap:4px}.empty strong{color:#344054;font-size:12px}.empty span{font-weight:650}
.deferred-section{content-visibility:auto;contain-intrinsic-size:520px}

/* Loading / resilience */
.skeleton-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.skeleton-card,.skeleton-table{overflow:hidden;border:1px solid #eaecf0;border-radius:14px;background:#fff;padding:14px}.skeleton-card{min-height:120px}.skeleton-card i,.skeleton-table i{display:block;height:13px;margin:0 0 11px;border-radius:7px;background:linear-gradient(90deg,#f1f3f6 20%,#fafbfc 42%,#f1f3f6 64%);background-size:280% 100%;animation:viewerSkeleton 1.35s ease infinite}.skeleton-card i:first-child{width:38%}.skeleton-card i:nth-child(2){width:76%;height:28px}.skeleton-card i:last-child{width:58%;margin-bottom:0}.skeleton-table i{height:34px}.skeleton-table i:last-child{margin-bottom:0}@keyframes viewerSkeleton{0%{background-position:100% 0}100%{background-position:0 0}}
.viewer-error-state{display:grid;justify-items:center;gap:7px;padding:30px 18px;border:1px dashed #d0d5dd;border-radius:15px;background:#fcfcfd;text-align:center}.viewer-error-state strong{font-size:15px}.viewer-error-state span{max-width:560px;color:#667085;font-size:11px;font-weight:700}.viewer-error-state button{margin-top:5px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;padding:9px 13px;color:#344054;font-size:10px;font-weight:900;cursor:pointer}

/* LIVE / special matches: labels exist once and team colors stay accents only. */
.special-tag{display:inline-flex;align-items:center;min-height:19px;margin-right:5px;padding:2px 6px;border-radius:999px;font-size:7.5px;font-weight:950;letter-spacing:.06em;white-space:nowrap;vertical-align:middle}.special-tag.show{background:#f4ebff;color:#7f56d9}.special-tag.final{background:#fff6cf;color:#8a6500}.match-card.final-match{border-color:#ead88d}.match-card .team-name span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;min-height:2.4em}.score{min-width:72px;font-variant-numeric:tabular-nums lining-nums}.match-card,.cf-live-card{contain:layout paint}

/* Match of the day: only future special matches. */
.spotlight-card{min-height:142px}.spotlight-card.final{border-width:2px;box-shadow:0 12px 32px rgba(153,111,0,.10)}.spotlight-card.show{box-shadow:0 12px 32px rgba(127,86,217,.08)}.spotlight-card.bronze{background:linear-gradient(145deg,#fff,#fff8f2);border-color:#e8c7aa}.spotlight-vs>strong{display:flex;align-items:center;gap:8px;min-height:42px}.spotlight-vs>strong:last-child{justify-content:flex-end;text-align:right}.spotlight-color{width:4px;height:27px;flex:0 0 4px;border-radius:999px;background:var(--team-color)}.spotlight-score b{font-size:18px;letter-spacing:.08em;color:#98a2b3}.spotlight-card.final .spotlight-score b{color:#9a6700}

/* Далее: fixed internal geometry prevents venue/stage drift. */
.next-strip{align-items:stretch}.next-item{grid-template-rows:auto minmax(2.6em,auto) auto minmax(1.35em,auto);align-content:start;min-height:118px!important;padding:11px 12px 11px 15px!important}.next-head{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:21px}.next-time{font-variant-numeric:tabular-nums}.next-special{display:inline-flex;padding:2px 5px;border-radius:999px;background:#f4ebff;color:#7f56d9;font-size:7px;font-weight:950;white-space:nowrap}.next-special.final{background:#fff6cf;color:#8a6500}.next-item>strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;min-height:2.4em;font-size:11px;line-height:1.2}.next-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;color:#667085;font-size:8.5px;font-weight:800}.next-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.next-item>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#98a2b3}

/* Competition progress */
.competition-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.progress-card{display:grid;gap:11px;min-height:132px;padding:14px;border:1px solid #e6eaf0;border-radius:15px;background:#fff}.progress-card-head{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px}.progress-card-head .sport-icon{width:30px;height:30px}.progress-card-head strong{font-size:12px}.progress-card-head b{color:#667085;font-size:10px;font-variant-numeric:tabular-nums}.progress-track{height:7px;border-radius:999px;background:#eef2f6;overflow:hidden}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#ef6a6a);transition:width .35s ease}.progress-phases{display:flex;flex-wrap:wrap;gap:6px}.phase{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;background:#f5f7fa;color:#667085;font-size:8.5px;font-weight:850;white-space:nowrap}.phase i{width:6px;height:6px;border-radius:50%;background:#c5ccd6}.phase.done{background:#ecfdf3;color:#067647}.phase.done i{background:#12b76a}.phase.live{background:#fff2f1;color:#b42318}.phase.live i{background:#d92d20;box-shadow:0 0 0 3px rgba(217,45,32,.10)}.progress-note{color:#667085;font-size:9.5px;font-weight:750}

/* Public schedule */
.schedule-head{align-items:center}.schedule-filter{display:flex;gap:4px;overflow-x:auto}.schedule-filter button{flex:0 0 auto;border:1px solid #e4e7ec;border-radius:9px;background:#fff;padding:7px 9px;color:#667085;font-size:9px;font-weight:900;cursor:pointer;white-space:nowrap}.schedule-filter button.active{border-color:#1d2939;background:#1d2939;color:#fff}.schedule-list{display:grid;border:1px solid #e6eaf0;border-radius:14px;overflow:hidden}.schedule-row{display:grid;grid-template-columns:64px minmax(0,1fr) 130px;align-items:center;gap:12px;min-height:72px;padding:10px 12px;border-bottom:1px solid #edf0f4;background:#fff}.schedule-row:last-child{border-bottom:0}.schedule-row.live{background:linear-gradient(90deg,#fff7f6,#fff 18%)}.schedule-row.finished{background:#fcfcfd}.schedule-row.cancelled{opacity:.72}.schedule-row>time{font-size:12px;font-weight:950;font-variant-numeric:tabular-nums;color:#344054}.schedule-time-spacer{display:block;width:100%;height:1px;pointer-events:none}.schedule-main{display:grid;gap:5px}.schedule-title{display:flex;align-items:center;gap:7px;min-width:0}.schedule-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px}.schedule-special{flex:0 0 auto;padding:2px 6px;border-radius:999px;font-size:7px;font-weight:950;white-space:nowrap}.schedule-special.show{background:#f4ebff;color:#7f56d9}.schedule-special.final{background:#fff6cf;color:#8a6500}.schedule-meta{display:flex;align-items:center;gap:8px;min-width:0;color:#7b8797;font-size:8.5px;font-weight:750}.schedule-meta span{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-meta svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8}.schedule-state{justify-self:end;padding:5px 8px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:8px;font-weight:900;white-space:nowrap}.schedule-state.live{background:#fef3f2;color:#b42318}.schedule-state.finished{background:#ecfdf3;color:#067647}.schedule-state.cancelled{background:#f2f4f7;color:#667085}.schedule-state.upcoming{background:#eff8ff;color:#175cd3}

/* Standings: exact same data/columns, better public readability only. */
.tournament-group-card{overflow:visible}.tournament-matrix-wrap{position:relative;border-radius:0 0 15px 15px;scrollbar-gutter:stable;outline:none}.tournament-matrix thead th{position:sticky;top:0;z-index:3}.tournament-matrix th:nth-child(1),.tournament-matrix td:nth-child(1){position:sticky;left:0;z-index:2;background:inherit}.tournament-matrix th:nth-child(2),.tournament-matrix .matrix-team{position:sticky;left:34px;z-index:2;background:inherit;box-shadow:8px 0 12px -12px rgba(15,23,42,.35)}.tournament-matrix thead th:nth-child(1),.tournament-matrix thead th:nth-child(2){z-index:5;background:#f7f9fc}.tournament-matrix tbody tr{transition:background-color .25s ease}.tournament-matrix tbody tr:hover{background:#f8fbff}.tournament-matrix tbody tr.qualify{background:#f2fbf5}.tournament-matrix tbody tr.fifth{background:#faf7ff}.tournament-matrix .matrix-team{white-space:nowrap}.tournament-team{max-width:170px}.tournament-team{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-matrix-wrap:focus-visible{outline:3px solid rgba(23,92,211,.16);outline-offset:2px}.rank-shift{animation:rankShift .72s ease}@keyframes rankShift{0%{background:#fff2b8}100%{background:inherit}}

/* Playoff is a focal public object. */
.viewer-single-bracket{padding-top:12px}.viewer-bracket-slot.final .viewer-bracket-heading strong{color:#8a6500;font-size:10px}.viewer-bracket-slot.final .bracket-match{border:2px solid #e6c96a;background:linear-gradient(145deg,#fffef7,#fff9df);box-shadow:0 12px 26px rgba(154,103,0,.09)}.bracket-match.live{box-shadow:0 0 0 3px rgba(217,45,32,.07),0 10px 24px rgba(15,23,42,.06)}.bracket-team{min-width:0}.bracket-team span{min-width:0;overflow:hidden}.bracket-team i{width:4px!important;border-radius:999px}.bracket-team strong{font-variant-numeric:tabular-nums lining-nums}.advance-winner{background:#f1fbf5!important}.viewer-bracket-heading{text-transform:none;letter-spacing:.04em}.viewer-bracket-status{text-transform:none;letter-spacing:0}.viewer-double-round{min-height:160px}

/* Teams / search / My team */
.team-section-head{align-items:center}.team-search-label{display:grid;gap:4px;min-width:min(320px,46%)}.team-search-label span{color:#98a2b3;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.team-search-label input{width:100%;min-height:40px;border:1px solid #dfe4eb;border-radius:11px;background:#fff;padding:8px 11px;color:#1d2939;font:inherit;font-size:11px;font-weight:750;outline:none}.team-search-label input:focus{border-color:#84adff;box-shadow:0 0 0 3px rgba(23,92,211,.10)}.team-search-status{min-height:18px;margin:6px 0;color:#98a2b3;font-size:9px;font-weight:750}.teams-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.team-card{position:relative;overflow:hidden;display:grid;gap:10px;padding:14px;border:1px solid #e5e9ef;border-radius:15px;background:#fff}.team-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--team-accent)}.team-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.team-card-head>div{display:flex;align-items:center;gap:8px;min-width:0}.team-card-head>div>i{width:10px;height:10px;flex:0 0 10px;border-radius:3px;background:var(--team-accent)}.team-card-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.favorite-button{width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;border:1px solid #e4e7ec;border-radius:10px;background:#fff;color:#98a2b3;font-size:20px;cursor:pointer}.favorite-button.active{background:#fff9dc;border-color:#ead88d;color:#b98900}.team-sports{display:flex;flex-wrap:wrap;gap:5px}.team-sports span{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border-radius:8px;background:#f5f7fa;color:#667085;font-size:8px;font-weight:850}.team-sports svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8}.team-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.team-quick-grid>div{display:grid;align-content:start;gap:3px;min-height:66px;padding:9px;border-radius:10px;background:#f8fafc}.team-quick-grid span{color:#98a2b3;font-size:7.5px;font-weight:900;text-transform:uppercase}.team-quick-grid strong{font-size:10px;line-height:1.25}.team-quick-grid small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#667085;font-size:8px}.team-details>summary,.team-discipline>summary{cursor:pointer;list-style:none}.team-details>summary::-webkit-details-marker,.team-discipline>summary::-webkit-details-marker{display:none}.team-details>summary{display:inline-flex;padding:6px 0;color:#175cd3;font-size:9px;font-weight:900}.team-discipline{border-top:1px solid #eef1f4}.team-discipline>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;color:#475467;font-size:9px;font-weight:850}.team-discipline>summary span{display:flex;align-items:center;gap:5px}.team-discipline>summary svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8}.team-discipline>summary b{color:#98a2b3;font-size:8px}.roster-list{display:grid;padding-bottom:6px}.roster-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:7px;align-items:center;min-height:34px;border-top:1px solid #f1f3f5;font-size:9px}.roster-row strong{color:#667085;font-variant-numeric:tabular-nums}.roster-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.roster-row small{color:#98a2b3}.favorite-team-block{display:grid;gap:8px;margin-bottom:14px;padding:12px;border:1px solid #ead88d;border-radius:16px;background:linear-gradient(145deg,#fffdf4,#fff)}.favorite-team-title{display:flex;justify-content:space-between;gap:8px;align-items:center}.favorite-team-title span{color:#8a6500;font-size:10px;font-weight:950}.favorite-team-title small{color:#98a2b3;font-size:8px}.favorite-summary{border:0;background:transparent;padding:4px 4px 4px 10px}.favorite-summary:before{width:3px}

/* Winners */
.winners-section{background:linear-gradient(145deg,#fff,#fffdf7)}.podium-place b{margin-top:4px;color:#98a2b3;font-size:7.5px;text-transform:uppercase;letter-spacing:.06em}.podium-place>span{font-size:28px}.podium-place.first{border-width:2px;box-shadow:0 10px 24px rgba(154,103,0,.08)}

/* Stable public geometry / soft live updates */
.score-pop .score{animation:scorePop .58s ease}@keyframes scorePop{0%{transform:scale(1);background:transparent}35%{transform:scale(1.09);color:var(--live)}100%{transform:scale(1);background:transparent}}.score{display:inline-block;transition:transform .18s ease,color .18s ease}.match-card,.spotlight-card,.next-item,.schedule-row,.team-card,.bracket-match{overflow-wrap:anywhere}.match-card .team,.spotlight-vs>strong{min-width:0}.viewer-bracket-slot,.bracket-match,.bracket-team{min-width:0}

/* Dark / alternate theme parity for new public components. */

@media(max-width:1040px){.competition-progress{grid-template-columns:1fr 1fr}.teams-grid{grid-template-columns:1fr}.schedule-row{grid-template-columns:58px minmax(0,1fr) 120px}}
@media(max-width:760px){
  .skeleton-grid{grid-template-columns:1fr}.competition-progress{grid-template-columns:1fr}.progress-card{min-height:118px}.schedule-head,.team-section-head{align-items:stretch;flex-direction:column}.schedule-filter{width:100%;padding-bottom:2px}.schedule-filter button{min-height:40px}.team-search-label{width:100%;max-width:none;min-width:0}.team-search-label input{min-height:44px}.schedule-row{grid-template-columns:54px minmax(0,1fr);gap:9px;padding:10px}.schedule-state{grid-column:2;justify-self:start}.schedule-meta{flex-wrap:wrap;gap:5px 8px}.schedule-title strong{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.next-item{flex:0 0 min(78vw,250px)!important}.tournament-matrix-wrap:before{content:"Проведите по таблице для просмотра →";position:sticky;left:8px;display:inline-block;margin:8px;padding:4px 7px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:7.5px;font-weight:850;z-index:7}.tournament-matrix{min-width:600px}.tournament-matrix.volleyball{min-width:680px}.team-quick-grid{grid-template-columns:1fr}.favorite-team-title{align-items:flex-start;flex-direction:column}.roster-row{grid-template-columns:40px minmax(0,1fr)}.roster-row small{grid-column:2}}
@media(max-width:430px){.next-item{flex-basis:min(84vw,240px)!important}.spotlight-card{padding:13px!important}.spotlight-vs{grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr)!important}.schedule-row{grid-template-columns:48px minmax(0,1fr)}.schedule-meta span:nth-child(3){flex-basis:100%}.team-card{padding:12px}.progress-phases{gap:4px}.phase{padding:4px 6px}}
@media(prefers-reduced-motion:reduce){.skeleton-card i,.skeleton-table i,.rank-shift,.score-pop .score{animation:none!important}.progress-track i{transition:none!important}}

/* Viewer 5.5.1 hotfix: LIVE geometry, schedule integrity, groups and bracket polish */
.live-grid{align-items:start}
.match-card .team-name{min-height:2.4em;align-items:center}
.match-card .team-name span{min-height:0!important;align-self:center}
.viewer-live-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;min-height:23px;padding:4px 9px;border:1px solid #fecdca;border-radius:999px;background:#fef3f2;color:#b42318;font-size:8px;font-weight:950;letter-spacing:.055em;white-space:nowrap}
.viewer-live-badge>i{width:6px;height:6px;border-radius:50%;background:#d92d20;box-shadow:0 0 0 0 rgba(217,45,32,.22);animation:viewerLivePulse 1.45s ease-out infinite}
@keyframes viewerLivePulse{0%{box-shadow:0 0 0 0 rgba(217,45,32,.22)}55%{box-shadow:0 0 0 6px rgba(217,45,32,0)}100%{box-shadow:0 0 0 0 rgba(217,45,32,0)}}
.cf-live-head .viewer-live-badge,.match-top .viewer-live-badge{align-self:center}
.event-feed{display:grid!important;grid-template-columns:1fr!important;gap:6px;margin-top:10px;padding-top:9px}
.event-preview,.event-history-list{display:grid;gap:5px}
.event-row{display:grid!important;grid-template-columns:minmax(92px,auto) minmax(0,1fr);align-items:start;gap:8px!important;padding:5px 7px;border-radius:8px;background:#f8fafc;line-height:1.3}
.event-row strong{white-space:nowrap}
.event-row span{min-width:0;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.event-history{border-top:1px dashed #e4e7ec;padding-top:5px}
.event-history>summary{display:inline-flex;align-items:center;min-height:28px;cursor:pointer;color:#475467;font-size:8.5px;font-weight:900;list-style:none;user-select:none}
.event-history>summary::-webkit-details-marker{display:none}
.event-history>summary:after{content:'↓';margin-left:6px;color:#98a2b3;transition:transform .18s ease}
.event-history[open]>summary:after{transform:rotate(180deg)}
.event-history-list{padding-top:4px}

.next-item{grid-template-rows:auto minmax(2.6em,auto) auto auto!important;gap:6px!important}
.next-time-row{display:flex;align-items:center;min-height:20px}
.next-time{font-size:11px!important}
.next-teams{min-height:2.4em}
.next-stage{display:flex;align-items:center;gap:5px;min-height:19px;color:#475467;font-size:8.5px;font-weight:850;min-width:0}
.next-stage>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.next-meta{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;padding-top:1px;color:#7b8797}
.next-meta span:last-child{text-align:right}

.schedule-row{grid-template-columns:64px minmax(0,1fr) 168px}
.schedule-result{display:grid;justify-items:end;gap:5px;min-width:0}
.schedule-result>strong{max-width:100%;color:#344054;font-size:9.5px;font-weight:950;font-variant-numeric:tabular-nums;text-align:right;white-space:normal}
.schedule-result .schedule-state{justify-self:end}

/* Groups must fit in the visible card without horizontal scrolling. */
.tournament-group-card{overflow:hidden!important;border-radius:16px!important}
.tournament-matrix-wrap{overflow:hidden!important;border-radius:0 0 15px 15px!important;scrollbar-gutter:auto!important}
.tournament-matrix-wrap:before{content:none!important;display:none!important}
.tournament-matrix{width:100%!important;min-width:0!important;table-layout:fixed!important}
.tournament-matrix.volleyball{min-width:0!important}
.tournament-matrix th,.tournament-matrix td{padding:7px 4px!important;font-size:9.5px!important;overflow:hidden;text-overflow:ellipsis}
.tournament-matrix th{font-size:8px!important}
.tournament-matrix th:nth-child(1),.tournament-matrix td:nth-child(1){position:static!important;width:5.5%!important;min-width:0!important}
.tournament-matrix th:nth-child(2),.tournament-matrix .matrix-team{position:static!important;width:24%!important;min-width:0!important;box-shadow:none!important}
.tournament-matrix .matrix-opponent{width:auto!important;min-width:0!important;max-width:none!important;padding-left:2px!important;padding-right:2px!important}
.tournament-matrix .matrix-total-head,.tournament-matrix .matrix-total{width:11%!important;min-width:0!important}
.tournament-matrix .matrix-points-head,.tournament-matrix .matrix-points{width:8.5%!important;min-width:0!important}
.tournament-team{max-width:100%!important;gap:4px!important}
.tournament-team i{width:3px!important;flex-basis:3px!important}
.matrix-score{font-size:9px!important;white-space:nowrap}
.matrix-total strong,.matrix-points strong{font-size:9px}
.matrix-total small{display:block;font-size:7px}

/* Keep playoff connector lines inside the connector column and away from Final card. */
.viewer-bracket-main{position:relative}
.viewer-bracket-connectors{overflow:hidden;z-index:0}
.viewer-bracket-connectors .top,.viewer-bracket-connectors .bot{left:0!important;width:32px!important}
.viewer-bracket-connectors .vert{left:32px!important}
.viewer-bracket-connectors .mid{left:32px!important;width:calc(var(--viewer-bracket-gap) - 48px)!important;max-width:calc(100% - 40px)!important}
.viewer-bracket-slot{position:relative;z-index:1}
.viewer-bracket-slot.final{z-index:2}


@media(max-width:760px){
  .match-card .team-name{min-height:2.35em}
  .event-row{grid-template-columns:82px minmax(0,1fr);font-size:8.5px!important}
  .next-item{flex:0 0 min(78vw,250px)!important}
  .schedule-row{grid-template-columns:54px minmax(0,1fr)!important;gap:9px}
  .schedule-result{grid-column:2;justify-items:start}
  .schedule-result>strong{text-align:left}
  .schedule-result .schedule-state{justify-self:start}
  .tournament-group-title{gap:7px}
  .tournament-group-title span{font-size:8px}
  .tournament-matrix th,.tournament-matrix td{padding:6px 2px!important;font-size:8px!important}
  .tournament-matrix th{font-size:7px!important;letter-spacing:0!important}
  .tournament-matrix th:nth-child(1),.tournament-matrix td:nth-child(1){width:6%!important}
  .tournament-matrix th:nth-child(2),.tournament-matrix .matrix-team{width:25%!important}
  .tournament-matrix .matrix-total-head,.tournament-matrix .matrix-total{width:10.5%!important}
  .tournament-matrix .matrix-points-head,.tournament-matrix .matrix-points{width:8%!important}
  .tournament-team{font-size:8px!important;gap:3px!important}
  .tournament-team i{height:13px!important}
  .matrix-score{font-size:7.5px!important}
  .matrix-total strong,.matrix-points strong{font-size:8px!important}
  .matrix-total small{font-size:6.5px!important}
}
@media(max-width:430px){
  .tournament-matrix th,.tournament-matrix td{padding:5px 1px!important;font-size:7.3px!important}
  .tournament-matrix th{font-size:6.5px!important}
  .tournament-matrix th:nth-child(2),.tournament-matrix .matrix-team{width:26%!important}
  .tournament-team{font-size:7.4px!important}
  .matrix-score{font-size:7px!important}
}
@media(prefers-reduced-motion:reduce){.viewer-live-badge>i{animation:none!important}}


/* Viewer 5.5.2 hotfix: schedule score is part of the matchup line, never a detached right-side value. */
.schedule-title{min-width:0}
.schedule-title>strong{font-variant-numeric:tabular-nums}
.schedule-inline-detail{display:block;margin-top:4px;color:#667085;font-size:8.5px;font-weight:800;line-height:1.25;font-variant-numeric:tabular-nums}
.schedule-result{display:flex!important;align-items:center;justify-content:flex-end;min-width:0}
.schedule-result>strong{display:none!important}
@media(max-width:700px){.schedule-inline-detail{font-size:8px}.schedule-result{justify-content:flex-start}}


/* Viewer 5.5.3 — mobile navigation, optional layout switch and compact playoff */
.layout-switch[hidden]{display:none!important}
.viewer-bracket-status{line-height:1.15}
.viewer-single-bracket{--viewer-bracket-card:232px!important;--viewer-bracket-gap:40px!important;max-width:504px!important;gap:10px!important;padding:2px 0!important}
.viewer-bracket-main{grid-template-columns:var(--viewer-bracket-card) var(--viewer-bracket-gap) var(--viewer-bracket-card)!important;grid-template-rows:auto 20px auto!important}
.viewer-bracket-slot{gap:3px!important}.viewer-bracket-heading{min-height:13px!important;font-size:7.5px!important}.viewer-bracket-heading span{font-size:7px!important}
.viewer-single-bracket .bracket-match,.viewer-single-bracket .bracket-match.has-penalties{min-height:86px!important;padding:6px!important;gap:3px!important;border-radius:10px!important}
.viewer-single-bracket .bracket-team{height:27px!important;min-height:27px!important;max-height:27px!important;padding:4px 6px!important;font-size:8.5px!important;gap:5px!important}
.viewer-single-bracket .bracket-team strong{font-size:10px!important}.viewer-single-bracket .bracket-team span{line-height:1.15!important;-webkit-line-clamp:1!important;line-clamp:1!important;white-space:nowrap!important;text-overflow:ellipsis!important}
.viewer-single-bracket .bracket-note.playoff-detail{padding:3px 5px!important;font-size:7.5px!important;line-height:1.2!important;max-height:30px!important;overflow:hidden!important}
.viewer-single-bracket .viewer-bracket-status{font-size:7px!important;padding:2px 5px!important}
.viewer-bracket-connectors{min-height:222px!important}.viewer-bracket-connectors .top{top:51px!important}.viewer-bracket-connectors .bot{bottom:51px!important}.viewer-bracket-connectors .vert{top:51px!important;bottom:51px!important}.viewer-bracket-connectors .mid{left:28px!important;width:calc(var(--viewer-bracket-gap) - 30px)!important}.viewer-bracket-connectors .top,.viewer-bracket-connectors .bot{width:28px!important}.viewer-bracket-connectors .vert{left:28px!important}
.viewer-bracket-placement{grid-template-columns:var(--viewer-bracket-card) var(--viewer-bracket-gap) var(--viewer-bracket-card)!important;padding-top:9px!important}
.viewer-double-bracket{grid-auto-columns:minmax(190px,220px)!important;gap:8px!important}.viewer-double-round{gap:5px!important;padding:6px!important}.viewer-double-round .round-title{font-size:8px!important}
@media(max-width:1040px){
  .viewer-layout{display:block!important;margin-top:10px!important}
  .viewer-side-nav{position:relative!important;top:auto!important;z-index:8!important;display:flex!important;gap:5px!important;width:100%!important;max-width:100%!important;margin:0 0 9px!important;padding:6px!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;border-radius:13px!important;scrollbar-width:none!important;overscroll-behavior-x:contain!important;-webkit-overflow-scrolling:touch!important}
  .viewer-side-nav::-webkit-scrollbar{display:none!important}.viewer-side-nav .side-nav-title{display:none!important}.viewer-side-nav button{flex:0 0 auto!important;min-height:36px!important;padding:8px 10px!important;white-space:nowrap!important;text-align:center!important}
  .viewer-toolbar{top:4px!important;z-index:25!important;max-width:100%!important}
}
@media(max-width:760px){
  .viewer-toolbar{display:flex!important;align-items:stretch!important;flex-wrap:wrap!important;gap:6px!important;padding:6px!important}.sport-nav{flex:1 1 100%!important;max-width:100%!important;scrollbar-width:none!important}.sport-nav::-webkit-scrollbar{display:none!important}
  .layout-switch:not([hidden]){order:2;width:100%!important;justify-content:flex-end!important;padding-top:5px!important;border-top:1px solid #edf0f4!important}.layout-switch:not([hidden])>span{display:block!important}
  .viewer-single-bracket{display:grid!important;width:100%!important;max-width:100%!important;gap:9px!important;overflow:visible!important}
  .viewer-bracket-main,.viewer-bracket-placement{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto!important;gap:7px!important;width:100%!important;max-width:100%!important}
  .viewer-bracket-main>.top,.viewer-bracket-main>.bottom,.viewer-bracket-main>.final,.viewer-bracket-placement>.fifth,.viewer-bracket-placement>.third{grid-column:1!important;grid-row:auto!important;width:100%!important;align-self:auto!important}
  .viewer-bracket-connectors,.viewer-placement-spacer{display:none!important}.viewer-bracket-slot{width:100%!important;max-width:100%!important}.viewer-bracket-heading{justify-content:flex-start!important;padding-left:2px!important}
  .viewer-single-bracket .bracket-match,.viewer-single-bracket .bracket-match.has-penalties{width:100%!important;min-height:78px!important}.viewer-bracket-placement{margin-top:3px!important;padding-top:8px!important}
  .viewer-double-bracket{display:grid!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;grid-template-columns:1fr!important;overflow:visible!important;width:100%!important}.viewer-double-round{min-width:0!important;width:100%!important}
  #playoffContent,.sport-block{max-width:100%!important;overflow:hidden!important}
}
@media(max-width:420px){
  .viewer-side-nav button{min-height:34px!important;padding:7px 9px!important;font-size:9px!important}.viewer-toolbar{position:relative!important;top:auto!important}.viewer-single-bracket .bracket-team{font-size:8px!important}.viewer-single-bracket .bracket-team strong{font-size:9.5px!important}
}

/* Viewer 5.5.4 — persistent mobile section navigation.
   The page-section nav is the primary mobile navigator and remains available
   while scrolling. The sport toolbar is kept below it on tablets and returns
   to normal flow on narrow phones so the viewport is not consumed by two
   sticky bars. */
@media(max-width:1040px){
  .viewer-side-nav{
    position:sticky!important;
    top:max(4px,env(safe-area-inset-top))!important;
    z-index:70!important;
    isolation:isolate;
    box-shadow:0 8px 24px rgba(15,23,42,.10)!important;
    background:rgba(255,255,255,.96)!important;
    backdrop-filter:blur(16px)!important;
    -webkit-backdrop-filter:blur(16px)!important;
  }
  .viewer-toolbar{
    top:calc(max(4px,env(safe-area-inset-top)) + 49px)!important;
    z-index:60!important;
  }
}
@media(max-width:420px){
  .viewer-side-nav{
    top:max(3px,env(safe-area-inset-top))!important;
    margin-bottom:8px!important;
  }
  .viewer-toolbar{position:relative!important;top:auto!important;z-index:25!important}
}

/* v25.0.0-dev.15.5.5.7 — realtime motion polish */
.live-card-exit{pointer-events:none;animation:viewerLiveExit .32s cubic-bezier(.4,0,.2,1) forwards;transform-origin:center top}
@keyframes viewerLiveExit{0%{opacity:1;transform:translateY(0) scale(1);filter:none}100%{opacity:0;transform:translateY(-8px) scale(.985);filter:blur(1px)}}
.tournament-matrix tbody tr[data-rank-key]{will-change:transform}
@media(prefers-reduced-motion:reduce){.live-card-exit{animation:none!important}.tournament-matrix tbody tr[data-rank-key]{will-change:auto}}

/* Viewer 5.5.6 — motion system: immediate events, LIVE finish, playoff advancement, leaderboard and nav. */
.event-row{position:relative;transform-origin:50% 0}
.event-row.event-enter{animation:viewerEventEnter .55s cubic-bezier(.22,.8,.24,1)}
.event-row.event-goal.event-enter:before,.event-row.event-card.event-enter:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:99px;background:var(--primary)}
.event-row.event-card.event-enter:before{background:#f0b429}
.event-row.event-set.set-complete-enter{animation:viewerSetComplete .8s cubic-bezier(.22,.8,.24,1)}
.event-row.event-set.set-complete-enter:after{content:"✓";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:950;color:#16864b;animation:viewerSetCheck .8s ease both}
@keyframes viewerEventEnter{0%{opacity:0;transform:translateY(-9px) scale(.985)}60%{opacity:1;transform:translateY(2px) scale(1.006)}100%{opacity:1;transform:none}}
@keyframes viewerSetComplete{0%{background:color-mix(in srgb,#16864b 15%,#fff);box-shadow:inset 0 0 0 1px rgba(22,134,75,.18)}100%{background:#f8fafc;box-shadow:none}}
@keyframes viewerSetCheck{0%{opacity:0;transform:translateY(-50%) scale(.55)}35%{opacity:1;transform:translateY(-50%) scale(1.2)}100%{opacity:0;transform:translateY(-50%) scale(1)}}

.match-card.live-card-finished,.cf-live-card.live-card-finished{position:relative;overflow:hidden}
.match-card.live-card-finished:after,.cf-live-card.live-card-finished:after{content:"Завершено ✓";position:absolute;inset:0;z-index:12;display:grid;place-items:center;background:rgba(255,255,255,.92);color:#16864b;font-size:13px;font-weight:950;letter-spacing:.02em;animation:viewerFinishedReveal .42s ease both}
@keyframes viewerFinishedReveal{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
.live-card-exit{animation:viewerLiveExit .42s cubic-bezier(.4,0,.2,1) forwards!important}
@keyframes viewerLiveExit{to{opacity:0;transform:translateY(-8px) scale(.975);filter:blur(1px)}}

.bracket-team.playoff-advance-in{animation:viewerPlayoffAdvance .78s cubic-bezier(.22,.8,.24,1)}
@keyframes viewerPlayoffAdvance{0%{opacity:.15;transform:translateX(-10px);background:color-mix(in srgb,var(--primary) 16%,#fff)}55%{opacity:1;transform:translateX(2px)}100%{transform:none;background:transparent}}
.rank-row.cf-rank-shift{animation:viewerCfRankGlow .82s ease}
@keyframes viewerCfRankGlow{0%{background:color-mix(in srgb,var(--primary) 14%,#fff);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 22%,transparent)}100%{background:transparent;box-shadow:none}}

.viewer-side-nav button{position:relative;transition:color .22s ease,background-color .22s ease}

@media(prefers-reduced-motion:reduce){.event-row.event-enter,.event-row.event-set.set-complete-enter,.match-card.live-card-finished:after,.cf-live-card.live-card-finished:after,.live-card-exit,.bracket-team.playoff-advance-in,.rank-row.cf-rank-shift{animation:none!important}.viewer-side-nav button{transition:none!important}}

/* Viewer 25.0.0-dev.15.5.5.7 — navigation/event stability hotfix. */
.event-row{grid-template-columns:max-content minmax(0,1fr)!important;column-gap:5px!important;row-gap:2px!important}
.event-row strong{min-width:0!important;margin:0!important}
.event-row span{margin:0!important}
@media(max-width:1040px){main>.section{scroll-margin-top:64px}}
@media(max-width:420px){main>.section{scroll-margin-top:58px}}

/* Viewer 25.0.0-dev.15.5.5.9 — phase state clarity + compact classic mobile playoff. */
.phase.done{background:#ecfdf3!important;color:#067647!important;box-shadow:inset 0 0 0 1px #abefc6}
.phase.done i{background:#12b76a!important}
.phase.live{background:#fef3f2!important;color:#b42318!important;box-shadow:inset 0 0 0 1px #fda29b}
.phase.live i{background:#d92d20!important;box-shadow:0 0 0 3px rgba(217,45,32,.10)!important}
.phase.future{background:#f5f7fa!important;color:#667085!important;box-shadow:none}
.phase.future i{background:#c5ccd6!important;box-shadow:none!important}

@media(max-width:760px){
  #playoffContent{max-width:100%!important;overflow:visible!important}
  #playoffContent .sport-block{max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;scrollbar-width:thin!important;padding-bottom:4px!important}
  .viewer-single-bracket{--viewer-bracket-card:clamp(136px,39vw,168px)!important;--viewer-bracket-gap:24px!important;display:grid!important;width:max-content!important;min-width:calc(var(--viewer-bracket-card) * 2 + var(--viewer-bracket-gap))!important;max-width:none!important;margin:0 auto!important;gap:8px!important;overflow:visible!important;padding:2px 0!important}
  .viewer-bracket-main{display:grid!important;grid-template-columns:var(--viewer-bracket-card) var(--viewer-bracket-gap) var(--viewer-bracket-card)!important;grid-template-rows:auto 18px auto!important;gap:0!important;width:auto!important;max-width:none!important;align-items:start!important;justify-content:center!important}
  .viewer-bracket-main>.top{grid-column:1!important;grid-row:1!important;width:var(--viewer-bracket-card)!important;align-self:start!important}
  .viewer-bracket-main>.bottom{grid-column:1!important;grid-row:3!important;width:var(--viewer-bracket-card)!important;align-self:start!important}
  .viewer-bracket-main>.final{grid-column:3!important;grid-row:1/4!important;width:var(--viewer-bracket-card)!important;align-self:center!important}
  .viewer-bracket-connectors{display:block!important;grid-column:2!important;grid-row:1/4!important;position:relative!important;align-self:stretch!important;min-height:206px!important;width:var(--viewer-bracket-gap)!important}
  .viewer-bracket-connectors .top,.viewer-bracket-connectors .bot{left:0!important;width:16px!important;height:2px!important}
  .viewer-bracket-connectors .top{top:46px!important}.viewer-bracket-connectors .bot{bottom:46px!important}
  .viewer-bracket-connectors .vert{left:16px!important;top:46px!important;bottom:46px!important;width:2px!important}
  .viewer-bracket-connectors .mid{left:16px!important;top:50%!important;width:calc(var(--viewer-bracket-gap) - 16px)!important;height:2px!important;transform:translateY(-1px)!important}
  .viewer-bracket-placement{display:grid!important;grid-template-columns:var(--viewer-bracket-card) var(--viewer-bracket-gap) var(--viewer-bracket-card)!important;grid-template-rows:auto!important;gap:0!important;width:auto!important;max-width:none!important;margin-top:2px!important;padding-top:8px!important}
  .viewer-bracket-placement>.fifth{grid-column:1!important;grid-row:1!important;width:var(--viewer-bracket-card)!important}
  .viewer-bracket-placement>.third{grid-column:3!important;grid-row:1!important;width:var(--viewer-bracket-card)!important}
  .viewer-placement-spacer{display:block!important;grid-column:2!important;grid-row:1!important}
  .viewer-bracket-slot{width:var(--viewer-bracket-card)!important;max-width:var(--viewer-bracket-card)!important;gap:3px!important}
  .viewer-bracket-heading{justify-content:center!important;padding-left:0!important;min-height:12px!important;font-size:7px!important;letter-spacing:.045em!important}
  .viewer-bracket-heading span{font-size:6.5px!important}
  .viewer-single-bracket .bracket-match,.viewer-single-bracket .bracket-match.has-penalties{width:100%!important;min-height:82px!important;padding:5px!important;gap:3px!important;border-radius:9px!important}
  .viewer-single-bracket .bracket-team{height:25px!important;min-height:25px!important;max-height:25px!important;padding:3px 5px!important;font-size:7.8px!important;gap:4px!important}
  .viewer-single-bracket .bracket-team strong{font-size:9px!important}
  .viewer-single-bracket .bracket-note.playoff-detail{padding:3px 4px!important;font-size:6.7px!important;line-height:1.15!important;max-height:26px!important}
  .viewer-single-bracket .viewer-bracket-status{font-size:6.5px!important;padding:2px 4px!important}
  .viewer-double-bracket{display:grid!important;grid-auto-flow:column!important;grid-auto-columns:minmax(150px,168px)!important;grid-template-columns:none!important;gap:7px!important;width:max-content!important;min-width:100%!important;overflow:visible!important;padding-bottom:2px!important}
  .viewer-double-round{min-width:150px!important;width:auto!important;gap:4px!important;padding:5px!important}
  .viewer-double-round .round-title{font-size:7px!important}
}

/* Viewer 25.0.0-dev.15.5.5.10 — unresolved playoff slot labels: compact full-text mobile fit.
   Keep the accepted classic bracket geometry intact; only unresolved source labels get tighter typography. */
@media(max-width:760px){
  .viewer-single-bracket .bracket-team.slot-placeholder{
    grid-template-columns:minmax(0,1fr) 16px!important;
    gap:2px!important;
    padding-left:4px!important;
    padding-right:4px!important;
  }
  .viewer-single-bracket .bracket-team.slot-placeholder span{
    display:block!important;
    min-width:0!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:clip!important;
    overflow-wrap:normal!important;
    -webkit-line-clamp:unset!important;
    line-clamp:unset!important;
    font-size:7px!important;
    line-height:1!important;
    letter-spacing:-.018em!important;
  }
  .viewer-single-bracket .bracket-team.slot-placeholder i{
    width:2px!important;
    height:10px!important;
    margin-right:3px!important;
  }
  .viewer-single-bracket .bracket-team.slot-placeholder strong{font-size:8px!important}
  .viewer-double-bracket .bracket-team.slot-placeholder span{
    display:-webkit-box!important;
    white-space:normal!important;
    text-overflow:clip!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    line-clamp:2!important;
    font-size:7px!important;
    line-height:1.05!important;
  }
}

/* Viewer 25.0.0-dev.15.5.5.14 — restore the original schedule-card presentation.
   FINISHED rows differ only in one way: kickoff time is hidden. */
@media(max-width:760px){
}
