/* ===========================================================================
   Termine (Spiele, Spieltage, Turniere, Sonstiges)
   ---------------------------------------------------------------------------
   Spezifikation: docs/specs/termine.md

   Nur .ter-*-Klassen: keine :root-Variablen, keine nackten Element-Regeln.
   Damit darf die Datei fuer index.html und register.html wegfallen
   (ti_css_ohne in kopf-css.php). Dialog, Felder und Knoepfe kommen aus
   08-spielerorganisation-mannschaften.css (.so-dlg, .so-inp, .so-btn).
   =========================================================================== */

/* Termin anlegen und Kabinenschilder zusammen am rechten Rand der Filterzeile; die Staffel-Auswahl
   darf nicht so breit werden wie ihre laengste Staffel, sonst rutschen die Knoepfe in eine zweite Zeile. */
.ter-knoepfe { margin-left: auto; display: flex; gap: 8px; }
.ad-toolbar .ter-staffel { width: 14rem; }   /* 11-modern-web-misc.css setzt max-width mit !important, darum width */

.ter-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }

.ter-eintrag { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 14px; align-items: start;
    padding: 12px 14px; border: 1px solid var(--glass-22); border-radius: 12px; background: var(--glass-06); }

.ter-datum { display: flex; flex-direction: column; align-items: center; line-height: 1.15;
    padding: 6px 0; border-radius: 10px; background: var(--tigers-yellow-06); border: 1px solid var(--tigers-yellow-35); }
.ter-datum span { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; color: var(--glass-60); }
.ter-datum b { font-size: 1.05rem; font-weight: 900; }
.ter-datum small { font-size: 0.66rem; color: var(--glass-60); }
.ter-datum .ter-uhr { align-self: stretch; margin: 5px 3px 0; padding-top: 5px; border-top: 1px solid var(--tigers-yellow-35);
    font-style: normal; font-size: 0.66rem; font-weight: 700; text-align: center; }

.ter-kopf { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-bottom: 4px; }
.ter-art { font-size: 0.66rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em;
    padding: 2px 8px; border-radius: 999px; background: var(--glass-08); border: 1px solid var(--glass-22); }
.ter-titel { font-size: 0.95rem; font-weight: 800; }
.ter-zeile { font-size: 0.82rem; margin-top: 3px; overflow-wrap: anywhere; }
.ter-zeile a { font-size: inherit; }
.ter-zeile i { width: 1.1em; text-align: center; color: var(--glass-60); }
.ter-notiz { font-size: 0.8rem; margin-top: 6px; color: var(--glass-60); overflow-wrap: anywhere; }

.ter-marke { display: inline-block; font-size: 0.72rem; font-weight: 700; padding: 2px 8px; border-radius: 8px; }
.ter-marke-verlegt { background: var(--warn-bg); color: var(--warn-text); border: 1px solid var(--warn-border); }
.ter-marke-abgesagt { background: var(--err-bg); color: var(--err-text); border: 1px solid var(--err-border); margin: 2px 0 4px; }

/* Abgesagt: bleibt stehen, durchgestrichen (AK14). */
.ter-abgesagt { opacity: 0.75; }
.ter-abgesagt .ter-titel,
.ter-abgesagt .ter-zeile { text-decoration: line-through; }

/* Knoepfe in zwei Spalten (Spec hallendienst-planung.md AK23): mehr Platz fuer den Text, am Handy ebenfalls zu zweit. */
.ter-aktionen { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; min-width: 270px; }
.ter-aktionen .so-btn { justify-content: flex-start; white-space: nowrap; }

/* Heim oder Auswaerts (AK24): Marke und farbiger Streifen am linken Rand, die Halle bei Heimspielen hervorgehoben. */
.ter-heim { border-left: 5px solid var(--tigers-yellow); }
.ter-ausw { border-left: 5px solid var(--glass-60); }
.ter-ha, .ter-team { font-size: 0.66rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; padding: 2px 8px; border-radius: 999px; }
.ter-ha-heim { background: var(--tigers-yellow); color: var(--tigers-black); }
.ter-ha-ausw, .ter-team { background: var(--glass-22); border: 1px solid var(--glass-60); }
.ter-halle { display: inline-block; font-weight: 800; padding: 1px 8px; border-radius: 8px; background: var(--tigers-yellow-06); border: 1px solid var(--tigers-yellow-35); }

/* hidden muss gegen .so-grid2 { display: grid } gewinnen (Art-abhaengige Felder). */
.ter-dlg .so-grid2[hidden],
.ter-dlg .so-fld[hidden],
.ter-dlg .so-btn[hidden] { display: none; }

/* Termin-Hallenzeit in der Hallenbelegung: statt Bearbeiten nur der Weg zum Termin (AK11). */
.ter-hb-link { margin-top: 4px; font-size: 0.72rem; }
.ter-hb-link a { color: inherit; font-weight: 700; text-decoration: underline; }
.ter-dlg .so-grid2 + .so-grid2,
.ter-notiz-fld { margin-top: 12px; }
.ter-notiz-fld textarea { resize: vertical; min-height: var(--feld-hoehe); }

/* Spielplan des Verbands (BWHV): Karte im Popup hinter dem Zahnrad (Termine.php) und auf AdminSpielplan.php;
   .ter-bwhv-inhalt ist ihr Inhalt (bwhv-karte.php). .ter-bwhv selbst tragen noch die Karten der Hallendienst-Aufgaben. */
.ter-bwhv { margin-top: 18px; }
.ter-zahnrad { margin-left: auto; min-width: var(--feld-hoehe); padding-left: 10px; padding-right: 10px; }
.ter-zahnrad i { font-size: 1rem; }
dialog.ter-bwhv-dlg { width: min(760px, calc(100vw - 32px)); }
.ter-bwhv-dlg-kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ter-bwhv-dlg .ter-bwhv-kopf { margin-top: 14px; }
.ter-bwhv-inhalt .ter-bwhv-liste + form { margin-top: 10px; }
.ter-bwhv-kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; }
.ter-bwhv-kopf .ad-lead { margin: 0; }
.ter-bwhv-h { font-size: 0.85rem; font-weight: 800; margin: 18px 0 8px; }
.ter-bwhv-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ter-bwhv-liste > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px;
    padding: 10px 12px; border: 1px solid var(--glass-22); border-radius: 10px; background: var(--glass-06); }
.ter-bwhv-text { font-size: 0.85rem; overflow-wrap: anywhere; min-width: 0; flex: 1 1 260px; }
.ter-bwhv-text small { color: var(--glass-60); margin-left: 6px; }
.ter-bwhv-zuordnung { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ter-bwhv-hallen { margin-top: 16px; }
.ter-bwhv-hallen > summary { cursor: pointer; font-weight: 700; font-size: 0.85rem; margin-bottom: 8px; }
/* Abgleich laeuft: Drehzeichen und Balken ohne Prozentangabe (die Dauer haengt am Verband). */
.ter-lauf { margin: 0 0 14px; padding: 12px 14px; border: 1px solid var(--tigers-yellow-35); border-radius: 10px; background: var(--tigers-yellow-06); }
.ter-lauf[hidden] { display: none; }
.ter-lauf-kopf { display: flex; align-items: center; gap: 10px; font-size: 0.88rem; font-weight: 700; }
.ter-spinner { flex: 0 0 auto; width: 18px; height: 18px; border-radius: 50%; border: 3px solid var(--glass-22); border-top-color: currentColor; animation: ter-dreh 0.9s linear infinite; }
.ter-balken { display: block; height: 6px; margin-top: 10px; border-radius: 999px; background: var(--glass-22); overflow: hidden; }
.ter-balken i { display: block; height: 100%; width: 35%; border-radius: 999px; background: currentColor; animation: ter-balken 1.4s ease-in-out infinite; }
@keyframes ter-dreh { to { transform: rotate(360deg); } }
@keyframes ter-balken { 0% { transform: translateX(-100%); } 100% { transform: translateX(300%); } }
@media (prefers-reduced-motion: reduce) { .ter-spinner, .ter-balken i { animation-duration: 3s; } }
.ter-bwhv button:disabled, .ter-bwhv-inhalt button:disabled { opacity: 0.55; cursor: progress; }
.ter-bwhv-meldung.ok { color: var(--ok-text); }
.ter-bwhv-meldung.err { color: var(--err-text); }

/* Hallendienst: ein Eintrag je Heimspiel, darunter die Plaetze. */
.hd-spiel { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; align-items: start;
    padding: 12px 14px; border: 1px solid var(--glass-22); border-radius: 12px; background: var(--glass-06); }
.hd-plaetze { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.hd-platz { display: grid; grid-template-columns: 110px minmax(0, 150px) minmax(0, 1fr) auto; gap: 6px 12px; align-items: center;
    padding: 6px 10px; border: 1px solid var(--glass-22); border-radius: 8px; font-size: 0.85rem; }
.hd-platz.hd-frei { border-style: dashed; }
.hd-aufgabe { font-weight: 800; }
.hd-dienst { color: var(--glass-60); font-size: 0.78rem; overflow-wrap: anywhere; }
.hd-person em { color: var(--glass-60); }
.hd-aktion form { display: flex; gap: 6px; align-items: center; margin: 0; }
.hd-hinweis { color: var(--glass-60); font-size: 0.72rem; }
.hd-offen { display: inline-flex; align-items: center; gap: 6px; font-size: 0.85rem; }
.hd-form-zeile { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; width: 100%; }
.hd-form-zeile .so-inp { flex: 1 1 180px; }
.hd-form-zeile .hd-klein, .hd-klein { flex: 0 0 90px; width: 90px; }

@media (max-width: 700px) {
    .ter-eintrag { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    .ter-aktionen { grid-column: 1 / -1; min-width: 0; }
    .ter-aktionen .so-btn { padding-left: 8px; padding-right: 8px; font-size: 0.8rem; gap: 5px; }
    .ter-knoepfe { margin-left: 0; flex-wrap: wrap; }
    .hd-spiel { grid-template-columns: 52px minmax(0, 1fr); gap: 10px; }
    .hd-platz { grid-template-columns: minmax(0, 1fr) auto; }
    .hd-aufgabe, .hd-dienst, .hd-person { grid-column: 1; }
    .hd-aktion { grid-column: 2; grid-row: 1 / span 3; }
}

/* Hallendienst-Planung (2026-10-02): Reiter, Spieltage mit Abschnitten, Stand-Marken. */
.hd-reiter { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 14px; border-bottom: 1px solid var(--glass-22); }
.hd-reiter a { padding: 8px 14px; border-radius: 8px 8px 0 0; font-weight: 700; font-size: 0.88rem; text-decoration: none; color: var(--glass-60); }
.hd-reiter a.on { color: var(--text-color); box-shadow: inset 0 -3px 0 var(--tigers-yellow); }
.hd-spiele-liste { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 3px; font-size: 0.85rem; }
.hd-spiele-liste li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.hd-knopf-form { display: inline-block; margin: 0; }
.hd-planung-kopf { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 16px; }
.hd-tag { margin: 0 0 18px; }
.hd-tag-kopf { margin: 0 0 8px; font-size: 1rem; font-weight: 900; }
.hd-abschnitt-box { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; margin: 0 0 10px; border: 1px solid var(--glass-22); border-radius: 12px; background: var(--glass-06); }
.hd-abschnitt-fuss { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.hd-abschnitt-fuss .hd-hinweis { flex: 1 1 220px; }
.hd-stand { font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--glass-22); }
.hd-stand-fest { color: var(--ok-text); }
.hd-stand-pruefen, .hd-stand-nein { color: var(--err-text); }

/* Hallendienst: Aufgaben auf Mannschaften und Helfergruppen verteilen */
.hd-verteilen { border: 1px solid var(--glass-22); border-radius: 10px; padding: 6px 12px; }
.hd-verteilen summary { cursor: pointer; font-weight: 700; font-size: 0.88rem; }
.hd-platz.hd-gruppe { border-style: dotted; }

/* Hallendienst-Import: Vorschau */
.hd-import-tabelle { overflow-x: auto; }
.hd-import-form h3 { margin-top: 18px; }
.ad .ad-table tr.hd-import-klaeren td { background: var(--tigers-yellow-06); }
.ad .ad-table tr.hd-import-ohne_spiel td, .ad .ad-table tr.hd-import-vergangen td, .ad .ad-table tr.hd-import-abgewaehlt td { color: var(--glass-60); }
.ad .ad-table tr.hd-import-konflikt td b, .ad .ad-table tr.hd-import-fest td b { color: var(--err-text); }
.ad .ad-table tr.hd-import-vorhanden td b { color: var(--ok-text); }

/* Planung: Tage zusammenklappbar, Filter */
details.hd-tag > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 8px 12px; margin: 0 0 8px; border: 1px solid var(--glass-22); border-radius: 10px; background: var(--glass-06); }
details.hd-tag > summary::-webkit-details-marker { display: none; }
details.hd-tag > summary::before { content: "\25B8"; font-size: 0.9rem; transition: transform 0.15s; }
details.hd-tag[open] > summary::before { transform: rotate(90deg); }
details.hd-tag .hd-tag-kopf { margin: 0; }
.hd-tag-titel { font-size: 1rem; font-weight: 900; }
.so-btn.hd-an { box-shadow: inset 0 -3px 0 var(--tigers-yellow); }

/* Planung: Filterleiste */
.hd-filter { display: flex; flex-wrap: wrap; align-items: end; gap: 8px 14px; margin: 0 0 14px; }
.hd-filter label { display: flex; flex-direction: column; gap: 3px; font-size: 0.75rem; font-weight: 700; }
.hd-filter .hd-hinweis:empty { display: none; }
/* Desktop: schmalere Auswahlen, damit die Aufklapp-Knoepfe mit in die Zeile passen */
@media (min-width: 1000px) {
    .hd-filter .so-sel { width: 9.5rem; }
    .hd-filter #hdFSaison, .hd-filter #hdFStand { width: 8rem; }
    .hd-filter .so-btn { white-space: nowrap; }
}
details.hd-tag[hidden] { display: none; }

/* Planung: Abschnittsbloecke und Popup (2026-10-06, Spec hallendienst-abschnitt-popup.md) */
.hd-abs-klick { cursor: pointer; position: relative; }
.hd-abs-klick:hover, .hd-abs-klick:focus-visible { border-color: var(--tigers-yellow); }
.hd-abs-klick .ter-kopf { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.hd-abs-klick .ter-kopf .hd-tag-zahl { margin-left: auto; }
.hd-abs-wer { margin: 0; font-size: 0.9rem; font-weight: 700; }
.hd-abs-edit { align-self: flex-end; font-size: 0.8rem; font-weight: 800; color: var(--glass-60); }
.hd-abs-klick:hover .hd-abs-edit { color: var(--text-color); }
.hd-stand-leer { color: var(--glass-60); }
.hd-stand-spieltag { color: var(--tigers-yellow-ink); }
dialog.hd-dlg { width: min(720px, 94vw); max-height: 92vh; background: var(--bg-flaeche); border: 1px solid var(--karte-border); overflow: auto; }
dialog.hd-dlg:not([open]) { display: none; }
.hd-pop { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px 18px; }
.hd-pop-kopf { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px 12px; position: sticky; top: -16px; background: var(--bg-flaeche); padding: 16px 0 8px; margin-top: -16px; z-index: 1; border-bottom: 1px solid var(--glass-22); }
.hd-pop-kopf > div { flex: 1 1 260px; }
.hd-pop-titel { margin: 0; font-size: 1.1rem; font-weight: 900; }
.hd-pop-status { font-size: 0.82rem; color: var(--glass-60); align-self: center; }
.hd-pop-status.hd-pop-ok { color: var(--ok-text); }
.hd-pop-status.hd-pop-err { color: var(--err-text); font-weight: 700; }
dialog.hd-pop-speichert .hd-pop-form { opacity: 0.6; pointer-events: none; }
.hd-pop-form { display: flex; flex-direction: column; gap: 12px; margin: 0; }
.hd-pop-teil { border: 1px solid var(--glass-22); border-radius: 10px; padding: 8px 12px 12px; margin: 0; min-width: 0; }
.hd-pop-teil > legend, .hd-pop-abweichend > summary { font-weight: 800; font-size: 0.9rem; padding: 0 6px; }
.hd-pop-abweichend > summary { cursor: pointer; padding: 0; }
.hd-pop-mannschaften { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 14px; margin: 6px 0; }
.hd-zuo-opt { display: flex; align-items: baseline; gap: 6px; font-size: 0.88rem; cursor: pointer; }
.hd-zuo-opt input { width: auto; flex: 0 0 auto; }
.hd-pop-dienste { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 0.85rem; font-weight: 700; margin-top: 6px; }
.hd-pop-vorschlag { margin: 4px 0 8px; font-size: 0.9rem; }
.hd-dienst-block { border-bottom: 1px solid var(--glass-22); padding: 8px 0; }
.hd-dienst-block:last-of-type { border-bottom: 0; }
.hd-dienst-kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; }
.hd-dienst-name { font-weight: 800; }
.hd-dienst-zust { display: flex; align-items: center; gap: 6px; font-size: 0.78rem; font-weight: 700; }
.hd-dienst-zeile { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin: 6px 0 0; font-size: 0.85rem; }
.hd-dienst-spiel { flex: 1 1 200px; min-width: 0; overflow-wrap: anywhere; }
.hd-schritt { display: inline-flex; align-items: center; gap: 6px; }
.hd-schritt .so-btn { min-width: 36px; justify-content: center; }
.hd-schritt-zahl { min-width: 1.4em; text-align: center; font-variant-numeric: tabular-nums; }
.hd-dienst-neu { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; }
.hd-dienst-neu .so-sel, .hd-dienst-neu .so-inp[type="text"] { flex: 1 1 180px; }
.hd-abw-zeile { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px 12px; align-items: center; margin: 6px 0; font-size: 0.85rem; }
.hd-vor-zeile { display: grid; grid-template-columns: auto minmax(0, 1.4fr) minmax(0, 1fr); gap: 2px 10px; align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--glass-22); cursor: pointer; }
.hd-vor-zeile small { grid-column: 2 / -1; }
.hd-vor-zeile input { width: auto; }
.hd-druck { align-items: flex-end; }
.hd-druck label { display: flex; flex-direction: column; gap: 3px; font-size: 0.75rem; font-weight: 700; }
@media (max-width: 640px) {
  .hd-abw-zeile { grid-template-columns: 1fr; }
  dialog.hd-dlg { width: 100vw; max-width: 100vw; max-height: 100vh; height: 100vh; border-radius: 0; }
  .hd-dienst-neu .so-inp.hd-klein { flex: 0 0 90px; }
  .hd-pop .so-btn, .hd-pop .so-sel, .hd-pop .so-inp { min-height: 44px; }
}

/* Meine/Alle Dienste: Tageszeile in festen Spalten, Zahl der besetzten Plaetze eingefaerbt (2026-10-04) */
details.hd-tag-liste > summary { display: grid; grid-template-columns: 14px 150px 180px minmax(0, 1fr) 64px; align-items: center; gap: 4px 14px; }
details.hd-tag-plan > summary { grid-template-columns: 14px 150px 180px minmax(0, 1fr) 190px 64px; }
.hd-tag-halle, .hd-tag-dienst { min-width: 0; overflow-wrap: anywhere; font-size: 0.88rem; }
.hd-tag-leer { opacity: 0.7; font-style: italic; }
.hd-tag-zahl { text-align: right; font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hd-zahl-0 { color: var(--err-text); }
.hd-zahl-1 { color: color-mix(in srgb, var(--err-text) 45%, var(--warn-text)); }
.hd-zahl-2 { color: color-mix(in srgb, var(--err-text) 20%, var(--warn-text)); }
.hd-zahl-3 { color: var(--warn-text); }
.hd-zahl-voll { color: var(--ok-text); }
@media (max-width: 640px) {
  details.hd-tag-liste > summary, details.hd-tag-plan > summary { grid-template-columns: 14px minmax(0, 1fr) auto; }
  .hd-tag-halle, .hd-tag-dienst, .hd-tag-meta { grid-column: 2 / -1; }
  .hd-tag-zahl { grid-row: 1; grid-column: 3; }
}

/* Hallendienst auf dem Handy (2026-10-04): volle Breite, Datum in einer Zeile, Plaetze als kompakte Zeilen, Knoepfe mind. 44 px hoch */
@media (max-width: 700px) {
    .ad-card.hd-seite { padding: 14px 10px; }
    .hd-seite .hd-spiel { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 10px; }
    .hd-seite .hd-spiel > .ter-datum { flex-direction: row; align-items: baseline; justify-self: start; gap: 6px; padding: 2px 10px; }
    .hd-seite .hd-spiel > .ter-datum small { display: none; }
    .hd-seite .hd-spiel .ter-halle { display: inline; padding: 0; border: 0; background: none; font-weight: 700; }
    .hd-seite .hd-plaetze { margin-top: 8px; gap: 8px; }
    .hd-seite .hd-platz { grid-template-columns: minmax(0, 1fr) auto; gap: 1px 10px; padding: 8px 10px; font-size: 0.9rem; }
    .hd-seite .hd-aufgabe { font-size: 0.98rem; }
    .hd-seite .hd-person { font-size: 0.95rem; overflow-wrap: anywhere; }
    .hd-seite .hd-aktion { align-self: center; }
    .hd-seite .hd-aktion .so-btn { min-height: 44px; min-width: 96px; justify-content: center; }
    .hd-seite .hd-platz:has(.hd-zuweisen) { grid-template-columns: minmax(0, 1fr); }
    .hd-seite .hd-platz:has(.hd-zuweisen) .hd-aktion { grid-column: 1; grid-row: auto; }
    .hd-seite .hd-zuweisen { flex-direction: column; align-items: stretch; }
    .hd-seite .hd-zuweisen .so-sel, .hd-seite .hd-zuweisen .so-btn { width: 100%; min-height: 44px; }
    .hd-seite details.hd-tag > summary { min-height: 44px; padding: 8px 10px; }
    .hd-seite .hd-reiter { flex-wrap: nowrap; gap: 2px; }
    .hd-seite .hd-reiter a { flex: 1 1 0; text-align: center; padding: 12px 4px; font-size: 0.82rem; white-space: nowrap; }
    .hd-seite .hd-filter { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .hd-seite .hd-filter label:nth-of-type(5), .hd-seite .hd-filter .hd-hinweis { grid-column: 1 / -1; }
    .hd-seite .hd-filter .so-sel { width: 100%; min-height: 44px; }
    .hd-seite .ad-sec { flex-wrap: wrap; }
    .hd-seite .hd-filter .so-btn { min-height: 44px; font-size: 0.8rem; padding-left: 6px; padding-right: 6px; }
    .hd-seite .hd-planung-kopf .so-btn { min-height: 44px; }
    .hd-seite .ad-toolbar .so-sel, .hd-seite .ad-toolbar .so-btn { min-height: 44px; }
}

/* Hallendienst: Symbole oben rechts (Vorschlag, Import, Druck), Druckmenue (2026-10-06) */
.hd-ikonleiste { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; text-transform: none; letter-spacing: normal; }
.hd-druck-form { margin: 0; position: relative; }
.hd-ikon { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; border-radius: 10px;
    background: var(--glass-08); border: 1px solid var(--glass-22); color: rgb(var(--ink)); font: inherit; cursor: pointer; list-style: none; }
.hd-ikon::-webkit-details-marker { display: none; }
.hd-ikon:hover { background: var(--glass-12); }
.hd-ikon:focus-visible { outline: 2px solid var(--tigers-yellow); outline-offset: 2px; }
.hd-druckmenue > summary { list-style: none; }
.hd-druckmenue-liste { position: absolute; right: 0; top: calc(100% + 6px); z-index: 5; display: flex; flex-direction: column; min-width: 140px; padding: 4px;
    background: var(--bg-flaeche); border: 1px solid var(--karte-border); border-radius: 10px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25); }
.hd-druckmenue-liste button { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 8px;
    background: transparent; color: rgb(var(--ink)); font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.hd-druckmenue-liste button:hover, .hd-druckmenue-liste button:focus-visible { background: var(--glass-12); outline: none; }

/* Hallendienst: Uebersicht pro Mannschaft in der Planung, "Kein Hallendienst" im Popup (2026-10-06, Spec hallendienst-uebersicht-mannschaft.md) */
.hd-ue-karte { border: 1px solid var(--glass-22); border-radius: 12px; background: var(--glass-06); margin: 0 0 18px; overflow: hidden; }
.hd-ue-kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; padding: 10px 14px; border-bottom: 1px solid var(--glass-22); }
.hd-ue-titel { margin: 0; font-size: 1.02rem; font-weight: 900; }
.hd-ue-schalter { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 0.85rem; font-weight: 700; cursor: pointer; }
.hd-ue-schalter input { width: 20px; height: 20px; accent-color: var(--tigers-yellow); }
.hd-ue-stand { margin: 8px 14px 0; }
.hd-ue-summen { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--glass-22); margin: 8px 0 0; border-block: 1px solid var(--glass-22); }
.hd-ue-summen div { background: var(--bg-flaeche); padding: 8px 14px; }
.hd-ue-summen b { display: block; font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.hd-ue-summen span { font-size: 0.78rem; color: var(--glass-60); }
.hd-ue-kopfzeile, .hd-ue-zeile { display: grid; grid-template-columns: minmax(130px, 1.4fr) 76px 112px 100px minmax(130px, 1.5fr) 96px 18px; gap: 8px; align-items: center; padding: 8px 14px; }
.hd-ue-kopfzeile { font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--glass-60); background: var(--glass-06); }
.hd-ue-z { text-align: right; font-variant-numeric: tabular-nums; }
.hd-ue-z small { display: block; font-size: 0.72rem; color: var(--glass-60); }
.hd-ue-team { border-top: 1px solid var(--glass-22); }
.hd-ue-team[hidden] { display: none; }
.hd-ue-team > summary { list-style: none; cursor: pointer; }
.hd-ue-team > summary::-webkit-details-marker { display: none; }
.hd-ue-team > summary:hover, .hd-ue-team[open] > summary { background: var(--glass-06); }
.hd-ue-team > summary:focus-visible { outline: 2px solid var(--tigers-yellow); outline-offset: -2px; }
.hd-ue-zeile { min-height: 48px; }
.hd-ue-name { font-weight: 800; }
.hd-ue-name small { display: block; font-weight: 400; font-size: 0.75rem; color: var(--glass-60); }
.hd-ue-leer .hd-ue-zeile { color: var(--glass-60); }
.hd-ue-bal { display: flex; align-items: center; gap: 8px; }
.hd-ue-bal b { min-width: 3.2em; text-align: right; font-variant-numeric: tabular-nums; }
.hd-ue-balken { flex: 1; height: 10px; border-radius: 999px; background: var(--glass-12); overflow: hidden; }
.hd-ue-balken i { display: block; height: 100%; border-radius: 999px; background: var(--ok-solid); }
.hd-ue-balken.hd-ue-mittel i { background: var(--warn-solid); }
.hd-ue-balken.hd-ue-niedrig i { background: var(--err-solid); }
.hd-ue-pfeil { color: var(--glass-60); transition: transform 0.15s; }
details.hd-ue-team[open] .hd-ue-pfeil { transform: rotate(90deg); }
.hd-ue-abschnitt { padding: 6px 14px; font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--glass-60); background: var(--glass-06); border-top: 1px solid var(--glass-22); }
.hd-ue-dienste { list-style: none; margin: 0; padding: 4px 8px 10px; }
.hd-ue-dienst { display: grid; grid-template-columns: 120px minmax(0, 1.2fr) minmax(0, 1.4fr) 110px; gap: 4px 10px; align-items: center; min-height: 44px; padding: 6px 8px; border-radius: 8px; color: inherit; text-decoration: none; font-size: 0.88rem; }
.hd-ue-dienst:hover, .hd-ue-dienst:focus-visible { background: var(--glass-08); }
.hd-ue-wann { font-variant-numeric: tabular-nums; }
.hd-ue-wann small { display: block; color: var(--glass-60); font-size: 0.72rem; }
.hd-ue-freitext { color: var(--err-text); font-weight: 800; }
.hd-ue-sprung { text-align: right; font-size: 0.8rem; color: var(--glass-60); }
.hd-stand-kein { color: var(--glass-60); }
.hd-pop-vorzeile { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; justify-content: space-between; margin: 4px 0 8px; }
.hd-pop-vorzeile .hd-pop-vorschlag { margin: 0; }
.hd-pop-kein { margin-left: auto; }
@media (max-width: 760px) {
    .hd-ue-summen { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hd-ue-kopfzeile { display: none; }
    .hd-ue-zeile { grid-template-columns: repeat(4, minmax(0, 1fr)) 18px; gap: 6px 8px; padding: 12px 14px; }
    .hd-ue-name { grid-column: 1 / 5; }
    .hd-ue-pfeil { grid-column: 5; grid-row: 1; }
    .hd-ue-bal { grid-column: 1 / -1; order: 2; }
    .hd-ue-zeile > .hd-ue-z { text-align: left; order: 3; }
    .hd-ue-zeile > .hd-ue-z::before { content: attr(data-l); display: block; font-size: 0.68rem; color: var(--glass-60); }
    .hd-ue-dienst { grid-template-columns: 1fr; }
    .hd-ue-sprung { text-align: left; }
}

/* Popup: Mannschaften als Mehrfach-Dropdown (2026-10-06) */
.hd-pop-wahlzeile { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px 10px; margin: 4px 0 8px; }
.hd-mdrop { flex: 1 1 260px; min-width: 0; }
.hd-mdrop > summary { list-style: none; cursor: pointer; display: flex; align-items: center; min-height: var(--feld-hoehe, 36px); padding: 4px 34px 4px 12px; position: relative;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.9rem; }
.hd-mdrop > summary::-webkit-details-marker { display: none; }
.hd-mdrop > summary::after { content: "\25BE"; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--glass-60); }
.hd-mdrop[open] > summary::after { content: "\25B4"; }
.hd-mdrop > summary:focus-visible { outline: 2px solid var(--tigers-yellow); outline-offset: 2px; }
.hd-mdrop-liste { display: flex; flex-direction: column; gap: 2px; max-height: 280px; overflow-y: auto; margin: 6px 0 0; padding: 6px 8px; border: 1px solid var(--glass-22); border-radius: 10px; background: var(--bg-flaeche); }
.hd-mdrop-liste .hd-zuo-opt { min-height: 36px; align-items: center; padding: 2px 4px; border-radius: 6px; }
.hd-mdrop-liste .hd-zuo-opt:hover { background: var(--glass-08); }
.hd-pop-wahlzeile > .so-btn { min-height: var(--feld-hoehe, 36px); white-space: nowrap; }
@media (max-width: 700px) { .hd-pop-wahlzeile > .so-btn, .hd-mdrop > summary { min-height: 44px; } }

/* Auswahllisten im Dunkelmodus: Gruppenueberschriften (optgroup) sonst weiss auf weiss */
.so-sel optgroup { background: var(--tigers-black); color: var(--white); font-style: normal; font-weight: 800; }

/* Kabinenschilder-Popup (kabinenschilder.js): Spieleliste mit Haken */
/* .so-hint setzt den unteren Rand mit !important auf 0: der Abstand haengt deshalb am folgenden Feld */
.ter-kb-hinweis + .so-fld { margin-top: 14px; }
.ter-kb-kopf { display: flex; gap: 8px; margin: 12px 0 8px; }
.ter-kb-liste { display: flex; flex-direction: column; gap: 4px; max-height: 42vh; overflow-y: auto; padding-bottom: 2px; }
.ter-kb-halle { margin-top: 6px; font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; color: var(--glass-60); }
.ter-kb-zeile { display: grid; grid-template-columns: auto 3.4em minmax(0, 1fr); align-items: center; gap: 10px; min-height: 40px;
    padding: 4px 10px; border: 1px solid var(--glass-22); border-radius: 10px; background: var(--glass-06); font-size: 0.85rem; cursor: pointer; }
.ter-kb-zeile b { font-weight: 900; }
.ter-kb-zeile span { overflow-wrap: anywhere; }
.ter-kb-zeile:has(input:disabled) { opacity: 0.6; cursor: default; }

/* Spieltag (spieltag.js): Kopfzeile ueber den eigenen Spielen einer Spieltag-Zeit, Spiele eingerueckt, Spieltagskader-Popup */
.ter-spieltag-kopf { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: start;
    padding: 10px 14px; border: 1px solid var(--tigers-yellow-35); border-radius: 12px; background: var(--tigers-yellow-06); }
.ter-spieltag-kopf.ter-spt-ausw { border-color: var(--glass-30); background: var(--glass-08); }
.ter-spieltag-kopf .ter-aktionen { grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; }
.ter-spieltag-kopf .ter-aktionen a.so-btn { text-decoration: none; }
.ter-im-spieltag { margin-left: 22px; }
.ter-spt-hinweis { margin-bottom: 0; }
.ter-spt-dlg .ter-kb-kopf { flex-wrap: wrap; }
.ter-spt-liste { display: flex; flex-direction: column; gap: 4px; max-height: 46vh; overflow-y: auto; padding-bottom: 2px; }
.ter-spt-zeile { display: grid; grid-template-columns: auto 4.4em minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 40px;
    padding: 4px 10px; border: 1px solid var(--glass-22); border-radius: 10px; background: var(--glass-06); font-size: 0.85rem; }
.ter-spt-zeile:has(input[type=checkbox]:checked) { border-color: var(--tigers-yellow-35); background: var(--tigers-yellow-06); }
.ter-spt-zeile small { color: var(--glass-60); white-space: nowrap; }
.ter-spt-nr { width: 4.4em; text-align: center; }
@media (max-width: 700px) {
    .ter-spieltag-kopf { grid-template-columns: minmax(0, 1fr); }
    .ter-im-spieltag { margin-left: 10px; }
}

/* Formulare drucken (spieltag.js): Auswahl der Formulare */
.ter-spt-form { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; min-height: 52px;
    padding: 8px 12px; border: 1px solid var(--glass-22); border-radius: 10px; background: var(--glass-06); cursor: pointer; }
.ter-spt-form:has(input:checked) { border-color: var(--tigers-yellow-35); background: var(--tigers-yellow-06); }
.ter-spt-form span { display: flex; flex-direction: column; gap: 2px; }
.ter-spt-form small { color: var(--glass-60); font-size: 0.78rem; }

/* Termine am Handy (2026-10-10): Tippflaechen mind. 44px, Filter nebeneinander, Aktionen in zwei Reihen
   (Kaderliste + Bearbeiten mit Text, Uebernehmen/Absagen/Loeschen als Symbole; der Name steht im title). */
@media (max-width: 700px) {
    .ad-toolbar:has(+ .hd-reiter) .so-sel { flex: 1 1 44%; min-width: 0; min-height: 44px; }
    .ad-toolbar:has(+ .hd-reiter) .so-sel:first-of-type { flex-basis: 100%; }
    .ad-toolbar:has(+ .hd-reiter) .so-btn { min-height: 44px; }
    .ter-aktionen { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
    .ter-aktionen .so-btn { min-height: 44px; justify-content: center; margin: 0; }
    .ter-aktionen > .so-btn { grid-column: span 3; }
}

/* Terminkarte (2026-10-23): Ort mit Route-Knopf, Nummer/Staffel/BWHV als Nebenzeile, Aktionen = Kaderliste + Menue ("..."). */
.ter-ort { display: flex; align-items: flex-start; gap: 8px; }
.ter-ort-text { flex: 1 1 auto; min-width: 0; }
.ter-ort-name { font-weight: 800; }
.ter-ort-adr::before { content: ", "; }
.ter-ort-belegt::before { content: " \00B7  "; }
.ter-ort-bedarf::before { content: " "; }
.ter-zeile .ter-route { flex: none; display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 8px; text-decoration: none; color: inherit;
    font-size: 0.72rem; font-weight: 700; background: var(--tigers-yellow-06); border: 1px solid var(--tigers-yellow-35); }
.ter-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0; }
.ter-link { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 36px; padding: 4px 12px; border-radius: 8px; text-decoration: none;
    font-size: 0.82rem; font-weight: 700; background: var(--glass-06); border: 1px solid color-mix(in srgb, currentColor 40%, transparent); }
.ter-links a.ter-link:not([class*="hd-zahl"]) { color: inherit; }
.ter-link-aus { cursor: default; }
.ter-eintrag .ter-aktionen { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px; min-width: 0; position: relative; }
.ter-eintrag .ter-aktionen > .ter-kl-gruppe { flex: 1 1 auto; }
.ter-mehr > summary { list-style: none; cursor: pointer; justify-content: center; min-width: 44px; font-size: 1.3rem; line-height: 1; }
.ter-mehr > summary::-webkit-details-marker { display: none; }
.ter-mehr > summary:focus-visible { outline: 2px solid var(--tigers-yellow); outline-offset: 2px; }
.ter-mehr-liste { position: absolute; right: 0; z-index: 5; display: flex; flex-direction: column; gap: 4px; margin-top: 6px; padding: 6px; min-width: 230px;
    border: 1px solid var(--glass-22); border-radius: 10px; background: var(--bg-flaeche); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25); }
.ter-mehr-liste .so-btn { justify-content: flex-start; white-space: normal; text-align: left; }
@media (max-width: 700px) {
    .ter-eintrag > .ter-datum { flex-direction: row; align-items: baseline; justify-self: start; gap: 6px; padding: 3px 12px; }
    .ter-eintrag > .ter-datum small { display: none; }
    .ter-eintrag > .ter-datum .ter-uhr { align-self: auto; margin: 0; padding: 0 0 0 8px; border-top: 0; border-left: 1px solid var(--tigers-yellow-35); font-size: 0.8rem; }
    .ter-ort { align-items: center; min-height: 48px; margin: 6px 0; padding: 6px 8px; border-radius: 8px; background: var(--tigers-yellow-06); font-size: 0.9rem; }
    .ter-ort > i { display: none; }
    .ter-ort-adr, .ter-ort-belegt, .ter-ort-bedarf { display: block; font-size: 0.78rem; color: var(--glass-60); }
    .ter-ort-adr::before, .ter-ort-belegt::before, .ter-ort-bedarf::before { content: none; }
    .ter-zeile .ter-route { flex-direction: column; justify-content: center; gap: 2px; min-width: 48px; min-height: 44px; font-size: 0.7rem; }
    .ter-meta { font-size: 0.76rem; color: var(--glass-60); }
    .ter-link { flex: 1 1 0; min-width: 0; min-height: 44px; padding: 4px 6px; gap: 4px; font-size: 0.76rem; overflow-wrap: normal; word-break: normal; }
    .ter-link[class*="hd-zahl"] { flex: 0 0 auto; white-space: nowrap; }
    .ter-link[class*="hd-zahl"]:only-child { flex: 1 1 auto; }
    .ter-link-zusatz { display: none; }
    .ter-reiter { flex-wrap: nowrap; gap: 0; }
    .ter-reiter a { flex: 1 1 0; min-width: 0; padding: 8px 4px; text-align: center; }
    .ter-reiter-zahl { display: block; font-size: 0.75rem; font-weight: 400; }
    .ter-knoepfe { flex: 1 1 100%; }
    .ter-knoepfe .so-btn-ghost { min-width: 44px; justify-content: center; }
    .ter-knoepfe .so-btn-ghost span { display: none; }
    .ter-knoepfe .so-btn:not(.so-btn-ghost) { flex: 1 1 auto; justify-content: center; }
    .ter-mehr-liste .so-btn { min-height: 44px; }
}

/* Kaderliste eines Spiels im Spieltag: Link und Zahnrad (Spieltagskader anpassen) teilen sich eine Zelle */
.ter-kl-gruppe { display: flex; gap: 6px; min-width: 0; }
.ter-kl-gruppe > a { flex: 1 1 auto; min-width: 0; }
.ter-kl-gruppe > button { flex: 0 0 auto; }

/* =====================================================================
 * Kalender-Abo Modal (kalender-abo.ts / Termine.php) – UI/UX Pro Max
 * ===================================================================== */
.kalender-dlg { width: 100%; max-width: 560px; padding: 24px; box-sizing: border-box; }
.kalender-dlg-kopf { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.kalender-dlg-kopf h2 { margin: 0; font-size: 1.3rem; display: flex; align-items: center; gap: 10px; color: rgb(var(--ink)); }
.kalender-dlg-kopf .so-btn-ghost { padding: 8px 12px; }

.kalender-1klick-box { margin: 18px 0 16px; text-align: center; }
.kalender-1klick-btn {
    display: inline-flex; width: 100%; box-sizing: border-box; min-height: 48px;
    align-items: center; justify-content: center; gap: 10px; font-size: 1.05rem;
    font-weight: 600; text-decoration: none; border-radius: 12px;
    box-shadow: 0 4px 14px rgba(245, 166, 35, 0.25);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.kalender-1klick-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(245, 166, 35, 0.35); }
.kalender-1klick-hinweis { display: block; margin-top: 8px; font-size: 0.82rem; color: var(--glass-60, rgba(255, 255, 255, 0.6)); }

.kalender-trenn {
    position: relative; text-align: center; margin: 20px 0 14px;
}
.kalender-trenn::before {
    content: ''; position: absolute; left: 0; right: 0; top: 50%;
    height: 1px; background: rgba(var(--ink) / 0.15);
}
.kalender-trenn span {
    position: relative; display: inline-block; padding: 0 12px;
    font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em;
    color: var(--glass-60, rgba(255, 255, 255, 0.6));
    background: var(--bg-flaeche);
}

.kalender-url-box { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.kalender-url-box .so-in {
    flex: 1 1 auto; min-width: 0; font-family: monospace; font-size: 0.85rem;
    padding: 10px 12px; background: var(--glass-06, rgba(255, 255, 255, 0.05));
    border: 1px solid var(--glass-22, rgba(255, 255, 255, 0.18)); border-radius: 8px;
    color: rgb(var(--ink));
}
.kalender-url-box .so-btn { flex: 0 0 auto; min-height: 42px; white-space: nowrap; }

.kalender-btn-kopiert {
    background: #10b981 !important; color: #fff !important;
    border-color: #10b981 !important; transition: all 0.2s ease;
}

.kalender-toast {
    display: none; padding: 8px 12px; border-radius: 8px; font-size: 0.85rem;
    margin-bottom: 14px; text-align: center;
}
.kalender-toast.on { display: block; animation: terFadeIn 0.2s ease; }
.kalender-toast.ok { background: rgba(16, 185, 129, 0.18); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.35); }
.kalender-toast.err { background: rgba(239, 68, 68, 0.18); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.35); }

.kalender-anleitung-liste { display: flex; flex-direction: column; gap: 8px; margin: 16px 0; }
.kalender-details {
    border: 1px solid rgba(var(--ink) / 0.15);
    border-radius: 8px; background: rgba(var(--ink) / 0.04);
    overflow: hidden; transition: background 0.2s ease;
}
.kalender-details[open] { background: var(--glass-08, rgba(255, 255, 255, 0.06)); }
.kalender-details summary {
    padding: 10px 14px; font-size: 0.9rem; font-weight: 500; cursor: pointer;
    display: flex; align-items: center; gap: 10px; color: rgb(var(--ink));
}
.kalender-details summary i { color: var(--tigers-yellow-ink); width: 1.2em; text-align: center; }
.kalender-details ol {
    margin: 0; padding: 0 16px 14px 34px; font-size: 0.85rem; line-height: 1.5;
    color: rgba(var(--ink) / 0.8);
}
.kalender-details li { margin-top: 6px; }
.kalender-details a { color: var(--tigers-yellow-ink); text-decoration: underline; }

.kalender-wahl { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; }
.kalender-wahl legend, .kalender-wahl-label { display: block; padding: 0; margin-bottom: 6px; font-size: 0.85rem; font-weight: 600; color: var(--glass-60, rgba(255, 255, 255, 0.6)); }
.kalender-wahl legend small { font-weight: 400; }
.kalender-wahl select { width: 100%; }
.kalender-wahl-hinweis { display: block; margin-top: 6px; font-size: 0.78rem; line-height: 1.4; color: var(--glass-50, rgba(255, 255, 255, 0.4)); }
.kalender-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.kalender-chip { position: relative; cursor: pointer; }
.kalender-chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.kalender-chip span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(var(--ink) / 0.2); font-size: 0.9rem; transition: background 0.15s, border-color 0.15s; }
.kalender-chip input:checked + span { background: var(--tigers-yellow, #f5a623); border-color: var(--tigers-yellow, #f5a623); color: #111; font-weight: 600; }
.kalender-chip input:focus-visible + span { outline: 2px solid var(--tigers-yellow, #f5a623); outline-offset: 2px; }
.kalender-leer { margin: 0 0 12px; font-size: 0.85rem; color: #f87171; }
.kalender-gesperrt { opacity: 0.4; pointer-events: none; }
.kalender-url-box .so-btn:disabled { opacity: 0.4; cursor: not-allowed; }

.kalender-reset-box {
    margin-top: 18px; padding-top: 14px;
    border-top: 1px solid rgba(var(--ink) / 0.1);
    display: flex; flex-direction: column; gap: 6px; align-items: flex-start;
}
.kalender-reset-btn {
    background: transparent; border: none; padding: 0; color: var(--glass-60, rgba(255, 255, 255, 0.5));
    font-size: 0.82rem; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
    transition: color 0.15s ease;
}
.kalender-reset-btn:hover { color: #f87171; }
.kalender-reset-box small { font-size: 0.78rem; color: var(--glass-50, rgba(255, 255, 255, 0.4)); line-height: 1.4; }
