/* ==========================================================================
   UFL – SOUTĚŽNÍ STRÁNKY
   Sdílené komponenty pro Program, Tabulky, Statistiky, Média a Historii.
   Akcentová barva se řídí třídou .ufl-liga--1 / .ufl-liga--2 na obalu stránky,
   takže 2. liga je automaticky červená a 1. liga modrá.
   ========================================================================== */

.ufl-liga-page {
    background: var(--ufl-light);
    min-height: 100vh;
    font-family: var(--ufl-font-main);
    color: var(--ufl-text-main);
    padding-bottom: 80px;
}

/* ─── HERO ───────────────────────────────────────────────────────── */
.ufl-page-hero {
    position: relative;
    overflow: hidden;
    padding: 64px 20px 0;
    text-align: center;
    color: #fff;
    background: linear-gradient(135deg, var(--ufl-dark-deep) 0%, var(--ufl-accent-dark, var(--ufl-blue-dark)) 100%);
}
.ufl-page-hero::before {
    content: '';
    position: absolute; inset: 0;
    background: var(--ufl-hero-img) center/cover no-repeat;
    opacity: var(--ufl-page-hero-opacity, .12);
    pointer-events: none;
}
.ufl-page-hero-inner { position: relative; z-index: 2; max-width: 940px; margin: 0 auto; }

.ufl-page-hero-badge {
    display: inline-block;
    background: var(--ufl-accent, var(--ufl-blue));
    color: #fff;
    font-size: .7rem; font-weight: 800; letter-spacing: 2px; text-transform: uppercase;
    padding: 6px 16px; border-radius: 4px; margin-bottom: 20px;
    border: 1px solid rgba(255,255,255,.14);
}
.ufl-page-hero h1 {
    font-size: clamp(2.2rem, 7vw, 4.2rem);
    font-weight: 900; text-transform: uppercase; 
    line-height: .95; letter-spacing: -2px; margin: 0 0 14px;
    color: #fff !important;
    text-shadow: 0 10px 30px rgba(0,0,0,.45);
}
.ufl-page-hero p {
    font-size: 1.02rem; color: rgba(255,255,255,.72);
    margin: 0 auto; max-width: 620px;
}

/* ─── PŘEPÍNAČ SOUTĚŽÍ (1. liga / 2. liga) ───────────────────────── */
.ufl-league-switch {
    position: relative; z-index: 2;
    display: flex; justify-content: center; flex-wrap: wrap;
    gap: 8px; margin-top: 34px;
}
.ufl-league-switch-btn {
    padding: 13px 34px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.16);
    color: rgba(255,255,255,.75);
    font-size: .88rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
    text-decoration: none;
    border-radius: 10px 10px 0 0;
    transition: all .25s;
}
.ufl-league-switch-btn:hover { background: rgba(255,255,255,.14); color: #fff; }
.ufl-league-switch-btn.is-active {
    background: var(--ufl-blue); color: #fff; border-color: var(--ufl-blue);
    box-shadow: 0 -2px 24px var(--ufl-blue-glow);
}
.ufl-league-switch-btn--red.is-active {
    background: var(--ufl-red); border-color: var(--ufl-red);
    box-shadow: 0 -2px 24px var(--ufl-red-glow);
}
@media (max-width: 480px) {
    .ufl-league-switch-btn { flex: 1; padding: 12px 16px; text-align: center; border-radius: 10px; }
}

/* ─── ZÁLOŽKY DIVIZÍ ─────────────────────────────────────────────── */
.ufl-div-tabs {
    background: var(--ufl-white);
    border-bottom: 1px solid var(--ufl-line);
    box-shadow: 0 4px 12px rgba(0,0,0,.04);
    padding: 0 20px;
    position: sticky; top: calc(var(--ufl-header-height, 75px) + var(--ufl-topbar-height, 38px)); z-index: 40;
}
.ufl-div-tabs-inner {
    max-width: 1200px; margin: 0 auto;
    display: flex; gap: 8px; overflow-x: auto;
    scrollbar-width: none;
}
.ufl-div-tabs-inner::-webkit-scrollbar { display: none; }
.ufl-div-tab {
    flex-shrink: 0;
    padding: 17px 16px;
    background: none; border: none; border-bottom: 3px solid transparent;
    font-family: inherit; font-size: .88rem; font-weight: 800;
    color: var(--ufl-text-muted); cursor: pointer;
    text-transform: uppercase; letter-spacing: .03em;
    transition: .2s; white-space: nowrap;
}
/* Na hover se chová jako odkaz: obarví se textem soutěže a naznačí podtržení,
   které aktivní záložka drží natrvalo. Pozadí zůstává prázdné – růžovou
   z rodičovské šablony sundává reset v ufl-global.css. */
.ufl-div-tab:hover,
.ufl-div-tab:focus-visible {
    color: var(--ufl-accent, var(--ufl-blue));
    border-bottom-color: var(--ufl-line);
}
.ufl-div-tab.is-active:hover { border-bottom-color: var(--ufl-accent, var(--ufl-blue)); }
.ufl-div-tab.is-active {
    color: var(--ufl-accent, var(--ufl-blue));
    border-bottom-color: var(--ufl-accent, var(--ufl-blue));
}

.ufl-liga-container { max-width: 1200px; margin: 0 auto; padding: 34px 20px; }

.ufl-panel { display: none; }
.ufl-panel.is-active { display: block; animation: uflFadeIn .3s ease-out; }
@keyframes uflFadeIn { from { opacity: 0; transform: translateY(8px) } to { opacity: 1; transform: none } }

/* ─── KARTA ──────────────────────────────────────────────────────── */
.ufl-card {
    background: #fff;
    border: 1px solid var(--ufl-line);
    border-radius: 4px;
    box-shadow: none;
    overflow: hidden;
    margin-bottom: 24px;
}
.ufl-card-head {
    display: flex; align-items: center; gap: 12px;
    padding: 17px 22px;
    border-bottom: 1px solid var(--ufl-line);
}
/* Barevný proužek u nadpisu je pryč – bloky odděluje linka, ne dekorace. */
.ufl-card-head h2, .ufl-card-head h3 {
    margin: 0; font-size: 1.05rem; font-weight: 900;
    text-transform: uppercase;  letter-spacing: .2px;
    color: var(--ufl-dark);
}
.ufl-card-head .ufl-card-meta {
    margin-left: auto; font-size: .78rem; font-weight: 700;
    color: var(--ufl-text-muted); text-transform: uppercase;
}
.ufl-card-body { padding: 4px 0; }

.ufl-grid-2 { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 900px) { .ufl-grid-2 { grid-template-columns: 1fr 1fr; } }

.ufl-empty {
    text-align: center; padding: 52px 20px;
    color: var(--ufl-text-muted); font-size: .93rem; font-weight: 600;
}

/* ─── PROGRAM / ROZPIS ZÁPASŮ ────────────────────────────────────── */
.ufl-round { padding: 0 0 6px; }
.ufl-round-label {
    display: flex; align-items: center; gap: 10px;
    padding: 14px 22px 8px;
    font-size: .74rem; font-weight: 900; text-transform: uppercase; letter-spacing: .1em;
    color: var(--ufl-text-muted);
}
.ufl-round-label::after { content: ''; flex: 1; height: 1px; background: var(--ufl-line); }

.ufl-match {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    column-gap: 14px;
    row-gap: 2px;
    padding: 14px 22px;
    border-bottom: 1px solid var(--ufl-line-soft);
    text-decoration: none;
    color: inherit;
    transition: background .18s;
}
.ufl-match:last-child { border-bottom: none; }
.ufl-match:hover { background: var(--ufl-light); }

.ufl-match-team { display: flex; align-items: center; gap: 9px; min-width: 0; }
.ufl-match-team.is-away { flex-direction: row-reverse; text-align: right; }
.ufl-match-team img { width: 26px; height: 26px; object-fit: contain; flex-shrink: 0; }
.ufl-match-team-name {
    font-size: .92rem; font-weight: 600; color: var(--ufl-dark);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ufl-match-team.is-winner .ufl-match-team-name { font-weight: 800; }

/* Skóre je to jediné, co na stránce hledá oko jako první. */
.ufl-match-score {
    font-family: var(--ufl-font-heading);
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    font-size: 1.5rem;
    letter-spacing: -.03em;
    color: var(--ufl-dark);
    min-width: 92px;
    display: flex; align-items: center; justify-content: center; gap: 7px;
}
.ufl-match-score .sep { color: var(--ufl-line); font-weight: 500; }
.ufl-match-score.is-upcoming {
    font-family: var(--ufl-font-main);
    font-size: .86rem; font-weight: 700;
    color: var(--ufl-text-muted); letter-spacing: 0;
}

/* Čas a hřiště pod dvojicí týmů – ne v úzkém sloupci vpravo. */
.ufl-match-meta {
    grid-column: 1 / -1;
    display: flex; flex-wrap: wrap; gap: 4px 14px;
    font-size: .74rem; font-weight: 500; color: var(--ufl-text-muted);
}
.ufl-match-meta span + span::before {
    content: '·'; margin-right: 14px; color: var(--ufl-line);
}

@media (max-width: 700px) {
    .ufl-match { padding: 13px 14px; column-gap: 9px; }
    .ufl-match-team img { width: 22px; height: 22px; }
    .ufl-match-team-name { font-size: .84rem; }
    .ufl-match-score { font-size: 1.28rem; min-width: 74px; }
}

/* ─── STATISTIKY (střelci, čistá konta, karty) ───────────────────── */
.ufl-stats-grid {
    display: grid; grid-template-columns: 1fr; gap: 24px;
}
@media (min-width: 760px)  { .ufl-stats-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1180px) { .ufl-stats-grid { grid-template-columns: repeat(4, 1fr); } }

.ufl-lead-row {
    display: grid;
    grid-template-columns: 28px 34px 1fr auto;
    align-items: center; gap: 11px;
    padding: 11px 18px;
    border-bottom: 1px solid var(--ufl-line);
    text-decoration: none; color: inherit;
    transition: background .18s;
}
.ufl-lead-row:last-child { border-bottom: none; }
.ufl-lead-row:hover { background: var(--ufl-light); }

.ufl-lead-pos {
    font-size: .8rem; font-weight: 900; 
    color: var(--ufl-text-muted); text-align: center;
}
.ufl-lead-row:nth-child(1) .ufl-lead-pos { color: var(--ufl-accent, var(--ufl-blue)); }

.ufl-lead-photo {
    width: 34px; height: 34px; border-radius: 50%;
    object-fit: cover; background: #e6eaf0;
}
.ufl-lead-name { font-size: .86rem; font-weight: 800; color: var(--ufl-dark); line-height: 1.2; }
.ufl-lead-team { font-size: .72rem; font-weight: 600; color: var(--ufl-text-muted); }
.ufl-lead-value {
    font-size: 1.15rem; font-weight: 900; 
    color: var(--ufl-accent, var(--ufl-blue)); min-width: 34px; text-align: right;
}
.ufl-lead-row[hidden] { display: none; }
.ufl-lead-toggle {
    display: block; width: 100%;
    padding: 12px 18px;
    background: none; border: 0;
    font: inherit; font-size: .8rem; font-weight: 800;
    color: var(--ufl-accent, var(--ufl-blue));
    cursor: pointer; text-align: center;
}
.ufl-lead-toggle:hover, .ufl-lead-toggle:focus { background: var(--ufl-light); color: var(--ufl-accent, var(--ufl-blue)); }
.ufl-lead-value--yellow { color: #B98600; }
.ufl-lead-value--red { color: var(--ufl-red); }

/* Vysvětlivka, když ještě nejsou data */
.ufl-note {
    background: #fff;
    border: 1px solid var(--ufl-line);
    border-left: 4px solid var(--ufl-accent, var(--ufl-blue));
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 26px;
    font-size: .88rem;
    color: var(--ufl-text-muted);
    line-height: 1.6;
}
.ufl-note strong { color: var(--ufl-dark); }

/* ─── SPORTSPRESS TABULKY V KARTĚ ────────────────────────────────── */
.ufl-card .sp-template-league-table { margin: 0 !important; padding: 0 !important; }
.ufl-card .sp-table-wrapper { margin: 0 !important; max-width: none !important; }
.ufl-card table { width: 100% !important; margin: 0 !important; border-collapse: collapse !important; }
.ufl-card th {
    background: var(--ufl-light) !important; color: var(--ufl-text-muted) !important;
    font-size: 10px !important; font-weight: 900 !important; text-transform: uppercase !important;
    letter-spacing: .5px !important; padding: 12px 10px !important;
    border-bottom: 1px solid var(--ufl-line) !important;
}
.ufl-card td {
    padding: 12px 10px !important; border-bottom: 1px solid #f5f5f5 !important;
    color: #2d3748 !important; font-size: 13px !important; font-weight: 600 !important;
}
.ufl-card tr:hover td { background: #fafafa !important; }
.ufl-card :where(th, td).data-l10 { display: none !important; }

/* ==========================================================================
   UFL – MÉDIA (fotogalerie a videa)
   ========================================================================== */

.ufl-media-page .ufl-page-hero { background: var(--ufl-gradient); }

/* ─── Filtrační lišta ─────────────────────────────────────────────── */
.ufl-media-filters {
    background: #fff;
    border-bottom: 1px solid var(--ufl-line);
    box-shadow: 0 4px 12px rgba(0,0,0,.04);
    padding: 16px 20px 12px;
    position: sticky;
    top: calc(var(--ufl-header-height, 75px) + var(--ufl-topbar-height, 38px));
    z-index: 40;
}
.ufl-media-filters-inner {
    max-width: 1200px; margin: 0 auto;
    display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
}

.ufl-media-search { flex: 1 1 220px; min-width: 180px; }
.ufl-media-search input {
    width: 100%; padding: 10px 14px;
    border: 1.5px solid #e2e8f0; border-radius: 9px;
    font-family: inherit; font-size: .88rem; color: var(--ufl-text-main);
    outline: none; transition: .2s;
}
.ufl-media-search input:focus {
    border-color: var(--ufl-blue);
    box-shadow: 0 0 0 3px rgba(11,61,145,.1);
}

.ufl-media-chips { display: flex; gap: 4px; background: var(--ufl-light); padding: 4px; border-radius: 10px; }
.ufl-media-chip {
    padding: 7px 15px; border: none; background: none; border-radius: 7px;
    font-family: inherit; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em;
    color: var(--ufl-text-muted); cursor: pointer; transition: .2s; white-space: nowrap;
}
.ufl-media-chip:hover { color: var(--ufl-text-main); }
.ufl-media-chip.is-active { background: var(--ufl-blue); color: #fff; box-shadow: 0 3px 10px rgba(11,61,145,.22); }

.ufl-media-select {
    padding: 10px 12px;
    border: 1.5px solid #e2e8f0; border-radius: 9px;
    font-family: inherit; font-size: .84rem; font-weight: 600;
    color: var(--ufl-text-main); background: #fff; cursor: pointer; outline: none;
    max-width: 220px;
}
.ufl-media-select:focus { border-color: var(--ufl-blue); }

.ufl-media-reset {
    padding: 9px 14px; border: none; border-radius: 9px;
    background: rgba(200,16,46,.08); color: var(--ufl-red-dark);
    font-family: inherit; font-size: .78rem; font-weight: 800; text-transform: uppercase;
    cursor: pointer; transition: .2s;
}
.ufl-media-reset:hover { background: rgba(200,16,46,.16); }

.ufl-media-count {
    max-width: 1200px; margin: 10px auto 0;
    font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ufl-text-muted);
}

@media (max-width: 700px) {
    .ufl-media-filters { padding: 12px 14px 10px; }
    .ufl-media-filters-inner { gap: 8px; }
    .ufl-media-search { flex: 1 1 100%; }
    .ufl-media-select { flex: 1 1 46%; max-width: none; }
    .ufl-media-chips { flex: 1 1 100%; }
    .ufl-media-chip { flex: 1; text-align: center; }
}

/* ─── Mřížka alb ──────────────────────────────────────────────────── */
.ufl-media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 20px;
}
@media (max-width: 560px) {
    .ufl-media-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}
@media (max-width: 380px) {
    .ufl-media-grid { grid-template-columns: 1fr; }
}

.ufl-media-card {
    display: block; text-decoration: none; color: inherit;
    background: #fff;
    border: 1px solid var(--ufl-line);
    border-radius: 4px; overflow: hidden;
    box-shadow: none;
    transition: transform .22s, box-shadow .22s, border-color .22s;
}
.ufl-media-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 34px rgba(0,0,0,.12);
    border-color: var(--ufl-blue);
}
.ufl-media-card.is-video:hover { border-color: var(--ufl-red); }
.ufl-media-card[hidden] { display: none; }

.ufl-media-thumb {
    position: relative;
    aspect-ratio: 16 / 10;
    background: #e6eaf0 center/cover no-repeat;
}
.ufl-media-thumb::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 55%);
}

.ufl-media-format {
    position: absolute; left: 10px; bottom: 10px; z-index: 2;
    background: rgba(255,255,255,.92); color: var(--ufl-dark);
    font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em;
    padding: 4px 9px; border-radius: 6px;
}
.ufl-media-card.is-video .ufl-media-format { background: var(--ufl-red); color: #fff; }

/* Přehrávací trojúhelník u videí */
.ufl-media-play {
    position: absolute; top: 50%; left: 50%; z-index: 2;
    width: 52px; height: 52px; margin: -26px 0 0 -26px;
    border-radius: 50%;
    background: rgba(200,16,46,.92);
    box-shadow: 0 8px 22px rgba(0,0,0,.3);
    transition: transform .22s;
}
.ufl-media-play::before {
    content: ''; position: absolute; top: 50%; left: 50%;
    margin: -8px 0 0 -5px;
    border-style: solid; border-width: 8px 0 8px 13px;
    border-color: transparent transparent transparent #fff;
}
.ufl-media-card:hover .ufl-media-play { transform: scale(1.1); }

.ufl-media-info { padding: 14px 16px 16px; }
.ufl-media-occasion {
    display: inline-block; margin-bottom: 7px;
    font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ufl-blue);
}
.ufl-media-card.is-video .ufl-media-occasion { color: var(--ufl-red-dark); }
.ufl-media-title {
    margin: 0 0 6px; font-size: .95rem; font-weight: 800;
    text-transform: none; font-style: normal; line-height: 1.3;
    color: var(--ufl-dark);
}
.ufl-media-date { font-size: .75rem; font-weight: 600; color: var(--ufl-text-muted); }

/* ─── Alba pod článkem v Aktualitách ──────────────────────────────── */
.ufl-related-media { margin-top: 46px; padding-top: 30px; border-top: 1px solid var(--ufl-line); }
.ufl-related-media-title {
    font-size: 1.1rem; font-weight: 900; text-transform: uppercase; 
    margin: 0 0 18px; color: var(--ufl-dark);
}

/* ==========================================================================
   UFL – HOMEPAGE
   ========================================================================== */

.ufl-hp-section { padding: 54px 0 0; }
.ufl-hp-section:last-of-type { padding-bottom: 20px; }

/* minmax(0, 1fr): holé `1fr` má minimum „šířka obsahu“, takže tabulka o šířce 600 px
   roztáhla sloupec i celou stránku a na mobilu se dala posouvat do stran. */
.ufl-hp-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.ufl-dash-col { min-width: 0; }
@media (min-width: 900px) {
    .ufl-hp-dashboard-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 56px; }
}

.ufl-hp-stats-grid { display: grid; grid-template-columns: 1fr; gap: 22px; }
@media (min-width: 700px)  { .ufl-hp-stats-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1060px) { .ufl-hp-stats-grid { grid-template-columns: repeat(3, 1fr); } }

/* Karty na homepage stojí na bílém pozadí, tak jim ubereme stín */
.ufl-hp .ufl-card { box-shadow: none; }

/* ─── Instagram ───────────────────────────────────────────────────── */
.ufl-ig { padding: 56px 0 10px; }
.ufl-ig-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
}
@media (max-width: 560px) {
    .ufl-ig-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
}

.ufl-ig-item {
    position: relative;
    display: block;
    aspect-ratio: 1;
    border-radius: 4px;
    overflow: hidden;
    background: #e6eaf0;
    text-decoration: none;
}
.ufl-ig-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.ufl-ig-item:hover img { transform: scale(1.06); }

.ufl-ig-overlay {
    position: absolute; inset: 0;
    display: flex; align-items: flex-end;
    padding: 14px;
    font-size: .76rem; font-weight: 600; line-height: 1.35; color: #fff;
    background: linear-gradient(to top, rgba(11,18,32,.88) 0%, rgba(11,18,32,.15) 55%, transparent 100%);
    opacity: 0; transition: opacity .25s;
}
.ufl-ig-item:hover .ufl-ig-overlay { opacity: 1; }
@media (hover: none) { .ufl-ig-overlay { display: none; } }

/* Ručně připnuté příspěvky – karty ve stejném duchu jako liga.unibasket.cz.
   Instagram bez tokenu náhled nevydá, takže obrázek nahrává správce; karta
   bez obrázku drží tvar a ukáže aspoň značku. */
.ufl-ig-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px;
}
.ufl-ig-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--ufl-line);
    border-radius: 4px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: box-shadow .2s, transform .2s;
}
.ufl-ig-card:hover { box-shadow: 0 10px 30px rgba(14,21,36,.10); transform: translateY(-3px); }

.ufl-ig-card-media { display: block; aspect-ratio: 1; background: #eef1f6; overflow: hidden; }
.ufl-ig-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.ufl-ig-card:hover .ufl-ig-card-media img { transform: scale(1.05); }
.ufl-ig-card-fallback {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #eef1f6, #dfe5ee);
    color: var(--ufl-blue);
}

.ufl-ig-card-body { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px 16px; flex: 1; }
.ufl-ig-card-meta { display: flex; align-items: center; gap: 8px; color: var(--ufl-text-muted); }
.ufl-ig-card-meta em { font-style: normal; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.ufl-ig-card-text { font-size: .86rem; line-height: 1.5; color: var(--ufl-text-main); }
.ufl-ig-card-link { margin-top: auto; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--ufl-blue); }

@media (max-width: 560px) {
    .ufl-ig-cards { grid-template-columns: 1fr 1fr; gap: 12px; }
    .ufl-ig-card-body { padding: 10px 12px 12px; }
    .ufl-ig-card-text { display: none; }
}

/* ─── Rotující lišta univerzit ────────────────────────────────────── */
.ufl-unis { padding: 56px 0 20px; overflow: hidden; }
.ufl-unis-head {
    display: flex; align-items: baseline; justify-content: space-between;
    flex-wrap: wrap; gap: 10px; margin-bottom: 26px;
}
.ufl-unis-hint { font-size: .78rem; font-weight: 700; color: var(--ufl-text-muted); text-transform: uppercase; }

.ufl-unis-marquee {
    position: relative;
    padding: 22px 0;
    border-top: 1px solid var(--ufl-line);
    border-bottom: 1px solid var(--ufl-line);
    /* Okraje jemně vyblednou, aby lišta nekončila useknutě */
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.ufl-unis-track {
    display: flex; align-items: center; gap: 46px;
    width: max-content;
    animation: uflMarquee 46s linear infinite;
}
.ufl-unis-marquee:hover .ufl-unis-track { animation-play-state: paused; }
@keyframes uflMarquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }  /* seznam je vykreslený 2×, posun o půlku = plynulá smyčka */
}

/* Kdo si nepřeje animace, dostane statickou, posouvatelnou lištu */
@media (prefers-reduced-motion: reduce) {
    .ufl-unis-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
    .ufl-unis-track { animation: none; }
}

.ufl-uni { flex-shrink: 0; display: flex; align-items: center; justify-content: center; text-decoration: none; }
.ufl-uni img {
    height: 52px; width: auto; max-width: 130px; object-fit: contain;
    filter: grayscale(1); opacity: .45;
    transition: filter .25s, opacity .25s, transform .25s;
}
.ufl-uni:hover img { filter: none; opacity: 1; transform: scale(1.06); }
.ufl-uni-text {
    font-size: 1rem; font-weight: 900; text-transform: uppercase; 
    color: var(--ufl-text-muted); transition: color .25s;
}
.ufl-uni:hover .ufl-uni-text { color: var(--ufl-blue); }

/* ─── HISTORIE ────────────────────────────────────────────────────── */
.ufl-season-body { padding: 20px 22px 22px; }

.ufl-season-champion {
    display: flex; align-items: center; gap: 14px;
    padding: 14px 18px; margin-bottom: 18px;
    border-radius: 4px;
    background: linear-gradient(135deg, rgba(11,61,145,.08), rgba(200,16,46,.05));
    border: 1px solid rgba(11,61,145,.14);
}
.ufl-season-trophy { font-size: 28px; line-height: 1; }
.ufl-season-comp {
    display: block; font-size: .7rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: .07em;
    color: var(--ufl-text-muted); margin-bottom: 2px;
}
.ufl-season-team { display: block; font-size: 1.05rem; font-weight: 900;  color: var(--ufl-dark); }
.ufl-season-empty { font-size: .86rem; color: var(--ufl-text-muted); margin: 0; }

.ufl-rank-list { list-style: none; margin: 0; padding: 0; }
.ufl-rank-row {
    display: grid; grid-template-columns: 130px 1fr; gap: 14px;
    align-items: baseline;
    padding: 11px 0;
    border-bottom: 1px solid var(--ufl-line);
}
.ufl-rank-row:last-child { border-bottom: none; }
.ufl-rank-label {
    font-size: .78rem; font-weight: 800; text-transform: uppercase;
    letter-spacing: .03em; color: var(--ufl-text-muted); white-space: nowrap;
}
.ufl-rank-row.is-medal .ufl-rank-label { color: var(--ufl-blue); }
.ufl-rank-row.is-rank-1 .ufl-rank-label { color: var(--ufl-red); }

.ufl-rank-teams { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.ufl-rank-team { font-size: .92rem; font-weight: 700; color: var(--ufl-dark); }
.ufl-rank-row.is-rank-1 .ufl-rank-team { font-weight: 900; }
.ufl-rank-team small {
    font-size: .72rem; font-weight: 700; color: var(--ufl-text-muted);
    margin-left: 4px;
}

@media (max-width: 620px) {
    .ufl-rank-row { grid-template-columns: 1fr; gap: 4px; }
    .ufl-rank-teams { gap: 4px 12px; }
}

/* ─── Tabulky skupin na homepage ──────────────────────────────────── */
.ufl-hp-group-table {
    background: #fff;
    border: 1px solid var(--ufl-line);
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 14px;
    box-shadow: none;
}
.ufl-hp-group-title {
    margin: 0;
    padding: 12px 16px;
    font-size: .8rem; font-weight: 900;
    text-transform: uppercase;  letter-spacing: .04em;
    color: var(--ufl-dark);
    border-bottom: 1px solid var(--ufl-line);
    display: flex; align-items: center; gap: 9px;
}
.ufl-hp-group-title::before {
    content: ''; width: 3px; height: 14px; border-radius: 2px;
    background: var(--ufl-accent, var(--ufl-blue));
}
.ufl-hp-group-table th {
    background: var(--ufl-light) !important; color: var(--ufl-text-muted) !important;
    font-size: 9px !important; font-weight: 900 !important; text-transform: uppercase !important;
    padding: 8px 10px !important; border-bottom: 1px solid var(--ufl-line) !important;
}
.ufl-hp-group-table td {
    padding: 9px 10px !important; font-size: 12px !important; font-weight: 600 !important;
    border-bottom: 1px solid #f5f5f5 !important;
}
.ufl-hp-group-table table { width: 100% !important; margin: 0 !important; border-collapse: collapse !important; }

/* ─── Loga sociálních sítí ────────────────────────────────────────── */
.ufl-footer-social { transition: background .25s, color .25s, transform .25s; }
.ufl-footer-social:hover { transform: translateY(-3px); }
.ufl-footer-social .ufl-social-icon { display: block; }

/* ─── Zástupný text pro nedoplněné údaje ──────────────────────────────
   Záměrně nápadný: lepší viditelná mezera než vymyšlené číslo,
   které by někdo omylem publikoval jako platné. */
.ufl-pr-todo {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 6px;
    background: rgba(245,179,1,.14);
    border: 1px dashed rgba(185,134,0,.5);
    color: #8A6400;
    font-size: .8em; font-weight: 700;
    
}
