/*
 * Vzhled celého vánočního turnaje (layout app/ChristmasModule/templates/@layout.latte) - fotka pokoje
 * Haza Mafia FC přes celé okno, skleněná lišta s menu, rám stránky, panely, tlačítka a tmavý Bootstrap
 * (formuláře, tabulky, okna, nabídky) pro správu; stránky turnaje: rozpis, tabulka, střelci, karty, detail
 * a zápis zápasu - pásy týmů ve vzoru FIFA karet, překlápěcí dlaždice skóre a časomíry, karty hráčů pro
 * zápis gólů a časová osa, LED tabule nahoře.
 * Chování stránek turnaje www/js/christmas-arena.js. Barvy týmů (--xa-home-*, --xa-away-*, --xa-c1..3
 * a --xa-bg u pásů) doplňuje skript z karet týmů. Komponenty správy (xmas-*) jsou v christmas-admin.css
 * a christmas-card.css.
 */

.xa {
    --xa-frost: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='a' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.055' numOctaves='4' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .95 0 0 0 0 .98 0 0 0 0 1 0 0 0 4.4 -1.95'/%3E%3C/filter%3E%3Cfilter id='b' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 5 -3.1'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23a)'/%3E%3Crect width='220' height='220' filter='url(%23b)'/%3E%3C/svg%3E");
    --xa-bg-1: #0b1433;
    --xa-bg-2: #060a17;
    --xa-panel: rgba(13, 20, 44, .86);
    --xa-line: rgba(255, 255, 255, .09);
    --xa-text: #f3f5fb;
    --xa-muted: rgba(221, 228, 245, .64);
    --xa-gold: #e8c51c;
    --xa-gold-2: #ffdf5a;
    --xa-red: #ff3d57;
    --xa-green: #33d49a;
    --xa-blue: #5aa2ff;
    --xa-ink: #0d1120;
    --xa-font: 'Poppins', 'Segoe UI', Arial, sans-serif;
    --xa-home-accent: #e8c51c;
    --xa-away-accent: #5aa2ff;
    --xa-home-ink: #0d1120;
    --xa-away-ink: #ffffff;
    color: var(--xa-text);
    font-family: var(--xa-font);
}

.xa h1,
.xa h2,
.xa h3 {
    font-family: var(--xa-font);
    color: #fff;
}

/* ------------------------------------------------------------------
   Okno - fotka pokoje Haza Mafia FC přes celé okno (drží se na místě při rolování, leží pod vším
   v kořenovém kontextu), lišta nahoře, obsah stránky v průsvitném tmavém rámu, přes který fotka slábne
   ------------------------------------------------------------------ */
.xa-html { background: #0b0f1d; }

body.xa-body {
    --bs-body-font-family: var(--xa-font);
    --bs-body-color: var(--xa-text);
    --bs-body-bg: #0d1330;
    --bs-secondary-color: var(--xa-muted);
    --bs-emphasis-color: #fff;
    --bs-border-color: rgba(255, 255, 255, .14);
    --bs-border-color-translucent: rgba(255, 255, 255, .12);
    --bs-link-color: var(--xa-gold-2);
    --bs-link-color-rgb: 255, 223, 90;
    --bs-link-hover-color: #fff1b0;
    --bs-link-hover-color-rgb: 255, 241, 176;
    --bs-focus-ring-color: rgba(232, 197, 28, .3);
    --bs-code-color: var(--xa-gold-2);
    --bs-heading-color: #fff;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;
    background: transparent;
}

body.xa-body::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(5, 8, 20, .35), rgba(5, 8, 20, .15) 30%, rgba(5, 8, 20, .45)), url(../flexStart/img/mafia/room-1920.jpg) 50% 35% / cover no-repeat;
}

.xa ::selection { background: rgba(232, 197, 28, .45); color: #fff; }
.xa a { text-decoration: none; }
.xa-main { flex: 1 0 auto; }

/* Lišta nahoře - logo, menu, nový turnaj, účet; na mobilu menu pod tlačítkem */
.xa-topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    border-bottom: 1px solid rgba(255, 255, 255, .09);
    background: linear-gradient(180deg, rgba(7, 10, 24, .9), rgba(7, 10, 24, .76));
    -webkit-backdrop-filter: blur(14px) saturate(1.2);
    backdrop-filter: blur(14px) saturate(1.2);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
}

.xa-topbar-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; min-height: 66px; padding-top: 8px; padding-bottom: 8px; }

.xa .xa-brand { display: inline-flex; align-items: center; gap: 10px; margin-right: auto; color: #fff; }
.xa-brand img { filter: drop-shadow(0 3px 8px rgba(0, 0, 0, .5)); }
.xa-brand-text { display: flex; flex-direction: column; line-height: 1; }
.xa-brand-text small { color: var(--xa-gold); font-size: 10px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.xa-brand-text b { margin-top: 3px; font-family: 'Oswald', var(--xa-font); font-size: 22px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }

.xa-burger {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--xa-line);
    border-radius: 12px;
    background: rgba(255, 255, 255, .06);
    color: #fff;
    font-size: 24px;
}

.xa-nav { flex: 1 0 100%; }
.xa-nav-list { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 6px 0; list-style: none; }

.xa .xa-nav-link {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 10px 14px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: rgba(236, 240, 250, .78);
    font-size: 15px;
    font-weight: 600;
    text-align: left;
    transition: background .15s, color .15s;
}

.xa .xa-nav-link:hover,
.xa .xa-nav-link[aria-expanded="true"] { background: rgba(255, 255, 255, .08); color: #fff; }
.xa .xa-nav-link.is-active { color: var(--xa-gold-2); }
.xa .xa-nav-link i { color: var(--xa-gold); }
.xa-nav-side { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 6px 0 10px; }

.xa-user {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 180px;
    overflow: hidden;
    color: var(--xa-muted);
    font-size: 13px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Na mobilu je nabídka Správa vložená v menu (bez plovoucího okna) */
@media (max-width: 991.98px) {
    .xa .xa-nav .dropdown-menu { position: static; margin: 2px 0 6px 18px; box-shadow: none; }
}

@media (min-width: 992px) {
    .xa-burger { display: none; }
    .xa-topbar .xa-nav.collapse { display: flex; flex: 1 1 auto; align-items: center; justify-content: space-between; gap: 18px; }
    .xa-nav-list { flex-direction: row; padding: 0; }
    .xa .xa-nav-link { width: auto; padding: 8px 14px; border-radius: 999px; }
    .xa .xa-nav-link.is-active { background: rgba(232, 197, 28, .14); box-shadow: inset 0 0 0 1px rgba(232, 197, 28, .35); }
    .xa-nav-side { padding: 0; }
}

/* Patička */
.xa-footer {
    padding: 16px 0 22px;
    border-top: 1px solid rgba(255, 255, 255, .06);
    background: rgba(5, 8, 20, .72);
    color: var(--xa-muted);
    font-size: 12.5px;
}

.xa-footer .container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; }

/* Stránka - obsah v rámu */
section.xa-page { position: relative; padding: 28px 0 56px; }

section.xa-page > .container {
    position: relative;
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(10, 15, 36, .5) 0%, rgba(6, 9, 22, .62) 100%);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
}

/* ------------------------------------------------------------------
   Hlavička, tlačítka, štítky, panely
   ------------------------------------------------------------------ */
.xa-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px 20px;
    margin-bottom: 22px;
}

.xa-kicker {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--xa-gold);
}

.xa .xa-title {
    margin: 4px 0 0;
    font-size: clamp(28px, 4.2vw, 42px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -.01em;
}

.xa-head-text { flex: 1 1 320px; min-width: 0; }
.xa-lead { max-width: 760px; margin: 8px 0 0; color: rgba(226, 232, 246, .8); font-size: 14px; line-height: 1.5; text-shadow: 0 1px 3px rgba(0, 0, 0, .9), 0 0 14px rgba(0, 0, 0, .6); }
.xa-head .xa-title,
.xa-head .xa-kicker { text-shadow: 0 2px 12px rgba(0, 0, 0, .65); }
.xa-lead b { color: #fff; font-weight: 600; }
.xa-head-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
/* Přípravné menu turnaje (@tournamentHead.latte) - zašedlá záložka kapitána (PR / Odznaky, fáze není otevřená) a důvod */
.xa-tab.is-disabled { opacity: .42; cursor: not-allowed; pointer-events: auto; }
.xa-tab.is-disabled:hover { background: transparent; color: inherit; }
.xa-captain-note { margin: 8px 0 0; color: var(--xa-muted); font-size: 12px; }
.xa-head-tabs { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }

/* Záložky správy turnaje (jen správce) - zlatý obrys, popisek Správa */
.xa-tabs.is-admin { border-color: rgba(232, 197, 28, .38); background: rgba(34, 26, 4, .78); }
.xa-tabs-label { align-self: center; padding: 0 6px 0 10px; color: var(--xa-gold); font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }


.xa .xa-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    border: 1px solid var(--xa-line);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    color: var(--xa-text);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition: background .15s, border-color .15s, filter .15s;
}

.xa .xa-btn:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .22); color: #fff; }
.xa .xa-btn-icon { padding: 8px 11px; }
.xa .xa-btn-ghost { background: transparent; }
.xa .xa-btn-lg { padding: 12px 24px; font-size: 16px; font-weight: 700; }

.xa .xa-btn-gold,
.xa .xa-btn-gold:hover {
    border-color: transparent;
    background: linear-gradient(180deg, var(--xa-gold-2), var(--xa-gold));
    color: #1b1605;
    box-shadow: 0 8px 22px rgba(232, 197, 28, .25);
}

.xa .xa-btn-red,
.xa .xa-btn-red:hover {
    border-color: transparent;
    background: linear-gradient(180deg, #ff6b81, #e2263f);
    color: #fff;
    box-shadow: 0 8px 22px rgba(226, 38, 63, .3);
}

.xa .xa-btn-gold:hover,
.xa .xa-btn-red:hover { filter: brightness(1.07); }

.xa-flash {
    margin-bottom: 14px;
    padding: 10px 14px;
    border: 1px solid rgba(51, 212, 154, .35);
    border-radius: 12px;
    background: rgba(51, 212, 154, .12);
    color: #d9fff0;
}

.xa-flash.is-danger { border-color: rgba(255, 61, 87, .45); background: rgba(255, 61, 87, .14); color: #ffe1e6; }
.xa-flash.is-warning { border-color: rgba(232, 197, 28, .45); background: rgba(232, 197, 28, .13); color: #fff4c4; }

.xa-panel {
    position: relative;
    padding: 20px;
    border: 1px solid var(--xa-line);
    border-radius: 20px;
    background: var(--xa-panel);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
}

.xa-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 14px;
}

.xa .xa-panel-title { margin: 0; font-size: 20px; font-weight: 800; }

.xa-count {
    display: inline-grid;
    place-items: center;
    min-width: 28px;
    height: 28px;
    margin-left: 6px;
    padding: 0 8px;
    border-radius: 999px;
    background: var(--xa-gold);
    color: #1b1605;
    font-size: 14px;
    vertical-align: middle;
}

.xa-chips { display: flex; flex-wrap: wrap; gap: 6px; }

.xa-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 11px;
    border: 1px solid var(--xa-line);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    color: var(--xa-text);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
}

.xa-chip.is-gold { border-color: rgba(232, 197, 28, .45); background: rgba(232, 197, 28, .16); color: var(--xa-gold-2); }
.xa-chip.is-red { border-color: rgba(255, 61, 87, .45); background: rgba(255, 61, 87, .16); color: #ffc2cc; }
.xa-chip.is-green { border-color: rgba(51, 212, 154, .45); background: rgba(51, 212, 154, .14); color: #b9f5dd; }
.xa-chip.is-blue { border-color: rgba(90, 162, 255, .45); background: rgba(90, 162, 255, .14); color: #cfe3ff; }

.xa-muted { color: var(--xa-muted); }
.xa-empty { margin: 0; padding: 26px 10px; text-align: center; color: var(--xa-muted); }

.xa-live-dot {
    display: inline-block;
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--xa-red);
    animation: xa-pulse 1.4s infinite;
}

@keyframes xa-pulse {
    0% { box-shadow: 0 0 0 0 rgba(255, 61, 87, .65); }
    70% { box-shadow: 0 0 0 8px rgba(255, 61, 87, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 61, 87, 0); }
}

/* ------------------------------------------------------------------
   Pás týmu - vzor karty týmu (--xa-bg z ChristmasCard.renderBand), do načtení přechod
   z barev karty; zleva plný, doprava mizí
   ------------------------------------------------------------------ */
.xa-team {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 0 12px;
    overflow: hidden;
}

.xa-team-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--xa-c1, #1c2230);
    background-image: var(--xa-bg, linear-gradient(115deg, var(--xa-c1, #1c2230) 0%, var(--xa-c2, #8aa0c8) 62%, var(--xa-c3, #8aa0c8) 100%));
    background-position: left center;
    background-size: cover;
    -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 24%, rgba(0, 0, 0, .6) 48%, rgba(0, 0, 0, .18) 72%, transparent 90%);
    mask-image: linear-gradient(90deg, #000 0%, #000 24%, rgba(0, 0, 0, .6) 48%, rgba(0, 0, 0, .18) 72%, transparent 90%);
}

/* Loga týmů celá a bez podkladu - jsou ve tvaru štítu nebo nepravidelná, bílý kruh je ořezával.
   Stín kopíruje tvar loga (drop-shadow), slabý světlý okraj drží tmavá loga čitelná na tmavém pozadí. */
.xa-team-logo {
    position: relative;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
}

.xa-team-logo img,
.xa-hero-logo img,
.xa-avatar.is-logo img,
.xa-scorer-name small img {
    filter: drop-shadow(0 0 1px rgba(255, 255, 255, .35)) drop-shadow(0 3px 6px rgba(0, 0, 0, .55));
}

/* Obrázek přes celý rámeček absolutně - jako položka gridu by vysoké logo roztáhlo řádek na svou výšku a přeteklo */
.xa-team-logo img,
.xa-hero-logo img,
.xa-avatar.is-logo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }

.xa-team-name {
    min-width: 0;
    overflow: hidden;
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .03em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .85), 0 0 14px rgba(0, 0, 0, .5);
}

[data-tone="light"] > .xa-team-name,
[data-tone="light"] > .xa-hero-name { color: var(--xa-ink); text-shadow: 0 0 10px rgba(255, 255, 255, .8); }

.xa-team.is-loser .xa-team-name { opacity: .7; }

.xa-team.is-winner .xa-team-name::after {
    content: '';
    display: inline-block;
    margin-left: 8px;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 7px solid var(--xa-gold-2);
    vertical-align: middle;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, .7));
}

/* ------------------------------------------------------------------
   Rozpis - kola a dlaždice zápasů
   ------------------------------------------------------------------ */
.xa-round { margin-top: 26px; }
.xa-round-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }

.xa-round-name {
    flex: 0 0 auto;
    padding: 5px 14px;
    border-radius: 8px;
    background: linear-gradient(90deg, var(--xa-gold-2), var(--xa-gold));
    color: #1b1605;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    box-shadow: 0 6px 18px rgba(232, 197, 28, .25);
}

.xa-round.is-playoff .xa-round-name { background: linear-gradient(90deg, #ff6b81, #e2263f); color: #fff; box-shadow: 0 6px 18px rgba(226, 38, 63, .3); }

/* Věnec u kola - malý obrázek přes pravý konec štítku */
.xa-round-name { position: relative; padding-right: 18px; }

.xa-round-wreath {
    position: absolute;
    top: 50%;
    right: -44px;
    width: 56px;
    height: 56px;
    pointer-events: none;
    transform: translateY(-50%) rotate(-6deg);
    filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .55));
}

.xa-round-head .xa-round-line { margin-left: 44px; }
.xa-round-line { flex: 1 1 auto; height: 1px; background: linear-gradient(90deg, rgba(232, 197, 28, .55), rgba(232, 197, 28, 0)); }
.xa-round-ref { flex: 0 1 auto; color: var(--xa-muted); font-size: 13px; }
.xa-round-ref b { color: #fff; font-weight: 600; }
.xa-round-ref i { color: var(--xa-gold); }

.xa-playoff-title { margin: 38px 0 0; color: #fff; font-size: 24px; font-weight: 800; }
.xa-playoff-title i { color: var(--xa-gold); }

.xa-matches { display: grid; grid-template-columns: 1fr; gap: 12px; }

.xa-match {
    position: relative;
    display: grid;
    grid-template-columns: 66px minmax(0, 1fr) 56px auto;
    overflow: hidden;
    border: 1px solid rgba(214, 232, 255, .42);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(24, 32, 62, .56), rgba(10, 14, 32, .64));
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    box-shadow: 0 10px 26px rgba(0, 0, 0, .35), inset 0 0 0 1px rgba(236, 246, 255, .22), inset 0 0 14px rgba(215, 236, 255, .26);
    transition: transform .15s, border-color .15s, box-shadow .15s;
}

/* Ledové okraje - námraza ze šumu jen v pásu u okraje, v rozích nejhustší */
.xa-match::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 4;
    border-radius: inherit;
    pointer-events: none;
    background-size: 220px 220px;
    background-image:
        radial-gradient(46px 30px at 0 0, rgba(242, 249, 255, .75), transparent 72%),
        radial-gradient(46px 30px at 100% 0, rgba(242, 249, 255, .6), transparent 72%),
        radial-gradient(54px 34px at 0 100%, rgba(242, 249, 255, .65), transparent 72%),
        radial-gradient(54px 34px at 100% 100%, rgba(242, 249, 255, .75), transparent 72%),
        var(--xa-frost);
    background-size: auto, auto, auto, auto, 220px 220px;
    -webkit-mask-image:
        linear-gradient(90deg, #000 0, rgba(0, 0, 0, .55) 7px, transparent 20px, transparent calc(100% - 20px), rgba(0, 0, 0, .55) calc(100% - 7px), #000 100%),
        linear-gradient(180deg, #000 0, rgba(0, 0, 0, .55) 6px, transparent 16px, transparent calc(100% - 16px), rgba(0, 0, 0, .55) calc(100% - 6px), #000 100%);
    mask-image:
        linear-gradient(90deg, #000 0, rgba(0, 0, 0, .55) 7px, transparent 20px, transparent calc(100% - 20px), rgba(0, 0, 0, .55) calc(100% - 7px), #000 100%),
        linear-gradient(180deg, #000 0, rgba(0, 0, 0, .55) 6px, transparent 16px, transparent calc(100% - 16px), rgba(0, 0, 0, .55) calc(100% - 6px), #000 100%);
    -webkit-mask-composite: source-over;
    mask-composite: add;
    opacity: .95;
}

.xa-match:hover { transform: translateY(-2px); border-color: rgba(255, 255, 255, .2); box-shadow: 0 16px 34px rgba(0, 0, 0, .36); }
.xa-match.is-live { border-color: rgba(255, 61, 87, .55); box-shadow: 0 0 0 1px rgba(255, 61, 87, .25), 0 14px 34px rgba(255, 61, 87, .18); }

.xa-match-time,
.xa-match-score {
    position: relative;
    z-index: 2;
    pointer-events: none;
    background: rgba(0, 0, 0, .22);
}

.xa-match-time {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 6px 4px;
    border-right: 1px solid var(--xa-line);
    text-align: center;
}

.xa-match-time b { color: #fff; font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums; }
.xa-match-time small { color: var(--xa-muted); font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.xa-match.is-live .xa-match-time b,
.xa-match.is-live .xa-match-time small { color: #ff8a9a; }

.xa-match-suffix {
    margin-top: 2px;
    padding: 1px 6px;
    border-radius: 6px;
    background: rgba(232, 197, 28, .18);
    color: var(--xa-gold-2);
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.xa-match-teams { display: flex; flex-direction: column; min-width: 0; }
.xa-match .xa-team { height: 48px; }
.xa-match .xa-team + .xa-team { border-top: 1px solid rgba(0, 0, 0, .35); }

.xa-match-score { display: flex; flex-direction: column; border-left: 1px solid var(--xa-line); }

.xa-match-score b {
    display: grid;
    place-items: center;
    height: 48px;
    color: #fff;
    font-size: 24px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.xa-match-score b + b { border-top: 1px solid rgba(0, 0, 0, .35); }
.xa-match-score b.is-winner { color: var(--xa-gold-2); text-shadow: 0 0 14px rgba(232, 197, 28, .45); }
.xa-match-score b.is-loser { color: rgba(255, 255, 255, .45); }
.xa-match.is-live .xa-match-score b { color: #ff8a9a; }
.xa-match.is-waiting .xa-match-score b { color: rgba(255, 255, 255, .3); }

.xa-match-link { position: absolute; inset: 0; z-index: 1; border-radius: 14px; }
.xa-match-link:focus-visible { outline: 2px solid var(--xa-gold); outline-offset: -2px; }

.xa .xa-match-act {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 58px;
    border-left: 1px solid var(--xa-line);
    background: linear-gradient(180deg, var(--xa-gold-2), var(--xa-gold));
    color: #1b1605;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-decoration: none;
    text-transform: uppercase;
}

.xa .xa-match-act i { font-size: 20px; line-height: 1; }
.xa .xa-match-act.is-record { background: linear-gradient(180deg, #ff6b81, #e2263f); color: #fff; }
.xa .xa-match-act:hover { filter: brightness(1.08); }

/* Přihlášené týmy turnaje s power rankings */
.xa-registered { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.xa-registered .xa-team { height: 54px; border: 1px solid var(--xa-line); border-radius: 12px; background: rgba(255, 255, 255, .03); }

/* ------------------------------------------------------------------
   Zápas - týmy, skóre, časomíra, ovládání
   ------------------------------------------------------------------ */
.xa-hero {
    position: relative;
    padding: 18px;
    overflow: hidden;
    border: 1px solid var(--xa-line);
    border-radius: 22px;
    background: var(--xa-panel);
    box-shadow: 0 28px 70px rgba(0, 0, 0, .4);
}

.xa-hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; }
.xa-hero-main { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: 12px; }

.xa-hero-team {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 200px;
    padding: 22px 12px;
    overflow: hidden;
    border-radius: 16px;
    text-align: center;
}

.xa-hero-team .xa-team-bg {
    -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 40%, rgba(0, 0, 0, .5) 75%, transparent 100%);
    mask-image: linear-gradient(90deg, #000 0%, #000 40%, rgba(0, 0, 0, .5) 75%, transparent 100%);
}

/* Hosté - vzor zrcadlově i s maskou, plný je vpravo (tón textu se počítá z plné části vzoru) */
.xa-hero-team.is-away .xa-team-bg,
.xa-squad.is-away .xa-squad-head .xa-team-bg { transform: scaleX(-1); }

.xa-hero-logo {
    position: relative;
    display: grid;
    place-items: center;
    width: 96px;
    height: 96px;
}


.xa .xa-hero-name {
    margin: 0;
    font-size: clamp(15px, 2.3vw, 26px);
    font-weight: 800;
    letter-spacing: .03em;
    line-height: 1.15;
    overflow-wrap: anywhere;
    text-transform: uppercase;
    text-shadow: 0 2px 4px rgba(0, 0, 0, .8), 0 0 18px rgba(0, 0, 0, .5);
}

.xa-hero-center { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-width: 210px; }
.xa-score-box { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.xa-score { display: flex; align-items: center; gap: 10px; }
.xa-score-sep { color: rgba(255, 255, 255, .55); font-size: 46px; font-weight: 800; line-height: 1; }

.xa-suffix {
    padding: 2px 10px;
    border-radius: 999px;
    background: rgba(232, 197, 28, .18);
    color: var(--xa-gold-2);
    font-size: 13px;
    font-weight: 700;
}

.xa-state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    color: var(--xa-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.xa-state.is-live { background: rgba(255, 61, 87, .16); color: #ffb3bf; }
.xa-state.is-ended { background: rgba(255, 255, 255, .1); color: #fff; }

.xa-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; margin-top: 16px; }
.xa-hint { max-width: 560px; color: var(--xa-muted); font-size: 14px; text-align: center; }

/* ------------------------------------------------------------------
   Překlápěcí dlaždice (skóre a časomíra) - jako na starých hodinách a nádražních tabulích
   ------------------------------------------------------------------ */
.xa-tiles { display: inline-flex; gap: .07em; font-size: var(--xa-tile, 48px); line-height: 1; }
.xa-flip.is-score { --xa-tile: 66px; }

.xa-clock {
    --xa-tile: 30px;
    display: inline-flex;
    gap: .07em;
    min-height: 1.1em;
    font-size: var(--xa-tile);
    line-height: 1;
    opacity: .55;
    transition: opacity .2s;
}

.xa-clock.is-running,
.xa-clock.is-ended { opacity: 1; }
.xa-clock.is-ended .xa-tile { color: var(--xa-gold-2); }

/* Stopky zápasu (MatchClock) - pozastavené blikají žlutě, po uplynutí hracího času červeně */
.xa-clock.is-paused { opacity: 1; animation: xa-clock-blink 1.2s steps(2, start) infinite; }
.xa-clock.is-paused .xa-tile { color: var(--xa-gold-2); }
.xa-clock.is-over .xa-tile { color: #ff8193; }
@keyframes xa-clock-blink { to { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .xa-clock.is-paused { animation: none; } }
.xa-state.is-paused { background: rgba(232, 197, 28, .16); color: var(--xa-gold-2); }
.xa-clock-limit { margin-top: 6px; color: var(--xa-muted); font-size: 12.5px; font-weight: 600; }
.xa-clock-limit.is-over { color: #ff8193; }
.xa-clock-adjust { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; width: 100%; }
.xa-clock-adjust .xa-btn { padding: 6px 12px; font-size: 13px; }
.xa-wake { width: 100%; font-size: 12.5px; }

/* Okno „Čas vypršel“ v zápisu zápasu */
.xa-time-up { border: 1px solid rgba(255, 61, 87, .5); }
.xa-time-up-icon { margin: 6px auto 8px; color: #ff8193; font-size: 54px; line-height: 1; animation: xa-time-up-shake .6s ease-in-out 3; }
.xa-time-up-title { margin: 0 0 6px; color: #fff; font-size: 26px; font-weight: 800; }
@keyframes xa-time-up-shake { 25% { transform: rotate(-12deg); } 75% { transform: rotate(12deg); } }
@media (prefers-reduced-motion: reduce) { .xa-time-up-icon { animation: none; } }

/* Panel Stopky v administraci zápasu */
.xa-clock-admin { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.xa-clock-admin .xa-controls { margin-top: 0; justify-content: flex-end; gap: 8px; }
.xa-clock-admin-time { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.xa-clock-admin-time b { color: #fff; font-size: 34px; font-variant-numeric: tabular-nums; }
.xa-clock-overtime { max-width: 420px; margin-top: 14px; }
.xa-clock-log { margin-top: 14px; font-size: 13px; }
.xa-clock-log summary { cursor: pointer; font-weight: 600; }
.xa-clock-log ul { margin: 8px 0 0; padding-left: 18px; }

.xa-tile {
    position: relative;
    display: inline-block;
    width: .74em;
    height: 1.1em;
    border-radius: .09em;
    color: #f2f2f2;
    font-family: var(--xa-font);
    font-weight: 800;
    perspective: 4em;
    box-shadow: 0 .06em .16em rgba(0, 0, 0, .65), inset 0 0 0 1px rgba(255, 255, 255, .06);
}

.xa-tile > span {
    position: absolute;
    left: 0;
    right: 0;
    height: 50%;
    overflow: hidden;
    backface-visibility: hidden;
}

.xa-tile .t,
.xa-tile .ft { top: 0; border-radius: .09em .09em 0 0; background: linear-gradient(180deg, #2a2a2a, #181818); }
.xa-tile .b,
.xa-tile .fb { bottom: 0; border-radius: 0 0 .09em .09em; background: linear-gradient(180deg, #111, #1d1d1d); }

.xa-tile i {
    display: block;
    height: 200%;
    font-style: normal;
    line-height: 1.1em;
    text-align: center;
}

.xa-tile .b i,
.xa-tile .fb i { transform: translateY(-50%); }

/* Pant uprostřed a úchyty po stranách */
.xa-tile::after {
    content: '';
    position: absolute;
    z-index: 3;
    left: 0;
    right: 0;
    top: 50%;
    height: max(1px, .03em);
    transform: translateY(-50%);
    background: rgba(0, 0, 0, .85);
}

.xa-tile::before {
    content: '';
    position: absolute;
    z-index: 4;
    left: -.035em;
    right: -.035em;
    top: 50%;
    height: .16em;
    transform: translateY(-50%);
    border-radius: .02em;
    background: linear-gradient(90deg, #4a4a4a 0 .05em, transparent .05em calc(100% - .05em), #4a4a4a calc(100% - .05em));
}

.xa-tile .ft { z-index: 2; transform-origin: 50% 100%; animation: xa-flap-top .22s ease-in forwards; }
.xa-tile .fb { z-index: 2; transform-origin: 50% 0; transform: rotateX(90deg); animation: xa-flap-bottom .22s .21s ease-out forwards; }

@keyframes xa-flap-top {
    from { transform: rotateX(0deg); }
    to { transform: rotateX(-90deg); }
}

@keyframes xa-flap-bottom {
    from { transform: rotateX(90deg); }
    to { transform: rotateX(0deg); }
}

.xa-tile.is-sep { width: .3em; box-shadow: none; }
.xa-tile.is-sep > span { background: none; }
.xa-tile.is-sep::before,
.xa-tile.is-sep::after { display: none; }

/* ------------------------------------------------------------------
   Karty hráčů - domácí vlevo, hosté vpravo; v zápisu je karta tlačítko pro gól
   ------------------------------------------------------------------ */
.xa-squads {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: start;
    gap: 14px;
    margin-top: 18px;
}

.xa-squads-vs { align-self: center; color: rgba(255, 255, 255, .22); font-size: 22px; font-weight: 900; letter-spacing: .1em; }

.xa-squad {
    padding: 12px;
    border: 1px solid var(--xa-line);
    border-radius: 18px;
    background: var(--xa-panel);
    box-shadow: 0 20px 50px rgba(0, 0, 0, .3);
}

.xa-squad-head { height: 46px; margin-bottom: 14px; border-radius: 12px; }
.xa-squad.is-away .xa-squad-head { flex-direction: row-reverse; text-align: right; }

.xa-card-rows { --xa-gap: 10px; display: flex; flex-direction: column; gap: var(--xa-gap); }
.xa-card-row { display: flex; justify-content: center; gap: var(--xa-gap); }

.xa-card {
    position: relative;
    flex: 0 0 auto;
    width: calc((100% - (var(--xa-cols) - 1) * var(--xa-gap)) / var(--xa-cols));
    max-width: 178px;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: center;
}

.xa-card canvas {
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 10px 16px rgba(0, 0, 0, .45));
    transition: transform .15s, filter .2s, opacity .2s;
}

.xa-card-name {
    display: block;
    margin-top: 6px;
    overflow: hidden;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

button.xa-card { cursor: pointer; -webkit-tap-highlight-color: transparent; }
button.xa-card:focus-visible { outline: 2px solid var(--xa-gold); outline-offset: 4px; border-radius: 10px; }
.xa-squads.is-live button.xa-card:hover canvas { transform: translateY(-4px) scale(1.02); filter: drop-shadow(0 14px 22px rgba(0, 0, 0, .55)) drop-shadow(0 0 12px rgba(232, 197, 28, .4)); }
.xa-squads.is-live button.xa-card:active canvas { transform: scale(.97); }
.is-editable .xa-squads:not(.is-live) button.xa-card { cursor: not-allowed; }
.is-editable .xa-squads:not(.is-live) button.xa-card canvas { opacity: .7; filter: grayscale(.4) drop-shadow(0 10px 16px rgba(0, 0, 0, .45)); }
.xa-card.is-pending canvas { opacity: .65; }

.xa-card-badges {
    position: absolute;
    z-index: 2;
    top: 3%;
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    pointer-events: none;
}

.xa-card-goals,
.xa-card-pens {
    padding: 2px 8px;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--xa-gold-2), var(--xa-gold));
    color: #1b1605;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .45);
}

.xa-card-pens { background: #fff; }
.xa-card-goals[hidden],
.xa-card-pens[hidden] { display: none; }

.xa-card-flash {
    position: absolute;
    z-index: 3;
    left: 50%;
    top: 42%;
    opacity: 0;
    color: #fff;
    font-size: 30px;
    font-weight: 900;
    letter-spacing: .06em;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(.6);
    text-shadow: 0 0 18px rgba(232, 197, 28, .95), 0 3px 6px rgba(0, 0, 0, .85);
}

.xa-card.is-scored .xa-card-flash { animation: xa-goal-flash 1.2s ease-out; }
.xa-card.is-scored canvas { animation: xa-goal-pop .6s ease-out; }
.xa-card.is-shake { animation: xa-shake .4s; }

@keyframes xa-goal-flash {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.5); }
    25% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); }
    70% { opacity: 1; transform: translate(-50%, -62%) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -85%) scale(1); }
}

@keyframes xa-goal-pop {
    0% { transform: scale(1); }
    30% { transform: scale(1.07); filter: drop-shadow(0 0 24px rgba(232, 197, 28, .95)); }
    100% { transform: scale(1); }
}

@keyframes xa-shake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-6px); }
    40%, 80% { transform: translateX(6px); }
}

/* Oznámení (toastery) - flash zprávy a chyby formulářů, www/js/christmas-toast.js */
.xa-notices {
    position: fixed;
    z-index: 2000;
    top: 74px;
    right: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: min(420px, calc(100vw - 28px));
    pointer-events: none;
}

.xa-notice {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 12px 15px 14px;
    overflow: hidden;
    border: 1px solid rgba(51, 212, 154, .5);
    border-radius: 14px;
    background: rgba(12, 18, 40, .97);
    color: #fff;
    font-size: 14px;
    line-height: 1.4;
    box-shadow: 0 16px 44px rgba(0, 0, 0, .55);
    opacity: 0;
    transform: translateX(24px);
    transition: opacity .25s ease, transform .25s ease;
    pointer-events: auto;
}

.xa-notice.is-open { opacity: 1; transform: translateX(0); }
.xa-notice-icon { flex: 0 0 auto; font-size: 20px; line-height: 1.2; color: #33d49a; }
.xa-notice-text { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.xa-notice-close {
    flex: 0 0 auto;
    margin: -4px -2px 0 0;
    padding: 0 6px;
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, .65);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}
.xa-notice-close:hover { color: #fff; }

.xa-notice-bar {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 100%;
    background: currentColor;
    opacity: .55;
    transform-origin: left;
}
.xa-notice.is-counting .xa-notice-bar { animation: xa-notice-bar var(--xa-notice-ms, 6000ms) linear forwards; }
.xa-notice.is-paused .xa-notice-bar { animation-play-state: paused; opacity: 0; }
@keyframes xa-notice-bar { from { transform: scaleX(1); } to { transform: scaleX(0); } }

.xa-notice.is-success { color: #33d49a; }
.xa-notice.is-info { border-color: rgba(120, 170, 255, .55); color: #8db8ff; }
.xa-notice.is-info .xa-notice-icon { color: #8db8ff; }
.xa-notice.is-warning { border-color: rgba(232, 197, 28, .6); color: #e8c51c; }
.xa-notice.is-warning .xa-notice-icon { color: #e8c51c; }
.xa-notice.is-danger { border-color: rgba(255, 61, 87, .65); color: #ff6b81; }
.xa-notice.is-danger .xa-notice-icon { color: #ff6b81; }
.xa-notice .xa-notice-text { color: #fff; }

@media (max-width: 575px) {
    .xa-notices { top: 64px; right: 14px; left: 14px; width: auto; }
}

/* Potvrzení gólu s tlačítkem Vrátit */
.xa-toast {
    position: fixed;
    z-index: 1080;
    left: 50%;
    bottom: 22px;
    display: flex;
    align-items: center;
    gap: 12px;
    width: min(560px, calc(100vw - 24px));
    padding: 12px 14px 15px;
    overflow: hidden;
    border: 1px solid rgba(232, 197, 28, .5);
    border-radius: 16px;
    background: rgba(12, 18, 40, .97);
    color: #fff;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .55);
    transform: translate(-50%, 160%);
    transition: transform .25s ease;
}

.xa-toast.is-open { transform: translate(-50%, 0); }
.xa-toast-ball { font-size: 26px; line-height: 1; }
.xa-toast-text { flex: 1 1 auto; min-width: 0; }
.xa-toast-text b { color: var(--xa-gold-2); letter-spacing: .08em; }
.xa-toast.is-error { border-color: rgba(255, 61, 87, .6); }
.xa-toast.is-error .xa-toast-text b { color: #ff9aaa; }
.xa-toast.is-muted { border-color: var(--xa-line); }
.xa-toast.is-muted .xa-toast-text b { color: #fff; }

.xa-toast-undo {
    flex: 0 0 auto;
    padding: 8px 14px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #10131c;
    font-weight: 800;
}

.xa-toast-undo[hidden] { display: none; }
.xa-toast-bar { position: absolute; left: 0; bottom: 0; width: 100%; height: 3px; background: var(--xa-gold); transform-origin: left; }
.xa-toast.is-open .xa-toast-bar { animation: xa-toast-bar var(--xa-toast-ms, 6000ms) linear forwards; }

@keyframes xa-toast-bar {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}

/* ------------------------------------------------------------------
   Časová osa zápasu
   ------------------------------------------------------------------ */
.xa-tl-panel { margin-top: 18px; }

.xa-goal-menu { flex: 0 0 auto; }

.xa-goal-menu-btn {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

.xa-goal-menu-btn:hover { background: rgba(255, 255, 255, .22); }
.xa .dropdown-item img { width: 20px; height: 20px; margin-right: 6px; }

/* Nadpis fáze (prodloužení, penalty) */
.xa-axis-phase { position: relative; z-index: 1; display: flex; justify-content: center; margin: 18px 0 8px; }

.xa-axis-phase span {
    padding: 4px 14px;
    border-radius: 999px;
    background: linear-gradient(90deg, #ff6b81, #e2263f);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    box-shadow: 0 0 0 4px rgba(11, 18, 39, .9);
}

/* ------------------------------------------------------------------
   Osa - svislá čára, góly domácích vlevo, hostů vpravo
   ------------------------------------------------------------------ */
.xa-axis { position: relative; max-width: 860px; margin: 0 auto; padding: 6px 0; }

.xa-axis::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, transparent, rgba(232, 197, 28, .6) 6%, rgba(232, 197, 28, .6) 94%, transparent);
}

.xa-axis-item { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 58px minmax(0, 1fr); align-items: center; margin: 10px 0; }

.xa-axis-card {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--xa-line);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .03));
    box-shadow: 0 8px 20px rgba(0, 0, 0, .3);
}

.xa-axis-item.is-home .xa-axis-card { grid-column: 1; grid-row: 1; justify-self: end; flex-direction: row-reverse; text-align: right; border-right: 4px solid var(--xa-home-accent); }
.xa-axis-item.is-away .xa-axis-card { grid-column: 3; grid-row: 1; justify-self: start; border-left: 4px solid var(--xa-away-accent); }

.xa-axis-min {
    z-index: 1;
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 2px solid rgba(232, 197, 28, .85);
    border-radius: 50%;
    background: #0b1227;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    box-shadow: 0 0 0 4px rgba(11, 18, 39, .9), 0 0 16px rgba(232, 197, 28, .35);
}

.xa-avatar {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    overflow: hidden;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, #2c3a66, #111a36);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .25);
}

.xa-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 8%; }
.xa-axis-text { display: flex; flex-direction: column; min-width: 0; }
.xa-axis-text b { overflow: hidden; color: #fff; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.xa-axis-text small { color: var(--xa-muted); font-size: 12px; }
.xa-axis-text small i { color: var(--xa-gold-2); }

.xa-axis-score {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px 8px;
    border-radius: 8px;
    background: rgba(0, 0, 0, .35);
    color: rgba(255, 255, 255, .6);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.xa-axis-score i { font-style: normal; opacity: .6; }
.xa-axis-score b.is-hit { color: var(--xa-gold-2); }

.xa-axis-item.is-cancelled .xa-axis-card { opacity: .6; }
.xa-axis-item.is-cancelled .xa-axis-text b { text-decoration: line-through; }
.xa-axis-item.is-cancelled .xa-axis-text small { color: #ff8a9a; }
.xa-axis-item.is-cancelled .xa-axis-min { border-color: rgba(255, 61, 87, .85); }
.xa-axis-item.is-winning .xa-axis-card { border-color: rgba(232, 197, 28, .65); box-shadow: 0 0 24px rgba(232, 197, 28, .28); }

/* ------------------------------------------------------------------
   Tabule nad stránkou - podle tabule „MAFIA WINS“ z fotky pozadí: tmavá deska v kovovém rámu
   se šrouby, krémové písmo Oswald, skóre na červených LED číslicích (SVG, www/js/christmas-arena.js)
   ------------------------------------------------------------------ */
.xa-scoreboard-wrap { display: flex; justify-content: center; margin: 0 0 26px; padding: 0 12px; }

.xa-scoreboard {
    position: relative;
    width: min(440px, 100%);
    padding: 14px 22px 12px;
    border: 5px solid #5d5d5d;
    border-radius: 6px;
    background: linear-gradient(180deg, #262626 0%, #171717 55%, #121212 100%);
    color: #efe6d2;
    font-family: 'Oswald', 'Poppins', 'Segoe UI', sans-serif;
    text-transform: uppercase;
    box-shadow: 0 0 0 1px #262626, 0 22px 44px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .08), inset 0 0 30px rgba(0, 0, 0, .6);
    transition: opacity .22s;
}

.xa-scoreboard::before {
    content: '';
    position: absolute;
    inset: -5px;
    border-radius: 6px;
    pointer-events: none;
    background: linear-gradient(135deg, rgba(255, 255, 255, .22), transparent 40%, rgba(0, 0, 0, .25) 75%, rgba(255, 255, 255, .12));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    padding: 5px;
}

.xa-sb-bolt {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #d8d8d8, #6b6b6b 60%, #3a3a3a);
    box-shadow: 0 1px 1px rgba(0, 0, 0, .6);
}

.xa-sb-bolt.is-tl { top: 5px; left: 5px; }
.xa-sb-bolt.is-tr { top: 5px; right: 5px; }
.xa-sb-bolt.is-bl { bottom: 5px; left: 5px; }
.xa-sb-bolt.is-br { bottom: 5px; right: 5px; }

.xa-sb-title {
    overflow: hidden;
    padding: 0 6px 6px;
    border-bottom: 2px solid #3a3a3a;
    font-size: 32px;
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1.15;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-shadow: 0 1px 0 rgba(0, 0, 0, .8);
}

.xa-sb-body { transition: opacity .22s; }
.xa-scoreboard.is-switching .xa-sb-body { opacity: 0; }

.xa-sb-teams { display: flex; justify-content: space-between; gap: 14px; margin-top: 9px; font-size: 18px; font-weight: 600; letter-spacing: .03em; }
.xa-sb-teams span { max-width: 46%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xa-sb-teams span:last-child { text-align: right; }

.xa-sb-score { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; margin-top: 4px; }
.xa-sb-score .xa-sb-led:first-child { justify-self: start; }
.xa-sb-score .xa-sb-led:last-child { justify-self: end; }
.xa-sb-x { padding: 0 12px; color: #ff4a36; font-size: 40px; font-weight: 400; line-height: 1; text-shadow: 0 0 10px rgba(255, 58, 36, .7); }

.xa-sb-led {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 72px;
    justify-content: center;
    padding: 7px 12px;
    border-radius: 3px;
    background: #060606;
    box-shadow: inset 0 2px 8px rgba(0, 0, 0, .95), 0 0 0 1px #2e2e2e;
    color: #ff3a24;
    font-family: Consolas, 'Courier New', monospace;
    font-size: 34px;
    line-height: 1;
}

.xa-sb-led svg { display: block; width: auto; height: 46px; overflow: visible; transform: skewX(-6deg); filter: drop-shadow(0 0 3px rgba(255, 58, 36, .85)); }
.xa-sb-led svg .on,
.xa-sb-led svg rect,
.xa-sb-led svg.is-tick polygon { fill: #ff3a24; }
.xa-sb-led svg .off { fill: rgba(255, 58, 36, .07); }
.xa-sb-led.is-small { min-width: 0; padding: 4px 8px; font-size: 18px; }
.xa-sb-led.is-small svg { height: 24px; }

.xa-sb-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; font-size: 19px; font-weight: 600; letter-spacing: .04em; }
.xa-scoreboard.is-live .xa-sb-foot [data-sb-label] { color: #ff8a7a; }

.xa-sb-dots { display: flex; justify-content: center; gap: 6px; margin-top: 10px; }
.xa-sb-dots i { width: 6px; height: 6px; border-radius: 50%; background: #444; transition: background .2s, box-shadow .2s; }
.xa-sb-dots i.is-active { background: #ff3a24; box-shadow: 0 0 6px rgba(255, 58, 36, .9); }
.xa-sb-empty { padding: 16px 0 6px; font-size: 18px; text-align: center; opacity: .75; }

/* ------------------------------------------------------------------
   Záložky stránek turnaje (Rozpis, Tabulka, Střelci, Karty)
   ------------------------------------------------------------------ */
.xa-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--xa-line);
    border-radius: 22px;
    background: rgba(6, 9, 22, .74);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.xa .xa-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 15px;
    border-radius: 999px;
    color: var(--xa-muted);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background .15s, color .15s;
}

.xa .xa-tab:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.xa .xa-tab.is-active { background: linear-gradient(180deg, var(--xa-gold-2), var(--xa-gold)); color: #1b1605; }
.xa .xa-tab-icon { padding: 8px 12px; }
.xa-sub { margin: -8px 0 14px; }
.xa-note { margin: 16px 0 0; color: var(--xa-muted); font-size: 13px; }

/* ------------------------------------------------------------------
   Tabulka skupiny
   ------------------------------------------------------------------ */
.xa-table { display: flex; flex-direction: column; gap: 6px; }

.xa-table-row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 40px 36px 36px 36px 64px 48px 50px;
    align-items: center;
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--xa-line);
    border-radius: 12px;
    background: rgba(255, 255, 255, .03);
    color: #fff;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.xa-table-row.is-head {
    border: 0;
    background: none;
    color: var(--xa-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.xa-table-row.is-head > :nth-child(2) { padding-left: 12px; text-align: left; }
.xa-table-row .xa-team { height: 50px; }
/* Název týmu se nezkracuje třemi tečkami - písmo mu zmenšuje fitTableNames() v christmas-arena.js */
.xa-table-row .xa-team-name { flex: 0 1 auto; text-overflow: clip; letter-spacing: .01em; }

.xa-table-pos {
    display: grid;
    place-items: center;
    align-self: stretch;
    background: rgba(0, 0, 0, .28);
    color: #fff;
    font-size: 16px;
    font-weight: 800;
}

.xa-table-row.is-direct { border-color: rgba(51, 212, 154, .45); }
.xa-table-row.is-direct .xa-table-pos { background: linear-gradient(180deg, #3fe0a6, #1fa874); color: #04291b; }
.xa-table-row.is-prelim { border-color: rgba(90, 162, 255, .45); }
.xa-table-row.is-prelim .xa-table-pos { background: linear-gradient(180deg, #7fb8ff, #3d7fe0); color: #06193a; }
.xa-table-row.is-prelim2 { border-color: rgba(255, 170, 60, .45); }
.xa-table-row.is-prelim2 .xa-table-pos { background: linear-gradient(180deg, #ffc46b, #e88a1a); color: #2d1700; }

/* Vlastní tým přihlášeného týmového loginu (kapitán i hráč) - jemné zvýraznění v tabulce
   skupiny (Tournament/table.latte) i na dlaždici zápasu v rozpisu (Tournament/default.latte) */
.xa-table-row.is-mine { background: rgba(232, 197, 28, .1); box-shadow: inset 0 0 0 1px rgba(232, 197, 28, .5); }
.xa-team.is-mine::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    box-shadow: inset 0 0 0 2px rgba(232, 197, 28, .65);
    background: rgba(232, 197, 28, .08);
    pointer-events: none;
}

.xa-table-score { font-weight: 600; }
.xa-table-row .is-diff { color: var(--xa-muted); }
.xa-table-pts { color: var(--xa-gold-2); font-size: 20px; font-weight: 800; }

.xa-tiebreak {
    flex: 0 0 auto;
    padding: 1px 7px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
}

.xa-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 16px; font-size: 13px; }
.xa-legend-item { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 600; }
.xa-legend-item::before { content: ''; width: 12px; height: 12px; border-radius: 4px; }
.xa-legend-item.is-direct::before { background: #2fc98d; }
.xa-legend-item.is-prelim::before { background: #5a9cf5; }
.xa-legend-item.is-prelim2::before { background: #f5a13a; }

/* Legenda odznaků na kartách (www/js/christmas-ranking.js) */
.xa-badge-legend { color: var(--xa-muted); }
.xa-badge-legend b { color: #fff; }
.xa-badge-legend span { white-space: nowrap; }
.xa-badge-legend:empty { display: none; }

/* ------------------------------------------------------------------
   Střelci - přepínač Karty / Hráči
   ------------------------------------------------------------------ */
.xa-switch { display: inline-flex; align-items: center; gap: 10px; margin: 0; color: var(--xa-muted); font-size: 14px; font-weight: 700; cursor: pointer; user-select: none; }
.xa-switch input { position: absolute; opacity: 0; pointer-events: none; }

.xa-switch i {
    position: relative;
    width: 52px;
    height: 28px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .16);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12);
    transition: background .2s;
}

.xa-switch i::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .4);
    transition: transform .2s;
}

.xa-switch input:checked + i { background: linear-gradient(180deg, var(--xa-gold-2), var(--xa-gold)); }
.xa-switch input:checked + i::after { transform: translateX(24px); }
.xa-switch input:focus-visible + i { outline: 2px solid var(--xa-gold); outline-offset: 3px; }
[data-view="cards"] .xa-switch span:last-child,
[data-view="list"] .xa-switch span:first-child { color: #fff; }

[data-scorers][data-view="cards"] .xa-scorer-list,
[data-scorers][data-view="list"] .xa-scorer-cards { display: none; }

/* Karty střelců */
.xa-scorer-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px 14px; }
.xa-scorer-card { position: relative; margin: 0; text-align: center; }
.xa-scorer-card canvas { display: block; width: 100%; height: auto; filter: drop-shadow(0 10px 16px rgba(0, 0, 0, .45)); }

.xa-scorer-card .xa-scorer-rank {
    position: absolute;
    z-index: 2;
    top: -6px;
    left: -4px;
    display: grid;
    place-items: center;
    min-width: 36px;
    height: 36px;
    padding: 0 6px;
    border-radius: 999px;
    background: #0b1227;
    color: #fff;
    font-size: 15px;
    font-weight: 900;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .5), 0 6px 14px rgba(0, 0, 0, .5);
}

.xa-scorer-card.is-top-1 .xa-scorer-rank { background: linear-gradient(180deg, #ffe27a, #d9a520); color: #2a1d00; box-shadow: 0 0 0 2px #fff3c2, 0 0 18px rgba(232, 197, 28, .7); }
.xa-scorer-card.is-top-2 .xa-scorer-rank { background: linear-gradient(180deg, #f1f4f8, #aab4c2); color: #1d2430; box-shadow: 0 0 0 2px #fff, 0 6px 14px rgba(0, 0, 0, .5); }
.xa-scorer-card.is-top-3 .xa-scorer-rank { background: linear-gradient(180deg, #f3b98a, #b86f35); color: #2a1300; box-shadow: 0 0 0 2px #ffe0c6, 0 6px 14px rgba(0, 0, 0, .5); }
.xa-scorer-card.is-top-1 canvas { filter: drop-shadow(0 10px 16px rgba(0, 0, 0, .45)) drop-shadow(0 0 16px rgba(232, 197, 28, .45)); }

/* Góly pod kartou střelce - velký míč celkem, pod ním menší základní část (modrý) a playoff (červený) */
.xa-scorer-balls { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: 8px; }
.xa-scorer-balls-row { display: flex; justify-content: center; gap: 14px; }
.xa-ball { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.xa-ball b {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 3px solid var(--xa-ball, var(--xa-gold));
    border-radius: 50%;
    background:
        conic-gradient(from 18deg, rgba(20, 24, 36, .14) 0 10%, transparent 0 20%, rgba(20, 24, 36, .14) 0 30%, transparent 0 40%,
                       rgba(20, 24, 36, .14) 0 50%, transparent 0 60%, rgba(20, 24, 36, .14) 0 70%, transparent 0 80%,
                       rgba(20, 24, 36, .14) 0 90%, transparent 0),
        radial-gradient(circle at 35% 30%, #fff, #dfe4ec 70%, #b9c1ce);
    color: #141824;
    font-size: 15px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, .35), 0 6px 12px rgba(0, 0, 0, .45), 0 0 12px color-mix(in srgb, var(--xa-ball, var(--xa-gold)) 45%, transparent);
}
.xa-ball small { color: var(--xa-ball, var(--xa-gold)); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.xa-ball.is-total { --xa-ball: var(--xa-gold-2); }
.xa-ball.is-total b { width: 48px; height: 48px; border-width: 4px; font-size: 20px; }
.xa-ball.is-group { --xa-ball: #5fb2ff; }
.xa-ball.is-playoff { --xa-ball: #ff6f6f; }

.xa-scorer-card figcaption { margin-top: 8px; }
.xa-scorer-card figcaption b,
.xa-grid-card figcaption { display: block; overflow: hidden; color: #fff; font-size: 14px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.xa-scorer-card figcaption small { display: block; overflow: hidden; color: var(--xa-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }

/* Posuvný carousel panelů (www/js/christmas-carousel.js) - historie, rekordy. Na počítači 3 panely vedle sebe,
   na tabletu 2, na mobilu jeden s kouskem dalšího (je vidět, že jde posouvat). Nahoře šipky a čipy s názvy panelů. */
.xa-carousel { margin-bottom: 18px; }
.xa-carousel-nav { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.xa-carousel-chips { display: flex; flex: 1 1 auto; gap: 6px; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.xa-carousel-chips::-webkit-scrollbar { display: none; }
.xa-carousel-chip {
    flex: none;
    padding: 5px 12px;
    border: 1px solid var(--xa-line);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    color: var(--xa-text);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    transition: background .15s, border-color .15s, color .15s;
}
.xa-carousel-chip:hover { background: rgba(255, 255, 255, .12); }
.xa-carousel-chip.is-active { border-color: rgba(232, 197, 28, .5); background: rgba(232, 197, 28, .16); color: var(--xa-gold-2); }
.xa-carousel-btn {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--xa-line);
    border-radius: 50%;
    background: rgba(255, 255, 255, .06);
    color: var(--xa-text);
    transition: background .15s, opacity .15s;
}
.xa-carousel-btn:hover:not(:disabled) { background: rgba(255, 255, 255, .14); }
.xa-carousel-btn:disabled { opacity: .35; cursor: default; }
.xa-carousel-track {
    display: grid;
    grid-auto-columns: calc((100% - 36px) / 3);
    grid-auto-flow: column;
    align-items: start;
    gap: 18px;
    padding-bottom: 6px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-behavior: smooth;
    transition: height .25s ease;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
}
.xa-carousel-track:focus-visible { outline: 2px solid var(--xa-gold); outline-offset: 4px; border-radius: 12px; }
.xa-carousel-track > .xa-panel { min-width: 0; margin: 0; scroll-snap-align: start; }
.xa .xa-carousel-track .xa-panel-title { margin-bottom: 10px; font-size: 17px; }
.xa-medal.is-1 { color: #ffd34d; }
.xa-medal.is-2 { color: #d5dce6; }
.xa-medal.is-3 { color: #d8945c; }
@media (max-width: 1199.98px) {
    .xa-carousel-track { grid-auto-columns: calc((100% - 18px) / 2); }
}
@media (max-width: 767.98px) {
    .xa-carousel-track { grid-auto-columns: 86%; gap: 12px; }
    .xa-carousel-btn { width: 32px; height: 32px; }
}

/* Seznam střelců */
.xa-scorer-list { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }

.xa-scorer-list li {
    display: grid;
    grid-template-columns: 42px 44px minmax(0, 1fr) auto 56px;
    align-items: center;
    gap: 12px;
    padding: 6px 10px 6px 6px;
    border: 1px solid var(--xa-line);
    border-radius: 12px;
    background: rgba(255, 255, 255, .03);
}

.xa-scorer-list .xa-scorer-rank { color: #fff; font-size: 16px; font-weight: 800; text-align: center; }
.xa-scorer-list li.is-top-1 { border-color: rgba(232, 197, 28, .6); background: linear-gradient(90deg, rgba(232, 197, 28, .16), rgba(255, 255, 255, .03) 60%); }
.xa-scorer-list li.is-top-1 .xa-scorer-rank { color: var(--xa-gold-2); }
.xa-scorer-list li.is-top-2 .xa-scorer-rank { color: #dfe5ee; }
.xa-scorer-list li.is-top-3 .xa-scorer-rank { color: #e8a878; }
.xa-scorer-list .xa-avatar { width: 44px; height: 44px; }
.xa-scorer-name { display: flex; flex-direction: column; min-width: 0; }
.xa-scorer-name b { overflow: hidden; color: #fff; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.xa-scorer-name small { display: flex; align-items: center; gap: 6px; overflow: hidden; color: var(--xa-muted); font-size: 12px; white-space: nowrap; }
.xa-scorer-name small img { flex: 0 0 auto; width: 18px; height: 18px; object-fit: contain; }
.xa-scorer-split { color: var(--xa-muted); font-size: 13px; font-variant-numeric: tabular-nums; }
.xa-scorer-total { color: var(--xa-gold-2); font-size: 22px; font-weight: 900; font-variant-numeric: tabular-nums; text-align: center; }

/* ------------------------------------------------------------------
   Karty hráčů po týmech
   ------------------------------------------------------------------ */
.xa-team-jump { margin: 0 0 16px; }
.xa .xa-team-jump .xa-chip { color: var(--xa-text); text-decoration: none; }
.xa .xa-team-jump .xa-chip:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.xa-team-cards { scroll-margin-top: 110px; }
.xa-team-cards + .xa-team-cards { margin-top: 16px; }
.xa-team-cards .xa-squad-head .xa-chip { margin-left: auto; }
.xa-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 16px 14px; }
.xa-grid-card { margin: 0; text-align: center; }
.xa-grid-card canvas { display: block; width: 100%; height: auto; filter: drop-shadow(0 10px 16px rgba(0, 0, 0, .45)); }
.xa-grid-card figcaption { margin-top: 6px; }

/* Vlastní tým nahoře a kapitánský bonus (Tournament/cards.latte, www/js/christmas-captain-bonus.js) */
.xa-team-cards.is-own { border-color: rgba(90, 162, 255, .45); box-shadow: 0 0 0 1px rgba(90, 162, 255, .18); }
.xa-team-cards .xa-squad-head .xa-chip + .xa-own-chip { margin-left: 6px; }
.xa-bonus-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -4px 0 14px; }
.xa .xa-bonus-bar .xa-btn { margin-left: auto; }
.xa-bonus-toggles { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 16px; }
.xa-bonus-toggle { display: flex; align-items: center; gap: 10px; min-width: 220px; padding: 10px 14px; border: 1px solid var(--xa-line); border-radius: 12px;
                   background: rgba(255, 255, 255, .04); cursor: pointer; }
.xa-bonus-toggle input { width: 18px; height: 18px; accent-color: var(--xa-gold); }
.xa-bonus-toggle b { color: var(--xa-text); }
.xa-bonus-toggle small { color: var(--xa-muted); }
.xa-bonus-toggle.is-active { border-color: rgba(232, 197, 28, .65); background: rgba(232, 197, 28, .12); }
.xa-bonus-toggle.is-done { border-color: rgba(51, 212, 154, .5); background: rgba(51, 212, 154, .1); }
.xa-bonus-toggle.is-done small { color: #b9f5dd; }
.xa-bonus-card[data-bonus-player] { cursor: pointer; border-radius: 14px; padding: 6px; transition: background-color .15s, box-shadow .15s; }
.xa-bonus-card[data-bonus-player]:hover,
.xa-bonus-card[data-bonus-player]:focus-visible { background: rgba(255, 255, 255, .06); outline: none; }
.xa-bonus-card.is-picked { background: rgba(232, 197, 28, .12); box-shadow: 0 0 0 2px rgba(232, 197, 28, .7); }
.xa-bonus-card.is-given { opacity: .55; padding: 6px; }
.xa-bonus-label { min-height: 1.2em; color: var(--xa-gold-2); font-weight: 600; white-space: normal; line-height: 1.25; }
.xa-bonus-card.is-given .xa-bonus-label { color: var(--xa-muted); }
.xa-bonus-modal .modal-footer { flex-wrap: wrap; gap: 8px; }
.xa-bonus-modal .xa-btn[disabled] { opacity: .5; cursor: not-allowed; }
@media (max-width: 575.98px) {
    .xa-bonus-toggle { flex: 1 1 100%; min-width: 0; }
    .xa .xa-bonus-bar .xa-btn { width: 100%; justify-content: center; margin-left: 0; }
}

/* ------------------------------------------------------------------
   Bootstrap v tmavém vzhledu turnaje (layout má data-bs-theme="dark") - tlačítka, formuláře,
   tabulky, štítky, hlášky, okna, nabídky, akordeony a záložky ve správě i ve formulářích týmu
   ------------------------------------------------------------------ */
.xa h4,
.xa h5,
.xa h6 { color: #fff; font-family: var(--xa-font); font-weight: 700; }
.xa hr { border-color: rgba(255, 255, 255, .14); opacity: 1; }
.xa small,
.xa .small { color: inherit; }
.xa .text-muted { color: var(--xa-muted) !important; }
.xa .text-danger { color: #ff8a9a !important; }
.xa .text-success { color: #6ee7b7 !important; }
.xa .text-warning { color: #ffd166 !important; }

.xa code {
    padding: 1px 7px;
    border-radius: 6px;
    background: rgba(0, 0, 0, .38);
    color: var(--xa-gold-2);
    font-size: .88em;
}

/* Tlačítka */
.xa .btn {
    --bs-btn-font-weight: 600;
    --bs-btn-border-radius: 999px;
    --bs-btn-padding-x: 1rem;
    --bs-btn-focus-box-shadow: 0 0 0 .22rem rgba(232, 197, 28, .3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: background-color .15s, border-color .15s, color .15s, filter .15s, box-shadow .15s;
}

.xa .btn-sm { --bs-btn-padding-x: .75rem; --bs-btn-border-radius: 999px; }
.xa .btn-lg { --bs-btn-border-radius: 999px; }
.xa .btn img { width: 18px; height: 18px; }

.xa .btn-primary {
    --bs-btn-color: #1b1605;
    --bs-btn-bg: var(--xa-gold);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: #1b1605;
    --bs-btn-hover-bg: var(--xa-gold-2);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: #1b1605;
    --bs-btn-active-bg: #d4b012;
    --bs-btn-active-border-color: transparent;
    --bs-btn-disabled-color: #1b1605;
    --bs-btn-disabled-bg: var(--xa-gold);
    --bs-btn-disabled-border-color: transparent;
    background-image: linear-gradient(180deg, var(--xa-gold-2), var(--xa-gold));
    box-shadow: 0 8px 22px rgba(232, 197, 28, .22);
}

.xa .btn-primary:hover { filter: brightness(1.06); }

.xa .btn-success {
    --bs-btn-color: #04291b;
    --bs-btn-bg: #33d49a;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: #04291b;
    --bs-btn-hover-bg: #4ce0aa;
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: #04291b;
    --bs-btn-active-bg: #22b884;
    --bs-btn-active-border-color: transparent;
    background-image: linear-gradient(180deg, #4fe2ad, #22b884);
}

.xa .btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: #e2263f;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #f03a52;
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #c51d34;
    --bs-btn-active-border-color: transparent;
    background-image: linear-gradient(180deg, #ff6b81, #e2263f);
    box-shadow: 0 8px 22px rgba(226, 38, 63, .22);
}

.xa .btn-warning {
    --bs-btn-color: #2d1700;
    --bs-btn-bg: #f5a13a;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: #2d1700;
    --bs-btn-hover-bg: #ffb455;
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: #2d1700;
    --bs-btn-active-bg: #e08a1e;
    --bs-btn-active-border-color: transparent;
    background-image: linear-gradient(180deg, #ffc46b, #e88a1a);
}

.xa .btn-secondary,
.xa .btn-light {
    --bs-btn-color: var(--xa-text);
    --bs-btn-bg: rgba(255, 255, 255, .1);
    --bs-btn-border-color: rgba(255, 255, 255, .16);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(255, 255, 255, .18);
    --bs-btn-hover-border-color: rgba(255, 255, 255, .26);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: rgba(255, 255, 255, .24);
    --bs-btn-active-border-color: rgba(255, 255, 255, .3);
    --bs-btn-disabled-color: var(--xa-muted);
    --bs-btn-disabled-bg: rgba(255, 255, 255, .06);
    --bs-btn-disabled-border-color: transparent;
}

.xa .btn-outline-primary {
    --bs-btn-color: var(--xa-gold-2);
    --bs-btn-border-color: rgba(232, 197, 28, .5);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(232, 197, 28, .16);
    --bs-btn-hover-border-color: var(--xa-gold);
    --bs-btn-active-color: #1b1605;
    --bs-btn-active-bg: var(--xa-gold);
    --bs-btn-active-border-color: var(--xa-gold);
    --bs-btn-disabled-color: rgba(255, 223, 90, .5);
    --bs-btn-disabled-border-color: rgba(232, 197, 28, .25);
}

.xa .btn-outline-secondary,
.xa .btn-outline-dark {
    --bs-btn-color: var(--xa-text);
    --bs-btn-border-color: rgba(255, 255, 255, .2);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(255, 255, 255, .1);
    --bs-btn-hover-border-color: rgba(255, 255, 255, .34);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: rgba(255, 255, 255, .22);
    --bs-btn-active-border-color: rgba(255, 255, 255, .4);
    --bs-btn-disabled-color: var(--xa-muted);
    --bs-btn-disabled-border-color: rgba(255, 255, 255, .1);
}

.xa .btn-outline-success {
    --bs-btn-color: #6ee7b7;
    --bs-btn-border-color: rgba(51, 212, 154, .5);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(51, 212, 154, .16);
    --bs-btn-hover-border-color: #33d49a;
    --bs-btn-active-color: #04291b;
    --bs-btn-active-bg: #33d49a;
    --bs-btn-active-border-color: #33d49a;
}

.xa .btn-outline-danger {
    --bs-btn-color: #ff9aaa;
    --bs-btn-border-color: rgba(255, 61, 87, .5);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(255, 61, 87, .18);
    --bs-btn-hover-border-color: #ff3d57;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #e2263f;
    --bs-btn-active-border-color: #e2263f;
}

.xa .btn-outline-warning {
    --bs-btn-color: #ffd166;
    --bs-btn-border-color: rgba(245, 161, 58, .55);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(245, 161, 58, .18);
    --bs-btn-hover-border-color: #f5a13a;
    --bs-btn-active-color: #2d1700;
    --bs-btn-active-bg: #f5a13a;
    --bs-btn-active-border-color: #f5a13a;
}

/* Skupiny tlačítek (pozice ATT / DEF, hodnocení v týmu) - obdélníkové segmenty */
.xa .btn-group > .btn { border-radius: 0; }
.xa .btn-group > .btn:first-child,
.xa .btn-group > .btn-check:first-child + .btn { border-top-left-radius: 999px; border-bottom-left-radius: 999px; }
.xa .btn-group > .btn:last-child { border-top-right-radius: 999px; border-bottom-right-radius: 999px; }

/* Formuláře */
.xa .form-label,
.xa .col-form-label { margin-bottom: .35rem; color: rgba(226, 232, 246, .86); font-size: 14px; font-weight: 600; }
.xa .form-label.small { font-size: 12.5px; }
.xa .form-text { color: var(--xa-muted); font-size: 12.5px; }

.xa .form-control,
.xa .form-select {
    border-color: rgba(255, 255, 255, .16);
    border-radius: 12px;
    background-color: rgba(6, 10, 26, .62);
    color: var(--xa-text);
    transition: border-color .15s, box-shadow .15s, background-color .15s;
}

.xa .form-control-sm,
.xa .form-select-sm { border-radius: 10px; }

.xa .form-control:focus,
.xa .form-select:focus {
    border-color: rgba(232, 197, 28, .75);
    background-color: rgba(6, 10, 26, .82);
    color: #fff;
    box-shadow: 0 0 0 .22rem rgba(232, 197, 28, .18);
}

.xa .form-control::placeholder { color: rgba(221, 228, 245, .36); }
.xa .form-control:disabled,
.xa .form-select:disabled { background-color: rgba(255, 255, 255, .04); opacity: .6; }
.xa .form-control[type=file]::file-selector-button { background: rgba(255, 255, 255, .1); color: #fff; }
.xa .form-select option,
.xa .form-select optgroup { background: #111830; color: #fff; }
.xa .form-control.is-invalid,
.xa .form-select.is-invalid { border-color: rgba(255, 61, 87, .75); }

.xa .input-group-text { border-color: rgba(255, 255, 255, .16); background: rgba(255, 255, 255, .06); color: var(--xa-text); }
.xa .input-group > .form-control { border-radius: 0 12px 12px 0; }
.xa .input-group > :first-child { border-top-left-radius: 12px; border-bottom-left-radius: 12px; }

.xa .form-check-input {
    --bs-form-check-bg: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .34);
}

.xa .form-check-input:checked { border-color: var(--xa-gold); background-color: var(--xa-gold); }
.xa .form-check-input:checked[type=checkbox] { --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%231b1605' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); }
.xa .form-check-input:checked[type=radio] { --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%231b1605'/%3e%3c/svg%3e"); }
.xa .form-switch .form-check-input:checked { --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%231b1605'/%3e%3c/svg%3e"); }
.xa .form-check-input:focus { border-color: rgba(232, 197, 28, .75); box-shadow: 0 0 0 .22rem rgba(232, 197, 28, .2); }
.xa .form-check-label { color: var(--xa-text); }

.xa .form-range::-webkit-slider-thumb { background: var(--xa-gold); box-shadow: 0 1px 6px rgba(0, 0, 0, .45); }
.xa .form-range::-moz-range-thumb { background: var(--xa-gold); box-shadow: 0 1px 6px rgba(0, 0, 0, .45); }
.xa .form-range::-webkit-slider-runnable-track { background: rgba(255, 255, 255, .16); }
.xa .form-range::-moz-range-track { background: rgba(255, 255, 255, .16); }
.xa .form-range:focus::-webkit-slider-thumb { box-shadow: 0 0 0 .22rem rgba(232, 197, 28, .3); }

/* Tabulky */
.xa .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--xa-text);
    --bs-table-border-color: rgba(255, 255, 255, .08);
    --bs-table-striped-bg: rgba(255, 255, 255, .035);
    --bs-table-striped-color: var(--xa-text);
    --bs-table-hover-bg: rgba(255, 255, 255, .06);
    --bs-table-hover-color: #fff;
    --bs-table-active-bg: rgba(232, 197, 28, .1);
    margin-bottom: 0;
    font-size: 14px;
}

.xa .table > :not(caption) > * > * { padding: .62rem .7rem; }
.xa .table-sm > :not(caption) > * > * { padding: .4rem .5rem; }

.xa .table > thead th {
    border-bottom-color: rgba(255, 255, 255, .16);
    color: var(--xa-muted);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    white-space: nowrap;
}

.xa .table > tbody > tr:last-child > * { border-bottom: 0; }
.xa .table b,
.xa .table strong { color: #fff; }

.xa .table-light,
.xa .table-primary {
    --bs-table-color: var(--xa-gold-2);
    --bs-table-bg: rgba(232, 197, 28, .08);
    --bs-table-border-color: rgba(232, 197, 28, .2);
    --bs-table-striped-bg: rgba(232, 197, 28, .08);
    --bs-table-striped-color: var(--xa-gold-2);
    --bs-table-hover-bg: rgba(232, 197, 28, .12);
    --bs-table-hover-color: var(--xa-gold-2);
    color: var(--xa-gold-2);
}

/* Štítky */
.xa .badge { padding: .38em .72em; border-radius: 999px; font-weight: 700; letter-spacing: .02em; }
.xa .badge.bg-primary { background: var(--xa-gold) !important; color: #1b1605 !important; }
.xa .badge.bg-success { background: rgba(51, 212, 154, .2) !important; color: #b9f5dd !important; box-shadow: inset 0 0 0 1px rgba(51, 212, 154, .45); }
.xa .badge.bg-danger { background: rgba(255, 61, 87, .22) !important; color: #ffc2cc !important; box-shadow: inset 0 0 0 1px rgba(255, 61, 87, .5); }
.xa .badge.bg-warning { background: rgba(245, 161, 58, .22) !important; color: #ffd9a3 !important; box-shadow: inset 0 0 0 1px rgba(245, 161, 58, .5); }
.xa .badge.bg-info { background: rgba(90, 162, 255, .2) !important; color: #cfe3ff !important; box-shadow: inset 0 0 0 1px rgba(90, 162, 255, .45); }
.xa .badge.bg-secondary,
.xa .badge.bg-light,
.xa .badge.bg-dark { background: rgba(255, 255, 255, .1) !important; color: var(--xa-text) !important; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }

/* Hlášky */
.xa .alert {
    --bs-alert-border-radius: 14px;
    --bs-alert-color: var(--xa-text);
    --bs-alert-bg: rgba(255, 255, 255, .06);
    --bs-alert-border-color: rgba(255, 255, 255, .14);
    --bs-alert-link-color: var(--xa-gold-2);
}

.xa .alert-success { --bs-alert-color: #d9fff0; --bs-alert-bg: rgba(51, 212, 154, .12); --bs-alert-border-color: rgba(51, 212, 154, .38); }
.xa .alert-danger { --bs-alert-color: #ffe1e6; --bs-alert-bg: rgba(255, 61, 87, .14); --bs-alert-border-color: rgba(255, 61, 87, .45); }
.xa .alert-warning { --bs-alert-color: #fff4c4; --bs-alert-bg: rgba(232, 197, 28, .12); --bs-alert-border-color: rgba(232, 197, 28, .45); }
.xa .alert-info { --bs-alert-color: #dcebff; --bs-alert-bg: rgba(90, 162, 255, .12); --bs-alert-border-color: rgba(90, 162, 255, .4); }
.xa .alert a { color: var(--xa-gold-2); font-weight: 600; text-decoration: underline; }

/* Okna */
.xa .modal {
    --bs-modal-bg: #0f1633;
    --bs-modal-border-color: rgba(255, 255, 255, .12);
    --bs-modal-border-radius: 20px;
    --bs-modal-inner-border-radius: 19px;
    --bs-modal-header-border-color: rgba(255, 255, 255, .08);
    --bs-modal-footer-border-color: rgba(255, 255, 255, .08);
    --bs-modal-box-shadow: 0 30px 80px rgba(0, 0, 0, .6);
    --bs-modal-color: var(--xa-text);
}

.xa .modal-content { background-image: linear-gradient(180deg, rgba(255, 255, 255, .03), transparent 40%); box-shadow: var(--bs-modal-box-shadow); }
.xa .modal-title { font-weight: 800; }
.modal-backdrop { --bs-backdrop-bg: #03050d; --bs-backdrop-opacity: .72; }

/* Nabídky */
.xa .dropdown-menu {
    --bs-dropdown-bg: rgba(15, 22, 51, .98);
    --bs-dropdown-border-color: rgba(255, 255, 255, .12);
    --bs-dropdown-border-radius: 14px;
    --bs-dropdown-link-color: var(--xa-text);
    --bs-dropdown-link-hover-color: #fff;
    --bs-dropdown-link-hover-bg: rgba(232, 197, 28, .14);
    --bs-dropdown-link-active-color: #1b1605;
    --bs-dropdown-link-active-bg: var(--xa-gold);
    --bs-dropdown-divider-bg: rgba(255, 255, 255, .1);
    --bs-dropdown-header-color: var(--xa-muted);
    padding: 6px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .55);
}

.xa .dropdown-item { display: flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 9px; font-size: 14px; }
.xa .dropdown-item > i { color: var(--xa-gold); }
.xa .dropdown-item:active > i { color: inherit; }

/* Akordeony (týmy s kartami, power rankings, hlasování) - každý tým jako samostatná skleněná karta */
.xa .accordion {
    --bs-accordion-color: var(--xa-text);
    --bs-accordion-bg: var(--xa-panel);
    --bs-accordion-border-color: var(--xa-line);
    --bs-accordion-border-radius: 18px;
    --bs-accordion-inner-border-radius: 17px;
    --bs-accordion-btn-color: #fff;
    --bs-accordion-btn-bg: transparent;
    --bs-accordion-active-color: #fff;
    --bs-accordion-active-bg: rgba(232, 197, 28, .1);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 .22rem rgba(232, 197, 28, .25);
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23e8c51c' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffdf5a' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
}

.xa .accordion-item { overflow: hidden; border: 1px solid var(--xa-line); border-radius: 18px; box-shadow: 0 16px 40px rgba(0, 0, 0, .28); }
.xa .accordion-item + .accordion-item { margin-top: 10px; }
.xa .accordion-item:not(:first-of-type) { border-top: 1px solid var(--xa-line); }
.xa .accordion-button { font-weight: 700; }
.xa .accordion-button:not(.collapsed) { box-shadow: inset 0 -1px 0 rgba(232, 197, 28, .25); }

/* Záložky a filtry */
.xa .nav-pills {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--xa-line);
    border-radius: 22px;
    background: rgba(0, 0, 0, .3);
}

.xa .nav-pills .nav-link { padding: 7px 14px; border-radius: 999px; color: var(--xa-muted); font-size: 14px; font-weight: 700; }
.xa .nav-pills .nav-link:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.xa .nav-pills .nav-link.active { background: linear-gradient(180deg, var(--xa-gold-2), var(--xa-gold)); color: #1b1605; }
.xa .nav-pills .nav-link.active .badge { background: rgba(0, 0, 0, .2) !important; color: #1b1605 !important; box-shadow: none; }

.xa .nav-tabs {
    --bs-nav-tabs-border-color: var(--xa-line);
    --bs-nav-tabs-link-hover-border-color: var(--xa-line);
    --bs-nav-tabs-link-active-color: #fff;
    --bs-nav-tabs-link-active-bg: rgba(232, 197, 28, .14);
    --bs-nav-tabs-link-active-border-color: rgba(232, 197, 28, .45);
}

.xa .nav-tabs .nav-link { color: var(--xa-muted); font-weight: 600; }

/* Karty Bootstrapu (kdyby je stránka použila) jako panel */
.xa .card {
    --bs-card-bg: var(--xa-panel);
    --bs-card-border-color: var(--xa-line);
    --bs-card-border-radius: 20px;
    --bs-card-cap-bg: transparent;
    --bs-card-color: var(--xa-text);
}

/* ------------------------------------------------------------------
   Společné kusy stránek modulu - panely se správou, řádky akcí, ikonová tlačítka
   ------------------------------------------------------------------ */
.xa-panel + .xa-panel,
.xa-panel + .xa-panel-stack { margin-top: 18px; }
.xa .xa-panel > h5,
.xa .xa-panel-head h5 { margin-bottom: 14px; font-size: 17px; font-weight: 800; }
.xa-panel-head h5 { margin-bottom: 0; }
.xa-panel.is-solid { background: rgba(12, 18, 40, .93); }
.xa-panel.is-flush { padding: 0; overflow: hidden; }
.xa-panel.is-flush > .table-responsive,
.xa-panel.is-flush > .table { padding: 6px 12px; }

.xa-actions { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 4px; }
.xa .table .xa-actions { flex-wrap: nowrap; }
.xa-row-note { display: block; margin-top: 2px; color: var(--xa-muted); font-size: 12.5px; }

.xa .xa-icon-btn {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
    background: rgba(255, 255, 255, .06);
    color: var(--xa-text);
    font-size: 15px;
    transition: background .15s, border-color .15s, color .15s;
}

.xa .xa-icon-btn:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .3); color: #fff; }
.xa .xa-icon-btn.is-gold { border-color: rgba(232, 197, 28, .5); color: var(--xa-gold-2); }
.xa .xa-icon-btn.is-gold:hover { background: rgba(232, 197, 28, .16); }
.xa .xa-icon-btn.is-danger { border-color: rgba(255, 61, 87, .45); color: #ff9aaa; }
.xa .xa-icon-btn.is-danger:hover { background: rgba(255, 61, 87, .18); color: #fff; }
.xa .xa-icon-btn.is-green { border-color: rgba(51, 212, 154, .45); color: #6ee7b7; }
.xa .xa-icon-btn.is-green:hover { background: rgba(51, 212, 154, .16); color: #fff; }
/* Nedostupná akce (např. smazání týmu, který už hrál) - důvod v title */
.xa .xa-icon-btn.is-off { opacity: .35; cursor: not-allowed; }
.xa .xa-icon-btn.is-off:hover { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .16); color: var(--xa-text); }

/* Rychlé přepínání (filtry) - stejné jako záložky turnaje */
.xa-filters { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 16px; }
.xa .xa-tab .xa-tab-count { padding: 0 7px; border-radius: 999px; background: rgba(255, 255, 255, .12); font-size: 12px; }
.xa .xa-tab.is-active .xa-tab-count { background: rgba(0, 0, 0, .18); }

/* Tlačítka pod hlavičkou stránky turnaje (akce, které nejsou záložkou) */
.xa-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -8px 0 18px; }

/* Formulář v panelu - odeslání dole */
.xa-form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 20px; }

/* Stavové řádky (registrace, power rankings) */
.xa-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; padding: 12px 0; border-bottom: 1px solid var(--xa-line); }
.xa-status:first-of-type { padding-top: 0; }
.xa-status > div { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.xa-status b { color: #fff; }

/* Fáze přípravy turnaje s power rankings (Administration/default.latte) - hotová zeleně, aktuální zlatě */
.xa-phase-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0 6px; padding: 0; list-style: none; }
.xa-phase-steps li { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--xa-line); border-radius: 12px; color: var(--xa-muted); background: rgba(255, 255, 255, .03); }
.xa-phase-steps li b { color: var(--xa-text); }
.xa-phase-steps li.is-active { border-color: rgba(232, 197, 28, .6); background: rgba(232, 197, 28, .12); }
.xa-phase-steps li.is-active b { color: var(--xa-gold-2); }
.xa-phase-steps li.is-done { border-color: rgba(51, 212, 154, .4); background: rgba(51, 212, 154, .08); }
.xa-phase-steps li.is-done b::before { content: '✓ '; color: var(--xa-green); }
@media (max-width: 575.98px) {
    .xa-phase-steps { grid-template-columns: 1fr; }
}

/* Kolo v administraci zápasů */
.xa-admin-round { margin-top: 18px; }
.xa-admin-round:first-child { margin-top: 0; }
.xa-admin-round .xa-round-head { margin-bottom: 8px; }
.xa-admin-list { display: flex; flex-direction: column; gap: 6px; }

.xa-admin-match {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 96px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 8px 10px 8px 14px;
    border: 1px solid var(--xa-line);
    border-radius: 14px;
    background: rgba(255, 255, 255, .035);
}

.xa-admin-match.is-live { border-color: rgba(255, 61, 87, .5); background: rgba(255, 61, 87, .07); }
/* Oprava času stopek u zápasu (Administration/default.latte) - štítek na vlastním řádku pod zápasem */
.xa-admin-match .xa-clock-adjusted { grid-column: 1 / -1; order: 5; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.xa-admin-match .xa-clock-adjusted a { text-decoration: none; }
.xa-admin-match:has(.xa-clock-adjusted .is-red) { border-color: rgba(255, 61, 87, .6); box-shadow: inset 3px 0 0 #ff3d57; }
.xa-admin-match:has(.xa-clock-adjusted .is-gold):not(:has(.xa-clock-adjusted .is-red)) { box-shadow: inset 3px 0 0 var(--xa-gold); }
.xa-clock-adjust-alert ul { padding-left: 1.2rem; }
.xa-admin-team { overflow: hidden; color: #fff; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.xa-admin-team:first-child { text-align: right; }
.xa-admin-team.is-winner { color: var(--xa-gold-2); font-weight: 800; }
.xa-admin-score { display: flex; flex-direction: column; align-items: center; gap: 2px; color: #fff; font-size: 18px; font-weight: 800; font-variant-numeric: tabular-nums; }
.xa-admin-score small { color: var(--xa-gold-2); font-size: 11px; font-weight: 700; }
.xa-admin-score.is-waiting { color: rgba(255, 255, 255, .35); }

/* Seznam turnajů */
.xa-tourneys { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }

.xa-tourney {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px;
    overflow: hidden;
    border: 1px solid rgba(214, 232, 255, .28);
    border-radius: 20px;
    background: linear-gradient(160deg, rgba(24, 32, 62, .82), rgba(9, 13, 30, .9));
    box-shadow: 0 18px 44px rgba(0, 0, 0, .38), inset 0 0 0 1px rgba(236, 246, 255, .06);
    transition: transform .15s, border-color .15s, box-shadow .15s;
}

.xa-tourney:hover { transform: translateY(-3px); border-color: rgba(232, 197, 28, .5); box-shadow: 0 24px 50px rgba(0, 0, 0, .45), 0 0 0 1px rgba(232, 197, 28, .2); }
.xa-tourney::after { content: ''; position: absolute; top: -60px; right: -60px; width: 160px; height: 160px; border-radius: 50%; background: radial-gradient(circle, rgba(232, 197, 28, .16), transparent 70%); pointer-events: none; }
.xa-tourney.is-finished::after { background: radial-gradient(circle, rgba(255, 255, 255, .06), transparent 70%); }
.xa-tourney-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

.xa-tourney-year {
    padding: 3px 11px;
    border-radius: 8px;
    background: linear-gradient(90deg, var(--xa-gold-2), var(--xa-gold));
    color: #1b1605;
    font-family: 'Oswald', var(--xa-font);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .06em;
}

.xa .xa-tourney-name { margin: 0; color: #fff; font-size: 21px; font-weight: 800; line-height: 1.2; }
.xa .xa-tourney-name a { color: inherit; }
.xa .xa-tourney-name a::before { content: ''; position: absolute; inset: 0; z-index: 1; }
.xa-tourney-winner { display: flex; align-items: center; gap: 8px; color: var(--xa-muted); font-size: 14px; }
.xa-tourney-winner b { color: var(--xa-gold-2); font-weight: 700; }
.xa-tourney-winner i { color: var(--xa-gold); font-size: 18px; }
/* Přihlášení kapitána do turnaje s otevřenou registrací (Default/default.latte) */
.xa-tourney-register { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; }
.xa-tourney-register .xa-chip { white-space: normal; }
.xa-tourney-foot { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--xa-line); }

/* Přihlášení */
.xa-login { display: grid; place-items: center; min-height: calc(100vh - 170px); padding: 30px 0; }
.xa-login .xa-panel { width: min(440px, 100%); padding: 28px; background: rgba(12, 18, 40, .9); }
.xa-login-logo { display: block; width: 64px; height: 64px; margin: 0 auto 10px; filter: drop-shadow(0 6px 14px rgba(0, 0, 0, .5)); }
.xa-login .xa-kicker,
.xa-login .xa-title { text-align: center; }
.xa-login .xa-title { margin-bottom: 20px; font-size: 30px; }

/* ------------------------------------------------------------------
   Šířky okna
   ------------------------------------------------------------------ */
@media (min-width: 992px) {
    .xa-matches { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767.98px) {
    .xa-squads { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
    .xa-squads-vs { display: none; }
    .xa-squad { padding: 8px; border-radius: 14px; }
    .xa-squad-head { height: 38px; gap: 7px; padding: 0 8px; margin-bottom: 10px; }
    .xa-squad-head .xa-team-name { font-size: 12px; }
    .xa-squad-head .xa-team-logo { width: 26px; height: 26px; }
    .xa-card-rows { --xa-gap: 6px; }
    .xa-card-name { margin-top: 4px; font-size: 11px; }
    .xa-card-goals,
    .xa-card-pens { padding: 1px 5px; font-size: 10px; }
    .xa-card-flash { font-size: 18px; }

    .xa-hero { padding: 12px; border-radius: 18px; }
    .xa-hero-main { gap: 6px; }
    .xa-hero-team { gap: 8px; min-height: 140px; padding: 14px 6px; }
    .xa-hero-logo { width: 58px; height: 58px; }
    .xa-hero-center { min-width: 0; gap: 8px; }
    .xa-flip.is-score { --xa-tile: 42px; }
    .xa-score { gap: 4px; }
    .xa-score-sep { font-size: 28px; }
    .xa-clock { --xa-tile: 21px; }
    .xa-state { padding: 3px 9px; font-size: 10px; letter-spacing: .08em; }
}

@media (max-width: 991.98px) {
    body.xa-body::before { background-image: linear-gradient(180deg, rgba(5, 8, 20, .35), rgba(5, 8, 20, .15) 30%, rgba(5, 8, 20, .45)), url(../flexStart/img/mafia/room-1280.jpg); }
    .xa-head-tabs { align-items: stretch; width: 100%; }
}

@media (max-width: 575.98px) {
    section.xa-page { padding: 16px 0 40px; }
    body.xa-body::before { background-position: 38% 30%; }
    .xa-brand-text b { font-size: 19px; }
    .xa-scoreboard { padding: 12px 14px 10px; border-width: 4px; }
    .xa-sb-title { font-size: 24px; }
    .xa-sb-teams { font-size: 15px; }
    .xa-sb-led { min-width: 58px; padding: 6px 9px; }
    .xa-sb-led svg { height: 36px; }
    .xa-sb-led.is-small svg { height: 20px; }
    .xa-sb-x { font-size: 30px; padding: 0 8px; }
    .xa-sb-foot { font-size: 15px; }
    section.xa-page > .container { padding: 16px 12px; border-radius: 0; border-left: 0; border-right: 0; }
    .xa-panel { padding: 14px; border-radius: 16px; }

    .xa-match { grid-template-columns: 54px minmax(0, 1fr) 44px auto; }
    .xa-match .xa-team { height: 44px; gap: 8px; padding: 0 8px; }
    .xa-team-name { font-size: 13px; }
    .xa-team-logo { width: 30px; height: 30px; }
    .xa-match-score b { height: 44px; font-size: 20px; }
    .xa .xa-match-act { width: 44px; }
    .xa .xa-match-act span { display: none; }
    .xa-round-head { flex-wrap: wrap; gap: 6px 10px; }
    .xa-round-line { display: none; }

    /* Záložky v jedné řadě posouvané do strany - zalomené řady (turnaj, Správa, tipovačka) zabíraly půl obrazovky
       a osamocená záložka se roztáhla přes celou šířku. Okraj, za kterým jsou další záložky, se zeslabí (christmas-shell.js). */
    .xa-tabs { flex-wrap: nowrap; width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; border-radius: 999px; }
    .xa-tabs::-webkit-scrollbar { display: none; }
    .xa-tabs.is-more-right { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 34px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 34px), transparent); }
    .xa-tabs.is-more-left { -webkit-mask-image: linear-gradient(90deg, transparent, #000 34px); mask-image: linear-gradient(90deg, transparent, #000 34px); }
    .xa-tabs.is-more-left.is-more-right { -webkit-mask-image: linear-gradient(90deg, transparent, #000 34px, #000 calc(100% - 34px), transparent); mask-image: linear-gradient(90deg, transparent, #000 34px, #000 calc(100% - 34px), transparent); }
    .xa-tabs-label { flex: 0 0 auto; padding: 0 2px 0 8px; font-size: 10px; letter-spacing: .12em; }
    .xa-head-tabs { gap: 6px; }

    /* Správa zápasů - týmy a skóre na řádku, akce pod nimi */
    .xa-admin-match { grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr); gap: 6px 8px; padding: 10px; }
    .xa-admin-match > .xa-actions { grid-column: 1 / -1; justify-content: center; }
    .xa-admin-team { font-size: 14px; white-space: normal; }
    .xa-admin-score { font-size: 16px; }
    .xa-round-head .btn { margin-left: auto; }

    .xa-tourneys { grid-template-columns: 1fr; }
    .xa-toolbar { margin-top: -4px; }
    .xa .xa-tab { flex: 1 0 auto; justify-content: center; padding: 7px 11px; font-size: 13px; white-space: nowrap; }
    .xa .xa-tab i { display: none; }
    .xa .xa-tab.xa-tab-icon { flex: 0 0 auto; }
    .xa .xa-tab.xa-tab-icon i { display: inline; }

    .xa-table-row { grid-template-columns: 34px minmax(0, 1fr) 30px 58px 40px; font-size: 13px; }
    .xa-table-row .is-wdl,
    .xa-table-row .is-diff { display: none; }
    .xa-table-row .xa-team { height: 44px; }
    .xa-table-pts { font-size: 17px; }

    /* Celá tabulka (přepínač nahoře) - V/R/P a rozdíl skóre zpět, tabulka se případně posouvá do strany */
    [data-table-full] .xa-table { overflow-x: auto; }
    [data-table-full] .xa-table-row { grid-template-columns: 30px minmax(130px, 1fr) 26px 26px 26px 26px 48px 36px 36px; min-width: 400px; font-size: 12px; }
    [data-table-full] .xa-table-row .is-wdl,
    [data-table-full] .xa-table-row .is-diff { display: block; }

    .xa-scorer-cards,
    .xa-card-grid { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 14px 10px; }
    .xa-ball b { width: 30px; height: 30px; font-size: 13px; }
    .xa-ball.is-total b { width: 40px; height: 40px; font-size: 17px; }
    .xa-scorer-balls-row { gap: 8px; }
    .xa-scorer-card .xa-scorer-rank { min-width: 30px; height: 30px; font-size: 13px; }
    .xa-scorer-list li { grid-template-columns: 30px 38px minmax(0, 1fr) 40px; gap: 8px; }
    .xa-scorer-list .xa-avatar { width: 38px; height: 38px; }
    .xa-scorer-split { display: none; }

    .xa-hero-meta .xa-chip:not(.is-gold):not(.is-red) { display: none; }
    .xa-controls .xa-btn-lg { width: 100%; justify-content: center; }

    /* Osa na mobilu v jednom sloupci - minuta vlevo na čáře, gól vedle s okrajem v barvě týmu */
    .xa-axis::before { left: 19px; transform: none; }
    .xa-axis-item { grid-template-columns: 40px minmax(0, 1fr); gap: 8px; margin: 8px 0; }
    .xa-axis-item .xa-axis-min { grid-column: 1; width: 38px; height: 38px; font-size: 11px; }
    .xa-axis-item.is-home .xa-axis-card,
    .xa-axis-item.is-away .xa-axis-card { grid-column: 2; justify-self: stretch; flex-direction: row; text-align: left; border-right: 1px solid var(--xa-line); }
    .xa-axis-item.is-home .xa-axis-card { border-left: 4px solid var(--xa-home-accent); }
    .xa-axis-item.is-away .xa-axis-card { border-left: 4px solid var(--xa-away-accent); }
    .xa-axis-text { flex: 1 1 auto; }
    .xa-axis-card { gap: 8px; padding: 7px 8px; }
    .xa-avatar { width: 34px; height: 34px; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .xa-live-dot,
    .xa-tile .ft,
    .xa-tile .fb { animation: none; }
    .xa-match,
    .xa-card canvas { transition: none; }
}

/* Časová osa: střelec bez fotky má logo týmu místo iniciál a jméno lehce podbarvené barvou karty týmu */
.xa-avatar.is-logo { position: relative; overflow: visible; border-radius: 0; background: none; box-shadow: none; }
.xa-avatar.is-logo img { padding: 2px; object-position: 50% 50%; }

.xa-axis-text b {
    align-self: flex-start;
    max-width: 100%;
    padding: 1px 8px;
    border-radius: 6px;
}

.xa-axis-item.is-home .xa-axis-text b {
    align-self: flex-end;
    background: rgba(255, 255, 255, .08);
    background: color-mix(in srgb, var(--xa-home-accent) 24%, transparent);
}

.xa-axis-item.is-away .xa-axis-text b {
    background: rgba(255, 255, 255, .08);
    background: color-mix(in srgb, var(--xa-away-accent) 24%, transparent);
}

@media (max-width: 575.98px) {
    .xa-axis-item.is-home .xa-axis-text b { align-self: flex-start; }
}

/* Zvonek s notifikacemi v liště - nepřečtené nahoře s červeným kolečkem, historie pod nimi; na mobilu přes šířku obrazovky */
.xa-bell { position: relative; flex: 0 0 auto; }
.xa-bell-btn {
    position: relative;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--xa-line);
    border-radius: 12px;
    background: rgba(255, 255, 255, .06);
    color: #fff;
    font-size: 20px;
}
.xa-bell-btn:hover, .xa-bell-btn[aria-expanded="true"] { background: rgba(255, 255, 255, .12); }
.xa-bell-dot {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border: 2px solid #0b0f1d;
    border-radius: 999px;
    background: #ff3d57;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    line-height: 16px;
    text-align: center;
}

.xa .xa-bell-menu {
    width: min(400px, calc(100vw - 16px));
    max-height: min(72vh, 560px);
    margin-top: 8px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--xa-line);
    border-radius: 16px;
    background: #0d142c;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .6);
}
.xa .xa-bell-menu.show { display: flex; flex-direction: column; }

.xa-bell-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--xa-line);
    color: #fff;
}
.xa-bell-readall { margin-left: auto; color: var(--xa-gold-2); font-size: 12.5px; text-decoration: none; }
.xa-bell-readall:hover { text-decoration: underline; }
.xa-bell-close {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    margin-left: auto;
    border: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
}
.xa-bell-readall + .xa-bell-close { margin-left: 0; }

.xa-bell-scroll { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.xa-bell-empty { margin: 0; padding: 18px 14px; color: var(--xa-muted); font-size: 14px; text-align: center; }

.xa-bell-item {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid var(--xa-line);
    border-left: 4px solid #5aa2ff;
    background: rgba(90, 162, 255, .08);
}
.xa-bell-item.is-success { border-left-color: #33d49a; background: rgba(51, 212, 154, .09); }
.xa-bell-item.is-warning { border-left-color: var(--xa-gold); background: rgba(232, 197, 28, .1); }
.xa-bell-item.is-danger { border-left-color: #ff3d57; background: rgba(255, 61, 87, .1); }
.xa-bell-item.is-read { border-left-color: rgba(255, 255, 255, .15); background: transparent; opacity: .72; }

.xa-bell-main {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    padding: 10px 12px;
    color: #fff;
    text-decoration: none;
}
.xa-bell-main:hover { background: rgba(255, 255, 255, .05); }
.xa-bell-title { font-size: 14px; font-weight: 700; overflow-wrap: anywhere; }
.xa-bell-text { color: var(--xa-text, #dde4f5); font-size: 13px; overflow-wrap: anywhere; }
.xa-bell-time { color: var(--xa-muted); font-size: 11.5px; }

/* Akce vpravo - samostatné cíle (třeba tiket), klik na ně notifikaci taky přečte */
.xa-bell-actions { display: flex; flex: 0 0 auto; flex-direction: column; border-left: 1px solid var(--xa-line); }
.xa-bell-action {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 76px;
    padding: 8px 10px;
    color: var(--xa-gold-2);
    font-size: 11.5px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
}
.xa-bell-action i { font-size: 18px; }
.xa-bell-action:hover { background: rgba(232, 197, 28, .12); }
.xa-bell-action + .xa-bell-action { border-top: 1px solid var(--xa-line); }

.xa-bell-history summary { padding: 10px 14px; color: var(--xa-muted); font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }

@media (min-width: 992px) {
    .xa-bell { order: 5; }
}

@media (max-width: 575.98px) {
    /* Přes šířku obrazovky pod lištou, ať se nabídka nevysouvá mimo displej; větší plochy pro prst */
    .xa .xa-bell-menu {
        position: fixed;
        top: 70px;
        right: 8px;
        left: 8px;
        width: auto;
        max-height: calc(100vh - 84px);
        max-height: calc(100dvh - 84px);
        margin-top: 0;
    }
    .xa-bell-close { width: 44px; height: 44px; }
    .xa-bell-main { padding: 12px; }
    .xa-bell-action { min-width: 64px; }
}

/* Odznak LIVE v liště - živé sdílení rozpracovaného týmu (www/js/christmas-share-badge.js); číslo = diváci,
   pulzující tečka jen když někdo sleduje, po skončení šedý s vysvětlením v okně */
.xa-live { position: relative; flex: 0 0 auto; }
.xa-live[hidden] { display: none; }
.xa-live-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 44px;
    padding: 0 12px;
    border: 1px solid rgba(255, 61, 87, .55);
    border-radius: 12px;
    background: rgba(255, 61, 87, .14);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
}
.xa-live-btn:hover, .xa-live-btn[aria-expanded="true"] { background: rgba(255, 61, 87, .24); }
.xa-live-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--xa-red); }
.xa-live.has-viewers .xa-live-dot { animation: xa-live-pulse 1.6s infinite; }
.xa-live-count {
    min-width: 22px;
    padding: 1px 6px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .35);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
    text-align: center;
}
.xa-live.is-ended .xa-live-btn { border-color: var(--xa-line); background: rgba(255, 255, 255, .06); color: var(--xa-muted); }
.xa-live.is-ended .xa-live-dot { background: rgba(221, 228, 245, .45); }

@keyframes xa-live-pulse {
    0% { box-shadow: 0 0 0 0 rgba(255, 61, 87, .7); }
    70% { box-shadow: 0 0 0 8px rgba(255, 61, 87, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 61, 87, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .xa-live.has-viewers .xa-live-dot { animation: none; }
}

.xa .xa-live-menu {
    width: min(400px, calc(100vw - 16px));
    margin-top: 8px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--xa-line);
    border-radius: 16px;
    background: #0d142c;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .6);
}
.xa-live-body { display: grid; gap: 10px; padding: 14px; color: #fff; }
.xa-live-body p { margin: 0; }
.xa-live-viewers { font-weight: 700; }
.xa-live-label { color: var(--xa-muted); font-size: 12.5px; }
.xa-live-url { display: flex; gap: 8px; }
.xa-live-url .form-control { min-width: 0; font-size: 13px; }
.xa-live-url .xa-btn { flex: 0 0 auto; }
.xa-live-expiry { color: var(--xa-gold-2); font-size: 14px; font-variant-numeric: tabular-nums; }
.xa-live-note, .xa-live-ended { color: var(--xa-muted); font-size: 13px; }
.xa-live-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.xa-live-actions[hidden] { display: none; }
.xa-live-stop { margin: 0; }
.xa-live-actions .xa-btn[disabled] { opacity: .5; cursor: not-allowed; }

@media (min-width: 992px) {
    .xa-live { order: 4; }
}

@media (max-width: 575.98px) {
    .xa .xa-live-menu {
        position: fixed;
        top: 70px;
        right: 8px;
        left: 8px;
        width: auto;
        margin-top: 0;
    }
    .xa-live-btn { padding: 0 10px; }
}

/* Tlačítko „Sdílet živě“ ve formuláři týmu (Teams/@teamForm.latte) a lišta stavu sdílení u spodního okraje */
.xa-share-start { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.xa-share-btn.is-live { border-color: var(--xa-red); background: rgba(255, 61, 87, .18); color: #fff; }
.xa-share-btn.is-live i { color: var(--xa-red); }
.xa-share-hint { max-width: 260px; color: var(--xa-muted); font-size: 11.5px; line-height: 1.3; text-align: right; }
.xa-share-bar {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 1080;
    max-width: min(420px, calc(100vw - 32px));
    padding: 10px 14px;
    border: 1px solid var(--xa-line);
    border-radius: 12px;
    background: rgba(13, 20, 44, .95);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .5);
    color: #fff;
    font-size: 13.5px;
}
.xa-share-bar.is-danger { border-color: rgba(255, 61, 87, .55); }
.xa-share-bar[hidden] { display: none; }

@media (max-width: 575.98px) {
    .xa-share-start { align-items: flex-start; }
    .xa-share-hint { text-align: left; }
}

/* ------------------------------------------------------------------
   Živá tabule (Tournament/@scoreboard.latte, www/js/christmas-live.js) - ovládání na tabuli, šuplík vpravo
   s ouškem, upozornění na góly; připnutý řádek turnaje a varování před odhlášením (christmas-shell.js)
   ------------------------------------------------------------------ */

/* Ovládání dole na tabuli - kovové páčky s červenou LED, jako by k tabuli patřily */
.xa-sb-controls {
    display: flex;
    align-items: center;
    gap: 8px 14px;
    flex-wrap: wrap;
    margin-top: 10px;
    padding-top: 9px;
    border-top: 2px solid #3a3a3a;
    font-size: 14px;
    letter-spacing: .06em;
}

.xa-sb-toggle { position: relative; display: inline-flex; align-items: center; gap: 7px; margin: 0; color: #cfc6b2; cursor: pointer; user-select: none; }
.xa-sb-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.xa-sb-toggle i {
    position: relative;
    flex: 0 0 auto;
    width: 34px;
    height: 16px;
    border-radius: 3px;
    background: #060606;
    box-shadow: inset 0 2px 5px rgba(0, 0, 0, .95), 0 0 0 1px #2e2e2e;
}
/* Páčka - kovový jezdec */
.xa-sb-toggle i::before {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 12px;
    border-radius: 2px;
    background: linear-gradient(180deg, #d8d8d8, #7a7a7a 55%, #4a4a4a);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .7);
    transition: transform .18s;
}
/* LED vpravo od páčky */
.xa-sb-toggle i::after {
    content: '';
    position: absolute;
    top: 5px;
    right: -11px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 58, 36, .15);
    transition: background .18s, box-shadow .18s;
}
.xa-sb-toggle span { margin-left: 8px; }
.xa-sb-toggle input:checked + i::before { transform: translateX(16px); }
.xa-sb-toggle input:checked + i::after { background: #ff3a24; box-shadow: 0 0 6px rgba(255, 58, 36, .95); }
.xa-sb-toggle input:checked ~ span { color: #efe6d2; }
.xa-sb-toggle input:focus-visible + i { outline: 2px solid var(--xa-gold); outline-offset: 2px; }
.xa-sb-controls.is-off .xa-sb-toggle { opacity: .45; cursor: not-allowed; }

.xa-sb-status { margin-left: auto; color: #ff3a24; font-family: Consolas, 'Courier New', monospace; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-shadow: 0 0 6px rgba(255, 58, 36, .8); }
.xa-sb-controls.is-offline .xa-sb-status { animation: xa-sb-blink 1s steps(2, start) infinite; }
.xa-sb-status:empty { display: none; }
.xa-sb-status:empty + .xa-sb-refresh { margin-left: auto; }

.xa-sb-refresh {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: linear-gradient(180deg, #3a3a3a, #1c1c1c);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 0 0 1px #111, 0 2px 4px rgba(0, 0, 0, .6);
    color: #efe6d2;
    font-size: 16px;
}
.xa-sb-refresh:hover { color: #fff; background: linear-gradient(180deg, #474747, #222); }
.xa-sb-refresh:focus-visible { outline: 2px solid var(--xa-gold); outline-offset: 2px; }
.xa-sb-controls.is-loading .xa-sb-refresh i { display: inline-block; animation: xa-spin .8s linear infinite; }

@keyframes xa-sb-blink { to { visibility: hidden; } }
@keyframes xa-spin { to { transform: rotate(360deg); } }

/* Šuplík vpravo - ouško s miniaturami log a skóre, po vysunutí celá tabule */
.xa-sb-drawer {
    --xa-sb-tab: 40px;
    --xa-sb-body: min(452px, calc(100vw - 52px));
    position: fixed;
    top: calc(var(--xa-topbar-h, 66px) + var(--xa-pinbar-h, 0px) + 22px);
    right: 0;
    z-index: 1020;
    display: flex;
    align-items: flex-start;
    transform: translateX(100%);
    transition: transform .3s cubic-bezier(.2, .8, .2, 1), top .25s ease;
}
.xa-sb-drawer.is-shown { transform: translateX(var(--xa-sb-body)); }
.xa-sb-drawer.is-open { transform: translateX(0); }

.xa-sb-tab {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    width: var(--xa-sb-tab);
    padding: 9px 0 10px;
    border: 3px solid #5d5d5d;
    border-right: 0;
    border-radius: 8px 0 0 8px;
    background: linear-gradient(180deg, #262626, #121212);
    box-shadow: -6px 10px 24px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .08);
    color: #ff3a24;
    font-family: 'Oswald', 'Poppins', sans-serif;
}
.xa-sb-tab:focus-visible { outline: 2px solid var(--xa-gold); outline-offset: -4px; }
.xa-sb-tab img { width: 22px; height: 22px; object-fit: contain; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .8)); }
.xa-sb-mini-score { display: flex; flex-direction: column; align-items: center; width: 28px; padding: 2px 0; border-radius: 3px; background: #060606; box-shadow: inset 0 2px 5px rgba(0, 0, 0, .95), 0 0 0 1px #2e2e2e; }
.xa-sb-mini-score b { font-size: 17px; font-weight: 500; line-height: 1.1; text-shadow: 0 0 5px rgba(255, 58, 36, .85); }
.xa-sb-mini-score b + b { border-top: 1px solid #2a2a2a; }
.xa-sb-mini-live { display: none; width: 7px; height: 7px; border-radius: 50%; background: #ff3a24; box-shadow: 0 0 6px rgba(255, 58, 36, .95); animation: xa-sb-pulse 1.4s ease-in-out infinite; }
.xa-sb-drawer.is-live .xa-sb-mini-live { display: block; }
@keyframes xa-sb-pulse { 50% { opacity: .25; } }

.xa-sb-drawer-body { width: var(--xa-sb-body); padding: 0 10px 0 0; }
.xa-sb-drawer-body .xa-scoreboard { width: 100%; }

/* Připnutý řádek turnaje - pod horní lištou, jakmile záložky stránky zmizí nahoře */
.xa-pinbar {
    position: fixed;
    top: var(--xa-topbar-h, 66px);
    right: 0;
    left: 0;
    z-index: 1029;
    border-bottom: 1px solid rgba(255, 255, 255, .09);
    background: linear-gradient(180deg, rgba(7, 10, 24, .92), rgba(7, 10, 24, .82));
    -webkit-backdrop-filter: blur(14px) saturate(1.2);
    backdrop-filter: blur(14px) saturate(1.2);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .35);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-100%);
    transition: transform .25s ease, opacity .2s ease, visibility 0s linear .25s;
}
body.xa-pinned .xa-pinbar { opacity: 1; visibility: visible; transform: translateY(0); transition: transform .25s ease, opacity .2s ease; }

.xa-pinbar-inner { display: flex; align-items: center; gap: 6px 16px; min-height: 52px; padding-top: 6px; padding-bottom: 6px; }
.xa .xa-pinbar-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    margin-right: auto;
    color: var(--xa-gold-2);
    font-size: 16px;
    font-weight: 800;
    letter-spacing: .06em;
    text-decoration: none;
    text-transform: uppercase;
    text-shadow: 0 0 14px rgba(232, 197, 28, .35);
}
.xa-pinbar-title span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xa-pinbar-title i { color: var(--xa-gold); }
.xa-pinbar-tabs { flex: 0 0 auto; flex-wrap: nowrap; padding: 3px; }
.xa .xa-pinbar-tabs .xa-tab,
.xa .xa-pinbar-admin .xa-tab { padding: 6px 12px; font-size: 13px; white-space: nowrap; }
/* Správa (jen správce) - samostatná zlatá pilulka za záložkami, nabídka pod ní */
.xa-pinbar-admin { position: relative; z-index: 2; flex: 0 0 auto; padding: 3px; }
.xa-pinbar-admin .dropdown-toggle { border: 0; background: transparent; }

@media (max-width: 767.98px) {
    .xa-pinbar-inner { flex-wrap: wrap; min-height: 0; }
    /* Název a Správa v prvním řádku, záložky pod nimi přes celou šířku (posouvají se do strany) */
    .xa .xa-pinbar-title { flex: 1 1 0; font-size: 14px; }
    .xa-pinbar-admin { order: 2; width: auto; }
    .xa-pinbar-tabs { order: 3; flex: 1 1 100%; overflow-x: auto; scrollbar-width: none; }
    .xa-pinbar-tabs::-webkit-scrollbar { display: none; }
}

/* Upozornění na góly - nad výsledky, pod lištou; karta vyjede, otočí se o 360° (v půlce rub s logem týmu) a zmizí */
.xa-goal-alerts {
    position: fixed;
    top: calc(var(--xa-topbar-h, 66px) + var(--xa-pinbar-h, 0px) + 14px);
    left: 50%;
    z-index: 1040;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: min(470px, calc(100vw - 24px));
    transform: translateX(-50%);
    pointer-events: none;
}
.xa-goal-alerts:empty { display: none; }

.xa-goal-alert {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 10px 16px 10px 10px;
    border: 4px solid #5d5d5d;
    border-radius: 8px;
    background: linear-gradient(180deg, #262626 0%, #171717 55%, #121212 100%);
    box-shadow: 0 0 0 1px #262626, 0 22px 44px rgba(0, 0, 0, .7), inset 0 0 30px rgba(0, 0, 0, .6);
    color: #efe6d2;
    font-family: 'Oswald', 'Poppins', 'Segoe UI', sans-serif;
    text-transform: uppercase;
    animation: xa-ga-life 5s ease var(--xa-ga-delay, 0ms) both;
}
.xa-goal-alert:not(.has-card) { padding-left: 18px; }

.xa-ga-card { flex: 0 0 auto; width: 120px; aspect-ratio: 3 / 4; perspective: 900px; }
.xa-ga-inner { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; animation: xa-ga-spin 5s ease-in-out var(--xa-ga-delay, 0ms) both; }
.xa-ga-face { position: absolute; inset: 0; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.xa-ga-face canvas { display: block; width: 100%; height: 100%; filter: drop-shadow(0 6px 12px rgba(0, 0, 0, .6)); }
.xa-ga-face.is-back { display: grid; place-items: center; overflow: hidden; border-radius: 12px; background: #111; box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .25); transform: rotateY(180deg); }
.xa-ga-face.is-back .xa-ga-band { position: absolute; inset: 0; width: 100%; height: 100%; }
.xa-ga-face.is-back img { position: relative; width: 72%; height: 72%; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .75)); }

.xa-ga-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.xa-ga-kicker { color: #ff6a55; font-size: 14px; font-weight: 600; letter-spacing: .1em; text-shadow: 0 0 8px rgba(255, 58, 36, .55); }
.xa-goal-alert.is-goal .xa-ga-kicker { color: var(--xa-gold-2); font-size: 16px; text-shadow: 0 0 10px rgba(232, 197, 28, .5); }
.xa-goal-alert.is-end .xa-ga-kicker { color: var(--xa-gold-2); }
.xa-ga-name { overflow: hidden; color: #fff; font-size: 24px; font-weight: 600; letter-spacing: .03em; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.xa-ga-name.is-cancelled { text-decoration: line-through; text-decoration-color: #ff3a24; text-decoration-thickness: 3px; opacity: .8; }
.xa-ga-score { display: flex; align-items: center; gap: 10px; margin: 3px 0 1px; }
.xa-ga-score img { width: 30px; height: 30px; object-fit: contain; filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .8)); }
.xa-ga-score b {
    padding: 2px 10px;
    border-radius: 3px;
    background: #060606;
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, .95), 0 0 0 1px #2e2e2e;
    color: #ff3a24;
    font-size: 26px;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    text-shadow: 0 0 8px rgba(255, 58, 36, .85);
}
/* Tým, který dal gól - jeho logo svítí */
.xa-ga-score.is-home img:first-child,
.xa-ga-score.is-away img:last-child { filter: drop-shadow(0 0 8px rgba(255, 223, 90, .9)); }
.xa-goal-alert.is-end .xa-ga-score b { font-size: 30px; }
.xa-ga-sub { color: #ff8a7a; font-size: 13px; letter-spacing: .08em; }
.xa-ga-teams { overflow: hidden; color: rgba(239, 230, 210, .62); font-size: 12px; letter-spacing: .06em; text-overflow: ellipsis; white-space: nowrap; }

.xa-goal-more {
    align-self: center;
    padding: 6px 16px;
    border: 2px solid #5d5d5d;
    border-radius: 999px;
    background: #171717;
    color: #efe6d2;
    font-family: 'Oswald', 'Poppins', sans-serif;
    font-size: 15px;
    letter-spacing: .08em;
    text-transform: uppercase;
    animation: xa-ga-life 5s ease var(--xa-ga-delay, 0ms) both;
}

/* 0-0,5 s vyjede, do 4,3 s stojí, pak zmizí a odjede zpět */
@keyframes xa-ga-life {
    0% { opacity: 0; transform: translateX(80px) scale(.96); }
    10% { opacity: 1; transform: translateX(0) scale(1); }
    86% { opacity: 1; transform: translateX(0) scale(1); }
    100% { opacity: 0; transform: translateX(80px) scale(.96); }
}

/* 2,0-3,5 s otočka o 360° - v půlce je vidět rub s logem týmu */
@keyframes xa-ga-spin {
    0%, 40% { transform: rotateY(0); }
    70%, 100% { transform: rotateY(360deg); }
}

/* Omezený pohyb - jen objevení a zmizení */
@keyframes xa-ga-fade {
    0%, 100% { opacity: 0; }
    8%, 88% { opacity: 1; }
}
.xa-goal-alert.is-still,
.xa-goal-alert.is-still ~ .xa-goal-more { animation-name: xa-ga-fade; }
.xa-goal-alert.is-still .xa-ga-inner { animation: none; }

@media (max-width: 575.98px) {
    .xa-goal-alert { gap: 12px; padding: 8px 12px 8px 8px; }
    .xa-ga-card { width: 88px; }
    .xa-ga-name { font-size: 19px; }
    .xa-ga-score b { font-size: 22px; }
    .xa-ga-score img { width: 26px; height: 26px; }
    .xa-sb-controls { gap: 8px 12px; font-size: 13px; }
}

/* Varování před odhlášením */
.xa-session-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: grid;
    place-items: center;
    padding: 16px;
    background: rgba(3, 5, 12, .72);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}
.xa-session-modal[hidden] { display: none; }
.xa-session-box {
    width: min(440px, 100%);
    padding: 24px;
    border: 1px solid rgba(232, 197, 28, .35);
    border-radius: 18px;
    background: rgba(13, 20, 44, .96);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .6);
    color: var(--xa-text);
}
.xa .xa-session-title { margin: 0 0 10px; font-size: 21px; font-weight: 800; }
.xa-session-title i { color: var(--xa-gold); }
.xa-session-box p { margin: 0 0 18px; color: rgba(226, 232, 246, .85); font-size: 15px; line-height: 1.5; }
.xa-session-countdown { color: var(--xa-gold-2); font-variant-numeric: tabular-nums; }
.xa-session-actions { display: flex; flex-wrap: wrap; gap: 10px; }
body.xa-session-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
    .xa-sb-drawer,
    .xa-pinbar,
    body.xa-pinned .xa-pinbar { transition: none; }
}

/* Potvrzovací okno (christmas-confirm.js) - jeden nebo dva kroky, poslední krok červeně */
.xa-confirm .modal-content { border-color: rgba(232, 197, 28, .35); }
.xa-confirm.is-final .modal-content { border-color: rgba(255, 61, 87, .5); box-shadow: 0 30px 80px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 61, 87, .25); }
.xa-confirm-icon { margin-right: 4px; color: var(--xa-gold-2); }
.xa-confirm.is-final .xa-confirm-icon { color: #ff6b81; }
.xa-confirm-text { margin: 0; font-size: 15px; line-height: 1.55; }
.xa-confirm-steps { display: flex; gap: 6px; margin-top: 16px; }
.xa-confirm-steps[hidden] { display: none; }
.xa-confirm-steps span { width: 34px; height: 5px; border-radius: 999px; background: rgba(255, 255, 255, .14); transition: background .2s; }
.xa-confirm-steps span.is-active { background: var(--xa-gold-2); }
.xa-confirm.is-final .xa-confirm-steps span.is-active { background: #ff6b81; }
.xa-confirm .modal-footer { gap: 8px; }
/* Tlačítko kopírování do schránky (christmas-copy.js) po zkopírování */
.xa-icon-btn.is-copied { border-color: rgba(51, 212, 154, .55); background: rgba(51, 212, 154, .18); color: #b9f5dd; }
/* Výběr s hledáním (christmas-select.js) - napojení hráče na osobu. Původní select zůstává ve formuláři schovaný,
   tlačítko má jeho třídy (form-select), nabídka je pod ním (u spodního okraje okna nad ním). */
.xa-select { position: relative; }
.xa-select-native { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; opacity: 0; pointer-events: none; }
.xa .xa-select-toggle { display: block; width: 100%; overflow: hidden; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.xa .xa-select-toggle.is-empty .xa-select-text { color: var(--xa-muted); }
.xa .xa-select.is-open .xa-select-toggle { border-color: rgba(232, 197, 28, .75); box-shadow: 0 0 0 .22rem rgba(232, 197, 28, .18); }
.xa-select-menu {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    left: 0;
    z-index: 1060;
    min-width: 260px;
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 12px;
    background: #111830;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .55);
}
.xa-select.is-up .xa-select-menu { top: auto; bottom: calc(100% + 4px); }
.xa .xa-select-search {
    display: block;
    width: 100%;
    margin-bottom: 6px;
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 9px;
    outline: none;
    background: rgba(6, 10, 26, .82);
    color: #fff;
    font-size: 16px; /* pod 16 px iPhone stránku při psaní přiblíží */
}
.xa .xa-select-search:focus { border-color: rgba(232, 197, 28, .75); }
.xa-select-list { max-height: min(320px, 46vh); margin: 0; padding: 0; overflow-y: auto; overscroll-behavior: contain; list-style: none; }
.xa-select-heading { padding: 8px 8px 4px; color: var(--xa-gold); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.xa-select-option { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; padding: 7px 9px; border-radius: 8px; color: var(--xa-text); font-size: 14px; cursor: pointer; }
.xa-select-option.is-active { background: rgba(232, 197, 28, .16); }
.xa-select-option.is-selected .xa-select-name { color: var(--xa-gold-2); }
.xa-select-option.is-special { color: rgba(226, 232, 246, .86); font-style: italic; }
.xa-select-name { font-weight: 600; }
.xa-select-meta { color: var(--xa-muted); font-size: 12px; }
.xa-select-nicks { flex-basis: 100%; color: #b9f5dd; font-size: 12px; }
.xa-select-suggest { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; font-size: 12.5px; }
.xa-select-suggest-label { color: var(--xa-muted); }
.xa .xa-select-suggest-btn {
    padding: 3px 10px;
    border: 1px solid rgba(51, 212, 154, .45);
    border-radius: 999px;
    background: rgba(51, 212, 154, .14);
    color: #b9f5dd;
    font-size: 12.5px;
    font-weight: 600;
}
.xa .xa-select-suggest-btn:hover { background: rgba(51, 212, 154, .26); color: #fff; }
.xa-select-suggest-btn small { color: rgba(185, 245, 221, .7); font-weight: 400; }

/* ------------------------------------------------------------------
   Mobil - tabulky správy jako karty (.xa-table-stack). Popisky buněk doplní christmas-shell.js ze záhlaví sloupců
   (data-label); první buňka je nadpis karty, poslední s akcemi (.text-end) jde vpravo bez popisku.
   ------------------------------------------------------------------ */
@media (max-width: 575.98px) {
    .xa .xa-table-stack,
    .xa .xa-table-stack > tbody,
    .xa .xa-table-stack > tbody > tr,
    .xa .xa-table-stack > tbody > tr > td { display: block; width: 100%; }
    .xa .xa-table-stack > thead { display: none; }
    .xa .xa-table-stack > tbody > tr { margin-bottom: 10px; padding: 8px 12px; border: 1px solid var(--xa-line); border-radius: 14px; background: rgba(255, 255, 255, .035); }
    .xa .xa-table-stack > tbody > tr:last-child { margin-bottom: 0; }
    .xa .xa-table-stack > tbody > tr > td {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: 4px 8px;
        padding: 5px 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        text-align: right;
    }
    .xa .xa-table-stack > tbody > tr > td::before { content: attr(data-label); flex: 0 0 auto; margin-right: auto; color: var(--xa-muted); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
    .xa .xa-table-stack > tbody > tr > td:not([data-label])::before { content: none; }
    .xa .xa-table-stack > tbody > tr > td.xa-cell-empty { display: none; }
    .xa .xa-table-stack > tbody > tr > td:first-child { display: block; margin-bottom: 4px; padding: 2px 0 8px; border-bottom: 1px solid var(--xa-line); text-align: left; }
    .xa .xa-table-stack > tbody > tr > td:first-child::before { content: none; }
    .xa .xa-table-stack > tbody > tr > td:last-child.text-end { justify-content: flex-end; flex-wrap: wrap; gap: 6px; padding-top: 8px; }
    .xa .xa-table-stack > tbody > tr > td:last-child.text-end::before { content: none; }
    .xa .xa-table-stack > tbody > tr > td[colspan] { display: block; text-align: center; }
    .xa .xa-table-stack > tbody > tr > td[colspan]::before { content: none; }
    .table-responsive:has(> .xa-table-stack) { overflow-x: visible; }

    /* Legenda odznaků pod kartami - položky se smí zalomit, jinak dlouhá položka přetekla panel */
    .xa-badge-legend span { white-space: normal; }
}

@media (max-width: 575.98px) {
    /* Týmy - zaškrtávátko (hromadné uzavření) a karta vlevo, název, vzhled a propojení vpravo, šest čísel výsledků
       v řadě pod nimi */
    .xa .xmas-teams-table > tbody > tr { display: grid; grid-template-columns: 58px repeat(6, minmax(0, 1fr)); column-gap: 6px; }
    .xa .xmas-teams-table > tbody > tr > td { grid-column: 2 / -1; }
    .xa .xmas-teams-table > tbody > tr > td:first-child { grid-column: 1; grid-row: 4; margin: 6px 0 0; padding: 0; border: 0; text-align: center; }
    .xa .xmas-teams-table > tbody > tr > td:first-child::before { content: none; }
    .xa .xmas-teams-table > tbody > tr > td:nth-child(2) { grid-column: 1; grid-row: 1 / span 3; margin: 0; padding: 4px 0 0; border: 0; }
    .xa .xmas-teams-table .xmas-card-mini { width: 58px; height: auto; }
    .xa .xmas-teams-table > tbody > tr > td:nth-child(3) { padding-top: 4px; text-align: left; }
    .xa .xmas-teams-table > tbody > tr > td:nth-child(3)::before { content: none; }
    .xa .xmas-teams-table > tbody > tr > td.is-stat { grid-column: auto; flex-direction: column; justify-content: flex-start; gap: 0; margin-top: 6px; padding: 5px 2px; border-radius: 8px; background: rgba(255, 255, 255, .05); text-align: center; }
    .xa .xmas-teams-table > tbody > tr > td.is-stat:nth-child(6) { grid-column: 2; }
    .xa .xmas-teams-table > tbody > tr > td.is-stat::before { margin: 0; font-size: 10px; }
    .xa .xmas-teams-table > tbody > tr > td:last-child { grid-column: 1 / -1; }
    .xa .xmas-teams-table > tbody > tr > td[colspan] { grid-column: 1 / -1; }

    /* Loginy - zaškrtávátko vedle loginu v nadpisu karty, nahoře „vybrat všechny“ */
    .xa .xa-table-stack.has-check > thead { display: block; margin-bottom: 8px; }
    .xa .xa-table-stack.has-check > thead > tr { display: block; }
    .xa .xa-table-stack.has-check > thead > tr > th { display: none; }
    .xa .xa-table-stack.has-check > thead > tr > th:first-child { display: flex; align-items: center; gap: 8px; padding: 0 2px; border: 0; background: transparent; color: var(--xa-muted); font-size: 12px; }
    .xa .xa-table-stack.has-check > thead > tr > th:first-child::after { content: 'Vybrat všechny zobrazené'; }
    .xa .xa-table-stack.has-check > tbody > tr { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 10px; }
    .xa .xa-table-stack.has-check > tbody > tr > td { grid-column: 1 / -1; }
    .xa .xa-table-stack.has-check > tbody > tr > td:first-child { grid-column: 1; margin: 0; padding: 4px 0 8px; border-bottom: 1px solid var(--xa-line); }
    .xa .xa-table-stack.has-check > tbody > tr > td:nth-child(2) { grid-column: 2; margin-bottom: 4px; padding: 2px 0 8px; border-bottom: 1px solid var(--xa-line); text-align: left; }
    .xa .xa-table-stack.has-check > tbody > tr > td:nth-child(2)::before { content: none; }
}

/* Správa turnaje - Týmy a hráči (Administration/default.latte): úprava týmu z turnaje, osoby ve více týmech, přestupy */
.xa-squad-teams { display: flex; flex-wrap: wrap; gap: 8px; }
.xa .xa-squad-team {
    display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px; background: rgba(255, 255, 255, .06); color: var(--xa-text); text-decoration: none; font-size: 14px;
}
.xa .xa-squad-team:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.xa-squad-team small { opacity: .65; }
.xa-squad-person { margin-top: 10px; padding: 10px 12px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 12px; background: rgba(255, 255, 255, .04); }
.xa-squad-person.is-conflict { border-color: rgba(255, 61, 87, .5); }
.xa-squad-person-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 6px; }
.xa-squad-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid rgba(255, 255, 255, .07); }
.xa-squad-row-team { min-width: 160px; }
.xa-squad-transfers { margin: 0; padding-left: 18px; }
.xa-squad-transfers li { margin: 4px 0; }
@media (max-width: 575px) {
    .xa-squad-row-team { min-width: 0; flex: 1 1 100%; }
    .xa-squad-row .ms-auto { margin-left: 0 !important; }
}

/* Přehled týmů - hromadné uzavření / otevření verzí nad tabulkou (Teams/default.latte) */
.xmas-teams-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.xmas-teams-bulk .form-select { width: auto; min-width: 200px; }

/* Můj tým - kartičky týmů klubu (pracovní verze, uzavřená, kopie) a výběr týmu při registraci (MyTeam/default.latte) */
.xmas-versions { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 12px; }
.xmas-version { display: flex; flex-direction: column; gap: 10px; padding: 12px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 14px; background: rgba(255, 255, 255, .04); }
/* Stejné třídy má přehled propojení (christmas-admin.css se načítá později) - v Můj tým má přednost tohle rozložení */
.xmas-versions .xmas-version { align-items: stretch; min-width: 0; padding: 12px; }
.xmas-versions .xmas-version-tournaments { flex-direction: column; flex-wrap: nowrap; margin-top: 0; }
.xmas-version.is-working { border-color: rgba(51, 212, 154, .55); }
.xmas-version.is-closed { opacity: .8; }
.xmas-version-head { display: flex; align-items: center; gap: 10px; }
.xmas-version-logo { width: 40px; height: 40px; object-fit: contain; flex: 0 0 auto; }
/* Vlevo hráči pod sebou, vpravo turnaje verze */
.xmas-version-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 12px; }
.xmas-version-players { display: flex; flex-direction: column; gap: 5px; }
.xmas-version-player { display: flex; align-items: center; gap: 8px; min-width: 0; }
.xmas-version-photo { display: inline-grid; place-items: center; width: 30px; height: 30px; overflow: hidden; border-radius: 50%; background: rgba(255, 255, 255, .1); font-size: 11px; font-weight: 700; flex: 0 0 auto; }
.xmas-version-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.xmas-version-player small { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xmas-version-rating { flex: 0 0 auto; font-size: 12px; color: var(--xa-gold-2); }
.xmas-version-tournaments { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.xmas-version-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
.xmas-tournament-row.is-stacked { flex-direction: column; align-items: stretch; }
.xmas-register-versions { display: flex; flex-direction: column; gap: 6px; }
.xmas-register-version { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 10px; background: rgba(255, 255, 255, .05); }

/* Stav turnaje týmu - zelená přihlášený, žlutá probíhá, červená ukončený (ukončené schová filtr) */
.xmas-state { --xmas-state: #33d49a; display: flex; align-items: center; gap: 8px; min-width: 0; padding: 5px 9px; border: 1px solid color-mix(in srgb, var(--xmas-state) 45%, transparent); border-left-width: 4px; border-radius: 9px; background: color-mix(in srgb, var(--xmas-state) 12%, transparent); color: #fff; text-decoration: none; }
a.xmas-state:hover { background: color-mix(in srgb, var(--xmas-state) 22%, transparent); color: #fff; }
.xmas-state.is-running { --xmas-state: #f5c518; }
.xmas-state.is-finished { --xmas-state: #ff3d57; }
.xmas-state-dot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: var(--xmas-state); box-shadow: 0 0 6px var(--xmas-state); }
.xmas-state-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; }
.xmas-state-label { flex: 0 0 auto; color: color-mix(in srgb, var(--xmas-state) 70%, #fff); font-size: 11px; }
.xmas-state-legend { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: 4px; vertical-align: middle; }
.xmas-state-legend .xmas-state { display: inline-flex; padding: 1px 8px; font-size: 11px; }
.xa-chip.xmas-state-chip.is-registered { border-color: rgba(51, 212, 154, .45); background: rgba(51, 212, 154, .14); color: #b9f5dd; }
.xa-chip.xmas-state-chip.is-running { border-color: rgba(245, 197, 24, .5); background: rgba(245, 197, 24, .16); color: #ffe89a; }
.xa-chip.xmas-state-chip.is-finished { border-color: rgba(255, 61, 87, .45); background: rgba(255, 61, 87, .16); color: #ffc2cc; }
.xmas-tournament-row.xmas-state-row { border-left: 4px solid transparent; padding-left: 10px; }
.xmas-tournament-row.xmas-state-row.is-registered { border-left-color: #33d49a; }
.xmas-tournament-row.xmas-state-row.is-running { border-left-color: #f5c518; }
.xmas-tournament-row.xmas-state-row.is-finished { border-left-color: #ff3d57; }
[data-finished-scope]:not(.xmas-show-finished) .is-finished-item { display: none !important; }
[data-finished-scope].xmas-show-finished .xmas-only-finished { display: none; }
.xmas-panel-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; }
.xmas-panel-head h5 { margin-bottom: 8px; }
.xmas-finished-switch { margin: 0 0 8px; font-size: 13px; }

/* Otevřená registrace - turnaj s tlačítkem a okno „Vyberte tým“ */
.xmas-open-name { font-size: 17px; }
.xmas-open-registered { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; }
.xmas-register-choices { display: flex; flex-direction: column; gap: 8px; }
.xmas-register-choice { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid rgba(51, 212, 154, .4); border-radius: 12px; background: rgba(51, 212, 154, .08); }
.xmas-register-choice-text { flex: 1 1 auto; min-width: 0; }
.xmas-register-blocked > summary { cursor: pointer; color: var(--xa-muted, #aab); font-size: 14px; }
.xmas-register-blocked .xmas-register-version { margin-top: 6px; flex-direction: column; align-items: flex-start; gap: 2px; }
@media (max-width: 575px) {
    .xmas-versions { grid-template-columns: 1fr; }
    .xmas-version-body { grid-template-columns: 1fr; }
    .xmas-register-version .ms-auto { margin-left: 0 !important; }
    .xmas-open-registered { align-items: flex-start; text-align: left; }
    .xmas-register-choice { flex-wrap: wrap; }
    .xmas-register-choice .btn { width: 100%; }
}

/* Správa turnaje - soupisky týmů (schvalování, mimo soupisku, výměna verze) a přihlášení týmu po klubech */
.xmas-roster > summary { cursor: pointer; list-style: none; }
.xmas-roster > summary::-webkit-details-marker { display: none; }
.xmas-roster-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 6px; }
.xmas-candidates > summary { list-style: none; }
.xmas-candidates > summary::-webkit-details-marker { display: none; }
.xmas-candidate-clubs { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; margin-top: 10px; }
.xmas-candidate-club { display: flex; flex-direction: column; gap: 6px; padding: 10px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 12px; }
