.bracket {
display: flex;
gap: 10px;
/*width: 100%;*/
overflow-x: auto;
}
.grand-final .match {
justify-content: flex-end;
}
.grand-final-round {height: 100%;}
.bracket-wrapper, .grand-final {
display: flex;
flex-direction: column;
row-gap: 10px;
}
.bracket-header, .bracket-rounds {
display: grid;
column-gap: 10px;
}
.bracket-header {
height: 26px;
text-align: center;
}
.bracket-header div:not(:empty) {
background-color: lightgrey;
}
.bracket-round {
display: flex;
flex-direction: column;
row-gap: 10px;
justify-content: space-around;
}
.round-offset .match {
margin-top: 28px;
}
/* CONNECTOR */
/* From middle of winning bracket to the right*/
.bracket .conn-r .match::after {
content: "";
position: absolute;
top: calc(50% - 1px);
right: -5px;
width: 5px;
height: 2px;
background-color: black;
}
/* Vertical line to middle of height of next rounds team element */
.bracket .conn-r .match::before {
content: "";
position: absolute;
top: 8px;
right: -5px;
width: 2px;
height: calc(50% - 8px);
background-color: black;
}
/* If rounds-offset is present (meaning that two adjacent rounds have same amount of matches) */
.bracket .round-offset .match::after {
content: "";
position: absolute;
top: calc(50% - 1px);
right: -5px;
width: 5px;
height: 2px;
background-color: black;
}
/* If vertical line needs to go down*/
.bracket .conn-r:not(.last) .match:nth-child(odd)::before {
top: 50%;
}
/* Adjust vertical line lengths if next round has round-offset */
.bracket .conn-r.conn-adj .match::before {
height: calc(50% - 23px);
top: 22px
}
.bracket .conn-r:not(.last).conn-adj .match:nth-child(odd)::before {
height: calc(50% + 6px);
}
/* If round is not the first child, then have line come out of the backs of teamnames */
.bracket .bracket-round:not(:first-child) .team::before,
.bracket .grand-final .team::before {
content: "";
position: absolute;
top: calc(50% - 1px);
left: 0;
width: 5px;
height: 2px;
background-color: black;
transform: translateX(-100%);
}
.bracket .bracket-round.long:not(:first-child) .team::before {
width: calc(100% + 15px);
}
.bracket .bracket-round.first .team::before {
content: none;
}
.bracket .bracket-round:not(:first-child) .match-details .team::before {
content: none;
}
.bracket.de .bracket-round:last-child .match::before {
height: calc(50% - 28px - 13px);
}
.bracket.de .bracket-round.last:last-child .match::before {
height: calc(50% + 26px + 10px + 10px + 14px + 1px);
top: auto;
bottom: 50%;
}