/* Terminliste ("Abfahrtstafel") – passt zum Design der neuen Homepage */
.termine { list-style: none; margin: 0; padding: 0; border-top: 1px solid #3B4642; }
.termin { display: flex; flex-wrap: wrap; gap: 6px 28px; align-items: flex-start; padding: 18px 0; border-bottom: 1px solid #3B4642; }
.termin-datum { flex: 0 0 190px; display: flex; flex-direction: column; font-family: "IBM Plex Mono", ui-monospace, monospace; font-weight: 600; font-size: 1.15rem; color: #FFFFFF; }
.termin-datum small { font-weight: 500; font-size: 0.9rem; color: #C9CEC8; }
.termin-text { flex: 1 1 300px; display: flex; flex-direction: column; color: #C9CEC8; }
.termin-text strong { font-family: "Barlow Condensed", "Arial Narrow", sans-serif; font-weight: 600; font-size: 1.5rem; color: #F1F2EE; }
.termin-beschreibung { font-size: 0.95rem; margin-top: 4px; }
.termin-ort { color: inherit; text-decoration: underline; text-decoration-color: #F5A8A8; text-underline-offset: 3px; }
.termin-ort:hover { color: #FFFFFF; }
.termin-ort:focus-visible { outline: 2px solid #F5A8A8; outline-offset: 2px; }
/* Titel einer Ausstellung als Link ins interne Ausstellungsarchiv (nur angemeldet) */
.termin-titel { color: inherit; text-decoration: underline; text-decoration-color: #F5A8A8; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.termin-titel:hover { color: #FFFFFF; text-decoration-color: #FFFFFF; }
.termin-titel:focus-visible { outline: 2px solid #F5A8A8; outline-offset: 2px; }
/* PDF-Listen einer Ausstellung – nur für angemeldete Mitglieder */
.termin-listen { align-self: center; margin-left: auto; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; font-size: .85rem; }
.termin-listen a { padding: 4px 10px; border: 1px solid #F1F2EE; border-radius: 4px; color: #F1F2EE; font-weight: 600; text-decoration: none; white-space: nowrap; }
.termin-listen a:hover { background: #F1F2EE; color: #18201D; }
.termin-listen a.haupt { background: #C8121C; border-color: #C8121C; color: #FFFFFF; }
.termin-listen a.haupt:hover { background: #8E0B13; border-color: #8E0B13; }
.termin-listen a.melden { background: #F1F2EE; border-color: #F1F2EE; color: #18201D; }
.termin-listen a.melden:hover { background: #F5A8A8; border-color: #F5A8A8; }
/* Meldestand: grüne Haken (Module gemeldet / Anwesenheit eingetragen); nach Meldeschluss nur Anzeige */
.melde-haken { margin-left: 4px; color: #1E7B34; font-weight: 700; letter-spacing: 1px; }
.termin-listen span.melden { padding: 4px 10px; border: 1px solid #F1F2EE; border-radius: 4px; background: #F1F2EE; color: #18201D; font-weight: 600; white-space: nowrap; }
.termin-listen .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.termin-listen a:focus-visible { outline: 2px solid #F5A8A8; outline-offset: 2px; }
.termin-marke { align-self: center; font-size: 0.85rem; font-weight: 600; padding: 4px 10px; border-radius: 4px; border: 1px solid #F5A8A8; color: #F5A8A8; }
.termin-intern .termin-datum { color: #F5A8A8; }
/* Abgesagt: Datum und Titel durchgestrichen und gedämpft, dazu die Marke „Entfällt“ */
.termin-abgesagt .termin-datum, .termin-abgesagt .termin-text strong { text-decoration: line-through; text-decoration-thickness: 2px; text-decoration-color: #F5A8A8; }
.termin-abgesagt .termin-datum, .termin-abgesagt .termin-text { opacity: .6; }
.termin-marke-abgesagt { background: #C8121C; border-color: #C8121C; color: #FFFFFF; }
.termine-leer { color: #C9CEC8; }
/* Programm einer Ausstellung (zusammengefasste Termine) */
.termin-teile { list-style: none; margin: 10px 0 0; padding: 8px 0 0 14px; border-left: 2px solid #3B4642; display: flex; flex-direction: column; gap: 4px; }
.termin-teile li { display: flex; flex-wrap: wrap; gap: 2px 14px; align-items: baseline; }
.teil-wann { flex: 0 0 auto; min-width: 11.5em; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .85rem; font-weight: 600; color: #F1F2EE; }
.teil-titel { color: #C9CEC8; }
.teil-titel small { font-size: .85rem; }
.teil-intern .teil-wann { color: #F5A8A8; }
.teil-abgesagt .teil-wann, .teil-abgesagt .teil-titel { text-decoration: line-through; text-decoration-color: #F5A8A8; opacity: .7; }
.teil-marke { font-style: normal; font-size: .75rem; font-weight: 600; padding: 1px 6px; border-radius: 3px; border: 1px solid #F5A8A8; color: #F5A8A8; }
.teil-marke-abgesagt { background: #C8121C; border-color: #C8121C; color: #fff; text-decoration: none; }

/* Aufklappbare weitere Termine (Startseite) */
.termine-weitere .termine { border-top: 0; }
.termine-weitere .termin:focus-visible { outline: 2px solid #F5A8A8; outline-offset: 4px; }
.termine-mehr { align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 20px; border: 2px solid #F1F2EE; border-radius: 6px; background: transparent; color: #F1F2EE; font: inherit; font-weight: 600; cursor: pointer; }
.termine-mehr::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .15s; }
.termine-mehr[aria-expanded=true]::after { transform: translateY(2px) rotate(-135deg); }
.termine-mehr:hover { background: #F1F2EE; color: #18201D; }
.termine-mehr:focus-visible { outline: 3px solid #F5A8A8; outline-offset: 2px; }

/* Termine im Mitgliederbereich: dunkle Tafel auf hellem Grund, Liste der sichtbaren Kalender */
.termine-tafel { background: #18201D; color: #F1F2EE; border-radius: 10px; padding: 8px 24px 20px; }
.termine-tafel a { color: #F1F2EE; }
.termine-hinweis { display: flex; flex-direction: column; gap: 12px; max-width: 48rem; }
.termine-legende-intern { font-family: "IBM Plex Mono", ui-monospace, monospace; font-weight: 600; color: #8E0B13; }
@media (max-width: 640px) { .termine-tafel { padding: 4px 16px 16px; } }

/* Terminliste im Mitgliederbereich – Aufbau wie die PDF-Terminliste des Vereins */
.terminliste-rahmen { overflow-x: auto; background: #fff; border: 2px solid #18201D; border-radius: 8px; }
.terminliste { width: 100%; min-width: 720px; border-collapse: collapse; font-size: .97rem; }
.terminliste thead th { background: #C9CEC8; text-align: left; padding: 8px 12px; font-weight: 700; border-bottom: 2px solid #18201D; }
.terminliste td, .terminliste tbody th { padding: 8px 12px; vertical-align: top; text-align: left; border-top: 1px solid #E3E6E1; }
.terminliste tr.monat-anfang > * { border-top: 2px solid #18201D; }
.terminliste tbody tr:first-child > * { border-top: 0; }
.terminliste tr.gruppe-anfang > * { border-top-color: #8E9790; }
.tl-monat { width: 7.5rem; font-family: "Barlow Condensed", "Arial Narrow", sans-serif; font-weight: 700; font-size: 1.15rem; color: #8E0B13; }
.tl-tag, .tl-zeit { white-space: nowrap; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .9rem; font-weight: 600; }
.tl-betreff strong { font-weight: 600; }
.tl-betreff small, .tl-ort small { display: block; color: #3A4440; font-size: .85rem; line-height: 1.4; margin-top: 2px; }
/* Knopf „Anmeldung“ einer Ausstellung in der Terminliste (kal_melde_knopf) – rot wie die Knöpfe im Mitgliederbereich */
.tl-zusatz { margin-top: 8px; }
.tl-zusatz .melden { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border: 2px solid #C8121C; border-radius: 6px;
  background: #C8121C; color: #fff; font-weight: 600; font-size: .95rem; text-decoration: none; white-space: nowrap; }
.tl-zusatz a.melden:hover { background: #8E0B13; border-color: #8E0B13; color: #fff; }
.tl-zusatz span.melden { background: #fff; color: #18201D; border-color: #18201D; }
.tl-zusatz .melde-haken { color: #B8F0C4; }
.tl-zusatz span.melden .melde-haken { color: #1E7B34; }
.tl-zusatz .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tl-ort { min-width: 14rem; line-height: 1.45; }
.terminliste tr.intern .tl-tag { color: #8E0B13; }
/* Art des Termins farbig (nur für die Terminpflege, kal_tabelle_html $artFarben): Balken links am Tag, Farben wie in der Pflege */
.terminliste.mit-art tr.art-oeffentlich .tl-tag { box-shadow: inset 6px 0 0 #2E7D4F; }
.terminliste.mit-art tr.art-extern .tl-tag { box-shadow: inset 6px 0 0 #D32F2F; }
.terminliste.mit-art tr.art-intern .tl-tag { box-shadow: inset 6px 0 0 #1F5FBF; }
.terminliste.mit-art tr.art-vorstand .tl-tag { box-shadow: inset 6px 0 0 #E58E00; }
.terminliste.mit-art .tl-tag { padding-left: 18px; }
.terminliste .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tl-legende { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .95rem; }
.tl-legende li { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.tl-legende li::before { content: ""; width: 6px; height: 1.2em; border-radius: 2px; background: currentColor; }
.tl-legende .art-oeffentlich::before { background: #2E7D4F; }
.tl-legende .art-extern::before { background: #D32F2F; }
.tl-legende .art-intern::before { background: #1F5FBF; }
.tl-legende .art-vorstand::before { background: #E58E00; }
.terminliste tr.abgesagt .tl-tag, .terminliste tr.abgesagt .tl-betreff strong { text-decoration: line-through; text-decoration-color: #C8121C; opacity: .6; }
.tl-marke { font-style: normal; font-size: .72rem; font-weight: 700; padding: 1px 6px; border-radius: 3px; border: 1px solid #8E0B13; color: #8E0B13; vertical-align: middle; }
.tl-marke-abgesagt { background: #C8121C; border-color: #C8121C; color: #fff; }

/* Kalender-Abo mit aufklappbarer Anleitung (Startseite) */
.termine-abo { margin-top: 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; color: #C9CEC8; max-width: 42rem; }
.termine-abo-knopf { color: #F1F2EE; font-weight: 600; }
.termine-abo-knopf:focus-visible, .termine-abo-hilfe summary:focus-visible, .termine-abo-hilfe a:focus-visible { outline: 3px solid #F5A8A8; outline-offset: 2px; }
.termine-abo-hilfe summary { cursor: pointer; color: #F5A8A8; font-weight: 600; }
.termine-abo-hilfe[open] summary { margin-bottom: 8px; }
.termine-abo-hilfe h3 { margin: 16px 0 4px; font-family: "Barlow Condensed", "Arial Narrow", sans-serif; font-weight: 600; font-size: 1.2rem; color: #F1F2EE; }
.termine-abo-hilfe p, .termine-abo-hilfe ol { margin: 0 0 8px; }
.termine-abo-hilfe ol { padding-left: 1.4em; display: flex; flex-direction: column; gap: 6px; }
.termine-abo-hilfe a { color: #F1F2EE; }
.termine-abo-hilfe strong { color: #F1F2EE; }
.termine-abo-adresse { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.termine-abo-adresse input { flex: 1 1 16rem; min-width: 0; min-height: 40px; padding: 0 10px; border: 1px solid #3B4642; border-radius: 6px; background: #0F1513; color: #F1F2EE; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .85rem; }
.termine-abo-adresse input:focus { outline: 3px solid #F5A8A8; outline-offset: 1px; }
.termine-abo-kopieren { min-height: 40px; padding: 0 16px; border: 2px solid #F1F2EE; border-radius: 6px; background: transparent; color: #F1F2EE; font: inherit; font-weight: 600; cursor: pointer; }
.termine-abo-kopieren:hover { background: #F1F2EE; color: #18201D; }
.termine-abo-kopieren:focus-visible { outline: 3px solid #F5A8A8; outline-offset: 2px; }
.termine-abo-leise { font-size: .9rem; opacity: .85; }

/* Meldeschluss vorbei, nicht angemeldet: Hinweis bis zur Ausstellung */
.termin-listen span.melden.abgelaufen, .tl-zusatz span.melden.abgelaufen { background: #FBE3E4; border-color: #C8121C; color: #8E0B13; }

/* Terminliste (helle Tabelle): Ort als Link zu Google Maps, unauffaellig unterstrichen */
.terminliste .tl-ort a.termin-ort { color: inherit; text-decoration: underline; text-decoration-color: currentColor; text-decoration-style: dotted; text-underline-offset: 3px; }
.terminliste .tl-ort a.termin-ort:hover { color: #C8121C; text-decoration-style: solid; }
.terminliste .tl-ort a.termin-ort:focus-visible { outline: 2px solid #C8121C; outline-offset: 2px; }
/* Termine nur für den Datenpfleger: flieder hinterlegt */
.marke-pfleger { background: #EFE7F7; border-color: #7B4FA3 !important; color: #5E3A82 !important; }
