/* KickOff Liga – Frontend Styles v1.0.0 */
:root {
    --ko-pink:    #e91e8c;
    --ko-dark:    #0f172a;
    --ko-gray:    #6b7280;
    --ko-border:  #e5e7eb;
    --ko-bg:      #f9fafb;
}

/* ---- Shared ---- */
.ko-liga-header { display:flex; align-items:center; gap:12px; margin-bottom:20px; flex-wrap:wrap; }
.ko-liga-name { font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:900; text-transform:uppercase; color:var(--ko-dark); letter-spacing:.03em; }
.ko-saison { background:var(--ko-pink); color:#fff; font-size:11px; font-weight:700; padding:3px 10px; border-radius:20px; }
.ko-verein-logo { height:28px; width:auto; object-fit:contain; flex-shrink:0; }
.ko-verein-logo-sm { height:20px; width:auto; object-fit:contain; flex-shrink:0; }
.ko-empty { color:var(--ko-gray); font-style:italic; margin:12px 0; }
.ko-error { color:#dc2626; font-style:italic; }

/* ============================================================
   SPIELPLAN
   ============================================================ */
.ko-spielplan { font-family:inherit; }
.ko-spieltag-gruppe { margin-bottom:32px; }
.ko-spieltag-label {
    font-family:'Barlow Condensed',sans-serif;
    font-size:17px; font-weight:800; text-transform:uppercase;
    color:var(--ko-dark); letter-spacing:.05em;
    border-left:4px solid var(--ko-pink); padding:3px 12px; margin-bottom:10px;
}
.ko-spiel-liste { display:flex; flex-direction:column; }
.ko-spiel {
    background:#fff; border:1px solid var(--ko-border);
    border-top:none; padding:14px 20px;
}
.ko-spiel:first-child { border-top:1px solid var(--ko-border); border-radius:8px 8px 0 0; }
.ko-spiel:last-child  { border-radius:0 0 8px 8px; }
.ko-spiel:only-child  { border-radius:8px; border-top:1px solid var(--ko-border); }
.ko-spiel-datum { font-size:12px; color:var(--ko-gray); margin-bottom:8px; }
.ko-spiel-paarung { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; }
.ko-spiel-team { display:flex; align-items:center; gap:8px; }
.ko-spiel-heim { justify-content:flex-end; text-align:right; flex-direction:row; }
.ko-spiel-gast { justify-content:flex-start; text-align:left; }
.ko-team-name { font-weight:600; color:var(--ko-dark); font-size:15px; }
.ko-spiel-ergebnis { text-align:center; }
.ko-score { font-size:24px; font-weight:900; color:var(--ko-dark); font-family:'Barlow Condensed',sans-serif; white-space:nowrap; line-height:1; }
.ko-score-sep { color:var(--ko-gray); margin:0 1px; }
.ko-score-pending { font-size:15px; font-weight:600; color:var(--ko-gray); }
.ko-abgesagt { color:#dc2626; }
.ko-spiel-ort { font-size:11px; color:var(--ko-gray); margin-top:6px; text-align:center; }
.ko-spiel--abgesagt .ko-team-name { text-decoration:line-through; opacity:.6; }
.ko-spiel--gespielt { background:#fafafa; }

/* ============================================================
   TABELLE
   ============================================================ */
.ko-tabelle-wrap { }
.ko-tabelle-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ko-tabelle { width:100%; border-collapse:collapse; font-size:14px; }
.ko-tabelle thead tr { background:var(--ko-dark); }
.ko-tabelle thead th { padding:10px 12px; color:#fff; font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; text-align:center; }
.ko-tabelle thead th.ko-col-team { text-align:left; }
.ko-tabelle tbody tr { border-bottom:1px solid var(--ko-border); }
.ko-tabelle tbody tr:hover { background:var(--ko-bg); }
.ko-tabelle tbody td, .ko-tabelle tbody th { padding:10px 12px; text-align:center; }
.ko-tabelle tbody th { font-weight:400; }
.ko-tabelle tbody td.ko-col-rank { color:var(--ko-gray); font-weight:700; }
.ko-tabelle tbody .ko-col-team { text-align:left; display:flex !important; align-items:center; gap:8px; min-width:160px; }
.ko-col-pkt { font-size:15px; }
.ko-positive { color:#059669; font-weight:700; }
.ko-negative { color:#dc2626; font-weight:700; }
.ko-aufstieg td:first-child { border-left:3px solid #059669; }
.ko-abstieg  td:first-child { border-left:3px solid #dc2626; }
.ko-aufstieg { background:#f0fdf4 !important; }
.ko-abstieg  { background:#fef2f2 !important; }

/* ============================================================
   KADER
   ============================================================ */
.ko-kader-wrap { display:flex; flex-direction:column; gap:48px; }
.ko-team-kader { }
.ko-team-header { display:flex; align-items:center; gap:16px; margin-bottom:20px; padding-bottom:14px; border-bottom:2px solid var(--ko-border); }
.ko-team-logo { height:52px; width:auto; object-fit:contain; flex-shrink:0; }
.ko-team-name-heading { font-family:'Barlow Condensed',sans-serif; font-size:28px; font-weight:900; text-transform:uppercase; color:var(--ko-dark); margin:0; }
.ko-pos-gruppe { margin-bottom:24px; }
.ko-pos-label { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--ko-pink); margin-bottom:10px; padding-left:2px; }
.ko-spielerinnen-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; }
.ko-spielerin-card { background:#fff; border:1px solid var(--ko-border); border-radius:10px; overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .15s; }
.ko-spielerin-card:hover { box-shadow:0 2px 10px rgba(0,0,0,0.08); }
.ko-spielerin-foto { aspect-ratio:1; background:var(--ko-bg); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ko-spielerin-foto img { width:100%; height:100%; object-fit:cover; }
.ko-spielerin-placeholder { font-size:36px; font-weight:900; color:var(--ko-border); font-family:'Barlow Condensed',sans-serif; }
.ko-spielerin-info { padding:10px 12px; display:flex; flex-direction:column; gap:2px; }
.ko-spielerin-nr { font-size:10px; font-weight:700; color:var(--ko-gray); }
.ko-spielerin-name { font-size:14px; font-weight:700; color:var(--ko-dark); line-height:1.2; }
.ko-spielerin-pos { font-size:11px; color:var(--ko-pink); font-weight:700; }
.ko-spielerin-geburt { font-size:11px; color:var(--ko-gray); }

/* ============================================================
   NAECHSTE SPIELE
   ============================================================ */
.ko-naechstes-spiel { background:#fff; border:1px solid var(--ko-border); border-radius:10px; padding:14px 18px; }
.ko-spiel-datum-badge { font-size:12px; font-weight:700; color:var(--ko-pink); margin-bottom:8px; }
.ko-naechstes-paarung { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.ko-naechstes-paarung .ko-spiel-team { gap:7px; }
.ko-vs { font-weight:900; color:var(--ko-gray); font-size:13px; flex-shrink:0; }
.ko-naechstes-spiel .ko-spiel-ort { margin-top:6px; }


.ko-team-verein { font-size:13px; color:var(--ko-gray); margin-top:2px; }
/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:640px) {
    /* Kompakte Zwei-Zeilen-Partie: beide Teams links, Ergebnis rechts */
    .ko-spiel { padding:11px 14px; }
    .ko-spiel-datum { font-size:12px; margin-bottom:8px; }
    .ko-spiel-paarung {
        grid-template-columns:1fr auto;
        grid-template-areas:"heim score" "gast score";
        column-gap:12px; row-gap:7px; align-items:center;
    }
    .ko-spiel-heim { grid-area:heim; flex-direction:row;         justify-content:flex-start; text-align:left; gap:9px; }
    .ko-spiel-gast { grid-area:gast; flex-direction:row-reverse; justify-content:flex-end;   text-align:left; gap:9px; }
    .ko-spiel-ergebnis { grid-area:score; text-align:right; align-self:center; }
    .ko-spiel-heim .ko-verein-logo, .ko-spiel-gast .ko-verein-logo { height:24px !important; width:24px !important; object-fit:contain; }
    .ko-score { font-size:18px; }
    .ko-team-name { font-size:14.5px; line-height:1.2; }
    .ko-spiel-ort {
        position:relative;
        text-align:left; margin-top:9px; padding-top:8px;
        border-top:1px solid var(--ko-border);
        white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    }
    .ko-spiel-ort::before { content:"\1F4CD\00A0"; }
    .ko-spiel-ort--truncatable { cursor:pointer; padding-right:18px; }
    .ko-spiel-ort--truncatable::after {
        content:"\25BE"; position:absolute; right:2px; top:8px;
        color:var(--ko-gray); transition:transform .2s;
    }
    .ko-spiel-ort--open { white-space:normal; overflow:visible; text-overflow:clip; }
    .ko-spiel-ort--open.ko-spiel-ort--truncatable::after { transform:rotate(180deg); }
    .ko-tabelle { font-size:12px; }
    .ko-tabelle thead th, .ko-tabelle tbody td, .ko-tabelle tbody th { padding:8px 6px; }
    .ko-spielerinnen-grid { grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:8px; }
    .ko-liga-name { font-size:18px; }
    .ko-team-name-heading { font-size:22px; }
}

/* ============================================================
   SAISON-NAV
   ============================================================ */
.ko-saison-nav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 24px;
    font-size: 13px;
}
.ko-saison-nav-label {
    color: var(--ko-muted, #64748b);
    font-weight: 600;
    margin-right: 4px;
}
.ko-saison-nav-item {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    border: 1.5px solid #e2e8f0;
    color: #475569;
    text-decoration: none;
    font-weight: 500;
    transition: border-color .15s, color .15s, background .15s;
}
.ko-saison-nav-item:hover {
    border-color: var(--ko-pink, #e91e8c);
    color: var(--ko-pink, #e91e8c);
}
.ko-saison-nav-item--aktiv {
    background: var(--ko-pink, #e91e8c);
    border-color: var(--ko-pink, #e91e8c);
    color: #fff !important;
    font-weight: 700;
}

/* ============================================================
   LIGEN-LISTE
   ============================================================ */
.ko-ligen-liste {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 16px;
    margin: 16px 0;
}
.ko-liga-card {
    background: #fff;
    border: 1.5px solid #e2e8f0;
    border-radius: 12px;
    padding: 18px 20px;
    transition: border-color .15s, box-shadow .15s;
}
.ko-liga-card:hover {
    border-color: var(--ko-pink, #e91e8c);
    box-shadow: 0 4px 16px rgba(233,30,140,.08);
}
.ko-liga-card--aktiv {
    border-color: var(--ko-pink, #e91e8c);
}
.ko-liga-card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}
.ko-liga-card-name {
    font-weight: 700;
    color: #0f172a;
    font-size: 15px;
}
.ko-liga-badge-aktiv {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    background: var(--ko-pink, #e91e8c);
    color: #fff;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
}
.ko-liga-card-saison {
    font-size: 13px;
    color: #64748b;
    margin-bottom: 10px;
}
.ko-liga-card-stats {
    display: flex;
    gap: 6px;
    font-size: 12px;
    color: #94a3b8;
}

/* ============================================================
   NAECHSTE SPIELE — vertical list (homepage sidebar)
   ============================================================ */
.ko-naechste-spiele {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Compact row mode (pro_liga="1") */
.ko-naechste-spiele--kompakt {
    gap: 0;
}
.ko-spiel-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 13px;
    line-height: 1.2;
}
.ko-spiel-row:last-child { border-bottom: none; }
.ko-spiel-row-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
.ko-spiel-row-badge {
    display: inline-block;
    flex-shrink: 0;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 4px;
    white-space: nowrap;
    text-decoration: none;
    cursor: default;
}
.ko-spiel-row-badge--liga {
    background: #0f172a;
    color: #fff;
}
.ko-spiel-row-badge--pokal {
    background: #92400e;
    color: #fef3c7;
}
a.ko-spiel-row-badge { cursor: pointer; }
a.ko-spiel-row-badge--liga:hover  { background: #1e293b; }
a.ko-spiel-row-badge--pokal:hover { background: #78350f; }
/* legacy alias */
.ko-spiel-row-liga { background:#0f172a; color:#fff; font-size:10px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; padding:2px 7px; border-radius:4px; white-space:nowrap; }
.ko-spiel-row-datum {
    flex-shrink: 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}
.ko-spiel-row-time {
    color: #94a3b8;
    font-weight: 400;
}
.ko-spiel-row-teams {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
    overflow: hidden;
}
.ko-spiel-row-heim,
.ko-spiel-row-gast {
    color: #0f172a;
    font-weight: 600;
}
.ko-spiel-row-vs {
    color: #94a3b8;
    font-weight: 700;
    flex-shrink: 0;
}
.ko-row-logo {
    height: 18px;
    width: 18px;
    object-fit: contain;
    flex-shrink: 0;
}
/* Wrapper sind am Desktop unsichtbar -> Layout bleibt unverändert */
.ko-srt-side { display: contents; }
@media (max-width: 640px) {
    /* Gestapelte Karte: Badge/Datum oben, Teams darunter */
    .ko-spiel-row { flex-direction: column; align-items: stretch; gap: 9px; padding: 13px 0; }
    .ko-spiel-row-meta { justify-content: space-between; width: 100%; }
    .ko-spiel-row-teams { flex-direction: column; align-items: flex-start; gap: 6px; overflow: visible; }
    .ko-srt-side { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; }
    .ko-srt-gast { flex-direction: row-reverse; }
    .ko-spiel-row-vs { display: none; }
    .ko-spiel-row-heim, .ko-spiel-row-gast { max-width: none; white-space: normal; font-size: 15px; }
    .ko-spiel-row .ko-row-logo { height: 26px !important; width: 26px !important; }
}
.ko-naechstes-spiel {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-radius: 12px;
    padding: 16px 18px;
    border: 1.5px solid #e2e8f0;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.ko-naechstes-spiel:hover {
    border-color: var(--ko-pink, #e91e8c);
    box-shadow: 0 4px 16px rgba(233,30,140,.08);
}
/* Dark background override (homepage section) */
.naechste-spiele-section .ko-naechstes-spiel {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.1);
}
.naechste-spiele-section .ko-naechstes-spiel:hover {
    border-color: rgba(233,30,140,.5);
    background: rgba(255,255,255,.1);
    box-shadow: none;
}
.ko-naechstes-spiel-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.ko-spiel-datum-badge {
    font-size: 12px;
    font-weight: 700;
    color: var(--ko-pink, #e91e8c);
}
.ko-spiel-liga-badge {
    font-size: 11px;
    font-weight: 700;
    background: #f1f5f9;
    color: #475569;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.naechste-spiele-section .ko-spiel-liga-badge {
    background: rgba(255,255,255,.1);
    color: #94a3b8;
}
.ko-naechstes-paarung {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.ko-naechstes-paarung .ko-spiel-team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    flex: 1;
    text-align: center;
}
.ko-naechstes-paarung .ko-spiel-team span {
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}
.naechste-spiele-section .ko-naechstes-paarung .ko-spiel-team span {
    color: #f1f5f9;
}
.ko-naechstes-paarung .ko-verein-logo {
    width: 34px;
    height: 34px;
    object-fit: contain;
}
.ko-vs {
    font-size: 11px;
    font-weight: 800;
    color: #94a3b8;
    letter-spacing: 1px;
    flex-shrink: 0;
}
.ko-naechstes-spiel .ko-spiel-ort {
    font-size: 11px;
    color: #94a3b8;
    border-top: 1px solid #f1f5f9;
    padding-top: 8px;
}
.naechste-spiele-section .ko-naechstes-spiel .ko-spiel-ort {
    border-top-color: rgba(255,255,255,.06);
}

/* ============================================================
   SPIELTAG-NAVIGATION (Pill-Nav + Pfeile)
   ============================================================ */
/* Spielplan-Header: Karussell + Statistiken nebeneinander */
.ko-spielplan-header {
    display: flex;
    align-items: stretch;
    gap: 12px;
    margin-bottom: 24px;
}
.ko-spieltag-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.ko-stg-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    border: 2px solid #e2e8f0;
    background: transparent;
    color: #0f172a;
    text-decoration: none;
    font-size: 20px;
    font-weight: 700;
    flex-shrink: 0;
    cursor: pointer;
    transition: border-color .15s, color .15s;
    line-height: 1;
}
.ko-stg-arrow:hover { border-color: #e91e8c; color: #e91e8c; }
.ko-stg-arrow--disabled { opacity: .3; pointer-events: none; }
.ko-spieltag-pills {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    flex: 1;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-behavior: smooth;
    min-width: 0;
}
.ko-spieltag-pills::-webkit-scrollbar { display: none; }
.ko-spieltag-pill {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 0 0 calc(25% - 5px);
    min-width: 90px;
    height: 46px;
    padding: 4px 8px;
    border-radius: 8px;
    border: 2px solid #e2e8f0;
    color: #475569;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    transition: border-color .15s, color .15s, background .15s;
    white-space: nowrap;
    line-height: 1.2;
}
.ko-spieltag-pill:hover { border-color: #e91e8c; color: #e91e8c; }
.ko-spieltag-pill--aktiv {
    background: #e91e8c;
    border-color: #e91e8c;
    color: #fff !important;
}
/* Saison-Statistiken Panel */
.ko-saison-stats {
    display: flex;
    align-items: center;
    background: #f8fafc;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    flex-shrink: 0;
}
.ko-stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 8px 18px;
}
.ko-stat-val {
    font-size: 22px;
    font-weight: 800;
    color: #0f172a;
    line-height: 1;
}
.ko-stat-lbl {
    font-size: 10px;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .4px;
    margin-top: 3px;
}
.ko-stat-sep {
    width: 1px;
    height: 36px;
    background: #e2e8f0;
    flex-shrink: 0;
}
@media (max-width: 600px) {
    .ko-spielplan-header { flex-direction: column; }
    .ko-saison-stats { justify-content: center; border-radius: 10px; }
}

/* ============================================================
   POKAL
   ============================================================ */
.ko-pokal-wrap {
    max-width: none;
    width: 100%;
}
/* Multi-Pokal top-level tab container */
.ko-pokale-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 32px;
    padding-bottom: 20px;
    border-bottom: 2px solid #f1f5f9;
}
/* Season label inside top-level Pokal tab button */
.ko-tab-saison {
    margin-left: 10px;
    font-size: 12px;
    font-weight: 400;
    color: inherit;
    opacity: 0.65;
}
.ko-liga-tab--aktiv .ko-tab-saison {
    opacity: 0.8;
}
/* Pokal header: more space between title and season */
.ko-pokal-saison {
    margin-left: 16px;
}
.ko-pokal-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 2px solid #f1f5f9;
}
.ko-pokal-tabs .ko-liga-tab,
.ko-pokale-tabs .ko-liga-tab {
    display: inline-block;
    padding: 8px 18px;
    border-radius: 6px;
    border: 2px solid #e2e8f0;
    background: #fff;
    color: #475569;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    line-height: 1;
    transition: border-color .15s, color .15s, background .15s;
}
.ko-pokal-tabs .ko-liga-tab:hover,
.ko-pokale-tabs .ko-liga-tab:hover {
    border-color: #e91e8c;
    color: #e91e8c;
}
.ko-pokal-tabs .ko-liga-tab.ko-liga-tab--aktiv,
.ko-pokale-tabs .ko-liga-tab.ko-liga-tab--aktiv {
    background: #0f172a !important;
    border-color: #0f172a !important;
    color: #fff !important;
}
/* Runden-Tabs wie die Spieltag-Pills: runder, aktiv pink
   (Wettbewerb-Tabs .ko-pokale-tabs bleiben dunkel wie die Ligen) */
.ko-pokal-tabs .ko-liga-tab { border-radius: 8px; }
.ko-pokal-tabs .ko-liga-tab.ko-liga-tab--aktiv {
    background: #e91e8c !important;
    border-color: #e91e8c !important;
    color: #fff !important;
}

.ko-pokal-runde .ko-spiel-liste {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
/* In 2-col grid each card is standalone — reset connected-list border styles.
   min-width:0 lässt die Karte schrumpfen (sonst laufen lange Teamnamen raus). */
.ko-pokal-runde .ko-spiel-liste .ko-spiel,
.ko-pokal-runde .ko-spiel-liste .ko-spiel:first-child,
.ko-pokal-runde .ko-spiel-liste .ko-spiel:last-child,
.ko-pokal-runde .ko-spiel-liste .ko-spiel:only-child {
    border-top: 1px solid var(--ko-border);
    border-radius: 8px;
    min-width: 0;
}
/* Teamspalten dürfen schrumpfen, Namen umbrechen (wie im Spielplan) */
.ko-pokal-runde .ko-spiel-team { min-width: 0; }
.ko-pokal-runde .ko-team-name { overflow-wrap: anywhere; }
@media (max-width: 680px) {
    .ko-pokal-runde .ko-spiel-liste {
        grid-template-columns: minmax(0, 1fr);
    }
}
.ko-pokal-header {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 28px;
}
.ko-pokal-title {
    font-family: "Barlow Condensed", sans-serif;
    font-weight: 900;
    font-size: 28px;
    text-transform: uppercase;
    color: #0D1B2A;
    margin: 0;
    letter-spacing: .02em;
}
.ko-pokal-saison {
    font-size: 14px;
    color: #9ca3af;
    font-weight: 600;
}
.ko-pokal-runde {
    margin-bottom: 32px;
}
.ko-pokal-runde-titel {
    font-family: "Barlow Condensed", sans-serif;
    font-weight: 700;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #E8185E;
    margin: 0 0 10px;
    padding-bottom: 5px;
    border-bottom: 2px solid #E8185E;
    display: inline-block;
}
/* Freilos styling */
.ko-spiel--freilos .ko-spiel-gast--freilos .ko-team-name {
    color: #9ca3af;
    font-style: italic;
    font-weight: 400;
}
.ko-freilos-badge {
    background: #f0fdf4;
    color: #15803d;
    font-size: 12px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
    border: 1px solid #bbf7d0;
}

/* ── [ko_teams] ───────────────────────────────────────────── */
.ko-teams-wrap {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.ko-teams-verein-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #e5e7eb;
}

.ko-teams-verein-logo {
    height: 48px;
    width: auto;
    object-fit: contain;
}

.ko-teams-verein-name {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 700;
    color: #0f172a;
}

.ko-teams-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}

.ko-teams-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 14px;
}

.ko-teams-card-logo {
    height: 40px;
    width: 40px;
    object-fit: contain;
    flex-shrink: 0;
}

.ko-teams-card-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.ko-teams-card-name {
    font-size: 0.9rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}

.ko-teams-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.ko-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    line-height: 1.4;
}

.ko-badge--liga {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}

.ko-badge--pokal {
    background: #fefce8;
    color: #92400e;
    border: 1px solid #fde68a;
}

@media (max-width: 600px) {
    .ko-teams-cards {
        grid-template-columns: 1fr;
    }
}

/* ── [ko_teams] Zähler + Pagination ──────────────────────── */
.ko-teams-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e5e7eb;
}

.ko-teams-count {
    font-size: 0.9rem;
    font-weight: 600;
    color: #374151;
}

.ko-teams-pager-info {
    font-size: 0.85rem;
    color: #6b7280;
}

.ko-teams-pagination {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 32px;
    flex-wrap: wrap;
}

.ko-teams-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    color: #374151;
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
}

.ko-teams-page-btn:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
    color: #111827;
    text-decoration: none;
}

.ko-teams-page-btn--active {
    background: #0f172a;
    border-color: #0f172a;
    color: #fff;
    cursor: default;
}

.ko-badge.ko-badge--pokal[href],
a.ko-badge.ko-badge--pokal {
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

a.ko-badge.ko-badge--pokal:hover {
    background: #fef3c7;
    border-color: #f59e0b;
    color: #78350f;
    text-decoration: none;
}

a.ko-badge.ko-badge--liga {
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
}
a.ko-badge.ko-badge--liga:hover {
    background: #dbeafe;
    border-color: #93c5fd;
    color: #1e40af;
    text-decoration: none;
}


/* ── Tabelle Zonen ── */
.ko-relegation td:first-child,
.ko-relegation-ab td:first-child { border-left: 3px solid #d97706; }
.ko-relegation,
.ko-relegation-ab { background: #fffbeb !important; }
.ko-relegation-auf td:first-child { border-left: 3px solid #0d9488; }
.ko-relegation-auf { background: #f0fdfa !important; }
/* Legende */
.ko-leg-dot--rel-auf { background: #0d9488; }
.ko-leg-dot--rel-ab  { background: #d97706; }

.ko-direkt-abstieg { background: #f3f4f6 !important; }
.ko-direkt-abstieg td:first-child { border-left: 3px solid #6b7280; }
.ko-direkt-abstieg td { color: #9ca3af; }
.ko-direkt-abstieg .ko-col-team > span:first-of-type { text-decoration: line-through; }
.ko-direkt-abstieg .ko-col-pkt strong { color: #9ca3af; }

.ko-da-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .4px;
    text-transform: uppercase;
    background: #6b7280;
    color: #fff;
    border-radius: 3px;
    vertical-align: middle;
}

.ko-da-separator td {
    padding: 0;
    height: 4px;
    background: #e5e7eb;
}

/* Legende */
.ko-tabelle-legende {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 8px;
    padding: 0 2px;
    font-size: 12px;
    color: #6b7280;
}
.ko-leg-item { display: flex; align-items: center; gap: 5px; }
.ko-leg-dot {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 2px;
    flex-shrink: 0;
}
.ko-leg-dot--auf { background: #059669; }
.ko-leg-dot--rel { background: #d97706; }
.ko-leg-dot--abs { background: #dc2626; }
.ko-leg-dot--da  { background: #6b7280; }

/* ── Relegation Frontend ──────────────────────────────────────────────────── */
.ko-relegation-wrap { border-top: 3px solid #d97706; padding-top: 16px; }
.ko-rel-titel { font-size: 1.15em; margin: 0 0 14px; font-weight: 700; }

/* 1v1 Team-Header */
.ko-rel-teams-header { display: flex; align-items: center; gap: 20px; margin-bottom: 18px; flex-wrap: wrap; }
.ko-rel-team { text-align: center; flex: 1; min-width: 120px; }
.ko-rel-team--oben  { color: #dc2626; }
.ko-rel-team--unten { color: #059669; }
.ko-rel-liga { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; opacity: .7; margin-bottom: 2px; }
.ko-rel-vs { font-size: 1.1em; font-weight: 700; color: #6b7280; flex: 0; }
.ko-rel-badge { display: inline-block; font-size: 10px; font-weight: 600; padding: 1px 5px; border-radius: 3px; margin-top: 3px; }
.ko-rel-badge--oben  { background: #fee2e2; color: #991b1b; }
.ko-rel-badge--unten { background: #d1fae5; color: #065f46; }

/* Multi-Team-Liste */
.ko-rel-teams-list { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.ko-rel-team-item { padding: 6px 10px; border-radius: 4px; font-size: 13px; display: flex; align-items: center; gap: 6px; }
.ko-rel-team-item--oben  { background: #fee2e2; }
.ko-rel-team-item--unten { background: #d1fae5; }
.ko-rel-team-item .ko-rel-liga { display: inline; font-size: 10px; opacity: .7; }

/* Phasen */
.ko-rel-phase { margin-bottom: 20px; }
.ko-rel-phase-name { font-size: .95em; font-weight: 600; border-bottom: 1px solid #e5e7eb; padding-bottom: 4px; margin: 0 0 8px; color: #d97706; }

/* Spiele-Tabelle */
.ko-rel-spiele { width: 100%; border-collapse: collapse; }
.ko-rel-spiele td { padding: 5px 8px; vertical-align: middle; font-size: 14px; }
.ko-rel-spiele tr:nth-child(even) { background: #f9fafb; }
.ko-rel-datum  { color: #6b7280; font-size: 12px; white-space: nowrap; width: 80px; }
.ko-rel-heim   { text-align: right; }
.ko-rel-gast   { text-align: left;  }
.ko-rel-score  { text-align: center; white-space: nowrap; min-width: 60px; width: 80px; font-size: 1.05em; }
.ko-rel-pending { color: #9ca3af; }
.ko-rel-team-liga { font-size: 10px; color: #9ca3af; margin-left: 4px; }
.ko-rel-team-cell--oben  { color: #dc2626; font-weight: 500; }
.ko-rel-team-cell--unten { color: #059669; font-weight: 500; }

/* Ergebnis-Banner */
.ko-rel-ergebnis-banner { margin-top: 18px; padding: 10px 14px; border-radius: 4px; font-size: 14px; line-height: 1.5; }
.ko-rel-ergebnis--ligaerhalt { background: #dbeafe; border-left: 4px solid #2563eb; color: #1e40af; }
.ko-rel-ergebnis--aufstieg   { background: #d1fae5; border-left: 4px solid #059669; color: #065f46; }
.ko-rel-ergebnis--abstieg    { background: #fee2e2; border-left: 4px solid #dc2626; color: #991b1b; }
.ko-rel-erg-desc { opacity: .8; font-size: 12px; }


/* ──────────────────────────────────────────────────────
   Spielplan – Spieltag-Datum inline + Inline-Edit-UI
────────────────────────────────────────────────────── */
.ko-spieltag-label { display: flex; align-items: center; gap: 10px; }
.ko-spieltag-datum-inline {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 400;
}

/* Editable score cell */
.ko-editable-score {
    display: inline-flex;
    align-items: center;
    gap: 0;
    vertical-align: middle;
}
.ko-editable-score .ko-score-display {
    display: inline-block;
    min-width: 42px;
    text-align: center;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px dashed transparent;
    transition: border-color .15s, background .15s;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.ko-editable-score .ko-score-display:hover,
.ko-editable-score .ko-score-display.ko-score-played:hover {
    border-color: #e91e8c;
    background: #fff0f7;
}
.ko-editable-score .ko-score-display.ko-score-played {
    color: #0f172a;
}
.ko-score-edit-wrap {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: #fff;
    border: 1px solid #e91e8c;
    border-radius: 6px;
    padding: 2px 6px;
    box-shadow: 0 2px 8px rgba(233,30,140,.15);
}
.ko-score-edit-wrap input {
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    background: #f8fafc;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    padding: 1px 4px;
}
.ko-score-edit-wrap input:focus {
    outline: none;
    border-color: #e91e8c;
}
.ko-score-save {
    background: #e91e8c !important;
    border-color: #e91e8c !important;
    color: #fff !important;
    font-size: 13px !important;
    line-height: 1 !important;
}
.ko-score-save:hover { background: #c4166f !important; }
.ko-score-cancel { color: #94a3b8 !important; }
.ko-freilos-team { color: #94a3b8; font-style: italic; }

/* Datumsrange in Spieltag-Pills */
.ko-pill-date { font-size: 10px; font-weight: 400; opacity: .75; margin-top: 1px; }


/* ── Pokal JSON Frontend ─────────────────────────────────────────────────── */
.ko-pokal-tabs { margin-bottom: 16px; }
.ko-pokal-runde .ko-spiel { border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px 12px; margin-bottom: 8px; background: #fff; }
.ko-pokal-runde .ko-spiel--gespielt { background: #f8fafc; }

.ko-pokal-editable { display: inline-flex; align-items: center; }
.ko-pokal-editable .ko-score-display { cursor: pointer; min-width: 50px; text-align: center; padding: 3px 8px; border: 1px dashed transparent; border-radius: 4px; font-weight: 700; }
.ko-pokal-editable .ko-score-display:hover { border-color: #e91e8c; background: #fff0f7; }
.ko-pokal-editable .ko-score-played { color: #0f172a; }

/* Winner hervorheben */
.ko-winner-name { font-weight: 700; color: #0f172a; }

/* n.E. Badge */
.ko-ne-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: #f59e0b;
    color: #fff;
    border-radius: 4px;
    padding: 1px 5px;
    margin-left: 4px;
    vertical-align: middle;
    line-height: 16px;
}

/* Sieger-Wrap unterhalb der Score-Eingabe */
.ko-sieger-wrap { margin-top: 4px; }
.ko-sieger-sel  { font-size: 12px; padding: 2px 4px; }

/* Pokal-Freilos Team */
.ko-spiel--pokal .ko-freilos-team { color: #94a3b8; font-style: italic; }

/* ============================================================
   [ko_verein] — Verein-Übersicht Grid + Einzelansicht
   ============================================================ */
.ko-vov-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.ko-vov-search{flex:1;padding:10px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:15px;outline:none;transition:border-color .15s}
.ko-vov-search:focus{border-color:#e91e8c;box-shadow:0 0 0 3px rgba(233,30,140,.08)}
.ko-vov-count{font-size:13px;color:#9ca3af;white-space:nowrap;flex-shrink:0}
.ko-vov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ko-vk{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:2px solid #e5e7eb;border-radius:14px;padding:22px 16px 16px;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .1s}
.ko-vk:hover{border-color:#e91e8c;box-shadow:0 6px 20px rgba(233,30,140,.1);transform:translateY(-2px)}
.ko-vk-logo{width:72px;height:72px;border-radius:50%;overflow:hidden;background:#f3f4f6;display:flex;align-items:center;justify-content:center;margin-bottom:12px;border:2px solid #f3f4f6}
.ko-vk-logo img{width:100%;height:100%;object-fit:contain}
.ko-vk-init{font-size:28px;font-weight:800;color:#d1d5db}
.ko-vk-name{font-size:13px;font-weight:700;color:#0f172a;margin-bottom:3px;line-height:1.3}
.ko-vk-meta{font-size:11px;color:#9ca3af;margin-bottom:8px}
.ko-vk-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:2px}
/* Einzelansicht */
.ko-verein-back{display:inline-flex;align-items:center;gap:6px;color:#6b7280;text-decoration:none;font-size:13px;font-weight:600;margin-bottom:22px;transition:color .15s}
.ko-verein-back:hover{color:#e91e8c}
.ko-verein-dheader{display:flex;align-items:center;gap:20px;margin-bottom:28px;padding-bottom:22px;border-bottom:2px solid #f3f4f6}
.ko-verein-dlogo{height:80px;width:auto;max-width:110px;object-fit:contain}
.ko-verein-dinit{width:72px;height:72px;border-radius:12px;background:#f3f4f6;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800;color:#d1d5db;flex-shrink:0}
.ko-verein-dname{font-size:24px;font-weight:800;margin:0 0 4px;color:#0f172a}
.ko-verein-dmeta{font-size:14px;color:#9ca3af}
.ko-verein-mcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.ko-vd-ort{display:block;font-size:12px;color:#9ca3af;margin-top:6px}
@media(max-width:1024px){.ko-vov-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.ko-vov-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.ko-vov-grid{grid-template-columns:1fr}}

/* Tabelle auf schmalen Handys kompakt: Nebenspalten (S/U/N) ausblenden */
@media (max-width: 600px) {
    .ko-tabelle .ko-col-optional { display: none; }
    .ko-tabelle tbody .ko-col-team { min-width: 0; }
    .ko-tabelle { font-size: 12px; }
    .ko-tabelle thead th, .ko-tabelle tbody td, .ko-tabelle tbody th { padding: 8px 5px; }
    .ko-verein-logo-sm { flex-shrink: 0; }
    .ko-tabelle tbody .ko-col-team span { overflow-wrap: anywhere; word-break: break-word; line-height: 1.2; }
}

/* ============================================================
   LIEBLINGSMANNSCHAFT
   ============================================================ */
.ko-fav-star { margin-left:auto; background:none; border:none; cursor:pointer; font-size:17px; line-height:1; color:#cbd5e1; padding:2px 4px; flex-shrink:0; transition:color .15s, transform .15s; }
.ko-fav-star:hover { color:var(--ko-pink); transform:scale(1.15); }
.ko-fav-star.is-fav { color:var(--ko-pink); }
.ko-tabelle tr.ko-fav > td { background:#fff0f6 !important; }
.ko-tabelle tr.ko-fav > td:first-child { box-shadow: inset 4px 0 0 var(--ko-pink); }
.ko-tabelle tr.ko-fav .ko-col-team span { font-weight:700; color:var(--ko-dark); }

/* ── "Mein Verein"-Widget ── */
.ko-mv-section { padding: 22px 0 0; }
.ko-mv { }
.ko-mv-card { background:#fff; border:1px solid var(--ko-border); border-radius:12px; padding:18px 22px; box-shadow:0 2px 12px rgba(0,0,0,.05); }
.ko-mv-head { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.ko-mv-logo { height:40px; width:auto; object-fit:contain; flex-shrink:0; }
.ko-mv-title { display:flex; flex-direction:column; }
.ko-mv-name { font-family:'Barlow Condensed',sans-serif; font-weight:900; font-size:20px; text-transform:uppercase; color:var(--ko-dark); line-height:1.1; }
.ko-mv-liga { font-size:12px; color:var(--ko-gray); font-weight:700; }
.ko-mv-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ko-mv-block { display:flex; flex-direction:column; gap:3px; }
.ko-mv-lbl { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--ko-pink); }
.ko-mv-match { font-size:15px; font-weight:600; color:var(--ko-dark); }
.ko-mv-meta { font-size:12px; color:var(--ko-gray); }
.ko-mv-score { font-family:'Barlow Condensed',sans-serif; font-weight:900; margin-left:4px; }
.ko-mv-S { color:#059669; } .ko-mv-N { color:#dc2626; } .ko-mv-U { color:var(--ko-gray); }
.ko-mv-none { color:var(--ko-gray); font-size:14px; }
.ko-mv-empty { background:#fff; border:1px dashed var(--ko-border); border-radius:12px; padding:16px 20px; font-size:14px; color:var(--ko-gray); text-align:center; }
.ko-mv-empty a { color:var(--ko-pink); font-weight:700; }
@media(max-width:560px){ .ko-mv-grid { grid-template-columns:1fr; } }
.ko-mv-cal { display:inline-block; margin-top:14px; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:var(--ko-pink); text-decoration:none; border:1.5px solid var(--ko-border); border-radius:6px; padding:7px 15px; transition:border-color .15s; }
.ko-mv-cal:hover { border-color:var(--ko-pink); }


/* ============================================================
   DARK MODE (generiert) – reagiert auf html[data-theme="dark"]
   ============================================================ */
html[data-theme="dark"] {
  --ko-dark: #e8edf3;
  --ko-gray: #9db0c2;
  --ko-border: #26374b;
  --ko-bg: #0f1a27;
}
html[data-theme="dark"] .ko-tabelle thead tr { background: #0e1a27; }
html[data-theme="dark"] :root { border-color:#26374b; }
html[data-theme="dark"] .ko-spiel { background:#15212f !important; }
html[data-theme="dark"] .ko-spiel--gespielt { background:#15212f !important; }
html[data-theme="dark"] .ko-spielerin-card { background:#15212f !important; }
html[data-theme="dark"] .ko-naechstes-spiel { background:#15212f !important; }
html[data-theme="dark"] .ko-saison-nav-label { color:#9db0c2; }
html[data-theme="dark"] .ko-saison-nav-item { color:#9db0c2; border-color:#26374b; }
html[data-theme="dark"] .ko-liga-card { background:#15212f !important; border-color:#26374b; }
html[data-theme="dark"] .ko-liga-card-name { color:#e8edf3; }
html[data-theme="dark"] .ko-liga-card-saison { color:#9db0c2; }
html[data-theme="dark"] .ko-liga-card-stats { color:#9db0c2; }
html[data-theme="dark"] .ko-spiel-row-datum { color:#9db0c2; }
html[data-theme="dark"] .ko-spiel-row-time { color:#9db0c2; }
html[data-theme="dark"] .ko-spiel-row-heim, html[data-theme="dark"] .ko-spiel-row-gast { color:#e8edf3; }
html[data-theme="dark"] .ko-spiel-row-vs { color:#9db0c2; }
html[data-theme="dark"] .ko-naechstes-spiel { background:#15212f !important; border-color:#26374b; }
html[data-theme="dark"] .ko-spiel-liga-badge { background:#15212f !important; color:#9db0c2; }
html[data-theme="dark"] .naechste-spiele-section .ko-spiel-liga-badge { color:#9db0c2; }
html[data-theme="dark"] .ko-naechstes-paarung .ko-spiel-team span { color:#e8edf3; }
html[data-theme="dark"] .ko-vs { color:#9db0c2; }
html[data-theme="dark"] .ko-naechstes-spiel .ko-spiel-ort { color:#9db0c2; }
html[data-theme="dark"] .ko-stg-arrow { color:#e8edf3; border-color:#26374b; }
html[data-theme="dark"] .ko-spieltag-pill { color:#9db0c2; border-color:#26374b; }
html[data-theme="dark"] .ko-saison-stats { background:#15212f !important; border-color:#26374b; }
html[data-theme="dark"] .ko-stat-val { color:#e8edf3; }
html[data-theme="dark"] .ko-stat-lbl { color:#9db0c2; }
html[data-theme="dark"] .ko-pokal-tabs .ko-liga-tab, html[data-theme="dark"] .ko-pokale-tabs .ko-liga-tab { background:#15212f !important; color:#9db0c2; border-color:#26374b; }
html[data-theme="dark"] .ko-pokal-title { color:#e8edf3; }
html[data-theme="dark"] .ko-teams-verein-header { border-color:#26374b; }
html[data-theme="dark"] .ko-teams-verein-name { color:#e8edf3; }
html[data-theme="dark"] .ko-teams-card { background:#15212f !important; border-color:#26374b; }
html[data-theme="dark"] .ko-teams-card-name { color:#e8edf3; }
html[data-theme="dark"] .ko-teams-meta { border-color:#26374b; }
html[data-theme="dark"] .ko-teams-count { color:#e8edf3; }
html[data-theme="dark"] .ko-teams-pager-info { color:#9db0c2; }
html[data-theme="dark"] .ko-teams-page-btn { background:#15212f !important; color:#e8edf3; border-color:#26374b; }
html[data-theme="dark"] .ko-teams-page-btn:hover { color:#e8edf3; }
html[data-theme="dark"] .ko-relegation, html[data-theme="dark"] .ko-relegation-ab { background:#2b2410 !important; }
html[data-theme="dark"] .ko-tabelle-legende { color:#9db0c2; }
html[data-theme="dark"] .ko-rel-vs { color:#9db0c2; }
html[data-theme="dark"] .ko-rel-phase-name { border-color:#26374b; }
html[data-theme="dark"] .ko-rel-spiele tr:nth-child(even) { background:#15212f !important; }
html[data-theme="dark"] .ko-rel-datum { color:#9db0c2; }
html[data-theme="dark"] .ko-spieltag-datum-inline { color:#9db0c2; }
html[data-theme="dark"] .ko-editable-score .ko-score-display:hover, html[data-theme="dark"] .ko-editable-score .ko-score-display.ko-score-played:hover { background:#351421 !important; }
html[data-theme="dark"] .ko-editable-score .ko-score-display.ko-score-played { color:#e8edf3; }
html[data-theme="dark"] .ko-score-edit-wrap { background:#15212f !important; }
html[data-theme="dark"] .ko-score-edit-wrap input { background:#15212f !important; border-color:#26374b; }
html[data-theme="dark"] .ko-score-cancel { color:#9db0c2; }
html[data-theme="dark"] .ko-freilos-team { color:#9db0c2; }
html[data-theme="dark"] .ko-pokal-runde .ko-spiel { background:#15212f !important; border-color:#26374b; }
html[data-theme="dark"] .ko-pokal-runde .ko-spiel--gespielt { background:#15212f !important; }
html[data-theme="dark"] .ko-pokal-editable .ko-score-display:hover { background:#351421 !important; }
html[data-theme="dark"] .ko-pokal-editable .ko-score-played { color:#e8edf3; }
html[data-theme="dark"] .ko-winner-name { color:#e8edf3; }
html[data-theme="dark"] .ko-spiel--pokal .ko-freilos-team { color:#9db0c2; }
html[data-theme="dark"] .ko-vov-search { border-color:#26374b; }
html[data-theme="dark"] .ko-vk { background:#15212f !important; border-color:#26374b; }
html[data-theme="dark"] .ko-vk-name { color:#e8edf3; }
html[data-theme="dark"] .ko-verein-back { color:#9db0c2; }
html[data-theme="dark"] .ko-verein-dname { color:#e8edf3; }
html[data-theme="dark"] .ko-tabelle tr.ko-fav > td { background:#351421 !important; }
html[data-theme="dark"] .ko-mv-card { background:#15212f !important; }
html[data-theme="dark"] .ko-mv-empty { background:#15212f !important; }

/* Dark Mode – Tabellen-Zonen (Auf-/Abstieg/Relegation) als dunkle Tints */
html[data-theme="dark"] .ko-aufstieg { background:#0e2a1c !important; }
html[data-theme="dark"] .ko-abstieg { background:#2c1618 !important; }
html[data-theme="dark"] .ko-relegation-auf { background:#0e2a28 !important; }
html[data-theme="dark"] .ko-direkt-abstieg { background:#1a2230 !important; }

/* ---- Vereine: Münster-Gruppierung + Aufklapp-Bereich ---- */
.ko-vov-sectitle{font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--ko-dark);margin:8px 0 14px;display:flex;align-items:center;gap:10px}
.ko-vov-sectitle-count{background:var(--ko-pink);color:#fff;font-size:12px;font-weight:700;border-radius:20px;padding:2px 10px}
.ko-vov-more{margin-top:26px;border-top:1px solid var(--ko-border);padding-top:14px}
.ko-vov-more>summary.ko-vov-more-sum{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--ko-dark);padding:6px 0}
.ko-vov-more-sum::-webkit-details-marker{display:none}
.ko-vov-more-sum::before{content:'▸';color:var(--ko-pink);font-size:16px;transition:transform .2s}
.ko-vov-more[open]>.ko-vov-more-sum::before{transform:rotate(90deg)}
.ko-vov-more-count{background:var(--ko-border);color:var(--ko-dark);font-size:12px;font-weight:700;border-radius:20px;padding:2px 10px}
.ko-vov-more>.ko-vov-grid{margin-top:16px}

/* ---- Vereins-Detailseite: Profil ---- */
.ko-vp{margin:4px 0 26px}
.ko-vp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:18px}
.ko-vp-stat{background:var(--ko-bg);border:1px solid var(--ko-border);border-radius:10px;padding:14px 16px;text-align:center}
.ko-vp-stat-num{display:block;font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:900;color:var(--ko-pink);line-height:1}
.ko-vp-stat-lbl{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ko-gray);margin-top:4px}
.ko-vp-besch{font-size:15px;line-height:1.65;color:var(--ko-dark);margin-bottom:16px;max-width:70ch}
.ko-vp-web{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;color:var(--ko-pink);text-decoration:none;margin-bottom:18px}
.ko-vp-web:hover{text-decoration:underline}
.ko-vp-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:6px}
.ko-vp-gimg{display:block;aspect-ratio:4/3;border-radius:10px;overflow:hidden;border:1px solid var(--ko-border)}
.ko-vp-gimg img{width:100%;height:100%;object-fit:cover;transition:transform .2s}
.ko-vp-gimg:hover img{transform:scale(1.05)}
.ko-vk--nolink{cursor:default}
.ko-vk-more{display:block;margin-top:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ko-pink)}

/* ---- Liga-Tabs als scrollbare/wischbare Reihe mit Pfeilen ---- */
.ko-tabs-carousel { position: relative; display: flex; align-items: center; gap: 6px; margin-bottom: 24px; padding-bottom: 12px; border-bottom: 2px solid var(--ko-border); }
.ko-tabs-carousel .ko-liga-tabs {
    margin: 0 !important;
    border-bottom: none !important;
    padding-bottom: 4px !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-behavior: smooth;
    flex: 1;
    min-width: 0;
}
.ko-tabs-carousel .ko-liga-tabs::-webkit-scrollbar { display: none; }
.ko-tabs-carousel .ko-liga-tab { flex: 0 0 auto; }
.ko-tabs-carousel .ko-tabs-prev, .ko-tabs-carousel .ko-tabs-next { flex: 0 0 auto; }
.ko-tabs-carousel.ko-tabs-static .ko-stg-arrow { display: none; }

/* ---- Vereins-Profil: Mannschaften als aufklappbarer Kader ---- */
.ko-verein-teams { display:flex; flex-direction:column; gap:10px; }
.ko-vd-team { border:1px solid var(--ko-border); border-radius:12px; background:#fff; overflow:hidden; }
.ko-vd-team-head { display:flex; align-items:center; gap:12px; padding:12px 14px; cursor:pointer; list-style:none; user-select:none; }
.ko-vd-team-head::-webkit-details-marker { display:none; }
.ko-vd-team-logo { width:34px; height:34px; object-fit:contain; flex:0 0 auto; }
.ko-vd-team-main { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:5px; }
.ko-vd-team-main .ko-teams-card-name { font-size:15px; line-height:1.2; }
.ko-vd-kadercount { flex:0 0 auto; color:#6b7280; font-size:12px; white-space:nowrap; }
.ko-vd-chevron { flex:0 0 auto; font-size:22px; line-height:1; color:#9ca3af; transition:transform .18s ease; }
.ko-vd-team[open] .ko-vd-chevron { transform:rotate(90deg); }
.ko-vd-team-kader { padding:4px 14px 16px; border-top:1px solid var(--ko-border); }
.ko-vd-team-kader .ko-spielerinnen { margin-top:12px; }
@media (max-width:600px){ .ko-vd-kadercount { display:none; } }
html[data-theme="dark"] .ko-vd-team { background:#15212f; border-color:#26374b; }
html[data-theme="dark"] .ko-vd-team-kader { border-top-color:#26374b; }

/* ---- Transferticker ---- */
.ko-transferticker { }
.ko-tr-heading { font-size:20px; font-weight:800; margin:0 0 14px; }
.ko-tr-empty { color:#6b7280; background:#f8fafc; border:1px dashed var(--ko-border); border-radius:12px; padding:20px; text-align:center; margin:0; }
.ko-tr-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.ko-tr-item { display:flex; align-items:center; gap:12px; flex-wrap:wrap; border:1px solid var(--ko-border); border-radius:12px; background:#fff; padding:10px 14px; }
.ko-tr-badge { flex:0 0 auto; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:3px 9px; border-radius:999px; color:#fff; }
.ko-tr-badge--zugang { background:#16a34a; }
.ko-tr-badge--abgang { background:#64748b; }
.ko-tr-badge--wechsel { background:var(--ko-pink); }
.ko-tr-badge--leihe { background:#2563eb; }
.ko-tr-main { flex:1 1 auto; min-width:0; }
.ko-tr-name { font-weight:700; }
.ko-tr-route { color:#475569; font-size:14px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:2px; }
.ko-tr-club { display:inline-flex; align-items:center; gap:5px; }
.ko-tr-clublogo { width:18px; height:18px; object-fit:contain; }
.ko-tr-arrow { color:#9ca3af; }
.ko-tr-date { flex:0 0 auto; color:#6b7280; font-size:12px; white-space:nowrap; }
.ko-tr-note { display:block; flex-basis:100%; color:#6b7280; font-size:13px; margin-top:3px; }
@media (max-width:600px){ .ko-tr-date { order:3; margin-top:2px; } }
html[data-theme="dark"] .ko-tr-item { background:#15212f; border-color:#26374b; }
html[data-theme="dark"] .ko-tr-route { color:#9fb0c3; }
html[data-theme="dark"] .ko-tr-empty { background:#15212f; border-color:#26374b; color:#9fb0c3; }

/* ---- Logos in Beiträgen: Theme-Bildstile (.entry-content img) nicht durchschlagen lassen ---- */
.ko-verein-logo, .ko-verein-logo-sm, .ko-row-logo, .ko-team-logo, .ko-mv-logo {
    display: inline-block !important;
    margin: 0 !important;
    max-width: none !important;
    width: auto !important;
    object-fit: contain !important;
}
.ko-verein-logo    { height: 28px !important; }
.ko-verein-logo-sm { height: 20px !important; }
.ko-row-logo       { height: 18px !important; width: 18px !important; }
.ko-team-logo      { height: 52px !important; }
.ko-mv-logo        { height: 40px !important; }
.ko-spielerin-foto img { display: block !important; margin: 0 !important; max-width: none !important; width: 100% !important; height: 100% !important; object-fit: cover !important; }

/* ============================================================
   LIVE-TICKER  [ko_ticker]
   ============================================================ */
.ko-ticker { max-width:640px; margin:0 auto; font-family:inherit; }
.ko-ticker-empty { text-align:center; color:var(--ko-gray); padding:30px; background:var(--ko-bg); border-radius:14px; }

.ko-tk-board { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:8px;
    background:var(--ko-dark); color:#fff; border-radius:16px; padding:20px 16px; }
.ko-tk-team { display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; }
.ko-tk-logo { width:56px; height:56px; border-radius:50%; background:#fff center/contain no-repeat;
    display:flex; align-items:center; justify-content:center; font-weight:800; color:var(--ko-dark);
    font-size:15px; text-transform:uppercase; }
.ko-tk-logo.has-logo { background-color:#fff; }
.ko-tk-name { font-size:14px; font-weight:600; line-height:1.2; }
.ko-tk-mid { text-align:center; min-width:96px; }
.ko-tk-score { font-family:'Barlow Condensed',sans-serif; font-size:44px; font-weight:900; line-height:1; letter-spacing:.02em; }
.ko-tk-sep { opacity:.5; margin:0 6px; }
.ko-tk-status { margin-top:8px; display:flex; flex-direction:column; align-items:center; gap:3px; }
.ko-tk-badge { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em;
    padding:2px 10px; border-radius:20px; background:rgba(255,255,255,.15); }
.ko-tk-badge-live1, .ko-tk-badge-live2 { background:var(--ko-pink); animation:ko-tk-pulse 1.6s infinite; }
.ko-tk-min { font-size:14px; font-weight:700; }
@keyframes ko-tk-pulse { 0%,100%{opacity:1;} 50%{opacity:.55;} }

/* Feed */
.ko-tk-feed { list-style:none; margin:16px 0 0; padding:0; }
.ko-tk-ev { display:flex; align-items:flex-start; gap:10px; padding:11px 12px; border-bottom:1px solid var(--ko-border); }
.ko-tk-ev:first-child { animation:ko-tk-in .4s ease; }
@keyframes ko-tk-in { from{background:rgba(233,30,140,.12);} to{background:transparent;} }
.ko-tk-ev-min { flex:0 0 34px; font-weight:800; color:var(--ko-pink); font-size:13px; padding-top:1px; }
.ko-tk-ev-ico { flex:0 0 auto; font-size:15px; line-height:1.3; }
.ko-tk-ev-txt { flex:1; font-size:14px; line-height:1.35; }
.ko-tk-ev-tor { background:rgba(233,30,140,.06); }
.ko-tk-ev-tor .ko-tk-ev-txt strong { color:var(--ko-pink); }
.ko-tk-ev-anpfiff, .ko-tk-ev-halbzeit, .ko-tk-ev-wiederanpfiff, .ko-tk-ev-abpfiff { color:var(--ko-gray); font-style:italic; }
.ko-tk-empty-line { color:var(--ko-gray); padding:16px 4px; font-size:14px; }
.ko-tk-foot { margin-top:12px; text-align:center; color:var(--ko-gray); font-size:12px; }
.ko-tk-live-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#22c55e; margin-right:5px; vertical-align:middle; animation:ko-tk-pulse 1.6s infinite; }

/* Steuerung (Redaktion) */
.ko-tk-control { margin-top:16px; padding:14px; border:2px dashed var(--ko-pink); border-radius:14px; background:#fff5fa; }
.ko-tk-ctrl-hint { font-size:12px; color:var(--ko-pink); font-weight:700; margin-bottom:10px; text-transform:uppercase; letter-spacing:.04em; }
.ko-tk-ctrl-phase { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.ko-tk-goalrow { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px; }
.ko-tk-eventform { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ko-tk-eventform .ko-tk-f-spielerin { grid-column:1 / -1; }
.ko-tk-eventform .ko-tk-f-text { grid-column:1 / -1; }
.ko-tk-eventform .ko-tk-add { grid-column:1 / -1; }

/* Torschützinnen-Auswahl */
.ko-tk-goalpick { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:10px;
    padding:10px; background:#fff; border:1px solid var(--ko-border); border-radius:10px; }
.ko-tk-goalpick[hidden] { display:none; }
.ko-tk-goalpick-lbl { font-weight:800; color:var(--ko-pink); }
.ko-tk-goalpick .ko-tk-gp-spielerin { flex:1; min-width:150px; padding:9px 10px; border:1px solid var(--ko-border); border-radius:9px; font-size:14px; }
.ko-tk-eventform select, .ko-tk-eventform input { padding:9px 10px; border:1px solid var(--ko-border); border-radius:9px; font-size:14px; }
.ko-tk-btn { border:0; border-radius:10px; padding:11px 14px; font-size:14px; font-weight:700; cursor:pointer;
    background:var(--ko-dark); color:#fff; }
.ko-tk-btn:hover { opacity:.9; }
.ko-tk-goal { background:var(--ko-pink); font-size:15px; }
.ko-tk-go { background:#16a34a; }
.ko-tk-ctrl-foot { margin-top:10px; text-align:right; }
.ko-tk-undo { background:#fff; color:var(--ko-gray); border:1px solid var(--ko-border); }

@media (max-width:480px){
    .ko-tk-score { font-size:36px; }
    .ko-tk-logo { width:46px; height:46px; }
}

/* LIVE-Badge */
.ko-live-badge[hidden] { display:none; }
.ko-live-badge { display:inline-flex; align-items:center; gap:7px; text-decoration:none; white-space:nowrap;
    background:var(--ko-pink); color:#fff; font-weight:800; font-size:13px; line-height:1;
    padding:6px 12px; border-radius:20px; text-transform:uppercase; letter-spacing:.04em; }
.ko-live-badge .ko-live-lbl { overflow:hidden; text-overflow:ellipsis; }
.ko-live-badge:hover { filter:brightness(1.08); }
.ko-live-badge .ko-live-score { background:rgba(255,255,255,.22); padding:2px 7px; border-radius:12px; font-size:12px; }
.ko-live-dot2 { width:8px; height:8px; border-radius:50%; background:#fff; animation:ko-tk-pulse 1.4s infinite; }
.ko-live-static { pointer-events:none; }
.ko-live-badge.ko-live-soon { background:#475569; }
.ko-live-badge.ko-live-soon .ko-live-dot2 { animation:none; opacity:.85; }

/* Auswahl bei mehreren Live-Spielen */
.ko-tk-chooser-h { font-family:'Barlow Condensed',sans-serif; font-size:20px; font-weight:900; text-transform:uppercase; color:var(--ko-dark); margin-bottom:12px; }
.ko-tk-chooser-list { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.ko-tk-chooser-list a { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ko-dark);
    background:var(--ko-bg); border:1px solid var(--ko-border); border-radius:12px; padding:14px 16px; }
.ko-tk-chooser-list a:hover { border-color:var(--ko-pink); }
.ko-tk-chooser-teams { flex:1; font-weight:700; }
.ko-tk-chooser-score { font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:900; }

/* Dark Mode (Seiten-Theme, nicht System) */
html[data-theme="dark"] .ko-tk-control { background:#1e1b26; }
html[data-theme="dark"] .ko-tk-eventform select, html[data-theme="dark"] .ko-tk-eventform input,
html[data-theme="dark"] .ko-tk-goalpick, html[data-theme="dark"] .ko-tk-goalpick .ko-tk-gp-spielerin { background:#0f172a; color:#fff; border-color:#334155; }
html[data-theme="dark"] .ko-tk-undo { background:#0f172a; color:#cbd5e1; border-color:#334155; }
html[data-theme="dark"] .ko-tk-ev { border-color:#1f2937; }

/* ============================================================
   TORSCHÜTZINNENLISTE  [ko_torschuetzinnen]
   ============================================================ */
.ko-ts { max-width:640px; margin:0 auto; }
.ko-ts-empty { text-align:center; color:var(--ko-gray); padding:24px; background:var(--ko-bg); border-radius:12px; }
.ko-ts-titel { font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:900; text-transform:uppercase; color:var(--ko-dark); letter-spacing:.03em; margin-bottom:12px; }
.ko-ts-table { width:100%; border-collapse:collapse; }
.ko-ts-table thead th { text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--ko-gray); padding:8px 10px; border-bottom:2px solid var(--ko-border); }
.ko-ts-table thead th.ko-ts-rang, .ko-ts-table thead th.ko-ts-tore { text-align:center; }
.ko-ts-table tbody td, .ko-ts-table tbody th { padding:10px; border-bottom:1px solid var(--ko-border); font-size:14px; vertical-align:middle; }
.ko-ts-rang { text-align:center; font-weight:800; color:var(--ko-gray); width:36px; }
.ko-ts-name { text-align:left; font-weight:700; color:var(--ko-dark); }
.ko-ts-mann { color:var(--ko-gray); }
.ko-ts-logo { height:18px; width:18px; object-fit:contain; vertical-align:middle; margin-right:6px; }
.ko-ts-tore { text-align:center; white-space:nowrap; }
.ko-ts-tore-n { font-family:'Barlow Condensed',sans-serif; font-size:20px; font-weight:900; color:var(--ko-pink); }
.ko-ts-elf { display:block; font-size:11px; color:var(--ko-gray); }
.ko-ts-table tbody tr:nth-child(-n+3) .ko-ts-rang { color:var(--ko-pink); }

html[data-theme="dark"] .ko-ts-name { color:#f1f5f9; }
html[data-theme="dark"] .ko-ts-table tbody td, html[data-theme="dark"] .ko-ts-table tbody th { border-color:#1f2937; }

/* ============================================================
   SPIELE-TABS  [ko_spiele_tabs]  (Nächste Spiele / Letzte Ergebnisse)
   ============================================================ */
.ko-spiele-tabs { max-width:640px; }
.ko-spiele-tabs-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px;
    margin-bottom:14px; padding-bottom:12px; border-bottom:2px solid #f1f5f9; flex-wrap:wrap; }
.ko-spiele-tabs-nav { display:flex; gap:20px; align-items:baseline; }
.ko-st-tab { background:none; border:0; padding:0; cursor:pointer;
    font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:900; letter-spacing:.03em;
    text-transform:uppercase; color:#cbd5e1; line-height:1; transition:color .15s; }
.ko-st-tab:hover { color:var(--ko-gray); }
.ko-st-tab--aktiv { color:var(--ko-dark); }
.ko-spiele-tabs-all { font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
    color:var(--ko-pink); text-decoration:none; white-space:nowrap; }
.ko-spiele-tabs-all:hover { text-decoration:underline; }
.ko-st-panel[hidden] { display:none; }
.ko-st-empty { color:var(--ko-gray); padding:18px 0; font-size:14px; }
.ko-spiel-row-score { flex-shrink:0; font-family:'Barlow Condensed',sans-serif; font-weight:900;
    font-size:18px; color:var(--ko-dark); padding:0 8px; white-space:nowrap; }

@media (max-width:640px){
    .ko-st-tab { font-size:19px; }
    .ko-spiele-tabs-nav { gap:16px; }
    /* im gestapelten Zeilen-Layout Score sichtbar lassen */
    .ko-spiel-row-score { padding:2px 0; }
}
html[data-theme="dark"] .ko-st-tab--aktiv { color:#f1f5f9; }
html[data-theme="dark"] .ko-spiel-row-score { color:#f1f5f9; }

/* ============================================================
   TORSCHÜTZINNEN-EINGABE (Frontend-Editor, nur Redaktion)
   ============================================================ */
.ko-tse { margin-top: 8px; text-align: center; }
.ko-tse-toggle { background: #fff; border: 1px dashed var(--ko-pink); color: var(--ko-pink);
    font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: 20px; cursor: pointer; }
.ko-tse-toggle:hover { background: #fff5fa; }
.ko-tse-panel { margin-top: 10px; padding: 12px; border: 1px solid var(--ko-border); border-radius: 10px;
    background: var(--ko-bg); text-align: left; }
.ko-tse-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.ko-tse-empty { color: var(--ko-gray); font-size: 13px; }
.ko-tse-item { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--ko-border);
    border-radius: 8px; padding: 6px 10px; font-size: 14px; }
.ko-tse-item .ko-tse-nm { font-weight: 700; color: var(--ko-dark); }
.ko-tse-badge { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
    background: #fde68a; color: #92400e; padding: 1px 6px; border-radius: 10px; }
.ko-tse-side { margin-left: auto; color: var(--ko-gray); font-size: 12px; }
.ko-tse-del { border: 0; background: none; color: var(--ko-gray); font-size: 18px; line-height: 1; cursor: pointer; padding: 0 2px; }
.ko-tse-del:hover { color: #dc2626; }
.ko-tse-add { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ko-tse-add select { padding: 7px 8px; border: 1px solid var(--ko-border); border-radius: 8px; font-size: 13px; background: #fff; }
.ko-tse-add .ko-tse-player { flex: 1; min-width: 150px; }
.ko-tse-elf { font-size: 13px; color: var(--ko-gray); display: inline-flex; align-items: center; gap: 4px; }
.ko-tse-addbtn { border: 0; background: var(--ko-dark); color: #fff; font-size: 13px; font-weight: 700;
    padding: 8px 12px; border-radius: 8px; cursor: pointer; }
.ko-tse-foot { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.ko-tse-save { border: 0; background: var(--ko-pink); color: #fff; font-size: 14px; font-weight: 800;
    padding: 8px 16px; border-radius: 8px; cursor: pointer; }
.ko-tse-msg { font-size: 12px; color: var(--ko-gray); }

html[data-theme="dark"] .ko-tse-toggle { background: #15212f; }
html[data-theme="dark"] .ko-tse-panel { background: #15212f; border-color: #26374b; }
html[data-theme="dark"] .ko-tse-item,
html[data-theme="dark"] .ko-tse-add select { background: #0f172a; color: #e8edf3; border-color: #26374b; }
html[data-theme="dark"] .ko-tse-item .ko-tse-nm { color: #f1f5f9; }

/* ============================================================
   EINZELSPIEL-ANSICHT  /spiel/{gid}
   ============================================================ */
.ko-ss-hero { background:var(--ko-dark); color:#fff; padding:26px 0; }
.ko-ss-title { text-align:center; margin:0; color:#fff; font-family:'Barlow Condensed',sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:.03em; font-size:30px; }
.ko-ss-body { padding:44px 0 48px; }
.ko-ss-card { max-width:640px; margin:0 auto; background:#fff; border:1px solid var(--ko-border,#e2e8f0); border-radius:14px; padding:24px 20px; }
.ko-ss-comp { text-align:center; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#64748b; margin-bottom:18px; }
.ko-ss-match { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; }
.ko-ss-team { display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; }
.ko-ss-logo { width:84px; height:84px; object-fit:contain; }
.ko-ss-name { font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:20px; line-height:1.15; color:var(--ko-dark); }
.ko-ss-center { text-align:center; min-width:90px; }
.ko-ss-score { font-family:'Barlow Condensed',sans-serif; font-weight:900; font-size:52px; line-height:1; color:var(--ko-dark); }
.ko-ss-vs { font-size:34px; font-weight:900; opacity:.35; line-height:1; color:var(--ko-dark); }
.ko-ss-date { font-size:14px; margin-top:6px; color:#64748b; }
.ko-ss-badge { display:inline-block; margin-top:10px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; background:#eef2f7; color:#475569; padding:2px 10px; border-radius:20px; }
.ko-ss-sub { text-align:center; color:#64748b; font-size:14px; margin-top:14px; }
.ko-ss-tabelle { max-width:640px; margin:24px auto 0; }
.ko-ss-links { text-align:center; margin:32px 0 8px; }
.ko-ss-btn { display:inline-block; background:var(--ko-pink); color:#fff; text-decoration:none; font-weight:700; padding:12px 24px; border-radius:24px; }
.ko-ss-btn:hover { filter:brightness(1.08); }
@media (max-width:600px){
	.ko-ss-title { font-size:24px; }
	.ko-ss-logo { width:60px; height:60px; }
	.ko-ss-name { font-size:16px; }
	.ko-ss-score { font-size:40px; }
	.ko-ss-match { gap:10px; }
}
html[data-theme="dark"] .ko-ss-hero { background:#0a121d; }
html[data-theme="dark"] .ko-ss-card { background:#15212f; border-color:#26374b; }
html[data-theme="dark"] .ko-ss-name,
html[data-theme="dark"] .ko-ss-score,
html[data-theme="dark"] .ko-ss-vs { color:#e8edf3; }
html[data-theme="dark"] .ko-ss-badge { background:#26374b; color:#cbd5e1; }

/* ============================================================
   TABELLEN-AUSSCHNITT  [ko_tabelle_ausschnitt] / Editor-Block §12
   ============================================================ */
.ko-ta { margin:16px 0; }
.ko-ta-head { display:flex; align-items:baseline; gap:10px; margin-bottom:8px; }
.ko-ta-liga { font-family:'Barlow Condensed',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:.02em; font-size:17px; color:var(--ko-dark); }
.ko-ta-saison { font-size:12px; color:#64748b; }
.ko-ta .ko-ta-table { width:100%; border-collapse:collapse !important; border-spacing:0 !important; font-size:15px; background:#fff; border:1px solid var(--ko-border,#e2e8f0); border-radius:10px; overflow:hidden; margin:0; }
.ko-ta .ko-ta-table th, .ko-ta .ko-ta-table td { padding:8px 10px !important; text-align:center; border-bottom:1px solid var(--ko-border,#eef2f7); line-height:1.35 !important; height:auto !important; min-height:0 !important; vertical-align:middle !important; }
.ko-ta .ko-ta-table thead th { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:#64748b; font-weight:700; background:#f8fafc; }
.ko-ta .ko-ta-table tbody tr:last-child td, .ko-ta .ko-ta-table tbody tr:last-child th { border-bottom:0; }
.ko-ta .ko-ta-rank { width:32px; color:#64748b; }
.ko-ta .ko-ta-team { text-align:left; display:flex; align-items:center; gap:8px; font-weight:600; color:var(--ko-dark); }
.ko-ta .ko-ta-logo { width:22px !important; height:22px !important; object-fit:contain; flex:0 0 auto; margin:0 !important; padding:0 !important; display:block; vertical-align:middle; max-width:none !important; }
.ko-ta .ko-ta-num { width:44px; color:#475569; }
.ko-ta .ko-ta-pkt { width:48px; }
.ko-ta-num.ko-positive { color:#16a34a; }
.ko-ta-num.ko-negative { color:#dc2626; }
.ko-ta-focus { background:rgba(226,30,109,.08); }
.ko-ta-focus .ko-ta-team, .ko-ta-focus .ko-ta-pkt strong { color:var(--ko-pink); }
.ko-ta-gap td { color:#94a3b8; letter-spacing:2px; padding:4px; }
html[data-theme="dark"] .ko-ta-liga { color:#e8edf3; }
html[data-theme="dark"] .ko-ta-table { background:#15212f; border-color:#26374b; }
html[data-theme="dark"] .ko-ta-table th, html[data-theme="dark"] .ko-ta-table td { border-color:#26374b; }
html[data-theme="dark"] .ko-ta-table thead th { background:#1b2a3b; color:#9db0c2; }
html[data-theme="dark"] .ko-ta-team { color:#e8edf3; }
html[data-theme="dark"] .ko-ta-focus { background:rgba(226,30,109,.18); }
