/* ============================================================
   Basis-Schriftgröße
   Entkoppelt alle Plugin-Ausgaben vom WordPress-Theme.
   Alle em-Werte im Plugin beziehen sich auf diese 14 px –
   unabhängig davon, welche Basis das aktive Theme setzt.
   ============================================================ */
.lm-tabelle-container,
.lm-spielplan,
.lm-ko-baum-container,
.lm-aktionen-hub,
.lm-ergebnis-eintragen,
.lm-termin-vereinbaren,
.lm-spielsuche,
.lm-spielbericht-form,
.lm-kontakt {
    font-size: 14px;
}

/* ============================================================
   Liga-Ansicht: gemeinsamer Kopf (Tabelle + Spielplan)
   ============================================================ */

.lm-liga-ansicht-kopf {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 2px solid #333;
    flex-wrap: wrap;
    gap: 8px;
}

.lm-liga-ansicht-titel {
    margin: 0;
    font-size: 1.15em;
}

.lm-pdf-btn {
    background: #f0f2f5 !important;
    color: #333 !important;
    border: 1px solid #bbb !important;
    padding: 5px 14px;
    border-radius: 4px;
    font-size: 0.85em;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}

.lm-pdf-btn:hover {
    background: #e0e5ee !important;
    border-color: #999 !important;
    color: #000 !important;
}

/* ============================================================
   Spieltag-Gruppierung
   ============================================================ */

.lm-spieltag-gruppe {
    margin-bottom: 24px;
}

.lm-spieltag-header {
    display: flex;
    align-items: baseline;
    gap: 12px;
    background: #333;
    color: #fff;
    padding: 6px 12px;
    border-radius: 3px 3px 0 0;
    font-size: 0.9em;
    font-weight: 700;
}

.lm-spieltag-header + .lm-spielplan-table {
    border-top: none;
}

.lm-spieltag-kw {
    font-weight: bold;
    font-size: 0.88em;
    background: rgba(255,255,255,0.15);
    padding: 1px 6px;
    border-radius: 3px;
}

.lm-spieltag-datum {
    font-weight: normal;
    font-size: 0.88em;
    opacity: 0.85;
}

/* Spiel mit eigenem Datum – leicht farblich hinterlegt */
.lm-spiel-eigenesdatum td {
    background: #fff8e6;
}

/* Teams ohne Spiele in der Tabelle */
.lm-tabelle-ohne-spiele td {
    color: #aaa;
}

/* Liga-Tabelle */
.lm-tabelle-container {
    margin: 20px 0;
}

.lm-tabelle {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

.lm-tabelle th,
.lm-tabelle td {
    padding: 10px 12px;
    text-align: left;
    border-bottom: 1px solid #e1e1e1;
}

.lm-tabelle th {
    background: #f5f5f5;
    font-weight: 600;
}

.lm-tabelle tbody tr:hover {
    background: #f9f9f9;
}

/* Liga-Block (Mehrligen-Spielplan) */
.lm-liga-block {
    margin-bottom: 36px;
}

.lm-liga-block-header {
    font-size: 1em;
    font-weight: 700;
    margin: 0 0 10px 0;
    padding: 7px 14px;
    background: #f0f4f8;
    border-left: 4px solid #1a6ea8;
    border-radius: 0 3px 3px 0;
}

/* Navigationsleiste für Mehrligen-Ansicht */
.lm-liga-nav {
    display: inline-flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin-bottom: 24px;
    padding: 0;
    background: #fff;
    border: 2px solid #1a6ea8;
    border-radius: 6px;
    font-size: 0.9em;
    overflow: hidden;
    min-width: 200px;
}

.lm-liga-nav-label {
    font-weight: 700;
    color: #fff;
    background: #1a6ea8;
    padding: 7px 14px;
    font-size: 0.95em;
    letter-spacing: 0.03em;
}

.lm-liga-nav-link {
    display: block;
    padding: 7px 14px;
    background: #fff;
    color: #1a6ea8 !important;
    text-decoration: none !important;
    font-weight: 600;
    border-top: 1px solid #dce4ec;
    transition: background 0.15s, color 0.15s;
}

.lm-liga-nav-link:hover {
    background: #eaf2fa;
    color: #0f4c7a !important;
}

/* „↑ nach oben"-Button am Ende jedes Liga-Blocks */
.lm-zurueck-oben {
    text-align: right;
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px solid #eee;
}

.lm-zurueck-oben a {
    font-size: 0.82em;
    color: #888 !important;
    text-decoration: none !important;
}

.lm-zurueck-oben a:hover {
    color: #1a6ea8 !important;
    text-decoration: underline !important;
}

/* Spielplan */
.lm-spielplan-table {
    width: 100%;
    border-collapse: collapse;
}

.lm-spielplan-table th,
.lm-spielplan-table td {
    padding: 8px 12px;
    border-bottom: 1px solid #ddd;
}

.lm-spiel-beendet td {
    background: #f0f9f0;
}

.lm-spiel-offen td {
    background: #fff9f0;
}

/* Spielplan – ID-Spalte */
.lm-spielplan-table .lm-sp-id {
    color: #999;
    font-size: 0.85em;
    text-align: right;
    white-space: nowrap;
    width: 1%;
}

/* Spielplan – Spielbericht-Icon (📋) in ID-Spalte größer */
.lm-spielplan-table .lm-sp-id a,
.lm-spielplan-table .lm-sp-id abbr {
    font-size: 1.3em;
    vertical-align: middle;
    text-decoration: none;
    cursor: pointer;
}

/* Spielplan – Ergebnisspalten */
.lm-spielplan-table .lm-sp-sg,
.lm-spielplan-table .lm-sp-pkt,
.lm-spielplan-table .lm-sp-kd {
    text-align: center;
    white-space: nowrap;
}

.lm-spielplan-table .lm-sp-sg {
    color: #555;
    font-size: 0.88em;
}

.lm-spielplan-table .lm-sp-kd {
    color: #666;
    font-size: 0.88em;
}

/* Spielbericht-Formular */
.lm-spielbericht-form {
    max-width: 800px;
}

.lm-form-section {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 20px;
    margin-bottom: 20px;
}

.lm-form-section h3 {
    margin-top: 0;
    padding-bottom: 10px;
    border-bottom: 1px solid #eee;
}

.lm-spieler-select {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.lm-partie-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.lm-notice {
    padding: 15px;
    border-radius: 4px;
    margin-bottom: 20px;
}

.lm-notice-warning {
    background: #fff3cd;
    border: 1px solid #ffc107;
}

.lm-notice-error {
    background: #f8d7da;
    border: 1px solid #f5c6cb;
}

.lm-notice-success {
    background: #d4edda;
    border: 1px solid #c3e6cb;
}

/* Punkte-Validierungs-Hinweis unter den Punkte-Feldern */
.lm-ee-pkt-hint {
    font-size: 12px;
    padding: 4px 8px;
    border-radius: 3px;
    margin-top: 8px;
    min-height: 22px;
}
.lm-ee-pkt-ok {
    color: #2e7d32;
    background: #e9f7ef;
    border: 1px solid #a5d6a7;
}
.lm-ee-pkt-err {
    color: #c62828;
    background: #fdecea;
    border: 1px solid #ef9a9a;
}

/* Tabellenpunkte */
.lm-tabelle th:last-child,
.lm-tabelle td:last-child { text-align: center; }
.lm-tabelle-legende { font-size: 0.85em; color: #666; margin-top: 6px; }

/* Saison-Label in Tabellenüberschrift */
.lm-saison-label {
    font-size: 0.85em;
    font-weight: normal;
    color: #666;
}

/* ============================================================
   Spieltermin vereinbaren
   ============================================================ */

.lm-termin-vereinbaren {
    margin: 20px 0;
}

/* Schritte */
.lm-tv-schritt {
    margin-bottom: 24px;
}

.lm-tv-schritt-kopf {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #e0e0e0;
}

.lm-tv-schritt-nr {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #333;
    color: #fff;
    font-weight: 700;
    font-size: 0.9em;
    flex-shrink: 0;
}

.lm-tv-schritt-aktiv .lm-tv-schritt-nr {
    background: #1a6ea8;
}

.lm-tv-schritt-label {
    font-weight: 600;
    font-size: 1.05em;
}

.lm-tv-zurueck {
    margin-left: auto;
    background: none;
    border: none;
    color: #666;
    cursor: pointer;
    font-size: 0.88em;
    padding: 4px 8px;
    border-radius: 3px;
}

.lm-tv-zurueck:hover {
    background: #f0f0f0;
    color: #333;
}

/* Abbrechen – klein (Schritt-Kopf) */
.lm-aktion-abbrechen {
    display: inline-block;
    padding: 4px 12px;
    border: 1px solid #bbb;
    border-radius: 3px;
    background: #f5f5f5 !important;
    color: #555 !important;
    font-size: 0.88em;
    cursor: pointer;
    text-decoration: none !important;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.lm-aktion-abbrechen:hover {
    background: #fdf0ef !important;
    border-color: #c0392b !important;
    color: #c0392b !important;
}

/* Spiel-Info-Box */
.lm-tv-spiel-info {
    background: #f0f6ff;
    border: 1px solid #c5ddf5;
    border-radius: 5px;
    padding: 14px 18px;
    margin-bottom: 20px;
}

.lm-tv-spiel-paarung {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.15em;
    font-weight: 700;
    margin-bottom: 6px;
}

.lm-tv-vs {
    color: #888;
    font-weight: 400;
    font-size: 0.85em;
}

.lm-tv-spiel-meta {
    display: flex;
    gap: 16px;
    font-size: 0.88em;
    color: #555;
}

/* Detail-Zeile: Liga / Spieltag / Datum / Zeit */
.lm-tv-spiel-details {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    margin-top: 6px;
    font-size: 0.88em;
    color: #555;
}

.lm-tv-detail-item {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.lm-tv-detail-label {
    font-size: 0.82em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #888;
}

/* Aussteller- und Gast-Autocomplete */
.lm-tv-ac-container,
.lm-tv-gast-ac-container {
    position: relative;
}

.lm-tv-ac-liste,
.lm-tv-gast-ac-liste {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 300;
    background: #fff;
    border: 1px solid #bbb;
    border-top: none;
    border-radius: 0 0 3px 3px;
    max-height: 220px;
    overflow-y: auto;
    box-shadow: 0 4px 10px rgba(0,0,0,.12);
}

.lm-tv-ac-item,
.lm-tv-gast-ac-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    cursor: pointer;
    gap: 8px;
}

.lm-tv-ac-item:hover,
.lm-tv-ac-item.lm-tv-ac-aktiv,
.lm-tv-gast-ac-item:hover,
.lm-tv-gast-ac-item.lm-tv-gast-ac-aktiv {
    background: #eef3ff;
}

.lm-tv-ac-name {
    font-weight: 600;
}

.lm-tv-ac-meta {
    font-size: 0.82em;
    color: #888;
    white-space: nowrap;
}

/* Formular-Grid */
.lm-tv-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 16px;
}

.lm-tv-form-gruppe-voll {
    grid-column: 1 / -1;
}

.lm-tv-label {
    display: block;
    font-weight: 600;
    font-size: 0.88em;
    color: #444;
    margin-bottom: 5px;
}

.lm-tv-pflicht {
    color: #c0392b;
}

.lm-tv-input {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 3px;
    font-size: 0.95em;
    box-sizing: border-box;
    transition: border-color 0.15s;
}

.lm-tv-input:focus {
    border-color: #1a6ea8;
    outline: none;
}

.lm-tv-aktionen {
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

/* Abbrechen – groß (neben Submit-Button) */
.lm-tv-abbrechen-btn {
    display: inline-block;
    padding: 10px 18px;
    border: 1px solid #bbb;
    border-radius: 4px;
    background: #f5f5f5 !important;
    color: #555 !important;
    font-size: 0.95em;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none !important;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.lm-tv-abbrechen-btn:hover {
    background: #fdf0ef !important;
    border-color: #c0392b !important;
    color: #c0392b !important;
}

.lm-tv-submit-btn {
    background: #1a6ea8;
    color: #fff;
    border: none;
    padding: 10px 22px;
    border-radius: 4px;
    font-size: 0.95em;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.lm-tv-submit-btn:hover:not(:disabled) {
    background: #155a8a;
}

.lm-tv-submit-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.lm-tv-feedback {
    margin-bottom: 12px;
}

@media (max-width: 560px) {
    .lm-tv-form-grid {
        grid-template-columns: 1fr;
    }
    .lm-tv-form-gruppe-voll {
        grid-column: 1;
    }
}

/* ============================================================
   Spielsuche
   ============================================================ */

.lm-spielsuche {
    margin: 20px 0;
    font-size: 0.95em;
}

.lm-ss-titel {
    margin-bottom: 14px;
}

/* Zeilen-Layout */
.lm-ss-zeile {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px;
    align-items: flex-end;
}

.lm-ss-filter-zeile {
    padding: 14px;
    background: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 4px;
}

/* ── Filterzeile nebeneinander (wie Gesamtspielplan / Kaderliste) ─── */
.lm-ss-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    align-items: flex-end;
    padding: 10px 12px;
    background: #f5f7fa;
    border: 1px solid #dde6f0;
    border-radius: 4px;
    margin-bottom: 12px;
}

.lm-ss-label {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
    font-size: 0.88em;
    color: #444;
}

.lm-ss-feld {
    flex: 1 1 160px;
    min-width: 0;
}

.lm-ss-feld-schmal {
    flex: 0 1 130px;
}

.lm-ss-feld-reset {
    flex: 0 0 auto;
}

.lm-ss-feld select,
.lm-ss-feld input[type="text"],
.lm-ss-feld input[type="date"] {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: #fff;
    font-size: 0.9em;
    box-sizing: border-box;
}

.lm-ss-reset {
    background: #f0f2f5;
    border: 1px solid #bbb;
    border-radius: 3px;
    padding: 6px 12px;
    font-size: 0.9em;
    color: #555;
    cursor: pointer;
    white-space: nowrap;
    line-height: 1.4;
}
.lm-ss-reset:hover {
    background: #e0e5ee;
    border-color: #999;
}

@media (max-width: 560px) {
    .lm-ss-filter-row { flex-direction: column; }
    .lm-ss-feld, .lm-ss-feld-schmal { flex: 1 1 100%; }
}

/* Liga-Autocomplete */
.lm-ss-liga-wrap {
    flex: 0 1 340px;
}

.lm-ss-ac-container {
    position: relative;
}

.lm-ss-liga-input {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid #ccc;
    border-radius: 3px;
    font-size: 0.9em;
    box-sizing: border-box;
    transition: border-color 0.15s;
}

.lm-ss-liga-input:focus {
    border-color: #666;
    outline: none;
}

.lm-ss-liga-gewaehlt {
    border-color: #5a8a5a !important;
    background: #f6fbf6;
}

.lm-ss-ac-liste {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 200;
    background: #fff;
    border: 1px solid #bbb;
    border-top: none;
    border-radius: 0 0 3px 3px;
    max-height: 240px;
    overflow-y: auto;
    box-shadow: 0 4px 10px rgba(0,0,0,.12);
}

.lm-ss-ac-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    cursor: pointer;
    gap: 8px;
}

.lm-ss-ac-item:hover,
.lm-ss-ac-item:focus,
.lm-ss-ac-item.lm-ss-ac-aktiv {
    background: #eef3ff;
    outline: none;
}

.lm-ss-ac-name {
    font-weight: 600;
}

.lm-ss-ac-meta {
    font-size: 0.82em;
    color: #888;
    white-space: nowrap;
}

.lm-ss-ac-leer {
    padding: 10px 12px;
    color: #888;
    font-style: italic;
}

/* Lade-Indikator */
.lm-ss-loading-bar {
    padding: 6px 12px;
    font-size: 0.88em;
    color: #666;
    font-style: italic;
}

/* Ergebnis-Tabelle */
.lm-ss-tabelle {
    width: 100%;
    border-collapse: collapse;
    margin-top: 16px;
    font-size: 0.93em;
}

.lm-ss-tabelle th,
.lm-ss-tabelle td {
    padding: 8px 10px;
    text-align: left;
    border-bottom: 1px solid #e0e0e0;
}

.lm-ss-tabelle th {
    background: #f2f2f2;
    font-weight: 600;
    font-size: 0.88em;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.lm-ss-spiel-row {
    cursor: pointer;
    transition: background 0.1s;
}

.lm-ss-spiel-row:hover {
    background: #f0f6ff;
}

.lm-ss-row-aktiv td {
    background: #deeeff;
}

/* Status-Badges */
.lm-ss-status {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.82em;
    font-weight: 600;
}

.lm-status-geplant    { background: #fff3cd; color: #856404; }
.lm-status-laufend    { background: #cce5ff; color: #004085; }
.lm-status-beendet    { background: #d4edda; color: #155724; }
.lm-status-abgesagt   { background: #f8d7da; color: #721c24; }
.lm-status-verschoben { background: #e2d9f3; color: #4a1d96; }

.lm-ss-waehlen-btn {
    white-space: nowrap;
}

.lm-ss-spiel-id {
    color: #aaa;
    font-size: 0.82em;
    white-space: nowrap;
    width: 1%;
}

/* Ergebnis-Farbcodierung (Spielsuche) */
.lm-erg-win  { background: #d4edda; padding: 1px 5px; border-radius: 3px; }
.lm-erg-lose { background: #f8d7da; padding: 1px 5px; border-radius: 3px; }

.lm-ss-kd {
    text-align: center;
    color: #666;
    font-size: 0.88em;
    width: 1%;
    white-space: nowrap;
}

/* Beendet-Hinweis in der Auswählen-Spalte */
.lm-ss-beendet-hint {
    color: #888;
    font-size: 1em;
}
/* Zeile für beendete Spiele: kein Zeiger-Cursor */
.lm-ss-spiel-row.lm-ss-row-beendet {
    cursor: default;
}

/* ── Ergebnis eintragen – Paar-Blöcke (Score + Person) ─────── */
.lm-ee-paar-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.lm-ee-paar-block {
    flex: 0 0 auto;
    padding: 12px 14px;
    border: 1px solid #eee;
    border-radius: 4px;
    background: #fafafa;
}

.lm-ee-paar-block-rahmen {
    border-color: #aac4df;
    background: #f5f8fc;
}

.lm-ee-paar-block-titel {
    font-weight: 600;
    font-size: 0.9em;
    color: #444;
    margin-bottom: 10px;
}

/* Score-Zeile: Heim-Input : Gast-Input */
.lm-ee-score-row {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}

.lm-ee-score-feld {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.lm-ee-score-label {
    font-size: 0.8em;
    color: #666;
    font-weight: 600;
}

.lm-ee-score-input {
    width: 72px;
    text-align: center;
    font-size: 1.3em;
    font-weight: 600;
    padding: 6px 4px;
}

.lm-ee-score-sep {
    font-size: 1.6em;
    font-weight: 700;
    color: #555;
    line-height: 1;
    padding-bottom: 6px;
}

/* Person-Block */
.lm-ee-person-block {
    flex: 1 1 200px;
    max-width: 320px;
}

.lm-ee-person-feld {
    margin-bottom: 10px;
}

.lm-ee-person-feld:last-of-type {
    margin-bottom: 4px;
}

/* Responsive: auf schmalen Screens untereinander */
@media (max-width: 560px) {
    .lm-ee-paar-row {
        gap: 8px;
    }
    .lm-ee-paar-block,
    .lm-ee-person-block {
        flex: 1 1 100%;
        max-width: 100%;
    }
}

/* Ergebnis eintragen – Autocomplete (Erfasser + Gast) */
.lm-ee-ac-container,
.lm-ee-gast-ac-container {
    position: relative;
}

.lm-ee-ac-liste,
.lm-ee-gast-ac-liste {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 300;
    background: #fff;
    border: 1px solid #bbb;
    border-top: none;
    border-radius: 0 0 3px 3px;
    max-height: 220px;
    overflow-y: auto;
    box-shadow: 0 4px 10px rgba(0,0,0,.12);
}

.lm-ee-ac-item,
.lm-ee-gast-ac-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    cursor: pointer;
    gap: 8px;
}

.lm-ee-ac-item:hover,
.lm-ee-ac-item.lm-ee-ac-aktiv,
.lm-ee-gast-ac-item:hover,
.lm-ee-gast-ac-item.lm-ee-gast-ac-aktiv {
    background: #eef3ff;
}

.lm-ee-ac-name { font-weight: 600; }
.lm-ee-ac-meta { font-size: 0.82em; color: #888; white-space: nowrap; }

/* Textarea im Formular-Grid */
.lm-tv-input[rows] {
    resize: vertical;
    min-height: 80px;
}

/* Aktionen-Hub */
.lm-aktionen-hub {
    margin: 20px 0;
}

.lm-aktionen-hub h2 {
    margin-bottom: 16px;
}

.lm-aktionen-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}

.lm-aktion-karte {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 20px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.15s, border-color 0.15s;
}

.lm-aktion-karte:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,.1);
    border-color: #aaa;
    color: inherit;
    text-decoration: none;
}

.lm-aktion-karte.lm-aktion-inaktiv {
    background: #f9f9f9;
    border-color: #e5e5e5;
    cursor: default;
    pointer-events: none;
    opacity: 0.6;
}

.lm-aktion-icon {
    font-size: 2em;
    line-height: 1;
    margin-bottom: 12px;
}

.lm-aktion-titel {
    font-weight: 600;
    font-size: 1em;
    margin-bottom: 6px;
}

.lm-aktion-beschreibung {
    font-size: 0.85em;
    color: #666;
    flex-grow: 1;
}

.lm-aktion-badge {
    display: inline-block;
    margin-top: 10px;
    font-size: 0.75em;
    padding: 2px 8px;
    border-radius: 20px;
    background: #e5e5e5;
    color: #777;
    align-self: flex-start;
}

/* ============================================================
   KO-Baum
   Linke Spalte = erste Runde (meiste Spiele),
   Rechte Spalte = Finale (Wurzel).

   Zell-Höhe als CSS-Variable – kann im Theme überschrieben werden:
     .lm-ko-bracket { --lm-ko-cell-h: 80px; }
   ============================================================ */

.lm-ko-baum-container {
    margin: 20px 0;
}

/* ---- Gesamt-Bracket ---------------------------------------- */
.lm-ko-bracket {
    --lm-ko-cell-h:     88px;   /* Höhe einer Spielzelle (mit Datum-Zeile) */
    --lm-ko-conn-w:     24px;   /* Breite der Verbindungslinien    */
    --lm-ko-conn-color: #555;   /* Farbe der Verbindungslinien     */
    --lm-ko-conn-px:    2px;    /* Stärke der Verbindungslinien    */

    display: flex;
    align-items: stretch;
    gap: 0;
    overflow-x: auto;
    padding-bottom: 8px;
}

/* ---- Spalte (eine Runde) ----------------------------------- */
.lm-ko-col {
    display: flex;
    flex-direction: column;
    min-width: 190px;
    flex: 1;
}

/* ---- Spalten-Überschrift ----------------------------------- */
.lm-ko-col-header {
    text-align: center;
    padding: 5px 8px;
    background: #333;
    color: #fff;
    font-size: 0.82em;
    font-weight: 700;
    border-radius: 3px 3px 0 0;
    margin: 0 calc(var(--lm-ko-conn-w) / 2);
    white-space: nowrap;
}

/* ---- Körper einer Spalte ----------------------------------- */
.lm-ko-col-body {
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* ---- Einzelne Spielzelle ----------------------------------- */
.lm-ko-cell {
    height: var(--lm-ko-cell-h);
    display: flex;
    align-items: center;
    position: relative;
    /* Rechts: Platz für ausgehende Verbindungslinie */
    padding: 5px var(--lm-ko-conn-w) 5px 0;
    flex: 1;
}

/* Einrücken für eingehende Verbindungslinie ab 2. Spalte */
.lm-ko-col--hat-vorgaenger .lm-ko-cell {
    padding-left: var(--lm-ko-conn-w);
}

/* ---- Eingehende Linie (horizontale Linie von links) -------- */
.lm-ko-col--hat-vorgaenger .lm-ko-cell::before {
    content: '';
    position: absolute;
    left: 0;
    top: calc(var(--lm-ko-cell-h) / 2);
    width: var(--lm-ko-conn-w);
    height: var(--lm-ko-conn-px);
    background: var(--lm-ko-conn-color);
    margin-top: calc(-1 * var(--lm-ko-conn-px) / 2);
}

/* ---- Ausgehende Linien (Klammer nach rechts) --------------- */
/* Oberer Arm: ungerade Zellen (1, 3, 5 …) → Linie nach rechts, dann abwärts */
.lm-ko-col:not(.lm-ko-col--finale) .lm-ko-col-body .lm-ko-cell:nth-child(odd)::after {
    content: '';
    position: absolute;
    right: calc(-1 * var(--lm-ko-conn-w));
    top: calc(var(--lm-ko-cell-h) / 2);
    width: var(--lm-ko-conn-w);
    height: calc(var(--lm-ko-cell-h) / 2);
    border-top:   var(--lm-ko-conn-px) solid var(--lm-ko-conn-color);
    border-right: var(--lm-ko-conn-px) solid var(--lm-ko-conn-color);
}

/* Unterer Arm: gerade Zellen (2, 4, 6 …) → Linie nach rechts, dann aufwärts */
.lm-ko-col:not(.lm-ko-col--finale) .lm-ko-col-body .lm-ko-cell:nth-child(even)::after {
    content: '';
    position: absolute;
    right: calc(-1 * var(--lm-ko-conn-w));
    top: 0;
    width: var(--lm-ko-conn-w);
    height: calc(var(--lm-ko-cell-h) / 2);
    border-bottom: var(--lm-ko-conn-px) solid var(--lm-ko-conn-color);
    border-right:  var(--lm-ko-conn-px) solid var(--lm-ko-conn-color);
}

/* ---- Match-Karte ------------------------------------------- */
.lm-ko-match {
    width: 100%;
    border: 2px solid #bbb;
    border-radius: 4px;
    background: #fff;
    overflow: hidden;
    font-size: 0.92em;
    box-shadow: 0 1px 4px rgba(0,0,0,.12);
}

.lm-ko-match--beendet {
    border-color: #82c99a;
}

.lm-ko-match--tbd {
    border-style: dashed;
    border-color: #bbb;
    background: #fafafa;
}

/* ---- Datum-Zeile oberhalb der Teams ------------------------ */
.lm-ko-match-datum {
    font-size: 0.78em;
    color: #555;
    padding: 3px 8px 2px;
    border-bottom: 1px solid #ccc;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- Team-Zeile -------------------------------------------- */
.lm-ko-team {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 8px;
    gap: 8px;
}

.lm-ko-team + .lm-ko-team {
    border-top: 1px solid #ccc;
}

.lm-ko-team-name {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    font-weight: 600;
}

.lm-ko-team-score {
    font-weight: 700;
    min-width: 18px;
    text-align: right;
    flex-shrink: 0;
}

.lm-ko-team-kugeln {
    font-size: 0.82em;
    color: #888;
    flex-shrink: 0;
    white-space: nowrap;
}

/* ---- Sieger / Verlierer ------------------------------------ */
.lm-ko-gewinner {
    background: #f0fff4;
    font-weight: 700;
}

.lm-ko-gewinner .lm-ko-team-name {
    color: #1a7a3a;
}

.lm-ko-verlierer .lm-ko-team-name {
    color: #bbb;
}

/* Platzhalter-Team (noch unbekannt) */
.lm-ko-match--tbd .lm-ko-team-name {
    color: #bbb;
    font-style: italic;
}

/* ---- Status-Varianten der Match-Karte ---------------------- */
.lm-ko-status-beendet   { border-color: #82c99a; }
.lm-ko-status-laufend   { border-color: #6aaee8; }
.lm-ko-status-abgesagt  { border-color: #e8909a; opacity: .7; }

/* ---- Finale-Spalte: keine ausgehenden Linien, etwas breiter - */
.lm-ko-col--finale {
    min-width: 200px;
}

.lm-ko-col--finale .lm-ko-cell {
    padding-right: 8px;   /* kein Platz für ausgehende Linie nötig */
}

/* ---- Responsive -------------------------------------------- */
@media (max-width: 600px) {
    .lm-ko-bracket {
        --lm-ko-cell-h: 78px;
        --lm-ko-conn-w: 16px;
    }

    .lm-ko-col {
        min-width: 140px;
    }
}

/* ============================================================
   Druck-Styles (nativer Browser-Druck / Strg+P)
   Für den PDF-Button gilt das separate CSS in liga-ansicht.js.
   ============================================================ */
@media print {
    /* Interaktive Elemente ausblenden */
    .lm-pdf-btn,
    .lm-tv-aktionen,
    .lm-tv-abbrechen-btn,
    .lm-tv-submit-btn,
    .lm-aktionen-hub,
    .lm-spielbericht-form { display: none !important; }

    /* Kompaktere Schrift für den Druck */
    .lm-tabelle-container,
    .lm-spielplan,
    .lm-ko-baum-container {
        font-size: 11px !important;
    }

    /* Engere Zellen-Abstände */
    .lm-tabelle th,
    .lm-tabelle td,
    .lm-spielplan-table th,
    .lm-spielplan-table td {
        padding: 4px 6px;
    }

    /* Spieltag-Gruppen nicht auseinanderreißen */
    .lm-spieltag-gruppe { page-break-inside: avoid; }

    /* KO-Baum kompakter */
    .lm-ko-bracket {
        --lm-ko-cell-h: 68px;
        --lm-ko-conn-w: 14px;
    }
}

/* ============================================================
   Gemeinsame Widget-Styles
   ============================================================ */
.lm-spielvorschau,
.lm-letzte-ergebnisse,
.lm-gesamtspielplan {
    font-size: 14px;
}

.lm-widget-titel {
    font-size: 1.1em;
    font-weight: 600;
    margin: 0 0 10px;
    padding-bottom: 6px;
    border-bottom: 2px solid #333;
}

.lm-keine-eintraege {
    color: #777;
    font-style: italic;
    margin: 8px 0;
}

/* Status-Klassen */
.lm-status-geplant    { }
.lm-status-laufend    { background-color: #fffbe6; }
.lm-status-beendet    { }
.lm-status-abgesagt   { opacity: .55; text-decoration: line-through; }
.lm-status-verschoben { opacity: .70; font-style: italic; }

/* ============================================================
   Spielvorschau
   ============================================================ */
.lm-sv-table {
    width: 100%;
    border-collapse: collapse;
}
.lm-sv-table tr {
    border-bottom: 1px solid #e8e8e8;
}
.lm-sv-table td {
    padding: 5px 8px;
    vertical-align: middle;
}
.lm-sv-datum {
    white-space: nowrap;
    min-width: 80px;
}
.lm-sv-datum-val {
    font-weight: 600;
}
.lm-sv-uhrzeit {
    display: inline;
    font-size: .85em;
    color: #666;
    margin-left: 4px;
}
.lm-sv-liga {
    color: #555;
    font-size: .9em;
    min-width: 90px;
}
.lm-sv-teams {
    font-weight: 500;
}
.lm-sv-vs {
    color: #999;
    margin: 0 6px;
    font-weight: 400;
}
.lm-sv-link a {
    font-size: .85em;
    text-decoration: none;
    color: #0073aa;
    white-space: nowrap;
}
.lm-sv-link a:hover { text-decoration: underline; }

/* ============================================================
   Letzte Ergebnisse
   ============================================================ */
.lm-le-table {
    width: 100%;
    border-collapse: collapse;
}
.lm-le-table tr {
    border-bottom: 1px solid #e8e8e8;
}
.lm-le-table td {
    padding: 5px 8px;
    vertical-align: middle;
}
.lm-le-datum {
    white-space: nowrap;
    font-size: .9em;
    color: #555;
    min-width: 80px;
}
.lm-le-liga {
    font-size: .85em;
    color: #666;
    min-width: 80px;
}
.lm-le-heim,
.lm-le-gast {
    font-weight: 500;
}
.lm-le-ergebnis {
    text-align: center;
    font-weight: 700;
    white-space: nowrap;
    min-width: 60px;
}
.lm-le-kugeln {
    font-size: .8em;
    color: #888;
    margin-left: 4px;
    font-weight: 400;
}
.lm-le-link a {
    font-size: .85em;
    text-decoration: none;
    color: #0073aa;
    white-space: nowrap;
}
.lm-le-link a:hover { text-decoration: underline; }

/* Sieg / Niederlage */
.lm-erg-win  { color: #1a7a1a; font-weight: 700; }
.lm-erg-lose { color: #b00020; }

/* ============================================================
   Gesamtspielplan
   ============================================================ */
/* Druckbutton Gesamtspielplan – einheitlicher Stil */
.lm-gsp-print.button,
.lm-gsp-print {
    background: #f0f2f5 !important;
    border: 1px solid #bbb !important;
    border-radius: 4px !important;
    color: #333 !important;
    padding: 5px 14px !important;
    font-size: 0.88em;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: none !important;
    text-shadow: none !important;
}
.lm-gsp-print:hover {
    background: #e0e5ee !important;
    border-color: #999 !important;
    color: #000 !important;
}

.lm-gsp-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    margin-bottom: 12px;
    padding: 10px 12px;
    background: #f8f8f8;
    border: 1px solid #ddd;
    border-radius: 4px;
}
.lm-gsp-filter-bar select,
.lm-gsp-filter-bar input[type="text"],
.lm-gsp-filter-bar input[type="date"] {
    font-size: 13px;
    padding: 4px 8px;
    border: 1px solid #ccc;
    border-radius: 3px;
    height: 30px;
    box-sizing: border-box;
}
.lm-gsp-filter-bar select              { min-width: 120px; }
.lm-gsp-filter-bar input[type="text"]  { width: 120px; }
.lm-gsp-filter-bar input[type="date"]  { width: 128px; }

/* ── Gesamtspielplan Container ────────────────────────────────────────── */
/* width:100% + box-sizing überschreibt Theme-Container-Einschränkungen    */
.lm-gesamtspielplan {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* ── Tabelle: volle Breite (Punkt 7) ─────────────────────────────────── */
.lm-gsp-table-wrap {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    overflow-x: auto;          /* Scrollbalken nur wenn nötig (schmale Screens) */
}
.lm-gsp-table {
    width: 100% !important;
    min-width: 780px;          /* verhindert zu starkes Zusammenschrumpfen */
    border-collapse: collapse;
    font-size: 12px;
    table-layout: fixed;
}

/* Spaltenbreiten – aufsummiert ~100% bei table-layout:fixed */
.lm-gsp-col-datum    { width: 7% !important; }
.lm-gsp-col-zeit     { width: 5% !important; white-space: nowrap; }
.lm-gsp-col-liga     { width: 9% !important; }
.lm-gsp-col-spieltag { width: 5% !important; }
.lm-gsp-col-id       { width: 3% !important; text-align: center; color: #888; font-size: 0.85em; }
.lm-gsp-col-link     { width: 2.5% !important; text-align: center; }
.lm-gsp-col-heim     { width: 15% !important; }
.lm-gsp-col-gast     { width: 15% !important; }
.lm-gsp-col-pk       { width: 3% !important; text-align: right; }
.lm-gsp-col-ort      { width: 11% !important; }
.lm-gsp-col-status   { width: 6% !important; }
/* Summe: 7+5+9+5+3+2.5+15+15+3*4+11+6 = 90.5% → ~9.5% Restpuffer für Borders */

.lm-gsp-table th,
.lm-gsp-table td {
    padding: 4px 5px;
    border: 1px solid #e0e0e0;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Punkte/Kugeln rechtsbündig */
.lm-gsp-ph, .lm-gsp-pg,
.lm-gsp-kh, .lm-gsp-kg { text-align: right; }

/* Bericht-Icon-Zelle zentriert */
.lm-gsp-link { text-align: center; }

.lm-gsp-table thead th {
    background: #f0f0f0;
    font-weight: 600;
    position: sticky;
    top: 0;
    z-index: 1;
}
.lm-gsp-sort {
    cursor: pointer;
    user-select: none;
}
.lm-gsp-sort:hover { background: #e4e4e4; }
.lm-sort-icon { font-size: .75em; color: #888; }
.lm-gsp-table .lm-sort-asc  .lm-sort-icon { color: #333; }
.lm-gsp-table .lm-sort-desc .lm-sort-icon { color: #333; }

.lm-gsp-row:nth-child(even) { background: #fafafa; }
.lm-gsp-row:hover            { background: #eef5fb; }

/* Bericht-Icon-Link */
.lm-gsp-bericht-link {
    font-size: 1em;
    text-decoration: none;
    opacity: .7;
    display: inline-block;
    line-height: 1;
}
.lm-gsp-bericht-link:hover { opacity: 1; }

.lm-gsp-empty {
    text-align: center;
    color: #888;
    font-style: italic;
    padding: 16px !important;
}

/* Pagination */
.lm-gsp-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 10px;
}
.lm-gsp-page {
    min-width: 32px;
    text-align: center;
    padding: 4px 8px !important;
    font-size: 13px !important;
    cursor: pointer;
}
.lm-gsp-page-active {
    background: #0073aa !important;
    color: #fff !important;
    border-color: #0073aa !important;
}
.lm-gsp-ellipsis {
    line-height: 30px;
    padding: 0 4px;
    color: #888;
}
.lm-gsp-info {
    margin-top: 6px;
    font-size: .85em;
    color: #666;
}

/* ============================================================
   Gesamtspielplan – Druck (Punkt 8)
   Nur diese Tabelle drucken, volle Seitebreite, kein Scroll
   ============================================================ */
@media print {
    /* Standard-Print (ohne Druck-Button-Klick): Filter+Paginierung ausblenden */
    .lm-gsp-filter-bar,
    .lm-gsp-pagination,
    .lm-gsp-info {
        display: none !important;
    }
    .lm-gsp-table-wrap { overflow: visible !important; }
    .lm-gsp-table      { font-size: 9pt; width: 100% !important; }
    .lm-gsp-table th,
    .lm-gsp-table td   { padding: 2px 4px; white-space: normal; }

    /* Druck über Button: alles außer dieser Tabelle ausblenden */
    body.lm-gsp-print-active * {
        visibility: hidden;
    }
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing,
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing * {
        visibility: visible;
    }
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing {
        position: fixed;
        top: 0; left: 0;
        width: 100%;
        overflow: visible;
    }
    /* Im Button-Druck: Tabelle volle Seitebreite, alle Spalten sichtbar */
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing .lm-gsp-table-wrap {
        overflow: visible !important;
        width: 100% !important;
    }
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing .lm-gsp-table {
        width: 100% !important;
        min-width: 0 !important;
        font-size: 8pt !important;
        table-layout: fixed !important;
    }
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing .lm-gsp-table th,
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing .lm-gsp-table td {
        padding: 2px 3px !important;
        white-space: normal !important;
        word-break: break-word !important;
    }
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing .lm-gsp-filter-bar,
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing .lm-gsp-pagination,
    body.lm-gsp-print-active .lm-gesamtspielplan.lm-gsp-printing .lm-gsp-info {
        display: none !important;
        visibility: hidden !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════
   LIGA-KACHELN  [lm_liga_kacheln]
   ═══════════════════════════════════════════════════════════════════════ */
.lm-liga-kacheln {
    margin: 20px 0;
    font-size: 14px;
}

/* Grid – Spaltenanzahl per Modifier-Klasse */
.lm-lk-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, 1fr);   /* default: 3 */
}
.lm-lk-cols-1 .lm-lk-grid { grid-template-columns: 1fr; }
.lm-lk-cols-2 .lm-lk-grid { grid-template-columns: repeat(2, 1fr); }
.lm-lk-cols-3 .lm-lk-grid { grid-template-columns: repeat(3, 1fr); }
.lm-lk-cols-4 .lm-lk-grid { grid-template-columns: repeat(4, 1fr); }

/* Admin-Hinweis (nur sichtbar für eingeloggte Admins) */
.lm-lk-hinweis-admin {
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 4px;
    padding: 8px 12px;
    margin-bottom: 14px;
    font-size: 0.88em;
    color: #856404;
}

/* ── Kachel ─────────────────────────────────────────────────────────── */
.lm-lk-kachel {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 2px solid #b8cfe8;
    border-top: 5px solid #1b4f80;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(0,0,0,.22), 0 1px 4px rgba(0,0,0,.10);
    transition: box-shadow .18s, transform .18s;
    text-decoration: none;
    color: inherit;
}
.lm-lk-kachel-link:hover {
    box-shadow: 0 8px 28px rgba(27,79,128,.38), 0 2px 8px rgba(0,0,0,.15);
    transform: translateY(-3px);
    border-top-color: #0d3560;
    border-color: #7aaad4;
}

/* ── Kopf ───────────────────────────────────────────────────────────── */
.lm-lk-kopf {
    padding: 10px 13px 8px;
    border-bottom: 1px solid #dce8f4;
}
.lm-lk-name {
    display: block;
    font-size: 1.08em;
    font-weight: 800;
    color: #0d3560;
    line-height: 1.2;
    letter-spacing: -.01em;
}

/* ── Stats ──────────────────────────────────────────────────────────── */
.lm-lk-stats {
    display: flex;
    gap: 0;
    padding: 8px 13px 5px;
    flex: 1 0 auto;
}
.lm-lk-stat {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.lm-lk-stat + .lm-lk-stat {
    border-left: 1px solid #dce8f4;
    padding-left: 12px;
}
.lm-lk-zahl {
    font-size: 1.45em;
    font-weight: 800;
    color: #1b4f80;
    line-height: 1;
}
.lm-lk-zahl small {
    font-size: .52em;
    font-weight: 500;
    color: #6a90b5;
}
.lm-lk-beschr {
    font-size: 0.74em;
    font-weight: 600;
    color: #6a90b5;
    text-transform: uppercase;
    letter-spacing: .3px;
    margin-top: 1px;
}

/* ── Fortschrittsbalken ─────────────────────────────────────────────── */
.lm-lk-progress-wrap {
    height: 6px;
    background: #dce8f4;
    margin: 5px 13px 0;
    border-radius: 3px;
    overflow: hidden;
}
.lm-lk-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, #1b4f80, #3a80c0);
    border-radius: 3px;
    transition: width .4s ease;
    min-width: 0;
}

/* ── Footer ─────────────────────────────────────────────────────────── */
.lm-lk-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 13px 9px;
    margin-top: 4px;
}
.lm-lk-status {
    font-size: 0.74em;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
}
.lm-lk-status-laufend { background: #d4edda; color: #155724; }
.lm-lk-status-fertig  { background: #cce5ff; color: #004085; }
.lm-lk-status-start   { background: #fff3cd; color: #856404; }
.lm-lk-status-leer    { background: #efefef; color: #777; }
.lm-lk-pfeil {
    font-size: 0.8em;
    font-weight: 700;
    color: #1b4f80;
    white-space: nowrap;
    opacity: .85;
}
.lm-lk-kachel-link:hover .lm-lk-pfeil { opacity: 1; }

/* ── Responsiv ──────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .lm-lk-cols-4 .lm-lk-grid,
    .lm-lk-cols-3 .lm-lk-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .lm-lk-grid,
    .lm-lk-cols-2 .lm-lk-grid,
    .lm-lk-cols-3 .lm-lk-grid,
    .lm-lk-cols-4 .lm-lk-grid { grid-template-columns: 1fr; }
}

/* ── Print ──────────────────────────────────────────────────────────── */
@media print {
    .lm-lk-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; }
    .lm-lk-kachel { box-shadow: none; border: 1px solid #ccc; break-inside: avoid; }
    .lm-lk-kachel-link:hover { transform: none; }
}

/* ═══════════════════════════════════════════════════════════════════════
   KADERLISTE  [lm_kaderliste]
   ═══════════════════════════════════════════════════════════════════════ */
.lm-kl-table-wrap {
    display: block;
    width: 100% !important;
    max-width: 100%;
    overflow-x: auto;
}
.lm-kl-table {
    width: 100% !important;
    min-width: 540px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 13px;
}
.lm-kl-table th,
.lm-kl-table td {
    padding: 4px 6px;
    border: 1px solid #e0e0e0;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.lm-kl-table thead th {
    background: #f0f0f0;
    font-weight: 600;
    position: sticky;
    top: 0;
    z-index: 1;
}
.lm-kl-sort { cursor: pointer; user-select: none; }
.lm-kl-sort:hover { background: #e4e4e4; }

/* Spaltenbreiten Kaderliste */
.lm-kl-col-liga    { width: 14%; }
.lm-kl-col-logo    { width: 52px; text-align: center; }
.lm-kl-col-mann    { width: 20%; }
.lm-kl-col-spieler { width: auto; min-width: 160px; }
.lm-kl-col-mf      { width: 46px; text-align: center; }
.lm-kl-col-eins    { width: 44px; text-align: right; }

.lm-kl-row:nth-child(even) { background: #fafafa; }
.lm-kl-row:hover            { background: #eef5fb; }
.lm-kl-row-mf td            { font-weight: 500; }

/* Logo */
.lm-kl-logo-td  { text-align: center; padding: 2px 4px; }
.lm-kl-logo     { width: 36px; height: 36px; object-fit: contain; display: block; margin: 0 auto; }
.lm-kl-logo-empty { color: #ccc; font-size: 0.85em; }

/* MF-Spalte */
.lm-kl-mf      { text-align: center; }
.lm-kl-mf-icon { color: #1a7a3c; font-weight: 700; font-size: 1em; }
.lm-kl-mf-nein { color: #ccc; }

/* Einsätze rechtsbündig */
.lm-kl-eins { text-align: right; color: #333; font-weight: 500; }

/* Print Kaderliste */
@media print {
    .lm-kaderliste .lm-gsp-filter-bar,
    .lm-kaderliste .lm-gsp-pagination,
    .lm-kaderliste .lm-gsp-info { display: none !important; }
    .lm-kl-table-wrap { overflow: visible !important; }
    .lm-kl-table { font-size: 9pt; }
    body.lm-kl-print-active * { visibility: hidden; }
    body.lm-kl-print-active .lm-kaderliste.lm-kl-printing,
    body.lm-kl-print-active .lm-kaderliste.lm-kl-printing * { visibility: visible; }
    body.lm-kl-print-active .lm-kaderliste.lm-kl-printing {
        position: fixed; top: 0; left: 0; width: 100%;
    }
    body.lm-kl-print-active .lm-kaderliste.lm-kl-printing .lm-kl-table-wrap { overflow: visible !important; }
    body.lm-kl-print-active .lm-kaderliste.lm-kl-printing .lm-kl-table { min-width: 0 !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   LIGA-ADRESSEN  [lm_liga_adressen]
   ═══════════════════════════════════════════════════════════════════════ */
.lm-la-table-wrap {
    display: block;
    width: 100% !important;
    max-width: 100%;
    overflow-x: auto;
}
.lm-la-table {
    width: 100% !important;
    min-width: 640px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 13px;
}
.lm-la-table th,
.lm-la-table td {
    padding: 5px 6px;
    border: 1px solid #e0e0e0;
    vertical-align: top;
    overflow: hidden;
    text-overflow: ellipsis;
}
.lm-la-table thead th {
    background: #f0f0f0;
    font-weight: 600;
    position: sticky;
    top: 0;
    z-index: 1;
    white-space: nowrap;
}
.lm-la-sort { cursor: pointer; user-select: none; }
.lm-la-sort:hover { background: #e4e4e4; }

/* Spaltenbreiten Liga-Adressen */
.lm-la-col-liga   { width: 14%; white-space: nowrap; }
.lm-la-col-logo   { width: 52px; text-align: center; }
.lm-la-col-mann   { width: 16%; }
.lm-la-col-mf     { width: 22%; }
.lm-la-col-ort    { width: auto; }
.lm-la-col-google { width: 32px; text-align: center; }

.lm-la-row:nth-child(even) { background: #fafafa; }
.lm-la-row:hover            { background: #eef5fb; }

/* Logo-Zelle (shared via class .lm-kl-logo) */
.lm-la-logo { text-align: center; padding: 2px 4px; }

/* Kontakt (Tel/Email) */
.lm-la-kontakt   { font-size: 0.82em; color: #555; line-height: 1.4; white-space: nowrap; }
.lm-la-kontakt a { color: #1a6a9a; text-decoration: none; }
.lm-la-kontakt a:hover { text-decoration: underline; }

/* Adresse */
.lm-la-adresse { font-size: 0.82em; color: #666; line-height: 1.4; }

/* Google-Link */
.lm-la-google      { text-align: center; vertical-align: middle !important; }
.lm-la-google-link { font-size: 1.1em; text-decoration: none; opacity: 0.8; }
.lm-la-google-link:hover { opacity: 1; }

/* Leer-Platzhalter */
.lm-la-leer { color: #bbb; }

/* Print Liga-Adressen */
@media print {
    .lm-liga-adressen .lm-gsp-filter-bar,
    .lm-liga-adressen .lm-gsp-pagination,
    .lm-liga-adressen .lm-gsp-info { display: none !important; }
    .lm-la-table-wrap { overflow: visible !important; }
    .lm-la-table { font-size: 9pt; }
    .lm-la-kontakt a { color: #000 !important; }
    body.lm-la-print-active * { visibility: hidden; }
    body.lm-la-print-active .lm-liga-adressen.lm-la-printing,
    body.lm-la-print-active .lm-liga-adressen.lm-la-printing * { visibility: visible; }
    body.lm-la-print-active .lm-liga-adressen.lm-la-printing {
        position: fixed; top: 0; left: 0; width: 100%;
    }
    body.lm-la-print-active .lm-liga-adressen.lm-la-printing .lm-la-table-wrap { overflow: visible !important; }
    body.lm-la-print-active .lm-liga-adressen.lm-la-printing .lm-la-table { min-width: 0 !important; }
}

/* ── Spielplan-Filterleiste ──────────────────────────────────────── */
.lm-spielplan-filterbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    padding: 8px 10px;
    margin-bottom: 10px;
    background: #f5f7fa;
    border: 1px solid #dde6f0;
    border-radius: 4px;
    font-size: 0.88em;
}
.lm-fb-label {
    font-weight: 600;
    color: #555;
    white-space: nowrap;
}
.lm-fb-select {
    padding: 3px 6px;
    border: 1px solid #bbb;
    border-radius: 3px;
    background: #fff;
    font-size: 0.9em;
    color: #333;
    cursor: pointer;
    max-width: 200px;
}
.lm-fb-reset {
    background: #f0f2f5;
    border: 1px solid #bbb;
    border-radius: 3px;
    padding: 3px 10px;
    font-size: 0.88em;
    color: #555;
    cursor: pointer;
    white-space: nowrap;
}
.lm-fb-reset:hover {
    background: #e0e5ee;
    border-color: #999;
}
.lm-fb-count {
    font-size: 0.85em;
    color: #c0392b;
    font-style: italic;
}

/* ============================================================
   MOBILE RESPONSIVENESS
   Breakpoints: 600px (tablets), 480px (small phones), 360px (min)
   ============================================================ */

/* ── 1. Liga-Tabelle (Standings): scroll container ──────────── */
.lm-tabelle-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.lm-tabelle-scroll-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
@media (max-width: 600px) {
    .lm-tabelle th,
    .lm-tabelle td {
        padding: 6px 5px;
        font-size: 12px;
    }
}

/* ── 2. Spielplan inline (via [lm_spielplan]) ────────────────── */
.lm-spielplan {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ── 3. Spielbericht-Form: stack 2-col grids on mobile ───────── */
@media (max-width: 560px) {
    .lm-spieler-select {
        grid-template-columns: 1fr;
    }
    .lm-partie-row {
        grid-template-columns: 1fr 1fr;
    }
}

/* ── 4. Spielsuche: results container scrollable ────────────── */
.lm-ss-tabelle-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.lm-ss-ergebnisse {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ── 5. Spielvorschau: scroll wrapper + compact font ─────────── */
.lm-sv-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
@media (max-width: 600px) {
    .lm-sv-table  { font-size: 12px; }
    .lm-sv-datum  { min-width: 64px; }
    .lm-sv-liga   { font-size: 0.8em; }
}

/* ── 6. Letzte Ergebnisse: scroll wrapper + compact font ──────── */
.lm-le-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
@media (max-width: 600px) {
    .lm-le-table { font-size: 12px; }
}

/* ── 7. Gesamtspielplan Filter: stack on mobile ───────────────── */
@media (max-width: 560px) {
    .lm-gsp-filter-bar {
        flex-direction: column;
        align-items: stretch;
    }
    .lm-gsp-filter-bar select,
    .lm-gsp-filter-bar input[type="text"],
    .lm-gsp-filter-bar input[type="date"] {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }
}

/* ── 8. Spielplan-Filterbar (Liga-Ansicht): stack on mobile ───── */
@media (max-width: 560px) {
    .lm-spielplan-filterbar {
        flex-direction: column;
        align-items: stretch;
    }
    .lm-fb-select {
        max-width: 100% !important;
        width: 100%;
        box-sizing: border-box;
    }
    .lm-fb-reset {
        width: 100%;
        text-align: center;
    }
}

/* ── 9. KO-Baum: touch-friendly horizontal scroll ────────────── */
.lm-ko-bracket {
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
}
@media (max-width: 480px) {
    .lm-ko-col     { min-width: 120px; }
    .lm-ko-bracket {
        --lm-ko-cell-h: 70px;
        --lm-ko-conn-w: 12px;
    }
}

/* ── 10. Termin vereinbaren: spiel-info stacks on mobile ─────── */
@media (max-width: 560px) {
    .lm-tv-spiel-paarung {
        flex-direction: column;
        gap: 4px;
        font-size: 1em;
    }
    .lm-tv-spiel-meta {
        flex-direction: column;
        gap: 4px;
    }
}

/* ── 11. Touch-friendly minimum tap targets ──────────────────── */
@media (max-width: 600px) {
    .lm-ss-reset,
    .lm-fb-reset,
    .lm-gsp-page {
        min-height: 40px;
        padding-top: 8px;
        padding-bottom: 8px;
    }
}

/* ── Entity-Links in Tabellen ──────────────────────────────────── */
.lm-gsp-entity-link,
.lm-ev-entity-link,
.lm-kl-entity-link,
.lm-la-entity-link {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted currentColor;
}
.lm-gsp-entity-link:hover,
.lm-ev-entity-link:hover,
.lm-kl-entity-link:hover,
.lm-la-entity-link:hover {
    color: #1a6a9a;
    border-bottom-color: #1a6a9a;
    border-bottom-style: solid;
}

/* ===== STATISTIK ===== */
.lm-statistik { max-width:1200px; margin:0 auto; font-size:13px; }
.lm-stat-kopf { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.lm-stat-kopf h3 { margin:0; flex:1; }
/* Filterbar */
.lm-stat-filterbar { display:flex; flex-direction:column; gap:10px; margin-bottom:10px; padding:10px 12px; background:#f6f7f7; border:1px solid #ddd; border-radius:4px; }
.lm-stat-fb-row { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-start; }
.lm-stat-filterbar select, .lm-stat-filterbar input[type="text"] { font-size:13px; padding:4px 8px; border:1px solid #8c8f94; border-radius:3px; }

/* Chip-Filter */
.lm-stat-chip-filter { display:flex; align-items:flex-start; gap:8px; flex:1; min-width:200px; }
.lm-stat-chip-label { font-size:12px; font-weight:600; color:#555; white-space:nowrap; padding-top:6px; min-width:72px; display:flex; flex-direction:column; gap:4px; }
/* OR / AND Toggle */
.lm-stat-logic-toggle { display:inline-flex; border:1px solid #c3c4c7; border-radius:3px; overflow:hidden; margin-top:2px; }
.lm-stat-lt-btn { font-size:10px; font-weight:700; padding:2px 6px; border:none; background:#f6f7f7; color:#555; cursor:pointer; line-height:1.4; letter-spacing:.03em; }
.lm-stat-lt-btn + .lm-stat-lt-btn { border-left:1px solid #c3c4c7; }
.lm-stat-lt-btn:hover { background:#e8f0fe; color:#2271b1; }
.lm-stat-lt-btn.lm-lt-active { background:#2271b1; color:#fff; }
.lm-stat-chips-inner { flex:1; min-width:0; }
.lm-stat-chips-tags { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:4px; min-height:0; }
.lm-stat-chip { display:inline-flex; align-items:center; gap:4px; background:#2271b1; color:#fff; font-size:12px; padding:2px 6px 2px 8px; border-radius:12px; }
.lm-stat-chip-x { background:none; border:none; color:#fff; cursor:pointer; font-size:14px; line-height:1; padding:0; opacity:.8; }
.lm-stat-chip-x:hover { opacity:1; }
.lm-stat-chips-ac { position:relative; }
.lm-stat-chip-inp { width:100%; box-sizing:border-box; font-size:13px; padding:4px 8px; border:1px solid #8c8f94; border-radius:3px; }
.lm-stat-chip-inp:focus { border-color:#2271b1; outline:none; }
.lm-stat-chips-dd { position:absolute; top:calc(100% + 2px); left:0; right:0; background:#fff; border:1px solid #c3c4c7; border-radius:4px; box-shadow:0 3px 10px rgba(0,0,0,.12); z-index:300; max-height:200px; overflow-y:auto; }
.lm-stat-chips-dd-item { padding:7px 12px; font-size:13px; cursor:pointer; }
.lm-stat-chips-dd-item:hover { background:#e8f0fe; }
.lm-stat-chips-dd-empty { padding:8px 12px; font-size:12px; color:#888; font-style:italic; }
.lm-stat-dd-verein { color:#888; font-size:12px; }
.lm-stat-wechsel-badge { display:inline-block; margin-left:3px; font-size:11px; color:#e67e22; vertical-align:middle; cursor:default; }

/* Aggregations-Selektor */
.lm-stat-agg-bar { display:flex; align-items:center; gap:10px; margin-bottom:8px; font-size:13px; flex-wrap:wrap; }
.lm-stat-agg-label { font-weight:600; white-space:nowrap; }
.lm-stat-dim-toggles { display:flex; flex-wrap:wrap; gap:6px; }
.lm-stat-dim-toggle { display:inline-flex; align-items:center; gap:5px; cursor:pointer; padding:4px 10px; border:1px solid #c3c4c7; border-radius:14px; font-size:12px; background:#fff; transition:background .12s, border-color .12s, color .12s; user-select:none; }
.lm-stat-dim-toggle:hover { border-color:#2271b1; color:#2271b1; }
.lm-stat-dim-toggle input[type=checkbox] { width:13px; height:13px; margin:0; accent-color:#2271b1; cursor:pointer; }
.lm-stat-dim-toggle:has(input:checked) { background:#2271b1; border-color:#2271b1; color:#fff; font-weight:600; }
.lm-stat-table-wrap { overflow-x:auto; }
.lm-stat-table { width:100%; border-collapse:collapse; font-size:13px; }
.lm-stat-table th, .lm-stat-table td { padding:6px 8px; border-bottom:1px solid #e0e0e0; white-space:nowrap; }
.lm-stat-table th { background:#f6f7f7; font-weight:600; }
.lm-stat-sort { cursor:pointer; user-select:none; }
.lm-stat-sort:hover { background:#e8f0fe; }
.lm-stat-rank { color:#888; font-size:11px; text-align:right; min-width:28px; }
.lm-stat-win-high { color:#1d8348; font-weight:700; }
.lm-stat-win-low  { color:#d63638; font-weight:700; }
.lm-stat-drill-btn { background:none; border:1px solid #c3c4c7; border-radius:3px; cursor:pointer; font-size:11px; padding:2px 6px; color:#2271b1; white-space:nowrap; }
.lm-stat-drill-btn:hover { background:#e8f0fe; }
.lm-stat-expand-all { background:none; border:1px solid #c3c4c7; border-radius:3px; cursor:pointer; font-size:11px; padding:2px 7px; color:#2271b1; white-space:nowrap; font-weight:600; }
.lm-stat-expand-all:hover { background:#e8f0fe; }
.lm-stat-drill-row td { padding:0!important; }
.lm-stat-drill-inner { padding:8px 16px 12px 32px; background:#fafafa; border-top:1px solid #e0e0e0; }
.lm-stat-drill-table { width:100%; border-collapse:collapse; font-size:12px; }
.lm-stat-drill-table th { background:#f0f0f1; padding:4px 6px; font-weight:600; border-bottom:1px solid #ddd; }
.lm-stat-drill-table td { padding:4px 6px; border-bottom:1px solid #f0f0f1; }
.lm-stat-pagination { margin-top:10px; display:flex; gap:4px; flex-wrap:wrap; }
.lm-stat-page-btn { padding:4px 10px; border:1px solid #ddd; border-radius:3px; background:#fff; cursor:pointer; font-size:13px; }
.lm-stat-page-btn.active { background:#2271b1; color:#fff; border-color:#2271b1; }
.lm-stat-info { font-size:12px; color:#888; margin-left:auto; }
.lm-stat-won  { color:#1d8348; font-weight:600; }
.lm-stat-lost { color:#d63638; font-weight:600; }
@media(max-width:640px){
  .lm-stat-filterbar { flex-direction:column; align-items:stretch; }
  .lm-stat-table th:nth-child(n+10), .lm-stat-table td:nth-child(n+10) { display:none; }
}

/* ============================================================
   Competition-Mode Styles
   ============================================================ */

/* ---- Login-Formular ---- */
.lm-cm-login {
    max-width: 420px;
    margin: 20px auto;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
    overflow: hidden;
}
.lm-cm-login__header {
    background: #2271b1;
    color: #fff;
    padding: 18px 24px;
}
.lm-cm-login__title {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
}
.lm-cm-login__subtitle {
    margin: 0;
    font-size: 13px;
    opacity: .85;
}
.lm-cm-login__body {
    padding: 20px 24px;
}
.lm-cm-login__intro {
    font-size: 13px;
    color: #555;
    margin: 0 0 16px;
}
.lm-cm-login__field {
    margin-bottom: 14px;
}
.lm-cm-login__label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #444;
    margin-bottom: 5px;
}
.lm-cm-login__select,
.lm-cm-login__pin-input {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    font-size: 15px;
}
.lm-cm-login__pin-input {
    letter-spacing: .3em;
    text-align: center;
    font-size: 22px;
    font-weight: 700;
}
.lm-cm-login__submit {
    width: 100%;
    margin-top: 4px;
}
.lm-cm-login__pin-reset {
    margin-top: 12px;
    text-align: center;
}
.lm-cm-login__reset-link {
    background: none;
    border: none;
    color: #2271b1;
    cursor: pointer;
    font-size: 12px;
    text-decoration: underline;
    padding: 0;
}
.lm-cm-login__reset-link:hover {
    color: #135e96;
}
.lm-cm-login__error {
    background: #fef0f0;
    border: 1px solid #d63638;
    color: #d63638;
    padding: 10px 12px;
    border-radius: 4px;
    font-size: 13px;
    margin-bottom: 14px;
}
.lm-cm-login__success {
    background: #f0faf0;
    border: 1px solid #1d8348;
    color: #1d8348;
    padding: 10px 12px;
    border-radius: 4px;
    font-size: 13px;
    margin-bottom: 14px;
}
.lm-cm-login__reset-form {
    margin-top: 12px;
}

/* ---- Seite-Badge ---- */
.lm-cm-seite-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #2271b1;
    color: #fff;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
}

/* ---- Statuszeile ---- */
.lm-cm-status-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 4px;
    margin-bottom: 8px;
    border: 1px solid #c3c4c7;
    background: #f9f9f9;
    font-size: 13px;
}
.lm-cm-status-bar__info {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.lm-cm-status-bar__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.lm-cm-status-bar__info-text {
    font-size: 12px;
    color: #666;
    font-style: italic;
}
.lm-cm-status-bar__label {
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
}
.lm-cm-status-bar__locked {
    font-size: 12px;
    color: #888;
    font-style: italic;
}

/* ---- Status-Farben ---- */
.lm-cm-status-offen {
    background: #f0f0f1;
    color: #555;
}
.lm-cm-status-offen.lm-cm-status-bar {
    border-color: #ddd;
    background: #f9f9f9;
}
.lm-cm-status-anfrage {
    background: #fff8e5;
    color: #8a6600;
}
.lm-cm-status-anfrage.lm-cm-status-bar {
    border-color: #f0b849;
    background: #fffbf0;
}
.lm-cm-status-gestartet {
    background: #e8f5e9;
    color: #1d6a2b;
}
.lm-cm-status-gestartet.lm-cm-status-bar {
    border-color: #4caf50;
    background: #f0faf0;
}
.lm-cm-status-beendet {
    background: #eee;
    color: #555;
}
.lm-cm-status-beendet.lm-cm-status-bar {
    border-color: #999;
    background: #f5f5f5;
}

/* ---- Buttons ---- */
.lm-cm-btn {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 4px;
    border: 1px solid transparent;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    transition: background .15s, border-color .15s;
}
.lm-cm-btn-primary {
    background: #2271b1;
    color: #fff;
    border-color: #2271b1;
}
.lm-cm-btn-primary:hover {
    background: #135e96;
    border-color: #135e96;
    color: #fff;
}
.lm-cm-btn-secondary {
    background: #f6f7f7;
    color: #2271b1;
    border-color: #c3c4c7;
}
.lm-cm-btn-secondary:hover {
    background: #e8f0fe;
    border-color: #2271b1;
}
.lm-cm-btn-start {
    background: #1d8348;
    color: #fff;
    border-color: #1d8348;
}
.lm-cm-btn-start:hover {
    background: #155d34;
    border-color: #155d34;
    color: #fff;
}
.lm-cm-btn-abschluss {
    background: #7b1fa2;
    color: #fff;
    border-color: #7b1fa2;
}
.lm-cm-btn-abschluss:hover {
    background: #5b1079;
    border-color: #5b1079;
    color: #fff;
}
.lm-cm-btn-ruecknahme {
    background: #f6f7f7;
    color: #d63638;
    border-color: #d63638;
}
.lm-cm-btn-ruecknahme:hover {
    background: #fef0f0;
}
.lm-cm-btn-refresh {
    background: #f6f7f7;
    color: #555;
    border-color: #c3c4c7;
    padding: 4px 8px;
    font-size: 15px;
    line-height: 1;
    min-width: 0;
}
.lm-cm-btn-refresh:hover {
    background: #e8f0fe;
    color: #2271b1;
    border-color: #2271b1;
}
.lm-cm-btn-runde-label {
    font-weight: 400;
    opacity: .85;
    font-size: .92em;
}

/* ---- Gesperrte Bereiche ---- */
.lm-cm-locked {
    position: relative;
}
.lm-cm-locked::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,.35);
    pointer-events: none;
}

/* ---- Dialog-Verlassen-Bereich ---- */
.lm-cm-dialog-verlassen {
    padding: 10px 14px;
    border: 1px dashed #c3c4c7;
    border-radius: 4px;
    background: #f9f9f9;
}

@media(max-width: 480px) {
    .lm-cm-login {
        margin: 10px;
    }
    .lm-cm-status-bar {
        flex-direction: column;
        align-items: flex-start;
    }
}
