.public-bracket-tree .bracket-rounds-nav-bar { display:flex; gap:.5rem; overflow-x:auto; padding:.2rem 0 .8rem; scrollbar-width:thin; }.public-bracket-tree .bracket-round-nav-chip { display:inline-flex; align-items:center; gap:.4rem; flex-shrink:0; min-height:44px; padding:.5rem .85rem; border:1px solid #dce5f2; border-radius:999px; background:#fff; color:#475569; font:inherit; font-size:.8rem; font-weight:700; cursor:pointer; }.public-bracket-tree .bracket-round-nav-chip.active { background:#075CFA; border-color:#075CFA; color:#fff; }.public-bracket-tree .bracket-round-nav-chip .chip-count { padding:.1rem .35rem; border-radius:999px; background:#f1f5f9; color:#475569; font-size:.7rem; }.public-bracket-tree .bracket-round-nav-chip.active .chip-count { background:#ffffff30; color:#fff; }.public-bracket-tree .bracket-round-nav-chip:focus-visible,.public-bracket-tree:focus-visible { outline:2px solid #075CFA; outline-offset:3px; }.public-bracket-tree { width:100%; max-width:100%; overflow-x:auto; padding:1rem 0; box-sizing:border-box; scroll-behavior:smooth; scrollbar-width:thin; }.public-bracket-tree .bracket-tree-columns { --bracket-column-width:clamp(19rem,27vw,24rem); --bracket-gap:2.5rem; position:relative; display:grid; grid-template-columns:repeat(var(--bracket-rounds),var(--bracket-column-width)); gap:var(--bracket-gap); width:max-content; padding:0 1px 1px; isolation:isolate; }.public-bracket-tree .bracket-round-column { display:flex; flex-direction:column; min-width:0; margin:0; }.public-bracket-tree .bracket-round-header { display:flex; align-items:center; justify-content:space-between; gap:.65rem; min-height:54px; height:var(--bracket-header-height,auto); margin-bottom:24px; padding:.75rem 1rem; background:#fff; border:1px solid #dce5f2; border-radius:14px; box-sizing:border-box; }.public-bracket-tree .round-title { display:inline-flex; align-items:center; gap:.5rem; color:#0f172a; font-size:.9rem; font-weight:800; }.public-bracket-tree .round-title svg { flex-shrink:0; }.public-bracket-tree .round-count { flex-shrink:0; padding:.2rem .6rem; border:1px solid #dce5f2; border-radius:999px; background:#f1f5f9; color:#64748b; font-size:.7rem; white-space:nowrap; }.public-bracket-tree .is-final-round .bracket-round-header { border-color:#fbd46a; background:linear-gradient(110deg,#fffbeb,#fff5ca); }.public-bracket-tree .is-final-round .round-title { color:#92400e; }.public-bracket-tree .bracket-round-column.is-active-round .bracket-round-header { box-shadow:0 0 0 2px #075cfa20; border-color:#075CFA; }.public-bracket-tree .bracket-matches-stack { position:relative; display:flex; flex-direction:column; gap:24px; }.public-bracket-tree .is-laid-out .bracket-matches-stack { display:block; height:var(--bracket-body-height); }.public-bracket-tree .bracket-match-card { position:relative; z-index:1; display:flex; flex-direction:column; width:100%; min-width:0; padding:0; gap:0; border:1px solid #dce5f2; border-radius:14px; background:#fff; box-sizing:border-box; }.public-bracket-tree .is-laid-out .bracket-match-card { position:absolute; height:var(--bracket-card-height); }.public-bracket-tree .is-final-round .bracket-match-card { border-color:#f5ce66; }.public-bracket-tree .bracket-match-card.is-live { border-color:#15803d; box-shadow:0 0 0 1px #15803d20; }.public-bracket-tree .bracket-match-topbar { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .55rem; min-height:48px; padding:.6rem .75rem; border-radius:13px 13px 0 0; border-bottom:1px solid #edf1f7; background:#f8fafc; font-size:.7rem; box-sizing:border-box; }.public-bracket-tree .bracket-game-number { flex-shrink:0; color:#475569; font-size:.7rem; font-weight:800; text-transform:uppercase; }.public-bracket-tree .bracket-schedule { display:flex; align-items:center; justify-content:center; flex:1 1 160px; gap:.4rem; padding:.3rem .45rem; border:1px solid #e2e8f0; border-radius:7px; background:#f1f5f9; color:#334155; text-align:center; font-size:.7rem; font-weight:600; font-variant-numeric:tabular-nums; line-height:1.4; }.public-bracket-tree .bracket-schedule svg { flex-shrink:0; }.public-bracket-tree .bracket-schedule > span { min-width:0; overflow-wrap:anywhere; }.public-bracket-tree .match-live-indicator,.public-bracket-tree .match-status-done { margin-left:auto; padding:.2rem .45rem; border:1px solid #dce5f2; border-radius:5px; color:#64748b; font-size:.65rem; font-weight:700; white-space:nowrap; }.public-bracket-tree .match-live-indicator { color:#166534; background:#dcfce7; border-color:#86efac; text-transform:uppercase; }.public-bracket-tree .bracket-teams-box { display:flex; flex:1; flex-direction:column; gap:0; min-width:0; }.public-bracket-tree .bracket-team-entry { display:flex; flex:1; align-items:center; gap:.45rem; min-height:48px; padding:.6rem .75rem; box-sizing:border-box; }.public-bracket-tree .bracket-team-entry + .bracket-team-entry { border-top:1px solid #edf1f7; }.public-bracket-tree .bracket-team-entry:last-child { border-radius:0 0 13px 13px; }.public-bracket-tree .bracket-team-entry.is-winner { background:#f0f5ff; }.public-bracket-tree .bracket-team-entry .team-name { flex:1; min-width:0; color:#0f172a; font-size:.82rem; font-weight:650; line-height:1.45; overflow-wrap:anywhere; white-space:normal; }.public-bracket-tree .bracket-team-entry .team-name.is-placeholder { color:#64748b; font-weight:500; font-style:italic; }.public-bracket-tree .bracket-team-entry.is-winner .team-name { color:#075CFA; font-weight:800; }.public-bracket-tree .bracket-origin-pill,.public-bracket-tree .bracket-team-entry .tournament-seed-badge { flex-shrink:0; padding:.15rem .4rem; border-radius:6px; border:1px solid #bed2ff; background:#eff5ff; color:#075CFA; font-size:.65rem; font-weight:750; white-space:nowrap; }.public-bracket-tree .bracket-origin-pill.origin-winner { background:#f0fdf4; border-color:#bbf7d0; color:#15803d; }.public-bracket-tree .bracket-team-entry .tournament-seed-badge { background:#fff7ed; border-color:#fed7aa; color:#c2410c; }.public-bracket-tree .sets-scores-box { display:flex; align-items:center; flex-shrink:0; gap:.25rem; }.public-bracket-tree .set-score-digit { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:24px; padding:0 .1rem; border-radius:4px; color:#0f172a; background:#f1f5f9; font-size:.85rem; font-weight:800; font-variant-numeric:tabular-nums; }.public-bracket-tree .set-score-digit.is-empty { color:#94a3b8; background:transparent; font-weight:500; }.public-bracket-tree .bracket-team-entry.is-winner .set-score-digit { color:#075CFA; background:#e0eaff; }.public-bracket-tree .bracket-winner-check { color:#075CFA; font-weight:800; font-size:.8rem; }.public-bracket-tree .bracket-connections { position:absolute; top:0; left:0; z-index:0; pointer-events:none; overflow:visible; }.public-bracket-tree .bracket-connections path { fill:none; stroke:#c2cfe1; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
@media(max-width:768px) {.public-bracket-tree .bracket-tree-columns { --bracket-column-width:calc(100vw - 3.5rem); --bracket-gap:1.75rem; }.public-bracket-tree { scroll-snap-type:x proximity; overflow-y:hidden; }.public-bracket-tree .bracket-round-column { scroll-snap-align:start; }.public-bracket-tree .bracket-round-header { padding:.65rem .8rem; }.public-bracket-tree .bracket-team-entry { padding:.6rem; gap:.35rem; }.public-bracket-tree .bracket-team-entry .team-name { font-size:.8rem; }.public-bracket-tree .bracket-origin-pill,.public-bracket-tree .bracket-team-entry .tournament-seed-badge { font-size:.6rem; padding:.15rem .3rem; }
}
@media(prefers-reduced-motion:reduce) {.public-bracket-tree { scroll-behavior:auto; } }


/* Match the management draw's colours and compact cards. */
.public-bracket-tree { background:#f8fafc; padding:24px; border:1px solid #dce5f2; border-radius:16px; overflow-anchor:none; }
.public-bracket-tree .bracket-tree-columns { --bracket-column-width:clamp(270px,calc((1280px - 48px - (var(--bracket-rounds) - 1) * 32px) / var(--bracket-rounds)),310px); --bracket-gap:32px; display:grid; align-items:stretch; padding:0; }
.public-bracket-tree .bracket-matches-stack { justify-content:initial; flex:initial; padding:0; }
.public-bracket-tree .bracket-round-header { min-height:48px; border-radius:12px; }
.public-bracket-tree .bracket-match-card { min-height:0; box-shadow:none; border-radius:12px; margin:0; }
.public-bracket-tree .bracket-match-card.is-completed { border-color:#86d9aa; }
.public-bracket-tree .bracket-team-entry { min-height:46px; }
.public-bracket-tree .bracket-team-entry.is-winner { background:#f0fdf6; box-shadow:inset 4px 0 #16a34a; }
.public-bracket-tree .bracket-team-entry.is-winner .team-name { color:#008943; }
.public-bracket-tree .bracket-team-entry.is-loser .team-name { color:#7b8190; }
.public-bracket-tree .bracket-team-entry .team-name { white-space:normal; overflow-wrap:anywhere; }
.public-bracket-tree .bracket-team-entry.is-winner .set-score-digit { color:#0f172a; background:#f1f5f9; }
.public-bracket-tree .set-score-digit.is-set-winner,.public-bracket-tree .bracket-team-entry.is-winner .set-score-digit.is-set-winner { color:#008943; background:#dcfce7; border:1px solid #a7f3c4; }
.public-bracket-tree .bracket-winner-check { color:#16a34a; }
.public-bracket-tree .bracket-origin-pill.origin-second-place { color:#a855f7; background:#faf5ff; border-color:#e9d5ff; }
@media(max-width:768px) {
 .public-bracket-tree { padding:12px; }
 .public-bracket-tree .bracket-tree-columns { --bracket-column-width:calc(100vw - 5rem); --bracket-gap:28px; }
 .public-bracket-tree .bracket-match-topbar { min-height:48px; }
}
