/* WFSC 2026 — DJ App. Nur Layout-Ergänzungen, keine neuen Farben (siehe tokens.css). */

.page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 20px 60px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.error-banner {
  background: rgba(255, 77, 109, 0.12);
  border: 1px solid var(--danger);
  color: var(--danger);
  border-radius: var(--radius);
  padding: 12px 16px;
  font-weight: 600;
}

/* ---------- Currently Skating ---------- */
.current-card {
  border-color: var(--g-cyan);
}

.current-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.current-head h2 { margin: 0; }

.current-body {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.current-photo {
  width: 96px;
  height: 96px;
  border-radius: var(--radius);
  object-fit: cover;
  border: 1px solid var(--border);
  background: var(--surface-2);
  flex-shrink: 0;
}

.current-initials {
  width: 96px;
  height: 96px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--surface-2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-condensed);
  font-weight: 700;
  font-size: 2em;
  color: var(--muted);
  flex-shrink: 0;
}

.current-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 240px;
  flex: 1 1 240px;
}

.current-name {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-condensed);
  font-weight: 700;
  font-style: italic;
  font-size: 1.6em;
  text-transform: uppercase;
}

.current-startnr {
  font-family: var(--font-condensed);
  color: var(--g-cyan);
  font-weight: 700;
}

.current-songs,
.next-songs {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
}

.song-block {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.song-label {
  font-size: 0.75em;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}

.song-title {
  font-weight: 600;
}

/* ---------- Next Up ---------- */
.next-head {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.next-head h3 {
  margin: 0 0 10px;
  font-size: 0.85em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}

.next-body {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  opacity: 0.85;
}

.next-name {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-condensed);
  font-weight: 700;
  font-size: 1.1em;
  text-transform: uppercase;
}

.next-startnr {
  font-family: var(--font-condensed);
  color: var(--muted);
  font-weight: 700;
}

/* ---------- Division picker + table ---------- */
.division-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 12px;
}

.division-head h2 { margin: 0; }

.division-select-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}

.division-select-wrap select {
  min-height: 44px;
  min-width: 220px;
  font-size: 1em;
}

.table-wrap {
  overflow-x: auto;
}

table { min-width: 720px; }

td, th { vertical-align: middle; }

tr.row-current td {
  background: rgba(41, 184, 230, 0.12);
}

.rider-cell {
  display: flex;
  align-items: center;
  gap: 10px;
}

.rider-cell .name {
  font-weight: 600;
}

.song-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.song-cell a { font-weight: 600; }

.song-none { color: var(--muted); }

.kuer-link {
  font-weight: 600;
}
