/* ==========================================================
   Gameserver: Serverseite und Adminbereich
   ========================================================== */

.server-absatz { max-width: 820px; margin: -0.25rem 0 1.25rem; line-height: 1.55; }
.server-ueberschrift { font-size: 1.2rem; margin: 2rem 0 0.75rem; }

.server-info {
    background: rgba(255, 170, 0, 0.08);
    border: 1px solid rgba(255, 170, 0, 0.35);
    border-radius: var(--radius);
    padding: 0.85rem 1rem;
    margin-bottom: 1.25rem;
    line-height: 1.5;
}

/* --- Marken und Status --- */
.server-marke {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    border: 1px solid transparent;
    white-space: nowrap;
}
.server-marke--frei    { color: var(--accent); border-color: rgba(0, 255, 170, 0.45); background: rgba(0, 255, 170, 0.08); }
.server-marke--belegt  { color: #fbbf24; border-color: rgba(251, 191, 36, 0.45); background: rgba(251, 191, 36, 0.08); }
.server-marke--wartung { color: #f97316; border-color: rgba(249, 115, 22, 0.45); background: rgba(249, 115, 22, 0.08); }
.server-marke--aus     { color: var(--text-secondary); border-color: var(--border-light); }

.server-status { font-size: 0.82rem; color: var(--text-secondary); white-space: nowrap; }
.server-status::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: 1px; background: transparent; }
.server-status:empty::before { display: none; }
.server-status--an::before  { background: var(--accent); box-shadow: 0 0 6px var(--accent); }
.server-status--aus::before { background: var(--error); }
.server-status--aus { color: var(--error); }
.server-status--unbekannt { white-space: normal; }

/* --- Serverseite --- */
.server-liste {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
}
.server-kachel {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    min-width: 0;
}
.server-kachel__kopf { display: flex; justify-content: space-between; align-items: flex-start; gap: 0.75rem; }
.server-kachel__text { margin: 0; line-height: 1.5; }

.server-karte__name { font-size: 1.05rem; margin: 0; }
.server-karte__meta { font-size: 0.85rem; color: var(--text-secondary); margin-top: 0.2rem; overflow-wrap: anywhere; }
.server-karte__meta code, .server-verbinden code { font-size: 0.85em; }

.server-verbinden { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.server-verbinden__daten {
    flex-basis: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    font-size: 0.85rem;
    color: var(--text-secondary);
    overflow-wrap: anywhere;
}
.server-beitreten { font-weight: 700; }

.server-mein {
    background: linear-gradient(135deg, rgba(0, 255, 170, 0.12), rgba(0, 170, 255, 0.08));
    border: 1px solid rgba(0, 255, 170, 0.45);
    border-radius: var(--radius-lg);
    padding: 1rem 1.1rem;
    margin-bottom: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.server-mein--wartet { background: rgba(251, 191, 36, 0.06); border-color: rgba(251, 191, 36, 0.4); }
.server-mein__text { display: flex; flex-direction: column; gap: 0.2rem; line-height: 1.45; }

/* --- Adminbereich --- */
/* admin-section hat nur in events.css einen Rahmen, hier deshalb eigener. */
.server-karte,
.server-warteschlange,
.server-turnier-liste {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 1rem 1.15rem;
    margin: 0 0 1rem;
}
.server-karte__kopf { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.server-karte__marken { display: flex; gap: 0.45rem; align-items: center; flex-wrap: wrap; }
.server-karte__hinweis { margin: 0.5rem 0 0; font-size: 0.88rem; }

.server-match {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    background: rgba(251, 191, 36, 0.06);
    border: 1px solid rgba(251, 191, 36, 0.3);
    border-radius: var(--radius);
    padding: 0.6rem 0.8rem;
    margin-bottom: 0.75rem;
}
.server-disput { color: var(--error); }

.server-knoepfe { display: flex; gap: 0.4rem; flex-wrap: wrap; align-items: center; }
.server-knoepfe form { display: inline; margin: 0; }
.server-knoepfe--fuss { margin-top: 0.9rem; padding-top: 0.75rem; border-top: 1px solid var(--border); }

.server-warteschlange ol { margin: 0.5rem 0 0 1.25rem; line-height: 1.7; }
.server-turnier {
    display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; flex-wrap: wrap;
    padding: 0.55rem 0; border-bottom: 1px solid var(--border);
}
.server-turnier:last-child { border-bottom: 0; }
.server-turnier form { margin: 0; }

.rcon { display: flex; flex-direction: column; gap: 0.55rem; }
.rcon__zeile { display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center; margin: 0; }
.rcon__titel { font-size: 0.8rem; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.04em; min-width: 150px; }
.rcon__feld { width: auto; min-width: 170px; flex: 0 1 220px; padding: 0.35rem 0.6rem; }
.rcon__feld--breit { flex: 1 1 280px; }
.rcon__ausgabe {
    background: #0b0b14;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0.6rem 0.75rem;
    font-size: 0.82rem;
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    margin: 0;
}
.rcon__ausgabe--fehler { border-color: var(--error); color: #ffb4b4; }
.rcon__protokoll { list-style: none; margin: 0; padding: 0; font-size: 0.78rem; color: var(--text-muted); }
.rcon__fehler { color: #ff8a8a; }
.rcon-skript { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 0.85rem; }

.server-haken { display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 600; }
.server-haken input { width: 18px; height: 18px; accent-color: var(--accent); }
.server-haken--klein { font-weight: 400; font-size: 0.85rem; margin-top: 0.4rem; }

/* --- Voice im Discord (Serverseite) --- */
.discord-voice { margin-top: 2rem; }
.discord-voice__kopf { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 0.75rem; flex-wrap: wrap; }
.discord-voice__titel { margin: 0 0 0.2rem; }
.discord-voice__kanaele {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.75rem;
}
.discord-kanal {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-left: 3px solid #5865f2;
    border-radius: var(--radius);
    padding: 0.6rem 0.8rem;
    min-width: 0;
}
.discord-kanal--leer { opacity: 0.55; border-left-color: var(--border-light); }
.discord-kanal__name { font-weight: 700; margin-bottom: 0.35rem; overflow-wrap: anywhere; }
.discord-kanal--leer .discord-kanal__name { margin-bottom: 0; }
.discord-mitglied { display: flex; align-items: center; gap: 0.5rem; padding: 0.2rem 0; flex-wrap: wrap; min-width: 0; }
.discord-mitglied__kuerzel {
    width: 24px; height: 24px; border-radius: 50%;
    background: rgba(88, 101, 242, 0.25); color: #c7ccff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.75rem; font-weight: 700; flex: none;
}
.discord-mitglied__name { overflow-wrap: anywhere; }
.discord-mitglied__marke { font-size: 0.72rem; color: #f97316; border: 1px solid rgba(249, 115, 22, 0.45); border-radius: 999px; padding: 0 0.45rem; }
.discord-mitglied__spiel { font-size: 0.78rem; color: var(--text-secondary); flex-basis: 100%; padding-left: 32px; }
.discord-voice__fuss { margin: 0.6rem 0 0; font-size: 0.85rem; }

/* --- Adminbereich Discord --- */
.discord-webhook label { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.discord-webhook__zeile { display: flex; gap: 0.5rem; }
.discord-webhook__zeile .form-control { flex: 1 1 auto; min-width: 0; }
.discord-art { font-weight: 400; margin: 0.35rem 0; }
.discord-ausgang__text { max-width: 520px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 0.85rem; }
/* Team-Sprachkanaele (admin/discord.php) */
.discord-bot-anleitung { margin: 0.75rem 0 1.25rem; }
.discord-bot-anleitung summary { cursor: pointer; font-weight: 700; }
.discord-bot-anleitung ol { margin: 0.6rem 0 0.4rem 1.25rem; padding: 0; }
.discord-bot-anleitung li { margin: 0.3rem 0; }
.discord-bot-knoepfe { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.discord-bot-titel { margin-top: 1.75rem; }
.discord-bot-zeile { margin: 0; }
.discord-bot-weg { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; margin-top: 1rem; }

@media (max-width: 768px) {
    .server-liste { grid-template-columns: 1fr; }
    .rcon__titel { min-width: 0; flex-basis: 100%; }
    .rcon__feld { flex: 1 1 100%; min-width: 0; }
    .server-kachel__kopf { flex-direction: column; }
    .discord-voice__kanaele { grid-template-columns: 1fr; }
    .discord-webhook__zeile { flex-direction: column; }
}

/* Serverseite fuer Gaeste (views/server/gast.php) */
.server-gast__knoepfe { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-top: 1rem; }

/* Minecraft-Whitelist (views/server/index.php) */
.mc-whitelist { margin-top: 1.5rem; }
.mc-whitelist__stand { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap; }
.mc-whitelist__form { display: flex; gap: 0.6rem; flex-wrap: wrap; margin: 0.6rem 0; }
.mc-whitelist__form .form-control { flex: 1 1 14rem; max-width: 22rem; }
