:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#eaf1ff;background:#0a1020}*{box-sizing:border-box}body{margin:0}header{padding:20px;background:#111a33;position:sticky;top:0;z-index:5;box-shadow:0 8px 24px #0005}h1{margin:0 0 12px;font-size:1.6rem}h2{margin-top:0}nav{display:flex;gap:10px;flex-wrap:wrap}a{color:#a9d7ff}.btn,nav a{background:#203762;color:#fff;text-decoration:none;border-radius:12px;padding:10px 13px;display:inline-block}main{max-width:1400px;margin:auto;padding:20px}.toolbar{margin:12px 0 18px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.card,.node{background:#151f3d;border:1px solid #2e477a;border-radius:16px;padding:14px;box-shadow:0 8px 20px #0004}.card h3{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:.6rem 0}.card span{white-space:nowrap;background:#243d70;padding:5px 9px;border-radius:9px}table{width:100%;border-collapse:collapse;margin:10px 0 28px;background:#121b34;border-radius:14px;overflow:hidden}th,td{padding:10px;border-bottom:1px solid #2a3d69;text-align:left;vertical-align:top}th{background:#203762}.bracket{display:flex;gap:16px;overflow:auto;align-items:flex-start;padding-bottom:14px}.bracket section{min-width:230px}.node{margin:12px 0;min-height:110px}.ok{background:#123d2a;border:1px solid #30a66b;padding:12px;border-radius:12px}.error{background:#4a1520;border:1px solid #d45870;padding:12px;border-radius:12px}.hint{background:#13284a;border:1px solid #31598e;padding:12px;border-radius:12px}select{font-size:1rem;padding:10px;border-radius:10px;background:#fff}.thirds li{margin:6px 0}@media(max-width:760px){main{padding:12px}.bracket{display:block}nav a{flex:1 1 auto;text-align:center}table{font-size:.88rem;display:block;overflow:auto}.card h3{display:block}.card span{display:inline-block;margin:8px 0}}
.team{display:inline-flex;align-items:center;gap:7px;vertical-align:middle;min-height:22px}.team-icon{width:22px;height:22px;object-fit:contain;border-radius:50%;background:#fff;padding:2px;box-shadow:0 1px 4px #0005}.node .team{margin:4px 0}.card h3 .team{margin:3px 0}.team-no-icon{padding-left:0}

.icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-top:18px}.icon-card{background:#151f3d;border:1px solid #2e477a;border-radius:16px;padding:14px;box-shadow:0 8px 20px #0004}.icon-preview{height:76px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}.icon-large{width:54px;height:54px;object-fit:contain;border-radius:50%;background:#fff;padding:5px;box-shadow:0 2px 8px #0007}.icon-missing{display:inline-block;color:#ffb7c4;background:#3d1723;border:1px solid #8d3045;border-radius:10px;padding:8px 10px;font-size:.85rem}

.logbox{background:#111827;color:#e5e7eb;border-radius:12px;padding:14px;white-space:pre-wrap;overflow:auto;font-size:13px;line-height:1.4}
.icon-card .btn-small,.icon-card a{word-break:break-word}


/* Spielplan im Gruppenplan-Layout */
.group-schedule-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:18px 0 30px}.group-schedule-card{background:#102143;border:1px solid #31598e;border-radius:16px;overflow:hidden;box-shadow:0 10px 26px #0005}.group-schedule-card h3{margin:0;padding:11px 14px;background:#24477f;color:#fff;text-transform:uppercase;letter-spacing:.03em}.schedule-match{position:relative;isolation:isolate;padding:12px 12px 13px;border-top:1px solid #2b4779;min-height:118px;overflow:hidden}.schedule-match::after{content:"";position:absolute;right:-16px;top:50%;width:86px;height:86px;transform:translateY(-50%);background-image:var(--home-logo);background-size:contain;background-repeat:no-repeat;background-position:center;opacity:.13;filter:saturate(1.1);z-index:-1}.schedule-match-meta{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:#b9cff7;margin-bottom:7px}.schedule-teams{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}.schedule-team{min-width:0}.schedule-team .team{max-width:100%;gap:6px}.schedule-team .team span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-away{text-align:right}.schedule-away .team{justify-content:flex-end}.schedule-score{font-weight:800;background:#0a1020;border:1px solid #3b5f9a;border-radius:9px;padding:4px 7px;white-space:nowrap}.schedule-place,.schedule-time{font-size:.78rem;color:#c8d7f4;margin-top:7px;line-height:1.25}.schedule-time{color:#94b7ef}.schedule-ko-title{margin-top:30px}.ko-schedule-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.ko-schedule-list .schedule-match{background:#151f3d;border:1px solid #2e477a;border-radius:16px;box-shadow:0 8px 20px #0004}.group-schedule-card .team-icon,.ko-schedule-list .team-icon{width:20px;height:20px;flex:0 0 20px}
@media(max-width:1180px){.group-schedule-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.group-schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.group-schedule-grid{grid-template-columns:1fr}.schedule-teams{grid-template-columns:1fr auto 1fr}}


/* Kompaktes Layout für die Finalrunde */
.knockout-stage-title{margin:28px 0 12px}
.knockout-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 28px}
.ko-card{background:#151f3d;border:1px solid #2e477a;border-radius:16px;padding:14px;box-shadow:0 8px 20px #0004;min-width:0;overflow:hidden}
.ko-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;color:#fff}
.ko-card-head span{font-size:.82rem;color:#b9cff7;text-align:right}
.ko-meta{display:grid;gap:8px;margin-bottom:14px;font-size:.86rem;line-height:1.25;color:#dce8ff}
.ko-meta small{display:block;color:#96add8;margin-top:2px}
.ko-teams{display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0}
.ko-team{min-width:0;background:#203762;border-radius:12px;padding:9px 10px;font-weight:700}
.ko-team .team{display:flex;max-width:100%;min-width:0}
.ko-team .team span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ko-team .team-icon{width:20px;height:20px;flex:0 0 20px}
.ko-score{align-self:center;justify-self:center;background:#0a1020;border:1px solid #3b5f9a;border-radius:999px;padding:5px 14px;font-weight:800;color:#fff}
.ko-status{font-size:.82rem;color:#c8d7f4;margin-top:10px}
@media(max-width:1180px){.knockout-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.knockout-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.knockout-grid{grid-template-columns:1fr}.ko-meta{font-size:.82rem}}
/* =========================================================
   WM 2026 Theme (USA / Kanada / Mexiko)
   An das ENDE der style.css anhängen
   Stadionbild: /public/img/stadium-bg.png
========================================================= */

:root{
    --wm-blue:#0a1633;
    --wm-blue-light:#1b3f8b;
    --wm-red:#c62828;
    --wm-red-light:#d84343;
    --wm-turquoise:#00bcd4;
    --wm-gold:#ffd54f;
    --wm-card:rgba(16,28,58,.92);
}

/* Stadion-Hintergrund */
html{
    background:#08152f;
}

body{
    position:relative;
    min-height:100vh;
}

body::before{
    content:"";
    position:fixed;
    inset:0;
    background:
        linear-gradient(
            rgba(8,22,51,.60),
            rgba(8,22,51,.65)
        ),
        url("img/stadium-bg.png");
    background-size:cover;
    background-position:center center;
    background-attachment:fixed;
    z-index:-2;
}

body::after{
    content:"";
    position:fixed;
    inset:0;
    background:
        radial-gradient(
            circle at top center,
            rgba(0,188,212,.08),
            transparent 45%
        );
    z-index:-1;
}

/* Header */
header{
    background:
        linear-gradient(
            90deg,
            #0a1633 0%,
            #1b3f8b 50%,
            #c62828 100%
        ) !important;
}

/* Navigation */
.btn,
nav a{
    background:
        linear-gradient(
            180deg,
            #d84343,
            #b71c1c
        ) !important;

    border:1px solid rgba(255,255,255,.15);
    transition:.2s;
}

.btn:hover,
nav a:hover{
    transform:translateY(-1px);
    box-shadow:0 4px 14px rgba(216,67,67,.35);
}

/* Links */
a{
    color:var(--wm-turquoise) !important;
}

/* Karten */
.card,
.node,
.icon-card,
.ko-card{
    background:var(--wm-card) !important;
    backdrop-filter:blur(4px);
    border:1px solid rgba(255,255,255,.08) !important;
}

/* Tabellen */
table{
    background:rgba(18,27,52,.92);
}

th{
    background:
        linear-gradient(
            180deg,
            #1b3f8b,
            #10295f
        ) !important;
}

/* Gruppenüberschriften */
.group-schedule-card h3{
    background:
        linear-gradient(
            90deg,
            #0a1633,
            #1b3f8b,
            #c62828
        ) !important;
}

/* Ergebnisse gold */
.schedule-score,
.ko-score{
    color:var(--wm-gold) !important;
    font-weight:900;
}

/* KO-Teams */
.ko-team{
    background:
        linear-gradient(
            180deg,
            rgba(27,63,139,.95),
            rgba(15,35,80,.95)
        ) !important;
}

/* Hinweisboxen */
.hint{
    background:rgba(18,43,84,.92) !important;
    border-color:#3d74c9 !important;
}

.ok{
    background:rgba(12,80,45,.92) !important;
}

.error{
    background:rgba(110,20,20,.92) !important;
}

/* Teamlogos etwas kräftiger */
.team-icon,
.icon-large{
    box-shadow:
        0 0 0 2px rgba(255,255,255,.08),
        0 2px 8px rgba(0,0,0,.4);
}

.matches{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.match-card{
    width:100%;
    max-width:none;
}

.match-teams{
    display:grid;
    grid-template-columns: 1fr auto 1fr;
    align-items:center;
    gap:16px;
}

.team-home{
    text-align:right;
}

.vs{
    font-weight:bold;
}

.team-away{
    text-align:left;
}

/* Tagesansicht: Spiele chronologisch untereinander */
.cards{
    grid-template-columns:1fr;
}

/* Teamzeile in der Card: Vereine nebeneinander */
.card h3{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:16px;
}

.card h3 .team:first-child{
    justify-content:flex-end;
    text-align:right;
}

.card h3 span{
    justify-self:center;
}

.card h3 .team:last-child{
    justify-content:flex-start;
    text-align:left;
}

table{
    table-layout:fixed;
}

table th:nth-child(1),
table td:nth-child(1){
    width:60px;
}

table th:nth-child(2),
table td:nth-child(2){
    width:38%;
}

table th:nth-child(n+3),
table td:nth-child(n+3){
    text-align:center;
}

.venue-card{
    margin-bottom:12px;
}

.venue-line{
    margin:6px 0;
    line-height:1.5;
    font-size:1rem;
}

.venue-line strong{
    color:#fff;
}
/* Stadionkarte */
.venue-map{
    width:100%;
    height:620px;
    border-radius:18px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 10px 28px #0007;
    background:#102143;
    margin:18px 0 28px;
}

.venue-map-label{
    background:rgba(10,22,51,.94);
    color:#fff;
    border:1px solid rgba(255,255,255,.22);
    border-radius:12px;
    padding:5px 9px;
    box-shadow:0 3px 10px #0007;
    font-weight:700;
    line-height:1.18;
    text-align:center;
}


@media(max-width:760px){
    .venue-map{
        height:360px;
        margin:14px 0 18px;
    }

    .venue-map-label{
        font-size:.78rem;
    }
}


/* Stadionkarte: Leaflet-Fix für korrekt positionierte Kartenkacheln
   Minimalinvasiv: ergänzt kritische Leaflet-Basisregeln lokal,
   falls die externe Leaflet-CSS-Datei nicht zuverlässig greift. */
.venue-map.leaflet-container{
    position:relative;
    overflow:hidden;
    outline:0;
    touch-action:pan-x pan-y;
    font-family:system-ui,-apple-system,Segoe UI,sans-serif;
}

.venue-map .leaflet-pane,
.venue-map .leaflet-tile,
.venue-map .leaflet-marker-icon,
.venue-map .leaflet-marker-shadow,
.venue-map .leaflet-tile-container,
.venue-map .leaflet-pane > svg,
.venue-map .leaflet-pane > canvas,
.venue-map .leaflet-zoom-box,
.venue-map .leaflet-image-layer,
.venue-map .leaflet-layer{
    position:absolute;
    left:0;
    top:0;
}

.venue-map .leaflet-container{
    overflow:hidden;
}

.venue-map .leaflet-tile,
.venue-map .leaflet-marker-icon,
.venue-map .leaflet-marker-shadow{
    user-select:none;
    -webkit-user-drag:none;
}

.venue-map .leaflet-tile{
    filter:contrast(1.02) saturate(.95);
    visibility:inherit;
    border:0;
    max-width:none !important;
}

.venue-map .leaflet-marker-icon,
.venue-map .leaflet-marker-shadow{
    display:block;
}

.venue-map .leaflet-pane{z-index:400}
.venue-map .leaflet-tile-pane{z-index:200}
.venue-map .leaflet-overlay-pane{z-index:400}
.venue-map .leaflet-shadow-pane{z-index:500}
.venue-map .leaflet-marker-pane{z-index:600}
.venue-map .leaflet-tooltip-pane{z-index:650}
.venue-map .leaflet-popup-pane{z-index:700}

.venue-map .leaflet-control-container .leaflet-top,
.venue-map .leaflet-control-container .leaflet-bottom{
    position:absolute;
    z-index:1000;
    pointer-events:none;
}

.venue-map .leaflet-top{top:0}
.venue-map .leaflet-right{right:0}
.venue-map .leaflet-bottom{bottom:0}
.venue-map .leaflet-left{left:0}

.venue-map .leaflet-control{
    position:relative;
    z-index:1000;
    pointer-events:auto;
    float:left;
    clear:both;
}

.venue-map .leaflet-right .leaflet-control{float:right}
.venue-map .leaflet-top .leaflet-control{margin-top:10px}
.venue-map .leaflet-bottom .leaflet-control{margin-bottom:10px}
.venue-map .leaflet-left .leaflet-control{margin-left:10px}
.venue-map .leaflet-right .leaflet-control{margin-right:10px}

.venue-pin{
    width:34px !important;
    height:34px !important;
    margin-left:-17px !important;
    margin-top:-17px !important;
    border-radius:50%;
    background:linear-gradient(180deg,#d84343,#b71c1c);
    border:2px solid rgba(255,255,255,.95);
    box-shadow:0 4px 14px rgba(0,0,0,.65);
    display:flex !important;
    align-items:center;
    justify-content:center;
    font-size:18px;
}

.venue-pin span{
    line-height:1;
}

/* WM_FINAL_10d: Stadionkarte aufgeräumt
   - keine Leaflet-Popups mehr
   - Tooltip zeigt nur Stadionname und Stadt */
.venue-map-label{
    white-space:normal;
    max-width:150px;
}

.venue-map .leaflet-tooltip.venue-map-label{
    pointer-events:none;
}

.venue-map-list{
    margin:18px 0 28px;
}

.venue-map-list h3{
    margin:0 0 12px;
}

.venue-map-list h4{
    margin:22px 0 10px;
}

.venue-map-list-card{
    margin-bottom:10px;
    display:grid;
    gap:5px;
}

.venue-map-list-card strong{
    color:#fff;
}

/* WM_FINAL_6: Stadionliste mit Spielphasen unter der Karte */
.venue-map-list-title{
    font-size:1.05rem;
}

.venue-map-games{
    margin-top:8px;
    font-weight:700;
}

.venue-map-games-list{
    margin:4px 0 8px 26px;
    padding:0;
}

.venue-map-games-list li{
    margin:3px 0;
}


/* WM_FINAL_10: Stadionbilder in der Karten-Stadionliste */
.venue-map-list-card{
    grid-template-columns:minmax(0,1fr) minmax(260px,34%);
    align-items:stretch;
    gap:18px;
}

.venue-map-list-info{
    min-width:0;
}

.venue-map-list-image-wrap{
    min-height:180px;
    border-radius:14px;
    overflow:hidden;
    background:rgba(10,22,51,.72);
    border:1px solid rgba(255,255,255,.10);
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);
}

.venue-map-list-image{
    display:block;
    width:100%;
    height:100%;
    min-height:180px;
    object-fit:cover;
}

@media(max-width:900px){
    .venue-map-list-card{
        grid-template-columns:1fr;
    }

    .venue-map-list-image-wrap,
    .venue-map-list-image{
        min-height:220px;
    }
}

@media(max-width:620px){
    .venue-map-list-image-wrap,
    .venue-map-list-image{
        min-height:170px;
    }
}


/* WM_FINAL_10a: Mobile-Fix Stadionkarte
   - Karte auf dem Handy kürzer, damit die Stadionliste erreichbar bleibt
   - Touch/Scroll wird nicht mehr durch die Leaflet-Karte blockiert
   - Stadionkarten in der Liste bleiben einspaltig und sauber sichtbar */
@media(max-width:760px){
    .venue-map.leaflet-container{
        touch-action:pan-y;
    }

    .venue-map-list{
        margin-top:16px;
        padding-bottom:40px;
    }

    .venue-map-list-card{
        display:block;
        margin-bottom:14px;
    }

    .venue-map-list-image-wrap{
        margin-top:12px;
    }
}

/* Header-Countdown WM-Start */
.header-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    margin-bottom:14px;
}
.header-top h1{
    margin:0;
    line-height:1.1;
}
.wm-countdown{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    padding:7px 12px;
    border-radius:999px;
    background:rgba(8,21,47,.38);
    border:1px solid rgba(255,255,255,.14);
    color:#fff;
    line-height:1.15;
    text-align:right;
    white-space:nowrap;
}
.wm-countdown-label{
    font-size:.92rem;
    font-weight:700;
    color:#f5f8ff;
    white-space:nowrap;
}
.wm-countdown-value{
    font-size:.92rem;
    font-weight:900;
    color:var(--wm-gold,#ffd54f);
    white-space:nowrap;
}
.wm-countdown.is-live .wm-countdown-value{
    color:#7cffb2;
}
@media(max-width:760px){
    .header-top{
        gap:12px;
    }
    .wm-countdown{
        padding:6px 10px;
    }
    .wm-countdown-label,
    .wm-countdown-value{
        font-size:.84rem;
    }
}
@media(max-width:620px){
    .header-top{
        display:block;
        margin-bottom:12px;
    }
    .wm-countdown{
        margin-top:10px;
        justify-content:flex-start;
        text-align:left;
        width:100%;
        white-space:normal;
        flex-wrap:wrap;
        border-radius:14px;
    }
}

/* WM_Final_11: Passwortschutz fuer Wartungsseiten */
.admin-password-body{
    min-height:100vh;
    background:radial-gradient(circle at top,rgba(49,89,142,.35),transparent 42%),#0a1020;
}
.admin-password-main{
    max-width:560px;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
}
.admin-password-box{
    width:100%;
    background:#151f3d;
    border:1px solid #2e477a;
    border-radius:20px;
    padding:24px;
    box-shadow:0 18px 46px #0008;
}
.admin-password-box h1{
    margin:0 0 8px;
}
.admin-password-box h2{
    margin:0 0 10px;
}
.admin-password-label{
    display:block;
    margin:16px 0 6px;
    font-weight:700;
}
.admin-password-input{
    width:100%;
    font-size:1.1rem;
    padding:12px 14px;
    border-radius:12px;
    border:1px solid #31598e;
    background:#0f1830;
    color:#fff;
    outline:none;
}
.admin-password-input:focus{
    border-color:#ffd54f;
    box-shadow:0 0 0 3px rgba(255,213,79,.18);
}
.admin-password-button{
    margin-top:14px;
    width:100%;
    border:0;
    cursor:pointer;
    font-weight:800;
}
.admin-password-hint{
    margin-top:16px;
    font-size:.9rem;
}
@media(max-width:620px){
    .admin-password-main{
        align-items:flex-start;
        padding-top:28px;
    }
    .admin-password-box{
        padding:18px;
    }
}

/* WM_Final_13: Terminplan */
.timetable{
    display:flex;
    flex-direction:column;
    gap:20px;
    margin-top:18px;
}
.timetable-day{
    display:grid;
    grid-template-columns:150px minmax(0,1fr);
    gap:18px;
    align-items:start;
}
.timetable-date{
    position:sticky;
    top:112px;
    background:rgba(10,16,32,.72);
    border:1px solid rgba(255,255,255,.12);
    border-radius:16px;
    padding:14px 16px;
    box-shadow:0 10px 26px #0005;
}
.timetable-date strong{
    display:block;
    font-size:1.35rem;
    line-height:1.1;
    color:#fff;
}
.timetable-date span{
    display:block;
    margin-top:6px;
    color:#b9cff7;
    font-size:.9rem;
}
.timetable-games{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
    gap:14px;
}
.timetable-match{
    background:rgba(16,33,67,.94);
    border:1px solid #31598e;
    border-radius:16px;
    box-shadow:0 8px 20px #0004;
}
@media(max-width:820px){
    .timetable-day{
        grid-template-columns:1fr;
        gap:10px;
    }
    .timetable-date{
        position:static;
        display:flex;
        align-items:baseline;
        justify-content:space-between;
        gap:12px;
    }
    .timetable-games{
        grid-template-columns:1fr;
    }
}
@media(max-width:420px){
    .timetable-date{
        display:block;
    }
    .timetable-date strong{
        font-size:1.2rem;
    }
}

/* WM_Final_13a: Terminplan-Phasenüberschriften */
.timetable-phase{
    display:flex;
    flex-direction:column;
    gap:20px;
}
.timetable-phase + .timetable-phase{
    margin-top:28px;
}
.timetable-phase-title{
    display:grid;
    grid-template-columns:1fr auto auto 1fr;
    align-items:center;
    gap:14px;
    margin:8px 0 2px;
    color:#fff;
    text-align:center;
}
.timetable-phase-title strong{
    font-size:1.35rem;
    line-height:1.1;
    text-transform:uppercase;
    letter-spacing:.08em;
    white-space:nowrap;
    text-shadow:0 2px 10px #0008;
}
.timetable-phase-title em{
    font-style:normal;
    font-size:.92rem;
    color:#ffd54f;
    background:rgba(10,22,51,.72);
    border:1px solid rgba(255,255,255,.14);
    border-radius:999px;
    padding:5px 10px;
    white-space:nowrap;
}
.timetable-phase-line{
    height:2px;
    border-radius:999px;
    background:linear-gradient(90deg,transparent,rgba(255,213,79,.75),rgba(0,188,212,.65),transparent);
    box-shadow:0 0 12px rgba(0,188,212,.18);
}

.header-tools {
    display: flex;
    align-items: center;
    gap: 12px;
}

.wm-refresh-ring {
    width: 34px;
    height: 34px;
    cursor: pointer;
    flex-shrink: 0;
}

.wm-refresh-ring svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.wm-refresh-ring circle {
    fill: none;
    stroke-width: 3;
}

.wm-refresh-ring .ring-bg {
    stroke: rgba(255,255,255,.20);
}

.wm-refresh-ring .ring-progress {
    stroke: #f5c542;
    stroke-linecap: round;
}

@media(max-width:620px){
    .timetable-phase-title{
        grid-template-columns:1fr;
        gap:8px;
        background:rgba(10,22,51,.72);
        border:1px solid rgba(255,255,255,.12);
        border-radius:16px;
        padding:13px 12px;
    }
    .timetable-phase-title strong{
        font-size:1.12rem;
        white-space:normal;
    }
    .timetable-phase-title em{
        justify-self:center;
    }
    .timetable-phase-line{
        display:none;
    }
}

/* WM_Final_13b: Terminplan-Untertrenner Finalrunde */
.timetable-subphase-title{
    display:grid;
    grid-template-columns:1fr auto auto 1fr;
    align-items:center;
    gap:12px;
    margin:12px 0 -4px;
    color:#fff;
    text-align:center;
}
.timetable-subphase-title strong{
    font-size:1.05rem;
    line-height:1.1;
    text-transform:uppercase;
    letter-spacing:.075em;
    white-space:nowrap;
    color:#fff;
    text-shadow:0 2px 10px #0008;
}
.timetable-subphase-title em{
    font-style:normal;
    font-size:.82rem;
    color:#ffd54f;
    background:rgba(10,22,51,.60);
    border:1px solid rgba(255,255,255,.12);
    border-radius:999px;
    padding:4px 9px;
    white-space:nowrap;
}
@media(max-width:620px){
    .timetable-subphase-title{
        grid-template-columns:1fr;
        gap:7px;
        margin:10px 0 -2px;
        background:rgba(10,22,51,.56);
        border:1px solid rgba(255,255,255,.10);
        border-radius:14px;
        padding:10px 12px;
    }
    .timetable-subphase-title strong{
        font-size:.98rem;
        white-space:normal;
    }
    .timetable-subphase-title em{
        justify-self:center;
    }
}

.header-tools {
    display: flex;
    align-items: center;
    gap: 12px;
}

.wm-refresh-ring {
    width: 34px;
    height: 34px;
    cursor: pointer;
    flex-shrink: 0;
}

.wm-refresh-ring svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.wm-refresh-ring circle {
    fill: none;
    stroke-width: 3;
}

.wm-refresh-ring .ring-bg {
    stroke: rgba(255,255,255,.20);
}

.wm-refresh-ring .ring-progress {
    stroke: #f5c542;
    stroke-linecap: round;
}


/* WM_Final_13c: Deutschland-Spiele im Terminplan dezent hervorheben */
.timetable-germany-badge{
    display:inline-block;
    margin-top:8px;
    color:#ffd54f;
    font-weight:900;
    font-size:.9rem;
}

.timetable-match-germany{
    border-color:#ffd54f !important;
    box-shadow:
        0 0 0 1px rgba(255,213,79,.16),
        0 8px 20px rgba(0,0,0,.42),
        0 0 18px rgba(255,213,79,.10) !important;
}

.timetable-match-germany .schedule-score{
    border-color:rgba(255,213,79,.55);
}

@media(max-width:820px){
    .timetable-germany-badge{
        margin-top:0;
    }
}

@media(max-width:420px){
    .timetable-germany-badge{
        margin-top:8px;
    }
}

/* Mobile-Fix Refresh-Ring */
@media(max-width:620px){

    .header-tools{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:10px;
        margin-top:10px;
    }

    .wm-refresh-ring{
        width:20px;
        height:20px;
        flex:0 0 20px;
    }

    .wm-refresh-ring svg{
        display:block;
        width:100%;
        height:100%;
    }
}

@media (max-width: 768px) {
    .wm-refresh-ring {
        display: none;
    }
}

/* =========================================================
   Version 14: Match-Timeline in den Spielkarten
   Zentrale Fortschrittsleiste, Heim-Ereignisse oben, Gast-Ereignisse unten
========================================================= */
.match-card-v14{overflow:visible}
.match-timeline{position:relative;margin:16px 0 12px;padding:2px 6px 6px;min-height:86px;overflow:visible}
.match-timeline-row{position:relative;height:28px;margin:0 34px;overflow:visible}
.match-timeline-row-home{margin-bottom:2px}
.match-timeline-row-away{margin-top:2px}
.match-timeline-bar{position:relative;display:grid;grid-template-columns:28px 1fr 34px;align-items:center;gap:6px;margin:0;color:#b9cff7;font-size:.72rem;line-height:1}
.match-timeline-track{position:relative;display:block;height:8px;border-radius:999px;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);overflow:hidden}
.match-timeline-fill{position:absolute;inset:0 auto 0 0;width:var(--wm-progress,0%);border-radius:999px;background:linear-gradient(90deg,rgba(0,188,212,.95),rgba(255,213,79,.95));box-shadow:0 0 12px rgba(0,188,212,.35)}
.match-timeline-start,.match-timeline-end{white-space:nowrap;opacity:.86}
.match-timeline-now{position:absolute;top:14px;transform:translateX(-50%);font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;background:#c62828;color:#fff;border-radius:999px;padding:3px 6px;box-shadow:0 4px 12px rgba(0,0,0,.35);z-index:4}
.match-event{position:absolute;top:50%;transform:translate(-50%,-50%);border:0;background:transparent;color:#fff;padding:0;cursor:pointer;z-index:3;outline:none}
.match-event::after{content:"";position:absolute;left:50%;width:1px;height:18px;background:rgba(255,255,255,.36);transform:translateX(-50%);pointer-events:none;z-index:-1}
.match-event-top::after{top:18px}.match-event-bottom::after{bottom:18px}.match-event-neutral::after{display:none}
.match-event-symbol{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:rgba(8,18,39,.92);border:1px solid rgba(255,255,255,.28);font-size:15px;line-height:1;box-shadow:0 4px 12px rgba(0,0,0,.38)}
.match-event-minute{position:absolute;left:50%;transform:translateX(-50%);top:24px;font-size:.62rem;color:#c8d7f4;white-space:nowrap;text-shadow:0 1px 3px #000}
.match-timeline-row-home .match-event-minute{top:-13px}.match-timeline-row-away .match-event-minute{top:24px}
.match-event-yellow_card .match-event-symbol,.match-event-yellow_red_card .match-event-symbol{background:rgba(70,55,12,.96)}
.match-event-red_card .match-event-symbol{background:rgba(78,12,22,.96)}
.match-event-popover{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);min-width:150px;max-width:220px;background:#08152f;color:#eaf1ff;border:1px solid #3b5f9a;border-radius:12px;padding:9px 10px;box-shadow:0 10px 28px rgba(0,0,0,.55);font-size:.78rem;line-height:1.25;text-align:left;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;z-index:20}
.match-timeline-row-away .match-event-popover{bottom:auto;top:34px}
.match-event:hover .match-event-popover,.match-event:focus .match-event-popover,.match-event:active .match-event-popover{opacity:1;visibility:visible}
.match-timeline-neutral{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;font-size:.78rem}.match-timeline-neutral .match-event{position:relative;left:auto!important;top:auto;transform:none}.match-timeline-neutral .match-event-minute{display:none}.match-timeline-neutral .match-event-popover{bottom:30px}
@media(max-width:620px){.match-timeline{margin-top:14px;padding-left:0;padding-right:0}.match-timeline-row{margin-left:30px;margin-right:36px}.match-event-symbol{width:22px;height:22px;font-size:14px}.match-event-popover{min-width:138px;max-width:190px;font-size:.74rem}}


/* =========================================================
   Version 14e: Timeline Layout-Fix
   Mitte: Fortschrittsbalken; Heim oben; Gast unten
   Extra robuste Selektoren + Button-Reset gegen Browser-Default
========================================================= */
.card.match-card-v14{
    overflow: visible !important;
}
.match-card-v14 .match-timeline{
    position: relative !important;
    display: block !important;
    width: min(720px, 92%) !important;
    max-width: 720px !important;
    margin: 18px auto 16px auto !important;
    padding: 0 !important;
    min-height: 92px !important;
    overflow: visible !important;
}
.match-card-v14 .match-timeline-row{
    position: relative !important;
    display: block !important;
    height: 30px !important;
    margin-left: 36px !important;
    margin-right: 42px !important;
    overflow: visible !important;
}
.match-card-v14 .match-timeline-row-home{
    margin-bottom: 0 !important;
}
.match-card-v14 .match-timeline-row-away{
    margin-top: 0 !important;
}
.match-card-v14 .match-timeline-bar{
    position: relative !important;
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) 34px !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    color: #d7e4ff !important;
    font-size: .76rem !important;
    line-height: 1 !important;
}
.match-card-v14 .match-timeline-track{
    position: relative !important;
    display: block !important;
    height: 10px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.18) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.16), 0 6px 16px rgba(0,0,0,.28) !important;
    overflow: hidden !important;
}
.match-card-v14 .match-timeline-fill{
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: var(--wm-progress, 0%) !important;
    border-radius: 999px !important;
    background: linear-gradient(90deg, rgba(55,170,255,.95), rgba(255,218,78,.95)) !important;
    box-shadow: 0 0 14px rgba(55,170,255,.45) !important;
}
.match-card-v14 .match-timeline-start,
.match-card-v14 .match-timeline-end{
    display: block !important;
    white-space: nowrap !important;
    opacity: .92 !important;
}
.match-card-v14 .match-event{
    appearance: none !important;
    -webkit-appearance: none !important;
    position: absolute !important;
    top: 50% !important;
    left: 0;
    transform: translate(-50%, -50%) !important;
    display: block !important;
    width: 28px !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: inherit !important;
    font: inherit !important;
    text-align: center !important;
    cursor: pointer !important;
    z-index: 6 !important;
    overflow: visible !important;
    box-shadow: none !important;
}
.match-card-v14 .match-event::after{
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    width: 1px !important;
    height: 22px !important;
    background: rgba(215,228,255,.42) !important;
    transform: translateX(-50%) !important;
    pointer-events: none !important;
    z-index: -1 !important;
}
.match-card-v14 .match-event-top::after{
    top: 22px !important;
}
.match-card-v14 .match-event-bottom::after{
    bottom: 22px !important;
}
.match-card-v14 .match-event-symbol{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 999px !important;
    background: rgba(11, 25, 54, .96) !important;
    border: 1px solid rgba(255,255,255,.30) !important;
    color: #fff !important;
    font-size: 16px !important;
    line-height: 1 !important;
    box-shadow: 0 5px 14px rgba(0,0,0,.42) !important;
}
.match-card-v14 .match-event-minute{
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    display: block !important;
    color: #dce8ff !important;
    font-size: .62rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    text-shadow: 0 1px 3px rgba(0,0,0,.95) !important;
}
.match-card-v14 .match-timeline-row-home .match-event-minute{
    top: -12px !important;
}
.match-card-v14 .match-timeline-row-away .match-event-minute{
    top: 30px !important;
}
.match-card-v14 .match-event-popover{
    position: absolute !important;
    left: 50% !important;
    bottom: 38px !important;
    transform: translateX(-50%) !important;
    display: block !important;
    min-width: 160px !important;
    max-width: 230px !important;
    padding: 10px 11px !important;
    border: 1px solid rgba(115,156,226,.85) !important;
    border-radius: 12px !important;
    background: rgba(7, 18, 42, .98) !important;
    color: #eef5ff !important;
    box-shadow: 0 14px 32px rgba(0,0,0,.58) !important;
    font-size: .78rem !important;
    line-height: 1.28 !important;
    text-align: left !important;
    white-space: normal !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    z-index: 30 !important;
}
.match-card-v14 .match-timeline-row-away .match-event-popover{
    bottom: auto !important;
    top: 38px !important;
}
.match-card-v14 .match-event:hover .match-event-popover,
.match-card-v14 .match-event:focus .match-event-popover,
.match-card-v14 .match-event:focus-visible .match-event-popover,
.match-card-v14 .match-event:active .match-event-popover{
    opacity: 1 !important;
    visibility: visible !important;
}
.match-card-v14 .match-timeline-now{
    position: absolute !important;
    top: 16px !important;
    transform: translateX(-50%) !important;
    z-index: 7 !important;
}
@media (max-width: 620px){
    .match-card-v14 .match-timeline{
        width: 96% !important;
        min-height: 88px !important;
    }
    .match-card-v14 .match-timeline-row{
        margin-left: 32px !important;
        margin-right: 38px !important;
        height: 28px !important;
    }
    .match-card-v14 .match-event,
    .match-card-v14 .match-event-symbol{
        width: 24px !important;
        height: 24px !important;
        font-size: 14px !important;
    }
    .match-card-v14 .match-event-popover{
        min-width: 140px !important;
        max-width: 190px !important;
        font-size: .74rem !important;
    }
}


/* =========================================================
   Version 14f: Tooltip-Überlagerung bei Gastmannschaft fix
   Aktive Spielkarte liegt über folgenden Karten; Popover bleibt sichtbar
========================================================= */
.cards{
    overflow: visible !important;
}
.card.match-card-v14{
    position: relative !important;
    z-index: 1 !important;
    overflow: visible !important;
}
.card.match-card-v14:hover,
.card.match-card-v14:focus-within{
    z-index: 80 !important;
}
.match-card-v14 .match-timeline,
.match-card-v14 .match-timeline-row{
    overflow: visible !important;
}
.match-card-v14 .match-event-popover{
    z-index: 200 !important;
}
/* Gast-Popover etwas höher und mit mehr Abstand zur nächsten Karte */
.match-card-v14 .match-timeline-row-away .match-event-popover{
    top: 34px !important;
}
.card.match-card-v14:has(.match-event:hover),
.card.match-card-v14:has(.match-event:focus),
.card.match-card-v14:has(.match-event:active){
    z-index: 100 !important;
}
@media (max-width: 620px){
    .card.match-card-v14{
        padding-bottom: 24px !important;
    }
    .match-card-v14 .match-timeline-row-away .match-event-popover{
        top: 32px !important;
    }
}

/* =========================================================
   Version 14h: Match-Timeline auch in Terminplan, Vorrunde, Finalrunde
========================================================= */
.schedule-match.match-card-v14,
.ko-card.match-card-v14{
    position: relative !important;
    z-index: 1 !important;
    overflow: visible !important;
}
.schedule-match.match-card-v14:hover,
.schedule-match.match-card-v14:focus-within,
.ko-card.match-card-v14:hover,
.ko-card.match-card-v14:focus-within{
    z-index: 120 !important;
}
.group-schedule-grid,
.ko-schedule-list,
.knockout-grid,
.timetable-games,
.timetable-day,
.timetable-phase,
.timetable{
    overflow: visible !important;
}
.schedule-match.match-card-v14 .match-timeline,
.ko-card.match-card-v14 .match-timeline{
    width: min(72%, 620px) !important;
    margin-top: 12px !important;
    margin-bottom: 14px !important;
}
.schedule-match.match-card-v14 .match-timeline-row,
.ko-card.match-card-v14 .match-timeline-row{
    margin-left: 34px !important;
    margin-right: 38px !important;
}
.schedule-match.match-card-v14 .schedule-place,
.schedule-match.match-card-v14 .schedule-time,
.ko-card.match-card-v14 .ko-status{
    clear: both !important;
}
.schedule-match.match-card-v14:has(.match-event:hover),
.schedule-match.match-card-v14:has(.match-event:focus),
.schedule-match.match-card-v14:has(.match-event:active),
.ko-card.match-card-v14:has(.match-event:hover),
.ko-card.match-card-v14:has(.match-event:focus),
.ko-card.match-card-v14:has(.match-event:active){
    z-index: 160 !important;
}
@media (max-width: 760px){
    .schedule-match.match-card-v14 .match-timeline,
    .ko-card.match-card-v14 .match-timeline{
        width: 96% !important;
    }
}


/* =========================================================
   Version 14j: Tagesansicht Mobile-Overflow-Fix
   Die Day-Spielkarten nutzen h3; diese Zeile darf auf schmalen Displays
   nicht breiter als die Karte werden. Terminplan war bereits minmax/min-width robust.
========================================================= */
.card.match-card-v14{
    max-width: 100% !important;
}
.card.match-card-v14 h3{
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
}
.card.match-card-v14 h3 .team{
    min-width: 0 !important;
    max-width: 100% !important;
}
.card.match-card-v14 h3 .team span:last-child{
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.card.match-card-v14 h3 > span{
    flex: 0 0 auto !important;
}
@media (max-width: 760px){
    .cards{
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .card.match-card-v14{
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    .card.match-card-v14 h3{
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
        font-size: 1rem !important;
    }
    .card.match-card-v14 h3 .team:first-child{
        justify-content: flex-end !important;
        text-align: right !important;
    }
    .card.match-card-v14 h3 .team:last-child{
        justify-content: flex-start !important;
        text-align: left !important;
    }
    .card.match-card-v14 h3 > span{
        justify-self: center !important;
        margin: 0 !important;
        padding: 5px 8px !important;
        font-size: .95rem !important;
    }
    .card.match-card-v14 .team-icon{
        width: 20px !important;
        height: 20px !important;
        flex: 0 0 20px !important;
    }
    .card.match-card-v14 .match-timeline{
        width: 100% !important;
        max-width: 100% !important;
    }
}
@media (max-width: 420px){
    .card.match-card-v14 h3{
        gap: 6px !important;
        font-size: .94rem !important;
    }
    .card.match-card-v14 h3 > span{
        padding: 4px 7px !important;
        font-size: .9rem !important;
    }
    .card.match-card-v14 .team-icon{
        width: 18px !important;
        height: 18px !important;
        flex-basis: 18px !important;
    }
}
@media (max-width: 360px){
    .card.match-card-v14 h3{
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        text-align: center !important;
    }
    .card.match-card-v14 h3 .team:first-child,
    .card.match-card-v14 h3 .team:last-child{
        justify-content: center !important;
        text-align: center !important;
    }
}

/* =========================================================
   Version 14l: Day heading removed + touch tooltip handling
   ========================================================= */
.day-toolbar{
    margin-top: 0 !important;
}
.match-card-v14 .match-event.is-open .match-event-popover{
    opacity: 1 !important;
    visibility: visible !important;
}
@media (hover:none), (pointer:coarse){
    .match-card-v14 .match-event:hover .match-event-popover,
    .match-card-v14 .match-event:focus .match-event-popover,
    .match-card-v14 .match-event:focus-visible .match-event-popover,
    .match-card-v14 .match-event:active .match-event-popover{
        opacity: 0 !important;
        visibility: hidden !important;
    }
    .match-card-v14 .match-event.is-open .match-event-popover{
        opacity: 1 !important;
        visibility: visible !important;
    }
}

/* VERSION 15 – Torschützen / ewige WM-Torschützenliste */
.scorer-section{
    margin:18px 0 28px;
    background:rgba(10,16,32,.72);
    border:1px solid rgba(74,121,190,.55);
    border-radius:18px;
    padding:16px;
    box-shadow:0 10px 28px rgba(0,0,0,.35);
}
.scorer-section h3{
    margin:0 0 12px;
    font-size:1.25rem;
}
.scorer-table-wrap{
    overflow:auto;
    border-radius:14px;
    border:1px solid rgba(74,121,190,.35);
}
.scorer-table{
    margin:0;
    min-width:620px;
    background:rgba(14,28,56,.88);
}
.scorer-table th{
    background:linear-gradient(180deg,#24477f,#173462);
    color:#fff;
}
.scorer-table td,.scorer-table th{
    white-space:nowrap;
}
.scorer-table td:nth-child(1),
.scorer-table td:nth-child(4),
.scorer-table td:nth-child(5),
.scorer-table td:nth-child(6){
    text-align:right;
}
.scorer-code{
    display:inline-block;
    margin-left:6px;
    color:#9fc2ff;
    font-size:.78em;
    letter-spacing:.04em;
}
@media(max-width:620px){
    .scorer-section{padding:12px;margin:14px 0 22px}
    .scorer-table{font-size:.86rem;min-width:560px}
    .scorer-table-alltime{min-width:720px}
}

/* VERSION 15.0 – saubere Scorer-Darstellung */
.scorer-table-alltime{min-width:860px}
.scorer-table-alltime td:nth-child(7),
.scorer-table-alltime th:nth-child(7){text-align:right}
.scorer-status{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px 9px;
    border-radius:999px;
    font-size:.86em;
    font-weight:800;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.07);
}
.scorer-status.is-active{
    color:#aaffc2;
    background:rgba(34,197,94,.12);
    border-color:rgba(34,197,94,.35);
}
.scorer-status.is-retired{
    color:#d9e4ff;
    background:rgba(255,255,255,.06);
}
.scorer-diff{
    display:inline-block;
    min-width:2.4em;
    text-align:right;
    color:#b8c7e8;
}
.scorer-diff-plus{
    color:#77ff9e;
    font-weight:900;
}
@media(max-width:620px){
    .scorer-table-alltime{min-width:820px}
}


/* VERSION 15.0d – Ewige Liste: korrekte Spalten + Platzveränderung */
.scorer-table-alltime{
    min-width:840px;
    table-layout:fixed;
}
.scorer-table-alltime th,
.scorer-table-alltime td{
    padding-left:10px;
    padding-right:10px;
}
.scorer-table-alltime th:nth-child(1),
.scorer-table-alltime td:nth-child(1){
    width:32px;
    min-width:32px;
    max-width:32px;
    text-align:right;
    padding-left:5px;
    padding-right:7px;
}
.scorer-table-alltime th:nth-child(2),
.scorer-table-alltime td:nth-child(2){
    width:31%;
    text-align:left;
}
.scorer-table-alltime th:nth-child(3),
.scorer-table-alltime td:nth-child(3){
    width:17%;
    text-align:left;
}
.scorer-table-alltime th:nth-child(4),
.scorer-table-alltime td:nth-child(4),
.scorer-table-alltime th:nth-child(5),
.scorer-table-alltime td:nth-child(5),
.scorer-table-alltime th:nth-child(6),
.scorer-table-alltime td:nth-child(6){
    width:11%;
    text-align:right;
}
.scorer-table-alltime th:nth-child(7),
.scorer-table-alltime td:nth-child(7){
    width:15%;
    text-align:right;
}
.scorer-table-alltime th:nth-child(4){
    white-space:normal;
    line-height:1.1;
}
.scorer-player strong{
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.rank-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    min-width:18px;
    font-size:.86em;
    font-weight:900;
    line-height:1;
}
.rank-up,.scorer-diff-up{
    color:#62ff91;
}
.rank-down,.scorer-diff-down{
    color:#ff6b6b;
}
.rank-same{
    color:#8ea3ca;
    font-size:.72em;
}
.scorer-diff-down{
    font-weight:900;
}
@media(max-width:620px){
    .scorer-table-alltime{min-width:760px;font-size:.82rem}
    .scorer-table-alltime th,
    .scorer-table-alltime td{padding-left:8px;padding-right:8px}
    .scorer-table-alltime th:nth-child(1),
    .scorer-table-alltime td:nth-child(1){width:28px;min-width:28px;max-width:28px}
    .rank-arrow{width:16px;min-width:16px}
}

/* VERSION 15.1 – Ewige Torschützenliste final: Tore vor WM + WM-Differenz */
.scorer-table-alltime{
    min-width:780px;
    table-layout:fixed;
}
.scorer-table-alltime th,
.scorer-table-alltime td{
    vertical-align:middle;
}
.scorer-table-alltime th:nth-child(1),
.scorer-table-alltime td:nth-child(1){
    width:34px;
    min-width:34px;
    max-width:34px;
    padding-left:5px;
    padding-right:7px;
    text-align:right;
}
.scorer-table-alltime th:nth-child(2),
.scorer-table-alltime td:nth-child(2){
    width:25%;
    text-align:left;
}
.scorer-table-alltime th:nth-child(3),
.scorer-table-alltime td:nth-child(3){
    width:17%;
    text-align:left;
}
.scorer-table-alltime th:nth-child(4),
.scorer-table-alltime td:nth-child(4),
.scorer-table-alltime th:nth-child(5),
.scorer-table-alltime td:nth-child(5),
.scorer-table-alltime th:nth-child(6),
.scorer-table-alltime td:nth-child(6){
    width:11%;
    text-align:right;
}
.scorer-table-alltime th:nth-child(7),
.scorer-table-alltime td:nth-child(7){
    width:14%;
    text-align:right;
}
.scorer-table-alltime th:nth-child(4){
    white-space:normal;
    line-height:1.08;
}
.scorer-diff-zero{
    color:#8ea3ca;
}
@media(max-width:620px){
    .scorer-table-alltime{min-width:735px;font-size:.82rem}
    .scorer-table-alltime th:nth-child(1),
    .scorer-table-alltime td:nth-child(1){width:28px;min-width:28px;max-width:28px}
    .scorer-table-alltime th,
    .scorer-table-alltime td{padding-left:7px;padding-right:7px}
}

/* VERSION 15.6 – Turnierbaum nur Desktop */
.desktop-only-nav{display:inline-block}
.tournament-bracket-page{min-width:1180px}
.bracket-hero{margin-bottom:18px;background:rgba(10,22,51,.82);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:18px 20px;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.bracket-hero h2{margin:0 0 6px;font-size:2rem}
.bracket-hero p{margin:0;color:#c8d7f4}
.wm-bracket{display:grid;grid-template-columns:1.25fr 1.08fr .98fr .9fr 1.1fr .9fr .98fr 1.08fr 1.25fr;gap:14px;align-items:center;overflow-x:auto;padding:8px 4px 24px}
.bracket-column{display:flex;flex-direction:column;justify-content:center;min-width:142px;position:relative}
.bracket-column h3{text-align:center;margin:0 0 10px;font-size:.92rem;color:#eaf3ff;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 2px 8px #000}
.bracket-column-matches{display:flex;flex-direction:column;justify-content:space-around;gap:14px;min-height:760px}
.bracket-stage-r16 .bracket-column-matches{min-height:690px;gap:54px}
.bracket-stage-qf .bracket-column-matches{min-height:600px;gap:140px}
.bracket-stage-sf .bracket-column-matches{min-height:500px;gap:0}
.bracket-column-final{align-self:center;min-width:190px;gap:16px}
.bracket-column-final .bracket-match{transform:scale(1.04)}
.bracket-third-title{margin-top:22px!important;color:#ffd54f!important}
.bracket-match{position:relative;background:linear-gradient(180deg,rgba(17,42,91,.96),rgba(13,24,54,.96));border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:9px;box-shadow:0 8px 22px rgba(0,0,0,.35);overflow:hidden}
.bracket-match::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(255,213,79,.14),transparent 52%);pointer-events:none}
.bracket-match-head{display:flex;justify-content:space-between;gap:8px;color:#aecaef;font-size:.72rem;margin-bottom:6px;position:relative}
.bracket-team{position:relative;min-height:25px;background:rgba(255,255,255,.08);border-radius:9px;padding:5px 7px;margin:4px 0;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bracket-team .team{max-width:100%;gap:5px}
.bracket-team .team span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bracket-team .team-icon{width:18px;height:18px;flex:0 0 18px}
.bracket-score{position:relative;text-align:center;color:#ffd54f;font-weight:900;font-size:.95rem;line-height:1;margin:5px 0}
.bracket-venue{position:relative;color:#92addb;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:6px}
.bracket-side-left .bracket-match::after,.bracket-side-right .bracket-match::after{content:"";position:absolute;top:50%;width:14px;border-top:2px solid rgba(255,255,255,.42)}
.bracket-side-left .bracket-match::after{right:-14px}
.bracket-side-right .bracket-match::after{left:-14px}
@media(max-width:900px){.desktop-only-nav,.desktop-only-page{display:none!important}}

/* VERSION 15.7 – Turnierbaum Desktop: Container, Live-Balken, Elfmeterschießen */
.tournament-bracket-page{
  width:calc(100vw - 40px);
  max-width:none;
  min-width:0;
  margin-left:calc(50% - 50vw + 20px);
  margin-right:calc(50% - 50vw + 20px);
}
.bracket-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  padding:4px 6px 18px;
  border-radius:18px;
  scrollbar-color:rgba(255,213,79,.65) rgba(255,255,255,.12);
}
.bracket-scroll::-webkit-scrollbar{height:12px}
.bracket-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.12);border-radius:999px}
.bracket-scroll::-webkit-scrollbar-thumb{background:rgba(255,213,79,.68);border-radius:999px}
.wm-bracket{
  min-width:1760px;
  width:max-content;
  overflow:visible;
  padding-left:8px;
  padding-right:8px;
}
.bracket-column{min-width:172px}
.bracket-column-final{min-width:220px}
.bracket-match{width:172px}
.bracket-column-final .bracket-match{width:220px}
.bracket-match .match-timeline{
  margin:7px 0 5px;
  padding:0 1px 2px;
  min-height:38px;
  font-size:.64rem;
}
.bracket-match .match-timeline-row{
  height:12px;
  margin-left:22px;
  margin-right:25px;
}
.bracket-match .match-timeline-bar{
  grid-template-columns:20px 1fr 25px;
  gap:4px;
  font-size:.58rem;
}
.bracket-match .match-timeline-track{height:6px}
.bracket-match .match-event-symbol{
  width:16px;
  height:16px;
  font-size:10px;
}
.bracket-match .match-event-minute{display:none}
.bracket-match .match-event-popover{font-size:.68rem;min-width:128px;max-width:170px}
.bracket-match .match-timeline-now{
  top:10px;
  font-size:.5rem;
  padding:2px 5px;
}
.penalty-shootout{
  position:relative;
  margin:7px 0 5px;
  padding:6px 7px;
  border-radius:10px;
  background:rgba(0,0,0,.20);
  border:1px solid rgba(255,255,255,.12);
}
.penalty-shootout-title{
  margin-bottom:4px;
  color:#ffd54f;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.penalty-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 18px;
  align-items:center;
  gap:5px;
  font-size:.66rem;
  line-height:1.25;
}
.penalty-team{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:#dbe8ff;
}
.penalty-dots{
  display:flex;
  gap:2px;
  justify-content:flex-end;
  min-width:24px;
}
.penalty-dot-goal{color:#37d67a;text-shadow:0 0 7px rgba(55,214,122,.55)}
.penalty-row strong{color:#fff;text-align:right}
@media(max-width:900px){
  .tournament-bracket-page{display:none!important}
}

/* VERSION 15.8 – Turnierbaum: feste Rasterbreite statt prozentualer Fr-Spalten */
.bracket-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
}
.wm-bracket{
  display:grid;
  grid-template-columns:180px 180px 180px 180px 230px 180px 180px 180px 180px !important;
  gap:16px !important;
  width:1848px !important;
  min-width:1848px !important;
  max-width:1848px !important;
  box-sizing:border-box;
}
.bracket-column{
  width:180px !important;
  min-width:180px !important;
  max-width:180px !important;
}
.bracket-column-final{
  width:230px !important;
  min-width:230px !important;
  max-width:230px !important;
}
.bracket-match{
  width:100% !important;
  max-width:100% !important;
}
.bracket-column-final .bracket-match{
  width:100% !important;
}
.bracket-hero{
  max-width:100%;
}

/* VERSION 15.9 – Turnierbaum: gleichmäßige, kompakte Rundenabstände */
:root{
  --bracket-card-w:172px;
  --bracket-final-w:220px;
  --bracket-gap:8px;
  --bracket-total-w:1712px;
}
.bracket-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
}
.wm-bracket{
  display:grid;
  grid-template-columns:var(--bracket-card-w) var(--bracket-card-w) var(--bracket-card-w) var(--bracket-card-w) var(--bracket-final-w) var(--bracket-card-w) var(--bracket-card-w) var(--bracket-card-w) var(--bracket-card-w) !important;
  gap:var(--bracket-gap) !important;
  column-gap:var(--bracket-gap) !important;
  row-gap:0 !important;
  justify-content:start !important;
  align-items:center;
  width:var(--bracket-total-w) !important;
  min-width:var(--bracket-total-w) !important;
  max-width:var(--bracket-total-w) !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box;
}
.bracket-column{
  width:var(--bracket-card-w) !important;
  min-width:var(--bracket-card-w) !important;
  max-width:var(--bracket-card-w) !important;
}
.bracket-column-final{
  width:var(--bracket-final-w) !important;
  min-width:var(--bracket-final-w) !important;
  max-width:var(--bracket-final-w) !important;
}
.bracket-match{
  width:100% !important;
  max-width:100% !important;
}
.bracket-side-left .bracket-match::after,
.bracket-side-right .bracket-match::after{
  width:var(--bracket-gap);
}
.bracket-side-left .bracket-match::after{right:calc(-1 * var(--bracket-gap))}
.bracket-side-right .bracket-match::after{left:calc(-1 * var(--bracket-gap))}

/* VERSION 15.10 – Turnierbaum: Slot-Mittelpunkte statt Kartenhöhe */
:root{
  --bracket-card-w:172px;
  --bracket-final-w:220px;
  --bracket-gap:8px;
  --bracket-total-w:1712px;
  --bracket-field-h:980px;
}
.wm-bracket{
  margin-left:auto !important;
  margin-right:auto !important;
  align-items:stretch !important;
}
.bracket-column{
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  align-self:stretch !important;
}
.bracket-column h3{
  flex:0 0 auto;
  min-height:34px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  margin:0 0 8px !important;
}
.bracket-column-matches{
  position:relative !important;
  display:block !important;
  height:var(--bracket-field-h) !important;
  min-height:var(--bracket-field-h) !important;
  max-height:none !important;
  gap:0 !important;
}
.bracket-slot{
  position:absolute;
  left:0;
  right:0;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.bracket-column-final{
  align-self:stretch !important;
  gap:0 !important;
}
.bracket-final-field{
  position:relative;
  height:calc(var(--bracket-field-h) + 42px);
  min-height:calc(var(--bracket-field-h) + 42px);
}
.bracket-final-slot{
  position:absolute;
  left:0;
  right:0;
  transform:translateY(-50%);
}
.bracket-final-main{top:50%}
.bracket-third-main{top:74%}
.bracket-final-title{
  color:#ffd54f !important;
  font-size:1rem !important;
  letter-spacing:.05em;
  text-shadow:0 0 12px rgba(255,213,79,.38),0 2px 8px #000;
}
.bracket-third-title{
  color:#d7e3f8 !important;
  font-size:.78rem !important;
  letter-spacing:.04em;
  margin-top:0 !important;
  text-shadow:0 2px 8px #000;
}
.bracket-column-final .bracket-match{
  transform:none !important;
}
.bracket-match{
  max-height:none !important;
}

/* VERSION 15.11 – Turnierbaum: echtes Slot-Raster, keine Prozent-Topwerte */
:root{
  --bracket-card-w:172px;
  --bracket-final-w:220px;
  --bracket-gap:8px;
  --bracket-total-w:1712px;
  --bracket-slot-h:170px;
}
.bracket-scroll{
  overflow-x:auto !important;
  overflow-y:visible !important;
  padding:4px 6px 22px !important;
}
.wm-bracket{
  display:grid !important;
  grid-template-columns:var(--bracket-card-w) var(--bracket-card-w) var(--bracket-card-w) var(--bracket-card-w) var(--bracket-final-w) var(--bracket-card-w) var(--bracket-card-w) var(--bracket-card-w) var(--bracket-card-w) !important;
  gap:var(--bracket-gap) !important;
  width:var(--bracket-total-w) !important;
  min-width:var(--bracket-total-w) !important;
  max-width:var(--bracket-total-w) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  align-items:start !important;
  overflow:visible !important;
}
.bracket-column,
.bracket-column-final{
  width:var(--bracket-card-w) !important;
  min-width:var(--bracket-card-w) !important;
  max-width:var(--bracket-card-w) !important;
  align-self:start !important;
}
.bracket-column-final{
  width:var(--bracket-final-w) !important;
  min-width:var(--bracket-final-w) !important;
  max-width:var(--bracket-final-w) !important;
}
.bracket-column h3{
  height:42px !important;
  min-height:42px !important;
  margin:0 0 8px !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
}
.bracket-column-matches{
  position:relative !important;
  display:grid !important;
  grid-template-rows:repeat(8,var(--bracket-slot-h)) !important;
  height:auto !important;
  min-height:calc(8 * var(--bracket-slot-h)) !important;
  max-height:none !important;
  gap:0 !important;
  overflow:visible !important;
}
.bracket-slot{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:visible !important;
  min-height:0 !important;
}
.bracket-stage-r32 .bracket-slot:nth-child(1){grid-row:1 / 2}
.bracket-stage-r32 .bracket-slot:nth-child(2){grid-row:2 / 3}
.bracket-stage-r32 .bracket-slot:nth-child(3){grid-row:3 / 4}
.bracket-stage-r32 .bracket-slot:nth-child(4){grid-row:4 / 5}
.bracket-stage-r32 .bracket-slot:nth-child(5){grid-row:5 / 6}
.bracket-stage-r32 .bracket-slot:nth-child(6){grid-row:6 / 7}
.bracket-stage-r32 .bracket-slot:nth-child(7){grid-row:7 / 8}
.bracket-stage-r32 .bracket-slot:nth-child(8){grid-row:8 / 9}
.bracket-stage-r16 .bracket-slot:nth-child(1){grid-row:1 / 3}
.bracket-stage-r16 .bracket-slot:nth-child(2){grid-row:3 / 5}
.bracket-stage-r16 .bracket-slot:nth-child(3){grid-row:5 / 7}
.bracket-stage-r16 .bracket-slot:nth-child(4){grid-row:7 / 9}
.bracket-stage-qf .bracket-slot:nth-child(1){grid-row:1 / 5}
.bracket-stage-qf .bracket-slot:nth-child(2){grid-row:5 / 9}
.bracket-stage-sf .bracket-slot:nth-child(1){grid-row:1 / 9}
.bracket-final-field{
  position:relative !important;
  display:grid !important;
  grid-template-rows:repeat(8,var(--bracket-slot-h)) !important;
  height:auto !important;
  min-height:calc(8 * var(--bracket-slot-h)) !important;
  max-height:none !important;
  overflow:visible !important;
  padding-top:50px !important;
}
.bracket-final-slot{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  overflow:visible !important;
}
.bracket-final-main{grid-row:4 / 6 !important}
.bracket-third-main{grid-row:7 / 9 !important}
.bracket-final-title,
.bracket-third-title{
  text-align:center !important;
  margin:0 0 8px !important;
}
.bracket-final-title{
  color:#ffd54f !important;
  font-size:1rem !important;
}
.bracket-third-title{
  color:#d7e3f8 !important;
  font-size:.78rem !important;
}
.bracket-match{
  width:100% !important;
  max-width:100% !important;
  max-height:none !important;
}
.bracket-column-final .bracket-match{
  width:100% !important;
  transform:none !important;
}

/* VERSION 15.12 – Turnierbaum: Kartenhöhe maximal reserviert, damit Live/Elfmeterschießen nichts verschiebt */
:root{
  --bracket-card-h:260px;
  --bracket-slot-h:278px;
}
.wm-bracket{
  margin-left:auto !important;
  margin-right:auto !important;
}
.bracket-column-matches,
.bracket-final-field{
  grid-template-rows:repeat(8,var(--bracket-slot-h)) !important;
  min-height:calc(8 * var(--bracket-slot-h)) !important;
}
.bracket-final-field{
  padding-top:50px !important;
}
.bracket-match{
  height:var(--bracket-card-h) !important;
  min-height:var(--bracket-card-h) !important;
  max-height:var(--bracket-card-h) !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
.bracket-match-head,
.bracket-team,
.bracket-score,
.bracket-venue,
.bracket-match .match-timeline,
.bracket-match .penalty-shootout{
  flex:0 0 auto;
}
.bracket-match .match-timeline{
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  margin:7px 0 5px !important;
  overflow:visible !important;
}
.bracket-match .bracket-timeline-placeholder{
  visibility:hidden !important;
}
.bracket-match .penalty-shootout{
  height:48px !important;
  min-height:48px !important;
  max-height:48px !important;
  margin:5px 0 !important;
  overflow:hidden !important;
}
.bracket-match .penalty-shootout-placeholder{
  visibility:hidden !important;
}
.bracket-venue{
  margin-top:auto !important;
}
.bracket-final-title{
  color:#ffd54f !important;
  font-size:1.08rem !important;
  font-weight:900 !important;
}
.bracket-third-title{
  color:#c7d4ec !important;
  font-size:.76rem !important;
  font-weight:800 !important;
}

/* VERSION 15.13 – Turnierbaum: Koordinatensystem statt Grid/Flex-Fluss */
:root{
  --bracket-abs-w:1910px;
  --bracket-abs-h:1905px;
  --bracket-card-h:220px;
}
.tournament-bracket-page{
  min-width:0 !important;
}
.bracket-scroll{
  width:100% !important;
  max-width:100% !important;
  overflow:auto !important;
  padding:8px 8px 24px !important;
}
.wm-bracket.wm-bracket-absolute{
  position:relative !important;
  display:block !important;
  width:var(--bracket-abs-w) !important;
  min-width:var(--bracket-abs-w) !important;
  max-width:none !important;
  height:var(--bracket-abs-h) !important;
  min-height:var(--bracket-abs-h) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  overflow:visible !important;
  padding:0 !important;
}
.bracket-stage-label{
  position:absolute !important;
  top:0 !important;
  height:46px !important;
  margin:0 !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
  text-align:center !important;
  color:#eaf3ff !important;
  font-size:.9rem !important;
  line-height:1.15 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  text-shadow:0 2px 8px #000 !important;
  z-index:2 !important;
}
.bracket-stage-label-final{
  color:#ffd54f !important;
  font-size:1.02rem !important;
  font-weight:900 !important;
}
.bracket-node-wrap{
  position:absolute !important;
  z-index:3 !important;
}
.bracket-node-wrap-final{z-index:4 !important;}
.bracket-node-wrap-third{z-index:3 !important;}
.bracket-node-wrap-third .bracket-third-title{
  margin:0 0 8px !important;
  text-align:center !important;
  color:#c7d4ec !important;
  font-size:.76rem !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
}
.bracket-match{
  width:100% !important;
  height:var(--bracket-card-h) !important;
  min-height:var(--bracket-card-h) !important;
  max-height:var(--bracket-card-h) !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
.bracket-match-final{
  border-color:rgba(255,213,79,.42) !important;
  box-shadow:0 0 0 1px rgba(255,213,79,.18),0 10px 28px rgba(0,0,0,.42) !important;
}
.bracket-match-third{
  opacity:.92 !important;
}
.bracket-match-head{font-size:.68rem !important;margin-bottom:4px !important;}
.bracket-team{min-height:24px !important;padding:4px 7px !important;margin:3px 0 !important;}
.bracket-score{font-size:.88rem !important;margin:4px 0 !important;}
.bracket-match .match-timeline{
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  margin:5px 0 4px !important;
  overflow:visible !important;
}
.bracket-match .bracket-timeline-placeholder{visibility:hidden !important;}
.bracket-match .penalty-shootout{
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  margin:3px 0 !important;
  overflow:hidden !important;
  font-size:.68rem !important;
}
.bracket-match .penalty-shootout-placeholder{visibility:hidden !important;}
.bracket-venue{
  margin-top:auto !important;
  font-size:.66rem !important;
}
.bracket-column,
.bracket-column-final,
.bracket-column-matches,
.bracket-final-field,
.bracket-slot,
.bracket-final-slot{
  all:revert-layer;
}
@media(max-width:900px){
  .desktop-only-nav,.desktop-only-page{display:none!important}
}


/* VERSION 15.14 – Turnierbaum: Kartenhöhe für Grunddaten + Timeline + Elfmeterschießen vollständig reserviert */
:root{
  --bracket-abs-h:2380px;
  --bracket-card-h:270px;
}
.wm-bracket.wm-bracket-absolute{
  height:var(--bracket-abs-h) !important;
  min-height:var(--bracket-abs-h) !important;
}
.bracket-match{
  height:var(--bracket-card-h) !important;
  min-height:var(--bracket-card-h) !important;
  max-height:var(--bracket-card-h) !important;
  padding:9px !important;
}
.bracket-match-head{
  flex:0 0 16px !important;
  min-height:16px !important;
}
.bracket-team{
  flex:0 0 28px !important;
  min-height:28px !important;
  display:flex !important;
  align-items:center !important;
}
.bracket-score{
  flex:0 0 18px !important;
  min-height:18px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.bracket-match .match-timeline{
  flex:0 0 44px !important;
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  margin:7px 0 5px !important;
}
.bracket-match .penalty-shootout{
  flex:0 0 52px !important;
  height:52px !important;
  min-height:52px !important;
  max-height:52px !important;
  margin:5px 0 !important;
}
.bracket-venue{
  flex:0 0 32px !important;
  min-height:32px !important;
  max-height:32px !important;
  margin-top:auto !important;
  white-space:normal !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  line-height:1.25 !important;
}


/* VERSION 15.15 – Turnierbaum: absolute Bühne auf Desktopbreite eingepasst, rechter Rand nicht mehr angeschnitten */
:root{
  --bracket-abs-w:1650px;
}
.wm-bracket.wm-bracket-absolute{
  width:var(--bracket-abs-w) !important;
  min-width:var(--bracket-abs-w) !important;
}
.bracket-stage-label{
  overflow:visible !important;
}

/* VERSION 15.16 – Turnierbaum: Verbindungslinien und Gewinnerpfad */
.bracket-lines{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  z-index:1 !important;
  pointer-events:none !important;
  overflow:visible !important;
}
.bracket-line{
  fill:none !important;
  stroke:rgba(220,232,255,.38) !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.65));
}
.bracket-line-third{
  stroke:rgba(200,213,235,.26) !important;
  stroke-dasharray:5 5 !important;
}
.bracket-line-winner{
  stroke:#ffd54f !important;
  stroke-width:3 !important;
  filter:drop-shadow(0 0 6px rgba(255,213,79,.46));
}
.bracket-line-third.bracket-line-winner{
  stroke:#d9b06a !important;
  stroke-width:2.5 !important;
  filter:drop-shadow(0 0 5px rgba(217,176,106,.34));
}
.bracket-match-decided{
  border-color:rgba(255,213,79,.36) !important;
}
.bracket-team-winner{
  background:linear-gradient(90deg,rgba(255,213,79,.34),rgba(255,255,255,.10)) !important;
  color:#fff7d5 !important;
  box-shadow:inset 3px 0 0 #ffd54f,0 0 10px rgba(255,213,79,.18) !important;
}
.bracket-team-winner::after{
  content:"✓";
  position:absolute;
  right:7px;
  top:50%;
  transform:translateY(-50%);
  color:#ffd54f;
  font-weight:900;
  text-shadow:0 1px 4px #000;
}

/* VERSION 15.17 – Turnierbaum: SVG-Klammern pro Spielpaar statt langer Einzellinien */
.bracket-line-pair{
  fill:none !important;
  stroke:rgba(180,216,255,.46) !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.65));
}
.bracket-line-pair.bracket-line-third{
  stroke:rgba(200,213,235,.28) !important;
  stroke-dasharray:5 5 !important;
}
.bracket-line{
  display:none !important;
}
.bracket-line-winner{
  fill:none !important;
  stroke:#ffd54f !important;
  stroke-width:3 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  filter:drop-shadow(0 0 6px rgba(255,213,79,.50));
}
.bracket-line-winner.bracket-line-third{
  stroke:#d9b06a !important;
  stroke-width:2.5 !important;
  stroke-dasharray:5 5 !important;
  filter:drop-shadow(0 0 5px rgba(217,176,106,.34));
}

/* VERSION 15.18 – Turnierbaum: Klammerknoten direkt vor der Folgespielkarte */
.bracket-line-pair{
  stroke:rgba(168,210,255,.54) !important;
  stroke-width:2.2 !important;
}
.bracket-line-pair.bracket-line-third{
  stroke:rgba(200,213,235,.30) !important;
}
.bracket-line-winner{
  stroke-width:3.2 !important;
}

/* VERSION 15.19 – Turnierbaum: Split-Verbindungen von Vorgänger-Mitte zu Folgespiel oben/unten */
.bracket-line-pair-split{
  stroke:rgba(118,205,255,.58) !important;
  stroke-width:2.2 !important;
}
.bracket-line-winner-split{
  stroke-width:3.2 !important;
}

/* =========================================================
   Version 15.42: KO-Fallback Verlängerung / Elfmeterschießen
   - Shootout-Elfmeter ohne Minute werden aus der Timeline genommen
   - Kompakte Ergebnisanzeige: 1:1 (4:5 n.E.)
   - Tooltips an Kartenkanten bleiben sichtbar
========================================================= */
.match-timeline-note{
    margin: 4px auto 0;
    width: min(720px, 92%);
    text-align: center;
    color: rgba(230,239,255,.88);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
}
.match-card-v14 .match-event-edge-left .match-event-popover{
    left: 0 !important;
    transform: translateX(-8px) !important;
}
.match-card-v14 .match-event-edge-right .match-event-popover{
    left: auto !important;
    right: 0 !important;
    transform: translateX(8px) !important;
}
@media (max-width: 620px){
    .match-card-v14 .match-event-edge-left .match-event-popover{
        transform: translateX(-2px) !important;
    }
    .match-card-v14 .match-event-edge-right .match-event-popover{
        transform: translateX(2px) !important;
    }
}


/* =========================================================
   Version 15.42a: KO-Timeline/Tooltip-Korrektur
   - Text-Hinweis zum Elfmeterschießen entfernt (Score zeigt n.E.)
   - Tooltips an schmalen KO-Karten hart innerhalb der Karte ausrichten
========================================================= */
.match-timeline-note{
    display:none !important;
}
.match-card-v14 .match-event-edge-left .match-event-popover{
    left: 0 !important;
    right: auto !important;
    transform: none !important;
}
.match-card-v14 .match-event-edge-right .match-event-popover{
    left: auto !important;
    right: 0 !important;
    transform: none !important;
}
.bracket-match.match-card-v14{
    overflow: visible !important;
}
.bracket-match.match-card-v14 .match-event-popover{
    min-width: 132px !important;
    max-width: 176px !important;
    z-index: 999 !important;
}
.bracket-match.match-card-v14 .match-event-edge-left .match-event-popover{
    left: -2px !important;
    right: auto !important;
    transform: none !important;
}
.bracket-match.match-card-v14 .match-event-edge-right .match-event-popover{
    left: auto !important;
    right: -2px !important;
    transform: none !important;
}

/* =========================================================
   Version 15.44 – KO-Tooltip final
   - Tooltip von linken Timeline-Ereignissen öffnet nach rechts ab Marker
   - Tooltip von rechten Timeline-Ereignissen öffnet nach links ab Marker
   - keine Beschneidung durch KO-Karte
========================================================= */
.bracket-match.match-card-v14,
.bracket-match.match-card-v14 .match-timeline,
.bracket-match.match-card-v14 .match-timeline-row{
    overflow: visible !important;
}
.bracket-match.match-card-v14 .match-event-popover{
    z-index: 5000 !important;
}
.bracket-match.match-card-v14 .match-event-edge-left .match-event-popover,
.match-card-v14 .match-event-edge-left .match-event-popover{
    left: 50% !important;
    right: auto !important;
    transform: translateX(0) !important;
}
.bracket-match.match-card-v14 .match-event-edge-right .match-event-popover,
.match-card-v14 .match-event-edge-right .match-event-popover{
    left: 50% !important;
    right: auto !important;
    transform: translateX(-100%) !important;
}

/* =========================================================
   Version 15.45a – Turnierbaum: Tooltip-Portal + Penalty-Hinweis entfernt
   - Der Zusatztext zum Elfmeterschießen wird vollständig ausgeblendet.
   - Event-Tooltips werden nicht mehr innerhalb der Spielkarte angezeigt,
     sondern per JS als fixed Portal über der Karte positioniert.
========================================================= */
.match-timeline-note,
.penalty-shootout,
.bracket-match .penalty-shootout,
.bracket-match .penalty-shootout-title{
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}
.match-card-v14 .match-event-popover{
    display: none !important;
}
.wm-event-tooltip-portal{
    position: fixed !important;
    left: 0;
    top: 0;
    z-index: 2147483000 !important;
    min-width: 132px;
    max-width: 210px;
    padding: 9px 10px;
    border: 1px solid rgba(115,156,226,.9);
    border-radius: 12px;
    background: rgba(7,18,42,.98);
    color: #eef5ff;
    box-shadow: 0 14px 32px rgba(0,0,0,.62);
    font-size: .74rem;
    line-height: 1.28;
    text-align: left;
    white-space: normal;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0,0,0);
}
.wm-event-tooltip-portal.is-visible{
    opacity: 1;
    visibility: visible;
}

/* =========================================================
   Version 15.45b – Turnierbaum: Elfmeterschützen-Badge
   - Kompakter „11“-Badge am Timeline-Ende.
   - Tooltip zeigt die Schützen des Elfmeterschießens ohne rote/grüne Bubbles.
   - Kein zusätzlicher Hinweistext unter der Timeline.
========================================================= */
.match-card-v14 .match-timeline{
    overflow: visible !important;
}
.shootout-trigger{
    appearance: none;
    -webkit-appearance: none;
    position: absolute;
    right: -2px;
    bottom: -11px;
    z-index: 8;
    width: 30px;
    height: 30px;
    border: 1px solid rgba(180,205,255,.46);
    border-radius: 999px;
    background: rgba(11,25,54,.96);
    color: #eaf1ff;
    font-weight: 900;
    font-size: .78rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 5px 14px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.05) inset;
}
.shootout-trigger:hover,
.shootout-trigger:focus,
.shootout-trigger.is-open{
    color: #ffd84d;
    border-color: rgba(255,216,77,.75);
    outline: none;
}
.shootout-popover{
    display: none !important;
}
.wm-event-tooltip-portal.is-shootout{
    min-width: 330px;
    max-width: min(460px, calc(100vw - 18px));
    padding: 12px 13px;
    font-size: .78rem;
}
.wm-event-tooltip-portal.is-shootout b{
    display:block;
    margin-bottom: 8px;
    color: #ffd84d;
    font-size: .86rem;
}
.wm-event-tooltip-portal .shootout-list{
    display: grid;
    gap: 5px;
}
.wm-event-tooltip-portal .shootout-line{
    display: grid;
    grid-template-columns: minmax(112px, 1fr) 48px minmax(112px, 1fr);
    gap: 8px;
    align-items: center;
    min-height: 20px;
    border-top: 1px solid rgba(255,255,255,.08);
    padding-top: 5px;
}
.wm-event-tooltip-portal .shootout-line:first-child{
    border-top: 0;
    padding-top: 0;
}
.wm-event-tooltip-portal .shootout-home{
    text-align: left;
    color: #eef5ff;
}
.wm-event-tooltip-portal .shootout-score{
    text-align: center;
    color: #ffd84d;
    font-weight: 900;
    white-space: nowrap;
}
.wm-event-tooltip-portal .shootout-away{
    text-align: right;
    color: #eef5ff;
}
@media (max-width: 620px){
    .shootout-trigger{
        right: 2px;
        bottom: -9px;
        width: 28px;
        height: 28px;
        font-size: .74rem;
    }
    .wm-event-tooltip-portal.is-shootout{
        min-width: 0;
        width: calc(100vw - 24px);
        max-width: calc(100vw - 24px);
    }
    .wm-event-tooltip-portal .shootout-line{
        grid-template-columns: minmax(84px, 1fr) 42px minmax(84px, 1fr);
        gap: 6px;
    }
}

.wm-ticker-code{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:18px;padding:0 5px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.20);color:#fff;font-size:10px;font-weight:900;letter-spacing:.04em;line-height:1}


/* VERSION 15.46 – Ewige Torschützenliste: Spiele + Quote */
.scorer-table-alltime{
    min-width:940px;
    table-layout:fixed;
}
.scorer-table-alltime th:nth-child(1),
.scorer-table-alltime td:nth-child(1){
    width:34px;
    min-width:34px;
    max-width:34px;
    text-align:right;
}
.scorer-table-alltime th:nth-child(2),
.scorer-table-alltime td:nth-child(2){
    width:22%;
    text-align:left;
}
.scorer-table-alltime th:nth-child(3),
.scorer-table-alltime td:nth-child(3){
    width:14%;
    text-align:left;
}
.scorer-table-alltime th:nth-child(4),
.scorer-table-alltime td:nth-child(4),
.scorer-table-alltime th:nth-child(5),
.scorer-table-alltime td:nth-child(5),
.scorer-table-alltime th:nth-child(6),
.scorer-table-alltime td:nth-child(6),
.scorer-table-alltime th:nth-child(7),
.scorer-table-alltime td:nth-child(7),
.scorer-table-alltime th:nth-child(8),
.scorer-table-alltime td:nth-child(8){
    width:9%;
    text-align:right;
}
.scorer-table-alltime th:nth-child(9),
.scorer-table-alltime td:nth-child(9){
    width:12%;
    text-align:right;
}
.scorer-table-alltime th:nth-child(4),
.scorer-table-alltime th:nth-child(5){
    white-space:normal;
    line-height:1.08;
}
@media(max-width:620px){
    .scorer-table-alltime{min-width:920px;font-size:.80rem}
}

/* VERSION 15.47 – Ewige Torschützenliste: saubere Spalten + Sortierung */
.scorer-table-wrap-alltime{
    overflow-x:auto;
    overflow-y:visible;
}
.scorer-table-alltime{
    width:100%;
    min-width:1040px;
    table-layout:fixed;
}
.scorer-table-alltime thead th{
    vertical-align:middle;
}
.scorer-table-alltime th,
.scorer-table-alltime td{
    padding:10px 10px;
}
.scorer-table-alltime th:nth-child(1),
.scorer-table-alltime td:nth-child(1){width:44px;text-align:right;}
.scorer-table-alltime th:nth-child(2),
.scorer-table-alltime td:nth-child(2){width:25%;text-align:left;}
.scorer-table-alltime th:nth-child(3),
.scorer-table-alltime td:nth-child(3){width:16%;text-align:left;}
.scorer-table-alltime th:nth-child(4),
.scorer-table-alltime td:nth-child(4){width:105px;text-align:right;}
.scorer-table-alltime th:nth-child(5),
.scorer-table-alltime td:nth-child(5){width:78px;text-align:right;}
.scorer-table-alltime th:nth-child(6),
.scorer-table-alltime td:nth-child(6){width:82px;text-align:right;}
.scorer-table-alltime th:nth-child(7),
.scorer-table-alltime td:nth-child(7){width:96px;text-align:right;}
.scorer-table-alltime th:nth-child(8),
.scorer-table-alltime td:nth-child(8){width:82px;text-align:right;}
.scorer-table-alltime th:nth-child(9),
.scorer-table-alltime td:nth-child(9){width:122px;text-align:right;}
.scorer-table-alltime .sort-btn{
    width:100%;
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    font-weight:900;
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    padding:0;
    cursor:pointer;
    white-space:normal;
    line-height:1.15;
}
.scorer-table-alltime th:nth-child(2) .sort-btn,
.scorer-table-alltime th:nth-child(3) .sort-btn{
    justify-content:flex-start;
}
.scorer-table-alltime .sort-btn:hover,
.scorer-table-alltime .sort-btn:focus-visible{
    color:#ffd54f;
    outline:none;
}
.scorer-table-alltime .sort-btn.is-active{
    color:#ffd54f;
}
.sort-arrows{
    display:inline-block;
    min-width:1.4em;
    text-align:center;
    color:#adc6f2;
    font-size:.72em;
    letter-spacing:-.1em;
    opacity:.9;
}
.sort-btn.is-active .sort-arrows{
    color:#ffd54f;
    letter-spacing:0;
}
.info-dot{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:16px;
    height:16px;
    border-radius:50%;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.25);
    color:#dbe8ff;
    font-size:.72em;
    font-weight:900;
    line-height:1;
}
.scorer-table-alltime td:nth-child(6){
    font-variant-numeric:tabular-nums;
}
.scorer-table-alltime .scorer-status{
    max-width:112px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
@media(max-width:620px){
    .scorer-table-alltime{min-width:980px;font-size:.82rem}
    .scorer-table-alltime th,
    .scorer-table-alltime td{padding:9px 8px}
}

/* VERSION 15.48b – Druck-/PDF-Ansicht: weiße Platzhalter nur in der Druckansicht */
.bracket-print-body .bracket-team-open{
  background:#fff !important;
  border:1px solid rgba(5,28,58,.30) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65) !important;
}
.bracket-print-body .bracket-team-open,
.bracket-print-body .bracket-team-open *{
  color:transparent !important;
  text-shadow:none !important;
}
.bracket-print-body .bracket-team-open img{display:none !important;}

.bracket-print-body{
  margin:0 !important;
  background:#fff !important;
  color:#061c3a !important;
}
.bracket-print-body .tournament-bracket-print-page{
  width:297mm !important;
  height:420mm !important;
  min-width:297mm !important;
  max-width:297mm !important;
  margin:0 auto !important;
  padding:8mm !important;
  background:#fff !important;
  overflow:hidden !important;
  page-break-after:avoid !important;
}
.bracket-print-title{
  height:22mm !important;
  text-align:center !important;
  color:#08294f !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:.03em !important;
}
.bracket-print-title div{
  font-size:24pt !important;
  line-height:1 !important;
}
.bracket-print-title strong{
  display:block !important;
  margin-top:3mm !important;
  color:#d9a515 !important;
  font-size:16pt !important;
  letter-spacing:.08em !important;
}
.bracket-print-body .bracket-scroll{
  width:281mm !important;
  height:382mm !important;
  overflow:visible !important;
  padding:0 !important;
  border-radius:0 !important;
}
.bracket-print-body .wm-bracket.wm-bracket-absolute{
  transform:scale(.643) !important;
  transform-origin:top left !important;
  margin:0 !important;
  background:transparent !important;
}
.bracket-print-body .bracket-stage-label{
  color:#08294f !important;
  text-shadow:none !important;
  font-weight:900 !important;
}
.bracket-print-body .bracket-stage-label-final{
  color:#d9a515 !important;
}
.bracket-print-body .bracket-lines path{
  filter:none !important;
}
.bracket-print-body .bracket-line-pair{
  stroke:rgba(8,65,108,.68) !important;
  stroke-width:2.4 !important;
}
.bracket-print-body .bracket-line-winner{
  stroke:#d9a515 !important;
  stroke-width:3 !important;
  filter:none !important;
}
.bracket-print-body .bracket-match{
  background:linear-gradient(180deg,#0b3564,#061c3a) !important;
  color:#fff !important;
  border-color:rgba(8,41,79,.85) !important;
  box-shadow:none !important;
}
.bracket-print-body .bracket-match::before{display:none !important;}
.bracket-print-body .bracket-team:not(.bracket-team-open){
  background:#dfe6ee !important;
  color:#061c3a !important;
  text-shadow:none !important;
  border-radius:4px !important;
}
.bracket-print-body .bracket-team:not(.bracket-team-open) *{
  color:#061c3a !important;
  text-shadow:none !important;
}
.bracket-print-body .bracket-score{
  color:#ffd54f !important;
}

/* VERSION 15.48e – Druckansicht: Ergebnisfelder + Optionen bei allen nicht beendeten Spielen */
.bracket-print-body .bracket-score.bracket-score-open{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  flex:0 0 28px !important;
  min-height:28px !important;
  max-height:28px !important;
  margin:6px 0 !important;
  color:#ffd54f !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
.bracket-print-body .bracket-score.bracket-score-open::before,
.bracket-print-body .bracket-score.bracket-score-open::after{
  content:none !important;
  display:none !important;
}
.bracket-print-body .bracket-score-box,
.bracket-print-body .bracket-print-checkbox{
  display:inline-block !important;
  width:34px !important;
  height:28px !important;
  background:#fff !important;
  border:1px solid #cfd6df !important;
  border-radius:4px !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65) !important;
  box-sizing:border-box !important;
  flex:0 0 auto !important;
}
.bracket-print-body .bracket-score-separator{
  color:#ffd54f !important;
  font-weight:900 !important;
  min-width:22px !important;
  text-align:center !important;
}
.bracket-print-body .bracket-print-options{
  display:flex !important;
  flex-direction:column !important;
  gap:5px !important;
  margin:8px 0 4px !important;
  color:rgba(235,242,255,.90) !important;
  text-shadow:none !important;
  font-size:.64rem !important;
  line-height:1.05 !important;
}
.bracket-print-body .bracket-print-option{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  min-height:28px !important;
  white-space:nowrap !important;
}
.bracket-print-body .match-timeline,
.bracket-print-body .penalty-shootout{
  display:none !important;
}
.bracket-print-body .bracket-venue{
  color:rgba(235,242,255,.78) !important;
  text-shadow:none !important;
}
.bracket-print-body .bracket-today-badge,
.bracket-print-body .team-history-modal,
.bracket-print-body .wm-refresh-ring,
.bracket-print-body header,
.bracket-print-body nav{
  display:none !important;
}
@page{
  size:A3 portrait;
  margin:0;
}
@media print{
  html,body{width:297mm;height:420mm;background:#fff !important;}
  .bracket-print-body .tournament-bracket-print-page{margin:0 !important;}
}

/* VERSION 15.48a – Fix Druck/PDF: Printansicht darf durch Mobile-/Print-Regeln nicht ausgeblendet werden */
@media print{
  html,
  body,
  .bracket-print-body{
    width:297mm !important;
    height:420mm !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }
  .bracket-print-body .desktop-only-page,
  .bracket-print-body .tournament-bracket-page,
  .bracket-print-body .tournament-bracket-print-page,
  .bracket-print-body .bracket-scroll,
  .bracket-print-body .wm-bracket.wm-bracket-absolute{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  .bracket-print-body .tournament-bracket-print-page{
    position:relative !important;
    overflow:hidden !important;
    page-break-before:avoid !important;
    page-break-after:avoid !important;
    break-before:avoid !important;
    break-after:avoid !important;
  }
  .bracket-print-body .bracket-scroll{
    position:relative !important;
    overflow:visible !important;
  }
  .bracket-print-body .wm-bracket.wm-bracket-absolute{
    position:relative !important;
    overflow:visible !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}

/* V15.49 TV-Sender in Spielkarten */
.match-broadcast{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
    margin-top:7px;
    min-height:22px;
    font-size:.72rem;
    color:#b9cff7;
}
.match-broadcast-label{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:20px;
    padding:0 6px;
    border:1px solid rgba(130,170,230,.38);
    border-radius:999px;
    background:rgba(4,12,30,.55);
    font-weight:800;
    letter-spacing:.02em;
    color:#dce8ff;
}
.match-broadcast-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:22px;
    min-width:34px;
    padding:2px 6px;
    border:1px solid rgba(130,170,230,.34);
    border-radius:999px;
    background:rgba(255,255,255,.08);
    color:#eef5ff;
    text-decoration:none;
    line-height:1;
    box-shadow:0 4px 12px rgba(0,0,0,.18);
}
.match-broadcast-link:hover{
    border-color:rgba(255,214,64,.72);
    background:rgba(255,214,64,.12);
    transform:translateY(-1px);
}
.match-broadcast-logo{
    display:block;
    width:auto;
    max-width:54px;
    height:18px;
    object-fit:contain;
}
.match-broadcast-name{
    font-weight:800;
    white-space:nowrap;
}
.bracket-match .match-broadcast{
    justify-content:flex-start;
    margin-top:5px;
    min-height:18px;
    gap:4px;
}
.bracket-match .match-broadcast-label{
    height:17px;
    padding:0 5px;
    font-size:.58rem;
}
.bracket-match .match-broadcast-link{
    height:18px;
    min-width:28px;
    padding:1px 5px;
}
.bracket-match .match-broadcast-logo{
    max-width:43px;
    height:14px;
}
.ko-card .match-broadcast{
    margin-top:-5px;
    margin-bottom:10px;
}
@media(max-width:620px){
    .match-broadcast-logo{max-width:48px;height:16px}
    .match-broadcast-label{height:18px;font-size:.65rem}
    .match-broadcast-link{height:20px;min-width:30px;padding:1px 5px}
}

/* V15.49c TV-Logo-Kontrast – finale Override-Regeln
   bewusst am Dateiende und mit !important, damit ältere Badge-Regeln nicht greifen */
.match-broadcast .match-broadcast-link,
.match-broadcast a.match-broadcast-link,
.match-broadcast span.match-broadcast-link,
.bracket-match .match-broadcast .match-broadcast-link,
.ko-card .match-broadcast .match-broadcast-link,
.schedule-match .match-broadcast .match-broadcast-link{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:44px !important;
    height:24px !important;
    padding:3px 9px !important;
    border-radius:999px !important;
    background:#f3f6fb !important;
    background-color:#f3f6fb !important;
    border:1px solid rgba(255,255,255,.92) !important;
    box-shadow:0 3px 10px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.95) !important;
    color:#0b1730 !important;
    text-decoration:none !important;
    line-height:1 !important;
    overflow:hidden !important;
}
.match-broadcast .match-broadcast-link:hover,
.match-broadcast a.match-broadcast-link:hover{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#ffd640 !important;
    transform:translateY(-1px) !important;
}
.match-broadcast .match-broadcast-logo,
.bracket-match .match-broadcast .match-broadcast-logo,
.ko-card .match-broadcast .match-broadcast-logo,
.schedule-match .match-broadcast .match-broadcast-logo{
    display:block !important;
    width:auto !important;
    max-width:62px !important;
    height:18px !important;
    object-fit:contain !important;
}
.match-broadcast .match-broadcast-label{
    background:rgba(4,12,30,.72) !important;
    border-color:rgba(170,205,255,.45) !important;
}


/* VERSION 15.49e – Weltmeister-Würdigung im Turnierbaum */
.bracket-hero-with-champion{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto;
  align-items:center;
  gap:22px;
  overflow:hidden;
  position:relative;
}
.bracket-hero-with-champion::after{
  content:"";
  position:absolute;
  right:-80px;
  top:-130px;
  width:360px;
  height:360px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,213,79,.17),transparent 68%);
  pointer-events:none;
}
.bracket-hero-main{position:relative;z-index:1}
.bracket-champion{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:14px;
  min-width:370px;
  padding:12px 18px 12px 14px;
  border:1px solid rgba(255,220,95,.62);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(255,213,79,.19),rgba(12,29,65,.9) 62%);
  box-shadow:0 0 26px rgba(255,213,79,.14),inset 0 1px 0 rgba(255,255,255,.12);
}
.bracket-champion-trophy{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  flex:0 0 58px;
  border-radius:50%;
  font-size:34px;
  background:radial-gradient(circle at 35% 30%,#fff6bd,#e4ad24 55%,#8c5b00 100%);
  box-shadow:0 4px 16px rgba(0,0,0,.38),0 0 18px rgba(255,213,79,.28);
}
.bracket-champion-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.bracket-champion-kicker{
  color:#ffd95b;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.bracket-champion-copy strong{
  display:flex;
  align-items:center;
  gap:9px;
  color:#fff;
  font-size:1.32rem;
  line-height:1.15;
  text-shadow:0 2px 10px rgba(0,0,0,.5);
}
.bracket-champion-icon,.bracket-champion-icon-fallback{
  width:30px;
  height:30px;
  flex:0 0 30px;
  object-fit:contain;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  padding:2px;
  box-sizing:border-box;
}
.bracket-champion-icon-fallback{display:grid;place-items:center;color:#c58b00;font-size:18px}
.bracket-champion-copy small{color:#c9d8f2;font-size:.74rem}
@media(max-width:1180px){
  .bracket-hero-with-champion{grid-template-columns:1fr}
  .bracket-champion{min-width:0;max-width:520px}
}


/* VERSION 15.49f – Weltmeister-Badge mittig im Turnierbaum
   Das Badge selbst bleibt unverändert; nur sein Einbauort wird verschoben. */
.bracket-champion-position{
  position:absolute;
  top:160px;
  left:50%;
  z-index:12;
  transform:translateX(-50%);
  pointer-events:auto;
}
.bracket-champion-position .bracket-champion{
  margin:0;
}

/* VERSION 15.49g – Original-WM-Pokal in der goldenen Weltmeister-Bubble */
.bracket-champion-trophy img{
  display:block;
  width:42px;
  height:52px;
  object-fit:contain;
  filter:drop-shadow(0 3px 3px rgba(70,38,0,.42));
}

/* V15.50: Champion-Hintergrund nach beendetem Finale #104 */
body.champion::before{
    background:
        linear-gradient(
            rgba(8,22,51,.30),
            rgba(8,22,51,.35)
        ),
        url("img/stadium-bg-champion.png");
    background-size:cover;
    background-position:center center;
    background-attachment:fixed;
}

/* V15.51 – Auto-Refresh im Adminbereich schaltbar */
.admin-setting-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:18px 0 24px;
  padding:18px 20px;
  border:1px solid rgba(255,216,74,.30);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(19,42,82,.82),rgba(8,23,52,.82));
  box-shadow:0 8px 24px rgba(0,0,0,.20);
}
.admin-setting-copy h3{margin:0 0 5px}
.admin-setting-copy p{margin:0;color:#c8d6ef}
.auto-refresh-form{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.auto-refresh-label{font-weight:900;color:#fff;white-space:nowrap}
.wm-switch{display:inline-grid;grid-template-columns:auto 48px auto;align-items:center;gap:9px;cursor:pointer;user-select:none}
.wm-switch input{position:absolute;opacity:0;pointer-events:none}
.wm-switch-track{
  grid-column:2;
  position:relative;
  width:48px;
  height:26px;
  border-radius:999px;
  background:#60708e;
  border:1px solid rgba(255,255,255,.20);
  box-shadow:inset 0 2px 5px rgba(0,0,0,.35);
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.wm-switch-knob{
  position:absolute;
  top:3px;
  left:3px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.38);
  transition:transform .18s ease;
}
.wm-switch input:checked + .wm-switch-track{
  background:#d71920;
  border-color:#ffd84a;
  box-shadow:0 0 12px rgba(255,216,74,.20),inset 0 2px 5px rgba(0,0,0,.24);
}
.wm-switch input:checked + .wm-switch-track .wm-switch-knob{transform:translateX(22px)}
.wm-switch-state{font-weight:800;color:#9fafc8}
.wm-switch-state-off{grid-column:1;grid-row:1}
.wm-switch-state-on{grid-column:3;grid-row:1}
.wm-switch input:not(:checked) ~ .wm-switch-state-off,
.wm-switch input:checked ~ .wm-switch-state-on{color:#fff}
.wm-switch input:focus-visible + .wm-switch-track{outline:3px solid rgba(255,216,74,.45);outline-offset:3px}
@media(max-width:700px){
  .admin-setting-card{align-items:flex-start;flex-direction:column}
  .auto-refresh-form{width:100%;justify-content:space-between}
}
