/* ——— Bracket tree 1:1 ——— */
.bt-wrap { margin-top: 0.25rem; }
.bt-heading { margin: 0 0 0.75rem; }
.bt-side { margin-bottom: 2rem; }
.bt-side-title { font-size: 0.8rem; color: var(--muted); margin: 0 0 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.bt-tree { display: flex; gap: 0; overflow-x: auto; padding: 0.35rem 0 1.5rem; align-items: stretch; }
.bt-col { min-width: 250px; display: flex; flex-direction: column; }
.bt-col-title { font-size: 0.78rem; font-weight: 800; color: #94A3B8; text-align: center; margin-bottom: 0.85rem; }
.bt-col-stack { display: flex; flex-direction: column; justify-content: space-around; gap: 1.6rem; flex: 1; padding-right: 28px; }
.bt-slot { position: relative; }
/* Match number: to the left of the card, level with its middle */
.bt-slot.has-no { padding-left: 2.7rem; }
.bt-no { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 2.4rem; text-align: right; padding-right: .35rem; font-weight: 800; font-size: .9rem; color: var(--primary, #2563eb); font-variant-numeric: tabular-nums; }
.bt-tree.numbered .bt-col { min-width: 294px; }
.bt-slot:after {
  content: '';
  position: absolute;
  right: -28px;
  top: 50%;
  width: 28px;
  height: 2px;
  background: #CBD5E1;
}
.bt-col:last-child .bt-slot:after { display: none; }
.bt-slot.join:before {
  content: '';
  position: absolute;
  right: -28px;
  width: 2px;
  background: #CBD5E1;
  top: 50%;
  height: calc(50% + 0.8rem);
}
.bt-slot.join-top:before { top: 50%; }
.bt-slot.join-bot:before { bottom: 50%; top: auto; height: calc(50% + 0.8rem); }

.bt-match {
  background: #fff;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(15,23,42,.07);
  position: relative;
  min-width: 222px;
}
.bt-meta { font-size: 0.7rem; color: #94A3B8; padding: 0.4rem 0.7rem 0.15rem; font-weight: 600; }
.bt-player { display: flex; align-items: center; padding: 0.48rem 0.55rem 0.48rem 0.55rem; gap: 0.45rem; background: #F8FAFC; }
.bt-player + .bt-player { border-top: 1px solid #E2E8F0; }
.bt-seed {
  width: 20px; height: 20px; border-radius: 50%;
  background: #E2E8F0; color: #64748B;
  font-size: 0.68rem; font-weight: 800;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.bt-name { font-weight: 700; font-size: 0.88rem; color: #475569; flex: 1; min-width: 0; }
.bt-score { min-width: 28px; text-align: center; font-weight: 800; background: #E2E8F0; color: #334155; border-radius: 7px; padding: 0.12rem 0.38rem; }
.bt-player.win { background: #FBBF24; }
.bt-player.win .bt-name { color: #0F172A; }
.bt-player.win .bt-seed { background: #F59E0B; color: #fff; }
.bt-player.win .bt-score { background: #0D9488; color: #fff; }
.bt-player.lose .bt-name { color: #94A3B8; }
.bt-player.tbd .bt-name { color: #CBD5E1; font-weight: 600; }
.bt-place {
  position: absolute; right: -8px; top: 50%; transform: translateY(-50%);
  background: #F59E0B; color: #fff; font-size: 0.65rem; font-weight: 800;
  padding: 0.18rem 0.42rem; border-radius: 6px; z-index: 2;
}
.bt-place.p3 { background: #B45309; }

.bt-champ {
  min-width: 180px; align-self: center; margin: auto 0 auto 8px;
  border: 1px solid #E2E8F0; border-radius: 16px; padding: 1.1rem 1rem;
  text-align: center; background: #fff; box-shadow: 0 10px 28px rgba(15,23,42,.07);
}
.bt-champ .cup { font-size: 1.6rem; }
.bt-champ strong { display:block; margin-top: 0.35rem; font-size: 1.05rem; }
.bt-champ span { color: var(--muted); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }

.ml-list { display: flex; flex-direction: column; gap: 0.55rem; }
.ml-row { border: 1px solid var(--border); border-radius: 12px; padding: 0.7rem 0.9rem; background: #fff; box-shadow: 0 4px 14px rgba(15,23,42,.04); }
.ml-row.done { background: #F8FAFC; }
.ml-when { font-size: 0.78rem; color: var(--muted); margin-bottom: 0.2rem; }
.ml-vs { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; font-weight: 700; }
.ml-score { color: var(--primary); font-variant-numeric: tabular-nums; }
.ml-vs .win { color: #0D9488; }

.org-adv { display:grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
@media (max-width: 700px) { .org-adv { grid-template-columns: 1fr; } }
