/* Einheitliche Status-Darstellung (Mannschaften, dbdetail, T-Shirt-Orga):
   weiche Pastellflächen mit dunkler Schrift (Kontrast >= 4,5:1), Betragsfarben, Änderungsmarker */
:root {
  --ma-ok-bg:#d1e7dd;  --ma-ok-fg:#0f5132;   /* erledigt / vorhanden / ausgeglichen */
  --ma-bad-bg:#f8d7da; --ma-bad-fg:#842029;   /* offen / fehlt */
  --ma-warn-bg:#ffe69c; --ma-warn-fg:#000;    /* Aktion nötig */
  --ma-info-bg:#cff4fc;                       /* Information (z. B. Camper) */
  --ma-c-ok:#146c43; --ma-c-guthaben:#8a5a00; --ma-c-teil:#0a58ca; --ma-c-offen:#b02a37;  /* Betrags-Schriftfarben */
}
.ma-ok   { background:var(--ma-ok-bg);   color:var(--ma-ok-fg); }
.ma-bad  { background:var(--ma-bad-bg);  color:var(--ma-bad-fg); }
.ma-warn { background:var(--ma-warn-bg); color:var(--ma-warn-fg); }
.ma-leg  { position:relative; display:inline-block; padding:0 6px; border-radius:3px; border:1px solid rgba(0,0,0,.12); }
/* Änderungsmarker: blaues Dreieck in der oberen rechten Zellenecke */
td.ma-chg, .ma-chg, [data-chg="1"] { position:relative; }
.ma-chg::after, [data-chg="1"]::after { content:''; position:absolute; top:0; right:0; border-style:solid; border-width:0 11px 11px 0; border-color:transparent #0d6efd transparent transparent; }
.ma-note { cursor:help; font-size:.9em; }
.ma-sym  { font-size:.8em; font-family:"Segoe UI Symbol","DejaVu Sans",sans-serif; }
.ma-betrag { white-space:nowrap; font-variant-numeric:tabular-nums; }
/* Betrags-Schriftfarben als Klassen (fett) */
.ma-c-ok      { color:var(--ma-c-ok); font-weight:700; }
.ma-c-offen   { color:var(--ma-c-offen); font-weight:700; }
.ma-c-guthaben{ color:var(--ma-c-guthaben); font-weight:700; }

/* Zentrale Titelbalken-Farbe der Abschnitts-Karten (Bootstrap dark), unabhängig vom Hell/Dunkel-Schalter */
.bc-card .card-header,
.orgacontent .card-header { background-color: var(--bs-dark); color: #fff; }

/* Teilnehmer-Status als Pastell (registriert / Warteliste / Teilnehmerfeld / abgemeldet) – Klassen aus bc_status_klasse() */
.bc-st { display:inline-block; padding:1px 8px; border-radius:4px; border:1px solid rgba(0,0,0,.12); font-size:.85em; }
td.bc-st { display:table-cell; border-radius:0; font-size:inherit; }
td.bc-st-registriert { background:#cfe2ff !important; color:#084298 !important; }
td.bc-st-warteliste { background:#ffe69c !important; color:#000 !important; }
td.bc-st-teilnehmerfeld { background:#d1e7dd !important; color:#0f5132 !important; }
td.bc-st-abgemeldet { background:#f8d7da !important; color:#842029 !important; }
.bc-st-registriert    { background-color:#cfe2ff; color:#084298; }
.bc-st-warteliste     { background-color:#ffe69c; color:#000; }
.bc-st-teilnehmerfeld { background-color:#d1e7dd; color:#0f5132; }
.bc-st-abgemeldet     { background-color:#f8d7da; color:#842029; }
.bc-card .card-header { font-size:1.05rem; }
.bc-card .bc-card-hint { font-size:.8rem; font-weight:400; opacity:.95; }
/* T-Shirt-Größen: Kinder (116–164) blau, Erwachsene (S–4XL) orange – unterschiedliche Preise */
.ts-k-label { color:#084298 !important; }
.ts-e-label { color:#b45309 !important; }
select.ts-menge[data-kind="1"] { background-color:#cfe2ff; border-color:#9ec5fe; }
select.ts-menge[data-kind="0"] { background-color:#ffe5cc; border-color:#fdc08a; }
.ts-anz-k { background-color:#cfe2ff; color:#084298; border-radius:4px; padding:2px 8px; display:inline-block; min-width:2.2em; text-align:center; }
.ts-anz-e { background-color:#ffe5cc; color:#b45309; border-radius:4px; padding:2px 8px; display:inline-block; min-width:2.2em; text-align:center; }
.ts-legende span { display:inline-block; border-radius:4px; padding:1px 8px; margin-right:6px; font-size:.8rem; }
.ts-legende .k { background-color:#cfe2ff; color:#084298; }
.ts-legende .e { background-color:#ffe5cc; color:#b45309; }
.ma-c-teil { color:var(--ma-c-teil); font-weight:700; }

/* ===== Markenausgabe (markenausgabe.php) ===== */
.btn-marken-setzen, .btn-armband-toggle { font-size:.8em; padding:2px 6px; }
.btn-ma-ok    { background-color:#d1e7dd; color:#0f5132; border:1px solid #a3cfbb; }
.btn-ma-offen { background-color:#ffe69c; color:#000;    border:1px solid #ffc107; }
.btn-ma-ok:hover    { background-color:#bcd9cb; color:#0f5132; border-color:#a3cfbb; }
.btn-ma-offen:hover { background-color:#ffdb6d; color:#000;    border-color:#ffc107; }
.btn-ma-ok:disabled, .btn-ma-offen:disabled { opacity:.7; }
#marken-inhalt td.ma-z-ok   { background-color:#d1e7dd; }
#marken-inhalt td.ma-z-gelb { background-color:#fff3cd; }
#marken-inhalt td.ma-z-rot  { background-color:#f8d7da; }
.ma-z-strich { font-size:.75em; color:#842029; }
.ma-badge-anz { font-size:.75em; }
#marken-inhalt th[data-filter-day] { transition: background-color .15s; }
#marken-inhalt th[data-filter-day].th-filter-aktiv { background-color: #cfe2ff !important; color:#084298 !important; }
.kg-person-row > td:first-child { padding-left: 1.6em; font-size: .88em; }
.kg-person-row > td:nth-child(2)::before { content: '\2514 '; color: #6c757d; }
.kg-haupteintrag { cursor: pointer; user-select: none; }
.ma-parent-row { cursor: pointer; user-select: none; }
.ma-parent-row:hover > td:first-child { filter: brightness(.96); }
.kg-toggle-pfeil { display:inline-block; transition: transform .15s; font-size:.7em; color:#6c757d; }
.kg-toggle-pfeil.offen { transform: rotate(90deg); }
#marken-inhalt .table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-striped-bg: rgba(0, 0, 0, 0.10); }

/* Bootstrap-Modals im BeachCup-Look (dunkler Titelbalken wie bei den Karten) */
.bc-modal .modal-header { background-color: var(--bs-dark); color:#fff; }
.bc-modal .modal-header .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

/* Sticky Tabellenkopf: ab 768px (dort kein horizontaler Scroll-Container, sonst greift sticky nicht am Viewport) */
#marken-inhalt { overflow-x:auto; }
@media (min-width:768px) {
    #marken-inhalt { overflow-x:visible; }
    #marken-inhalt thead th { position:sticky; top:var(--ma-nav-h,56px); z-index:2; box-shadow:inset 0 -1px 0 #dee2e6, 0 1px 2px rgba(0,0,0,.15); }
}

/* Mobil (<768px): Tabellenzeilen als Karten. Auf-/Zuklappen läuft weiter über die <tr> (jQuery show/hide) */
@media (max-width:767.98px) {
    #marken-inhalt table, #marken-inhalt tbody { display:block; min-width:0 !important; border:0; }
    #marken-inhalt thead { display:none; }
    #marken-inhalt tbody tr {
        display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
        margin-bottom:.6rem; border:1px solid #adb5bd; border-radius:.5rem; overflow:hidden;
        background-color:var(--bs-body-bg,#fff);
    }
    #marken-inhalt tbody tr > td { border:0; box-shadow:none !important; padding:.4rem .5rem; }
    #marken-inhalt tbody tr > td:nth-child(1) { grid-column:1 / -1; font-weight:600; padding-bottom:.1rem; }
    #marken-inhalt tbody tr > td:nth-child(2) { grid-column:1 / -1; padding-top:0; }
    #marken-inhalt tbody tr > td[data-label] { text-align:center; color:#212529; }
    #marken-inhalt td[data-label]::before {
        content:attr(data-label); display:block; font-size:.7rem; font-weight:600; color:#495057; margin-bottom:2px;
    }
    #marken-inhalt tbody tr > td[data-label=Armband] {
        grid-column:1 / -1; display:flex; justify-content:space-between; align-items:center;
        color:inherit; border-top:1px solid #dee2e6;
    }
    #marken-inhalt td[data-label=Armband]::before { margin:0; color:inherit; font-size:.8rem; }
    #marken-inhalt tbody tr > td.ma-aktionen { grid-column:1 / -1; text-align:right; border-top:1px solid #dee2e6; }
    #marken-inhalt .btn-marken-setzen, #marken-inhalt .btn-armband-toggle { font-size:.9em; padding:4px 10px; }
    #marken-inhalt .btn-marken-reset, #marken-inhalt .btn-person-add,
    #marken-inhalt .btn-person-rename, #marken-inhalt .btn-marken-delete { padding:4px 12px; }
    /* Eltern-Karte (KG / Bereich) mit Akzent, Kind-Karten eingerückt und kompakter */
    #marken-inhalt tr.ma-parent-row { border-left:4px solid #9ec5fe; }
    #marken-inhalt tr.kg-person-row { margin-left:1rem; font-size:.92em; }
    #marken-inhalt tr.kg-person-row > td:nth-child(1) { display:none !important; }
    #marken-inhalt tr.kg-person-row > td:nth-child(2) { padding-top:.4rem; font-weight:600; }
    #marken-inhalt .kg-person-row > td:first-child { padding-left:.5rem; }
}

/* Trennlinie zwischen "Bereich anlegen" und "Person manuell hinzufügen" (ab lg senkrecht, darunter per <hr>) */
@media (min-width:992px) { .ma-trenner-lg { border-left:1px solid var(--bs-border-color,#dee2e6); padding-left:1rem !important; } }


/* ===== Kampfgericht Equipment-Ausgabe (kg_matausgabe) ===== */
/* Generische Pastell-Statusbuttons (grün = zurück/keiner, gelb = ausgegeben/läuft, rot = offen/abgelaufen, blau = Aktion) */
.btn-st-gruen, .btn-st-gruen:hover, .btn-st-gruen:focus, .btn-st-gruen:active { background-color:#d1e7dd; border-color:#a3cfbb; color:#0f5132; }
.btn-st-gelb,  .btn-st-gelb:hover,  .btn-st-gelb:focus,  .btn-st-gelb:active  { background-color:#ffe69c; border-color:#ffc107; color:#000; }
.btn-st-rot,   .btn-st-rot:hover,   .btn-st-rot:focus,   .btn-st-rot:active   { background-color:#f8d7da; border-color:#f1aeb5; color:#842029; }
.btn-st-blau,  .btn-st-blau:hover,  .btn-st-blau:focus,  .btn-st-blau:active  { background-color:#cfe2ff; border-color:#9ec5fe; color:#084298; }
.btn-st-gruen:hover, .btn-st-gelb:hover, .btn-st-rot:hover, .btn-st-blau:hover { filter:brightness(.95); }
/* deaktiviert (z. B. gesperrtes Jahr): Pastellfarbe behalten statt transparent */
.btn-st-gruen:disabled, .btn-st-gruen.disabled { background-color:#d1e7dd; border-color:#a3cfbb; color:#0f5132; }
.btn-st-gelb:disabled, .btn-st-gelb.disabled { background-color:#ffe69c; border-color:#ffc107; color:#000; }
.btn-st-rot:disabled, .btn-st-rot.disabled { background-color:#f8d7da; border-color:#f1aeb5; color:#842029; }
.btn-st-blau:disabled, .btn-st-blau.disabled { background-color:#cfe2ff; border-color:#9ec5fe; color:#084298; }
.btn-ekg { width:86px; font-size:.80em; padding:3px 6px; white-space:nowrap; }
.btn-laeuferdienst { font-variant-numeric:tabular-nums; }
#div-ekg-inhalt { overflow-x:auto; }
#div-ekg-inhalt .table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-striped-bg:rgba(0,0,0,.10); }
@media (min-width:768px) {
    #div-ekg-inhalt { overflow-x:visible; }
}
@media (max-width:1299.98px) {
    #div-ekg-inhalt table.ekg-tab { min-width:0 !important; }
    #div-ekg-inhalt table.ekg-tab thead { display:none; }
    #div-ekg-inhalt table.ekg-tab, #div-ekg-inhalt table.ekg-tab tbody { display:block; width:100%; }
    #div-ekg-inhalt table.ekg-tab tbody tr { display:grid; grid-template-columns:repeat(3,1fr); gap:.35rem; border:1px solid #dee2e6; border-radius:.5rem; margin-bottom:.6rem; padding:.5rem; background:#fff; }
    #div-ekg-inhalt table.ekg-tab tbody td { display:block; border:0; padding:0; text-align:center; background:transparent !important; box-shadow:none !important; }
    #div-ekg-inhalt table.ekg-tab tbody td:nth-child(1) { grid-column:1 / -1; text-align:left; font-size:1.05em; }
    #div-ekg-inhalt table.ekg-tab tbody td:nth-child(1)::before { content:'Feld '; }
    #div-ekg-inhalt table.ekg-tab tbody td:nth-child(2) { grid-column:1 / -1; text-align:left; color:#6c757d; border-bottom:1px solid #eee; padding-bottom:.35rem; }
    #div-ekg-inhalt table.ekg-tab tbody td[data-label]::before { content:attr(data-label); display:block; font-size:.7em; color:#6c757d; margin-bottom:1px; }
    #div-ekg-inhalt table.ekg-tab .btn-ekg { width:100%; }
    #div-ekg-inhalt table.ekg-tab td.ekg-reset-td { grid-column:1 / -1; text-align:right; }
    #div-ekg-inhalt table.ekg-tab td.ekg-reset-td .btn { width:auto; }
}
/* Tablet: 10 Kacheln in 2 Reihen à 5 Spalten */
@media (min-width:576px) and (max-width:1299.98px) {
    #div-ekg-inhalt table.ekg-tab tbody tr { grid-template-columns:repeat(5,1fr); }
}
.ekg-tab td.ekg-reset-td .btn { width:auto; }


/* ===== Kampfgericht-Verwaltung (kgverwaltung_tabs) ===== */
@keyframes zeileSaved {
    0%   { background-color:#d1e7dd; }
    70%  { background-color:#d1e7dd; }
    100% { background-color:transparent; }
}
.zeile-saved td { animation:zeileSaved 1.4s ease-out; }
.kg-collision-warning, .kg-anwesend-warning { border-radius:4px; padding:7px 11px; margin-top:5px; font-size:.86em; }
.kg-collision-warning { color:#856404; background-color:#fff3cd; border:1px solid #ffc107; }
.kg-anwesend-warning  { color:#0c5460; background-color:#d1ecf1; border:1px solid #bee5eb; }
.kg-felder-limit-warn { color:#dc3545; font-weight:600; }
.kg-belegung-warning  { border-radius:4px; padding:7px 11px; margin-top:5px; font-size:.86em; color:#721c24; background-color:#f8d7da; border:1px solid #f5c2c7; }
.kg-time-input { width:108px; }
.kg-tab > tbody > tr > td { vertical-align:middle; }
#div_kg_inhalt .table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-striped-bg:rgba(0,0,0,.05); }
@media (max-width:575px) {
    .kg-time-input { width:80px; font-size:.82em; padding:2px 3px; max-width:90px; }
    .kg-edit-anw-fr-start, .kg-edit-anw-fr-ende,
    .kg-edit-anw-sa-start, .kg-edit-anw-sa-ende,
    .kg-edit-anw-so-start, .kg-edit-anw-so-ende { width:96px !important; padding:1px 3px; }
    .kg-ansetz-block { margin-bottom:6px !important; }
    .kg-ansetz-inner { font-size:.84em; }
    #btn-kg-hinzufuegen { width:100%; }
}
/* Mobil (< 768 px): Zeilen als Karten */
@media (max-width:767.98px) {
    .kg-tab, .kg-tab tbody { display:block; width:100%; }
    .kg-tab thead { display:none; }
    .kg-tab tbody tr { display:grid; grid-template-columns:1fr 1fr; gap:.4rem; border:1px solid #dee2e6; border-radius:.5rem; margin-bottom:.6rem; padding:.5rem; background:#fff; }
    .kg-tab tbody td { display:block; border:0 !important; padding:0 !important; background:transparent !important; box-shadow:none !important; text-align:left !important; }
    .kg-tab tbody td[data-label]::before { content:attr(data-label); display:block; font-size:.7em; color:#6c757d; }
    .kg-tab tbody td.kg-z-name { grid-column:1 / -1; font-weight:600; font-size:1.05em; }
    .kg-tab tbody td[data-label="Max. Felder"] { grid-column:1 / -1; }
    .kg-tab tbody td.kg-aktionen { grid-column:1 / -1; border-top:1px solid #eee !important; padding-top:.4rem !important; }
    .kg-tab tbody td.kg-aktionen > div { justify-content:flex-end !important; }
    .kg-tab tbody td.kg-aktionen .btn { min-width:44px; }
    /* Bearbeiten-Modus: gestapelt */
    .kg-tab tbody tr.kg-edit-row { display:block; }
    .kg-tab tbody tr.kg-edit-row td { margin-bottom:.5rem; }
    .kg-tab tbody tr.kg-edit-row td:last-child { text-align:center !important; }
    .kg-tab tbody tr.kg-ansetz-row { display:block; padding:0; }
    .kg-tab tbody tr.kg-ansetz-row td { padding:.5rem !important; background:#f8f9fa !important; border-radius:.5rem; }
}
@media (max-width:767.98px) { .kg-tab tbody tr.kg-edit-row .kg-edit-maxfelder { margin:0 !important; } .kg-tab tbody tr.kg-edit-row td.text-center[data-label] { text-align:left !important; } }
@media (max-width:767.98px) { .kg-tab tbody tr.kg-edit-row td:nth-child(6) { display:none; } }

/* Bereichs-Tabs (kgverwaltung_tabs): aktiver Tab dunkel/invertiert, inaktive hell-pastell */
#kg-tabs, #ia-turnier, #ekg-turnier, #tk-tabs, #ac-tabs, #ka-tabs { border-bottom:2px solid var(--bs-dark); gap:.25rem; }
#kg-tabs .nav-link, #ia-turnier .nav-link, #ekg-turnier .nav-link, #tk-tabs .nav-link, #ac-tabs .nav-link, #ka-tabs .nav-link { background:#e9ecef; color:#495057; border:1px solid #dee2e6; border-bottom:0; font-weight:500; padding:.5rem 1.4rem; }
#kg-tabs .nav-link:hover, #ia-turnier .nav-link:hover, #ekg-turnier .nav-link:hover, #tk-tabs .nav-link:hover, #ac-tabs .nav-link:hover, #ka-tabs .nav-link:hover { background:#cfe2ff; color:#084298; }
#kg-tabs .nav-link.active, #ia-turnier .nav-link.active, #ekg-turnier .nav-link.active, #tk-tabs .nav-link.active, #ac-tabs .nav-link.active, #ka-tabs .nav-link.active { background:var(--bs-dark); color:#fff; border-color:var(--bs-dark); font-weight:700; }

/* ===== Info-Station (info_absagen.php / absagen_widget.php) ===== */
.ia-card-gelb > .bc-card { border-left:6px solid #ffc107; }
.ia-card-rot > .bc-card { border-left:6px solid #dc3545; }
.ia-tab .btn-meldung-loeschen { min-width:2rem; }
@media (max-width:767.98px) {
  .ia-tab thead { display:none; }
  .ia-tab, .ia-tab tbody { display:block; width:100%; }
  .ia-tab tbody tr { display:grid; grid-template-columns:repeat(3,1fr); gap:.15rem .5rem; padding:.5rem; margin-bottom:.5rem; border:1px solid #dee2e6; border-radius:.4rem; background:#fff; box-shadow:none !important; }
  .ia-tab tbody td { display:block; border:0 !important; padding:.1rem 0 !important; background:transparent !important; box-shadow:none !important; font-size:.9rem; }
  .ia-tab tbody td[data-label]::before { content:attr(data-label); display:block; font-size:.7rem; color:#6c757d; text-transform:uppercase; }
  .ia-tab td.ia-name, .ia-tab td.ia-m1, .ia-tab td.ia-m2 { grid-column:1/-1; font-weight:600; }
  .ia-tab td.ia-m2::before { content:"gegen "; font-weight:400; color:#6c757d; }
  .ia-tab tbody td:empty { display:none; }
  .ia-tab td.ia-aktion { grid-column:1/-1; text-align:right; }
  .ia-tab td[data-label="Info"] { grid-column:1/3; }
}

/* ===== Turnierkonfiguration (turnierkonfig.php) ===== */
/* Kein horizontales Scrollen: Tabs als Raster, Tabellenzeilen als Karten (wie Kostenanalyse); Karten bis < 1200px, weil die Pokale-Tabelle 12 Spalten hat */
/* Optik wie Kostenanalyse: Tabs deutlich abgesetzt, Inhaltsbereich leicht getönt, Tabellen/Karten weiß mit Rand und Schatten */
.tk-seite .tab-content { overflow-x:hidden; overflow-x:clip; padding:14px 0 0 !important; }
/* T-Shirt-Preise: je Gruppe (Erwachsene/Kinder) eine abgesetzte Zeile mit Einkauf und Verkauf */
/* T-Shirt-Bereich als eine weiße Karte */
.tk-shirt-card { background:#fff; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; padding:12px; max-width:560px; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.tk-shirt-grp { margin-top:12px; padding-top:8px; border-top:1px solid #c3ceda; }
/* Beträge (Tarife, T-Shirt-Preise, SR-Sätze) rechtsbündig */
input.tk-t, input.tk-shirt, input.tk-f[step="0.01"] { text-align:right; }
.tk-seite .tab-content .table { --bs-table-bg:#fff; --bs-border-color:#9aa5b1; --bs-table-striped-bg:#eaf0f7; --bs-table-hover-bg:#d9e6f8; border-color:#9aa5b1; box-shadow:0 1px 3px rgba(0,0,0,.10); }
/* Desktop: kompakte Zellen, damit die Tabellen möglichst lange ohne Karten passen */
.tk-tab-pokale th, .tk-tab-pokale td, .tk-tab-tarife th, .tk-tab-tarife td { padding-left:.25rem; padding-right:.25rem; }
.tk-tab-pokale th, .tk-tab-tarife th { font-size:.8rem; line-height:1.15; vertical-align:bottom; hyphens:manual; white-space:normal !important; }
.tk-tab-pokale td .form-control { padding-left:.35rem; padding-right:.25rem; }
.tk-tab-pokale td:nth-child(3) .form-control { min-width:105px; }
.tk-log > div { padding:.3rem .25rem; border-bottom:1px solid #dee2e6; }
.tk-log > div:nth-child(even) { background:#f4f7fb; }
.tk-tab-fristen .tk-modus { min-width:150px; }
.tk-tab-fristen .tk-uhr { min-width:120px; }
.tk-tab-fristen .tk-offgrp .input-group-text { white-space:normal; }
/* Karten erst, wenn die Tabelle nicht mehr passt (Mindestbreite je Tabelle gemessen): Pokale < 900px, Tarife < 800px, Fristen < 720px, Protokoll < 1150px */
@media (max-width: 899.98px) {
  .tk-seite.container { padding-left:10px; padding-right:10px; }
  #tk-tabs { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:4px; border-bottom:0; margin-bottom:8px; }
  #tk-tabs .nav-item { width:100%; }
  #tk-tabs .nav-link { width:100%; margin:0; text-align:center; padding:.5rem .15rem; font-size:.85rem; border:1px solid #dee2e6; border-radius:.375rem; }
  #tk-tabs .nav-link.active { background:var(--bs-dark); color:#fff; font-weight:700; border-color:var(--bs-dark); }
  .tk-seite .tab-content { padding:10px 0 0 !important; }
  .tk-seite .tab-content .btn { margin-bottom:4px; }
  /* Pokale: Turnier + Schlüssel als Kopf, 4-Spalten-Raster */
  .tk-tab-pokale, .tk-tab-pokale tbody { display:block; width:100% !important; max-width:none !important; border:0; }
  .tk-tab-pokale thead { display:none; }
  .tk-tab-pokale tr { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:8px; padding:10px; margin-bottom:12px; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  .tk-tab-pokale tr > td { display:block; width:auto !important; min-width:0 !important; border:0; padding:0; background:transparent; box-shadow:none !important; }
  .tk-tab-pokale td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
  .tk-tab-pokale td:empty { display:none; }
  .tk-tab-pokale td .form-control { width:100% !important; min-width:0 !important; }
  .tk-tab-pokale tr > td:nth-child(1), .tk-tab-pokale tr > td:nth-child(2) { grid-column:span 2; font-weight:600; font-size:.9rem; }
  .tk-tab-pokale tr > td:nth-child(2) { text-align:right; }
  .tk-tab-pokale tr > td[data-label="Bezeichnung"] { grid-column:1 / -1; }
  .tk-tab-pokale tr > td[data-label="Grenze Vorrunde"], .tk-tab-pokale tr > td[data-label="Grenze Finals"],
  .tk-tab-pokale tr > td[data-label="Max. Teams"], .tk-tab-pokale tr > td[data-label="Warteliste"] { grid-column:span 2; }
  .tk-tab-pokale tr > td:last-child { grid-column:1 / -1; text-align:right; }
  .tk-tab-pokale td .form-check-input { width:1.4em; height:1.4em; }
}
@media (max-width: 799.98px) {
  /* Tarife: Art als Kopf, Preise in 2 Spalten */
  .tk-tab-tarife, .tk-tab-tarife tbody { display:block; width:100% !important; max-width:none !important; border:0; }
  .tk-tab-tarife thead { display:none; }
  .tk-tab-tarife tr { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:10px; margin-bottom:12px; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  .tk-tab-tarife tr > td { display:block; width:auto !important; min-width:0 !important; border:0; padding:0; background:transparent; box-shadow:none !important; }
  .tk-tab-tarife td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
  .tk-tab-tarife td:empty { display:none; }
  .tk-tab-tarife td .form-control { width:100% !important; min-width:0 !important; }
  .tk-tab-tarife tr > td:first-child { grid-column:1 / -1; font-size:1.05em; }
  .tk-seite .table-responsive { overflow-x:visible; }
}
@media (max-width: 719.98px) {
  /* Fristen: Name als Kopf, Modus + Wert + Ergibt untereinander */
  .tk-tab-fristen, .tk-tab-fristen tbody { display:block; width:100% !important; max-width:none !important; border:0; }
  .tk-tab-fristen thead { display:none; }
  .tk-tab-fristen tr.tk-frist, .tk-tab-fristen tr.tk-prow { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:10px; margin-bottom:12px; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  .tk-tab-fristen tr.tk-frist > td, .tk-tab-fristen tr.tk-prow > td { display:block; width:auto !important; min-width:0 !important; border:0; padding:0; background:transparent; box-shadow:none !important; }
  .tk-tab-fristen td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
  .tk-tab-fristen td.tk-vorschau:empty { display:none; }
  .tk-tab-fristen tr.tk-prow > td:empty { display:none; }
  .tk-tab-fristen td .form-control, .tk-tab-fristen td .form-select { width:100% !important; min-width:0 !important; }
  .tk-tab-fristen td .tk-offgrp { flex-wrap:nowrap; }
  .tk-tab-fristen td .tk-offgrp .tk-offset { max-width:80px; flex:0 0 80px; }
  .tk-tab-fristen td .tk-offgrp .input-group-text { white-space:normal; font-size:.75rem; }
  .tk-tab-fristen .tk-c-name { grid-column:1 / -1; font-weight:600; }
  .tk-tab-fristen td[data-label="Wert"] { grid-column:1 / -1; }
}
.tk-savebar { display:flex; flex-wrap:wrap; gap:.5rem; padding-bottom:.75rem; border-bottom:1px solid #dee2e6; }
.tk-seite .tab-content .table > tbody > tr > * { border-bottom-width:1px; }
/* Datums-/Zeitfelder rechtsbündig wie Zahlenfelder */
.tk-seite input[type=date], .tk-seite input[type=datetime-local], .tk-seite input[type=time] { text-align:right; }
.tk-seite input[type=datetime-local], .tk-seite input[type=date], .tk-seite input[type=time] { display:flex; justify-content:flex-end; }
.tk-seite .tk-offset { text-align:right; }
/* Texte & Hinweise: Bereiche durch Linie trennen */
.tk-seite .tk-sek { border-top:2px solid #9aa5b1; margin-top:1.25rem; padding-top:1rem; }
/* SR-Sätze-Tabelle */
.tk-tab-sr .tk-sr-wert { width:220px; }
@media (max-width:575.98px) {
  .tk-tab-sr, .tk-tab-sr tbody { display:block; width:100%; border:0; }
  .tk-tab-sr thead { display:none; }
  .tk-tab-sr tr { display:grid; grid-template-columns:1fr; gap:6px; padding:10px; margin-bottom:12px; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  .tk-tab-sr tr > td { display:block; width:auto !important; border:0; padding:0; background:transparent; box-shadow:none !important; }
  .tk-tab-sr tr > td:first-child { font-size:1.05em; font-weight:600; }
  .tk-tab-sr .tk-sr-wert .input-group { width:100%; }
  .tk-tab-sr .tk-sr-wert .form-switch { justify-content:flex-start !important; }
}
/* Protokoll: sortierbare Spaltenköpfe, sticky Kopf ab md (Overflow-Container würde Sticky verhindern) */
.tk-tab-log th.tk-sort { cursor:pointer; user-select:none; white-space:nowrap; }
.tk-tab-log th.tk-sort::after { content:' \2195'; opacity:.35; font-size:.85em; }
.tk-tab-log th.tk-sort-asc::after { content:' \25B2'; opacity:1; }
.tk-tab-log th.tk-sort-desc::after { content:' \25BC'; opacity:1; }
@media (min-width:1150px) {
  .tk-seite .tk-log-wrap { overflow:visible; }
  .tk-tab-log thead th { position:sticky; top:var(--tk-nav-h,56px); z-index:2; box-shadow:0 1px 2px rgba(0,0,0,.15); }
}
#tk-log-nav .btn { white-space:nowrap; flex:0 0 auto; }
#tk-log-nav #tk-log-info { text-align:center; flex:1 1 auto; }
/* Protokoll: Tabelle braucht ~1080 px -> Karten unter 1150 px (Sortier-Auswahl nur dort sichtbar) */
@media (max-width: 1149.98px) {
  /* Protokoll: Zeitpunkt als Kopf, 2 Spalten */
  .tk-tab-log, .tk-tab-log tbody { display:block; width:100% !important; max-width:none !important; border:0; }
  .tk-tab-log thead { display:none; }
  .tk-tab-log tr { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:4px 10px; padding:8px 10px; margin-bottom:12px; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  .tk-tab-log tr > td { display:block; width:auto !important; min-width:0 !important; border:0; padding:0; background:transparent; box-shadow:none !important; overflow-wrap:anywhere; }
  .tk-tab-log .tk-c-zeit { grid-column:1 / -1; font-weight:600; }
  .tk-tab-log td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
}
@media (min-width: 1150px) { #tk-log-sortbar { display:none !important; } }
#tk-log-sortsel { max-width:320px; }

/* ===== Stammdaten ===== */
.sd-seite .sd-sek-titel { font-weight:600; font-size:.9rem; color:#495057; margin-top:1rem; padding-top:.5rem; border-top:1px solid #c3ceda; }
.sd-seite .sd-ber-kopf { margin:18px 0 6px; padding-top:6px; border-top:1px solid #c3ceda; font-weight:600; font-size:.9rem; color:#495057; }
.sd-seite .sd-ber-kopf.sd-ber-erst { margin-top:0; border-top:0; padding-top:0; }
.sd-seite .sd-ap-neu, .sd-seite .sd-ap-neu .card-body { background:#fffbe6; border-left:3px solid #6c757d; }
.sd-seite .sd-ap { border-color:#9aa5b1; }
.sd-seite .table { --bs-border-color:#9aa5b1; --bs-table-striped-bg:#eaf0f7; --bs-table-hover-bg:#d9e6f8; border-color:#9aa5b1; }
/* Stammdaten-Protokoll: Tabelle passt ab 576 px, darunter Karten */
@media (max-width: 599.98px) {
  .sd-tab-log, .sd-tab-log tbody { display:block; width:100% !important; border:0; }
  .sd-tab-log thead { display:none; }
  .sd-tab-log tr { display:grid; grid-template-columns:1fr 1fr; gap:4px 10px; padding:8px 10px; margin-bottom:12px; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  .sd-tab-log tr > td { display:block; width:auto !important; border:0; padding:0; background:transparent; box-shadow:none !important; overflow-wrap:anywhere; }
  .sd-tab-log td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
  .sd-tab-log .sd-c-zeit { grid-column:1 / -1; font-weight:600; }
  .sd-tab-log td[colspan] { grid-column:1 / -1; }
}
@media (max-width: 767.98px) { .sd-seite .sd-ap-aktion { order:20; } }
/* Stammdaten-Protokoll: sortierbare Köpfe, sticky Kopf ab 576 px (Tabelle passt), darunter Karten + Sortier-Select */
.sd-tab-log th.sd-sort { cursor:pointer; user-select:none; white-space:nowrap; }
.sd-tab-log th.sd-sort::after { content:' \2195'; opacity:.35; font-size:.85em; }
.sd-tab-log th.sd-sort-asc::after { content:' \25B2'; opacity:1; }
.sd-tab-log th.sd-sort-desc::after { content:' \25BC'; opacity:1; }
#sd-log-sortsel { max-width:320px; }
#sd-log-nav .btn { white-space:nowrap; flex:0 0 auto; }
#sd-log-nav #sd-log-info { text-align:center; flex:1 1 auto; }
@media (min-width:600px) {
  #sd-log-sortbar { display:none !important; }
  .sd-seite .sd-log-wrap { overflow:visible; }
  .sd-tab-log thead th { position:sticky; top:var(--sd-nav-h,56px); z-index:2; box-shadow:0 1px 2px rgba(0,0,0,.15); }
}

/* ===== Accounts (accounts.php) ===== */
.ac-seite .tab-content { overflow-x:hidden; overflow-x:clip; padding:14px 0 0 !important; }
.ac-seite .tab-content .table { --bs-table-bg:#fff; --bs-border-color:#9aa5b1; --bs-table-striped-bg:#eaf0f7; --bs-table-hover-bg:#d9e6f8; border-color:#9aa5b1; box-shadow:0 1px 3px rgba(0,0,0,.10); }
.ac-seite .tab-content .table > tbody > tr > * { border-bottom-width:1px; }
.ac-seite th.ac-sort { cursor:pointer; user-select:none; white-space:nowrap; }
.ac-seite th.ac-sort::after { content:' \2195'; opacity:.35; font-size:.85em; }
.ac-seite th.ac-sort.ac-asc::after { content:' \25B2'; opacity:1; }
.ac-seite th.ac-sort.ac-desc::after { content:' \25BC'; opacity:1; }
#ac-sortsel { max-width:320px; }
#ac-nav .btn { white-space:nowrap; flex:0 0 auto; }
#ac-nav #ac-seiteninfo { text-align:center; flex:1 1 auto; }
@media (min-width:900px) {
  #ac-sortbar { display:none !important; }
  .ac-liste-wrap { overflow:visible; }
  #ac-tabelle thead th, .ac-karten thead th { position:sticky; top:var(--ac-nav-h,56px); z-index:2; box-shadow:0 1px 2px rgba(0,0,0,.15); }
  .ac-seite .table-responsive { overflow:visible; }
}
@media (max-width: 899.98px) {
  .ac-seite.container { padding-left:10px; padding-right:10px; }
  #ac-tabs { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:4px; border-bottom:0; margin-bottom:8px; }
  #ac-tabs .nav-item { width:100%; }
  #ac-tabs .nav-link { width:100%; margin:0; text-align:center; padding:.5rem .15rem; font-size:.85rem; border:1px solid #dee2e6; border-radius:.375rem; }
  #ac-tabs .nav-link.active { background:var(--bs-dark); color:#fff; font-weight:700; border-color:var(--bs-dark); }
  /* Account-Liste als Karten */
  #ac-tabelle, #ac-tabelle tbody { display:block; width:100% !important; border:0; box-shadow:none !important; }
  #ac-tabelle thead { display:none; }
  #ac-tabelle tr { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:4px 10px; padding:8px 10px; margin-bottom:12px; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  #ac-tabelle tr > td { display:block; width:auto !important; border:0; padding:0; background:transparent; box-shadow:none !important; overflow-wrap:anywhere; }
  #ac-tabelle td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
  #ac-tabelle .ac-c-name { grid-column:1 / -1; font-weight:600; }
  #ac-tabelle .ac-c-name::before { display:none !important; }
  #ac-tabelle td[colspan] { grid-column:1 / -1; }
  #ac-tabelle .ac-c-akt { grid-column:1 / -1; }
}
@media (min-width:900px) { #ac-tabs .nav-link { padding:.5rem .9rem; } }
/* Accounts: übrige Tabellen (Duplikate, Aufräumen, Rechte, Systemrollen, Datenqualität, Sicherheit) als Karten unter 900 px (wie die Account-Liste) */
@media (max-width: 899.98px) {
  .ac-karten, .ac-karten tbody { display:block; width:100% !important; border:0; box-shadow:none !important; }
  .ac-karten thead { display:none; }
  .ac-karten tr { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:4px 10px; padding:8px 10px; margin-bottom:12px; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  .ac-karten tr > td { display:block; width:auto !important; border:0; padding:0; background:transparent; box-shadow:none !important; overflow-wrap:anywhere; text-align:left !important; }
  .ac-karten td[data-label]:not([data-label=""])::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
  .ac-karten tr > td:first-child, .ac-karten td[colspan], .ac-karten tr > td:last-child:has(button) { grid-column:1 / -1; }
  .ac-karten tr > td:first-child { font-weight:600; }
  .ac-karten tr > td[colspan] { font-weight:400; }
}
/* Accounts: Abschnittstitel (Datenqualität, Sicherheit), Rechte-Haken, Jahreswechsel-Schritte */
.ac-seite .ac-sek-titel { margin:18px 0 6px; padding-top:8px; border-top:2px solid #9aa5b1; font-weight:600; color:#343a40; }
.ac-seite .tab-pane > #ac-dq-inhalt > .ac-sek-titel:first-child, .ac-seite #ac-si-inhalt > .ac-sek-titel:first-child { margin-top:4px; border-top:0; padding-top:0; }
.ac-seite .ac-ok { color:#198754; font-weight:700; }
.ac-jw-liste { list-style:none; padding:0; margin:0; counter-reset:jw; }
.ac-jw-liste > li { counter-increment:jw; display:grid; grid-template-columns:auto 1fr auto; gap:6px 12px; align-items:center; padding:10px 12px; margin-bottom:8px; border:1px solid #9aa5b1; border-radius:8px; background:#fff; }
.ac-jw-liste > li::before { content:counter(jw); width:28px; height:28px; border-radius:50%; background:var(--bs-dark); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem; }
.ac-jw-text .badge { margin-top:4px; }
@media (max-width: 575.98px) {
  .ac-jw-liste > li { grid-template-columns:auto 1fr; }
  .ac-jw-liste > li .btn { grid-column:1 / -1; width:100%; }
}
/* Karten: E-Mail/Systemrollen/Grund volle Breite (kein frühes Umbrechen), Rechte-Übersicht als beschriftete Zeilen */
@media (max-width: 899.98px) {
  #ac-tabelle td[data-label="E-Mail"], #ac-tabelle td[data-label="Systemrollen"],
  .ac-karten td[data-label="E-Mail"], .ac-karten td[data-label="Systemrollen"], .ac-karten td[data-label="Grund"] { grid-column:1 / -1; }
  #ac-rollentabelle tr > td:first-child::before, #ac-rechtetabelle tr > td:first-child::before { display:none !important; }
  #ac-rechtetabelle tr { grid-template-columns:1fr 1fr; }
  #ac-rechtetabelle tr > td:not(:first-child) { display:flex; justify-content:space-between; align-items:center; padding:3px 8px; border:1px solid #dee2e6; border-radius:6px; background:#f8f9fa; }
  #ac-rechtetabelle tr > td:not(:first-child)::before { display:inline !important; margin:0; font-size:.85em; font-weight:600; color:#343a40; }
}

/* Accounts: Zeitleisten-Blätterleiste im Kontakt-Detail-Modal */
#ac-d-znav { white-space: nowrap; }
#ac-d-znav .btn { white-space: nowrap; }
#ac-d-zeit li { padding: 2px 0; border-bottom: 1px solid #e3e7ea; }

/* Accounts Sicherheit: Blätterleisten */
.ac-si-nav, .ac-si-nav .btn { white-space: nowrap; }

/* ===== Finanzübersicht (finanzuebersicht.php) ===== */
.fz-seite table { font-size:.9em; width:100%; margin-bottom:0; }
.fz-seite .table { --bs-border-color:#ced4da; border-color:#ced4da; }
.fz-seite th.fz-c1 { width:36%; }
.fz-seite .fz-hint { font-size:.85em; color:#6c757d; margin:0 0 .6rem; }
.fz-seite .fz-warn { background:#f8d7da; border:1px solid #f1aeb5; color:#842029; border-radius:8px; padding:8px 12px; font-size:.9em; }
.fz-seite .fz-warn ul { margin-bottom:0; }
/* Kennzahlen-Kacheln in Pastell */
.fz-kpi { height:100%; padding:8px; text-align:center; border:1px solid #ced4da; border-radius:8px; background:#f1f3f5; }
.fz-kpi .fz-kpi-t { font-size:.8rem; color:#495057; }
.fz-kpi-blau  { background:#cfe2ff; border-color:#9ec5fe; }
.fz-kpi-gelb  { background:#fff3cd; border-color:#ffe69c; }
.fz-kpi-gruen { background:#d1e7dd; border-color:#a3cfbb; }
.fz-kpi-rot   { background:#f8d7da; border-color:#f1aeb5; }
/* Abschnittsköpfe und Summenzeilen */
.fz-seite .fz-tabelle tr.fz-kopf td { background:#cfe2ff !important; color:#084298; font-weight:700; }
.fz-seite .fz-summe td    { border-top:2px solid #6c757d !important; background:#d1e7dd !important; }
.fz-seite .fz-ergebnis td { font-size:1.1em; background:#d1e7dd !important; }
@media (min-width:768px) {
  .fz-seite .table-responsive { overflow:visible; }
  /* Kartentitel klebt unter der Navbar, die Spaltenköpfe direkt darunter */
  .fz-seite .card:has(table) > .card-header { position:sticky; top:var(--fz-nav-h,56px); z-index:3; }
  .fz-seite thead th { position:sticky; top:calc(var(--fz-nav-h,56px) + var(--fz-kh,42px)); z-index:2; box-shadow:0 1px 2px rgba(0,0,0,.15); }
}
@media (max-width: 767.98px) {
  .fz-seite.container { padding-left:10px; padding-right:10px; }
  /* Deckung, D, E, F: Zeilen als Karten */
  #fz-absage, #fz-absage tbody, #fz-wl, #fz-wl tbody, #fz-deckung, #fz-deckung tbody, #fz-abt, #fz-abt tbody { display:block; width:100% !important; border:0; }
  #fz-absage thead, #fz-wl thead, #fz-deckung thead, #fz-abt thead { display:none; }
  #fz-absage tr, #fz-wl tr, #fz-deckung tr, #fz-abt tr { display:grid; grid-template-columns:repeat(3, 1fr); gap:2px 8px; padding:8px 6px; border-bottom:1px solid #dee2e6; }
  #fz-absage td, #fz-wl td, #fz-deckung td, #fz-abt td { display:block; border:0 !important; padding:0 !important; box-shadow:none !important; white-space:normal; text-align:right; background:transparent !important; }
  #fz-absage td:first-child, #fz-wl td:first-child, #fz-deckung td:first-child, #fz-abt td:first-child { grid-column:1 / -1; text-align:left; font-weight:600; }
  #fz-deckung td:empty, #fz-abt td:empty { display:none; }
  #fz-absage td:not(:first-child)::before, #fz-wl td:not(:first-child)::before, #fz-deckung td:not(:first-child)::before, #fz-abt td:not(:first-child)::before { display:block; font-size:.72em; font-weight:normal; color:#6c757d; }
  #fz-absage td:nth-child(2)::before, #fz-wl td:nth-child(2)::before { content:'Anzahl'; }
  #fz-absage td:nth-child(3)::before, #fz-wl td:nth-child(3)::before { content:'Eingezahlt'; }
  #fz-absage td:nth-child(4)::before { content:'Erstattet'; } #fz-absage td:nth-child(5)::before { content:'Einbehalten'; }
  #fz-wl td:nth-child(4)::before { content:'Als Einnahme gewertet'; } #fz-wl td:nth-child(5)::before { content:'Erstattet'; } #fz-wl td:nth-child(6)::before { content:'Differenz'; }
  #fz-deckung td:nth-child(2)::before, #fz-abt td:nth-child(2)::before { content:'Einnahmen'; }
  #fz-deckung td:nth-child(3)::before, #fz-abt td:nth-child(3)::before { content:'Kosten'; }
  #fz-deckung td:nth-child(4)::before { content:'Deckung'; } #fz-abt td:nth-child(4)::before { content:'Ergebnis'; }
  #fz-deckung tr.fz-ergebnis td:nth-child(4)::before { content:'Ergebnis'; }
  #fz-absage tr.fz-summe, #fz-wl tr.fz-summe, #fz-deckung tr.fz-summe, #fz-abt tr.fz-summe, #fz-abt tr.fz-ergebnis { background:#d1e7dd; border-top:2px solid #6c757d; }
  #fz-absage tr.fz-summe td, #fz-wl tr.fz-summe td { border-top:0 !important; }
  /* Hauptrechnung: kompakt, Turnierspalten per Knopf */
  .fz-seite table { font-size:.82em; }
  .fz-seite td.text-end { white-space:nowrap; }
  .fz-seite th { white-space:nowrap; vertical-align:middle; }
  .fz-tabelle th:first-child, .fz-tabelle td:first-child { width:auto !important; min-width:150px; white-space:normal !important; }
  .fz-tabelle.fz-kompakt:not(.fz-alle) th:nth-child(2), .fz-tabelle.fz-kompakt:not(.fz-alle) th:nth-child(3), .fz-tabelle.fz-kompakt:not(.fz-alle) th:nth-child(4),
  .fz-tabelle.fz-kompakt:not(.fz-alle) tr:not(.fz-kopf) td:nth-child(2), .fz-tabelle.fz-kompakt:not(.fz-alle) tr:not(.fz-kopf) td:nth-child(3), .fz-tabelle.fz-kompakt:not(.fz-alle) tr:not(.fz-kopf) td:nth-child(4) { display:none; }
  .fz-tabelle td:first-child { position:sticky; left:0; z-index:1; background:inherit; }
}
@media (max-width: 400px) {
  .fz-tabelle th:first-child, .fz-tabelle td:first-child { min-width:100px; }
  .fz-tabelle th, .fz-tabelle td { padding:.2rem .3rem; }
  .fz-seite .card-body { padding:.6rem; }
}
@media (max-width: 379.98px) {
  .fz-seite.container { padding-left:6px; padding-right:6px; }
  .fz-seite .card-body { padding:.4rem; }
  .fz-seite table { font-size:.74em; }
  .fz-tabelle th:first-child, .fz-tabelle td:first-child { min-width:80px; }
}
@media (max-width: 339.98px) { .fz-tabelle th, .fz-tabelle td { padding:.2rem .2rem; } }

/* ===== Kostenanalyse (kostenanalyse.php) ===== */
#ka-status:empty { display:none; }
/* Statusmeldung als Badge direkt am Aktionsbereich (Vorkalkulation) */
#fp-status:empty { display:none; }
.ka-badge { display:inline-block; padding:.45em .9em; border-radius:6px; font-size:.9rem; font-weight:600; border:1px solid; }
.ka-badge-ok { background:#d1e7dd; color:#0f5132; border-color:#a3cfbb; }
.ka-badge-err { background:#f8d7da; color:#842029; border-color:#f1aeb5; }
.ka-seite .ka-pj { width:84px; height:30px; padding:2px 6px; }
.ka-seite table { margin-bottom:0; }
.ka-seite .table { --bs-border-color:#ced4da; border-color:#ced4da; }
.ka-seite .card-body > .row > p.text-muted { margin-bottom:.4rem; }
.ka-seite .tab-content { padding-top:12px; overflow-x:clip; }
.ka-mj-n.active, .ka-mj-n.active:hover, .ka-mj-n.active:focus { background:var(--bs-dark); border-color:var(--bs-dark); color:#fff; }
  .ka-st-tab td.text-end { white-space:nowrap; }
  #ist-body td.text-end { white-space:nowrap; }
  #ist-body td.text-end div.small { white-space:normal; }
  /* Abschnittsköpfe, Summen- und Ergebniszeilen – Farbgebung wie in der Finanzübersicht */
  tr.ka-kopf > td     { background:#cfe2ff !important; color:#084298; font-weight:700; }
  tr.ka-e-zws > td    { background:#d1e7dd !important; border-top:2px solid #6c757d; }
  tr.ka-summe > td    { border-top:2px solid #6c757d !important; background:#d1e7dd !important; }
  tr.ka-ergebnis > td { font-size:1.1em; background:#d1e7dd !important; }
/* Anteilsampel der Kostenzeilen */
tr.ka-bad .fk-summe { background:#f8d7da; font-weight:bold; }
tr.ka-ok  .fk-summe { background:#d1e7dd; }
/* Kostenzeilen: Detailzeile nur bei geöffneter Hauptzeile; Filter blendet beide Zeilen per .ka-weg aus */
#ka-kosten-tab tr.ka-fk:hover > td { background:#f4f8ff; }
.ka-fk-det { display:none; }
.ka-det-akt { display:none; }
.ka-fk-det .ka-det-akt .btn { padding:.25rem .6rem; }
.ka-fk.ka-open + .ka-fk-det { display:table-row; }
.ka-fk-det > td { background:#fffbe6 !important; border-left:3px solid #6c757d; }
.ka-weg { display:none !important; }
.ka-det { display:flex; flex-wrap:wrap; gap:10px 22px; align-items:flex-start; padding:4px 2px; }
.ka-det-g > label { display:block; font-size:.78em; color:#6c757d; margin-bottom:2px; }
.ka-det-g select.fk-einheit, .ka-det-g select.fk-vert { min-width:170px; }
.ka-det-g .input-group { width:140px; }
.ka-det-kom { flex:1 1 220px; }
.ka-fk .ka-tog { padding:0 .45rem; }
.ka-fk .ka-tog:focus, .ka-fk .ka-tog:active, .ka-fk .ka-tog:focus-visible { background:transparent; color:#6c757d; border-color:#6c757d; box-shadow:none; }
.ka-fk .ka-tog:hover, .ka-fk.ka-open .ka-tog, .ka-fk.ka-open .ka-tog:focus, .ka-fk.ka-open .ka-tog:active { background:#6c757d; color:#fff; border-color:#6c757d; box-shadow:none; }
.ka-tog-i { display:inline-block; transition:transform .15s; }
.ka-fk.ka-open .ka-tog-i { transform:rotate(90deg); }
.fk-chips .badge { font-weight:500; margin:1px 2px 1px 0; background:#e7edf5; color:#212529; border:1px solid #cfd8e3; }
.fk-chips .badge.ka-chip-warn { background:#f8d7da; border-color:#f1aeb5; color:#842029; }
.fk-chips .badge.ka-chip-ts { background:#fff3cd; border-color:#ffe69c; }
/* Kostenartfarben (8 Farben reihum nach ID, siehe bc_kostenart_cls): Badge, Auswahlfeld, Namensbadge der Kostenstruktur */
.ka-art-0 { --ka-bg:#fde2ec; --ka-bd:#f0a0c0; --ka-tx:#6b1a37; }
.ka-art-1 { --ka-bg:#d0f0f5; --ka-bd:#8fd3de; --ka-tx:#0c4a55; }
.ka-art-2 { --ka-bg:#f1e6d3; --ka-bd:#d9c3a0; --ka-tx:#5a4220; }
.ka-art-3 { --ka-bg:#dde3ea; --ka-bd:#aab6c4; --ka-tx:#2b3a4d; }
.ka-art-4 { --ka-bg:#e8f3c8; --ka-bd:#c5db8a; --ka-tx:#3c4f0c; }
.ka-art-5 { --ka-bg:#dcdcf8; --ka-bd:#aaaaec; --ka-tx:#25255e; }
.ka-art-6 { --ka-bg:#fbd9d0; --ka-bd:#f0a898; --ka-tx:#6e2414; }
.ka-art-7 { --ka-bg:#f3d6f1; --ka-bd:#dca0d6; --ka-tx:#5a1c55; }
.ka-art, .fk-chips .badge.ka-art { background-color:var(--ka-bg); color:var(--ka-tx); border:1px solid var(--ka-bd); border-left:4px solid var(--ka-bd); }
.badge.ka-artname { font-size:inherit; font-weight:500; padding:.3em .55em; }
.badge.ka-artname:not(.ka-art) { background:transparent; color:inherit; padding-left:0; }
/* Bereichsfarben der Verteilungs-Badges */
.fk-chips .badge.ka-chip-Uebernachtung { background:#cfe2ff; border-color:#9ec5fe; color:#052c65; }
.fk-chips .badge.ka-chip-Meldung { background:#d1e7dd; border-color:#a3cfbb; color:#0a3622; }
.fk-chips .badge.ka-chip-Party { background:#e2d9f3; border-color:#c5b3e6; color:#2c1a57; }
.fk-chips .badge.ka-chip-Verkauf { background:#ffe5d0; border-color:#fecba1; color:#6a2c05; }
.ka-fk.ka-dirty td:first-child { border-left:4px solid #ffc107; }
  #ka-kosten-tab select.fk-vert, #ka-kosten-tab select.fk-kostenart,  #ka-kosten-tab select.fk-einheit { width:100%; min-width:0;  padding-left:.35rem; padding-right:1.3rem; background-position:right .3rem center; background-size:12px 9px; }
  .ka-sort { cursor:pointer; user-select:none; white-space:nowrap; }
  .ka-sort:hover { text-decoration:underline; }

/* ===== Spielerliste (spielerdaten.php, includes/spieler_select.inc.php) ===== */
.sp-seite .sp-form { background:#f1f3f5; border:1px solid #dee2e6; border-radius:.4rem; padding:.6rem .75rem; }
.sp-seite .sp-tab { width:100%; }
.sp-seite .sp-tab th.sp-c-nr  { width:7%; }
.sp-seite .sp-tab th.sp-c-akt { width:10%; }
.sp-seite .sp-tab th.sp-c-geb { width:12%; }
.sp-seite .sp-tab th.sp-c-recht { width:14%; }
.sp-seite .sp-tab th.sp-c-del { width:8%; }
.sp-seite .sp-tab td { vertical-align:middle; }
.sp-seite .sp-tab td.sp-c-akt, .sp-seite .sp-tab th.sp-c-akt { min-width:6.5rem; }
.sp-seite .sp-tab td.sp-c-recht, .sp-seite .sp-tab th.sp-c-recht { min-width:7rem; }
.sp-seite .sp-tab td.sp-c-del { text-align:center; }
/* Zeilenfarben (Pastell): aktiv grün, passiv gelb, Trainer/MV blau */
.sp-seite .sp-tab tr.sp-z-aktiv > td  { background-color:#d1e7dd; color:#0f5132; }
.sp-seite .sp-tab tr.sp-z-passiv > td { background-color:#ffe69c; color:#000; }
.sp-seite .sp-tab tr.sp-z-mv > td     { background-color:#cfe2ff; color:#084298; }
.sp-seite .sp-tab tr.sp-trenner > td  { background-color:#e9ecef; font-weight:600; text-align:center; padding:.3rem; }
.sp-seite .sp-regeln { list-style:none; padding:0; margin:0; }
.sp-seite .sp-regeln li { padding:.35rem 0; border-bottom:1px solid #eef0f2; }
.sp-seite .sp-regeln li:last-child { border-bottom:0; }
.sp-seite .sp-ico { display:inline-block; width:1.6em; text-align:center; }
.sp-seite .sp-downloads { border-top:1px solid #dee2e6; padding-top:.75rem; margin-top:.5rem; }
.sp-seite .sp-downloads .btn { margin:0 .35rem .35rem 0; }
@media (max-width:767.98px) {
  .sp-seite .sp-tab thead { display:none; }
  .sp-seite .sp-tab, .sp-seite .sp-tab tbody { display:block; width:100%; border:0; }
  .sp-seite .sp-tab tbody tr { display:grid; grid-template-columns:1fr 1fr; gap:.25rem .6rem; padding:.55rem; margin-bottom:.5rem; border:1px solid #dee2e6; border-radius:.4rem; }
  .sp-seite .sp-tab tbody tr.sp-trenner { display:block; padding:.3rem; background-color:#e9ecef; border-color:#dee2e6; }
  .sp-seite .sp-tab tbody td { display:block; border:0 !important; padding:.1rem 0 !important; background:transparent !important; box-shadow:none !important; }
  .sp-seite .sp-tab tbody td[data-label]::before { content:attr(data-label); display:block; font-size:.7rem; text-transform:uppercase; opacity:.75; }
  .sp-seite .sp-tab tr.sp-z-aktiv  { background-color:#d1e7dd; color:#0f5132; }
  .sp-seite .sp-tab tr.sp-z-passiv { background-color:#ffe69c; color:#000; }
  .sp-seite .sp-tab tr.sp-z-mv     { background-color:#cfe2ff; color:#084298; }
  .sp-seite .sp-tab td.sp-c-del { grid-column:1/-1; text-align:right; }
  .sp-seite .sp-tab td:empty { display:none; }
}

/* ===== Spielplan (spielplan.php) ===== */
.spp-seite .spp-runde{font-size:1rem}
.spp-seite .spp-punkte{max-width:640px;margin-left:auto;margin-right:auto}
.spp-seite .spp-legende{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.25rem}
.spp-seite .spp-legende span{padding:.2rem .75rem;border-radius:.375rem;font-weight:600;font-size:.85rem}
.spp-seite .sp-s-laeuft{background-color:#ffe69c;color:#664d03}
.spp-seite .sp-s-offen{background-color:#cff4fc;color:#055160}
.spp-seite .sp-s-fertig{background-color:#d1e7dd;color:#0f5132}
.spp-seite .sp-s-ausfall{background-color:#f8d7da;color:#842029}
.spp-seite .spp-tab td{font-size:.9rem}
.spp-seite .spp-tab tr.sp-aktuell td{background-color:#e2f3ec}
.spp-seite .spp-tab tr.sp-ausfall td{background-color:#f8d7da;color:#842029}
.spp-seite .spp-tab td.sp-st.sp-s-laeuft{background-color:#ffe69c}
.spp-seite .spp-tab td.sp-st.sp-s-offen{background-color:#cff4fc}
.spp-seite .spp-tab td.sp-st.sp-s-fertig{background-color:#d1e7dd}
.spp-seite .spp-tab td.sp-st.sp-s-ausfall{background-color:#f8d7da}
.spp-seite .spp-tab td.sp-verlierer{color:#dc3545}
.spp-seite .spp-tab td.sp-platzhalter{background-color:#e0cffc;color:#432874}
.spp-seite .spp-tab td.spp-akt{white-space:nowrap}
@media (max-width:991.98px){
  .spp-seite .spp-tab thead{display:none}
  .spp-seite .spp-tab,.spp-seite .spp-tab tbody{display:block}
  .spp-seite .spp-tab tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid #dee2e6;border-radius:.5rem;margin-bottom:.75rem;overflow:hidden}
  .spp-seite .spp-tab td{display:block;border:0;border-bottom:1px solid #eee;padding:.35rem .6rem;text-align:left!important}
  .spp-seite .spp-tab td[data-label]::before{content:attr(data-label);display:block;font-size:.7rem;color:#6c757d;text-transform:uppercase}
  .spp-seite .spp-tab td:empty{display:none}
  .spp-seite .spp-tab td.spp-m1,.spp-seite .spp-tab td.spp-m2,.spp-seite .spp-tab td.spp-akt{grid-column:1 / -1}
}

/* ===== SR-Ansetzungen (srspiele.php) ===== */
.srs-seite .srs-busy .btn,.srs-seite .srs-busy select{pointer-events:none;opacity:.55}
.srs-seite #div_sr_info{font-weight:600}
.srs-seite .srs-tab td{font-size:.9rem}
.srs-seite .srs-tab td.srs-c{text-align:center}
.srs-seite .srs-tab td.srs-sr,.srs-seite .srs-tab td.srs-akt{white-space:nowrap}
.srs-seite .srs-tab td.srs-sr .btn{margin-left:.35rem;padding:0 .45rem;line-height:1.3}
.srs-seite .srs-tab td.srs-leer{text-align:center;color:#6c757d;padding:.75rem}
.srs-seite .srs-tab tr.sp-aktuell td{background-color:#e2f3ec}
.srs-seite .srs-tab tr.sp-ausfall td{background-color:#f8d7da;color:#842029}
.srs-seite .srs-tab td.sp-st.sp-s-laeuft{background-color:#ffe69c;color:#664d03}
.srs-seite .srs-tab td.sp-st.sp-s-offen{background-color:#cff4fc;color:#055160}
.srs-seite .srs-tab td.sp-st.sp-s-fertig{background-color:#d1e7dd;color:#0f5132}
.srs-seite .srs-tab td.sp-st.sp-s-ausfall{background-color:#f8d7da;color:#842029}
.srs-seite .srs-tab td.sp-platzhalter{background-color:#e0cffc;color:#432874}
.srs-seite .srs-legende{display:flex;flex-wrap:wrap;gap:.5rem}
.srs-seite .srs-legende .badge{padding:.35rem .75rem;font-weight:600;font-size:.85rem}
.srs-seite .srs-legende .sp-s-laeuft{background-color:#ffe69c;color:#664d03}
.srs-seite .srs-legende .sp-s-offen{background-color:#cff4fc;color:#055160}
.srs-seite .srs-legende .sp-s-fertig{background-color:#d1e7dd;color:#0f5132}
.srs-seite .srs-legende .sp-s-ausfall{background-color:#f8d7da;color:#842029}
.srs-seite .srs-legende .sp-platzhalter{background-color:#e0cffc;color:#432874}
.srs-seite .srs-bar{margin-bottom:.25rem}
@media (max-width:991.98px){ .srs-seite .card:has(table) > .card-body{background-color:#e9ecef} }
.srs-seite .srs-tab thead th{background-color:#343a40;color:#fff;border-color:#495057}
.srs-seite .srs-tab td[data-label="Pokal"]{white-space:nowrap}
.srs-seite .srs-tab th.srs-sort{cursor:pointer;user-select:none;white-space:nowrap}
.srs-seite .srs-tab th.srs-sort::after{content:' \2195';opacity:.35;font-size:.85em}
.srs-seite .srs-tab th.srs-sort-asc::after{content:' \25B2';opacity:1}
.srs-seite .srs-tab th.srs-sort-desc::after{content:' \25BC';opacity:1}
@media (min-width:992px){
  .srs-seite .table-responsive{overflow:visible}
  /* Kartentitel klebt unter der Navbar, die Spaltenköpfe direkt darunter */
  .srs-seite .card:has(table) > .card-header{position:sticky;top:var(--srs-nav-h,56px);z-index:3}
  .srs-seite .srs-tab thead th{position:sticky;top:calc(var(--srs-nav-h,56px) + var(--srs-kh,42px));z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.25)}
}
@media (max-width:991.98px){
  .srs-seite .srs-tab thead{display:none}
  .srs-seite .srs-tab,.srs-seite .srs-tab tbody{display:block}
  .srs-seite .srs-tab tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid #adb5bd;border-left:5px solid #343a40;border-radius:.5rem;margin-bottom:1.25rem;overflow:hidden;box-shadow:0 3px 8px rgba(0,0,0,.18);background:#fff}
  .srs-seite .srs-tab tr:last-child{margin-bottom:.25rem}
  .srs-seite .srs-tab td{display:block;border:0;border-bottom:1px solid #eee;padding:.35rem .6rem;text-align:left!important}
  .srs-seite .srs-tab td[data-label]::before{content:attr(data-label);display:block;font-size:.7rem;color:#6c757d;text-transform:uppercase}
  .srs-seite .srs-tab td:empty{display:none}
  .srs-seite .srs-tab td.srs-m,.srs-seite .srs-tab td.srs-akt,.srs-seite .srs-tab td.srs-leer{grid-column:1 / -1}
  .srs-seite .srs-tab td.srs-leer{text-align:center!important}
  /* zu pfeifende und offene Spiele: Zeit|Feld, Pokal|Art, Mannschaften, Schiri 1|Schiri 2 */
  #div_sr_pfeif .srs-tab td[data-label="Runde"],#div_sr_offen .srs-tab td[data-label="Runde"]{order:1}
  #div_sr_pfeif .srs-tab td[data-label="SpNr"],#div_sr_offen .srs-tab td[data-label="SpNr"]{order:2}
  #div_sr_pfeif .srs-tab td[data-label="Zeit"],#div_sr_offen .srs-tab td[data-label="Zeit"]{order:3}
  #div_sr_pfeif .srs-tab td[data-label="Feld"],#div_sr_offen .srs-tab td[data-label="Feld"]{order:4}
  #div_sr_pfeif .srs-tab td[data-label="Mannschaft 1"],#div_sr_offen .srs-tab td[data-label="Mannschaft 1"]{order:7}
  #div_sr_pfeif .srs-tab td[data-label="Mannschaft 2"],#div_sr_offen .srs-tab td[data-label="Mannschaft 2"]{order:8}
  #div_sr_pfeif .srs-tab td[data-label="Pokal"],#div_sr_offen .srs-tab td[data-label="Pokal"]{order:5}
  #div_sr_pfeif .srs-tab td[data-label="Art"],#div_sr_offen .srs-tab td[data-label="Art"]{order:6}
  #div_sr_pfeif .srs-tab td[data-label="Schiri 1"],#div_sr_offen .srs-tab td[data-label="Schiri 1"]{order:9}
  #div_sr_pfeif .srs-tab td[data-label="Schiri 2"],#div_sr_offen .srs-tab td[data-label="Schiri 2"],#div_sr_offen .srs-tab td[data-label="Schiri 2 (Partner)"]{order:10}
  #div_sr_offen .srs-tab td.srs-akt{grid-column:auto}
}

/* ===== KG-Personenliste (kg_personenliste.php) ===== */
.kgp-seite .kgp-jahr{width:auto;display:inline-block}
.kgp-seite .kgp-tabs{row-gap:.25rem}
.kgp-seite .kgp-tabs .nav-link{color:#495057}
.kgp-seite .kgp-tabs .nav-link.active{color:#212529;font-weight:600}
.kgp-seite .kgp-anz{margin-left:.35rem;font-size:.75rem}

/* ===== Mobile Ansicht ===== */
@media (max-width: 767.98px) {
  /* Tabs: 3 Spalten im Raster, kein seitliches Scrollen */
  /* Einnahmen-Zeilen als Karten: Position + Bereich in der Kopfzeile, Fr/Sa/So nebeneinander, Summe unten */
  .ka-einn-tab, .ka-einn-tab tbody { display:block; width:100%; max-width:none !important; border:0; }
  .ka-einn-tab thead { display:none; }
  .ka-einn-tab tr.ka-e-zeile { display:grid; grid-template-columns:repeat(3, 1fr); gap:6px 8px; padding:10px; margin-bottom:12px;
                               border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  .ka-einn-tab tr.ka-e-zeile > td { display:block; width:auto !important; min-width:0 !important; border:0; padding:0; background:transparent; }
  .ka-einn-tab .ka-e-pos { grid-column:span 3; font-weight:600; }
  .ka-einn-tab .ka-e-leer { display:none !important; }
  .ka-einn-tab .ka-e-tag::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
  .ka-einn-tab .ka-e-tag input { min-width:0; padding-left:4px; padding-right:4px; }
  .ka-einn-tab tr.ka-e-zws { display:grid; grid-template-columns:repeat(3, 1fr); gap:4px 8px; padding:8px 10px; margin-bottom:12px; background:#d1e7dd; border:1px solid #6c757d; border-radius:8px; }
  .ka-einn-tab tr.ka-e-zws > td { display:block; border:0; padding:0; background:transparent; white-space:nowrap; }
  .ka-einn-tab tr.ka-e-zws td.ka-e-gl { grid-column:span 3; }
  .ka-einn-tab tr.ka-e-zws td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; font-weight:normal; color:#6c757d; }
  .ka-einn-tab tr.ka-e-zws td.zt-ges { grid-column:span 3; text-align:right; border-top:1px solid #dee2e6; padding-top:4px; }
  .ka-einn-tab tfoot { display:block; width:100%; }
  .ka-einn-tab tfoot tr { display:grid; grid-template-columns:repeat(4, 1fr); gap:4px 8px; padding:8px 10px; margin-bottom:12px; background:#d1e7dd; border:1px solid #6c757d; border-radius:8px; }
  .ka-einn-tab tfoot td { display:block; border:0; padding:0; background:transparent; white-space:nowrap; }
  .ka-einn-tab tfoot td.ka-e-gl { grid-column:span 4; }
  .ka-einn-tab tfoot tr.ka-summe > td { border:0 !important; box-shadow:none !important; background:transparent !important; min-width:0; }
  .ka-einn-tab tfoot td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; font-weight:normal; color:#6c757d; }
  .ka-einn-tab .ka-e-summe { grid-column:span 3; text-align:right !important; padding-top:6px !important; border-top:1px solid #dee2e6 !important; }
  .ka-einn-tab .ka-e-summe::before { content:'Summe: '; font-weight:normal; color:#6c757d; }
  /* Ist-Kalkulation und Stände-Tabelle: Zeilen als Karten, Wert-Labels per nth-child */
  #ka-kalk .table-responsive > table { display:block; width:100%; max-width:none !important; border:0; }
  #ka-kalk .table-responsive > table thead { display:none; }
  #ka-kalk .table-responsive > table tbody { display:block; width:100%; }
  #ist-body tr, #st-body tr { display:grid; grid-template-columns:repeat(2, 1fr); gap:2px 10px; padding:8px 6px; border-bottom:1px solid #dee2e6; }
  #ist-body td, #st-body td { display:block; border:0 !important; padding:0 !important; box-shadow:none !important; white-space:normal !important; text-align:right; background:transparent; }
  #ist-body td:first-child, #st-body td:first-child { grid-column:1 / -1; text-align:left; font-weight:600; }
  #ist-body td:empty, #st-body td:empty { display:none; }
  #ist-body td:not(:first-child)::before, #st-body td:not(:first-child)::before { display:block; font-size:.72em; font-weight:normal; color:#6c757d; }
  #ist-body td:nth-child(2)::before { content:'Einnahmen'; }  #ist-body td:nth-child(3)::before { content:'Kosten'; }
  #ist-body td:nth-child(4)::before { content:'Deckung'; }    #ist-body td:nth-child(5)::before { content:'Einheiten'; }
  #ist-body td:nth-child(6)::before { content:'Kosten je Einheit'; } #ist-body td:nth-child(7)::before { content:'Einnahme je Einheit'; }
  #ist-body tr.ka-ergebnis td:nth-child(3)::before { content:'Ergebnis'; }
  #st-body td:nth-child(2)::before { content:'Umsatz'; }  #st-body td:nth-child(3)::before { content:'Wareneinkauf'; }
  #st-body td:nth-child(4)::before { content:'Warenertrag'; } #st-body td:nth-child(5)::before { content:'Kosten'; }
  #st-body td:nth-child(6)::before { content:'Deckungsbeitrag'; } #st-body td:nth-child(7)::before { content:'Marge'; }
  #ist-body tr.ka-summe, #st-body tr.ka-summe { background:#d1e7dd; border-top:2px solid #6c757d; }
  #ist-body tr.ka-kopf, #st-body tr.ka-kopf { background:#cfe2ff; }
  #ist-body tr.ka-summe > td, #st-body tr.ka-summe > td { border-top:0 !important; background:transparent !important; }
  #ist-body tr.ka-kopf > td, #st-body tr.ka-kopf > td { background:transparent !important; }
  /* Vorkalkulation Ergebnis je Bereich: Zeilen als Karten */
  #fp-ergebnis, #fp-ergebnis tbody { display:block; width:100% !important; min-width:0 !important; max-width:none !important; border:0; }
  #fp-ergebnis thead { display:none; }
  #fp-ergebnis tr { display:grid; grid-template-columns:repeat(3, 1fr); gap:2px 8px; padding:8px 6px; border-bottom:1px solid #dee2e6; }
  #fp-ergebnis td { display:block; border:0 !important; padding:0 !important; box-shadow:none !important; white-space:normal !important; text-align:right; background:transparent !important; }
  #fp-ergebnis td:first-child { grid-column:1 / -1; text-align:left; font-weight:600; }
  #fp-ergebnis td:empty { display:none; }
  #fp-ergebnis td:not(:first-child)::before { display:block; font-size:.72em; font-weight:normal; color:#6c757d; }
  #fp-ergebnis td:nth-child(2)::before { content:'Einnahmen'; } #fp-ergebnis td:nth-child(3)::before { content:'Kosten'; } #fp-ergebnis td:nth-child(4)::before { content:'Ergebnis'; }
  #fp-ergebnis td:nth-child(5)::before { content:'Einheiten'; } #fp-ergebnis td:nth-child(6)::before { content:'Kostendeckender Preis je Einheit'; } #fp-ergebnis td:nth-child(7)::before { content:'Planpreis'; }
  #fp-ergebnis tr.ka-summe { background:#d1e7dd; border-top:2px solid #6c757d; }
  /* Meldegeld je Mannschaftsart: Zeilen als Karten */
  #fp-arten, #fp-arten tbody { display:block; width:100% !important; min-width:0 !important; max-width:none !important; border:0; }
  #fp-arten thead { display:none; }
  #fp-arten tr { display:grid; grid-template-columns:repeat(3, 1fr); gap:2px 8px; padding:8px 6px; border-bottom:1px solid #dee2e6; }
  #fp-arten td { display:block; border:0 !important; padding:0 !important; box-shadow:none !important; white-space:normal !important; text-align:right; background:transparent !important; }
  #fp-arten td:first-child { grid-column:1 / -1; text-align:left; font-weight:600; }
  #fp-arten td:empty { display:none; }
  #fp-arten td:not(:first-child)::before { display:block; font-size:.72em; font-weight:normal; color:#6c757d; }
  #fp-arten td:nth-child(2)::before { content:'Mannschaften'; } #fp-arten td:nth-child(3)::before { content:'Spiele'; } #fp-arten td:nth-child(4)::before { content:'Planpreis (Meldegeld)'; }
  #fp-arten td:nth-child(5)::before { content:'Einnahmen'; } #fp-arten td:nth-child(6)::before { content:'Kosten anteilig'; } #fp-arten td:nth-child(7)::before { content:'Ergebnis'; }
  #fp-arten td:nth-child(8)::before { content:'Kostendeckendes Meldegeld'; } #fp-arten td:nth-child(8) { grid-column:1 / -1; }
  #fp-arten td:nth-child(9)::before { content:'Nötiges Meldegeld bei Planpreis der übrigen Arten'; } #fp-arten td:nth-child(9) { grid-column:1 / -1; }
  #fp-arten tr.ka-summe { background:#d1e7dd; border-top:2px solid #6c757d; }
  /* Einnahmen-Summenzeile: Spalten dürfen schrumpfen */
  .ka-einn-tab tfoot tr { grid-template-columns:repeat(3, 1fr); }
  .ka-einn-tab tfoot td.ka-e-gl { grid-column:span 3; }
  .ka-einn-tab tfoot td.fe-t-ges { grid-column:span 3; text-align:right; border-top:1px solid #dee2e6 !important; padding-top:4px; }
  /* Kalkulationstabellen: feste Breite aufheben, scrollen statt quetschen */
  #ka-plan .input-group-text[style*="width:150px"] { width:125px !important; font-size:.85em; white-space:normal; text-align:left; }
  #ka-kalk .table td, #ka-kalk .table th, #ka-plan .table td, #ka-plan .table th, .ka-seite .tab-pane .table th { white-space:nowrap; }
}

/* Mehrjahresvergleich */
.mj-tab tr.mj-kopf td { background:#cfe2ff; color:#084298; font-weight:bold; }
.mj-tab td.mj-best { background:#d1e7dd; font-weight:600; }
.mj-3 .mj-j3, .mj-3 .mj-j4 { display:none !important; }
@media (max-width: 767.98px) {
  #mj-tab, #mj-tab tbody { display:block; width:100% !important; max-width:none !important; border:0; }
  #mj-tab thead { display:none; }
  #mj-tab tr { display:grid; grid-template-columns:repeat(3, 1fr); gap:2px 8px; padding:8px 6px; border-bottom:1px solid #dee2e6; }
  #mj-tab td { display:block; border:0 !important; padding:0 !important; box-shadow:none !important; text-align:right; background:transparent !important; }
  #mj-tab td:first-child { grid-column:1 / -1; text-align:left; font-weight:600; }
  #mj-tab td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; font-weight:normal; color:#6c757d; }
  #mj-tab td.mj-best { font-weight:700; text-decoration:underline; text-decoration-color:#198754; }
  #mj-tab tr.mj-kopf { background:#cfe2ff; }
  .mj-3 .mj-j3, .mj-3 .mj-j4 { display:none !important; }
}
  /* Ergebnis je Verkaufsstand: Blöcke (Verkauf / Übernachtung / Party) deutlich abgrenzen */
  #st-body tr.ka-kopf > td { background:#cfe2ff !important; color:#084298; font-size:1.05rem; padding-top:8px; padding-bottom:8px; }
  #st-body tr.ka-kopf:not(:first-child) { border-top:12px solid #fff !important; }
  #st-body tr.ka-kopf:not(:first-child) > td { border-top:0 !important; }
  #st-body tr.ka-kopf { background:#cfe2ff !important; color:#084298; }
  #st-body tr.ka-ergebnis > td { border-top:2px solid #6c757d !important; border-bottom:2px solid #6c757d !important; }
  #st-body tr.ka-ergebnis { border-bottom:2px solid #6c757d !important; }
  /* Mobil: Ergebniszeilen (Auswertung) einzeilig – Bezeichnung links, Wert rechts, ohne Wert-Label und Doppellinien */
  @media (max-width: 767.98px) {
    #st-body tr.ka-ergebnis, #ist-body tr.ka-ergebnis { grid-template-columns:1fr auto; align-items:center; }
    #st-body tr.ka-ergebnis > td, #ist-body tr.ka-ergebnis > td { border:0 !important; }
    #st-body tr.ka-ergebnis > td:first-child, #ist-body tr.ka-ergebnis > td:first-child { grid-column:1; }
    #st-body tr.ka-ergebnis > td:not(:first-child)::before, #ist-body tr.ka-ergebnis > td:not(:first-child)::before { content:none !important; display:none !important; }
  }
@media (min-width:768px) {
  .ka-seite .table-responsive { overflow:visible; }
  /* Kartentitel klebt unter der Navbar, Spaltenköpfe direkt darunter */
  .ka-seite .card:has(table) > .card-header { position:sticky; top:var(--ka-nav-h,56px); z-index:8; }
  .ka-seite thead th { position:sticky; top:calc(var(--ka-nav-h,56px) + var(--ka-kh,42px)); z-index:7; box-shadow:0 1px 2px rgba(0,0,0,.15); }
}
@media (max-width: 767.98px) {
  .ka-seite.container { padding-left:10px; padding-right:10px; }
  .ka-jahrform .ka-pj, .ka-jahrform select { flex:0 0 auto; }
  .ka-seite .tab-content .btn { margin-bottom:4px; }
}
@media (max-width: 379.98px) { #ka-art-tab th, #ka-art-tab td { padding:.2rem .25rem; font-size:.85em; } .ka-seite.container { padding-left:6px; padding-right:6px; } .ka-seite .card-body { padding:.5rem; } }

@media (max-width: 767.98px) {
  #ka-tabs { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:4px; border-bottom:0; margin-bottom:8px; }
  #ka-tabs .nav-item { width:100%; }
  #ka-tabs .nav-link { width:100%; margin:0; text-align:center; padding:.5rem .15rem; font-size:.85rem; hyphens:manual; border:1px solid #dee2e6; border-radius:.375rem; }
  #ka-tabs .nav-link.active { background:var(--bs-dark); color:#fff; font-weight:700; border-color:var(--bs-dark); }
}
/* KG-Personenliste mobil: Tabs als Buttons-Raster (wie Kostenanalyse), 2 Spalten wegen längerer KG-Namen */
@media (max-width: 767.98px) {
  #kg-tabs.kgp-tabs { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:4px; border-bottom:0; margin-bottom:8px; }
  #kg-tabs.kgp-tabs .nav-item { width:100%; }
  #kg-tabs.kgp-tabs .nav-link { width:100%; height:100%; margin:0; text-align:center; padding:.5rem .3rem; font-size:.85rem; border:1px solid #dee2e6; border-radius:.375rem; }
  #kg-tabs.kgp-tabs .nav-link.active { background:var(--bs-dark); color:#fff; font-weight:700; border-color:var(--bs-dark); }
}
/* Kostenzeilen-Tabelle braucht ~1005 px: Karten erst darunter */
@media (max-width: 1049.98px) {
  #ka-kosten-tab tr.ka-fk, #ka-kosten-tab tr.ka-sr { box-shadow:0 1px 3px rgba(0,0,0,.12); border-color:#ced4da !important; }
  /* Filter untereinander, volle Breite */
  .ka-filter > * { width:100% !important; }
  .ka-filter .btn { width:auto !important; }
  /* Kostenzeilen als Karten (DOM unverändert, JS arbeitet weiter mit closest('tr')) */
  #ka-kosten-tab, #ka-kosten-tab tbody, #ka-kosten-tab tfoot { display:block; width:100%; }
  #ka-kosten-tab thead { display:none; }
  #ka-kosten-tab tr.ka-fk { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px 8px; padding:10px; margin-bottom:12px;
                            border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; background:var(--bs-body-bg, #fff); }
  #ka-kosten-tab tr.ka-fk > td { display:block; width:auto !important; min-width:0 !important; max-width:none !important; border:0; padding:0; background:transparent; }
  #ka-kosten-tab tr.ka-fk > td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
  #ka-kosten-tab tr.ka-fk > td.ka-c-bez::before { display:none; }
  #ka-kosten-tab .ka-c-bez     { grid-column:span 4; order:0; }
  #ka-kosten-tab .ka-c-betrag  { grid-column:span 2; order:1; }
  #ka-kosten-tab .ka-c-kostenart { grid-column:span 2; order:2; }
  #ka-kosten-tab .ka-c-chips   { grid-column:span 4; order:3; }
  #ka-kosten-tab .ka-c-ziel    { grid-column:span 4; order:4; }
  #ka-kosten-tab .ka-c-aktion  { grid-column:span 4; order:5; display:flex !important; gap:8px; justify-content:flex-end; }
  #ka-kosten-tab .ka-c-aktion .btn { flex:1 1 0; padding:8px; }
  /* geöffnete Karte: Detailzeile hängt direkt darunter */
  #ka-kosten-tab tr.ka-fk.ka-open .ka-c-aktion { display:none !important; }   /* geöffnet: Speichern/Löschen stehen am Ende der Details */
  #ka-kosten-tab .ka-det-akt { display:flex; gap:8px; justify-content:flex-end; }
  #ka-kosten-tab .ka-det-akt .btn { flex:1 1 0; padding:8px; }
  #ka-kosten-tab tr.ka-fk.ka-open { margin-bottom:0; border-bottom:0; border-bottom-left-radius:0; border-bottom-right-radius:0; }
  #ka-kosten-tab tr.ka-fk.ka-open + tr.ka-fk-det { display:block; margin-bottom:12px; padding:0 10px 10px; border:1px solid var(--bs-border-color, #dee2e6); border-top:0; border-radius:0 0 8px 8px; background:var(--bs-body-bg, #fff); }
  #ka-kosten-tab tr.ka-fk-det > td { display:block; border:0; padding:0; background:transparent; }
  #ka-kosten-tab .ka-det { flex-direction:column; align-items:stretch; gap:10px; }
  #ka-kosten-tab .ka-det-g .input-group { width:100%; }
  #ka-kosten-tab .ka-det-kom { flex:0 0 auto; }
  #ka-kosten-tab .ka-det-g select { width:100%; }
  #ka-kosten-tab .ka-det-anteile .d-flex > div { flex:1 1 0; min-width:0; }
  #ka-kosten-tab .ka-det-anteile input.fk-a { width:100% !important; padding:6px 2px !important; }
  .ka-fk.ka-dirty { border-left:4px solid #ffc107 !important; }
  .ka-fk.ka-dirty td:first-child { border-left:0; }
  .ka-fk.ka-open.ka-dirty { border-bottom:0 !important; }
  /* automatische SR-Zeilen: Karte wie die Kostenzeilen, nur Anzeige */
  #ka-kosten-tab tr.ka-sr { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px 8px; padding:10px; margin-bottom:12px; border:1px solid var(--bs-border-color, #dee2e6); border-radius:8px; }
  #ka-kosten-tab tr.ka-sr > td { display:block; width:auto !important; min-width:0 !important; max-width:none !important; border:0; padding:0; background:transparent; }
  #ka-kosten-tab tr.ka-sr > td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; color:#6c757d; margin-bottom:2px; }
  #ka-kosten-tab tr.ka-sr > td.ka-c-bez::before { display:none; }
  #ka-kosten-tab tr.ka-sr .ka-c-aktion { display:none !important; }
  #ka-kosten-tab tr.ka-sr > td.ka-c-betrag { text-align:left !important; }
  /* Summenzeilen (tfoot): Bezeichnung links, Betrag rechts */
  #ka-kosten-tab tfoot tr { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; padding:6px 4px; border-bottom:1px solid #dee2e6; }
  #ka-kosten-tab tfoot td { display:block; border:0; padding:0; }
  #ka-kosten-tab tfoot td[colspan] { display:none; }
  #ka-kosten-tab tfoot td.ps-4 { padding-left:0 !important; }
  #ka-kosten-tab tfoot td { white-space:normal; }
  .ka-k-sortbar { display:block !important; }
}
.ka-k-sortbar { display:none; }

/* ===== Admin-Jahresumschalter: Warnleiste unter der Navbar (im Textfluss, kein Sticky-Offset) ===== */
.bc-jahr-leiste { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.5rem 1.25rem; padding:.4rem 1rem; background:#fff3cd; color:#664d03; border-bottom:2px solid #ffecb5; font-size:.9rem; }
.bc-jahr-leiste.bc-jahr-schreiben { background:#f8d7da; color:#842029; border-bottom-color:#f1aeb5; }
.bc-jahr-leiste label { cursor:pointer; font-weight:600; }
.bc-jahr-leiste input[type=checkbox] { margin-right:.35rem; }

/* KG-Personenliste kleinste Mobilansicht: Tabelle als Karten (kein Überlaufen) */
@media (max-width: 575.98px) {
  #kg-liste-inhalt table.kgp-tab { min-width:0 !important; table-layout:auto !important; font-size:.9rem; }
  #kg-liste-inhalt table.kgp-tab colgroup, #kg-liste-inhalt table.kgp-tab thead { display:none; }
  #kg-liste-inhalt table.kgp-tab, #kg-liste-inhalt table.kgp-tab tbody { display:block; width:100%; border:0; }
  #kg-liste-inhalt table.kgp-tab tbody tr { display:grid; grid-template-columns:repeat(3, 1fr); gap:.3rem .5rem; padding:.55rem; margin-bottom:.5rem; border:1px solid #dee2e6; border-radius:.4rem; background:#fff; }
  #kg-liste-inhalt table.kgp-tab tbody td { display:block; border:0; padding:.2rem .1rem; background-color:transparent; box-shadow:none; }
  #kg-liste-inhalt table.kgp-tab td.kgp-name { grid-column:1/-1; font-weight:600; font-size:1rem; padding-bottom:.1rem; }
  #kg-liste-inhalt table.kgp-tab td.kgp-anw { border-radius:.3rem; }
  #kg-liste-inhalt table.kgp-tab td.kgp-anw::before { content:attr(data-label); display:block; font-size:.7rem; text-transform:uppercase; opacity:.75; }
  #kg-liste-inhalt table.kgp-tab td.kgp-runden { grid-column:1/-1; }
  #kg-liste-inhalt table.kgp-tab td.kgp-runden::before { content:attr(data-label); display:block; font-size:.7rem; text-transform:uppercase; opacity:.75; }
  #kg-liste-inhalt table.kgp-tab td.kgp-akt { grid-column:1/-1; text-align:right; }
}

/* Startseite: Kacheln (regelkarte-advanced) in den Farben der Karten-Richtlinie (weißer Körper, Titel weiß/fett wie .bc-card) */
.idx-kacheln .regelkarte-advanced { background:#fff; }
.idx-kacheln .regelkarte-header { color:#fff; font-weight:700; font-size:1.05rem; }
.idx-kacheln .bc-st { white-space:normal; }
/* Startseite: Hinweis-Badge (Pillenform, ohne Rahmen) – damit er nicht wie ein Button wirkt */
.idx-kacheln .idx-hinweis { border:0; border-radius:50rem; padding:3px 10px; font-size:.78rem; font-weight:600; cursor:default; }

/* Abschnitts-Trenner zwischen Kartengruppen (z. B. meinedaten.php: Schiedsrichter-Bereich) */
.bc-sektion { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; padding:10px 16px; background:#e9ecef; border-left:6px solid var(--bs-dark); border-radius:4px; }
.bc-sektion-titel { font-weight:700; font-size:1.15rem; color:var(--bs-dark); }
.bc-sektion-hint { font-size:.85rem; color:#6c757d; }

/* Fixierte Speichern-Leiste am unteren Rand (meinedaten.php): bleibt beim Scrollen sichtbar, endet mit dem Formular */
.bc-savebar-wrap { position:sticky; bottom:0; z-index:20; margin-top:1rem; padding-bottom:1rem; pointer-events:none; }
.bc-savebar { pointer-events:auto; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px; background:#fff; border:1px solid rgba(0,0,0,.176); border-radius:6px; box-shadow:0 -2px 10px rgba(0,0,0,.12); }
.bc-savebar-hint { font-size:.85rem; color:#6c757d; }
@media (max-width: 575.98px) { .bc-savebar-hint { display:none; } .bc-savebar { justify-content:center; } .bc-savebar .btn { width:100%; } }

/* Turnier-Historie (historie.php) */
.hist-seite .hist-info{font-size:.95rem;font-weight:600}
.hist-seite .hist-info .idx-hinweis{border:0;border-radius:50rem;padding:3px 10px;font-size:.78rem;font-weight:600;margin-right:.4rem;cursor:default}
.hist-seite .hist-tab{--bs-table-bg:transparent}
.hist-seite .hist-tab thead th{background:#343a40;color:#fff;font-weight:600}
.hist-seite .hist-tab td,.hist-seite .hist-tab th{padding:.3rem .5rem}
.hist-seite .hist-tab tr.hist-platz1 td{background:#fff3cd;color:#664d03;font-weight:700}
.hist-seite .hist-tab tr.hist-platz2 td{background:#e9ecef}
.hist-seite .hist-tab tr.hist-platz3 td{background:#f8f9fa}
.hist-seite .hist-tab tr.hist-trenner td{padding:0;height:3px;background:#dee2e6}
.hist-seite .ewige-tabelle th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
.hist-seite .ewige-tabelle th.sortable:after{content:'\2195';color:#adb5bd;font-size:.75em;margin-left:.3rem}
.hist-seite .ewige-tabelle th.sortable.sort-asc:after{content:'\2191';color:#fff}
.hist-seite .ewige-tabelle th.sortable.sort-desc:after{content:'\2193';color:#fff}
.hist-seite .ewige-tabelle th:nth-child(3),.hist-seite .ewige-tabelle th:nth-child(4){width:110px}
@media (max-width:575.98px){.hist-seite .ewige-tabelle th:nth-child(3),.hist-seite .ewige-tabelle th:nth-child(4){width:1%}.hist-seite .ewige-tabelle th,.hist-seite .ewige-tabelle td{padding:.3rem .35rem;font-size:.9rem}.hist-seite .ewige-tabelle th.sortable:after{margin-left:.15rem}}
.hist-seite .ewige-tabelle td:nth-child(2){overflow-wrap:anywhere}
/* Sticky: Kartentitel klebt unter der Navbar, Spaltenköpfe direkt darunter (Historie + Ewige Tabelle) */
.hist-seite .card:has(table) > .card-header{position:sticky;top:var(--hist-nav-h,56px);z-index:3}
.hist-seite .hist-tab thead th{position:sticky;top:calc(var(--hist-nav-h,56px) + var(--hist-kh,42px));z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.hist-seite .hist-nav .btn{white-space:nowrap;flex:0 0 auto}
.hist-seite .hist-nav span{text-align:center;flex:1 1 auto}
.hist-seite .hist-nav{display:flex}
.hist-seite .hist-hinweis{display:inline-block;white-space:normal;border:0;border-radius:50rem;padding:3px 12px;font-size:.8rem;font-weight:600;cursor:default}
