/* ==========================================================
   Ablaufplan: Zeitleiste, Zeitplan-Kasten, Terminkollisionen
   ========================================================== */

.ablauf-absatz { max-width: 860px; margin: -0.25rem 0 1.25rem; line-height: 1.55; }
.ablauf-tagtitel { font-size: 1.15rem; margin: 1.75rem 0 0.75rem; }
.ablauf-tagtitel--klein { font-size: 1rem; margin-top: 1.25rem; }
.ablauf-hinweis { font-size: 0.8rem; color: var(--warning); }

/* --- Zeitleiste --- */
.ablauf-tag {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 0.75rem 1rem 1rem;
}
.ablauf-skala { position: relative; height: 1.3rem; margin: 0 0 0.35rem; }
.ablauf-skala__marke {
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    font-size: 0.72rem;
    color: var(--text-secondary);
    white-space: nowrap;
}
.ablauf-skala__marke:first-child { transform: none; }
.ablauf-skala__marke:last-child { transform: translateX(-100%); }

.ablauf-zeile { padding: 0.45rem 0 0.55rem; border-top: 1px solid var(--border); }
.ablauf-zeile:first-of-type { border-top: 0; }
.ablauf-zeile__kopf { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.6rem; margin-bottom: 0.35rem; }
.ablauf-zeile__name { font-weight: 700; color: var(--text-primary); }
.ablauf-zeile__name:hover { color: var(--accent); }
.ablauf-zeile__zeit { font-size: 0.8rem; color: var(--text-secondary); }
.ablauf-zeile--meins { background: rgba(0, 255, 170, 0.05); border-radius: var(--radius); padding-left: 0.5rem; padding-right: 0.5rem; }
.ablauf-zeile--kollision .ablauf-zeile__name { color: #fca5a5; }

.ablauf-marke {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    color: var(--accent);
    border: 1px solid rgba(0, 255, 170, 0.45);
}
.ablauf-marke--live { color: #f87171; border-color: rgba(248, 113, 113, 0.5); }

.ablauf-spur {
    position: relative;
    height: 30px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 6px;
    overflow: hidden;
}
.ablauf-spur__linie { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(255, 255, 255, 0.06); }

.ablauf-runde {
    position: absolute;
    top: 4px;
    bottom: 4px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--spielfarbe, #8b5cf6) 55%, transparent);
    border: 1px solid var(--spielfarbe, #8b5cf6);
    overflow: hidden;
    display: flex;
    align-items: center;
    min-width: 3px;
}
.ablauf-runde--finale { background: var(--spielfarbe, #8b5cf6); }
.ablauf-runde__text {
    font-size: 0.68rem;
    font-weight: 600;
    color: #0f0f1a;
    padding: 0 0.35rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ablauf-runde:not(.ablauf-runde--finale) .ablauf-runde__text { color: #fff; }

/* Rote Baender: hier spielst du zwei Turniere gleichzeitig */
.ablauf-band {
    position: absolute;
    top: 0;
    bottom: 0;
    pointer-events: auto;
    border-left: 2px solid #ef4444;
    border-right: 2px solid #ef4444;
}
.ablauf-band--sicher {
    background: repeating-linear-gradient(135deg, rgba(239, 68, 68, 0.55) 0 6px, rgba(239, 68, 68, 0.25) 6px 12px);
}
.ablauf-band--moeglich {
    background: repeating-linear-gradient(135deg, rgba(251, 146, 60, 0.45) 0 6px, rgba(251, 146, 60, 0.12) 6px 12px);
    border-color: #fb923c;
}

.ablauf-legende { display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; margin: 0.75rem 0 0; font-size: 0.8rem; color: var(--text-secondary); }
.ablauf-legende > span { display: inline-flex; align-items: center; gap: 0.4rem; }
.ablauf-legende__runde { width: 22px; height: 12px; border-radius: 3px; background: rgba(139, 92, 246, 0.55); border: 1px solid #8b5cf6; }
.ablauf-legende__runde--finale { background: #8b5cf6; }
.ablauf-legende__meins { width: 22px; height: 12px; border-radius: 3px; background: rgba(0, 255, 170, 0.15); border: 1px solid rgba(0, 255, 170, 0.45); }
.ablauf-legende__band { position: static; display: inline-block; width: 22px; height: 12px; }

/* --- Tabellen --- */
.ablauf-tabelle-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-lg); }
.ablauf-tabelle { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.ablauf-tabelle th, .ablauf-tabelle td { padding: 0.55rem 0.7rem; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
.ablauf-tabelle th { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-secondary); background: var(--bg-card); white-space: nowrap; }
.ablauf-tabelle tr:last-child td { border-bottom: 0; }
.ablauf-tabelle--meins td { background: rgba(0, 255, 170, 0.05); }
.ablauf-tabelle__grundlage { font-size: 0.78rem; color: var(--text-secondary); line-height: 1.45; }
.ablauf-tabelle__ergebnis { font-size: 0.82rem; line-height: 1.45; min-width: 180px; }
.ablauf-tabelle--eingabe .form-control { padding: 0.35rem 0.5rem; min-width: 0; }
.ablauf-tabelle--eingabe input[type="datetime-local"] { min-width: 190px; }
.ablauf-zahl { width: 88px; }
.ablauf-planung .form-actions { margin-top: 1rem; }

/* --- Terminkollision --- */
.ablauf-warnung {
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.45);
    border-left: 4px solid #ef4444;
    border-radius: var(--radius);
    padding: 0.8rem 1rem;
    margin: 0 0 1.25rem;
    color: #fee2e2;
    line-height: 1.5;
}
.ablauf-warnung ul { margin: 0.4rem 0 0.4rem 1.2rem; }
.ablauf-warnung__moeglich { color: #fed7aa; }
.ablauf-warnung__fuss { display: block; font-size: 0.82rem; opacity: 0.85; }
.ablauf-warnung--klein { margin: 0.75rem 0 0; font-size: 0.9rem; }

/* --- Zeitplan-Kasten auf der Turnierseite --- */
.zeitplan-box {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 1rem 1.15rem;
    margin: 1rem 0;
    line-height: 1.55;
}
.zeitplan-box__titel { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-secondary); margin-bottom: 0.35rem; }
.zeitplan-box__zeile { margin: 0.15rem 0; }
.zeitplan-box__runden { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.5rem 0; }
.zeitplan-box__runden span {
    font-size: 0.78rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: var(--bg-card-alt);
    border: 1px solid var(--border);
}
.zeitplan-box__grundlage { font-size: 0.8rem; color: var(--text-secondary); }

/* --- Lineup: Spieler mit Ueberschneidung --- */
.lineup-kollision {
    display: block;
    flex-basis: 100%;
    padding-left: 2.1rem;
    font-size: 0.78rem;
    color: #fca5a5;
    margin-top: 0.2rem;
    line-height: 1.4;
}
.lineup-kollision--moeglich { color: #fdba74; }
.lineup-trotzdem {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.75rem 0 0;
    padding: 0.6rem 0.8rem;
    border: 1px solid rgba(239, 68, 68, 0.45);
    border-radius: var(--radius);
    background: rgba(239, 68, 68, 0.08);
    cursor: pointer;
}
.lineup-trotzdem input { width: 18px; height: 18px; accent-color: #ef4444; }

@media (max-width: 640px) {
    .ablauf-tag { padding: 0.6rem 0.6rem 0.8rem; }
    .ablauf-runde__text { padding: 0 0.2rem; font-size: 0.62rem; }
    .ablauf-tabelle th, .ablauf-tabelle td { padding: 0.45rem 0.5rem; }
}
