/* ====================================================
   赛程对战控制台 · 清爽紧凑小宫格样式 (Mini Grid UI)
==================================================== */

.view-pane#view-bracket {
  display: none;
}
.view-pane#view-bracket.active {
  display: flex;
  flex-direction: column;
  height: calc(100vh - 110px);
}

.bracket-toolbar {
  padding: 10px 14px;
  background: #ffffff;
  border-radius: 10px;
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  flex: none;
  margin-bottom: 12px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.03);
}

.bracket-canvas-area {
  flex: 1;
  overflow: auto;
  padding: 12px;
  background: #f1f5f9;
  border-radius: 12px;
  border: 1px solid var(--border);
  position: relative;
  max-height: calc(100vh - 160px);
}

.bracket-scroll-wrapper {
  display: flex;
  gap: 10px;
  min-width: max-content;
  align-items: flex-start;
}

/* 轮次紧凑列 */
.bracket-column {
  display: flex;
  flex-direction: column;
  width: 120px;
  min-width: 120px;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 8px 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.03);
  transition: width .2s cubic-bezier(.2,.8,.2,1);
}

/* 展开为双列模式 (纵向高度大幅减半) */
.bracket-column.multi-column {
  width: 248px;
  min-width: 248px;
}
.bracket-column.multi-column .bracket-column-matches {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}

.bracket-column-title {
  font-size: 11px;
  font-weight: 800;
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 6px;
  margin-bottom: 6px;
  border-bottom: 1px dashed var(--border);
}

.btn-col-toggle {
  background: rgba(67, 83, 200, 0.08);
  border: 1px solid rgba(67, 83, 200, 0.2);
  color: var(--primary);
  border-radius: 4px;
  font-size: 9.5px;
  padding: 1px 5px;
  cursor: pointer;
  font-weight: 700;
  transition: all .15s;
}
.btn-col-toggle:hover {
  background: var(--primary);
  color: #fff;
}

/* 比赛卡片 (紧凑小宫格) */
.match-card-admin {
  background: #ffffff;
  border: 1.2px solid var(--border);
  border-radius: 6px;
  padding: 4px 6px;
  cursor: pointer;
  transition: all .15s cubic-bezier(.2,.8,.2,1);
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  margin-bottom: 6px;
}
.match-card-admin:last-child {
  margin-bottom: 0;
}
.match-card-admin:hover {
  border-color: var(--primary);
  box-shadow: 0 4px 12px rgba(67, 83, 200, 0.15);
  transform: translateY(-1px);
}

.match-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 9.5px;
  color: var(--ink3);
  margin-bottom: 3px;
  font-weight: 700;
}

.match-card-slot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2.5px 5px;
  border-radius: 4px;
  background: #f8fafc;
  margin-bottom: 2px;
  font-size: 11px;
}
.match-card-slot:last-child {
  margin-bottom: 0;
}
.match-card-slot.winner {
  background: #dcfce7;
  color: #15803d;
  font-weight: 800;
}
.slot-name {
  max-width: 76px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.slot-score {
  font-weight: 800;
  color: #d97706;
  font-size: 11px;
}
.match-card-slot.winner .slot-score {
  color: #15803d;
}

/* 🏆 最终荣誉领奖台专有列 */
.bracket-column.podium-column {
  width: 155px;
  min-width: 155px;
  background: linear-gradient(180deg, #fffbeb 0%, #ffffff 100%);
  border: 1.5px solid #fde68a;
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.12);
}

.podium-rank-slot-admin {
  background: #ffffff;
  border: 1.2px solid #e2e8f0;
  border-radius: 8px;
  padding: 6px 8px;
  margin-bottom: 7px;
  cursor: pointer;
  transition: all .18s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
}
.podium-rank-slot-admin:last-child {
  margin-bottom: 0;
}
.podium-rank-slot-admin:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}
.podium-rank-slot-admin.rank-champ {
  border-color: #f59e0b;
  background: linear-gradient(135deg, #fffbeb, #ffffff);
}
.podium-rank-slot-admin.rank-champ:hover {
  box-shadow: 0 6px 18px rgba(245, 158, 11, 0.25);
}
.podium-rank-slot-admin.rank-runner {
  border-color: #94a3b8;
  background: linear-gradient(135deg, #f8fafc, #ffffff);
}
.podium-rank-slot-admin.rank-third {
  border-color: #d97706;
  background: linear-gradient(135deg, #fff7ed, #ffffff);
}
.podium-rank-slot-admin.rank-fourth {
  border-color: #cbd5e1;
  background: linear-gradient(135deg, #f8fafc, #ffffff);
}

.podium-rank-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 10.5px;
  font-weight: 800;
  margin-bottom: 4px;
}
.podium-rank-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
}
.podium-player-name {
  font-size: 12.5px;
  font-weight: 900;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: 3px;
}
.podium-status-tag {
  font-size: 9px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 4px;
  white-space: nowrap;
}
.podium-status-tag.auto { background: #dcfce7; color: #166534; }
.podium-status-tag.manual { background: #e0e7ff; color: #3730a3; }
.podium-status-tag.pending { background: #f1f5f9; color: #64748b; }

