/* Fixed card geometry keeps every advancing match centered on its feeders. */
.de-board { gap: 38px; }
.de-tree-lane { min-width: 0; padding: 18px 0; }
.de-tree-lane > h2 { margin: 0 0 18px; font-size: 16px; font-weight: 700; }
.de-tree-scroll { max-width: 100%; overflow: auto; padding-bottom: 14px; scrollbar-color: #555760 #202126; }
.de-tree-scroll:focus-visible { outline: 1px solid var(--accent); outline-offset: 4px; }
.de-tree-canvas { position: relative; isolation: isolate; }
.de-tree-lines { position: absolute; left: 0; pointer-events: none; z-index: -1; }
.de-tree-lines path { fill: none; stroke: #7d808a; stroke-width: 1.4; }
.de-tree-node { position: absolute; }
.de-tree-round-title { position: absolute; top: 0; font-size: 12px; color: var(--muted); }
.de-tree-node .de-match-card { height: 100%; padding: 5px; border-radius: 5px; box-sizing: border-box; background: #2b2d34; box-shadow: none; }
.de-tree-node .de-match-card-top { height: 16px; margin: 0 3px 4px; font-size: 9px; }
.de-tree-node .de-team-row { height: 27px; min-height: 0; padding: 3px 6px; box-sizing: border-box; border-radius: 2px; gap: 7px; }
.de-tree-node .de-team-row + .de-team-row { margin-top: 2px; }
.de-tree-node .de-team-name { font-size: 12px; font-weight: 500; }
.de-tree-node .de-team-logo { height: 20px; width: 20px; }
.de-tree-node .de-team-score { font-size: 12px; }
.de-tree-node .de-team-row.is-winner { background: rgba(245,196,0,.12); }
.de-tree-node .de-team-row.is-tbd .de-team-name { font-size: 11px; }
.de-tree-node .de-team-selects { margin: 10px 3px; }
.de-tree-node .de-result-btn { width: calc(100% - 6px); margin: 6px 3px 0; }
.de-grand-final { border-color: rgba(245,196,0,.25); }
@media (max-width: 600px) {
  .de-tree-lane { padding: 8px 0; }
  .de-board { gap: 26px; }
}
