/* ------------------------------------- Öffentliche Liste ------------------------------------- */

.ev-section { padding-top: 2.5rem; text-align: left; max-width: 900px; margin: 0 auto; }
.ev-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.ev-card {
    display: flex;
    gap: 1.25rem;
    align-items: stretch;
    padding: 1.1rem;
    border-radius: 14px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    color: inherit;
    text-decoration: none;
    transition: border-color 0.2s ease, transform 0.2s ease;
}
.ev-card:hover { border-color: #4D21EB; transform: translateY(-2px); }
.ev-date {
    flex-shrink: 0;
    width: 74px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: radial-gradient(ellipse at top left, rgba(182, 255, 0, 0.18), transparent 60%), rgba(77, 33, 235, 0.35);
}
.ev-date-day { font-family: 'Valorant', sans-serif; font-size: 1.8rem; line-height: 1; }
.ev-date-month { font-size: 0.72rem; color: #c9bdff; margin-top: 0.3rem; }
.ev-card-body { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; }
.ev-title { font-size: 1.1rem; }
.ev-meta { font-size: 0.85rem; color: var(--font-secundary); }
.ev-badges { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.3rem; }
.ev-badge {
    padding: 0.05rem 0.55rem;
    border-radius: 999px;
    font: 600 0.72rem "Exo 2", system-ui, sans-serif;
    border: 1px solid var(--border);
    color: var(--font-secundary);
}
.ev-badge--open { border-color: rgba(182, 255, 0, 0.45); color: var(--brand-neon-lime); background: rgba(182, 255, 0, 0.08); }
.ev-badge--cancelled { border-color: rgba(230, 48, 76, 0.6); color: var(--brand-bright-red); }
.ev-badge--draft { border-color: rgba(255, 196, 0, 0.45); color: #ffd666; }
.ev-subtitle { font-size: 1rem; margin: 2.25rem 0 0.9rem; color: var(--font-secundary); letter-spacing: 0.05em; }
.ev-list--past { gap: 0.4rem; }
.ev-past { display: flex; gap: 1rem; padding: 0.6rem 0.9rem; border-radius: 10px; color: inherit; text-decoration: none; border: 1px solid var(--border); }
.ev-past:hover { border-color: #4D21EB; }
.ev-past span { color: var(--font-secundary); font-variant-numeric: tabular-nums; }

/* ------------------------------------- Detailseite ------------------------------------- */

.ev-page { max-width: 1100px; margin: 0 auto; padding: 2.5rem 16px 4rem; }
.ev-manage-bar { float: right; }
.ev-header h1 { font-size: clamp(1.6rem, 5vw, 2.6rem); margin: 0.5rem 0 1rem; }
.ev-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 0.75rem; margin-bottom: 2rem; }
.ev-facts div { padding: 0.75rem 1rem; border-radius: 12px; background: var(--bg-card); border: 1px solid var(--border); }
.ev-facts dt { font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--font-secundary); }
.ev-facts dd { margin: 0.2rem 0 0; font-family: "Exo 2", system-ui, sans-serif; }
.ev-cancelled { padding: 0.9rem 1.1rem; margin-bottom: 1.5rem; border-radius: 10px; border: 1px solid var(--brand-red); background: rgba(230, 48, 76, 0.12); }
.ev-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 2rem; align-items: start; }
.ev-layout > * { min-width: 0; }
.ev-side { display: flex; flex-direction: column; gap: 1rem; }
.ev-signup h2, .ev-participants h2 { font-size: 1.1rem; margin-bottom: 0.75rem; }
.ev-participants h3 { font-size: 0.9rem; margin: 1rem 0 0.4rem; color: var(--font-secundary); }
.ev-hint { font-size: 0.85rem; color: var(--font-secundary); margin-bottom: 0.75rem; }
.ev-hint a { color: #8f74ff; }
.ev-status { padding: 0.75rem 0.9rem; border-radius: 10px; margin-bottom: 0.75rem; font-family: "Exo 2", system-ui, sans-serif; }
.ev-status--registered { border: 1px solid rgba(182, 255, 0, 0.45); background: rgba(182, 255, 0, 0.08); }
.ev-status--waitlist { border: 1px solid rgba(255, 196, 0, 0.45); background: rgba(255, 196, 0, 0.08); }
.ev-participant-list { padding-left: 1.4rem; display: flex; flex-direction: column; gap: 0.3rem; font-family: "Exo 2", system-ui, sans-serif; font-size: 0.9rem; }
.ev-small { font-size: 0.75rem; margin-top: 0.75rem; }
.ev-signup .toggle { margin: 0.5rem 0 0.75rem; }
.ev-signup .toggle a { color: #8f74ff; }
.field-hint { color: var(--font-secundary); font-size: 0.8rem; margin: -0.4rem 0 1rem; }
/* Fangfeld: aus dem sichtbaren Bereich geschoben (nicht display:none -- manche Bots erkennen das) */
.ev-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ev-done .ev-cancel-link {
    width: 100%;
    margin: 0.25rem 0 1.25rem;
    padding: 0.65rem 0.8rem;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: var(--background);
    color: var(--font);
    font: 0.8rem ui-monospace, Consolas, monospace;
}

/* ------------------------------------- Verwaltung ------------------------------------- */

.ev-admin { max-width: 1000px; margin: 0 auto; padding: 2.5rem 16px 4rem; }
.ev-admin--narrow { max-width: 720px; }
.ev-admin h1 { font-size: clamp(1.4rem, 5vw, 2rem); }
.ev-admin-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
.ev-admin-actions { display: flex; gap: 0.4rem; flex-wrap: wrap; align-items: flex-start; }
.ev-admin-actions form { display: inline; }
.ev-admin-list, .ev-reg-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.ev-admin-row, .ev-reg {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    background: var(--bg-card);
    border: 1px solid var(--border);
}
.ev-admin-title { font-weight: 700; color: var(--font); text-decoration: none; }
.ev-admin-title:hover { color: var(--brand-neon-lime); }
.ev-reg-main { flex: 1 1 320px; min-width: 0; }
.ev-reg-main > .muted { margin-left: 0.4rem; }
.ev-reg-tag { margin-left: 0.4rem; font-size: 0.7rem; padding: 0.05rem 0.45rem; border-radius: 999px; border: 1px solid var(--border); color: var(--font-secundary); }
.ev-reg-details { display: flex; flex-wrap: wrap; gap: 0.3rem 1.25rem; margin-top: 0.4rem; font-size: 0.82rem; }
.ev-reg-details dt { display: inline; color: var(--font-secundary); }
.ev-reg-details dt::after { content: ": "; }
.ev-reg-details dd { display: inline; margin: 0; overflow-wrap: anywhere; }
.ev-reg-actions { display: flex; gap: 0.4rem; align-items: flex-start; flex-wrap: wrap; }
.ev-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.ev-admin .form-field input[type="datetime-local"],
.ev-admin .form-field input[type="number"] {
    padding: 0.6rem 0.8rem;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: var(--background);
    color: var(--font);
    font: inherit;
    color-scheme: dark;
}
.ev-admin .toggle { margin-bottom: 0.75rem; }

@media (max-width: 860px) {
    .ev-layout { grid-template-columns: minmax(0, 1fr); }
    .ev-manage-bar { float: none; }
}
@media (max-width: 600px) {
    .ev-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
    .ev-facts div { padding: 0.6rem 0.75rem; }
    .ev-facts dd { font-size: 0.88rem; }
    .ev-form-row { grid-template-columns: minmax(0, 1fr); }
    .ev-card { gap: 0.9rem; padding: 0.9rem; }
    .ev-date { width: 60px; }
    .ev-date-day { font-size: 1.4rem; }
}

/* Rang in Teilnehmerlisten */
.ev-rank { display: inline-flex; align-items: center; gap: 0.25rem; margin-left: 0.4rem; font-size: 0.78rem; color: var(--font-secundary); }
.ev-rank img { width: 18px; height: 18px; object-fit: contain; }
.ev-signup .form-field select {
    padding: 0.6rem 0.7rem;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: var(--background);
    color: var(--font);
    font: inherit;
}

/* Spieler:innen einer Anmeldung mit Rang */
.ev-players { border: none; padding: 0; margin: 0 0 0.5rem; }
.ev-players legend { font-size: 0.85rem; color: var(--font-secundary); margin-bottom: 0.5rem; }
.ev-player-ranks { list-style: none; padding: 0.25rem 0 0.2rem 0.2rem; display: flex; flex-wrap: wrap; gap: 0.2rem 0.75rem; }
.ev-player-ranks .ev-rank { margin-left: 0; }
.ev-rank-riot { color: var(--font); margin-right: 0.15rem; }
.ev-player-table { margin-top: 0.6rem; border-collapse: collapse; font-size: 0.82rem; width: 100%; }
.ev-player-table td { padding: 0.25rem 0.75rem 0.25rem 0; border-top: 1px solid var(--border); overflow-wrap: anywhere; }
.ev-player-table img { width: 18px; height: 18px; vertical-align: middle; }
.ev-rank-unknown { color: #ffd666; }
[data-team-size][hidden] { display: none; }
.ev-tournament-link { margin: -0.25rem 0 1rem; }
