/* Frontend-spezifische kleine Anpassungen */
#feMsg {
    border-radius: .375rem;
    padding: .75rem 1rem;
}
#feMsg.alert-success { background:#d1e7dd; color:#0a3622; }
#feMsg.alert-danger  { background:#f8d7da; color:#58151c; }
#feMsg.alert-info    { background:#cff4fc; color:#055160; }

/* ── Congress List ───────────────────────────────────────── */
.fe-congress-item {
    border-left: 4px solid #0d6efd;
    border-radius: .5rem;
}
.fe-cg-datebadge {
    display: flex;
    align-items: center;
}
.fe-cg-date {
    font-size: .78rem;
    font-weight: 700;
    color: #fff;
    background: #0d6efd;
    padding: .15rem .6rem;
    border-radius: 1rem;
    letter-spacing: .02em;
}
.fe-cg-title {
    font-size: 1rem;
    font-weight: 700;
    color: #1a1a2e;
}
.fe-cg-meta {
    display: flex;
    gap: 1rem;
    font-size: .82rem;
    color: #6c757d;
}
.fe-btn-vortraege {
    color: #0d6efd;
    background-color: transparent;
    border: 1px solid #0d6efd;
    transition: background-color .2s, color .2s;
}
.fe-btn-vortraege:hover {
    background-color: #0d6efd;
    color: #fff;
    border-color: #0d6efd;
}

/* ── Timeline: Vorträge ──────────────────────────────────── */
.fe-timeline {
    position: relative;
    padding-left: 0;
}
.fe-timeline::before {
    display: none;
}
.fe-timeline-item {
    position: relative;
    margin-bottom: 1.5rem;
}
.fe-timeline-marker {
    display: none;
}
.fe-timeline-content {
    border-left: 4px solid #198754;
    border-radius: .5rem;
}
.fe-timeline-datebadge {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .4rem;
}
.fe-tl-date {
    font-size: .78rem;
    font-weight: 700;
    color: #fff;
    background: #198754;
    padding: .15rem .6rem;
    border-radius: 1rem;
    letter-spacing: .02em;
}
.fe-tl-time {
    font-size: .82rem;
    font-weight: 600;
    color: #198754;
    background: #d1e7dd;
    padding: .15rem .6rem;
    border-radius: 1rem;
}
.fe-tl-title {
    font-size: 1rem;
    font-weight: 700;
    color: #1a1a2e;
}
.fe-tl-meta {
    display: flex;
    gap: 1rem;
    font-size: .82rem;
    color: #6c757d;
    margin-bottom: .3rem;
}
.fe-tl-desc {
    font-size: .85rem;
    color: #555;
    border-top: 1px solid #e9ecef;
    padding-top: .4rem;
    margin-top: .3rem;
}

/* ── Lecture Detail ──────────────────────────────────────── */
.fe-ld-hero {
    background: linear-gradient(135deg, rgba(15,76,42,.82) 0%, rgba(25,135,84,.7) 100%);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    background-color: #198754;
    border: 1px solid rgba(255,255,255,.18);
    box-shadow: 0 8px 32px rgba(15,76,42,.28);
    border-radius: .75rem;
    padding: 2rem 2rem 1.75rem;
    color: #fff;
}
.fe-ld-hero-badges {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin-bottom: .75rem;
}
.fe-ld-hero-title {
    font-size: 1.6rem;
    font-weight: 800;
    margin-bottom: .6rem;
    line-height: 1.25;
}
.fe-ld-hero-meta {
    display: flex;
    gap: 1.25rem;
    font-size: .88rem;
    opacity: .85;
}
.fe-ld-infobox {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: .6rem;
    padding: 1rem 1.25rem;
    height: 100%;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.fe-ld-mic {
    font-size: .78rem;
    opacity: .55;
    margin-right: .2rem;
}
.fe-ld-desc-box {
    background: #f8f9fa;
    border-radius: .6rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid #e9ecef;
}
.fe-ld-badge-date {
    font-size: .78rem;
    font-weight: 700;
    background: rgba(255,255,255,.25);
    color: #fff;
    padding: .2rem .7rem;
    border-radius: 1rem;
    border: 1px solid rgba(255,255,255,.5);
}
.fe-ld-badge-time {
    font-size: .78rem;
    font-weight: 600;
    background: rgba(255,255,255,.15);
    color: #fff;
    padding: .2rem .7rem;
    border-radius: 1rem;
    border: 1px solid rgba(255,255,255,.35);
}
.fe-btn-details {
    color: #0d6efd;
    background-color: transparent;
    border: 1px solid #0d6efd;
    transition: background-color .2s, color .2s;
}
.fe-btn-details:hover {
    background-color: #0d6efd;
    color: #fff;
}
.fe-btn-teilnehmen {
    color: #198754;
    background-color: transparent;
    border: 1px solid #198754;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}
.fe-btn-teilnehmen:hover {
    background-color: #198754;
    color: #fff;
    border-color: #198754;
}
.fe-ld-label {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6c757d;
    margin-bottom: .15rem;
}
.fe-ld-value {
    font-size: .95rem;
    font-weight: 600;
    color: #1a1a2e;
}
.fe-ld-desc {
    font-size: .9rem;
    color: #444;
    white-space: pre-wrap;
}

/* --- Lecture Register ------------------------------------------------ */
.fe-reg-field:disabled,
.fe-reg-field[readonly] {
    background-color: #f8f9fa;
    color: #6c757d;
    border-color: #dee2e6;
    cursor: default;
    opacity: 1;
}
.fe-badge-angemeldet {
    display: inline-flex;
    align-items: center;
    font-size: .75rem;
    font-weight: 600;
    color: #198754;
    background: #d1e7dd;
    border-radius: 20px;
    padding: .25rem .75rem;
    white-space: nowrap;
}
.fe-btn-stornieren {
    color: #dc3545;
    background-color: transparent;
    border: 1px solid #dc3545;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}
.fe-btn-stornieren:hover {
    background-color: #dc3545;
    color: #fff;
    border-color: #dc3545;
}
.fe-btn-stornieren-past {
    color: #6c757d;
    background-color: transparent;
    border: 1px solid #6c757d;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}
.fe-btn-stornieren-past:hover {
    background-color: #6c757d;
    color: #fff;
    border-color: #6c757d;
}
.fe-btn-pruefung {
    color: #0d6efd;
    background-color: transparent;
    border: 1px solid #0d6efd;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}
.fe-btn-pruefung:hover {
    background-color: #0d6efd;
    color: #fff;
    border-color: #0d6efd;
}
.fe-btn-pruefung-done {
    color: #6c757d;
    background-color: transparent;
    border: 1px solid #6c757d;
    cursor: default;
    transition: background-color .2s, color .2s;
}
.fe-btn-pruefung-done:hover {
    background-color: #6c757d;
    color: #fff;
    border-color: #6c757d;
}
