.bracket-legend{display:flex;flex-wrap:wrap;gap:18px;margin:0 0 14px;padding:12px 16px;background:#fff;border:1px solid #e8edf4;border-radius:12px;color:#667085;font-size:12px}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.legend-dot.pending{background:#98a2b3}.legend-dot.playing{background:#f79009}.legend-dot.done{background:#15966b}.bracket-wrap{overflow:auto!important;background:linear-gradient(145deg,#eaf1f9,#f8fbff)!important;border:1px solid #dce6f1;border-radius:18px!important;padding:24px!important;min-height:780px}.tournament-bracket{display:grid!important;grid-template-columns:repeat(5,280px)!important;gap:56px!important;min-width:1625px!important;height:100%}.tournament-bracket .round{display:flex;width:auto!important;flex-direction:column;min-width:0;gap:0!important}.round-title{text-align:center;margin-bottom:22px;background:#0b2447;color:#fff;padding:12px;border-radius:12px;box-shadow:0 6px 16px rgba(11,36,71,.16)}.round-title span,.round-title small{display:block}.round-title span{font-size:14px;font-weight:800}.round-title small{font-size:10px;opacity:.7;margin-top:3px}.round-matches{flex:1;display:flex;flex-direction:column;justify-content:space-around;gap:18px}.bracket-match{display:block;position:relative;background:#fff;border-radius:13px!important;padding:0!important;text-decoration:none;color:#14213d;border:1px solid #dce5ef!important;border-left:1px solid #dce5ef!important;box-shadow:0 7px 20px rgba(30,55,85,.09)!important;transition:.2s;z-index:2;overflow:visible}.bracket-match:hover{transform:translateY(-2px);border-color:#8bb2f8!important;box-shadow:0 10px 26px rgba(21,94,239,.14)!important;color:#14213d}.match-meta{display:flex;align-items:center;justify-content:space-between;padding:7px 11px;background:#f5f8fc;border-radius:12px 12px 0 0;border-bottom:1px solid #e8edf4}.match-meta b{color:#155eef;font-size:11px}.match-meta span{text-transform:capitalize;color:#667085;font-size:9px;font-weight:800}.status-completed .match-meta,.status-wo .match-meta{background:#ecf9f4}.status-ongoing .match-meta{background:#fff6e8}.competitor{display:grid!important;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:38px;padding:7px 10px;border-bottom:1px solid #edf1f5}.competitor strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.competitor.is-winner{background:#eaf8f2;color:#086a4d}.competitor.is-winner strong:after{content:" ✓";color:#15966b}.team-seed{width:22px;height:22px;display:grid;place-items:center;background:#edf2f7;color:#667085;border-radius:6px;font-size:9px;font-weight:800}.is-winner .team-seed{background:#15966b;color:#fff}.game-points{display:flex!important;gap:4px}.game-points b{display:grid;place-items:center;min-width:22px;height:24px;padding:0 4px;border-radius:5px;background:#f0f3f7;color:#667085;font-size:11px}.game-points b.won{background:#d9f2e8;color:#087755}.winner-label{position:absolute;left:12px;bottom:-18px;color:#087755;font-size:9px;font-weight:700;white-space:nowrap}.winner-label i{color:#eaaa08}.round-preliminary .bracket-match:after,.round-quarterfinal .bracket-match:after,.round-semifinal .bracket-match:after{content:"";position:absolute;right:-57px;top:50%;width:57px;border-top:2px solid #9fb2c8;z-index:-1}.round-final .round-matches,.round-third_place .round-matches{justify-content:center}.round-final .round-title{background:linear-gradient(135deg,#b7791f,#eaaa08)}.round-third_place .round-title{background:linear-gradient(135deg,#7b8798,#52606d)}.round-final .bracket-match{border-color:#e9c46a!important;box-shadow:0 8px 26px rgba(234,170,8,.15)!important}.bracket-note{display:flex;gap:13px;align-items:flex-start;margin-top:14px;padding:15px 18px;background:#edf4ff;border-radius:12px;color:#355070}.bracket-note>i{font-size:20px;color:#155eef}.bracket-note b{font-size:13px}.bracket-note p{font-size:12px;margin:3px 0 0}@media(max-width:700px){.bracket-wrap{padding:14px!important;min-height:650px}.tournament-bracket{grid-template-columns:repeat(5,250px)!important;gap:42px!important;min-width:1418px!important}.round-preliminary .bracket-match:after,.round-quarterfinal .bracket-match:after,.round-semifinal .bracket-match:after{right:-43px;width:43px}.bracket-legend{gap:10px}}@media print{.bracket-legend,.bracket-note{display:none}.bracket-wrap{min-height:auto;background:#fff!important;border:0}.tournament-bracket{transform:scale(.68);transform-origin:top left}}
