:root{
  --bg:#f3f5f7;--surface:#fff;--surface-soft:#f8fafc;--line:#e1e6ee;--text:#141820;--muted:#667085;
  --primary:#eb2424;--secondary:#4f4f4f;--live:#d92d20;--green:#067647;--blue:#175cd3;
  --shadow:0 7px 26px rgba(15,23,42,.065);--radius:18px;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg)
}
*{box-sizing:border-box;min-width:0}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);line-height:1.35}button{font:inherit}.page-shell{width:min(1380px,100%);margin:0 auto;padding:18px 20px 38px}
.hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:22px;min-height:208px;padding:31px 34px;border-radius:26px;color:#fff;overflow:hidden;background:linear-gradient(132deg,var(--primary),#241b23 52%,#101318);box-shadow:0 15px 42px rgba(15,23,42,.18)}
.hero:before{content:"";position:absolute;width:420px;height:420px;right:-110px;bottom:-235px;border:72px solid rgba(255,255,255,.075);border-radius:50%}.hero:after{content:"";position:absolute;width:190px;height:190px;right:215px;top:-95px;border:1px solid rgba(255,255,255,.12);border-radius:50%}.hero-copy{position:relative;z-index:1;max-width:980px}.eyebrow{font-size:10px;font-weight:950;letter-spacing:.14em;opacity:.76}.hero h1{margin:8px 0 16px;font-size:clamp(30px,4.2vw,54px);line-height:1.01;letter-spacing:-.04em;overflow-wrap:anywhere}
.event-meta{display:grid;grid-template-columns:repeat(2,minmax(150px,max-content));gap:10px 18px}.event-meta-item{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;align-items:center}.event-meta-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.09)}.event-meta-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.event-meta-copy b{display:block;margin-bottom:2px;font-size:8px;letter-spacing:.09em;text-transform:uppercase;opacity:.58}.event-meta-copy span{display:block;font-size:13px;font-weight:850;overflow-wrap:anywhere}
.connection{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;padding:9px 12px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}.connection span{width:8px;height:8px;border-radius:50%;background:#fdb022}.connection.ok span{background:#32d583}.connection.error span{background:#f97066}
.stage-progress{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.progress-pill{display:grid;grid-template-columns:auto 70px auto;gap:7px;align-items:center;padding:6px 8px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);font-size:9px;font-weight:850}.progress-pill i{display:block;width:70px;height:5px;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden}.progress-pill i b{display:block;height:100%;border-radius:99px;background:#fff}.progress-pill strong{font-size:9px;font-variant-numeric:tabular-nums}
.viewer-layout{display:grid;grid-template-columns:172px minmax(0,1fr);gap:14px;align-items:start;margin-top:14px}.viewer-main{min-width:0}.viewer-side-nav{position:sticky;top:14px;display:grid;gap:3px;padding:9px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.95);box-shadow:0 5px 22px rgba(16,24,40,.055);backdrop-filter:blur(12px);z-index:35}.side-nav-title{padding:5px 8px 8px;color:#98a2b3;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.viewer-side-nav button{border:0;background:transparent;border-radius:9px;padding:8px 9px;text-align:left;color:#667085;font-size:10px;font-weight:850;cursor:pointer;transition:.15s}.viewer-side-nav button:hover{background:#f8fafc;color:#344054}.viewer-side-nav button.active{background:#fff0f0;color:#b42318}
.viewer-toolbar{position:sticky;top:8px;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px;padding:7px;border:1px solid rgba(225,230,238,.94);border-radius:16px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);box-shadow:0 5px 22px rgba(15,23,42,.05)}.sport-nav{display:flex;gap:5px;overflow-x:auto}.sport-nav button{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;border:0;background:transparent;color:#475467;border-radius:10px;padding:9px 12px;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}.sport-nav button.active{background:#15181d;color:#fff}.sport-nav svg,.sport-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.all-mark{width:10px;height:10px;border-radius:3px;background:currentColor;opacity:.72}.layout-switch{display:flex;align-items:center;gap:4px;flex:0 0 auto}.layout-switch>span{padding:0 4px;color:#98a2b3;font-size:9px;font-weight:900;text-transform:uppercase}.layout-switch button{border:1px solid transparent;background:transparent;color:#667085;border-radius:8px;padding:7px 8px;font-size:9px;font-weight:900;cursor:pointer}.layout-switch button.active{background:#f2f4f7;border-color:#e4e7ec;color:#101828}
.section{margin-top:14px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 3px 18px rgba(15,23,42,.035)}.section[hidden]{display:none!important}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px}.section-head h2,.section-summary h2{margin:3px 0 0;font-size:21px;letter-spacing:-.025em}.section-kicker{font-size:9px;font-weight:950;letter-spacing:.11em;color:#98a2b3}.live-kicker{color:var(--live);display:flex;align-items:center;gap:7px}.live-kicker i{display:block;width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 0 5px rgba(217,45,32,.1);animation:pulse 1.6s infinite}.refresh-note{font-size:9px;color:#98a2b3;font-weight:750}.feature-section{background:linear-gradient(145deg,#fff,#fffdf9)}@keyframes pulse{50%{box-shadow:0 0 0 10px rgba(217,45,32,0)}}
.collapsible-section{padding:0;overflow:hidden}.collapsible-section>summary{list-style:none;cursor:pointer}.collapsible-section>summary::-webkit-details-marker{display:none}.section-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px}.section-summary:after{content:"▾";margin-left:4px;color:#98a2b3;font-size:13px}.collapsible-section:not([open]) .section-summary:after{transform:rotate(-90deg)}.summary-count{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;margin-left:auto;border-radius:999px;background:#f2f4f7;color:#667085;font-size:10px;font-weight:950;font-variant-numeric:tabular-nums}.collapsible-body{padding:0 20px 20px;border-top:1px solid #f0f2f5}
.sport-block+.sport-block{margin-top:18px}.sport-title{display:flex;align-items:center;gap:9px;margin:0 0 10px;font-size:14px;font-weight:950}.sport-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#f2f4f7;color:#475467}
.grid,.live-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.match-card{position:relative;min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.match-card:hover{transform:translateY(-1px);border-color:#ced7e3;box-shadow:0 7px 18px rgba(15,23,42,.05)}.match-card.live{border-color:#fda29b;box-shadow:0 0 0 3px rgba(217,45,32,.05)}.match-card.show-match{border-color:#d8c4f0;background:linear-gradient(145deg,#fff,#fbf7ff)}.match-top{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:11px;color:#667085;font-size:9px;font-weight:850}.match-top>span:first-child{min-width:0;overflow-wrap:anywhere}.badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:23px;padding:4px 8px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:8px;font-weight:950;letter-spacing:.04em;white-space:nowrap}.badge.live{background:#fef3f2;color:#b42318;border:1px solid #fecdca}.badge.upcoming{background:#eff8ff;color:#175cd3}.badge.pending{background:#fffaeb;color:#b54708}.teams-vs{display:grid;grid-template-columns:minmax(0,1fr) 86px minmax(0,1fr);gap:10px;align-items:center}.team{min-width:0;font-size:13px;font-weight:900;line-height:1.2}.team.right{text-align:right}.team-name{display:flex;align-items:center;gap:7px;min-width:0;overflow-wrap:anywhere}.team-name span{min-width:0;overflow-wrap:anywhere}.team.right .team-name{justify-content:flex-end}.team-color{width:4px;height:21px;flex:0 0 4px;border-radius:4px;background:var(--team-color)}.score-wrap{width:86px;text-align:center}.score{font-size:31px;line-height:1;font-weight:950;font-variant-numeric:tabular-nums;letter-spacing:-.035em;white-space:nowrap}.penalties{margin-top:4px;color:#9a6700;font-size:9px;font-weight:900;white-space:nowrap}.sub{margin-top:8px;text-align:center;color:#667085;font-size:9px;font-weight:750}.event-feed{display:grid;gap:4px;margin-top:9px;padding-top:8px;border-top:1px solid #f0f2f5}.event-row{display:flex;gap:6px;color:#475467;font-size:9px}.event-row strong{color:#101828}.empty{padding:22px;border:1px dashed #d0d5dd;border-radius:13px;background:#fcfcfd;color:#98a2b3;text-align:center;font-size:11px;font-weight:750}.empty.compact{padding:11px;border:0}
body.layout-list .live-grid,body.layout-list .grid{grid-template-columns:1fr}.match-card.list-card{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(0,1.8fr) minmax(80px,.45fr);gap:12px;align-items:center;padding:10px 12px}.match-card.list-card .match-top{margin:0}.match-card.list-card .teams-vs{grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr)}.match-card.list-card .sub{margin:0;text-align:right}.match-card.list-card .event-feed{grid-column:1/-1}
.spotlight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.spotlight-card{position:relative;overflow:hidden;border:1px solid #e4e7ec;border-radius:18px;padding:17px;background:#fff;box-shadow:0 7px 24px rgba(16,24,40,.055)}.spotlight-card.final{border-color:#e6c96a;background:linear-gradient(145deg,#fffef8,#fff8dc)}.spotlight-card.show{border-color:#cdb4ec;background:linear-gradient(145deg,#fefcff,#f4ecff)}.spotlight-top{display:flex;justify-content:space-between;gap:8px;color:#667085;font-size:8px;font-weight:950;letter-spacing:.08em}.spotlight-stage{margin-top:6px;color:#667085;font-size:10px}.spotlight-vs{display:grid;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);gap:10px;align-items:center;margin-top:18px}.spotlight-vs>strong{font-size:15px;overflow-wrap:anywhere}.spotlight-vs>strong:last-child{text-align:right}.spotlight-score{text-align:center}.spotlight-score b{display:block;font-size:34px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.spotlight-score small{display:block;margin-top:5px;color:#9a6700;font-size:10px;font-weight:900}
.next-strip{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:thin}.next-item{flex:1 1 0;min-width:0;position:relative;overflow:hidden;display:grid;gap:4px;padding:11px 12px 11px 14px;border:1px solid #eaecf0;border-radius:12px;background:#fff}.next-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--next-color,#175cd3)}.next-time{color:#175cd3;font-size:10px;font-weight:950;font-variant-numeric:tabular-nums}.next-item strong{font-size:11px;overflow-wrap:anywhere}.next-item small{color:#667085;font-size:9px;line-height:1.35}
.podium-block+.podium-block{margin-top:15px}.podium-block h3{display:flex;align-items:center;gap:7px;margin:0 0 9px;font-size:13px}.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:end}.podium-place{display:grid;place-items:center;min-height:86px;padding:10px;border:1px solid #e4e7ec;border-radius:13px;background:#f8fafc;text-align:center}.podium-place.first{min-height:118px;background:linear-gradient(180deg,#fff8da,#fff);border-color:#e6c96a}.podium-place.second{min-height:98px}.podium-place.third{min-height:84px;background:#fff8f0}.podium-place>span{font-size:22px;font-weight:950}.podium-place strong{margin-top:5px;font-size:11px;overflow-wrap:anywhere}
.standings-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.standing-card,.rank-list{min-width:0;border:1px solid var(--line);border-radius:13px;overflow:hidden}.standing-card h4,.rank-list h4{margin:0;padding:9px 11px;background:#f8fafc;font-size:11px}.table-scroll{overflow:auto}.standing-table{width:100%;min-width:390px;border-collapse:collapse;font-size:9px}.standing-table th,.standing-table td{padding:7px 6px;border-top:1px solid #f0f2f5;text-align:center;font-variant-numeric:tabular-nums}.standing-table th{color:#667085;font-size:8px;text-transform:uppercase}.standing-table .left{text-align:left}.team-cell{font-weight:850}.place{font-weight:950}.mini-color{display:inline-block;width:4px;height:14px;margin-right:6px;border-radius:4px;vertical-align:-3px}.playoff-qualifier td{background:#f3fbf5}.playoff-qualifier td:first-child{box-shadow:inset 3px 0 0 #6ce9a6}
.ranking-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:10px}.rank-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:7px;align-items:center;padding:8px 10px;border-top:1px solid #f0f2f5;font-size:9px}.rank-row .num{font-weight:950;color:#667085}.rank-row .name{min-width:0;font-weight:850;overflow-wrap:anywhere}.rank-row small{display:block;margin-top:2px;color:#98a2b3;font-size:8px}.rank-row .value{font-size:12px;font-weight:950;font-variant-numeric:tabular-nums}
.leaders-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.leader-card{border:1px solid var(--line);border-radius:13px;overflow:hidden}.leader-card h4{margin:0;padding:10px 11px;background:#f8fafc;font-size:11px}.leader-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:7px;align-items:center;padding:8px 10px;border-top:1px solid #f0f2f5;font-size:9px}.leader-row .leader-place{font-weight:950;color:#98a2b3}.leader-row strong{overflow-wrap:anywhere}.leader-row small{display:block;margin-top:2px;color:#98a2b3;font-size:8px}.leader-value{font-size:14px;font-weight:950;font-variant-numeric:tabular-nums}
.cf-live-card{padding:13px;border:1px solid #fda29b;border-radius:14px;background:#fff}.cf-live-head{display:flex;justify-content:space-between;gap:9px}.cf-person{font-size:15px;font-weight:950;overflow-wrap:anywhere}.cf-meta{margin-top:3px;color:#667085;font-size:9px}.cf-stages{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:11px}.cf-stage{min-width:0;padding:6px 3px;border:1px solid #e4e7ec;border-radius:8px;background:#f8fafc;text-align:center}.cf-stage.active{border-color:#f97066;background:#fff1f0}.cf-stage.done{border-color:#abefc6;background:#ecfdf3}.cf-stage b{display:block;color:#667085;font-size:7px}.cf-stage strong{display:block;margin-top:2px;font-size:11px;font-variant-numeric:tabular-nums}.cf-total{display:flex;justify-content:space-between;align-items:end;margin-top:9px;padding-top:8px;border-top:1px solid #f0f2f5;color:#667085;font-size:9px}.cf-total strong{color:#101828;font-size:21px;font-variant-numeric:tabular-nums}
.zone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.zone-column{min-width:0;padding:9px;border:1px solid #eaecf0;border-radius:13px;background:#fcfcfd}.zone-head{display:flex;justify-content:space-between;margin-bottom:6px;font-size:10px;font-weight:950}.cf-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 3px;border-top:1px solid #f0f2f5}.cf-row:first-of-type{border-top:0}.cf-time{font-size:10px;font-weight:950;font-variant-numeric:tabular-nums}.cf-team{font-size:10px;font-weight:850;overflow-wrap:anywhere}.cf-team span:last-child{display:block;margin-top:2px;color:#98a2b3;font-size:8px}.cf-result{text-align:right;font-size:12px;font-weight:950;font-variant-numeric:tabular-nums}.cf-result small{display:block;color:#98a2b3;font-size:7px;font-weight:800}
.single-bracket{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.bracket-round{display:grid;gap:9px}.final-round{padding-top:42px}.bronze-round{grid-column:2;padding-top:0}.extra-round{grid-column:1/-1}.round-title{margin-bottom:2px;color:#667085;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.bracket-match{padding:10px;border:1px solid #e4e7ec;border-radius:11px;background:#fff}.bracket-match.live{border-color:#fda29b}.bracket-match.finished{background:#f8fafc}.bracket-meta{display:flex;justify-content:space-between;gap:7px;margin-bottom:6px;color:#98a2b3;font-size:8px}.bracket-team{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:8px;align-items:center;padding:6px 7px;border-radius:8px;background:#f8fafc;font-size:10px}.bracket-team+.bracket-team{margin-top:4px}.bracket-team span{min-width:0;overflow-wrap:anywhere}.bracket-team i{display:inline-block;width:3px;height:12px;margin-right:5px;border-radius:3px;vertical-align:-2px}.bracket-team strong{text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.bracket-note{margin-top:5px;color:#667085;font-size:8px}.bracket-note.penalty{color:#9a6700;font-weight:900}.bracket-empty{padding:12px;border:1px dashed #d0d5dd;border-radius:10px;color:#98a2b3;font-size:9px;text-align:center}.double-bracket{display:grid;gap:11px}.bracket-lane{padding:10px;border:1px solid #eaecf0;border-radius:13px;background:#fcfcfd}.bracket-lane-grid{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:8px;overflow-x:auto;padding-bottom:2px}
footer{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px;color:#98a2b3;font-size:9px;font-weight:750}
.score-pop .score,.score-pop .spotlight-score b{animation:scorePop .45s ease}@keyframes scorePop{45%{transform:scale(1.12);color:var(--primary)}100%{transform:none}}
@media(max-width:1040px){.viewer-layout{grid-template-columns:1fr}.viewer-side-nav{position:sticky;top:0;display:flex;overflow:auto;border-radius:0;margin:0 -10px 10px;padding:7px 10px}.side-nav-title{display:none}.viewer-side-nav button{white-space:nowrap}.ranking-grid{grid-template-columns:1fr 1fr}.ranking-grid>.rank-list:first-child{grid-column:1/-1}.leaders-grid{grid-template-columns:1fr 1fr}.next-item{flex:0 0 190px}}
@media(max-width:760px){.page-shell{padding:10px 10px 28px}.hero{min-height:0;padding:23px 20px;border-radius:20px;align-items:flex-start;flex-direction:column}.hero h1{font-size:clamp(28px,8vw,42px)}.connection{align-self:flex-start}.event-meta{grid-template-columns:1fr}.stage-progress{display:grid;grid-template-columns:1fr 1fr;width:100%}.progress-pill{grid-template-columns:auto 1fr auto}.progress-pill i{width:100%}.viewer-toolbar{top:5px}.layout-switch>span{display:none}.grid,.live-grid,.spotlight-grid,.standings-wrap,.zone-grid,.single-bracket{grid-template-columns:1fr}.final-round,.bronze-round{padding-top:0;grid-column:auto}.ranking-grid,.leaders-grid{grid-template-columns:1fr}.ranking-grid>.rank-list:first-child{grid-column:auto}.next-item{flex:0 0 180px}.cf-stages{grid-template-columns:repeat(4,minmax(0,1fr))}.match-card.list-card{display:block}.match-card.list-card .match-top{margin-bottom:10px}.match-card.list-card .sub{margin-top:8px;text-align:center}.spotlight-vs{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr)}.spotlight-vs>strong{font-size:13px}.podium{gap:4px}.podium-place{padding:7px}.section{padding:16px}.collapsible-section{padding:0}.section-summary{padding:16px}.collapsible-body{padding:0 16px 16px}.section-head h2,.section-summary h2{font-size:19px}}
@media(max-width:520px){.sport-nav button{padding:8px 9px}.layout-switch button{padding:6px}.teams-vs{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);gap:6px}.score-wrap{width:72px}.score{font-size:27px}.team{font-size:11px}.cf-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.podium-place strong{font-size:9px}.stage-progress{grid-template-columns:1fr}.spotlight-score b{font-size:29px}}
/* v25.0.0-dev.15.5.1 — Admin/Viewer playoff parity + penalty visibility */
.bracket-match.live{border:2px solid #ef4444;background:#fff8f8}.bracket-match.finished{border:2px solid #36a269;background:#f4fbf6}.bracket-match.future{border:1px solid #e4e7ec;background:#fff}
.bracket-team.advance-winner{background:#eaf8ef;border:1px solid #b8e4c7}
.viewer-bracket-status{margin-top:auto;align-self:flex-start;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:950}.viewer-bracket-status.live{background:#fff0f0;color:#c92323;border:1px solid #fecaca}.viewer-bracket-status.finished{background:#eaf8ef;color:#18794e;border:1px solid #b8e4c7}.viewer-bracket-status.future{background:#f2f4f7;color:#58667a}
.viewer-single-bracket{--viewer-bracket-card:320px;--viewer-bracket-gap:92px;display:grid;gap:28px;max-width:824px;margin:0 auto;padding:10px 0 6px}.viewer-bracket-main{display:grid;grid-template-columns:var(--viewer-bracket-card) var(--viewer-bracket-gap) var(--viewer-bracket-card);grid-template-rows:auto 86px auto;align-items:start;justify-content:center}.viewer-bracket-main>.top{grid-column:1;grid-row:1}.viewer-bracket-main>.bottom{grid-column:1;grid-row:3}.viewer-bracket-main>.final{grid-column:3;grid-row:1/4;align-self:center}.viewer-bracket-slot{width:var(--viewer-bracket-card);display:grid;gap:8px;min-width:0}.viewer-bracket-heading{min-height:18px;display:flex;align-items:baseline;justify-content:center;gap:7px;color:#667085;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap}.viewer-bracket-heading span{color:#98a2b3;font-size:8px;font-weight:800;letter-spacing:.02em}.viewer-single-bracket .bracket-match{height:148px;width:100%;padding:11px;display:flex;flex-direction:column;gap:6px;justify-content:flex-start;border-radius:11px}.viewer-single-bracket .bracket-team{min-height:38px;margin-top:0;padding:7px 8px}.viewer-bracket-connectors{grid-column:2;grid-row:1/4;position:relative;align-self:stretch;min-height:436px}.viewer-bracket-connectors .line{position:absolute;display:block;background:#c8d4e1;border-radius:999px}.viewer-bracket-connectors .top{left:0;top:91px;width:38px;height:2px}.viewer-bracket-connectors .bot{left:0;bottom:91px;width:38px;height:2px}.viewer-bracket-connectors .vert{left:38px;top:91px;bottom:91px;width:2px}.viewer-bracket-connectors .mid{left:38px;top:50%;width:54px;height:2px;transform:translateY(-1px)}.viewer-bracket-placement{display:grid;grid-template-columns:var(--viewer-bracket-card) var(--viewer-bracket-gap) var(--viewer-bracket-card);align-items:start;justify-content:center;padding-top:24px;border-top:1px dashed #eaecf0}.viewer-bracket-placement>.fifth{grid-column:1}.viewer-bracket-placement>.third{grid-column:3}.viewer-placement-spacer{grid-column:2}.viewer-double-bracket{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:12px;overflow-x:auto;padding-bottom:4px}.viewer-double-round{display:grid;align-content:start;gap:8px;padding:9px;border:1px solid #eaecf0;border-radius:13px;background:#fcfcfd}.viewer-double-round.placement{border-style:dashed}
@media(max-width:940px){.viewer-single-bracket{--viewer-bracket-card:min(300px,calc((100vw - 150px)/2));--viewer-bracket-gap:64px;max-width:none}.viewer-bracket-connectors .mid{width:26px}}
@media(max-width:760px){.viewer-single-bracket{--viewer-bracket-card:100%;display:block}.viewer-bracket-main,.viewer-bracket-placement{display:grid;grid-template-columns:1fr;grid-template-rows:auto;gap:16px}.viewer-bracket-main>.top,.viewer-bracket-main>.bottom,.viewer-bracket-main>.final,.viewer-bracket-placement>.fifth,.viewer-bracket-placement>.third{grid-column:1;grid-row:auto;align-self:auto}.viewer-bracket-connectors,.viewer-placement-spacer{display:none}.viewer-bracket-placement{margin-top:18px;padding-top:18px}.viewer-bracket-slot{width:100%}.viewer-bracket-heading{justify-content:flex-start}.viewer-single-bracket .bracket-match{height:148px}.viewer-double-bracket{grid-auto-flow:row;grid-auto-columns:auto}}
/* v25.0.0-dev.15.5.2 — playoff advancement/layout integrity */
.viewer-single-bracket .bracket-match{height:176px;min-height:176px;max-height:176px;overflow:hidden}
.viewer-single-bracket .bracket-team{height:38px;min-height:38px;max-height:38px}
.viewer-single-bracket .bracket-team span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;line-height:1.25}
.viewer-single-bracket .bracket-note.playoff-detail{min-height:22px;height:22px;display:flex;align-items:center;justify-content:center;flex:0 0 22px;margin-top:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.viewer-single-bracket .bracket-note.detail-spacer{visibility:hidden}
.viewer-single-bracket .viewer-bracket-status{flex:0 0 auto;max-width:100%;white-space:nowrap}
.viewer-bracket-connectors{min-height:492px}.viewer-bracket-connectors .top{top:101px}.viewer-bracket-connectors .bot{bottom:101px}.viewer-bracket-connectors .vert{top:101px;bottom:101px}
@media(max-width:760px){.viewer-bracket-connectors{min-height:0}}
/* v25.0.0-dev.15.5.3 — compact adaptive playoff parity */
.viewer-single-bracket{--viewer-bracket-card:270px;--viewer-bracket-gap:58px;gap:14px;max-width:598px;padding:6px 0 2px}
.viewer-bracket-main{grid-template-columns:var(--viewer-bracket-card) var(--viewer-bracket-gap) var(--viewer-bracket-card);grid-template-rows:auto 34px auto}
.viewer-bracket-slot{gap:5px}.viewer-bracket-heading{min-height:15px;font-size:8px}.viewer-bracket-heading span{font-size:7.5px}
.viewer-single-bracket .bracket-match{height:auto;min-height:118px;max-height:none;overflow:visible;padding:8px;gap:4px;display:flex;flex-direction:column}
.viewer-single-bracket .bracket-match.has-penalties{min-height:143px}
.viewer-single-bracket .bracket-team{height:31px;min-height:31px;max-height:31px;padding:5px 7px;font-size:9px}
.viewer-single-bracket .bracket-team strong{font-size:11px}
.viewer-single-bracket .bracket-note.playoff-detail{min-height:0;height:auto;display:block;flex:0 0 auto;margin-top:1px;padding:5px 7px;border-radius:8px;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.25}
.viewer-single-bracket .bracket-note.detail-spacer{display:none!important}
.viewer-single-bracket .viewer-bracket-status{margin-top:auto;font-size:8px;padding:3px 6px}
.viewer-bracket-connectors{min-height:312px}.viewer-bracket-connectors .top{top:72px}.viewer-bracket-connectors .bot{bottom:72px}.viewer-bracket-connectors .vert{top:72px;bottom:72px}.viewer-bracket-connectors .mid{width:34px}
.viewer-bracket-placement{padding-top:12px;grid-template-columns:var(--viewer-bracket-card) var(--viewer-bracket-gap) var(--viewer-bracket-card)}
@media(max-width:940px){.viewer-single-bracket{--viewer-bracket-card:min(260px,calc((100vw - 116px)/2));--viewer-bracket-gap:48px;max-width:none}.viewer-bracket-connectors .mid{width:24px}}
@media(max-width:760px){.viewer-single-bracket{--viewer-bracket-card:100%;display:block}.viewer-bracket-main,.viewer-bracket-placement{gap:10px}.viewer-bracket-placement{margin-top:12px;padding-top:12px}.viewer-single-bracket .bracket-match,.viewer-single-bracket .bracket-match.has-penalties{height:auto;min-height:112px}.viewer-bracket-connectors{min-height:0}}
/* connector positions scale with adaptive card height */
.viewer-bracket-connectors .top{top:23%}.viewer-bracket-connectors .bot{bottom:23%}.viewer-bracket-connectors .vert{top:23%;bottom:23%}
/* v25.0.0-dev.15.5.4 — competition branding */
.viewer-brand-line{display:flex;align-items:flex-start;gap:16px}.event-logo{width:72px;height:72px;object-fit:contain;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);padding:7px;flex:0 0 auto}.event-logo.hidden{display:none!important}.event-hero-text{margin-top:-8px;margin-bottom:12px;font-size:13px;font-weight:700;opacity:.78;max-width:780px}.viewer-brand-line>div{min-width:0}
@media(max-width:760px){.viewer-brand-line{gap:10px}.event-logo{width:54px;height:54px;border-radius:11px}.event-hero-text{font-size:11px;margin-top:-5px}}

/* v25.0.0-dev.15.5.4.1 — operational match states */
.badge.ready{background:#dcfae6;color:#067647;border-color:#abefc6}
.badge.finishing{background:#fff0c8;color:#946200;border-color:#f0d79f}
.spotlight-card .spotlight-top span:last-child{font-variant-numeric:tabular-nums}

/* v25.0.0-dev.15.5.4.3 — Admin/Viewer standings matrix parity */
.standings-wrap.matrix-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.tournament-group-card{min-width:0;border:1px solid #e3e8ef;border-radius:16px;background:#fff;box-shadow:0 4px 16px rgba(15,23,42,.035);overflow:hidden}
.tournament-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid #e9edf2;background:#fbfcfe}
.tournament-group-title h4{margin:0;font-size:15px;line-height:1.2;font-weight:900;letter-spacing:-.015em;color:var(--text)}
.tournament-group-title span{font-size:9.5px;line-height:1.35;font-weight:750;color:#667085;text-align:right}
.tournament-matrix-wrap{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;background:#fff}
.tournament-matrix{width:100%;min-width:600px;border-collapse:collapse;table-layout:auto;color:var(--text)}.tournament-matrix.volleyball{min-width:680px}
.tournament-matrix th,.tournament-matrix td{padding:8px 6px;border-bottom:1px solid #edf1f5;border-right:1px solid #edf1f5;text-align:center;font-size:10.5px;line-height:1.25;vertical-align:middle;font-variant-numeric:tabular-nums}
.tournament-matrix tr:last-child td{border-bottom:0}.tournament-matrix th:last-child,.tournament-matrix td:last-child{border-right:0}
.tournament-matrix th{background:#f7f9fc;color:#667085;font-size:9px;font-weight:900;letter-spacing:.025em;white-space:nowrap}
.tournament-matrix th:nth-child(1){width:34px}.tournament-matrix th:nth-child(2){width:170px;min-width:145px;text-align:left}
.tournament-matrix .matrix-team{text-align:left;font-size:11px}.tournament-team{display:inline-flex;align-items:center;gap:7px;min-width:0;font-weight:850}.tournament-team i{width:4px;height:16px;flex:0 0 4px;border-radius:4px;background:var(--team,#2563eb)}
.tournament-matrix .matrix-opponent{min-width:58px;max-width:82px;overflow:hidden;text-overflow:ellipsis}.tournament-matrix .qualify{background:#f2fbf5}.tournament-matrix .qualify .matrix-place{box-shadow:inset 3px 0 0 #22c55e}.tournament-matrix .fifth{background:#faf7ff}.tournament-matrix .fifth .matrix-place{box-shadow:inset 3px 0 0 #8b5cf6}
.matrix-diagonal{background:#f8fafc;color:#b1bac8;font-weight:900}.matrix-score{display:inline-flex;min-width:34px;justify-content:center;padding:4px 6px;border-radius:7px;font-size:10px;font-weight:900;font-variant-numeric:tabular-nums}.matrix-score.win{background:#dcfce7;color:#166534}.matrix-score.loss{background:#fee2e2;color:#991b1b}.matrix-score.draw{background:#f1f5f9;color:#475569}.matrix-score.live{background:#fee2e2;color:#b91c1c;box-shadow:inset 0 0 0 1px #fecaca}.matrix-score.upcoming,.matrix-score.empty{background:#f8fafc;color:#98a2b3}.matrix-total strong{display:block;font-size:10.5px}.matrix-total small{display:block;margin-top:2px;color:#7a8799;font-size:8.5px}.matrix-points strong{font-size:12px}
@media(max-width:1100px){.standings-wrap.matrix-groups{grid-template-columns:1fr}}
@media(max-width:760px){.tournament-group-title{align-items:flex-start;flex-direction:column}.tournament-group-title span{text-align:left}.tournament-matrix th,.tournament-matrix td{padding:7px 5px;font-size:10px}.tournament-matrix th{font-size:8.5px}.tournament-matrix th:nth-child(2){width:145px}}

/* 25.0.0-dev.15.5.4.3 — playoff status parity */
.bracket-match.finishing{border:2px solid #f59e0b;background:#fffaf0}
.viewer-bracket-status.finishing{background:#fff0c8;color:#946200;border:1px solid #f0d79f}
.bracket-match.cancelled{border:1px solid #f5b7b1;background:#fff7f6}
.viewer-bracket-status.cancelled{background:#fee4e2;color:#b42318;border:1px solid #f5b7b1}
