/* ================================================================ Tournament Bracket — bkbg-bk-* ================================================================ */ /* ── Wrapper ──────────────────────────────────────────────────── */ .bkbg-bk-block { padding: 24px; box-sizing: border-box; overflow-x: auto; } /* ── Title ───────────────────────────────────────────────────── */ .bkbg-bk-title { margin: 0 0 20px; text-align: center; font-family: var(--bkbg-bkt-title-font-family, inherit); font-weight: var(--bkbg-bkt-title-font-weight, 800); font-style: var(--bkbg-bkt-title-font-style, normal); text-transform: var(--bkbg-bkt-title-text-transform, none); text-decoration: var(--bkbg-bkt-title-text-decoration, none); font-size: var(--bkbg-bkt-title-font-size-d, 20px); line-height: var(--bkbg-bkt-title-line-height-d, 1.3); letter-spacing: var(--bkbg-bkt-title-letter-spacing-d, normal); word-spacing: var(--bkbg-bkt-title-word-spacing-d, normal); } /* ── Grid (rounds + champion columns) ───────────────────────── */ .bkbg-bk-grid { display: flex; align-items: stretch; gap: 0; min-width: max-content; } /* ── Round column ─────────────────────────────────────────────── */ .bkbg-bk-round { flex: 1; min-width: 180px; display: flex; flex-direction: column; } .bkbg-bk-champion-col { min-width: 160px; flex: 0 0 160px; } /* ── Round label ─────────────────────────────────────────────── */ .bkbg-bk-round-label { text-align: center; padding: 0 12px 12px; height: 30px; display: flex; align-items: flex-end; justify-content: center; font-family: var(--bkbg-bkt-label-font-family, inherit); font-weight: var(--bkbg-bkt-label-font-weight, 700); font-style: var(--bkbg-bkt-label-font-style, normal); text-transform: var(--bkbg-bkt-label-text-transform, uppercase); text-decoration: var(--bkbg-bkt-label-text-decoration, none); font-size: var(--bkbg-bkt-label-font-size-d, 11px); line-height: var(--bkbg-bkt-label-line-height-d, 1.3); letter-spacing: var(--bkbg-bkt-label-letter-spacing-d, 0.08em); word-spacing: var(--bkbg-bkt-label-word-spacing-d, normal); } /* ── Matches container ───────────────────────────────────────── */ .bkbg-bk-matches { flex: 1; display: flex; flex-direction: column; justify-content: space-around; padding: 0 8px; position: relative; } /* Connector lines: right border + before vertical */ .bkbg-bk-round:not(.bkbg-bk-champion-col) .bkbg-bk-matches::after { content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 1px; background: linear-gradient(to bottom, transparent 0%, var(--bkbg-bk-connector, #cbd5e1) 10%, var(--bkbg-bk-connector, #cbd5e1) 90%, transparent 100%); pointer-events: none; } /* ── Match card ──────────────────────────────────────────────── */ .bkbg-bk-match { border: 1px solid; border-radius: 8px; overflow: hidden; margin: 6px 0; position: relative; } /* Horizontal connector (right side of each match going to next round) */ .bkbg-bk-round:not(.bkbg-bk-champion-col) .bkbg-bk-match::after { content: ''; position: absolute; right: -9px; top: 50%; width: 8px; height: 1px; background: var(--bkbg-bk-connector, #cbd5e1); pointer-events: none; z-index: 1; } /* ── Team row ────────────────────────────────────────────────── */ .bkbg-bk-team { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid rgba(0,0,0,.06); transition: background .12s, color .12s; user-select: none; font-family: var(--bkbg-bkt-team-font-family, inherit); font-weight: var(--bkbg-bkt-team-font-weight, 500); font-style: var(--bkbg-bkt-team-font-style, normal); text-transform: var(--bkbg-bkt-team-text-transform, none); text-decoration: var(--bkbg-bkt-team-text-decoration, none); font-size: var(--bkbg-bkt-team-font-size-d, 13px); line-height: var(--bkbg-bkt-team-line-height-d, 1.3); letter-spacing: var(--bkbg-bkt-team-letter-spacing-d, normal); word-spacing: var(--bkbg-bkt-team-word-spacing-d, normal); } .bkbg-bk-team:last-child { border-bottom: none; } .bkbg-bk-team.is-available:hover { filter: brightness(.95); } .bkbg-bk-team.is-winner { font-weight: 700; border: 1px solid; } .bkbg-bk-team.is-loser { text-decoration: line-through; opacity: .5; } .bkbg-bk-win-icon { font-size: 11px; flex-shrink: 0; } .bkbg-bk-team-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* ── Champion card ───────────────────────────────────────────── */ .bkbg-bk-champion { border: 2px solid; text-align: center; padding: 16px 12px; margin: 6px 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 70px; } .bkbg-bk-champion-label { font-size: 12px; font-weight: 700; letter-spacing: .05em; } .bkbg-bk-champion-name { font-size: 16px; font-weight: 800; line-height: 1.3; } /* ── Editor note ─────────────────────────────────────────────── */ .bkbg-bk-editor-hint { font-size: 11px; color: #94a3b8; text-align: center; margin-top: 8px; font-style: italic; } /* ── Editor inline editing ───────────────────────────────────── */ .bkbg-bk-editor-wrap [contenteditable]:hover { outline: 2px dashed rgba(99,102,241,.4); outline-offset: 2px; } /* === Typography responsive === */ @media (max-width: 1024px) { .bkbg-bk-title { font-size: var(--bkbg-bkt-title-font-size-t, var(--bkbg-bkt-title-font-size-d, 20px)); line-height: var(--bkbg-bkt-title-line-height-t, var(--bkbg-bkt-title-line-height-d, 1.3)); letter-spacing: var(--bkbg-bkt-title-letter-spacing-t, var(--bkbg-bkt-title-letter-spacing-d, normal)); word-spacing: var(--bkbg-bkt-title-word-spacing-t, var(--bkbg-bkt-title-word-spacing-d, normal)); } .bkbg-bk-team { font-size: var(--bkbg-bkt-team-font-size-t, var(--bkbg-bkt-team-font-size-d, 13px)); line-height: var(--bkbg-bkt-team-line-height-t, var(--bkbg-bkt-team-line-height-d, 1.3)); letter-spacing: var(--bkbg-bkt-team-letter-spacing-t, var(--bkbg-bkt-team-letter-spacing-d, normal)); word-spacing: var(--bkbg-bkt-team-word-spacing-t, var(--bkbg-bkt-team-word-spacing-d, normal)); } .bkbg-bk-round-label { font-size: var(--bkbg-bkt-label-font-size-t, var(--bkbg-bkt-label-font-size-d, 11px)); line-height: var(--bkbg-bkt-label-line-height-t, var(--bkbg-bkt-label-line-height-d, 1.3)); letter-spacing: var(--bkbg-bkt-label-letter-spacing-t, var(--bkbg-bkt-label-letter-spacing-d, 0.08em)); word-spacing: var(--bkbg-bkt-label-word-spacing-t, var(--bkbg-bkt-label-word-spacing-d, normal)); } } @media (max-width: 767px) { .bkbg-bk-title { font-size: var(--bkbg-bkt-title-font-size-m, var(--bkbg-bkt-title-font-size-t, var(--bkbg-bkt-title-font-size-d, 20px))); line-height: var(--bkbg-bkt-title-line-height-m, var(--bkbg-bkt-title-line-height-t, var(--bkbg-bkt-title-line-height-d, 1.3))); letter-spacing: var(--bkbg-bkt-title-letter-spacing-m, var(--bkbg-bkt-title-letter-spacing-t, var(--bkbg-bkt-title-letter-spacing-d, normal))); word-spacing: var(--bkbg-bkt-title-word-spacing-m, var(--bkbg-bkt-title-word-spacing-t, var(--bkbg-bkt-title-word-spacing-d, normal))); } .bkbg-bk-team { font-size: var(--bkbg-bkt-team-font-size-m, var(--bkbg-bkt-team-font-size-t, var(--bkbg-bkt-team-font-size-d, 13px))); line-height: var(--bkbg-bkt-team-line-height-m, var(--bkbg-bkt-team-line-height-t, var(--bkbg-bkt-team-line-height-d, 1.3))); letter-spacing: var(--bkbg-bkt-team-letter-spacing-m, var(--bkbg-bkt-team-letter-spacing-t, var(--bkbg-bkt-team-letter-spacing-d, normal))); word-spacing: var(--bkbg-bkt-team-word-spacing-m, var(--bkbg-bkt-team-word-spacing-t, var(--bkbg-bkt-team-word-spacing-d, normal))); } .bkbg-bk-round-label { font-size: var(--bkbg-bkt-label-font-size-m, var(--bkbg-bkt-label-font-size-t, var(--bkbg-bkt-label-font-size-d, 11px))); line-height: var(--bkbg-bkt-label-line-height-m, var(--bkbg-bkt-label-line-height-t, var(--bkbg-bkt-label-line-height-d, 1.3))); letter-spacing: var(--bkbg-bkt-label-letter-spacing-m, var(--bkbg-bkt-label-letter-spacing-t, var(--bkbg-bkt-label-letter-spacing-d, 0.08em))); word-spacing: var(--bkbg-bkt-label-word-spacing-m, var(--bkbg-bkt-label-word-spacing-t, var(--bkbg-bkt-label-word-spacing-d, normal))); } }