/**
 * Football Data Hub — Light & Dark Theme
 *
 * Modern design with light default, dark mode via body.fdh-theme-dark.
 * BEM naming: .fdh-{block}__{element}--{modifier}
 * Mobile-first responsive design.
 *
 * @since 1.0.0
 */



/* ---------------------------------------------------------------
   CSS Custom Properties — Light Theme (default)
   --------------------------------------------------------------- */
:root {
    /* Baggrunde — Fodboldzone.dk brand */
    --fdh-bg-page:       #f0f2f5;
    --fdh-bg-deep:       #e8ecf1;
    --fdh-bg:            #f5f7fa;
    --fdh-bg-card:       #ffffff;
    --fdh-bg-card-hover: #f0f4f8;
    --fdh-bg-elevated:   #e8ecf1;
    --fdh-bg-input:      #eef1f6;

    /* Tekst — neutral mørk */
    --fdh-text:          #192250;
    --fdh-text-primary:  #192250;
    --fdh-text-secondary:#4b5570;
    --fdh-text-muted:    #8e95a9;
    --fdh-text-bright:   #0d1333;

    /* Primary — Midnight Blue */
    --fdh-primary:       #192250;
    --fdh-primary-rgb:   25, 34, 80;
    --fdh-primary-dim:   rgba(25, 34, 80, 0.08);
    --fdh-primary-glow:  rgba(25, 34, 80, 0.15);
    /* Secondary — Steel Blue */
    --fdh-secondary:     #4374BA;
    --fdh-secondary-rgb: 67, 116, 186;
    --fdh-secondary-dim: rgba(67, 116, 186, 0.08);
    /* Accent — Steel Blue */
    --fdh-accent:        #4374BA;
    --fdh-accent-dim:    rgba(67, 116, 186, 0.12);
    --fdh-accent-glow:   rgba(67, 116, 186, 0.25);

    /* Status */
    --fdh-win:           #2e7d32;
    --fdh-draw:          #d4a017;
    --fdh-loss:          #c0392b;
    --fdh-live:          #c0392b;

    /* Cards & Substitutions */
    --fdh-card-yellow:   #f5c542;
    --fdh-card-red:      #e53935;
    --fdh-subst-in:      #4caf50;
    --fdh-subst-out:     #e53935;

    /* Accent RGB (for away stat bars etc.) */
    --fdh-accent-rgb:    67, 116, 186;

    /* Overflader — neutral blålig */
    --fdh-border:        rgba(25, 34, 80, 0.08);
    --fdh-border-light:  rgba(25, 34, 80, 0.12);
    --fdh-divider:       rgba(25, 34, 80, 0.05);
    --fdh-radius-xs:     4px;
    --fdh-radius-sm:     6px;
    --fdh-radius:        8px;
    --fdh-radius-lg:     12px;

    /* Elevation scale */
    --fdh-shadow-xs:     0 1px 2px rgba(25, 34, 80, 0.04);
    --fdh-shadow-sm:     0 1px 3px rgba(25, 34, 80, 0.06), 0 1px 2px rgba(25, 34, 80, 0.03);
    --fdh-shadow:        0 2px 8px rgba(25, 34, 80, 0.06), 0 1px 3px rgba(25, 34, 80, 0.04);
    --fdh-shadow-md:     0 4px 14px rgba(25, 34, 80, 0.08), 0 2px 4px rgba(25, 34, 80, 0.04);
    --fdh-shadow-lg:     0 10px 30px rgba(25, 34, 80, 0.10), 0 4px 8px rgba(25, 34, 80, 0.05);

    /* Overlay-tokens */
    --fdh-overlay-subtle: rgba(25, 34, 80, 0.02);
    --fdh-overlay-light:  rgba(25, 34, 80, 0.04);
    --fdh-overlay-medium: rgba(25, 34, 80, 0.07);
    --fdh-overlay-hover:  rgba(25, 34, 80, 0.05);

    /* Transitions */
    --fdh-transition:      0.2s cubic-bezier(0.4, 0, 0.2, 1);
    --fdh-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);

    /* Gradienter — Midnight Blue → Steel Blue */
    --fdh-gradient-hero:       linear-gradient(135deg, #f0f2f5 0%, #e8ecf1 100%);
    --fdh-gradient-hero-team:  linear-gradient(160deg, #edf1f8 0%, #e4eaf3 50%, #e8ecf1 100%);
    --fdh-gradient-glass:      linear-gradient(180deg, rgba(255, 255, 255, 0.7) 0%, rgba(245, 247, 250, 0.4) 100%);
    --fdh-gradient-hero-title: linear-gradient(180deg, #192250 0%, #2d3a6e 100%);
    --fdh-gradient-badge:      linear-gradient(135deg, rgba(232, 236, 241, 0.95) 0%, rgba(245, 247, 250, 0.95) 100%);
    --fdh-gradient-fade:       linear-gradient(180deg, var(--fdh-bg-elevated), transparent);
    --fdh-gradient-fade-up:    linear-gradient(180deg, transparent 0%, rgba(240, 242, 245, 0.9) 100%);

    /* Logo-shadows */
    --fdh-logo-shadow:    drop-shadow(0 2px 4px rgba(25, 34, 80, 0.08));
    --fdh-logo-shadow-lg: drop-shadow(0 4px 8px rgba(25, 34, 80, 0.10));

    /* Spacing scale (8px base) */
    --fdh-space-2xs:  2px;
    --fdh-space-xs:   4px;
    --fdh-space-sm:   8px;
    --fdh-space-md:   12px;
    --fdh-space-base: 16px;
    --fdh-space-lg:   20px;
    --fdh-space-xl:   24px;
    --fdh-space-2xl:  36px;
    --fdh-space-3xl:  48px;
    --fdh-space-4xl:  64px;

    /* Typography — Montserrat (brand guideline) */
    --fdh-font:         'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --fdh-font-heading: 'Montserrat', -apple-system, sans-serif;
    --fdh-font-mono:    'JetBrains Mono', 'Fira Code', monospace;
}


/* ---------------------------------------------------------------
   CSS Custom Properties — Dark Theme Override
   --------------------------------------------------------------- */
body.fdh-theme-dark {
    /* Baggrunde — deep navy (Midnight Blue based) */
    --fdh-bg-page:       #0c0f1e;
    --fdh-bg-deep:       #080a16;
    --fdh-bg:            #111528;
    --fdh-bg-card:       #171c34;
    --fdh-bg-card-hover: #1e2440;
    --fdh-bg-elevated:   #222850;
    --fdh-bg-input:      #1a1f38;

    /* Tekst — neutral lys */
    --fdh-text:          #e5e7eb;
    --fdh-text-primary:  #e5e7eb;
    --fdh-text-secondary:#9ca3b8;
    --fdh-text-muted:    #6b7290;
    --fdh-text-bright:   #f9fafb;

    /* Primary — lys Steel Blue */
    --fdh-primary:       #6b9cde;
    --fdh-primary-rgb:   107, 156, 222;
    --fdh-primary-dim:   rgba(107, 156, 222, 0.15);
    --fdh-primary-glow:  rgba(107, 156, 222, 0.25);
    --fdh-secondary:     #8eb5e8;
    --fdh-secondary-rgb: 142, 181, 232;
    --fdh-secondary-dim: rgba(142, 181, 232, 0.12);
    /* Accent — lys blå */
    --fdh-accent:        #8eb5e8;
    --fdh-accent-dim:    rgba(142, 181, 232, 0.18);
    --fdh-accent-glow:   rgba(142, 181, 232, 0.30);

    /* Status */
    --fdh-win:           #4caf50;
    --fdh-draw:          #f5c518;
    --fdh-loss:          #ef5350;
    --fdh-live:          #ff2040;

    /* Cards & Substitutions */
    --fdh-card-yellow:   #fdd835;
    --fdh-card-red:      #ef5350;
    --fdh-subst-in:      #66bb6a;
    --fdh-subst-out:     #ef5350;

    /* Accent RGB (for away stat bars etc.) */
    --fdh-accent-rgb:    142, 181, 232;

    /* Overflader — neutral */
    --fdh-border:        rgba(255, 255, 255, 0.08);
    --fdh-border-light:  rgba(255, 255, 255, 0.12);
    --fdh-divider:       rgba(255, 255, 255, 0.05);

    /* Elevation scale — dyb */
    --fdh-shadow-xs:     0 1px 2px rgba(0, 0, 0, 0.20);
    --fdh-shadow-sm:     0 1px 3px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.15);
    --fdh-shadow:        0 2px 8px rgba(0, 0, 0, 0.30), 0 1px 3px rgba(0, 0, 0, 0.15);
    --fdh-shadow-md:     0 4px 14px rgba(0, 0, 0, 0.35), 0 2px 4px rgba(0, 0, 0, 0.18);
    --fdh-shadow-lg:     0 10px 30px rgba(0, 0, 0, 0.40), 0 4px 8px rgba(0, 0, 0, 0.20);

    --fdh-overlay-subtle: rgba(255, 255, 255, 0.03);
    --fdh-overlay-light:  rgba(255, 255, 255, 0.05);
    --fdh-overlay-medium: rgba(255, 255, 255, 0.08);
    --fdh-overlay-hover:  rgba(255, 255, 255, 0.06);

    /* Gradienter — navy/charcoal */
    --fdh-gradient-hero:       linear-gradient(135deg, #1a1e2a 0%, #141720 100%);
    --fdh-gradient-hero-team:  linear-gradient(160deg, #1e2535 0%, #1a1e2a 50%, #141720 100%);
    --fdh-gradient-glass:      linear-gradient(180deg, rgba(26, 30, 42, 0.95) 0%, rgba(20, 23, 32, 0.95) 100%);
    --fdh-gradient-hero-title: linear-gradient(180deg, #f9fafb 20%, #d1d5db 100%);
    --fdh-gradient-badge:      linear-gradient(135deg, rgba(37, 42, 58, 0.9) 0%, rgba(26, 30, 42, 0.9) 100%);
    --fdh-gradient-fade:       linear-gradient(180deg, rgba(37, 42, 58, 0.6), transparent);
    --fdh-gradient-fade-up:    linear-gradient(180deg, transparent 0%, rgba(15, 17, 23, 0.9) 100%);

    --fdh-logo-shadow:    drop-shadow(0 2px 8px rgba(0, 0, 0, 0.50));
    --fdh-logo-shadow-lg: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.55));
}

@media (prefers-color-scheme: dark) {
    body:not(.fdh-theme-light) {
        /* Baggrunde — navy/charcoal */
        --fdh-bg-page:       #0f1117;
        --fdh-bg-deep:       #0a0c12;
        --fdh-bg:            #141720;
        --fdh-bg-card:       #1a1e2a;
        --fdh-bg-card-hover: #22273a;
        --fdh-bg-elevated:   #252a3a;
        --fdh-bg-input:      #1e2230;

        /* Tekst — neutral lys */
        --fdh-text:          #e5e7eb;
        --fdh-text-primary:  #e5e7eb;
        --fdh-text-secondary:#9ca3af;
        --fdh-text-muted:    #6b7280;
        --fdh-text-bright:   #f9fafb;

        /* Primary — let afdæmpet grøn */
        --fdh-primary:       #34d97a;
        --fdh-primary-rgb:   52, 217, 122;
        --fdh-primary-dim:   rgba(52, 217, 122, 0.15);
        --fdh-primary-glow:  rgba(52, 217, 122, 0.25);
        --fdh-secondary:     #4ade80;
        --fdh-secondary-rgb: 74, 222, 128;
        --fdh-secondary-dim: rgba(74, 222, 128, 0.12);
        /* Accent — guld lyser op i mørke */
        --fdh-accent:        #f5c518;
        --fdh-accent-dim:    rgba(245, 197, 24, 0.18);
        --fdh-accent-glow:   rgba(245, 197, 24, 0.30);

        /* Status */
        --fdh-win:           #34d97a;
        --fdh-draw:          #f5c518;
        --fdh-loss:          #ef5350;
        --fdh-live:          #ff2040;

        /* Cards & Substitutions */
        --fdh-card-yellow:   #fdd835;
        --fdh-card-red:      #ef5350;
        --fdh-subst-in:      #66bb6a;
        --fdh-subst-out:     #ef5350;

        /* Accent RGB (for away stat bars etc.) */
        --fdh-accent-rgb:    255, 140, 40;

        /* Overflader — neutral */
        --fdh-border:        rgba(255, 255, 255, 0.08);
        --fdh-border-light:  rgba(255, 255, 255, 0.12);
        --fdh-divider:       rgba(255, 255, 255, 0.05);

        /* Elevation scale — dyb */
        --fdh-shadow-xs:     0 1px 2px rgba(0, 0, 0, 0.20);
        --fdh-shadow-sm:     0 1px 3px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.15);
        --fdh-shadow:        0 2px 8px rgba(0, 0, 0, 0.30), 0 1px 3px rgba(0, 0, 0, 0.15);
        --fdh-shadow-md:     0 4px 14px rgba(0, 0, 0, 0.35), 0 2px 4px rgba(0, 0, 0, 0.18);
        --fdh-shadow-lg:     0 10px 30px rgba(0, 0, 0, 0.40), 0 4px 8px rgba(0, 0, 0, 0.20);

        --fdh-overlay-subtle: rgba(255, 255, 255, 0.03);
        --fdh-overlay-light:  rgba(255, 255, 255, 0.05);
        --fdh-overlay-medium: rgba(255, 255, 255, 0.08);
        --fdh-overlay-hover:  rgba(255, 255, 255, 0.06);

        /* Gradienter — navy/charcoal */
        --fdh-gradient-hero:       linear-gradient(135deg, #1a1e2a 0%, #141720 100%);
        --fdh-gradient-hero-team:  linear-gradient(160deg, #1e2535 0%, #1a1e2a 50%, #141720 100%);
        --fdh-gradient-glass:      linear-gradient(180deg, rgba(26, 30, 42, 0.95) 0%, rgba(20, 23, 32, 0.95) 100%);
        --fdh-gradient-hero-title: linear-gradient(180deg, #f9fafb 20%, #d1d5db 100%);
        --fdh-gradient-badge:      linear-gradient(135deg, rgba(37, 42, 58, 0.9) 0%, rgba(26, 30, 42, 0.9) 100%);
        --fdh-gradient-fade:       linear-gradient(180deg, rgba(37, 42, 58, 0.6), transparent);
        --fdh-gradient-fade-up:    linear-gradient(180deg, transparent 0%, rgba(15, 17, 23, 0.9) 100%);

        --fdh-logo-shadow:    drop-shadow(0 2px 8px rgba(0, 0, 0, 0.50));
        --fdh-logo-shadow-lg: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.55));
    }
}

/* ---------------------------------------------------------------
   Base Overrides (GeneratePress compatibility)
   --------------------------------------------------------------- */
html {
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}

.fdh-entity,
.fdh-shortcode-wrapper,
.fdh-frontpage {
    font-family: var(--fdh-font);
    color: var(--fdh-text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    overflow-x: hidden;
    padding: 24px 16px 48px;
}

/* Global focus ring */
.fdh-entity a:focus-visible,
.fdh-entity button:focus-visible,
.fdh-entity [tabindex]:focus-visible,
.fdh-shortcode-wrapper a:focus-visible,
.fdh-shortcode-wrapper button:focus-visible {
    outline: 2px solid var(--fdh-primary);
    outline-offset: 2px;
    border-radius: 2px;
}

.fdh-entity a,
.fdh-shortcode-wrapper a {
    color: var(--fdh-secondary);
    text-decoration: none;
    transition: color var(--fdh-transition-fast);
}

.fdh-entity a:hover,
.fdh-shortcode-wrapper a:hover {
    color: var(--fdh-primary);
}

/* Frontpage links: inherit text color (not link blue) for match rows */
.fdh-frontpage a {
    color: inherit;
    text-decoration: none;
}

.fdh-frontpage a:hover {
    color: inherit;
}

/* Force dark background on entity pages + frontpage */
.single-fdh_player,
.single-fdh_team,
.single-fdh_coach,
.single-fdh_competition,
.single-fdh_venue,
.single-fdh_country,
.fdh-match-page,
.fdh-frontpage-active {
    background-color: var(--fdh-bg-deep) !important;
}

.single-fdh_player .site-content,
.single-fdh_team .site-content,
.single-fdh_coach .site-content,
.single-fdh_competition .site-content,
.single-fdh_venue .site-content,
.single-fdh_country .site-content,
.fdh-match-page .site-content,
.fdh-frontpage-active .site-content,
.fdh-page-active .site-content {
    background-color: var(--fdh-bg);
}

/* GeneratePress: force full-width, no sidebar on all entity pages */
.single-fdh_player .site-content .content-area,
.single-fdh_team .site-content .content-area,
.single-fdh_coach .site-content .content-area,
.single-fdh_competition .site-content .content-area,
.single-fdh_venue .site-content .content-area,
.single-fdh_country .site-content .content-area,
.fdh-match-page .site-content .content-area,
.fdh-page-active .site-content .content-area {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    padding: 20px 16px;
    float: none !important;
}

/* Hide GP sidebar on entity pages */
.single-fdh_player #right-sidebar,
.single-fdh_team #right-sidebar,
.single-fdh_coach #right-sidebar,
.single-fdh_competition #right-sidebar,
.single-fdh_venue #right-sidebar,
.single-fdh_country #right-sidebar,
.fdh-match-page #right-sidebar,
.fdh-page-active #right-sidebar,
.single-fdh_player #left-sidebar,
.single-fdh_team #left-sidebar,
.single-fdh_coach #left-sidebar,
.single-fdh_competition #left-sidebar,
.single-fdh_venue #left-sidebar,
.single-fdh_country #left-sidebar,
.fdh-match-page #left-sidebar,
.fdh-page-active #left-sidebar {
    display: none !important;
}

/* Ensure GP site-content is full-width grid on entity pages */
.single-fdh_player .site-content,
.single-fdh_team .site-content,
.single-fdh_coach .site-content,
.single-fdh_competition .site-content,
.single-fdh_venue .site-content,
.single-fdh_country .site-content,
.fdh-match-page .site-content,
.fdh-page-active .site-content {
    display: block !important;
}

/* GeneratePress header/footer dark override */
.single-fdh_player .site-header,
.single-fdh_team .site-header,
.single-fdh_coach .site-header,
.single-fdh_competition .site-header,
.single-fdh_venue .site-header,
.single-fdh_country .site-header {
    background-color: var(--fdh-bg-deep);
    border-bottom: 1px solid var(--fdh-border);
}

/* Hide theme's default entry header — hero-header partial handles the title */
.single-fdh_player .entry-header,
.single-fdh_team .entry-header,
.single-fdh_coach .entry-header,
.single-fdh_competition .entry-header,
.single-fdh_venue .entry-header,
.single-fdh_country .entry-header,
.fdh-page-active .entry-header,
.single-fdh_player .page-header,
.single-fdh_team .page-header,
.single-fdh_coach .page-header,
.single-fdh_competition .page-header,
.single-fdh_venue .page-header,
.single-fdh_country .page-header,
.fdh-page-active .page-header {
    display: none !important;
}

/* ---------------------------------------------------------------
   Empty State
   --------------------------------------------------------------- */
.fdh-empty-state {
    padding: 40px 24px;
    text-align: center;
    color: var(--fdh-text-muted);
    font-style: italic;
    background: var(--fdh-bg-card);
    border-radius: var(--fdh-radius);
    border: 1px dashed var(--fdh-border-light);
}

/* ---------------------------------------------------------------
   Hero Header — Solid Midnight Blue (brand primary)
   --------------------------------------------------------------- */
.fdh-hero {
    position: relative;
    padding: 40px 44px;
    margin-bottom: 32px;
    background: #192250;
    border-radius: var(--fdh-radius-lg);
    border: none;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(25, 34, 80, 0.18), 0 2px 6px rgba(25, 34, 80, 0.10);
    color: #fff;
}

.fdh-hero__inner {
    position: relative;
    display: flex;
    gap: 28px;
    align-items: center;
    z-index: 1;
}

.fdh-hero__image {
    flex-shrink: 0;
}

.fdh-hero__img {
    width: 110px;
    height: 110px;
    border-radius: var(--fdh-radius);
    object-fit: cover;
    background: rgba(255, 255, 255, 0.08);
    border: 2px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.fdh-hero--team .fdh-hero__img,
.fdh-hero--competition .fdh-hero__img {
    border-radius: 0;
    object-fit: contain;
    border: none;
    background: none;
    box-shadow: none;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.35));
}

.fdh-hero--country .fdh-hero__img {
    border-radius: 6px;
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, 0.25);
}

.fdh-hero__content {
    flex: 1;
    min-width: 0;
}

.fdh-hero__title {
    margin: 0 0 8px;
    font-family: var(--fdh-font-heading);
    font-size: 2.15em;
    font-weight: 800;
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
    line-height: 1.12;
    letter-spacing: -0.02em;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

.fdh-hero__subtitle {
    margin: 0 0 16px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 1em;
    font-weight: 500;
}

.fdh-hero__badges {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.fdh-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 0.8em;
    font-weight: 600;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: #ffffff;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.fdh-hero__badge-label {
    color: rgba(255, 255, 255, 0.65);
    font-weight: 500;
}

.fdh-hero__badge-label::after {
    content: ':';
    margin-right: 3px;
}

/* -- Breadcrumbs ---------------------------------------------------- */
.fdh-breadcrumb {
    margin: 0;
    padding: 0 0 var(--fdh-space-sm);
}
.fdh-breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: var(--fdh-space-sm) var(--fdh-space-md);
    font-size: 0.8rem;
    letter-spacing: 0.01em;
    color: var(--fdh-text-muted);
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    box-shadow: var(--fdh-shadow-xs);
}
.fdh-breadcrumb__item {
    display: inline-flex;
    align-items: center;
    line-height: 1.4;
}
/* Chevron separator — inline SVG for crispness. */
.fdh-breadcrumb__item:not(:last-child)::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    margin: 0 var(--fdh-space-sm);
    opacity: 0.35;
    background: currentColor;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z' clip-rule='evenodd'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z' clip-rule='evenodd'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    flex-shrink: 0;
}
/* Home icon before first item. */
.fdh-breadcrumb__item:first-child::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-right: 5px;
    opacity: 0.5;
    background: currentColor;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M9.293 2.293a1 1 0 011.414 0l7 7A1 1 0 0117 11h-1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-3a1 1 0 00-1-1H9a1 1 0 00-1 1v3a1 1 0 01-1 1H5a1 1 0 01-1-1v-6H3a1 1 0 01-.707-1.707l7-7z' clip-rule='evenodd'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M9.293 2.293a1 1 0 011.414 0l7 7A1 1 0 0117 11h-1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-3a1 1 0 00-1-1H9a1 1 0 00-1 1v3a1 1 0 01-1 1H5a1 1 0 01-1-1v-6H3a1 1 0 01-.707-1.707l7-7z' clip-rule='evenodd'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    flex-shrink: 0;
}
.fdh-breadcrumb__item a {
    color: var(--fdh-text-secondary);
    text-decoration: none;
    transition: color var(--fdh-transition-fast);
    padding: 2px 0;
}
.fdh-breadcrumb__item a:hover {
    color: var(--fdh-primary);
}
/* Plain text crumb (no link available). */
.fdh-breadcrumb__item > span:not([aria-current]) {
    color: var(--fdh-text-muted);
}
/* Current page crumb. */
.fdh-breadcrumb__item span[aria-current] {
    color: var(--fdh-text);
    font-weight: 600;
}
@media (max-width: 768px) {
    .fdh-breadcrumb { padding: var(--fdh-space-sm) var(--fdh-space-sm) 0; }
    .fdh-breadcrumb__list { padding: 6px var(--fdh-space-sm); font-size: 0.75rem; }
    .fdh-breadcrumb__item:not(:last-child)::after { width: 12px; height: 12px; margin: 0 4px; }
    .fdh-breadcrumb__item:first-child::before { width: 12px; height: 12px; }
}

/* ---------------------------------------------------------------
   Entity Page Sections
   --------------------------------------------------------------- */
.fdh-entity__section,
.fdh-match__section {
    margin-bottom: 36px;
    max-width: 100%;
    overflow: hidden;
}

.fdh-entity-section__title,
.fdh-now-next__heading,
.fdh-standings-snapshot__heading,
.fdh-top-performers__heading {
    font-size: 0.85em;
    font-weight: 700;
    margin: 0 0 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--fdh-border-light);
    color: var(--fdh-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ---------------------------------------------------------------
   KPI Strip
   --------------------------------------------------------------- */
.fdh-kpi-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 14px;
    margin-bottom: 36px;
}

.fdh-kpi-strip__card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 20px 16px;
    text-align: center;
    box-shadow: var(--fdh-shadow-sm);
    transition: transform var(--fdh-transition), border-color var(--fdh-transition), box-shadow var(--fdh-transition);
    position: relative;
    overflow: hidden;
}

.fdh-kpi-strip__card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--fdh-primary);
    opacity: 0.35;
    transition: opacity var(--fdh-transition);
}

.fdh-kpi-strip__card:hover {
    border-color: var(--fdh-primary-dim);
    box-shadow: var(--fdh-shadow-md), 0 0 20px var(--fdh-primary-dim);
    transform: translateY(-3px);
}

.fdh-kpi-strip__card:hover::before {
    opacity: 1;
}

/* Legacy class support */
.fdh-kpi-strip__item {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 16px 12px;
    text-align: center;
}

.fdh-kpi-strip__value {
    display: block;
    font-size: 2rem;
    font-weight: 800;
    color: var(--fdh-text-bright);
    line-height: 1.2;
    font-family: var(--fdh-font-mono);
    font-variant-numeric: tabular-nums;
}

.fdh-kpi-strip__card--goals .fdh-kpi-strip__value {
    color: var(--fdh-primary);
}

.fdh-kpi-strip__card--rating .fdh-kpi-strip__value {
    color: var(--fdh-secondary);
}

.fdh-kpi-strip__label {
    display: block;
    font-size: 0.7em;
    color: var(--fdh-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 4px;
    font-weight: 600;
}

/* ---------------------------------------------------------------
   Matches List
   --------------------------------------------------------------- */
.fdh-matches {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fdh-matches__item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 16px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    text-decoration: none;
    color: var(--fdh-text);
    box-shadow: var(--fdh-shadow-sm);
    transition: transform var(--fdh-transition), box-shadow var(--fdh-transition), border-color var(--fdh-transition);
}

.fdh-matches__item:hover {
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-border-light);
    box-shadow: var(--fdh-shadow-md);
    transform: translateY(-2px);
}

.fdh-matches__item--live {
    border-left: 3px solid var(--fdh-live);
    animation: fdh-live-border-pulse 2s ease-in-out infinite;
}

@keyframes fdh-live-border-pulse {
    0%, 100% { border-left-color: var(--fdh-live); }
    50% { border-left-color: rgba(255, 32, 64, 0.4); }
}

.fdh-matches__meta {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 0.78em;
    color: var(--fdh-text-muted);
}

.fdh-matches__teams {
    display: flex;
    align-items: center;
    gap: 8px;
}

.fdh-matches__team {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

.fdh-matches__team--away {
    flex-direction: row-reverse;
    text-align: right;
}

.fdh-matches__team-name {
    font-weight: 700;
    font-size: 0.95em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--fdh-text);
}

.fdh-matches__score {
    display: flex;
    align-items: center;
    gap: 4px;
    font-weight: 800;
    font-size: 1.15em;
    min-width: 60px;
    justify-content: center;
    color: var(--fdh-text-bright);
    font-family: var(--fdh-font-mono);
    font-variant-numeric: tabular-nums;
}

.fdh-matches__score--live {
    color: var(--fdh-live);
    text-shadow: 0 0 12px rgba(255, 23, 68, 0.4);
}

.fdh-matches__kickoff-time {
    font-weight: 500;
    font-size: 0.9em;
    color: var(--fdh-text-muted);
}

.fdh-matches__live-badge {
    display: inline-block;
    padding: 2px 10px;
    background: var(--fdh-live);
    color: #fff;
    font-size: 0.65em;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-radius: 4px;
    animation: fdh-pulse-live 1.5s ease-in-out infinite;
}

@keyframes fdh-pulse-live {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

/* Matches list — TV inline with match row */
.fdh-matches__tv {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-left: auto;
    flex-shrink: 0;
    padding: 2px 8px 2px 6px;
    background: var(--fdh-overlay-light);
    border-radius: 20px;
    border: 1px solid var(--fdh-border-light);
}

.fdh-matches__tv-icon {
    flex-shrink: 0;
    color: var(--fdh-text-muted);
    opacity: 0.7;
}

.fdh-matches__tv .fdh-tv-badges {
    gap: 3px;
}

.fdh-matches__tv .fdh-tv-badges__logo {
    max-height: 14px;
    max-width: 48px;
}

.fdh-matches__tv .fdh-tv-badges__badge {
    font-size: 0.55rem;
    padding: 1px 4px;
}

/* ---------------------------------------------------------------
   TV Broadcast List (shortcode [football_tv])
   --------------------------------------------------------------- */
.fdh-tv {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    overflow: hidden;
}

.fdh-tv__group {
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-tv__group:last-child {
    border-bottom: none;
}

.fdh-tv__country-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
}

.fdh-tv__country-code {
    font-size: 0.7rem;
    font-weight: 800;
    color: var(--fdh-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    background: var(--fdh-overlay-light);
    padding: 2px 8px;
    border-radius: 4px;
    flex-shrink: 0;
    min-width: 28px;
    text-align: center;
}

.fdh-tv__channels {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.fdh-tv__channel {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: var(--fdh-radius-xs);
    text-decoration: none;
    transition: opacity var(--fdh-transition-fast);
    white-space: nowrap;
}

.fdh-tv__channel:hover {
    opacity: 0.85;
}

.fdh-tv__channel--has-logo {
    background: transparent;
    padding: 2px;
}

body.fdh-theme-dark .fdh-tv__channel--has-logo {
    background: rgba(255, 255, 255, 0.92);
    border-radius: var(--fdh-radius-xs);
    padding: 3px 6px;
}

.fdh-tv__channel-logo {
    display: block;
    height: auto;
    width: auto;
    max-height: 20px;
    max-width: 72px;
    object-fit: contain;
}

/* ---------------------------------------------------------------
   Standings Table
   --------------------------------------------------------------- */
.fdh-standings,
.fdh-standings-snapshot {
    background: var(--fdh-bg-card);
    border-radius: var(--fdh-radius);
    border: 1px solid var(--fdh-border);
    overflow: hidden;
}

.fdh-standings__table,
.fdh-standings-snapshot__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88em;
}

.fdh-standings__table thead th,
.fdh-standings-snapshot__table thead th {
    padding: 12px 16px;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted);
    border-bottom: 1px solid var(--fdh-border-light);
    text-align: center;
    background: var(--fdh-bg-elevated);
    position: sticky;
    top: 0;
    z-index: 2;
}

.fdh-standings__col-team,
.fdh-standings-snapshot__col-team {
    text-align: left !important;
}

.fdh-standings__table tbody td,
.fdh-standings-snapshot__table tbody td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--fdh-divider);
    text-align: center;
    vertical-align: middle;
    color: var(--fdh-text-secondary);
    font-variant-numeric: tabular-nums;
    transition: background var(--fdh-transition-fast);
}

.fdh-standings__table tbody tr:nth-child(even) td,
.fdh-standings-snapshot__table tbody tr:nth-child(even) td {
    background: var(--fdh-overlay-subtle);
}

.fdh-standings__table tbody tr:last-child td,
.fdh-standings-snapshot__table tbody tr:last-child td {
    border-bottom: none;
}

.fdh-standings__table tbody tr:hover td,
.fdh-standings-snapshot__table tbody tr:hover td {
    background: var(--fdh-overlay-hover);
    box-shadow: inset 0 0 0 1px var(--fdh-overlay-light);
}

.fdh-standings__table tbody td:first-child,
.fdh-standings-snapshot__col-pos {
    font-weight: 700;
    color: var(--fdh-text-muted);
    width: 32px;
}

.fdh-standings__team-link,
.fdh-standings-snapshot__team-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--fdh-text);
    font-weight: 600;
}

.fdh-standings__team-link:hover,
.fdh-standings-snapshot__team-link:hover {
    color: var(--fdh-primary);
}

.fdh-standings__col-pts {
    font-weight: 800;
    color: var(--fdh-text-bright) !important;
}

.fdh-standings-snapshot__row--highlight td {
    background: var(--fdh-primary-dim) !important;
}

.fdh-standings-snapshot__row--highlight .fdh-standings-snapshot__team-link {
    color: var(--fdh-primary);
}

/* Form dots */
.fdh-standings__form { display: inline-flex; gap: 4px; align-items: center; }
.fdh-standings__form-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; }
.fdh-standings__form-dot--win  { background: var(--fdh-win); box-shadow: 0 0 4px var(--fdh-win); }
.fdh-standings__form-dot--draw { background: var(--fdh-draw); box-shadow: 0 0 3px rgba(200, 139, 26, 0.3); }
.fdh-standings__form-dot--loss { background: var(--fdh-loss); box-shadow: 0 0 3px rgba(204, 41, 41, 0.3); }

/* ---------------------------------------------------------------
   Scorers / Assists / Discipline Tables
   --------------------------------------------------------------- */
.fdh-scorers, .fdh-assists, .fdh-discipline {
    background: var(--fdh-bg-card);
    border-radius: var(--fdh-radius);
    border: 1px solid var(--fdh-border);
    overflow: hidden;
}

.fdh-scorers__table, .fdh-assists__table, .fdh-discipline__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88em;
}

.fdh-scorers__table thead th, .fdh-assists__table thead th, .fdh-discipline__table thead th {
    padding: 12px 16px;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted);
    border-bottom: 1px solid var(--fdh-border-light);
    text-align: center;
    background: var(--fdh-bg-elevated);
    position: sticky;
    top: 0;
    z-index: 2;
}

.fdh-scorers__col-player, .fdh-assists__col-player, .fdh-discipline__col-player,
.fdh-scorers__col-team, .fdh-assists__col-team, .fdh-discipline__col-team {
    text-align: left !important;
}

.fdh-scorers__table tbody td, .fdh-assists__table tbody td, .fdh-discipline__table tbody td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--fdh-divider);
    text-align: center;
    vertical-align: middle;
    color: var(--fdh-text-secondary);
    font-variant-numeric: tabular-nums;
    transition: background var(--fdh-transition-fast);
}

.fdh-scorers__table tbody tr:nth-child(even) td,
.fdh-assists__table tbody tr:nth-child(even) td,
.fdh-discipline__table tbody tr:nth-child(even) td {
    background: var(--fdh-overlay-subtle);
}

.fdh-scorers__table tbody tr:hover td, .fdh-assists__table tbody tr:hover td, .fdh-discipline__table tbody tr:hover td {
    background: var(--fdh-overlay-hover);
    box-shadow: inset 0 0 0 1px var(--fdh-overlay-light);
}

.fdh-scorers__player-link, .fdh-assists__player-link, .fdh-scorers__team-link, .fdh-assists__team-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--fdh-text);
    font-weight: 600;
}

.fdh-scorers__player-link:hover, .fdh-assists__player-link:hover { color: var(--fdh-primary); }

.fdh-scorers__player-photo, .fdh-assists__player-photo, .fdh-discipline__player-photo {
    border-radius: 50%;
    border: 2px solid var(--fdh-border-light);
}

/* ---------------------------------------------------------------
   Events Timeline
   --------------------------------------------------------------- */
.fdh-events-timeline {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 20px;
}

.fdh-events-timeline__heading {
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text);
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--fdh-border-light);
}

/* ---- Team header row ---- */
.fdh-events-timeline__teams {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--fdh-border-light);
}

.fdh-events-timeline__team {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--fdh-text-secondary);
}

.fdh-events-timeline__team img {
    border-radius: 2px;
    flex-shrink: 0;
}

.fdh-events-timeline__team--home {
    justify-content: flex-end;
    padding-right: 12px;
}

.fdh-events-timeline__team--away {
    justify-content: flex-start;
    padding-left: 12px;
}

.fdh-events-timeline__team-spacer {
    min-width: 44px;
}

/* ---- Split timeline: home | center | away ---- */
.fdh-events-timeline__list {
    position: relative;
}

.fdh-events-timeline__list::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--fdh-border-light);
    transform: translateX(-50%);
}

.fdh-event {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0;
    align-items: center;
    padding: 6px 0;
    position: relative;
}

.fdh-event__side {
    padding: 4px 12px;
    min-height: 24px;
}

.fdh-event__side--home {
    text-align: right;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-end;
    gap: 6px;
}

.fdh-event__side--away {
    text-align: left;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-start;
    gap: 6px;
}

/* Home side: subst text aligns right */
.fdh-event--home .fdh-event__subst {
    align-items: flex-end;
    text-align: right;
}

.fdh-event--home .fdh-event__subst-in,
.fdh-event--home .fdh-event__subst-out {
    justify-content: flex-end;
}

.fdh-event__center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    position: relative;
    z-index: 1;
    padding: 0 4px;
    min-width: 44px;
}

.fdh-event__minute {
    font-weight: 800;
    font-size: 0.75em;
    color: var(--fdh-text-muted);
    font-family: var(--fdh-font-mono);
    line-height: 1;
    white-space: nowrap;
}

/* ---- Event icon base ---- */
.fdh-event__icon {
    position: relative;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    border-radius: 50%;
    background: var(--fdh-bg-deep);
    border: 2px solid var(--fdh-border-light);
    flex-shrink: 0;
}

/* ---- Goal: football icon ---- */
.fdh-event__icon--goal {
    border: none;
    background: none;
    font-size: 16px;
    width: 20px;
    height: 20px;
}
.fdh-event__icon--goal::before {
    content: '\26BD'; /* ⚽ */
}

/* ---- Penalty missed ---- */
.fdh-event__icon--penalty-missed {
    border: none;
    background: none;
    font-size: 16px;
    width: 20px;
    height: 20px;
    opacity: 0.5;
}
.fdh-event__icon--penalty-missed::before {
    content: '\26BD'; /* ⚽ */
}
.fdh-event__icon--penalty-missed::after {
    content: '\2715'; /* ✕ */
    position: absolute;
    font-size: 11px;
    font-weight: 900;
    color: var(--fdh-loss);
    top: -2px;
    right: -3px;
}

/* ---- Cards: rectangular card shape ---- */
.fdh-event__icon--card,
.fdh-event__icon--yellow-card,
.fdh-event__icon--red-card {
    border-radius: 2px;
    width: 12px;
    height: 16px;
    border: none;
}

.fdh-event__icon--card,
.fdh-event__icon--yellow-card {
    background: var(--fdh-card-yellow);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.fdh-event__icon--red-card {
    background: var(--fdh-card-red);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2), 0 0 8px rgba(229, 57, 53, 0.3);
}

/* ---- Substitution: horizontal arrows ---- */
.fdh-event__icon--subst {
    border: none;
    background: none;
    width: 20px;
    height: 20px;
    flex-direction: column;
    gap: 0;
    line-height: 1;
}
.fdh-event__icon--subst::before {
    content: '\2192'; /* → */
    font-size: 10px;
    font-weight: 900;
    color: var(--fdh-subst-in);
}
.fdh-event__icon--subst::after {
    content: '\2190'; /* ← */
    font-size: 10px;
    font-weight: 900;
    color: var(--fdh-subst-out);
}

/* ---- VAR ---- */
.fdh-event__icon--var {
    border-radius: 2px;
    background: var(--fdh-bg-elevated);
    border: 1px solid var(--fdh-border);
    font-size: 6px;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: var(--fdh-text-muted);
    width: 22px;
    height: 14px;
}
.fdh-event__icon--var::before {
    content: 'VAR';
}

/* ---- Event content ---- */
.fdh-event__player {
    font-weight: 700;
    font-size: 0.9em;
    color: var(--fdh-text);
}

.fdh-event__detail {
    font-size: 0.82em;
    color: var(--fdh-text-muted);
}

/* ---- Substitution in/out layout ---- */
.fdh-event__subst {
    display: flex;
    flex-direction: column;
    gap: 1px;
    font-size: 0.92em;
}

.fdh-event__subst-in,
.fdh-event__subst-out {
    display: flex;
    align-items: center;
    gap: 5px;
}

.fdh-event__subst-in {
    font-weight: 700;
    color: var(--fdh-text);
}

.fdh-event__subst-out {
    font-weight: 400;
    color: var(--fdh-text-muted);
    font-size: 0.9em;
}

.fdh-event__subst-arrow {
    font-size: 10px;
    line-height: 1;
    display: inline-block;
    font-weight: 900;
}

.fdh-event__subst-arrow--in {
    color: var(--fdh-subst-in);
}

.fdh-event__subst-arrow--out {
    color: var(--fdh-subst-out);
}

/* ---------------------------------------------------------------
   Lineups Grid
   --------------------------------------------------------------- */
.fdh-lineups {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 28px;
}

.fdh-lineups__heading {
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--fdh-border-light);
}

.fdh-lineups__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.fdh-lineups__column {
    min-width: 0;
}

.fdh-lineups__team-name {
    font-size: 0.82em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-primary);
    margin: 0 0 10px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--fdh-primary);
}

.fdh-lineups__section {
    margin-bottom: 0;
}

.fdh-lineups__section--subs {
    margin-top: 14px;
    padding-top: 10px;
    border-top: 1px solid var(--fdh-border-light);
}

.fdh-lineups__section-title {
    margin: 0 0 6px;
    font-size: 0.72em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted);
}

.fdh-lineups__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.fdh-lineups__list--subs .fdh-lineups__player {
    opacity: 0.7;
}

.fdh-lineups__player {
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 7px 0;
    font-size: 0.88em;
    border-bottom: 1px solid var(--fdh-divider);
    color: var(--fdh-text-secondary);
}

.fdh-lineups__player:last-child {
    border-bottom: none;
}

.fdh-lineups__number {
    width: 26px;
    flex-shrink: 0;
    text-align: center;
    font-weight: 800;
    color: var(--fdh-text-muted);
    font-size: 0.85em;
    font-family: var(--fdh-font-mono);
}

.fdh-lineups__name {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-lineups__name a {
    color: var(--fdh-text-secondary);
}

.fdh-lineups__name a:hover {
    color: var(--fdh-primary);
}

.fdh-lineups__position {
    flex-shrink: 0;
    font-size: 0.75em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text-muted);
    background: var(--fdh-bg-elevated);
    padding: 2px 8px;
    border-radius: 4px;
}

/* ---------------------------------------------------------------
   Lineups: Formation Badge & Coach
   --------------------------------------------------------------- */
.fdh-lineups__formation {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
}

.fdh-lineups__formation-label {
    font-size: 0.7em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted);
}

.fdh-lineups__formation-value {
    font-size: 0.85em;
    font-weight: 800;
    font-family: var(--fdh-font-mono);
    color: var(--fdh-text-bright);
    background: var(--fdh-bg-elevated);
    padding: 3px 10px;
    border-radius: 4px;
    border: 1px solid var(--fdh-border-light);
    letter-spacing: 0.04em;
}

.fdh-lineups__coach {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--fdh-border-light);
    font-size: 0.82em;
}

.fdh-lineups__coach-photo {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--fdh-border-light);
}

.fdh-lineups__coach-label {
    color: var(--fdh-text-muted);
    font-weight: 600;
    font-size: 0.88em;
}

.fdh-lineups__coach-name {
    color: var(--fdh-text-secondary);
    font-weight: 600;
}

/* ---------------------------------------------------------------
   Match Statistics
   --------------------------------------------------------------- */
.fdh-match-stats {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 28px;
}

.fdh-match-stats__heading {
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--fdh-border-light);
}

.fdh-match-stats__header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
}

.fdh-match-stats__team-label {
    font-size: 0.78em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-primary);
}

.fdh-match-stats__list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.fdh-match-stats__row {
    display: grid;
    grid-template-columns: 50px 1fr 50px;
    gap: 10px;
    align-items: center;
}

.fdh-match-stats__value {
    font-size: 0.92em;
    font-weight: 700;
    color: var(--fdh-text);
    font-family: var(--fdh-font-mono);
}

.fdh-match-stats__value--home {
    text-align: right;
}

.fdh-match-stats__value--away {
    text-align: left;
}

.fdh-match-stats__center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.fdh-match-stats__label {
    font-size: 0.72em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text-muted);
}

.fdh-match-stats__bars {
    display: flex;
    width: 100%;
    height: 6px;
    gap: 2px;
    border-radius: var(--fdh-radius-xs);
    overflow: hidden;
}

.fdh-match-stats__bar {
    height: 100%;
    border-radius: var(--fdh-radius-xs);
    transition: width 0.4s ease;
    min-width: 2px;
}

.fdh-match-stats__bar--home {
    background: rgba(var(--fdh-secondary-rgb), 0.3);
    margin-left: auto;
}

.fdh-match-stats__bar--away {
    background: rgba(var(--fdh-accent-rgb, 255, 109, 0), 0.3);
}

.fdh-match-stats__bar--home.fdh-match-stats__bar--lead {
    background: var(--fdh-secondary);
    box-shadow: 0 0 6px rgba(var(--fdh-secondary-rgb), 0.35);
}

.fdh-match-stats__bar--away.fdh-match-stats__bar--lead {
    background: var(--fdh-accent);
    box-shadow: 0 0 6px rgba(var(--fdh-accent-rgb, 255, 109, 0), 0.35);
}

/* ---------------------------------------------------------------
   AI Content Block
   --------------------------------------------------------------- */
.fdh-ai-content {
    margin: 32px 0; padding: 28px 32px;
    background: var(--fdh-bg-card); border-radius: var(--fdh-radius);
    border: 1px solid var(--fdh-border); border-left: 3px solid var(--fdh-primary);
    line-height: 1.8;
}

.fdh-ai-content__heading {
    margin: 0 0 18px; font-size: 0.85em; color: var(--fdh-primary);
    text-transform: uppercase; letter-spacing: 0.04em; font-weight: 700;
    padding-bottom: 12px; border-bottom: 1px solid var(--fdh-border);
}

.fdh-ai-content__body { color: var(--fdh-text-secondary); font-size: 0.95em; }
.fdh-ai-content__body p { margin: 0 0 18px; }
.fdh-ai-content__body p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------
   Now & Next (Team page)
   --------------------------------------------------------------- */
.fdh-now-next { margin-bottom: 32px; }

.fdh-now-next__section-title {
    font-size: 0.78em; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.06em; color: var(--fdh-text-muted); margin: 0 0 10px;
}

.fdh-now-next__match {
    display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
    padding: 14px 20px; background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border); border-radius: var(--fdh-radius);
    text-decoration: none; color: var(--fdh-text);
    transition: all 0.2s ease; margin-bottom: 6px;
}

.fdh-now-next__match:hover {
    background: var(--fdh-bg-card-hover); border-color: var(--fdh-border-light);
}

.fdh-now-next__date { font-size: 0.8em; color: var(--fdh-text-muted); font-weight: 500; min-width: 70px; }

.fdh-now-next__time {
    font-size: 0.85em; color: var(--fdh-secondary);
    font-weight: 700; font-family: var(--fdh-font-mono);
}

.fdh-now-next__teams { display: flex; align-items: center; gap: 8px; flex: 1; }

.fdh-now-next__team { display: flex; align-items: center; gap: 6px; font-weight: 600; font-size: 0.92em; }
.fdh-now-next__team--away { flex-direction: row-reverse; }

.fdh-now-next__score {
    font-weight: 800; font-size: 1.1em; color: var(--fdh-text-bright);
    min-width: 50px; text-align: center; font-family: var(--fdh-font-mono);
}

.fdh-now-next__vs {
    font-size: 0.75em; color: var(--fdh-text-muted); text-transform: uppercase;
    font-weight: 700; min-width: 30px; text-align: center;
}

.fdh-now-next__league { font-size: 0.78em; color: var(--fdh-text-muted); }

/* Now & Next — TV integrated pill */
.fdh-now-next__tv {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    margin-left: auto;
    padding: 2px 8px 2px 5px;
    background: var(--fdh-overlay-light);
    border-radius: 20px;
    border: 1px solid var(--fdh-border-light);
}

.fdh-now-next__tv-icon {
    flex-shrink: 0;
    color: var(--fdh-text-muted);
    opacity: 0.7;
}

.fdh-now-next__tv .fdh-tv-badges {
    gap: 3px;
}

.fdh-now-next__tv .fdh-tv-badges__logo {
    max-height: 14px;
    max-width: 48px;
}

.fdh-now-next__tv .fdh-tv-badges__badge {
    font-size: 0.55rem;
    padding: 1px 4px;
}

/* ---------------------------------------------------------------
   Top Performers
   --------------------------------------------------------------- */
.fdh-top-performers {
    background: var(--fdh-bg-card); border-radius: var(--fdh-radius);
    border: 1px solid var(--fdh-border); padding: 22px 24px;
}

.fdh-top-performers__list { list-style: none; padding: 0; margin: 0; }

.fdh-top-performers__item {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 0; border-bottom: 1px solid var(--fdh-divider);
    transition: background 0.15s ease;
}

.fdh-top-performers__item:last-child { border-bottom: none; }

.fdh-top-performers__rank {
    width: 28px; font-weight: 800; color: var(--fdh-text-muted);
    text-align: center; font-family: var(--fdh-font-mono); font-size: 0.9em;
}

.fdh-top-performers__photo {
    width: 36px; height: 36px; border-radius: 50%;
    object-fit: cover; border: 2px solid var(--fdh-border-light);
}

.fdh-top-performers__name {
    flex: 1; font-weight: 700; color: var(--fdh-text); text-decoration: none;
}

.fdh-top-performers__name:hover { color: var(--fdh-primary); }

.fdh-top-performers__stats { display: flex; gap: 12px; font-size: 0.82em; }
.fdh-top-performers__stat { color: var(--fdh-text-muted); font-weight: 600; }

/* ---------------------------------------------------------------
   Match Virtual Page
   --------------------------------------------------------------- */

/* Normalise width for ALL direct-child sections on match pages.
   Ensures .fdh-match-banner, .fdh-match-info, .fdh-match-form,
   .fdh-match__section (ratings), and every .fdh-entity__section
   all occupy the same consistent width within the entity wrapper. */
.fdh-entity--match > .fdh-match-banner,
.fdh-entity--match > .fdh-match-info,
.fdh-entity--match > .fdh-match-form,
.fdh-entity--match > .fdh-match__section,
.fdh-entity--match > .fdh-entity__section {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}

.fdh-match-banner {
    text-align: center;
    padding: 44px 36px 36px;
    margin-bottom: 32px;
    background: #192250;
    border-radius: var(--fdh-radius-lg);
    border: none;
    color: #fff;
    box-shadow: 0 8px 24px rgba(25, 34, 80, 0.18), 0 2px 6px rgba(25, 34, 80, 0.10);
    position: relative;
    overflow: hidden;
}

.fdh-match-banner--live {
    box-shadow: 0 8px 24px rgba(25, 34, 80, 0.2), 0 0 30px rgba(255, 23, 68, 0.25);
}

.fdh-match-banner__meta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px;
    font-size: 0.88em;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 32px;
    z-index: 1;
}

.fdh-match-banner__league-logo {
    vertical-align: middle;
    margin-right: 4px;
    object-fit: contain;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
}

.fdh-match-banner__league {
    font-weight: 600;
    color: rgba(255, 255, 255, 0.92);
}

.fdh-match-banner__round {
    color: rgba(255, 255, 255, 0.7);
}

.fdh-match-banner__round::before {
    content: '\00b7';
    margin: 0 6px;
}

.fdh-match-banner__date {
    display: block;
    width: 100%;
    margin-top: 4px;
    font-size: 0.92em;
    color: rgba(255, 255, 255, 0.75);
}

.fdh-match-banner__teams {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 36px;
    margin-bottom: 20px;
}

.fdh-match-banner__team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    flex: 1;
    max-width: 200px;
}

.fdh-match-banner__teams {
    position: relative;
    z-index: 1;
}

.fdh-match-banner__team-logo {
    width: 80px;
    height: 80px;
    object-fit: contain;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.35));
}

.fdh-match-banner__team-name {
    font-size: 1.15em;
    font-weight: 800;
    color: #ffffff;
    text-decoration: none;
    transition: color 0.2s ease;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

a.fdh-match-banner__team-name:hover {
    color: rgba(255, 255, 255, 0.85);
}

.fdh-match-banner__position {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.7);
    margin-top: 2px;
}

.fdh-match-banner__center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    min-width: 100px;
    position: relative;
    z-index: 1;
}

.fdh-match-banner__status {
    font-size: 0.72em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 5px 14px;
    border-radius: 999px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.fdh-match-banner__status--live {
    color: #ffffff;
    background: rgba(255, 23, 68, 0.85);
    border-color: rgba(255, 23, 68, 0.9);
    animation: fdh-pulse-live 1.5s ease-in-out infinite;
}

.fdh-match-banner__status--ft,
.fdh-match-banner__status--aet,
.fdh-match-banner__status--pen {
    color: #ffffff;
    background: rgba(46, 125, 50, 0.45);
    border-color: rgba(76, 175, 80, 0.55);
}

.fdh-match-banner__status--ns {
    color: #ffffff;
    background: rgba(67, 116, 186, 0.35);
    border-color: rgba(142, 181, 232, 0.45);
}

.fdh-match-banner__details {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    font-size: 0.82em;
    color: rgba(255, 255, 255, 0.75);
    z-index: 1;
}

.fdh-match-banner__venue::before {
    content: '\1F3DF\FE0F';
    margin-right: 4px;
}

.fdh-match-banner__referee::before {
    content: '\1F9D1\200D\2696\FE0F';
    margin-right: 4px;
}

/* ---------------------------------------------------------------
   Live Score (ESI)
   --------------------------------------------------------------- */
.fdh-live-score {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 900;
    font-size: 2.8em;
    font-family: var(--fdh-font-mono);
    letter-spacing: 4px;
    color: #ffffff;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.fdh-live-score--live {
    color: #ff5a7a;
    text-shadow: 0 0 20px rgba(255, 90, 122, 0.55);
}

.fdh-live-score__sep {
    font-size: 0.6em;
    opacity: 0.4;
}

.fdh-live-score__status {
    font-size: 0.35em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* Match page section styling */
.fdh-entity--match .fdh-entity__section {
    margin-bottom: 32px;
}

.fdh-entity--match .fdh-entity__section-title {
    font-family: var(--fdh-font-heading);
    font-size: 0.85em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fdh-text);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid transparent;
    border-image: linear-gradient(90deg, var(--fdh-accent), var(--fdh-primary), transparent) 1;
}

/* H2H section card */
.fdh-entity__section--h2h .fdh-matches {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    overflow: hidden;
}

.fdh-entity__section--h2h .fdh-matches__item {
    border-radius: 0;
    border: none;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-entity__section--h2h .fdh-matches__item:last-child {
    border-bottom: none;
}

/* -- H2H Aggregate Summary ------------------------------------------ */
.fdh-h2h-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    padding: 12px 16px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    margin-bottom: 12px;
    font-size: 0.88rem;
}
.fdh-h2h-summary__count {
    font-weight: 700;
    color: var(--fdh-text);
}
.fdh-h2h-summary__record {
    color: var(--fdh-text-secondary);
}
.fdh-h2h-summary__record strong {
    color: var(--fdh-text);
}
.fdh-h2h-summary__goals {
    color: var(--fdh-text-muted);
    font-size: 0.82rem;
}

/* -- Champions Table (Competition page) ----------------------------- */
.fdh-champions__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}
.fdh-champions__table thead th {
    text-align: left;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fdh-text-muted);
    padding: 8px 12px;
    border-bottom: 2px solid var(--fdh-border);
}
.fdh-champions__table tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--fdh-divider, var(--fdh-border));
}
.fdh-champions__table tbody tr:last-child td {
    border-bottom: none;
}
.fdh-champions__col-season {
    width: 100px;
    font-weight: 600;
    font-family: var(--fdh-font-mono);
}
.fdh-champions__team-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--fdh-text);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.15s;
}
.fdh-champions__team-link:hover {
    color: var(--fdh-primary);
}
.fdh-champions__col-note {
    color: var(--fdh-text-muted);
    font-size: 0.82em;
}

/* ---------------------------------------------------------------
   Match Injuries (upcoming matches)
   --------------------------------------------------------------- */
.fdh-match-injuries {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.fdh-match-injuries__team-name {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1em;
    font-weight: 700;
    color: var(--fdh-text-bright);
    margin: 0 0 12px;
}

.fdh-match-injuries__team-logo {
    flex-shrink: 0;
    border-radius: 2px;
}

.fdh-match-injuries__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.fdh-match-injuries__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--fdh-overlay-subtle);
    border-radius: var(--fdh-radius);
    border-left: 3px solid var(--fdh-live, #ff1744);
}

.fdh-match-injuries__player-photo {
    flex-shrink: 0;
    border-radius: 50%;
    object-fit: cover;
}

.fdh-match-injuries__player-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.fdh-match-injuries__player-name {
    font-weight: 600;
    color: var(--fdh-text-bright);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

a.fdh-match-injuries__player-name:hover {
    color: var(--fdh-accent);
}

.fdh-match-injuries__detail {
    font-size: 0.82em;
    color: var(--fdh-text-muted);
}

.fdh-match-injuries__none {
    color: var(--fdh-text-muted);
    font-size: 0.9em;
    font-style: italic;
    margin: 0;
}

@media (max-width: 600px) {
    .fdh-match-injuries {
        grid-template-columns: 1fr;
    }
}

/* ---------------------------------------------------------------
   Search
   --------------------------------------------------------------- */
.fdh-search__form { display: flex; gap: 8px; margin-bottom: 20px; }

.fdh-search__input {
    flex: 1; padding: 12px 16px;
    background: var(--fdh-bg-input); border: 1px solid var(--fdh-border-light);
    border-radius: var(--fdh-radius); color: var(--fdh-text);
    font-size: 0.95em; outline: none; transition: border-color 0.2s ease;
}

.fdh-search__input:focus {
    border-color: var(--fdh-primary); box-shadow: 0 0 0 3px var(--fdh-primary-dim);
}

.fdh-search__button {
    padding: 12px 24px; background: var(--fdh-primary); color: var(--fdh-bg);
    border: none; border-radius: var(--fdh-radius); font-weight: 700;
    cursor: pointer; transition: all 0.2s ease;
}

.fdh-search__button:hover { background: var(--fdh-secondary); box-shadow: 0 0 16px var(--fdh-primary-glow); }

/* ---------------------------------------------------------------
   Archive Filter Bar
   --------------------------------------------------------------- */
.fdh-filter-bar {
    margin: 0 0 24px;
    padding: 16px 20px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
}

.fdh-filter-bar__row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.fdh-filter-bar__field {
    flex: 0 1 auto;
    min-width: 140px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fdh-filter-bar__field--search {
    flex: 1 1 200px;
    min-width: 180px;
}

.fdh-filter-bar__label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fdh-text-muted);
}

.fdh-filter-bar__input {
    width: 100%;
    padding: 9px 14px;
    background: var(--fdh-bg-input);
    border: 1px solid var(--fdh-border-light);
    border-radius: var(--fdh-radius);
    color: var(--fdh-text);
    font-size: 0.88rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.fdh-filter-bar__input:focus {
    outline: none;
    border-color: var(--fdh-primary);
    box-shadow: 0 0 0 3px var(--fdh-primary-dim);
}

.fdh-filter-bar__input::placeholder {
    color: var(--fdh-text-muted);
}

.fdh-filter-bar__select {
    width: 100%;
    padding: 9px 32px 9px 12px;
    background: var(--fdh-bg-input);
    border: 1px solid var(--fdh-border-light);
    border-radius: var(--fdh-radius);
    color: var(--fdh-text);
    font-size: 0.84rem;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239ca3af' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.fdh-filter-bar__select:focus {
    outline: none;
    border-color: var(--fdh-primary);
    box-shadow: 0 0 0 3px var(--fdh-primary-dim);
}

.fdh-filter-bar__select:hover {
    border-color: var(--fdh-primary-dim);
}

.fdh-filter-bar__reset {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 14px;
    background: var(--fdh-bg-elevated);
    border: 1px solid var(--fdh-border-light);
    border-radius: var(--fdh-radius);
    color: var(--fdh-text-secondary);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.fdh-filter-bar__reset:hover {
    background: var(--fdh-primary-dim);
    border-color: var(--fdh-primary);
    color: var(--fdh-primary);
}

.fdh-filter-bar__reset svg {
    flex-shrink: 0;
}

.fdh-filter-bar__count {
    margin-top: 10px;
    font-size: 0.82rem;
    color: var(--fdh-text-muted);
}

.fdh-filter-bar__count strong {
    color: var(--fdh-text);
    font-weight: 700;
}

.fdh-filter-bar__empty[hidden] {
    display: none;
}

.fdh-filter-bar__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
    text-align: center;
    color: var(--fdh-text-muted);
}

.fdh-filter-bar__empty svg {
    margin-bottom: 12px;
    opacity: 0.4;
}

.fdh-filter-bar__empty p {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 500;
}

/* ---------------------------------------------------------------
   Competition Archive – Country Blocks, Level Groups, Cards
   --------------------------------------------------------------- */

/* --- Country quick-nav (horizontal scrollable pills) --- */
.fdh-comp-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 28px;
    padding: 16px 0;
    border-bottom: 1px solid var(--fdh-border);
}

.fdh-comp-nav__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: 20px;
    color: var(--fdh-text-secondary);
    font-size: 0.8rem;
    font-weight: 500;
    text-decoration: none;
    transition: all var(--fdh-transition-fast);
    white-space: nowrap;
}

.fdh-comp-nav__item:hover {
    background: var(--fdh-primary-dim);
    border-color: var(--fdh-primary);
    color: var(--fdh-primary);
    transform: translateY(-1px);
    box-shadow: var(--fdh-shadow-xs);
}

.fdh-comp-nav__flag {
    border-radius: 2px;
    flex-shrink: 0;
}

.fdh-comp-nav__name {
    line-height: 1;
}

.fdh-comp-nav__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 10px;
    background: var(--fdh-bg-elevated);
    color: var(--fdh-text-muted);
    font-size: 0.7rem;
    font-weight: 600;
    line-height: 1;
}

.fdh-comp-nav__item:hover .fdh-comp-nav__count {
    background: var(--fdh-primary);
    color: #fff;
}

/* --- Country block (card wrapper per country) --- */
.fdh-country-block {
    margin-bottom: 32px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    box-shadow: var(--fdh-shadow-sm);
    overflow: hidden;
}

.fdh-country-block__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 24px;
    background: var(--fdh-bg-elevated);
    border-bottom: 1px solid var(--fdh-border);
}

.fdh-country-block__title-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.fdh-country-block__flag {
    border-radius: 3px;
    flex-shrink: 0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.fdh-country-block__name {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--fdh-text);
    line-height: 1.3;
}

.fdh-country-block__name-link {
    color: inherit;
    text-decoration: none;
    transition: color var(--fdh-transition-fast);
}

.fdh-country-block__name-link:hover {
    color: var(--fdh-primary);
}

.fdh-country-block__meta {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--fdh-text-muted);
    white-space: nowrap;
}

.fdh-country-block__body {
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* --- Level group (sub-section for each division / cups) --- */
.fdh-level-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.fdh-level-group__label {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-level-group__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    flex-shrink: 0;
}

.fdh-level-group__icon--1 {
    background: var(--fdh-primary-dim);
    color: var(--fdh-primary);
}

.fdh-level-group__icon--2 {
    background: var(--fdh-secondary-dim);
    color: var(--fdh-secondary);
}

.fdh-level-group__icon--3 {
    background: rgba(var(--fdh-secondary-rgb), 0.06);
    color: rgba(var(--fdh-secondary-rgb), 0.6);
}

.fdh-level-group__icon--cup {
    background: var(--fdh-accent-dim);
    color: var(--fdh-accent);
}

.fdh-level-group__text {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--fdh-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fdh-level-group__label--cup {
    border-bottom-style: dashed;
}

.fdh-level-group__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
}

/* --- Individual competition card --- */
.fdh-comp-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: var(--fdh-bg);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    transition: transform var(--fdh-transition-fast), box-shadow var(--fdh-transition-fast), border-color var(--fdh-transition-fast), background var(--fdh-transition-fast);
    cursor: pointer;
}

.fdh-comp-card:hover {
    transform: translateY(-2px);
    border-color: rgba(var(--fdh-primary-rgb), 0.25);
    background: var(--fdh-bg-card);
    box-shadow: var(--fdh-shadow-md);
}

/* --- Card header (logo) --- */
.fdh-comp-card__header {
    flex-shrink: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.fdh-comp-card__logo-ring {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--fdh-bg-card);
    border: 2px solid var(--fdh-border);
    overflow: hidden;
    transition: border-color var(--fdh-transition-fast), box-shadow var(--fdh-transition-fast);
}

.fdh-comp-card:hover .fdh-comp-card__logo-ring {
    border-color: rgba(var(--fdh-primary-rgb), 0.25);
    box-shadow: 0 0 0 3px var(--fdh-primary-dim);
}

.fdh-comp-card__logo {
    width: 32px;
    height: 32px;
    object-fit: contain;
    filter: var(--fdh-logo-shadow);
}

.fdh-comp-card__logo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fdh-text-muted);
    opacity: 0.4;
}

/* --- Card body --- */
.fdh-comp-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fdh-comp-card__name {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--fdh-text-primary);
}

/* Stretched link: entire card clickable */
.fdh-comp-card__link {
    color: inherit;
    text-decoration: none;
}

.fdh-comp-card__link::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: var(--fdh-radius);
}

/* --- Meta chips --- */
.fdh-comp-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.fdh-comp-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 10px;
    background: var(--fdh-bg-elevated);
    color: var(--fdh-text-secondary);
    font-size: 0.7rem;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
}

.fdh-comp-card__chip svg {
    flex-shrink: 0;
    opacity: 0.55;
}

/* --- Arrow indicator --- */
.fdh-comp-card__arrow {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--fdh-bg-elevated);
    color: var(--fdh-text-muted);
    transition: all var(--fdh-transition-fast);
}

.fdh-comp-card:hover .fdh-comp-card__arrow {
    background: var(--fdh-primary);
    color: #fff;
    transform: translateX(2px);
}

/* --- Empty state --- */
.fdh-comp-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 48px 24px;
    color: var(--fdh-text-muted);
    text-align: center;
}

.fdh-comp-empty p {
    margin: 0;
    font-size: 0.95rem;
}

/* --- Responsive --- */
@media (max-width: 640px) {
    .fdh-comp-nav {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 12px;
    }

    .fdh-comp-nav::-webkit-scrollbar {
        display: none;
    }

    .fdh-country-block__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        padding: 14px 16px;
    }

    .fdh-country-block__body {
        padding: 16px;
        gap: 20px;
    }

    .fdh-level-group__grid {
        grid-template-columns: 1fr;
    }

    .fdh-comp-card {
        padding: 12px 14px;
    }

    .fdh-comp-card__logo-ring {
        width: 42px;
        height: 42px;
    }

    .fdh-comp-card__logo {
        width: 28px;
        height: 28px;
    }
}

/* Archive section titles */
.fdh-archive__section {
    margin-bottom: 32px;
}

.fdh-archive__section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--fdh-text);
}

.fdh-archive__section-count {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--fdh-text-muted);
}

.fdh-archive__section-icon {
    flex-shrink: 0;
    color: var(--fdh-primary);
}

.fdh-archive__flag {
    border-radius: 2px;
    flex-shrink: 0;
}

/* Archive search form (legacy, kept for compat) */
.fdh-search-form {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
}

.fdh-search-form__input {
    flex: 1;
    padding: 10px 16px;
    background: var(--fdh-bg-input);
    border: 1px solid var(--fdh-border-light);
    border-radius: var(--fdh-radius);
    color: var(--fdh-text);
    font-size: 0.88rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.fdh-search-form__input:focus {
    outline: none;
    border-color: var(--fdh-primary);
    box-shadow: 0 0 0 3px var(--fdh-primary-dim);
}

.fdh-search-form__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    background: var(--fdh-primary);
    border: none;
    border-radius: var(--fdh-radius);
    color: #fff;
    cursor: pointer;
    transition: background 0.2s ease;
}

.fdh-search-form__btn:hover {
    background: var(--fdh-secondary);
}

/* Team country flag on cards */
.fdh-team-cards__country {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.74rem;
    color: var(--fdh-text-muted);
    margin-top: 2px;
}

.fdh-team-cards__country-flag {
    border-radius: 1px;
    flex-shrink: 0;
}

/* Player team on cards */
.fdh-players__team {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.76rem;
    color: var(--fdh-text-secondary);
    margin-top: 2px;
}

.fdh-players__team-logo {
    flex-shrink: 0;
    border-radius: 2px;
}

/* ---------------------------------------------------------------
   Player Cards (players-grid partial)
   --------------------------------------------------------------- */
.fdh-players__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
}

.fdh-players__card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    padding: 20px 16px 16px;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    position: relative;
}

a.fdh-players__card {
    display: block;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.fdh-players__card:hover {
    transform: translateY(-3px);
    border-color: var(--fdh-primary-dim);
    box-shadow: var(--fdh-shadow-md);
}

/* --- Photo --- */
.fdh-players__card-media {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

.fdh-players__photo {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--fdh-bg-elevated);
    border: 2px solid var(--fdh-border-light);
    transition: transform 0.25s ease;
}

.fdh-players__card:hover .fdh-players__photo {
    transform: scale(1.08);
}

.fdh-players__photo-placeholder {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--fdh-bg-elevated);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fdh-text-muted);
    opacity: 0.35;
}

.fdh-players__photo-placeholder::before {
    content: '';
    display: block;
    width: 32px;
    height: 32px;
    background: currentColor;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z'/%3E%3C/svg%3E");
    mask-size: contain;
    -webkit-mask-size: contain;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
}

/* --- Card body --- */
.fdh-players__card-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.fdh-players__name {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--fdh-text-primary);
}

.fdh-players__name-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s ease;
}

/* Stretched link: make the entire card clickable via the name link. */
.fdh-players__name-link::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
}

.fdh-players__card {
    cursor: pointer;
}

.fdh-players__name-link:hover {
    color: var(--fdh-primary);
}

/* --- Position badge --- */
.fdh-players__position-badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    background: var(--fdh-primary-dim);
    color: var(--fdh-primary);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.6;
}

/* --- Nationality --- */
.fdh-players__nationality {
    font-size: 0.76rem;
    color: var(--fdh-text-muted);
}

/* --- Stats strip --- */
.fdh-players__stats {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 6px;
    padding-top: 10px;
    border-top: 1px solid var(--fdh-divider);
    width: 100%;
}

.fdh-players__stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 0;
}

.fdh-players__stat-value {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
    line-height: 1;
}

.fdh-players__stat-label {
    font-size: 0.65rem;
    font-weight: 500;
    color: var(--fdh-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* --- Rating badge (top-right) --- */
.fdh-players__rating-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 24px;
    padding: 0 8px;
    border-radius: 12px;
    background: var(--fdh-bg-elevated);
    color: var(--fdh-text-secondary);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
}

/* --- Nationality flag badge (top-left, mirrors rating badge) --- */
.fdh-players__nationality-flag {
    position: absolute;
    top: 10px;
    left: 10px;
    width: 20px;
    height: 15px;
    border-radius: 2px;
    object-fit: cover;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
    z-index: 1;
}

/* --- List view variant --- */
.fdh-players--list .fdh-players__grid {
    grid-template-columns: 1fr;
    gap: 8px;
}

.fdh-players--list .fdh-players__card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    text-align: left;
}

.fdh-players--list .fdh-players__card-media {
    margin-bottom: 0;
    flex-shrink: 0;
}

.fdh-players--list .fdh-players__photo,
.fdh-players--list .fdh-players__photo-placeholder {
    width: 48px;
    height: 48px;
}

.fdh-players--list .fdh-players__card-body {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.fdh-players--list .fdh-players__name {
    flex-shrink: 0;
    min-width: 140px;
}

.fdh-players--list .fdh-players__position-badge {
    flex-shrink: 0;
}

.fdh-players--list .fdh-players__nationality {
    flex-shrink: 0;
}

.fdh-players--list .fdh-players__stats {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    margin-left: auto;
    width: auto;
}

.fdh-players--list .fdh-players__rating-badge {
    position: static;
    flex-shrink: 0;
}

.fdh-players--list .fdh-players__nationality-flag {
    position: static;
    flex-shrink: 0;
    margin-right: 8px;
}

/* --- Responsive: player cards --- */
@media (max-width: 640px) {
    .fdh-players__grid {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        gap: 10px;
    }

    .fdh-players__card {
        padding: 16px 12px 12px;
    }

    .fdh-players__photo,
    .fdh-players__photo-placeholder {
        width: 56px;
        height: 56px;
    }

    .fdh-players__stats {
        gap: 10px;
    }

    .fdh-players--list .fdh-players__card-body {
        flex-wrap: wrap;
    }

    .fdh-players--list .fdh-players__name {
        min-width: auto;
        width: 100%;
    }
}

/* Coach cards */
.fdh-coach-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}

.fdh-coach-cards__card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    padding: 16px;
    display: flex;
    gap: 12px;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.fdh-coach-cards__card:hover {
    transform: translateY(-2px);
    border-color: var(--fdh-primary-dim);
    box-shadow: var(--fdh-shadow-md);
}

.fdh-coach-cards__card--inactive {
    opacity: 0.75;
}

.fdh-coach-cards__card--inactive:hover {
    opacity: 1;
}

.fdh-coach-cards__photo-wrap {
    flex-shrink: 0;
}

.fdh-coach-cards__photo {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--fdh-bg-elevated);
}

.fdh-coach-cards__photo-placeholder {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--fdh-bg-elevated);
}

.fdh-coach-cards__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.fdh-coach-cards__name {
    margin: 0 0 4px;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
}

.fdh-coach-cards__name-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s ease;
}

.fdh-coach-cards__name-link:hover {
    color: var(--fdh-primary);
}

.fdh-coach-cards__role {
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--fdh-primary);
    margin-bottom: 4px;
}

.fdh-coach-cards__team {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.78rem;
    color: var(--fdh-text-secondary);
    margin-bottom: 4px;
}

.fdh-coach-cards__team--last {
    color: var(--fdh-text-muted);
    font-style: italic;
}

.fdh-coach-cards__team-logo {
    flex-shrink: 0;
    border-radius: 2px;
}

.fdh-coach-cards__team-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-coach-cards__meta {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 8px;
    font-size: 0.74rem;
    color: var(--fdh-text-muted);
}

.fdh-coach-cards__nationality {
    font-size: 0.74rem;
    color: var(--fdh-text-muted);
}

/* Country cards */
.fdh-country-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
}

.fdh-country-cards__card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    padding: 18px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.fdh-country-cards__card:hover {
    transform: translateY(-2px);
    border-color: var(--fdh-primary-dim);
    box-shadow: var(--fdh-shadow-md);
}

.fdh-country-cards__flag-wrap {
    margin-bottom: 10px;
}

.fdh-country-cards__flag {
    width: 64px;
    height: 42px;
    object-fit: cover;
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.fdh-country-cards__flag-placeholder {
    width: 64px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fdh-bg-elevated);
    border-radius: 4px;
    color: var(--fdh-text-muted);
}

.fdh-country-cards__body {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.fdh-country-cards__name {
    margin: 0 0 8px;
    font-size: 0.92rem;
    font-weight: 700;
}

.fdh-country-cards__name-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s ease;
}

.fdh-country-cards__name-link:hover {
    color: var(--fdh-primary);
}

.fdh-country-cards__stats {
    display: flex;
    gap: 12px;
}

.fdh-country-cards__stat {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.fdh-country-cards__stat-value {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--fdh-primary);
    line-height: 1.2;
}

.fdh-country-cards__stat-label {
    font-size: 0.68rem;
    color: var(--fdh-text-muted);
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 0.03em;
}

/* Responsive filter bar */
@media (max-width: 599px) {
    .fdh-filter-bar__row {
        flex-direction: column;
    }

    .fdh-filter-bar__field {
        min-width: 100%;
    }

    .fdh-filter-bar__field--search {
        min-width: 100%;
    }

    .fdh-coach-cards {
        grid-template-columns: 1fr;
    }

    .fdh-country-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 600px) and (max-width: 899px) {
    .fdh-coach-cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .fdh-country-cards {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 900px) {
    .fdh-coach-cards {
        grid-template-columns: repeat(3, 1fr);
    }

    .fdh-country-cards {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ---------------------------------------------------------------
   Grid layouts (Teams, Venues)
   --------------------------------------------------------------- */
.fdh-teams-grid, .fdh-venues-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
}

.fdh-teams-grid__item, .fdh-venues-grid__item {
    background: var(--fdh-bg-card); border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius); padding: 16px;
    text-align: center; text-decoration: none; color: var(--fdh-text);
    transition: all 0.2s ease;
}

.fdh-teams-grid__item:hover, .fdh-venues-grid__item:hover {
    border-color: var(--fdh-primary-dim); background: var(--fdh-bg-card-hover);
    box-shadow: 0 0 20px var(--fdh-primary-dim); transform: translateY(-2px);
}

.fdh-teams-grid__logo { width: 48px; height: 48px; margin-bottom: 8px; object-fit: contain; }
.fdh-teams-grid__name, .fdh-venues-grid__name { font-weight: 700; font-size: 0.9em; }

/* ---------------------------------------------------------------
   Team Cards (country page clubs)
   --------------------------------------------------------------- */
.fdh-team-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
}

.fdh-team-cards__card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    padding: 20px 16px 16px;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    position: relative;
    display: block;
    color: inherit;
    text-decoration: none;
}

a.fdh-team-cards__card,
.fdh-team-cards__card--linked {
    cursor: pointer;
}

.fdh-team-cards__card:hover {
    transform: translateY(-3px);
    border-color: var(--fdh-primary-dim);
    box-shadow: var(--fdh-shadow-md);
}

a.fdh-team-cards__card:hover .fdh-team-cards__name,
.fdh-team-cards__card--linked:hover .fdh-team-cards__name {
    color: var(--fdh-primary);
}

/* --- Logo area --- */
.fdh-team-cards__logo-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

.fdh-team-cards__logo {
    width: 56px;
    height: 56px;
    object-fit: contain;
    transition: transform 0.25s ease;
}

.fdh-team-cards__card:hover .fdh-team-cards__logo {
    transform: scale(1.08);
}

.fdh-team-cards__logo-placeholder {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fdh-text-muted);
    opacity: 0.35;
}

/* Rank badge (top-right corner) */
.fdh-team-cards__rank {
    position: absolute;
    top: -8px;
    right: -4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 22px;
    padding: 0 6px;
    border-radius: 12px;
    background: var(--fdh-primary);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
}

/* Top-3 gold/silver/bronze */
.fdh-team-cards__card:nth-child(1) .fdh-team-cards__rank {
    background: linear-gradient(135deg, #d4a017, #f5d060);
    color: #1a1100;
}

.fdh-team-cards__card:nth-child(2) .fdh-team-cards__rank {
    background: linear-gradient(135deg, #8e9aaf, #c0c8d4);
    color: #1a1d23;
}

.fdh-team-cards__card:nth-child(3) .fdh-team-cards__rank {
    background: linear-gradient(135deg, #a0522d, #cd853f);
    color: #fff;
}

/* --- Card body --- */
.fdh-team-cards__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.fdh-team-cards__name {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--fdh-text-primary);
}

.fdh-team-cards__name-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s ease;
}

.fdh-team-cards__name-link:hover {
    color: var(--fdh-primary);
}

/* Standing row (points + league) */
.fdh-team-cards__standing {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 2px;
}

.fdh-team-cards__points {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 10px;
    background: var(--fdh-primary-dim);
    color: var(--fdh-primary);
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.03em;
}

.fdh-team-cards__league {
    font-size: 0.72rem;
    color: var(--fdh-text-muted);
    font-weight: 500;
}

/* Meta list */
.fdh-team-cards__meta {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}

.fdh-team-cards__meta-item {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.72rem;
    color: var(--fdh-text-secondary);
    line-height: 1.2;
}

.fdh-team-cards__meta-icon {
    flex-shrink: 0;
    color: var(--fdh-text-muted);
}

/* Responsive: 2 columns on small screens */
@media (max-width: 479px) {
    .fdh-team-cards {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .fdh-team-cards__card {
        padding: 14px 10px 12px;
    }

    .fdh-team-cards__logo {
        width: 44px;
        height: 44px;
    }
}

/* 3 columns on tablet */
@media (min-width: 480px) and (max-width: 767px) {
    .fdh-team-cards {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* 4 columns on desktop */
@media (min-width: 768px) {
    .fdh-team-cards {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ---------------------------------------------------------------
   Venue Cards (country page stadiums)
   --------------------------------------------------------------- */
.fdh-venue-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

.fdh-venue-cards__card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.fdh-venue-cards__card:hover {
    transform: translateY(-3px);
    border-color: var(--fdh-primary-dim);
    box-shadow: var(--fdh-shadow-md);
}

/* --- Image / media area --- */
.fdh-venue-cards__media {
    position: relative;
    height: 160px;
    overflow: hidden;
    background: var(--fdh-bg-elevated);
}

.fdh-venue-cards__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.fdh-venue-cards__card:hover .fdh-venue-cards__img {
    transform: scale(1.05);
}

/* Placeholder when no image */
.fdh-venue-cards__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--fdh-bg-elevated) 0%, var(--fdh-bg-deep) 100%);
}

.fdh-venue-cards__placeholder-icon {
    width: 48px;
    height: 48px;
    color: var(--fdh-text-muted);
    opacity: 0.4;
}

/* Capacity badge (top-right overlay) */
.fdh-venue-cards__capacity-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 20px;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.fdh-venue-cards__capacity-icon {
    flex-shrink: 0;
    opacity: 0.85;
}

/* --- Card body --- */
.fdh-venue-cards__body {
    padding: 14px 16px 16px;
}

.fdh-venue-cards__name {
    margin: 0 0 10px;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--fdh-text-primary);
}

.fdh-venue-cards__name-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s ease;
}

.fdh-venue-cards__name-link:hover {
    color: var(--fdh-primary);
}

/* Details list */
.fdh-venue-cards__details {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fdh-venue-cards__detail {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    color: var(--fdh-text-secondary);
    line-height: 1.2;
}

.fdh-venue-cards__detail-icon {
    flex-shrink: 0;
    color: var(--fdh-text-muted);
}

/* Team logo in details */
.fdh-venue-cards__team-logo {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    object-fit: contain;
}

.fdh-venue-cards__team-link {
    color: var(--fdh-text-secondary);
    text-decoration: none;
    transition: color 0.15s ease;
}

.fdh-venue-cards__team-link:hover {
    color: var(--fdh-primary);
}

/* Responsive: 1 column on small screens */
@media (max-width: 599px) {
    .fdh-venue-cards {
        grid-template-columns: 1fr;
    }

    .fdh-venue-cards__media {
        height: 140px;
    }
}

/* 2 columns on medium */
@media (min-width: 600px) and (max-width: 899px) {
    .fdh-venue-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* 3 columns on large */
@media (min-width: 900px) {
    .fdh-venue-cards {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ---------------------------------------------------------------
   Career Totals
   --------------------------------------------------------------- */
.fdh-career-totals {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 28px;
}

.fdh-career-totals__heading {
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--fdh-border-light);
}

.fdh-career-totals__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 14px;
}

.fdh-career-totals__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 18px 12px;
    background: var(--fdh-bg-elevated);
    border-radius: var(--fdh-radius);
    border: 1px solid var(--fdh-border-light);
}

.fdh-career-totals__item--highlight {
    border-color: var(--fdh-primary);
    background: rgba(var(--fdh-primary-rgb), 0.06);
}

.fdh-career-totals__value {
    font-size: 1.5em;
    font-weight: 800;
    font-family: var(--fdh-font-mono);
    color: var(--fdh-text-bright);
    display: flex;
    align-items: center;
    gap: 6px;
}

.fdh-career-totals__item--highlight .fdh-career-totals__value {
    color: var(--fdh-primary);
}

.fdh-career-totals__label {
    font-size: 0.72em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted);
}

.fdh-career-totals__card {
    display: inline-block;
    width: 10px;
    height: 14px;
    border-radius: 2px;
    vertical-align: middle;
}

.fdh-career-totals__card--yellow {
    background: #fdd835;
}

.fdh-career-totals__card--red {
    background: #ef5350;
}

/* ---------------------------------------------------------------
   Player Transfer History
   --------------------------------------------------------------- */
.fdh-player-transfers {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 28px;
}

.fdh-player-transfers__heading {
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--fdh-border-light);
}

.fdh-player-transfers__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.fdh-player-transfers__item {
    display: grid;
    grid-template-columns: 100px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-player-transfers__item:last-child {
    border-bottom: none;
}

.fdh-player-transfers__date {
    font-size: 0.78em;
    font-weight: 600;
    color: var(--fdh-text-muted);
    font-family: var(--fdh-font-mono);
}

.fdh-player-transfers__clubs {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.fdh-player-transfers__club {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.fdh-player-transfers__club-logo {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    object-fit: contain;
}

.fdh-player-transfers__club-name {
    font-size: 0.88em;
    font-weight: 600;
    color: var(--fdh-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

a.fdh-player-transfers__club-name {
    text-decoration: none;
}

a.fdh-player-transfers__club-name:hover {
    color: var(--fdh-primary);
}

.fdh-player-transfers__arrow {
    color: var(--fdh-text-muted);
    font-size: 1.1em;
    flex-shrink: 0;
}

.fdh-player-transfers__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.fdh-player-transfers__type {
    font-size: 0.72em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text-muted);
    background: var(--fdh-bg-elevated);
    padding: 2px 8px;
    border-radius: 4px;
}

.fdh-player-transfers__fee {
    font-size: 0.78em;
    font-weight: 700;
    color: var(--fdh-primary);
    font-family: var(--fdh-font-mono);
}

/* ---------------------------------------------------------------
   Season Stats Table
   --------------------------------------------------------------- */
.fdh-season-stats {
    background: var(--fdh-bg-card); border-radius: var(--fdh-radius);
    border: 1px solid var(--fdh-border); overflow: hidden;
}

.fdh-season-stats__table { width: 100%; border-collapse: collapse; font-size: 0.88em; }

.fdh-season-stats__table thead th {
    padding: 12px 16px; font-size: 0.75em; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--fdh-text-muted); border-bottom: 1px solid var(--fdh-border-light);
    text-align: center; background: var(--fdh-bg-elevated);
}

.fdh-season-stats__table tbody td {
    padding: 12px 16px; border-bottom: 1px solid var(--fdh-divider);
    text-align: center; color: var(--fdh-text-secondary);
}

.fdh-season-stats__table tbody tr:hover td { background: var(--fdh-overlay-hover); }

.fdh-season-stats__col-season,
.fdh-season-stats__col-team,
.fdh-season-stats__col-league { text-align: left; }

.fdh-season-stats__col-team {
    white-space: nowrap;
}
.fdh-season-stats__col-team a { color: var(--fdh-text); text-decoration: none; }
.fdh-season-stats__col-team a:hover { color: var(--fdh-primary); }

.fdh-season-stats__team-logo {
    width: 20px; height: 20px; vertical-align: middle;
    margin-right: 6px; border-radius: 2px;
}

/* ---------------------------------------------------------------
   Team Page Layout (Main + Sidebar)
   --------------------------------------------------------------- */
.fdh-entity__content {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 32px;
    align-items: start;
}

.fdh-entity__main {
    min-width: 0;
}

.fdh-entity__sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.fdh-section-heading {
    font-size: 0.85em;
    font-weight: 700;
    margin: 0 0 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--fdh-border-light);
    color: var(--fdh-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ---------------------------------------------------------------
   Coach Card
   --------------------------------------------------------------- */
/* ---------------------------------------------------------------
   Coach Card — Premium sidebar card
   --------------------------------------------------------------- */
.fdh-coach-card {
    background: var(--fdh-bg-card);
    border-radius: var(--fdh-radius-lg);
    border: none;
    padding: 0;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(var(--fdh-primary-rgb), 0.08), 0 1px 4px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.fdh-coach-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(var(--fdh-primary-rgb), 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
}

.fdh-coach-card__header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    background: linear-gradient(135deg, var(--fdh-primary) 0%, var(--fdh-secondary) 100%);
    color: #fff;
}

.fdh-coach-card__icon {
    flex-shrink: 0;
    opacity: 0.85;
}

.fdh-coach-card__heading {
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #fff;
    margin: 0;
}

.fdh-coach-card__inner {
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 20px 20px 16px;
}

.fdh-coach-card__media {
    flex-shrink: 0;
}

.fdh-coach-card__photo {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--fdh-bg-card);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
    background: var(--fdh-bg-elevated);
}

.fdh-coach-card__photo-placeholder {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--fdh-bg-elevated), var(--fdh-bg-page));
    border: 3px solid var(--fdh-bg-card);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fdh-text-muted);
}

.fdh-coach-card__body {
    flex: 1;
    min-width: 0;
}

.fdh-coach-card__name {
    margin: 0 0 6px;
    font-size: 1.15em;
    font-weight: 800;
    color: var(--fdh-text-bright);
    line-height: 1.3;
}

.fdh-coach-card__name-link {
    color: var(--fdh-text-bright);
    text-decoration: none;
    transition: color 0.2s ease;
}

.fdh-coach-card__name-link:hover {
    color: var(--fdh-primary);
}

.fdh-coach-card__tenure {
    display: inline-block;
    font-size: 0.78em;
    font-weight: 700;
    color: var(--fdh-primary);
    background: rgba(var(--fdh-primary-rgb), 0.08);
    padding: 3px 10px;
    border-radius: 20px;
    margin-top: 2px;
}

.fdh-coach-card__details {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0 20px 16px;
    border-top: 1px solid var(--fdh-divider);
}

.fdh-coach-card__detail {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.82em;
    padding: 8px 0;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-coach-card__detail:last-child {
    border-bottom: none;
    padding-bottom: 2px;
}

.fdh-coach-card__label {
    color: var(--fdh-text-muted);
    font-weight: 500;
}

.fdh-coach-card__value {
    color: var(--fdh-text);
    font-weight: 600;
    text-align: right;
}

.fdh-coach-card__value--accent {
    color: var(--fdh-primary);
    font-weight: 700;
}

/* ---------------------------------------------------------------
   Venue Card — Premium sidebar card
   --------------------------------------------------------------- */
.fdh-venue-card {
    background: var(--fdh-bg-card);
    border-radius: var(--fdh-radius-lg);
    border: none;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(var(--fdh-primary-rgb), 0.08), 0 1px 4px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.fdh-venue-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(var(--fdh-primary-rgb), 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
}

.fdh-venue-card__header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    background: linear-gradient(135deg, var(--fdh-primary) 0%, var(--fdh-secondary) 100%);
    color: #fff;
}

.fdh-venue-card__icon {
    flex-shrink: 0;
    opacity: 0.85;
}

.fdh-venue-card__heading {
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #fff;
    margin: 0;
}

.fdh-venue-card__media {
    position: relative;
    overflow: hidden;
    max-height: 180px;
}

.fdh-venue-card__image {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.fdh-venue-card:hover .fdh-venue-card__image {
    transform: scale(1.05);
}

.fdh-venue-card__media-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 8px 14px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.55), transparent);
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
}

.fdh-venue-card__capacity-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.78em;
    font-weight: 800;
    font-family: var(--fdh-font-mono);
    color: #fff;
    background: rgba(var(--fdh-primary-rgb), 0.85);
    padding: 4px 10px;
    border-radius: 20px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.fdh-venue-card__body {
    padding: 16px 20px;
}

.fdh-venue-card__name {
    margin: 0 0 10px;
    font-size: 1.05em;
    font-weight: 800;
    color: var(--fdh-text-bright);
    line-height: 1.3;
}

.fdh-venue-card__name-link {
    color: var(--fdh-text-bright);
    text-decoration: none;
    transition: color 0.2s ease;
}

.fdh-venue-card__name-link:hover {
    color: var(--fdh-primary);
}

.fdh-venue-card__details {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.fdh-venue-card__detail {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.82em;
    padding: 6px 0;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-venue-card__detail:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.fdh-venue-card__label {
    color: var(--fdh-text-muted);
    font-weight: 500;
}

.fdh-venue-card__value {
    color: var(--fdh-text);
    font-weight: 600;
    text-align: right;
}

.fdh-venue-card__value--mono {
    font-family: var(--fdh-font-mono);
    color: var(--fdh-primary);
    font-weight: 700;
}

/* Dark-mode overrides for premium cards & carousel */
body.fdh-theme-dark .fdh-coach-card__header,
body.fdh-theme-dark .fdh-venue-card__header {
    background: linear-gradient(135deg, #0c0f1e 0%, #192250 100%);
}

body.fdh-theme-dark .fdh-coach-card__tenure {
    background: rgba(var(--fdh-primary-rgb), 0.15);
}

body.fdh-theme-dark .fdh-carousel {
    background: linear-gradient(135deg, rgba(var(--fdh-primary-rgb), 0.06) 0%, rgba(var(--fdh-secondary-rgb), 0.04) 100%);
}

@media (prefers-color-scheme: dark) {
    body:not(.fdh-theme-light) .fdh-coach-card__header,
    body:not(.fdh-theme-light) .fdh-venue-card__header {
        background: linear-gradient(135deg, #0c0f1e 0%, #192250 100%);
    }

    body:not(.fdh-theme-light) .fdh-coach-card__tenure {
        background: rgba(var(--fdh-primary-rgb), 0.15);
    }

    body:not(.fdh-theme-light) .fdh-carousel {
        background: linear-gradient(135deg, rgba(var(--fdh-primary-rgb), 0.06) 0%, rgba(var(--fdh-secondary-rgb), 0.04) 100%);
    }
}

/* ---------------------------------------------------------------
   Squad Grid
   --------------------------------------------------------------- */
.fdh-squad {
    margin-bottom: 4px;
}

.fdh-squad__heading {
    font-size: 0.85em;
    font-weight: 700;
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--fdh-border-light);
    color: var(--fdh-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: flex;
    align-items: center;
    gap: 10px;
}

.fdh-squad__season {
    font-size: 0.85em;
    font-weight: 500;
    color: var(--fdh-text-muted);
    font-family: var(--fdh-font-mono);
}

.fdh-squad__group {
    margin-bottom: 20px;
}

.fdh-squad__group:last-child {
    margin-bottom: 0;
}

.fdh-squad__group-title {
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-primary);
    margin: 0 0 10px;
    padding: 6px 12px;
    background: var(--fdh-primary-dim);
    border-radius: var(--fdh-radius);
    display: inline-block;
}

.fdh-squad__grid {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.fdh-squad__player {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    transition: all 0.15s ease;
}

.fdh-squad__player:hover {
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-border-light);
}

.fdh-squad__player-media {
    position: relative;
    flex-shrink: 0;
}

.fdh-squad__photo {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--fdh-border-light);
    background: var(--fdh-bg-elevated);
}

.fdh-squad__photo-placeholder {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--fdh-bg-elevated);
    border: 2px solid var(--fdh-border);
}

.fdh-squad__number {
    position: absolute;
    bottom: -2px;
    right: -4px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--fdh-bg-elevated);
    border: 1px solid var(--fdh-border-light);
    font-size: 0.65em;
    font-weight: 800;
    font-family: var(--fdh-font-mono);
    color: var(--fdh-text-bright);
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.fdh-squad__player-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.fdh-squad__player-name {
    font-weight: 700;
    font-size: 0.9em;
    color: var(--fdh-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-squad__player-link {
    color: var(--fdh-text);
    text-decoration: none;
}

.fdh-squad__player-link:hover {
    color: var(--fdh-primary);
}

.fdh-squad__player-nat {
    font-size: 0.75em;
    color: var(--fdh-text-muted);
    font-weight: 500;
}

.fdh-squad__player-stats {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.fdh-squad__stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
}

.fdh-squad__stat-val {
    font-weight: 800;
    font-size: 0.9em;
    color: var(--fdh-text-secondary);
    font-family: var(--fdh-font-mono);
}

.fdh-squad__stat--goals .fdh-squad__stat-val {
    color: var(--fdh-primary);
}

.fdh-squad__stat--assists .fdh-squad__stat-val {
    color: var(--fdh-secondary);
}

.fdh-squad__stat-lbl {
    font-size: 0.6em;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--fdh-text-muted);
    letter-spacing: 0.06em;
}

/* ---------------------------------------------------------------
   Transfers Table (on team page)
   --------------------------------------------------------------- */
.fdh-transfers {
    background: var(--fdh-bg-card);
    border-radius: var(--fdh-radius);
    border: 1px solid var(--fdh-border);
    overflow: hidden;
}

.fdh-transfers__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85em;
}

.fdh-transfers__table thead th {
    padding: 12px 16px;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted);
    border-bottom: 1px solid var(--fdh-border-light);
    text-align: left;
    background: var(--fdh-bg-elevated);
}

.fdh-transfers__table tbody td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--fdh-divider);
    vertical-align: middle;
    color: var(--fdh-text-secondary);
}

.fdh-transfers__table tbody tr:last-child td {
    border-bottom: none;
}

.fdh-transfers__table tbody tr:hover td {
    background: var(--fdh-overlay-hover);
}

.fdh-transfers__player-link,
.fdh-transfers__team-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: var(--fdh-text);
    font-weight: 600;
}

.fdh-transfers__player-link:hover,
.fdh-transfers__team-link:hover {
    color: var(--fdh-primary);
}

.fdh-transfers__player-photo {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--fdh-border-light);
}

.fdh-transfers__team-logo {
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.fdh-transfers__type-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.8em;
    font-weight: 600;
    background: var(--fdh-secondary-dim);
    color: var(--fdh-secondary);
}

.fdh-transfers__type-badge--free {
    background: var(--fdh-primary-dim);
    color: var(--fdh-primary);
}

.fdh-transfers__type-badge--loan {
    background: rgba(255, 193, 7, 0.15);
    color: var(--fdh-draw);
}

.fdh-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    box-sizing: border-box;
}

/* ---------------------------------------------------------------
   Responsive
   --------------------------------------------------------------- */
@media (max-width: 960px) {
    .fdh-entity__content {
        grid-template-columns: 1fr;
    }

    .fdh-entity__sidebar {
        order: -1;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 16px;
    }

    .fdh-overview-grid {
        grid-template-columns: 1fr;
    }

    .fdh-overview-grid__sidebar {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 16px;
    }
}

@media (max-width: 768px) {
    .fdh-hero__inner { flex-direction: column; text-align: center; }
    .fdh-hero__badges { justify-content: center; }
    .fdh-hero__title { font-size: 1.5em; }
    .fdh-hero { padding: 28px 24px; }
    .fdh-entity, .fdh-shortcode-wrapper, .fdh-frontpage { padding: 20px 16px 36px; }
    .fdh-lineups__grid { grid-template-columns: 1fr; }
    .fdh-event { grid-template-columns: 1fr auto 1fr; }
    .fdh-event__side { padding: 4px 6px; font-size: 0.85em; }
    .fdh-event__center { min-width: 36px; }
    .fdh-event__minute { font-size: 0.7em; }
    .fdh-match-banner__teams { flex-direction: column; gap: 20px; }
    .fdh-match-banner__team { max-width: none; }
    .fdh-match-banner__team-logo { width: 60px; height: 60px; }
    .fdh-live-score { font-size: 2em; }
    .fdh-match-banner { padding: 28px 20px 20px; }
    .fdh-match-banner__center { min-width: auto; }

    .fdh-kpi-strip {
        grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
        gap: 8px;
    }
    .fdh-kpi-strip__card, .fdh-kpi-strip__item { padding: 12px 8px; }
    .fdh-kpi-strip__value { font-size: 1.4em; }

    .fdh-now-next__teams { flex-wrap: wrap; }

    .fdh-standings, .fdh-standings-snapshot, .fdh-scorers, .fdh-assists,
    .fdh-discipline, .fdh-season-stats, .fdh-transfers {
        overflow-x: auto; -webkit-overflow-scrolling: touch;
    }

    .fdh-standings__table, .fdh-standings-snapshot__table,
    .fdh-scorers__table, .fdh-assists__table,
    .fdh-discipline__table, .fdh-season-stats__table,
    .fdh-transfers__table {
        min-width: 500px;
    }

    .fdh-teams-grid {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    }

    .fdh-entity__sidebar {
        grid-template-columns: 1fr;
    }

    .fdh-coach-card__inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .fdh-coach-card__detail {
        flex-direction: column;
        align-items: center;
        gap: 2px;
    }

    .fdh-coach-card__value {
        text-align: center;
    }

    .fdh-squad__player {
        flex-wrap: wrap;
    }

    .fdh-squad__player-stats {
        width: 100%;
        justify-content: center;
        padding-top: 6px;
        border-top: 1px solid var(--fdh-divider);
    }

    /* Tabs responsive — ensure horizontal scroll on mobile */
    .fdh-tabs {
        flex-wrap: nowrap !important;
    }
    .fdh-tabs__tab {
        padding: 8px 14px;
        font-size: 0.82em;
        flex-shrink: 0;
    }

    /* Match cards responsive */
    .fdh-match-card {
        width: 170px;
        padding: 12px 10px;
    }

    /* Match row responsive */
    .fdh-match-row {
        flex-wrap: wrap;
        gap: 8px;
        padding: 10px 12px;
    }

    .fdh-match-row__league {
        width: 100%;
        text-align: left;
        min-width: 0;
    }

    /* Carousel buttons smaller on mobile */
    .fdh-carousel__btn {
        width: 30px;
        height: 30px;
        font-size: 1.2em;
    }

    .fdh-overview-grid__sidebar {
        grid-template-columns: 1fr;
    }

    /* Hero team img smaller */
    .fdh-hero--team .fdh-hero__img--team {
        width: 100px;
        height: 100px;
    }

    /* Match stats responsive */
    .fdh-match-stats__row {
        grid-template-columns: 40px 1fr 40px;
        gap: 6px;
    }
    .fdh-match-stats__value {
        font-size: 0.82em;
    }
    .fdh-match-stats__label {
        font-size: 0.65em;
    }

    /* Transfer history responsive */
    .fdh-player-transfers__item {
        grid-template-columns: 1fr;
        gap: 6px;
    }
    .fdh-player-transfers__meta {
        flex-direction: row;
        align-items: center;
        gap: 8px;
    }

    /* Career totals responsive */
    .fdh-career-totals__grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .fdh-career-totals__value {
        font-size: 1.2em;
    }
}

@media (max-width: 480px) {
    .fdh-entity, .fdh-shortcode-wrapper, .fdh-frontpage { padding: 16px 12px 0; }
    .fdh-hero { padding: 24px 20px; }
    .fdh-hero__title { font-size: 1.3em; }
    .fdh-hero__img { width: 72px; height: 72px; }
    .fdh-matches__team-name { font-size: 0.85em; }
    .fdh-kpi-strip { grid-template-columns: repeat(3, 1fr); }
    .fdh-career-totals, .fdh-player-transfers { padding: 20px 16px; }
    .fdh-ai-content { padding: 22px 20px; }

    .fdh-hero--team .fdh-hero__img--team {
        width: 80px;
        height: 80px;
    }

    .fdh-match-card {
        width: 150px;
        padding: 12px 16px;
    }

    .fdh-match-card__score {
        font-size: 1.1em;
    }

    .fdh-match-row__date {
        min-width: 60px;
        font-size: 0.75em;
    }

    .fdh-match-row__team {
        font-size: 0.82em;
    }

    .fdh-tabs__tab {
        padding: 8px 12px;
        font-size: 0.78em;
    }

    /* Match stats 480px */
    .fdh-match-stats__header {
        display: none;
    }
    .fdh-match-stats__row {
        grid-template-columns: 36px 1fr 36px;
    }
}

/* Widen content area for team pages to accommodate sidebar */
.single-fdh_team .content-area {
    max-width: 1120px;
    padding: 24px 20px;
}

/* GeneratePress: remove default content padding/margin on all entity pages */
.single-fdh_player .inside-article,
.single-fdh_team .inside-article,
.single-fdh_coach .inside-article,
.single-fdh_competition .inside-article,
.single-fdh_venue .inside-article,
.single-fdh_country .inside-article,
.fdh-match-page .inside-article,
.fdh-page-active .inside-article {
    padding: 0;
}

.single-fdh_player .entry-content,
.single-fdh_team .entry-content,
.single-fdh_coach .entry-content,
.single-fdh_competition .entry-content,
.single-fdh_venue .entry-content,
.single-fdh_country .entry-content,
.fdh-match-page .entry-content,
.fdh-page-active .entry-content {
    margin: 0;
}

/* ---------------------------------------------------------------
   Tab Navigation — wraps on overflow (no horizontal scroll)
   --------------------------------------------------------------- */
.fdh-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 24px;
    background: var(--fdh-bg-card);
    border-radius: var(--fdh-radius-lg);
    border: 1px solid var(--fdh-border);
    padding: 5px;
}

.fdh-tabs__tab {
    flex: 1 1 auto;
    min-width: 110px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 14px;
    border: none;
    border-radius: var(--fdh-radius);
    background: transparent;
    color: var(--fdh-text-secondary);
    font-family: var(--fdh-font);
    font-size: 0.88em;
    font-weight: 600;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.1s ease;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
}

.fdh-tabs__tab:hover {
    color: var(--fdh-primary);
    background: rgba(var(--fdh-primary-rgb), 0.06);
}

.fdh-tabs__tab--active {
    background: var(--fdh-primary);
    color: #ffffff;
    box-shadow: 0 2px 8px rgba(var(--fdh-primary-rgb), 0.25);
}

.fdh-tabs__tab--active:hover {
    background: var(--fdh-primary);
    color: #ffffff;
}

/* Mobile: 2 columns, slightly tighter */
@media (max-width: 600px) {
    .fdh-tabs {
        gap: 3px;
        padding: 4px;
    }
    .fdh-tabs__tab {
        flex: 1 1 calc(50% - 3px);
        min-width: 0;
        padding: 9px 8px;
        font-size: 0.82em;
    }
}

.fdh-tabs__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: var(--fdh-overlay-medium);
    color: var(--fdh-text-muted);
    font-size: 0.72em;
    font-weight: 700;
    font-family: var(--fdh-font-mono);
    line-height: 1;
}

.fdh-tabs__tab--active .fdh-tabs__badge {
    background: rgba(0, 0, 0, 0.2);
    color: var(--fdh-bg-deep);
}

/* ---------------------------------------------------------------
   Tab Panels
   --------------------------------------------------------------- */
.fdh-tab-panel {
    display: none;
    padding: 24px 0 0;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}

.fdh-tab-panel--active {
    display: block;
    animation: fdh-fadeIn 0.2s ease;
}

/* Override hidden attribute when active class is present (JS sets hidden) */
.fdh-tab-panel--active[hidden] {
    display: block !important;
}

@keyframes fdh-fadeIn {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* PJAX loading state (tab content being fetched via AJAX) */
.fdh-tab-panel--loading {
    opacity: 0.35;
    pointer-events: none;
    transition: opacity 0.12s ease;
}

/* Ensure all sections within tab panels stretch to full width */
.fdh-tab-panel > .fdh-entity__section,
.fdh-tab-panel > .fdh-table-wrap,
.fdh-tab-panel > .fdh-overview-grid {
    width: 100%;
    box-sizing: border-box;
}

/* Standings blocks — one per competition in Stilling tab */
.fdh-standings-block {
    margin-bottom: 32px;
}

.fdh-standings-block:last-child {
    margin-bottom: 0;
}

.fdh-standings-block__heading {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 24px;
    margin: 0;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border-light);
    border-bottom: none;
    border-radius: var(--fdh-radius) var(--fdh-radius) 0 0;
}

.fdh-standings-block__heading .fdh-squad__season {
    font-weight: 400;
    font-size: 0.85em;
    opacity: 0.7;
    margin-left: auto;
}

.fdh-standings-block__logo {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    object-fit: contain;
}

/* Group name heading (for cup group stages) */
.fdh-standings-block__group-name {
    font-size: 0.78em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fdh-primary);
    padding: 10px 18px 6px;
    margin: 0;
    background: var(--fdh-bg-card);
    border-left: 1px solid var(--fdh-border-light);
    border-right: 1px solid var(--fdh-border-light);
}

/* Connect standings tables within a block */
.fdh-standings-block .fdh-standings {
    border-radius: 0;
}

.fdh-standings-block .fdh-standings:last-child {
    border-radius: 0 0 var(--fdh-radius) var(--fdh-radius);
}

/* Remove top border on tables that connect to heading/group name */
.fdh-standings-block .fdh-standings {
    border-top: none;
}

/* ---------------------------------------------------------------
   Section Header (heading + link button)
   --------------------------------------------------------------- */
.fdh-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.fdh-section-header .fdh-section-heading {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.fdh-link-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 14px;
    border: 1px solid var(--fdh-border-light);
    border-radius: 20px;
    background: transparent;
    color: var(--fdh-text-secondary);
    font-family: var(--fdh-font);
    font-size: 0.75em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.fdh-link-btn:hover {
    color: var(--fdh-primary);
    border-color: var(--fdh-primary);
    background: var(--fdh-primary-dim);
}

/* ---------------------------------------------------------------
   Match Carousel
   --------------------------------------------------------------- */
.fdh-carousel {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0;
    overflow: hidden;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    background: linear-gradient(135deg, rgba(var(--fdh-primary-rgb), 0.03) 0%, rgba(var(--fdh-secondary-rgb), 0.02) 100%);
    border-radius: var(--fdh-radius-lg);
    padding: 12px 0;
}

.fdh-carousel__track {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 4px 4px;
    flex: 1;
    min-width: 0;
    max-width: 100%;
}

.fdh-carousel__track::-webkit-scrollbar {
    display: none;
}

.fdh-carousel__btn {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 50%;
    background: var(--fdh-bg-card);
    color: var(--fdh-text-secondary);
    font-size: 1.4em;
    line-height: 1;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    box-shadow: var(--fdh-shadow-sm);
}

.fdh-carousel__btn:hover {
    background: var(--fdh-primary);
    color: #fff;
    box-shadow: var(--fdh-shadow-md);
    transform: scale(1.08);
}

.fdh-carousel__btn--prev {
    margin-right: 8px;
}

.fdh-carousel__btn--next {
    margin-left: 8px;
}

/* ---------------------------------------------------------------
   Match Cards (Carousel items)
   --------------------------------------------------------------- */
.fdh-match-card {
    flex-shrink: 0;
    width: 210px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 16px 14px;
    background: var(--fdh-bg-card);
    border: none;
    border-radius: var(--fdh-radius);
    text-decoration: none;
    color: var(--fdh-text);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.fdh-match-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--fdh-border-light);
    transition: background 0.2s ease;
}

.fdh-match-card--win::before {
    background: var(--fdh-win);
}

.fdh-match-card--draw::before {
    background: var(--fdh-draw);
}

.fdh-match-card--loss::before {
    background: var(--fdh-loss);
}

.fdh-match-card--upcoming::before {
    background: linear-gradient(90deg, var(--fdh-secondary), var(--fdh-primary));
}

.fdh-match-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(var(--fdh-primary-rgb), 0.10), 0 2px 6px rgba(0, 0, 0, 0.06);
}

.fdh-match-card__league {
    font-size: 0.65em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdh-match-card__date {
    font-size: 0.75em;
    font-weight: 500;
    color: var(--fdh-text-muted);
}

.fdh-match-card__teams {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}

.fdh-match-card__team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex: 1;
    min-width: 0;
}

.fdh-match-card__team img {
    width: 28px;
    height: 28px;
    object-fit: contain;
    flex-shrink: 0;
}

.fdh-match-card__name {
    font-size: 0.72em;
    font-weight: 600;
    color: var(--fdh-text-secondary);
    text-align: center;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdh-match-card__score {
    display: flex;
    align-items: center;
    gap: 4px;
    font-weight: 900;
    font-size: 1.3em;
    color: var(--fdh-text-bright);
    font-family: var(--fdh-font-mono);
    flex-shrink: 0;
}

.fdh-match-card__divider {
    color: var(--fdh-text-muted);
    font-weight: 400;
}

.fdh-match-card__time {
    font-weight: 700;
    font-size: 1em;
    color: var(--fdh-secondary);
    font-family: var(--fdh-font-mono);
    flex-shrink: 0;
}

.fdh-match-card__result {
    font-size: 0.65em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 2px 10px;
    border-radius: 4px;
}

.fdh-match-card__result--win {
    background: rgba(var(--fdh-primary-rgb), 0.12);
    color: var(--fdh-win);
}

.fdh-match-card__result--draw {
    background: rgba(255, 193, 7, 0.12);
    color: var(--fdh-draw);
}

.fdh-match-card__result--loss {
    background: rgba(255, 82, 82, 0.12);
    color: var(--fdh-loss);
}

.fdh-match-card__result--upcoming {
    background: var(--fdh-secondary-dim);
    color: var(--fdh-secondary);
}

/* ---------------------------------------------------------------
   Match List (Kampe tab)
   --------------------------------------------------------------- */
.fdh-match-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fdh-match-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    text-decoration: none;
    color: var(--fdh-text);
    transition: all 0.2s ease;
    position: relative;
}

.fdh-match-row::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    border-radius: 3px 0 0 3px;
    background: transparent;
    transition: background 0.2s ease;
}

.fdh-match-row--win::before {
    background: var(--fdh-win);
}

.fdh-match-row--draw::before {
    background: var(--fdh-draw);
}

.fdh-match-row--loss::before {
    background: var(--fdh-loss);
}

.fdh-match-row:hover {
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-border-light);
}

.fdh-match-row__date {
    font-size: 0.82em;
    font-weight: 500;
    color: var(--fdh-text-muted);
    min-width: 80px;
    flex-shrink: 0;
}

.fdh-match-row__time {
    font-size: 0.85em;
    font-weight: 700;
    color: var(--fdh-secondary);
    font-family: var(--fdh-font-mono);
    min-width: 45px;
    flex-shrink: 0;
}

.fdh-match-row__teams {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
}

.fdh-match-row__team {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9em;
    font-weight: 600;
    color: var(--fdh-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-match-row__team img {
    width: 20px;
    height: 20px;
    object-fit: contain;
    flex-shrink: 0;
}

.fdh-match-row__vs {
    font-size: 0.7em;
    font-weight: 700;
    color: var(--fdh-text-muted);
    text-transform: uppercase;
    flex-shrink: 0;
}

.fdh-match-row__score {
    font-weight: 800;
    font-size: 1.05em;
    color: var(--fdh-text-bright);
    font-family: var(--fdh-font-mono);
    min-width: 50px;
    text-align: center;
    flex-shrink: 0;
}

.fdh-match-row__result {
    font-size: 0.7em;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.fdh-match-row__result--win {
    background: rgba(var(--fdh-primary-rgb), 0.15);
    color: var(--fdh-win);
}

.fdh-match-row__result--draw {
    background: rgba(255, 193, 7, 0.15);
    color: var(--fdh-draw);
}

.fdh-match-row__result--loss {
    background: rgba(255, 82, 82, 0.15);
    color: var(--fdh-loss);
}

.fdh-match-row__league {
    font-size: 0.72em;
    font-weight: 500;
    color: var(--fdh-text-muted);
    min-width: 80px;
    text-align: right;
    flex-shrink: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Match row — TV integrated pill at far right */
.fdh-match-row__tv {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    margin-left: auto;
    padding: 2px 8px 2px 5px;
    background: var(--fdh-overlay-light);
    border-radius: 20px;
    border: 1px solid var(--fdh-border-light);
}

.fdh-match-row__tv-icon {
    flex-shrink: 0;
    color: var(--fdh-text-muted);
    opacity: 0.7;
}

.fdh-match-row__tv .fdh-tv-badges {
    gap: 3px;
}

.fdh-match-row__tv .fdh-tv-badges__logo {
    max-height: 14px;
    max-width: 48px;
}

.fdh-match-row__tv .fdh-tv-badges__badge:not(.fdh-tv-badges__badge--has-logo) {
    font-size: 0.55rem;
    padding: 1px 5px;
}

/* ---------------------------------------------------------------
   Overview Grid (Two-column layout)
   --------------------------------------------------------------- */
.fdh-overview-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 24px;
    align-items: start;
}

.fdh-overview-grid__main {
    min-width: 0;
}

.fdh-overview-grid__sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ---------------------------------------------------------------
   Hero Header - Team-specific overrides
   --------------------------------------------------------------- */
.fdh-hero--team .fdh-hero__img--team {
    width: 140px;
    height: 140px;
}

.fdh-hero__badge--league {
    background: rgba(67, 116, 186, 0.28);
    border-color: rgba(142, 181, 232, 0.4);
    color: #ffffff;
}

.fdh-hero__badge--position {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.3);
    color: #ffffff;
}

.fdh-hero__badge--position .fdh-hero__badge-value {
    font-family: var(--fdh-font-mono);
    font-weight: 800;
    color: #ffffff;
}

/* ---------------------------------------------------------------
   Coach Page: Current Team
   --------------------------------------------------------------- */
.fdh-entity__section-title {
    font-family: var(--fdh-font-heading);
    font-size: 0.85em;
    font-weight: 600;
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid transparent;
    border-image: linear-gradient(90deg, var(--fdh-accent), var(--fdh-primary), transparent) 1;
    color: var(--fdh-text);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fdh-coach-current {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 20px 24px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
}

.fdh-coach-current__logo {
    width: 48px;
    height: 48px;
    object-fit: contain;
    flex-shrink: 0;
    filter: var(--fdh-logo-shadow);
}

.fdh-coach-current__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fdh-coach-current__team-name {
    font-weight: 800;
    font-size: 1.1em;
    color: var(--fdh-text-bright);
    text-decoration: none;
}

.fdh-coach-current__team-name:hover {
    color: var(--fdh-primary);
}

.fdh-coach-current__since {
    font-size: 0.82em;
    color: var(--fdh-text-muted);
    font-weight: 500;
}

/* ---------------------------------------------------------------
   Coach Page: Career History
   --------------------------------------------------------------- */
.fdh-career-history {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    overflow: hidden;
}

.fdh-career-history__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88em;
}

.fdh-career-history__table thead th {
    padding: 10px 12px;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted);
    border-bottom: 1px solid var(--fdh-border-light);
    text-align: left;
    background: var(--fdh-bg-elevated);
}

.fdh-career-history__table tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--fdh-divider);
    vertical-align: middle;
    color: var(--fdh-text-secondary);
}

.fdh-career-history__table tbody tr:last-child td {
    border-bottom: none;
}

.fdh-career-history__table tbody tr:hover td {
    background: var(--fdh-overlay-hover);
}

.fdh-career-history__row--current td {
    background: var(--fdh-primary-dim) !important;
}

.fdh-career-history__team {
    display: flex;
    align-items: center;
    gap: 8px;
}

.fdh-career-history__team img {
    width: 20px;
    height: 20px;
    object-fit: contain;
    flex-shrink: 0;
}

.fdh-career-history__team a {
    color: var(--fdh-text);
    text-decoration: none;
    font-weight: 600;
}

.fdh-career-history__team a:hover {
    color: var(--fdh-primary);
}

.fdh-career-history__active {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 4px;
    font-size: 0.85em;
    font-weight: 700;
    background: var(--fdh-primary-dim);
    color: var(--fdh-primary);
}

/* ---------------------------------------------------------------
   Venue Page: Home Teams
   --------------------------------------------------------------- */
.fdh-venue-teams {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fdh-venue-teams__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    transition: all 0.15s ease;
}

.fdh-venue-teams__item:hover {
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-border-light);
}

.fdh-venue-teams__logo {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex-shrink: 0;
    filter: var(--fdh-logo-shadow);
}

.fdh-venue-teams__name {
    font-weight: 700;
    font-size: 0.95em;
    color: var(--fdh-text);
    text-decoration: none;
}

.fdh-venue-teams__name:hover {
    color: var(--fdh-primary);
}

/* ---------------------------------------------------------------
   Country Page: Section Cards & Overview Grid
   --------------------------------------------------------------- */

/* Wrap entity sections in cards on the country page */
.fdh-entity--country .fdh-entity__section {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    padding: 20px 24px;
    box-shadow: var(--fdh-shadow-xs);
}

/* AI section already has its own card styling — reset to avoid double wrapping */
.fdh-entity--country .fdh-entity__section--ai {
    background: transparent;
    border: none;
    padding: 0;
    box-shadow: none;
}

/* Standings and other tables inside card sections — remove their own borders */
.fdh-entity--country .fdh-entity__section .fdh-standings,
.fdh-entity--country .fdh-entity__section .fdh-standings-snapshot {
    border: none;
    border-radius: 0;
    background: transparent;
}

/* Teams grid inside card section — reduce gap for tighter layout */
.fdh-entity--country .fdh-entity__section--clubs {
    overflow: visible;
}

/* Overview tab: side-by-side grid for standings + scorers */
.fdh-country-overview-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: start;
}

.fdh-country-overview-grid > .fdh-entity__section {
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .fdh-country-overview-grid {
        grid-template-columns: 1fr;
    }

    .fdh-entity--country .fdh-entity__section {
        padding: 16px 18px;
    }
}

/* ---------------------------------------------------------------
   Country Page: Leagues by Tier
   --------------------------------------------------------------- */
.fdh-country-leagues {
    margin-bottom: 20px;
}

.fdh-country-leagues:last-child {
    margin-bottom: 0;
}

.fdh-country-leagues__tier-heading {
    font-size: 0.78em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-primary);
    margin: 0 0 10px;
    padding: 6px 12px;
    background: var(--fdh-primary-dim);
    border-radius: var(--fdh-radius);
    display: inline-block;
}

.fdh-country-leagues__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fdh-country-leagues__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    transition: all 0.15s ease;
    position: relative;
}

.fdh-country-leagues__item:hover {
    background: var(--fdh-bg-card-hover);
    border-color: rgba(var(--fdh-primary-rgb), 0.25);
    box-shadow: var(--fdh-shadow-xs);
}

.fdh-country-leagues__logo {
    width: 24px;
    height: 24px;
    object-fit: contain;
    flex-shrink: 0;
}

.fdh-country-leagues__name {
    font-weight: 700;
    font-size: 0.92em;
    color: var(--fdh-text);
    text-decoration: none;
    flex: 1;
}

.fdh-country-leagues__name:hover {
    color: var(--fdh-primary);
}

.fdh-country-leagues__season {
    font-size: 0.78em;
    font-weight: 600;
    color: var(--fdh-text-muted);
    font-family: var(--fdh-font-mono);
}

.fdh-country-leagues__type,
.fdh-country-leagues__type-badge {
    font-size: 0.7em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 3px 10px;
    border-radius: 10px;
    background: var(--fdh-accent-dim);
    color: var(--fdh-accent);
    border: 1px solid rgba(242, 181, 11, 0.2);
    white-space: nowrap;
}

/* ---------------------------------------------------------------
   Competition Page: Season Selector
   --------------------------------------------------------------- */
.fdh-entity__season-selector {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 24px;
    padding: 10px 16px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
}

.fdh-entity__season-selector label {
    font-size: 0.82em;
    font-weight: 600;
    color: var(--fdh-text-secondary);
    white-space: nowrap;
}

.fdh-entity__season-selector select {
    padding: 6px 12px;
    background: var(--fdh-bg-input);
    border: 1px solid var(--fdh-border-light);
    border-radius: var(--fdh-radius);
    color: var(--fdh-text);
    font-size: 0.88em;
    font-weight: 600;
    font-family: var(--fdh-font);
    cursor: pointer;
    transition: border-color 0.2s ease;
}

.fdh-entity__season-selector select:focus {
    border-color: var(--fdh-primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--fdh-primary-dim);
}

/* ---------------------------------------------------------------
   Hero Header - Venue image override
   --------------------------------------------------------------- */
.fdh-hero--venue .fdh-hero__img {
    width: 140px;
    height: 100px;
    border-radius: var(--fdh-radius);
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, 0.18);
}

/* ---------------------------------------------------------------
   Trophies List (player/coach meritter)
   --------------------------------------------------------------- */
.fdh-trophies {
    margin-top: 1rem;
}

.fdh-trophies__heading {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--fdh-text-bright);
    margin: 0 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--fdh-border);
}

.fdh-trophies__group {
    margin-bottom: 1.25rem;
}

.fdh-trophies__group-heading {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--fdh-text);
    margin: 0 0 0.75rem;
}

.fdh-trophies__count {
    font-size: 0.85rem;
    font-weight: 400;
    color: var(--fdh-text-muted);
}

/* Trophy icons via pseudo-elements */
.fdh-trophies__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-size: 14px;
    line-height: 1;
    flex-shrink: 0;
}

.fdh-trophies__icon--winner {
    background: rgba(255, 215, 0, 0.15);
    color: #ffd700;
}

.fdh-trophies__icon--winner::before {
    content: "\1F3C6";
}

.fdh-trophies__icon--runner-up {
    background: rgba(192, 192, 192, 0.15);
    color: #c0c0c0;
}

.fdh-trophies__icon--runner-up::before {
    content: "\1F948";
}

.fdh-trophies__icon--third {
    background: rgba(205, 127, 50, 0.15);
    color: #cd7f32;
}

.fdh-trophies__icon--third::before {
    content: "\1F949";
}

.fdh-trophies__icon--other {
    background: var(--fdh-bg-elevated);
    color: var(--fdh-text-secondary);
}

.fdh-trophies__icon--other::before {
    content: "\1F3C5";
}

.fdh-trophies__items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.5rem;
}

.fdh-trophies__item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    transition: border-color 0.2s ease;
}

.fdh-trophies__item:hover {
    border-color: var(--fdh-border-light);
}

.fdh-trophies__league {
    flex: 1;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--fdh-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-trophies__season {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--fdh-text-secondary);
    flex-shrink: 0;
}

.fdh-trophies__country {
    font-size: 0.75rem;
    color: var(--fdh-text-muted);
    flex-shrink: 0;
}

/* Winner group gets a subtle gold left border */
.fdh-trophies__group--winner .fdh-trophies__item {
    border-left: 3px solid rgba(255, 215, 0, 0.4);
}

.fdh-trophies__group--runner-up .fdh-trophies__item {
    border-left: 3px solid rgba(192, 192, 192, 0.3);
}

.fdh-trophies__group--third .fdh-trophies__item {
    border-left: 3px solid rgba(205, 127, 50, 0.3);
}

/* Mobile: stack items */
@media (max-width: 480px) {
    .fdh-trophies__items {
        grid-template-columns: 1fr;
    }
}

/* (Match banner styles consolidated above) */

/* =================================================================
   TEAM PAGE DESIGN ENHANCEMENTS
   Premium dark design with glassmorphism, subtle gradients,
   and refined micro-interactions for GeneratePress compatibility.
   ================================================================= */

/* ---------------------------------------------------------------
   Enhanced Hero Header — Team
   Premium gradient with animated logo glow
   --------------------------------------------------------------- */
.fdh-hero--team {
    padding: 40px 44px;
    /* Inherits the brand gradient from .fdh-hero — no override needed here. */
}

.fdh-hero--team .fdh-hero__image {
    position: relative;
}

.fdh-hero--team .fdh-hero__image::after {
    content: '';
    position: absolute;
    inset: -16px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, transparent 70%);
    pointer-events: none;
    z-index: -1;
}

.fdh-hero--team .fdh-hero__img--team {
    width: 150px;
    height: 150px;
    filter: drop-shadow(0 6px 20px rgba(0, 0, 0, 0.35));
    transition: filter 0.3s ease, transform 0.3s ease;
}

.fdh-hero--team:hover .fdh-hero__img--team {
    filter: drop-shadow(0 8px 28px rgba(0, 0, 0, 0.45));
    transform: scale(1.03);
}

.fdh-hero--team .fdh-hero__title {
    font-size: 2.2em;
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
    background: none;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.20);
}

.fdh-hero--team .fdh-hero__subtitle {
    font-size: 1em;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.82);
}

.fdh-hero--team .fdh-hero__badges {
    margin-top: 4px;
    gap: 10px;
}

.fdh-hero--team .fdh-hero__badge {
    padding: 6px 14px;
    font-size: 0.8em;
    transition: all 0.25s ease;
}

.fdh-hero--team .fdh-hero__badge:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.35);
}

.fdh-hero--team .fdh-hero__badge--position {
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.fdh-hero--team .fdh-hero__badge--position .fdh-hero__badge-value {
    font-size: 1.1em;
    color: #ffffff;
}

.fdh-hero__badge--points {
    background: rgba(67, 116, 186, 0.35);
    border-color: rgba(142, 181, 232, 0.45);
    color: #ffffff;
}

.fdh-hero__badge--points .fdh-hero__badge-value {
    font-family: var(--fdh-font-mono);
    font-weight: 800;
    font-size: 1.1em;
}

.fdh-hero__badge--points .fdh-hero__badge-label {
    color: rgba(var(--fdh-secondary-rgb), 0.7);
}

.fdh-hero__badge--points .fdh-hero__badge-label::after {
    display: none;
}

/* Form display in hero header */
.fdh-hero__form {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    padding: 8px 14px;
    background: rgba(255, 255, 255, 0.10);
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    width: fit-content;
}

.fdh-hero__form-label {
    font-size: 0.72em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgba(255, 255, 255, 0.7);
}

.fdh-hero__form .fdh-standings__form {
    gap: 4px;
}

.fdh-hero__form .fdh-standings__form-dot {
    width: 10px;
    height: 10px;
}

.fdh-hero__form .fdh-standings__form-dot--win {
    box-shadow: 0 0 6px rgba(var(--fdh-primary-rgb), 0.4);
}

.fdh-hero__form .fdh-standings__form-dot--loss {
    box-shadow: 0 0 6px rgba(255, 82, 82, 0.4);
}

.fdh-hero__form-record {
    font-size: 0.78em;
    font-weight: 600;
    color: var(--fdh-text-secondary);
    font-family: var(--fdh-font-mono);
    padding-left: 10px;
    border-left: 1px solid var(--fdh-border-light);
}

/* ---------------------------------------------------------------
   Enhanced Tab Navigation
   Glassmorphism pill tabs with smooth indicator
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-tabs {
    background: var(--fdh-gradient-glass);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--fdh-border);
    padding: 6px;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.2);
    position: sticky;
    top: 0;
    z-index: 100;
}

.fdh-entity--team .fdh-tabs__tab {
    padding: 12px 28px;
    font-size: 0.88em;
    font-weight: 600;
    border-radius: 8px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.fdh-entity--team .fdh-tabs__tab:hover:not(.fdh-tabs__tab--active) {
    background: var(--fdh-overlay-light);
    color: var(--fdh-text);
}

.fdh-entity--team .fdh-tabs__tab--active {
    background: linear-gradient(135deg, var(--fdh-primary) 0%, #0fa864 100%);
    box-shadow:
        0 4px 16px rgba(var(--fdh-primary-rgb), 0.3),
        0 1px 3px rgba(var(--fdh-primary-rgb), 0.2);
}

.fdh-entity--team .fdh-tabs__badge {
    font-size: 0.7em;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 11px;
    transition: all 0.3s ease;
}

/* ---------------------------------------------------------------
   Enhanced Match Carousel Cards
   Glassmorphism cards with gradient result indicators
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-match-card {
    width: 210px;
    padding: 16px 14px;
    background: linear-gradient(
        180deg,
        rgba(26, 30, 42, 0.95) 0%,
        rgba(20, 23, 32, 0.98) 100%
    );
    border: 1px solid var(--fdh-border);
    border-radius: 10px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    /* Light text on dark card background */
    color: #e5e7eb;
}

.fdh-entity--team .fdh-match-card__league {
    color: #9ca3af;
}

.fdh-entity--team .fdh-match-card__date {
    color: #9ca3af;
}

.fdh-entity--team .fdh-match-card__name {
    color: #d1d5db;
}

.fdh-entity--team .fdh-match-card__score {
    color: #f9fafb;
}

.fdh-entity--team .fdh-match-card__divider {
    color: #6b7280;
}

.fdh-entity--team .fdh-match-card__time {
    color: var(--fdh-secondary);
}

.fdh-entity--team .fdh-match-card::before {
    height: 3px;
    border-radius: 10px 10px 0 0;
}

.fdh-entity--team .fdh-match-card--win::before {
    background: linear-gradient(90deg, var(--fdh-win), rgba(var(--fdh-primary-rgb), 0.5));
    box-shadow: 0 0 12px rgba(var(--fdh-primary-rgb), 0.3);
}

.fdh-entity--team .fdh-match-card--loss::before {
    background: linear-gradient(90deg, var(--fdh-loss), rgba(255, 82, 82, 0.5));
    box-shadow: 0 0 12px rgba(255, 82, 82, 0.3);
}

.fdh-entity--team .fdh-match-card--draw::before {
    background: linear-gradient(90deg, var(--fdh-draw), rgba(255, 193, 7, 0.5));
}

.fdh-entity--team .fdh-match-card--upcoming::before {
    background: linear-gradient(90deg, var(--fdh-secondary), rgba(var(--fdh-secondary-rgb), 0.5));
}

.fdh-entity--team .fdh-match-card:hover {
    transform: translateY(-4px);
    box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.4),
        0 0 0 1px var(--fdh-overlay-medium);
    border-color: var(--fdh-border-light);
}

.fdh-entity--team .fdh-match-card__score {
    font-size: 1.4em;
    letter-spacing: 2px;
}

.fdh-entity--team .fdh-match-card__team img {
    width: 32px;
    height: 32px;
    filter: var(--fdh-logo-shadow);
}

.fdh-entity--team .fdh-match-card__result {
    font-size: 0.68em;
    padding: 3px 12px;
    border-radius: 6px;
    letter-spacing: 0.1em;
}

/* Carousel — TV footer strip inside match cards */
.fdh-match-card__tv {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: calc(100% + 28px);
    margin: 2px -14px -16px;
    padding: 5px 10px;
    background: var(--fdh-overlay-light);
    border-top: 1px solid var(--fdh-border-light);
    border-radius: 0 0 var(--fdh-radius) var(--fdh-radius);
}

.fdh-match-card__tv-icon {
    flex-shrink: 0;
    color: var(--fdh-text-muted);
    opacity: 0.6;
}

.fdh-match-card__tv .fdh-tv-badges {
    gap: 3px;
    justify-content: center;
}

.fdh-match-card__tv .fdh-tv-badges__badge {
    font-size: 0.5rem;
    padding: 1px 4px;
    border-radius: 2px;
}

.fdh-match-card__tv .fdh-tv-badges__logo {
    max-height: 12px;
    min-height: 10px;
    max-width: 42px;
}

.fdh-match-card__tv .fdh-tv-badges__more {
    font-size: 0.5rem;
    padding: 1px 3px;
}

/* Carousel buttons — team page override removed, now handled by base .fdh-carousel__btn */

/* ---------------------------------------------------------------
   Enhanced Section Headers
   Refined typography and subtle accent line
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-section-heading {
    font-size: 0.88em;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--fdh-text);
    padding-bottom: 12px;
    border-bottom: 2px solid var(--fdh-border);
    position: relative;
}

.fdh-entity--team .fdh-section-header .fdh-section-heading::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 40px;
    height: 2px;
    background: var(--fdh-primary);
    border-radius: 1px;
}

.fdh-entity--team .fdh-section-header {
    margin-bottom: 18px;
}

.fdh-entity--team .fdh-link-btn {
    font-size: 0.78em;
    padding: 7px 16px;
    border-radius: 8px;
    border: 1px solid var(--fdh-border-light);
    background: var(--fdh-overlay-subtle);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    transition: all 0.25s ease;
}

.fdh-entity--team .fdh-link-btn:hover {
    background: var(--fdh-primary-dim);
    border-color: rgba(var(--fdh-primary-rgb), 0.3);
    box-shadow: 0 0 12px rgba(var(--fdh-primary-rgb), 0.15);
}

/* ---------------------------------------------------------------
   Enhanced Overview Grid
   Better proportions and sidebar refinement
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-overview-grid {
    grid-template-columns: 1fr 340px;
    gap: 28px;
}

/* ---------------------------------------------------------------
   Enhanced AI Content Block (Team page)
   Glassmorphism card with gradient accent
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-ai-content {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-left: 3px solid var(--fdh-primary);
    padding: 28px;
    border-radius: var(--fdh-radius-lg);
    position: relative;
    overflow: hidden;
    color: var(--fdh-text);
}

.fdh-entity--team .fdh-ai-content::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -30%;
    width: 60%;
    height: 200%;
    background: radial-gradient(ellipse, rgba(var(--fdh-primary-rgb), 0.03) 0%, transparent 60%);
    pointer-events: none;
}

.fdh-entity--team .fdh-ai-content__body {
    font-size: 0.95em;
    line-height: 1.85;
    color: var(--fdh-text-secondary);
}

.fdh-entity--team .fdh-ai-content__body p:first-child::first-letter {
    font-size: 2.4em;
    float: left;
    line-height: 0.85;
    margin-right: 8px;
    margin-top: 4px;
    font-weight: 800;
    color: var(--fdh-primary);
    font-family: var(--fdh-font);
}

/* ---------------------------------------------------------------
   Enhanced Standings Snapshot
   Cleaner look with subtle row highlight
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-standings-snapshot {
    border-radius: var(--fdh-radius-lg);
    border: 1px solid var(--fdh-border);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}

.fdh-entity--team .fdh-standings-snapshot .fdh-standings-snapshot__heading {
    padding: 14px 18px 12px;
    background: rgba(255, 255, 255, 0.06);
    font-size: 0.8em;
    margin: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    color: #9ca3af;
}

.fdh-entity--team .fdh-standings-snapshot__table thead th {
    padding: 12px 10px;
    font-size: 0.72em;
}

.fdh-entity--team .fdh-standings-snapshot__table tbody td {
    padding: 11px 10px;
}

.fdh-entity--team .fdh-standings-snapshot__row--highlight td {
    background: rgba(var(--fdh-primary-rgb), 0.08) !important;
    border-bottom-color: rgba(var(--fdh-primary-rgb), 0.1);
}

.fdh-entity--team .fdh-standings-snapshot__row--highlight td:first-child {
    box-shadow: inset 3px 0 0 var(--fdh-primary);
}

/* ---------------------------------------------------------------
   Enhanced Coach Card
   Premium glassmorphism card
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-coach-card {
    background: linear-gradient(
        180deg,
        rgba(26, 30, 42, 0.95) 0%,
        rgba(20, 23, 32, 0.98) 100%
    );
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    padding: 0;
    overflow: hidden;
    transition: all 0.3s ease;
    /* Light text on dark card background */
    color: #e5e7eb;
}

.fdh-entity--team .fdh-coach-card__heading {
    color: #9ca3af;
}

.fdh-entity--team .fdh-coach-card__name {
    color: #f9fafb;
}

.fdh-entity--team .fdh-coach-card__name a {
    color: #f9fafb;
}

.fdh-entity--team .fdh-coach-card__name a:hover {
    color: var(--fdh-secondary);
}

.fdh-entity--team .fdh-coach-card__label {
    color: #9ca3af;
}

.fdh-entity--team .fdh-coach-card__value {
    color: #d1d5db;
}

.fdh-entity--team .fdh-coach-card:hover {
    border-color: var(--fdh-border-light);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
}

.fdh-entity--team .fdh-coach-card__heading {
    padding: 14px 18px 12px;
    margin: 0;
    background: rgba(255, 255, 255, 0.06);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0;
}

.fdh-entity--team .fdh-coach-card__inner {
    padding: 18px;
    gap: 18px;
}

.fdh-entity--team .fdh-coach-card__photo {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    border: 2px solid var(--fdh-border-light);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
}

.fdh-entity--team .fdh-coach-card:hover .fdh-coach-card__photo {
    border-color: rgba(var(--fdh-primary-rgb), 0.3);
    box-shadow: 0 4px 16px rgba(var(--fdh-primary-rgb), 0.15);
}

.fdh-entity--team .fdh-coach-card__photo-placeholder {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--fdh-bg-elevated), var(--fdh-bg-card));
}

.fdh-entity--team .fdh-coach-card__name {
    font-size: 1.05em;
    margin-bottom: 12px;
}

.fdh-entity--team .fdh-coach-card__detail {
    padding: 6px 0;
    font-size: 0.83em;
}

.fdh-entity--team .fdh-coach-card__value--accent {
    font-family: var(--fdh-font-mono);
    font-weight: 700;
}

/* ---------------------------------------------------------------
   Enhanced Venue Card
   Full-bleed image with gradient overlay
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-venue-card {
    background: linear-gradient(
        180deg,
        rgba(26, 30, 42, 0.95) 0%,
        rgba(20, 23, 32, 0.98) 100%
    );
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    overflow: hidden;
    transition: all 0.3s ease;
    /* Light text on dark card background */
    color: #e5e7eb;
}

.fdh-entity--team .fdh-venue-card:hover {
    border-color: var(--fdh-border-light);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
}

.fdh-entity--team .fdh-venue-card__heading {
    padding: 14px 18px 12px;
    background: rgba(255, 255, 255, 0.06);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    color: #9ca3af;
}

.fdh-entity--team .fdh-venue-card__media {
    position: relative;
    max-height: 200px;
}

.fdh-entity--team .fdh-venue-card__media::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: var(--fdh-gradient-fade-up);
    pointer-events: none;
}

.fdh-entity--team .fdh-venue-card__image {
    height: 200px;
    filter: brightness(0.85) saturate(0.9);
    transition: all 0.4s ease;
}

.fdh-entity--team .fdh-venue-card:hover .fdh-venue-card__image {
    filter: brightness(1) saturate(1);
    transform: scale(1.02);
}

.fdh-entity--team .fdh-venue-card__body {
    padding: 16px 18px;
}

.fdh-entity--team .fdh-venue-card__name {
    font-size: 1.05em;
    color: #f9fafb;
}

.fdh-entity--team .fdh-venue-card__name-link {
    color: #f9fafb;
}

.fdh-entity--team .fdh-venue-card__name-link:hover {
    color: var(--fdh-secondary);
}

.fdh-entity--team .fdh-venue-card__detail {
    padding: 5px 0;
    font-size: 0.83em;
    border-color: rgba(255, 255, 255, 0.08);
}

.fdh-entity--team .fdh-venue-card__label {
    color: #9ca3af;
}

.fdh-entity--team .fdh-venue-card__value {
    color: #d1d5db;
}

/* ---------------------------------------------------------------
   Enhanced Transfers Table
   Cleaner compact design
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-transfers {
    border-radius: var(--fdh-radius-lg);
    border: 1px solid var(--fdh-border);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

.fdh-entity--team .fdh-transfers__table thead th {
    font-size: 0.72em;
    padding: 12px 10px;
}

.fdh-entity--team .fdh-transfers__table tbody td {
    padding: 11px 10px;
}

.fdh-entity--team .fdh-transfers__table tbody tr:hover td {
    background: var(--fdh-overlay-subtle);
}

.fdh-entity--team .fdh-transfers__player-photo {
    border: 2px solid var(--fdh-border-light);
    transition: border-color 0.2s ease;
}

.fdh-entity--team .fdh-transfers__table tbody tr:hover .fdh-transfers__player-photo {
    border-color: rgba(var(--fdh-primary-rgb), 0.3);
}

/* ---------------------------------------------------------------
   Enhanced Match List (Kampe tab)
   Premium row cards with hover lift
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-match-list {
    gap: 6px;
}

.fdh-entity--team .fdh-match-row {
    border-radius: 10px;
    border: 1px solid var(--fdh-divider);
    padding: 14px 18px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.fdh-entity--team .fdh-match-row::before {
    width: 4px;
    border-radius: 4px 0 0 4px;
}

.fdh-entity--team .fdh-match-row:hover {
    transform: translateX(4px);
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-border-light);
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.2);
}

.fdh-entity--team .fdh-match-row--win:hover {
    box-shadow:
        0 2px 16px rgba(0, 0, 0, 0.2),
        0 0 0 1px rgba(var(--fdh-primary-rgb), 0.1);
}

.fdh-entity--team .fdh-match-row--loss:hover {
    box-shadow:
        0 2px 16px rgba(0, 0, 0, 0.2),
        0 0 0 1px rgba(255, 82, 82, 0.1);
}

.fdh-entity--team .fdh-match-row__result {
    width: 28px;
    height: 28px;
    font-size: 0.72em;
    transition: all 0.25s ease;
}

.fdh-entity--team .fdh-match-row:hover .fdh-match-row__result--win {
    box-shadow: 0 0 12px rgba(var(--fdh-primary-rgb), 0.3);
}

.fdh-entity--team .fdh-match-row:hover .fdh-match-row__result--loss {
    box-shadow: 0 0 12px rgba(255, 82, 82, 0.3);
}

.fdh-entity--team .fdh-match-row__score {
    font-size: 1.1em;
    letter-spacing: 1px;
}

.fdh-entity--team .fdh-match-row__team img {
    filter: var(--fdh-logo-shadow);
}

/* ---------------------------------------------------------------
   Enhanced Squad Grid
   Card-based player rows with hover effects
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-squad__heading {
    font-size: 0.88em;
    letter-spacing: 0.05em;
    border-bottom-width: 2px;
}

.fdh-entity--team .fdh-squad__group {
    margin-bottom: 24px;
}

.fdh-entity--team .fdh-squad__group-title {
    font-size: 0.78em;
    padding: 8px 16px;
    border-radius: 8px;
    margin-bottom: 12px;
    background: linear-gradient(135deg, var(--fdh-primary-dim), rgba(var(--fdh-primary-rgb), 0.05));
    border: 1px solid rgba(var(--fdh-primary-rgb), 0.1);
}

.fdh-entity--team .fdh-squad__grid {
    gap: 4px;
}

.fdh-entity--team .fdh-squad__player {
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid var(--fdh-divider);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.fdh-entity--team .fdh-squad__player:hover {
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-border-light);
    transform: translateX(4px);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

.fdh-entity--team .fdh-squad__photo {
    width: 46px;
    height: 46px;
    border: 2px solid var(--fdh-border-light);
    transition: all 0.25s ease;
}

.fdh-entity--team .fdh-squad__player:hover .fdh-squad__photo {
    border-color: rgba(var(--fdh-primary-rgb), 0.3);
    box-shadow: 0 0 12px rgba(var(--fdh-primary-rgb), 0.1);
}

.fdh-entity--team .fdh-squad__number {
    width: 22px;
    height: 22px;
    font-size: 0.68em;
    background: linear-gradient(135deg, var(--fdh-bg-elevated), var(--fdh-bg-card));
    border: 1px solid var(--fdh-border-light);
}

.fdh-entity--team .fdh-squad__player-name {
    font-size: 0.92em;
}

.fdh-entity--team .fdh-squad__stat-val {
    font-size: 0.95em;
}

.fdh-entity--team .fdh-squad__stat--goals .fdh-squad__stat-val {
    text-shadow: 0 0 8px rgba(var(--fdh-primary-rgb), 0.3);
}

/* ---------------------------------------------------------------
   Enhanced Standings Tab
   Refined competition blocks with better hierarchy
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-standings-block {
    margin-bottom: 32px;
    border-radius: var(--fdh-radius-lg);
    overflow: hidden;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.15);
}

.fdh-entity--team .fdh-standings-block__heading {
    padding: 18px 20px;
    background: linear-gradient(
        135deg,
        rgba(30, 45, 59, 0.8) 0%,
        rgba(26, 30, 42, 0.9) 100%
    );
    border: 1px solid var(--fdh-border);
    border-bottom: 1px solid var(--fdh-border);
    font-size: 0.9em;
    border-radius: var(--fdh-radius-lg) var(--fdh-radius-lg) 0 0;
}

.fdh-entity--team .fdh-standings-block__logo {
    filter: var(--fdh-logo-shadow);
}

.fdh-entity--team .fdh-standings-block .fdh-standings {
    border: 1px solid var(--fdh-divider);
    border-top: none;
}

.fdh-entity--team .fdh-standings-block .fdh-standings:last-child {
    border-radius: 0 0 var(--fdh-radius-lg) var(--fdh-radius-lg);
}

.fdh-entity--team .fdh-standings__table thead th {
    padding: 12px 10px;
    font-size: 0.72em;
}

.fdh-entity--team .fdh-standings__table tbody td {
    padding: 11px 10px;
}

.fdh-entity--team .fdh-standings__table tbody tr.fdh-standings-snapshot__row--highlight td {
    background: rgba(var(--fdh-primary-rgb), 0.08) !important;
}

.fdh-entity--team .fdh-standings__table tbody tr.fdh-standings-snapshot__row--highlight td:first-child {
    box-shadow: inset 3px 0 0 var(--fdh-primary);
}

.fdh-entity--team .fdh-standings__form-dot {
    width: 9px;
    height: 9px;
    transition: transform 0.15s ease;
}

.fdh-entity--team .fdh-standings__form-dot:hover {
    transform: scale(1.4);
}

.fdh-entity--team .fdh-standings__form-dot--win {
    box-shadow: 0 0 6px rgba(var(--fdh-primary-rgb), 0.4);
}

/* ---------------------------------------------------------------
   Team Page Responsive Overrides
   --------------------------------------------------------------- */
@media (max-width: 960px) {
    .fdh-entity--team .fdh-overview-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .fdh-entity--team .fdh-overview-grid__sidebar {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 16px;
    }

    .fdh-entity--team .fdh-tabs {
        position: static;
    }
}

@media (max-width: 768px) {
    .fdh-hero--team {
        padding: 28px 20px;
    }

    .fdh-hero--team .fdh-hero__img--team {
        width: 100px;
        height: 100px;
    }

    .fdh-hero--team .fdh-hero__title {
        font-size: 1.6em;
    }

    .fdh-entity--team .fdh-tabs__tab {
        padding: 10px 18px;
        font-size: 0.82em;
    }

    .fdh-entity--team .fdh-match-card {
        width: 180px;
        padding: 12px 10px;
    }

    .fdh-entity--team .fdh-match-row {
        padding: 12px 14px;
    }

    .fdh-entity--team .fdh-match-row:hover {
        transform: none;
    }

    .fdh-entity--team .fdh-squad__player:hover {
        transform: none;
    }

    .fdh-entity--team .fdh-overview-grid__sidebar {
        grid-template-columns: 1fr;
    }

    .fdh-entity--team .fdh-coach-card__inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .fdh-entity--team .fdh-coach-card__detail {
        flex-direction: column;
        align-items: center;
        gap: 2px;
    }

    .fdh-entity--team .fdh-coach-card__value {
        text-align: center;
    }
}

@media (max-width: 480px) {
    .fdh-hero--team {
        padding: 22px 16px;
    }

    .fdh-hero--team .fdh-hero__img--team {
        width: 80px;
        height: 80px;
    }

    .fdh-hero--team .fdh-hero__title {
        font-size: 1.35em;
    }

    .fdh-hero--team .fdh-hero__badge {
        font-size: 0.72em;
        padding: 4px 10px;
    }

    .fdh-entity--team .fdh-tabs__tab {
        padding: 9px 14px;
        font-size: 0.78em;
    }

    .fdh-entity--team .fdh-match-card {
        width: 160px;
        padding: 12px 16px;
    }

    .fdh-entity--team .fdh-match-card__score {
        font-size: 1.15em;
    }

    .fdh-entity--team .fdh-match-card__team img {
        width: 24px;
        height: 24px;
    }

    .fdh-entity--team .fdh-squad__player {
        flex-wrap: wrap;
    }

    .fdh-entity--team .fdh-squad__player-stats {
        width: 100%;
        justify-content: center;
        padding-top: 8px;
        border-top: 1px solid var(--fdh-divider);
    }
}

/* ---------------------------------------------------------------
   Team Page — Page Load Animations
   Staggered fade-in for premium feel
   --------------------------------------------------------------- */
@keyframes fdh-fade-up {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fdh-entity--team .fdh-hero--team {
    animation: fdh-fade-up 0.5s ease-out both;
}

.fdh-entity--team .fdh-tabs {
    animation: fdh-fade-up 0.5s ease-out 0.1s both;
}

.fdh-entity--team .fdh-tab-panel--active > .fdh-entity__section:nth-child(1) {
    animation: fdh-fade-up 0.4s ease-out 0.15s both;
}

.fdh-entity--team .fdh-tab-panel--active > .fdh-entity__section:nth-child(2),
.fdh-entity--team .fdh-tab-panel--active > .fdh-overview-grid {
    animation: fdh-fade-up 0.4s ease-out 0.25s both;
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .fdh-entity--team .fdh-hero--team,
    .fdh-entity--team .fdh-tabs,
    .fdh-entity--team .fdh-tab-panel--active > .fdh-entity__section,
    .fdh-entity--team .fdh-tab-panel--active > .fdh-overview-grid {
        animation: none;
    }

    .fdh-entity--team .fdh-match-card:hover,
    .fdh-entity--team .fdh-match-row:hover,
    .fdh-entity--team .fdh-squad__player:hover {
        transform: none;
    }
}

/* ---------------------------------------------------------------
   Team Page — Scrollbar Styling
   Custom scrollbar for carousel and tables
   --------------------------------------------------------------- */
.fdh-entity--team .fdh-table-wrap::-webkit-scrollbar {
    height: 4px;
}

.fdh-entity--team .fdh-table-wrap::-webkit-scrollbar-track {
    background: var(--fdh-bg-card);
    border-radius: 2px;
}

.fdh-entity--team .fdh-table-wrap::-webkit-scrollbar-thumb {
    background: var(--fdh-overlay-medium);
    border-radius: 2px;
}

.fdh-entity--team .fdh-table-wrap::-webkit-scrollbar-thumb:hover {
    background: var(--fdh-overlay-medium);
}

.fdh-entity--team .fdh-table-wrap {
    scrollbar-width: thin;
    scrollbar-color: var(--fdh-overlay-medium) var(--fdh-bg-card);
}

/* ===============================================================
   PLAYER PAGE ENHANCEMENTS
   Career timeline, detailed stats, injuries, tabs
   =============================================================== */

/* ---------------------------------------------------------------
   Tab Navigation — Shared base (player, team, competition, coach)
   Pill / segmented-control style with smooth transitions
   --------------------------------------------------------------- */
.fdh-tab-nav {
    display: flex;
    gap: 4px;
    padding: 5px;
    margin: 0 0 28px;
    background: var(--fdh-bg-elevated);
    border-radius: var(--fdh-radius-lg);
    border: 1px solid var(--fdh-border);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    position: sticky;
    top: 0;
    z-index: 50;

    /* Hidden scrollbar */
    scrollbar-width: none;          /* Firefox */
    -ms-overflow-style: none;       /* IE / Edge */
}
.fdh-tab-nav::-webkit-scrollbar {
    display: none;                  /* Chrome / Safari */
}

/* Individual tab button */
.fdh-tab-nav .fdh-tab-nav__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: calc(var(--fdh-radius-lg) - 3px);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    text-decoration: none;
    color: var(--fdh-text-secondary);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: color 0.2s ease,
                background-color 0.2s ease,
                box-shadow 0.2s ease;
    flex-shrink: 0;
}

/* Hover state */
.fdh-tab-nav .fdh-tab-nav__btn:hover {
    color: var(--fdh-text-primary);
    background: var(--fdh-overlay-hover);
}

/* Active / selected tab */
.fdh-tab-nav .fdh-tab-nav__btn--active {
    color: var(--fdh-text-bright);
    background: var(--fdh-bg-card);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.10),
                0 1px 2px rgba(0, 0, 0, 0.06);
}
.fdh-tab-nav .fdh-tab-nav__btn--active:hover {
    background: var(--fdh-bg-card);
}

/* Count badge */
.fdh-tab-nav .fdh-tab-nav__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1;
    border-radius: 10px;
    background: var(--fdh-overlay-medium);
    color: var(--fdh-text-muted);
    transition: background-color 0.2s ease,
                color 0.2s ease;
}

/* Badge inside active tab */
.fdh-tab-nav .fdh-tab-nav__btn--active .fdh-tab-nav__count {
    background: var(--fdh-accent-dim);
    color: var(--fdh-accent);
}

/* Badge inside hovered (non-active) tab */
.fdh-tab-nav .fdh-tab-nav__btn:hover .fdh-tab-nav__count {
    background: var(--fdh-overlay-medium);
    color: var(--fdh-text-secondary);
}

/* Mobile: smaller padding, tighter spacing */
@media (max-width: 600px) {
    .fdh-tab-nav {
        gap: 2px;
        padding: 4px;
        margin-bottom: 20px;
    }
    .fdh-tab-nav .fdh-tab-nav__btn {
        padding: 8px 14px;
        font-size: 0.75rem;
    }
    .fdh-tab-nav .fdh-tab-nav__count {
        min-width: 18px;
        height: 18px;
        padding: 0 5px;
        font-size: 0.625rem;
    }
}

/* Matches tab — wrap table in card styling */
.fdh-entity--player .fdh-tab-panel .fdh-table-wrap {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    overflow: hidden;
}

.fdh-entity--player .fdh-tab-panel .fdh-table-wrap table {
    margin: 0;
}

/* ---------------------------------------------------------------
   Player Page — Career Timeline
   --------------------------------------------------------------- */
.fdh-career-timeline {
    margin-bottom: 32px;
}

.fdh-career-timeline__heading {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
    margin: 0 0 20px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--fdh-accent);
}

.fdh-career-timeline__track {
    position: relative;
    padding-left: 24px;
}

/* Vertical line down the left side */
.fdh-career-timeline__track::before {
    content: '';
    position: absolute;
    top: 0;
    left: 9px;
    bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom, var(--fdh-accent), rgba(var(--fdh-primary-rgb), 0.15));
    border-radius: 1px;
}

.fdh-career-timeline__item {
    position: relative;
    margin-bottom: 16px;
}

.fdh-career-timeline__item:last-child {
    margin-bottom: 0;
}

/* Timeline dot */
.fdh-career-timeline__dot {
    position: absolute;
    left: -24px;
    top: 18px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fdh-career-timeline__dot::before {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--fdh-bg-card);
    border: 2px solid var(--fdh-accent);
    z-index: 1;
}

.fdh-career-timeline__item--current .fdh-career-timeline__dot::before {
    background: var(--fdh-accent);
    box-shadow: 0 0 12px rgba(var(--fdh-primary-rgb), 0.5);
}

/* Pulse animation for current club */
.fdh-career-timeline__dot-pulse {
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(var(--fdh-primary-rgb), 0.25);
    animation: fdh-timeline-pulse 2s ease-in-out infinite;
}

@keyframes fdh-timeline-pulse {
    0%, 100% { transform: scale(1); opacity: 0.5; }
    50% { transform: scale(1.8); opacity: 0; }
}

/* Timeline card */
.fdh-career-timeline__card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: 12px;
    padding: 20px 24px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.fdh-career-timeline__card:hover {
    border-color: var(--fdh-border-light);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}

.fdh-career-timeline__item--current .fdh-career-timeline__card {
    border-color: rgba(var(--fdh-primary-rgb), 0.2);
    background: linear-gradient(135deg, var(--fdh-bg-card), rgba(var(--fdh-primary-rgb), 0.04));
}

.fdh-career-timeline__card-header {
    display: flex;
    align-items: center;
    gap: 12px;
}

.fdh-career-timeline__logo {
    width: 40px;
    height: 40px;
    object-fit: contain;
    border-radius: 6px;
    background: var(--fdh-overlay-light);
    padding: 4px;
    flex-shrink: 0;
}

.fdh-career-timeline__info {
    flex: 1;
    min-width: 0;
}

.fdh-career-timeline__team-name {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

a.fdh-career-timeline__team-name:hover {
    color: var(--fdh-accent);
}

.fdh-career-timeline__dates {
    display: block;
    font-size: 0.8rem;
    color: var(--fdh-text-secondary);
    margin-top: 2px;
}

.fdh-career-timeline__current-badge {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fdh-accent);
    background: rgba(var(--fdh-primary-rgb), 0.1);
    padding: 3px 8px;
    border-radius: 6px;
    flex-shrink: 0;
}

/* Transfer meta (type/fee) */
.fdh-career-timeline__transfer-meta {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--fdh-divider);
}

.fdh-career-timeline__transfer-type {
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
    background: var(--fdh-overlay-light);
    padding: 2px 8px;
    border-radius: 4px;
}

.fdh-career-timeline__fee {
    font-size: 0.75rem;
    color: var(--fdh-accent);
    font-weight: 600;
}

/* Stint stats row */
.fdh-career-timeline__stats {
    display: flex;
    gap: 16px;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--fdh-divider);
}

.fdh-career-timeline__stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.fdh-career-timeline__stat-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 1rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
}

.fdh-career-timeline__stat-label {
    font-size: 0.65rem;
    color: var(--fdh-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ---------------------------------------------------------------
   Player Page — Detailed Stats
   --------------------------------------------------------------- */
.fdh-detailed-stats {
    margin-bottom: 32px;
}

.fdh-detailed-stats__heading {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
    margin: 0 0 4px;
}

.fdh-detailed-stats__context {
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
    margin: 0 0 20px;
}

.fdh-detailed-stats__groups {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px;
}

.fdh-detailed-stats__group {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: 12px;
    padding: 22px 24px;
    transition: border-color 0.2s;
}

.fdh-detailed-stats__group:hover {
    border-color: var(--fdh-border-light);
}

.fdh-detailed-stats__group-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--fdh-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Group icons */
.fdh-detailed-stats__group-icon {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    flex-shrink: 0;
}

.fdh-detailed-stats__group-icon--attack {
    background: linear-gradient(135deg, #ff6b35, #ff3d00);
}

.fdh-detailed-stats__group-icon--creative {
    background: linear-gradient(135deg, #42a5f5, #1565c0);
}

.fdh-detailed-stats__group-icon--discipline {
    background: linear-gradient(135deg, #fdd835, #f57f17);
}

.fdh-detailed-stats__group-icon--goalkeeping {
    background: linear-gradient(135deg, #66bb6a, #2e7d32);
}

.fdh-detailed-stats__items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
    gap: 12px;
}

.fdh-detailed-stats__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
}

.fdh-detailed-stats__item-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--fdh-text-primary);
}

.fdh-detailed-stats__item--goals .fdh-detailed-stats__item-value {
    color: var(--fdh-accent);
}

.fdh-detailed-stats__item--yellow .fdh-detailed-stats__item-value {
    color: #fdd835;
}

.fdh-detailed-stats__item--red .fdh-detailed-stats__item-value {
    color: #ef5350;
}

.fdh-detailed-stats__item-label {
    font-size: 0.65rem;
    color: var(--fdh-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.2;
}

/* ---------------------------------------------------------------
   Player Page — Injury History
   --------------------------------------------------------------- */
.fdh-player-injuries {
    margin-bottom: 32px;
}

.fdh-player-injuries__heading {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
    margin: 0 0 20px;
    padding-bottom: 8px;
    border-bottom: 2px solid #ef5350;
}

.fdh-player-injuries__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.fdh-player-injuries__item {
    display: flex;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-player-injuries__item:last-child {
    border-bottom: none;
}

.fdh-player-injuries__icon {
    flex-shrink: 0;
    width: 24px;
    display: flex;
    justify-content: center;
    padding-top: 4px;
}

.fdh-player-injuries__icon-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ef5350;
    box-shadow: 0 0 6px rgba(239, 83, 80, 0.4);
}

.fdh-player-injuries__item--suspended .fdh-player-injuries__icon-dot {
    background: var(--fdh-draw);
    box-shadow: 0 0 6px rgba(255, 193, 7, 0.4);
}

.fdh-player-injuries__content {
    flex: 1;
}

.fdh-player-injuries__header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 4px;
}

.fdh-player-injuries__type {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--fdh-text-primary);
}

.fdh-player-injuries__date {
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
}

.fdh-player-injuries__desc {
    font-size: 0.8rem;
    color: var(--fdh-text-secondary);
    margin: 0 0 4px;
}

.fdh-player-injuries__team {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
}

.fdh-player-injuries__team img {
    border-radius: 2px;
}

/* ---------------------------------------------------------------
   Player Page — Season Stats Enhancement
   --------------------------------------------------------------- */
.fdh-season-stats__col-num--goals {
    color: var(--fdh-accent);
    font-weight: 700;
}

.fdh-season-stats__col-num--rating {
    font-weight: 600;
}

.fdh-season-stats__col--extended {
    color: var(--fdh-text-secondary);
    font-size: 0.85em;
}

/* ===============================================================
   FRONT PAGE
   Hero, match lists, scorers, transfers
   =============================================================== */

.fdh-frontpage {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ---------------------------------------------------------------
   Front Page — Hero Banner
   --------------------------------------------------------------- */
.fdh-frontpage__hero {
    background: linear-gradient(135deg, #192250 0%, #2d3a6e 60%, #4374BA 100%);
    border: none;
    border-radius: 16px;
    padding: 48px 32px;
    margin-bottom: 32px;
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(25, 34, 80, 0.15);
}

.fdh-frontpage__hero::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(var(--fdh-primary-rgb), 0.06) 0%, transparent 70%);
    pointer-events: none;
}

.fdh-frontpage__hero-inner {
    position: relative;
    z-index: 1;
}

.fdh-frontpage__hero-title {
    font-size: 2rem;
    font-weight: 800;
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
    margin: 0 0 8px;
}

.fdh-frontpage__hero-subtitle {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.75);
    margin: 0 0 24px;
}

.fdh-frontpage__hero-stats {
    display: flex;
    justify-content: center;
    gap: 32px;
}

.fdh-frontpage__hero-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    position: relative;
}

.fdh-frontpage__hero-stat--live {
    position: relative;
}

.fdh-frontpage__hero-stat-value {
    font-family: 'Montserrat', 'JetBrains Mono', monospace;
    font-size: 2rem;
    font-weight: 800;
    color: #ffffff;
}

.fdh-frontpage__hero-stat--live .fdh-frontpage__hero-stat-value {
    color: #ffffff;
}

.fdh-frontpage__hero-stat-label {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.65);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
}

.fdh-frontpage__live-pulse {
    position: absolute;
    top: 4px;
    right: -12px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ef5350;
    animation: fdh-live-pulse 1.5s ease-in-out infinite;
}

@keyframes fdh-live-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.5); }
}

/* ---------------------------------------------------------------
   Front Page — Live Now Ticker
   --------------------------------------------------------------- */
/* Live Now — light list layout with full team names */
.fdh-livenow {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 0;
    margin-bottom: 24px;
    overflow: hidden;
}

.fdh-livenow__header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px;
    border-bottom: 1px solid #f0f1f3;
    background: #fafafa;
}

.fdh-livenow__pulse {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ef5350;
    animation: fdh-live-pulse 1.5s ease-in-out infinite;
    flex-shrink: 0;
}

.fdh-livenow__title {
    font-size: 14px;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fdh-livenow__grid {
    display: flex;
    flex-direction: column;
}

.fdh-livenow__card {
    display: block;
    padding: 12px 20px;
    text-decoration: none;
    color: #1a1a2e;
    transition: background 0.12s;
}

.fdh-livenow__card + .fdh-livenow__card {
    border-top: 1px solid #f0f1f3;
}

.fdh-livenow__card:hover {
    background: #f8f9fa;
}

.fdh-livenow__status {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
}

.fdh-livenow__status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ef5350;
    animation: fdh-live-pulse 1.5s ease-in-out infinite;
}

.fdh-livenow__status-text {
    font-size: 11px;
    font-weight: 700;
    color: #ef5350;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fdh-livenow__teams {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
}

.fdh-livenow__team {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.fdh-livenow__team:first-child {
    justify-content: flex-end;
    text-align: right;
}

.fdh-livenow__team:last-child {
    justify-content: flex-start;
}

.fdh-livenow__logo {
    flex-shrink: 0;
    border-radius: 2px;
}

.fdh-livenow__team-name {
    font-size: 14px;
    font-weight: 600;
    color: #1a1a2e;
}

.fdh-livenow__score {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    padding: 4px 14px;
    background: rgba(239, 83, 80, 0.06);
    border-radius: 6px;
    min-width: 70px;
    justify-content: center;
}

.fdh-livenow__score-home,
.fdh-livenow__score-away {
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: #d32f2f;
}

.fdh-livenow__score-sep {
    font-size: 16px;
    color: #bbb;
}

.fdh-livenow__league {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 6px;
    font-size: 11px;
    color: #999;
}

.fdh-livenow__league img {
    border-radius: 2px;
}

@media (max-width: 600px) {
    .fdh-livenow__card {
        padding: 10px 14px;
    }
    .fdh-livenow__team-name {
        font-size: 12px;
    }
    .fdh-livenow__score-home,
    .fdh-livenow__score-away {
        font-size: 18px;
    }
}

/* ---------------------------------------------------------------
   Front Page — Grid Layout
   --------------------------------------------------------------- */
.fdh-frontpage__grid {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 24px;
    margin-bottom: 40px;
}

@media (max-width: 960px) {
    .fdh-frontpage__grid {
        grid-template-columns: 1fr;
    }
}

/* ---------------------------------------------------------------
   Front Page — Section Headings
   --------------------------------------------------------------- */
.fdh-frontpage__section {
    margin-bottom: 24px;
}

.fdh-frontpage__section-heading {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--fdh-border);
    display: flex;
    align-items: center;
    gap: 8px;
}

.fdh-frontpage__section-date {
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--fdh-text-secondary);
    margin-left: auto;
}

.fdh-frontpage__section-icon {
    width: 6px;
    height: 20px;
    border-radius: 3px;
    flex-shrink: 0;
}

.fdh-frontpage__section-icon--today {
    background: var(--fdh-accent);
}

.fdh-frontpage__section-icon--results {
    background: #42a5f5;
}

.fdh-frontpage__section-icon--upcoming {
    background: #ffa726;
}

.fdh-frontpage__section-icon--scorers {
    background: #ff6b35;
}

.fdh-frontpage__section-icon--transfers {
    background: #ab47bc;
}

.fdh-frontpage__empty {
    color: var(--fdh-text-secondary);
    font-size: 0.9rem;
    padding: 20px;
    text-align: center;
    background: var(--fdh-bg-card);
    border-radius: 10px;
}

/* ---------------------------------------------------------------
   Front Page — League Group (Today's Matches)
   --------------------------------------------------------------- */
.fdh-frontpage__league-group {
    margin-bottom: 16px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-divider);
    border-radius: 12px;
    overflow: hidden;
}

.fdh-frontpage__league-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--fdh-overlay-hover);
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-frontpage__league-logo {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.fdh-frontpage__league-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fdh-text-primary);
}

.fdh-frontpage__league-country {
    font-size: 0.7rem;
    color: var(--fdh-text-secondary);
    margin-left: auto;
    background: var(--fdh-overlay-light);
    padding: 2px 6px;
    border-radius: 4px;
}

/* ---------------------------------------------------------------
   Front Page — Match Row (Today)
   --------------------------------------------------------------- */
.fdh-frontpage__match-list {
    display: flex;
    flex-direction: column;
}

.fdh-frontpage__match-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--fdh-divider);
    transition: background 0.15s;
}

.fdh-frontpage__match-row:last-child {
    border-bottom: none;
}

.fdh-frontpage__match-row:hover {
    background: var(--fdh-overlay-subtle);
}

.fdh-frontpage__match-row--live {
    background: rgba(var(--fdh-primary-rgb), 0.04);
}

.fdh-frontpage__match-row--live:hover {
    background: rgba(var(--fdh-primary-rgb), 0.08);
}

.fdh-frontpage__match-team {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.fdh-frontpage__match-team--home {
    justify-content: flex-end;
    text-align: right;
}

.fdh-frontpage__match-team--away {
    justify-content: flex-start;
}

.fdh-frontpage__match-team-name {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--fdh-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-frontpage__match-logo {
    width: 24px;
    height: 24px;
    object-fit: contain;
    flex-shrink: 0;
}

/* Score center */
.fdh-frontpage__match-score {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 56px;
    justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 1rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
}

.fdh-frontpage__score-sep {
    color: var(--fdh-text-secondary);
}

.fdh-frontpage__match-time {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
}

.fdh-frontpage__live-badge {
    font-size: 0.6rem;
    font-weight: 700;
    background: var(--fdh-accent);
    color: var(--fdh-bg-page);
    padding: 1px 5px;
    border-radius: 4px;
    margin-left: 4px;
    animation: fdh-live-pulse 1.5s ease-in-out infinite;
}

/* ---------------------------------------------------------------
   Front Page — Recent Results
   --------------------------------------------------------------- */
.fdh-frontpage__results-list,
.fdh-frontpage__upcoming-list {
    display: flex;
    flex-direction: column;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-divider);
    border-radius: 12px;
    overflow: hidden;
}

.fdh-frontpage__result-row,
.fdh-frontpage__upcoming-row {
    display: grid;
    grid-template-columns: 48px 1fr auto 1fr 80px;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--fdh-divider);
    transition: background 0.15s;
}

.fdh-frontpage__result-row:last-child,
.fdh-frontpage__upcoming-row:last-child {
    border-bottom: none;
}

.fdh-frontpage__result-row:hover,
.fdh-frontpage__upcoming-row:hover {
    background: var(--fdh-overlay-subtle);
}

.fdh-frontpage__result-date {
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
    font-family: 'JetBrains Mono', monospace;
}

.fdh-frontpage__result-league {
    font-size: 0.7rem;
    color: var(--fdh-text-secondary);
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-frontpage__match-score--result {
    min-width: 44px;
}

/* ---------------------------------------------------------------
   Front Page — Upcoming
   --------------------------------------------------------------- */
.fdh-frontpage__upcoming-row {
    grid-template-columns: 64px 1fr auto 1fr 80px;
}

.fdh-frontpage__upcoming-datetime {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.fdh-frontpage__upcoming-date {
    font-size: 0.7rem;
    color: var(--fdh-text-secondary);
}

.fdh-frontpage__upcoming-time {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fdh-text-primary);
}

.fdh-frontpage__vs {
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
    min-width: 24px;
    text-align: center;
}

/* ---------------------------------------------------------------
   TV Channel Badges — Reusable Component
   Colored badges per broadcaster, inspired by bold.dk / sofabold.dk
   --------------------------------------------------------------- */

/* Wrapper */
.fdh-tv-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

/* Individual badge */
.fdh-tv-badges__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    white-space: nowrap;
    border-radius: 4px;
    border: 1px solid var(--fdh-border-light);
    text-decoration: none;
    letter-spacing: 0.01em;
    line-height: 1;
    transition: opacity 0.15s, transform 0.15s;
}

a.fdh-tv-badges__badge:hover {
    opacity: 0.85;
    transform: translateY(-1px);
}

/* Badge with logo image */
.fdh-tv-badges__badge--has-logo {
    background: transparent;
    border-color: transparent;
    padding: 2px;
}

/* Dark mode: give logo badges a light pill background so dark logos stay visible */
body.fdh-theme-dark .fdh-tv-badges__badge--has-logo {
    background: rgba(255, 255, 255, 0.92);
    border-radius: var(--fdh-radius-xs);
    padding: 3px 6px;
}

.fdh-tv-badges__logo {
    display: block;
    height: auto;
    width: auto;
    object-fit: contain;
}

/* Small size (inline in match rows) */
.fdh-tv-badges--sm .fdh-tv-badges__badge {
    font-size: 0.6rem;
    padding: 2px 6px;
    border-radius: 3px;
}

.fdh-tv-badges--sm .fdh-tv-badges__logo {
    max-height: 16px;
    min-height: 14px;
    max-width: 56px;
}

/* Large size (TV guide section, standalone, match info) */
.fdh-tv-badges--lg .fdh-tv-badges__badge {
    font-size: 0.7rem;
    padding: 3px 8px;
    border-radius: 4px;
}

.fdh-tv-badges--lg .fdh-tv-badges__logo {
    max-height: 22px;
    max-width: 80px;
}

/* Match info TV row — allow badges to wrap */
.fdh-match-info__value--tv {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
}

.fdh-match-info__value--tv .fdh-tv-badges {
    gap: 6px;
}

/* More indicator (+N) */
.fdh-tv-badges__more {
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--fdh-text-secondary);
    background: var(--fdh-overlay-light);
    padding: 2px 5px;
    border-radius: 3px;
}

/* ---------------------------------------------------------------
   Front Page — TV Channels in match rows
   --------------------------------------------------------------- */
.fdh-frontpage__tv-channels {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-shrink: 0;
}

/* Match row with TV: adjust grid to 4 columns */
.fdh-frontpage__match-row:has(.fdh-frontpage__tv-channels) {
    grid-template-columns: 1fr auto 1fr auto;
}

/* Upcoming row with TV: add TV column */
.fdh-frontpage__upcoming-row--has-tv {
    grid-template-columns: 64px 1fr auto 1fr auto;
}

@media (max-width: 768px) {
    .fdh-tv-badges--sm .fdh-tv-badges__badge {
        font-size: 0.55rem;
        padding: 1px 4px;
    }

    /* Hide TV footer in carousel on smaller screens */
    .fdh-match-card__tv {
        display: none;
    }

    /* Constrain TV in match rows on smaller screens */
    .fdh-match-row__tv {
        max-width: 110px;
    }
}

@media (max-width: 480px) {
    .fdh-frontpage__tv-channels {
        display: none;
    }

    /* Hide TV badges in match rows on very small screens */
    .fdh-match-row__tv,
    .fdh-now-next__tv,
    .fdh-matches__tv {
        display: none;
    }
}

/* ---------------------------------------------------------------
   Front Page — TV Guide Section (Sidebar)
   Inspired by bold.dk/tv, tvsporten.dk, sofabold.dk
   --------------------------------------------------------------- */
.fdh-frontpage__section--tvguide {
    position: relative;
}

.fdh-frontpage__section-icon--tv {
    background: #42a5f5;
}

.fdh-tvguide {
    display: flex;
    flex-direction: column;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-divider);
    border-radius: 12px;
    overflow: hidden;
}

/* Day group */
.fdh-tvguide__day {
    border-bottom: 1px solid var(--fdh-border);
}

.fdh-tvguide__day:last-child {
    border-bottom: none;
}

.fdh-tvguide__day-heading {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    margin: 0;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
    background: var(--fdh-overlay-hover);
    text-transform: capitalize;
    letter-spacing: 0.02em;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-tvguide__day--today .fdh-tvguide__day-heading {
    background: rgba(var(--fdh-primary-rgb), 0.05);
    color: var(--fdh-accent);
}

.fdh-tvguide__day-badge {
    font-size: 0.6rem;
    font-weight: 800;
    color: var(--fdh-live);
    background: rgba(255, 55, 55, 0.12);
    padding: 1px 6px;
    border-radius: 3px;
    animation: fdh-live-pulse 1.5s ease-in-out infinite;
}

/* Match row in TV guide */
.fdh-tvguide__match {
    display: grid;
    grid-template-columns: 44px 1fr;
    grid-template-rows: auto auto;
    gap: 0 10px;
    padding: 10px 14px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--fdh-divider);
    transition: background 0.15s;
}

.fdh-tvguide__match:last-child {
    border-bottom: none;
}

.fdh-tvguide__match:hover {
    background: var(--fdh-overlay-subtle);
}

.fdh-tvguide__match--live {
    background: rgba(255, 55, 55, 0.04);
    border-left: 3px solid var(--fdh-live);
}

.fdh-tvguide__match--ft {
    opacity: 0.6;
}

/* Time column */
.fdh-tvguide__match-time {
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
}

.fdh-tvguide__live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--fdh-live);
    animation: fdh-live-pulse 1.5s ease-in-out infinite;
    margin-bottom: 2px;
}

.fdh-tvguide__live-text {
    font-size: 0.65rem;
    font-weight: 800;
    color: var(--fdh-live);
}

.fdh-tvguide__ft-text {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--fdh-text-secondary);
}

/* Match info */
.fdh-tvguide__match-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.fdh-tvguide__match-teams {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.fdh-tvguide__team-logo {
    width: 18px;
    height: 18px;
    object-fit: contain;
    flex-shrink: 0;
}

.fdh-tvguide__team-name {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fdh-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 120px;
}

.fdh-tvguide__vs-text {
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
}

.fdh-tvguide__score {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--fdh-text-primary);
    background: var(--fdh-overlay-light);
    padding: 1px 6px;
    border-radius: 3px;
}

.fdh-tvguide__match--live .fdh-tvguide__score {
    color: var(--fdh-live);
    background: rgba(255, 55, 55, 0.1);
}

/* Meta row (league) */
.fdh-tvguide__match-meta {
    display: flex;
    align-items: center;
    gap: 4px;
}

.fdh-tvguide__league-logo {
    width: 14px;
    height: 14px;
    object-fit: contain;
    flex-shrink: 0;
}

.fdh-tvguide__league-name {
    font-size: 0.7rem;
    color: var(--fdh-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Channels row */
.fdh-tvguide__channels {
    grid-column: 2;
    padding-top: 4px;
}

.fdh-tvguide__channels .fdh-tv-badges {
    gap: 4px;
}

/* ---------------------------------------------------------------
   Front Page — Standings Snapshot (Sidebar)
   --------------------------------------------------------------- */
.fdh-frontpage__standings-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-divider);
    border-radius: 12px;
    overflow: hidden;
}

.fdh-frontpage__standings-table th {
    text-align: left;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fdh-text-muted);
    padding: 6px 8px;
    border-bottom: 1px solid var(--fdh-border);
}

.fdh-frontpage__standings-table td {
    padding: 8px;
    border-bottom: 1px solid var(--fdh-border-light, var(--fdh-border));
}

.fdh-frontpage__standings-table tr:last-child td {
    border-bottom: none;
}

.fdh-frontpage__standings-pos {
    width: 28px;
    text-align: center;
    font-weight: 600;
}

.fdh-frontpage__standings-num {
    width: 36px;
    text-align: center;
}

.fdh-frontpage__standings-pts {
    width: 36px;
    text-align: center;
    font-weight: 700;
}

.fdh-frontpage__standings-team-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--fdh-text);
    text-decoration: none;
    font-weight: 500;
}

.fdh-frontpage__standings-team-link:hover {
    color: var(--fdh-primary);
}

.fdh-frontpage__standings-team-link img {
    border-radius: 2px;
    flex-shrink: 0;
}

/* ---------------------------------------------------------------
   Front Page — Top Scorers (Sidebar)
   --------------------------------------------------------------- */
.fdh-frontpage__scorers-list {
    display: flex;
    flex-direction: column;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-divider);
    border-radius: 12px;
    overflow: hidden;
}

.fdh-frontpage__scorer-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--fdh-divider);
    transition: background 0.15s;
}

.fdh-frontpage__scorer-row:last-child {
    border-bottom: none;
}

.fdh-frontpage__scorer-row:hover {
    background: var(--fdh-overlay-subtle);
}

.fdh-frontpage__scorer-rank {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--fdh-text-secondary);
    min-width: 20px;
    text-align: center;
}

.fdh-frontpage__scorer-row:nth-child(1) .fdh-frontpage__scorer-rank,
.fdh-frontpage__scorer-row:nth-child(2) .fdh-frontpage__scorer-rank,
.fdh-frontpage__scorer-row:nth-child(3) .fdh-frontpage__scorer-rank {
    color: var(--fdh-accent);
}

.fdh-frontpage__scorer-player {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

.fdh-frontpage__scorer-photo {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--fdh-overlay-light);
    flex-shrink: 0;
}

.fdh-frontpage__scorer-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.fdh-frontpage__scorer-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fdh-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-frontpage__scorer-team {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.7rem;
    color: var(--fdh-text-secondary);
}

.fdh-frontpage__scorer-team img {
    border-radius: 2px;
}

.fdh-frontpage__scorer-stats {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex-shrink: 0;
}

.fdh-frontpage__scorer-goals {
    font-family: 'JetBrains Mono', monospace;
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--fdh-accent);
}

.fdh-frontpage__scorer-assists {
    font-size: 0.65rem;
    color: var(--fdh-text-secondary);
}

/* ---------------------------------------------------------------
   Front Page — Latest Transfers (Sidebar)
   --------------------------------------------------------------- */
.fdh-frontpage__transfers-list {
    display: flex;
    flex-direction: column;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-divider);
    border-radius: 12px;
    overflow: hidden;
}

.fdh-frontpage__transfer-row {
    padding: 10px 14px;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-frontpage__transfer-row:last-child {
    border-bottom: none;
}

.fdh-frontpage__transfer-player {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.fdh-frontpage__transfer-photo {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--fdh-overlay-light);
    flex-shrink: 0;
}

.fdh-frontpage__transfer-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fdh-text-primary);
    text-decoration: none;
}

a.fdh-frontpage__transfer-name:hover {
    color: var(--fdh-accent);
}

.fdh-frontpage__transfer-clubs {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
    padding-left: 36px;
}

.fdh-frontpage__transfer-clubs img {
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.fdh-frontpage__transfer-arrow {
    color: var(--fdh-text-secondary);
    font-size: 0.8rem;
}

.fdh-frontpage__transfer-to-name {
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
}

.fdh-frontpage__transfer-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    padding-left: 36px;
}

.fdh-frontpage__transfer-fee {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--fdh-accent);
}

.fdh-frontpage__transfer-type {
    font-size: 0.7rem;
    color: var(--fdh-text-secondary);
    background: var(--fdh-overlay-light);
    padding: 1px 6px;
    border-radius: 3px;
}

.fdh-frontpage__transfer-date {
    font-size: 0.65rem;
    color: var(--fdh-text-secondary);
}

/* ---------------------------------------------------------------
   Front Page — Responsive
   --------------------------------------------------------------- */
@media (max-width: 768px) {
    .fdh-frontpage__hero {
        padding: 28px 20px;
    }

    .fdh-frontpage__hero-title {
        font-size: 1.5rem;
    }

    .fdh-frontpage__hero-stats {
        gap: 20px;
    }

    .fdh-frontpage__hero-stat-value {
        font-size: 1.5rem;
    }

    .fdh-frontpage__result-row,
    .fdh-frontpage__upcoming-row {
        grid-template-columns: 36px 1fr auto 1fr;
    }

    .fdh-frontpage__result-league {
        display: none;
    }

    .fdh-frontpage__match-team-name {
        font-size: 0.8rem;
    }

    .fdh-frontpage__match-logo {
        width: 20px;
        height: 20px;
    }
}

@media (max-width: 480px) {
    .fdh-frontpage__hero-stats {
        gap: 12px;
    }

    .fdh-frontpage__hero-stat-value {
        font-size: 1.25rem;
    }

    .fdh-career-timeline__stats {
        flex-wrap: wrap;
        gap: 12px 20px;
    }

    .fdh-detailed-stats__groups {
        grid-template-columns: 1fr;
    }
}

/* GeneratePress override for front page */
.fdh-frontpage-active .content-area,
.page-template-front-page .content-area,
.fdh-frontpage-wrapper .content-area {
    max-width: 1240px;
    margin: 0 auto;
    padding: 24px 16px;
}

.fdh-frontpage-active .inside-article,
.page-template-front-page .inside-article,
.fdh-frontpage-wrapper .inside-article {
    padding: 0;
}

.fdh-frontpage-active .entry-content,
.page-template-front-page .entry-content,
.fdh-frontpage-wrapper .entry-content {
    margin: 0;
}

/* Force text color on frontpage for GeneratePress links */
.fdh-frontpage-active .site-header {
    background-color: var(--fdh-bg-deep);
}

.fdh-frontpage-active .site-header a {
    color: var(--fdh-text);
}


/* ===============================================================
   NEW COMPONENT SECTIONS
   Added 2026-02-27
   =============================================================== */


/* ---------------------------------------------------------------
   Team Statistics
   --------------------------------------------------------------- */
.fdh-team-stats__section {
    margin-bottom: 2rem;
}

.fdh-team-stats__section h3 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: var(--fdh-text);
}

/* Stat Cards Grid */
.fdh-stat-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 12px;
    margin-bottom: 1rem;
}

.fdh-stat-card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 16px;
    text-align: center;
}

.fdh-stat-card__value {
    display: block;
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--fdh-text);
    line-height: 1.2;
}

.fdh-stat-card__label {
    display: block;
    font-size: 0.8rem;
    color: var(--fdh-text-secondary);
    margin-top: 4px;
}

.fdh-stat-card--win .fdh-stat-card__value  { color: var(--fdh-win); }
.fdh-stat-card--draw .fdh-stat-card__value { color: var(--fdh-draw); }
.fdh-stat-card--loss .fdh-stat-card__value { color: var(--fdh-loss); }

/* Home / Away breakdown */
.fdh-team-stats__breakdown {
    background: var(--fdh-bg-card);
    border-radius: var(--fdh-radius);
    padding: 12px 16px;
}

.fdh-team-stats__row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid var(--fdh-border);
    font-size: 0.9rem;
}

.fdh-team-stats__row:last-child {
    border-bottom: none;
}

.fdh-team-stats__row-label {
    color: var(--fdh-text-secondary);
}

/* Formations list */
.fdh-formations-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fdh-formation-item {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 10px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 100px;
}

.fdh-formation-item__name {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--fdh-primary);
    font-family: var(--fdh-font-mono);
}

.fdh-formation-item__count {
    font-size: 0.8rem;
    color: var(--fdh-text-secondary);
}

/* Form dots — large variant */
.fdh-form-dots--large .fdh-form-dot {
    width: 32px;
    height: 32px;
    font-size: 0.85rem;
}


/* ---------------------------------------------------------------
   Player Match History
   --------------------------------------------------------------- */
.fdh-player-matches__table {
    width: 100%;
}

.fdh-player-matches__opponent {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--fdh-text);
    text-decoration: none;
}

.fdh-player-matches__opponent:hover {
    color: var(--fdh-primary);
}

.fdh-player-matches__ha {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 700;
    background: var(--fdh-overlay-light);
    color: var(--fdh-text-secondary);
}

/* Rating badges */
.fdh-rating {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 700;
    background: var(--fdh-overlay-light);
    color: var(--fdh-text-secondary);
}

.fdh-rating--good {
    background: rgba(var(--fdh-primary-rgb), 0.15);
    color: var(--fdh-win);
    box-shadow: 0 0 8px rgba(var(--fdh-primary-rgb), 0.2);
}

.fdh-rating--avg {
    background: rgba(255, 193, 7, 0.15);
    color: var(--fdh-draw);
}

.fdh-rating--poor {
    background: rgba(255, 82, 82, 0.15);
    color: var(--fdh-loss);
    box-shadow: 0 0 8px rgba(255, 82, 82, 0.15);
}


/* ---------------------------------------------------------------
   Match Player Ratings
   --------------------------------------------------------------- */
.fdh-match-ratings__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

@media (max-width: 600px) {
    .fdh-match-ratings__grid {
        grid-template-columns: 1fr;
    }
}

.fdh-match-ratings__team-name {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--fdh-primary);
}

.fdh-match-ratings__player {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 4px;
    border-bottom: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-xs);
    transition: background var(--fdh-transition-fast);
}

.fdh-match-ratings__player:hover {
    background: var(--fdh-overlay-hover);
}

.fdh-match-ratings__player:last-child {
    border-bottom: none;
}

.fdh-match-ratings__player-info {
    display: flex;
    align-items: center;
    gap: 10px;
}

.fdh-match-ratings__photo {
    border-radius: 50%;
    object-fit: cover;
}

.fdh-match-ratings__name {
    display: block;
    font-weight: 500;
    font-size: 0.9rem;
    color: var(--fdh-text);
}

.fdh-match-ratings__pos {
    display: block;
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
}

.fdh-match-ratings__stats {
    display: flex;
    align-items: center;
    gap: 8px;
}

.fdh-match-ratings__mins {
    font-size: 0.8rem;
    color: var(--fdh-text-secondary);
}

.fdh-match-ratings__goal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--fdh-primary);
    color: var(--fdh-text-bright);
    font-size: 0.7rem;
    font-weight: 700;
}

.fdh-match-ratings__assist {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--fdh-secondary);
    color: var(--fdh-text-bright);
    font-size: 0.7rem;
    font-weight: 700;
}


/* ---------------------------------------------------------------
   Sidelined / Absence History
   --------------------------------------------------------------- */
.fdh-sidelined {
    margin-top: 2rem;
}

.fdh-sidelined h3 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 1rem;
}


/* ---------------------------------------------------------------
   Competition Matches by Round
   --------------------------------------------------------------- */
.fdh-competition__round {
    margin-bottom: 2rem;
}

.fdh-competition__round-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--fdh-text-secondary);
    margin-bottom: 0.75rem;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--fdh-border);
}

.fdh-matches-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/*
 * Match card (grid row variant) — scoped under .fdh-matches-grid
 * to avoid conflict with the existing carousel .fdh-match-card.
 */
.fdh-matches-grid .fdh-match-card {
    flex-shrink: unset;
    width: auto;
    flex-direction: row;
    display: grid;
    grid-template-columns: 90px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    background: var(--fdh-bg-card);
    border: none;
    border-radius: var(--fdh-radius);
    text-decoration: none;
    color: var(--fdh-text);
    transition: background 0.15s;
    position: static;
    overflow: visible;
}

.fdh-matches-grid .fdh-match-card::before {
    display: none;
}

.fdh-matches-grid .fdh-match-card:hover {
    background: var(--fdh-overlay-subtle);
    transform: none;
    box-shadow: none;
    border-color: transparent;
}

.fdh-matches-grid .fdh-match-card__date {
    font-size: 0.8rem;
    color: var(--fdh-text-secondary);
    white-space: nowrap;
}

.fdh-matches-grid .fdh-match-card__teams {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fdh-matches-grid .fdh-match-card__team {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    font-size: 0.9rem;
}

.fdh-matches-grid .fdh-match-card__team img {
    flex-shrink: 0;
}

.fdh-matches-grid .fdh-match-card__score {
    font-weight: 700;
    font-size: 1rem;
    white-space: nowrap;
}

.fdh-matches-grid .fdh-match-card__status {
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
}

@media (max-width: 480px) {
    .fdh-matches-grid .fdh-match-card {
        grid-template-columns: 70px 1fr auto;
        padding: 8px 12px;
    }
}


/* ---------------------------------------------------------------
   Country League Pyramid (overview tab compact list)
   --------------------------------------------------------------- */
.fdh-country-pyramid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.fdh-country-pyramid__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-sm);
    transition: all 0.15s ease;
}

.fdh-country-pyramid__item:hover {
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-border-light);
}

.fdh-country-pyramid__tier-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--fdh-primary);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    flex-shrink: 0;
    line-height: 1;
}

.fdh-country-pyramid__logo {
    width: 20px;
    height: 20px;
    object-fit: contain;
    flex-shrink: 0;
}

.fdh-country-pyramid__name {
    font-weight: 600;
    font-size: 0.88em;
    color: var(--fdh-text);
    text-decoration: none;
    flex: 1;
}

a.fdh-country-pyramid__name:hover {
    color: var(--fdh-primary);
}


/* ---------------------------------------------------------------
   National Teams (overview tab cards)
   --------------------------------------------------------------- */
.fdh-national-teams {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.fdh-national-teams__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 18px 24px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    text-decoration: none;
    color: var(--fdh-text);
    min-width: 140px;
    transition: all 0.15s ease;
}

.fdh-national-teams__card:hover {
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-primary);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.fdh-national-teams__logo {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.fdh-national-teams__name {
    font-weight: 600;
    font-size: 0.9rem;
    text-align: center;
}

.fdh-national-teams__founded {
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
}

/* National team badge in leagues tab */
.fdh-country-leagues__type-badge--national {
    background: var(--fdh-primary);
    color: #fff;
}

.fdh-country-leagues__item--national {
    border-left: 3px solid var(--fdh-primary);
}

/* International competitions in leagues tab */
.fdh-country-leagues__type-badge--intl {
    background: #2c8c4e;
    color: #fff;
}

.fdh-country-leagues__item--international {
    border-left: 3px solid #2c8c4e;
}

/* Cup tier badge in pyramid (overview) */
.fdh-country-pyramid__tier-badge--cup {
    background: #e67e22;
}

/* International tier badge in pyramid (overview) */
.fdh-country-pyramid__tier-badge--intl {
    background: #2c8c4e;
    width: auto;
    min-width: 26px;
    padding: 0 6px;
    border-radius: 13px;
    font-size: 0.6rem;
    letter-spacing: 0.3px;
}

/* ---------------------------------------------------------------
   Scorers Preview (overview tab top-5)
   --------------------------------------------------------------- */
.fdh-scorers-preview {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: scorer;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.fdh-scorers-preview__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-sm);
    counter-increment: scorer;
    transition: all 0.15s ease;
}

.fdh-scorers-preview__item:hover {
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-border-light);
}

.fdh-scorers-preview__item::before {
    content: counter(scorer);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--fdh-bg-elevated);
    border: 1px solid var(--fdh-border-light);
    color: var(--fdh-text-secondary);
    font-size: 0.72rem;
    font-weight: 700;
    flex-shrink: 0;
}

/* Gold/silver/bronze for top 3 */
.fdh-scorers-preview__item:nth-child(1)::before {
    background: linear-gradient(135deg, #f5c518 0%, #e5a800 100%);
    color: #5a4300;
    border-color: #e5a800;
}

.fdh-scorers-preview__item:nth-child(2)::before {
    background: linear-gradient(135deg, #d1d5db 0%, #b0b5be 100%);
    color: #4a4e55;
    border-color: #b0b5be;
}

.fdh-scorers-preview__item:nth-child(3)::before {
    background: linear-gradient(135deg, #d4956a 0%, #b87a4e 100%);
    color: #4a2e15;
    border-color: #b87a4e;
}

.fdh-scorers-preview__photo {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--fdh-border-light);
    background: var(--fdh-bg-elevated);
    flex-shrink: 0;
}

.fdh-scorers-preview__name {
    font-weight: 600;
    font-size: 0.88em;
    color: var(--fdh-text);
    text-decoration: none;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdh-scorers-preview__name:hover {
    color: var(--fdh-primary);
}

.fdh-scorers-preview__team-logo {
    width: 16px;
    height: 16px;
    object-fit: contain;
    flex-shrink: 0;
    opacity: 0.7;
}

.fdh-scorers-preview__goals {
    margin-left: auto;
    font-weight: 700;
    font-size: 0.82em;
    color: var(--fdh-primary);
    font-family: var(--fdh-font-mono);
    white-space: nowrap;
}


/* ---------------------------------------------------------------
   Trophies Grouped
   --------------------------------------------------------------- */
.fdh-trophies-group {
    margin-bottom: 2rem;
}

.fdh-trophies-group__title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 8px;
}

.fdh-trophies-group__badge {
    background: var(--fdh-primary);
    color: var(--fdh-text-bright);
    font-size: 0.75rem;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 700;
}


/* ---------------------------------------------------------------
   Coach History Enhanced
   --------------------------------------------------------------- */
.fdh-coach-row--current {
    background: rgba(var(--fdh-primary-rgb), 0.05);
}

.fdh-coach-photo {
    border-radius: 50%;
    object-fit: cover;
}

.fdh-badge--now {
    display: inline-block;
    background: var(--fdh-primary);
    color: var(--fdh-text-bright);
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
}


/* ---------------------------------------------------------------
   Transfer Sections (team page)
   --------------------------------------------------------------- */
.fdh-transfers-section {
    margin-bottom: 2rem;
}

.fdh-transfers-section h3 {
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 1rem;
}


/* ---------------------------------------------------------------
   Utilities
   --------------------------------------------------------------- */
.fdh-text-muted {
    color: var(--fdh-text-secondary);
}

.fdh-col--center {
    text-align: center;
}


/* ---------------------------------------------------------------
   Biggest Results (team-season-stats)
   --------------------------------------------------------------- */
.fdh-biggest-results {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.75rem;
}

.fdh-biggest-results__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    border-radius: var(--fdh-radius);
    border: 1px solid var(--fdh-border);
    background: var(--fdh-overlay-hover);
}

.fdh-biggest-results__item--win {
    border-left: 3px solid var(--fdh-win);
}

.fdh-biggest-results__item--loss {
    border-left: 3px solid var(--fdh-loss);
}

.fdh-biggest-results__label {
    font-size: 0.8rem;
    color: var(--fdh-text-secondary);
}

.fdh-biggest-results__value {
    font-family: var(--fdh-font-mono);
    font-weight: 700;
    font-size: 1rem;
    color: var(--fdh-text-bright);
}


/* ---------------------------------------------------------------
   Cards Distribution (team-season-stats)
   --------------------------------------------------------------- */
.fdh-stat-card--yellow {
    border-top: 3px solid #ffc107;
}

.fdh-stat-card--red {
    border-top: 3px solid var(--fdh-loss);
}

.fdh-cards-distribution {
    margin-top: 0.75rem;
}

.fdh-cards-distribution__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.fdh-cards-distribution__table th,
.fdh-cards-distribution__table td {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--fdh-border);
}

.fdh-cards-distribution__table th {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--fdh-text-secondary);
}


/* ---------------------------------------------------------------
   Goals by Minute Chart (team-season-stats)
   --------------------------------------------------------------- */
.fdh-goals-by-minute__legend {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 0.75rem;
    font-size: 0.8rem;
    color: var(--fdh-text-secondary);
}

.fdh-goals-by-minute__legend-item::before {
    content: '';
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 2px;
    margin-right: 0.4rem;
    vertical-align: middle;
}

.fdh-goals-by-minute__legend-item--for::before {
    background: var(--fdh-primary);
}

.fdh-goals-by-minute__legend-item--against::before {
    background: var(--fdh-loss);
}

.fdh-goals-by-minute__chart {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.fdh-goals-by-minute__period {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.fdh-goals-by-minute__label {
    flex: 0 0 60px;
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
    text-align: right;
    font-family: var(--fdh-font-mono);
}

.fdh-goals-by-minute__bars {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.fdh-goals-by-minute__bar {
    height: 16px;
    border-radius: 2px;
    display: flex;
    align-items: center;
    padding-left: 6px;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--fdh-text-bright);
    min-width: 0;
    transition: width 0.3s ease;
}

.fdh-goals-by-minute__bar--for {
    background: var(--fdh-primary);
}

.fdh-goals-by-minute__bar--against {
    background: var(--fdh-loss);
    opacity: 0.7;
}


/* ---------------------------------------------------------------
   Match Banner Score Detail
   --------------------------------------------------------------- */
.fdh-match-banner__score-detail {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.75);
    position: relative;
    z-index: 1;
}

.fdh-match-banner__score-part {
    white-space: nowrap;
}


/* ---------------------------------------------------------------
   TV Coverage (match page)
   --------------------------------------------------------------- */
.fdh-match-tv {
    margin-top: 2rem;
}

.fdh-match-tv__list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.fdh-match-tv__country {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--fdh-border);
    font-size: 0.9rem;
}

.fdh-match-tv__country-code {
    flex: 0 0 30px;
    font-weight: 700;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: var(--fdh-text-secondary);
    font-family: var(--fdh-font-mono);
}

.fdh-match-tv__broadcasters {
    color: var(--fdh-text);
}


/* ---------------------------------------------------------------
   Match Info Card (Kampinfo)
   --------------------------------------------------------------- */
.fdh-match-info {
    margin-bottom: 36px;
}

.fdh-match-info__heading {
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--fdh-border-light);
}

.fdh-match-info__card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    overflow: hidden;
    padding: 0 16px;
}

.fdh-match-info__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.88em;
    padding: 11px 0;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-match-info__row:last-child {
    border-bottom: none;
}

.fdh-match-info__label {
    color: var(--fdh-text-muted);
    font-weight: 500;
    flex: 0 0 auto;
    margin-right: 16px;
    white-space: nowrap;
}

.fdh-match-info__value {
    color: var(--fdh-text);
    font-weight: 600;
    text-align: right;
    display: flex;
    align-items: center;
    gap: 6px;
}

.fdh-match-info__value--mono {
    font-family: var(--fdh-font-mono);
    color: var(--fdh-primary);
}

.fdh-match-info__secondary {
    color: var(--fdh-text-secondary);
    font-weight: 400;
}

.fdh-match-info__league-logo {
    vertical-align: middle;
    border-radius: 2px;
}


/* ---------------------------------------------------------------
   Match Form (seneste kampe per hold)
   --------------------------------------------------------------- */
.fdh-match-form {
    margin-bottom: 36px;
}

.fdh-match-form__heading {
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--fdh-border-light);
}

.fdh-match-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.fdh-match-form__team-name {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1em;
    font-weight: 700;
    color: var(--fdh-text-bright);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--fdh-primary);
}

.fdh-match-form__team-logo {
    border-radius: 2px;
    filter: var(--fdh-logo-shadow);
}

.fdh-match-form__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.fdh-match-form__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 4px;
    border-bottom: 1px solid var(--fdh-divider);
    text-decoration: none;
    color: var(--fdh-text);
    border-radius: var(--fdh-radius-xs);
    transition: background var(--fdh-transition-fast), transform var(--fdh-transition-fast);
}

.fdh-match-form__item:last-child {
    border-bottom: none;
}

.fdh-match-form__item:hover {
    background: var(--fdh-overlay-hover);
    transform: translateX(4px);
}

.fdh-match-form__result {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 4px;
    font-size: 0.72em;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
    text-transform: uppercase;
}

.fdh-match-form__result--win  { background: var(--fdh-win); box-shadow: 0 0 6px rgba(var(--fdh-primary-rgb), 0.3); }
.fdh-match-form__result--draw { background: var(--fdh-draw); box-shadow: 0 0 5px rgba(240, 184, 32, 0.25); }
.fdh-match-form__result--loss { background: var(--fdh-loss); box-shadow: 0 0 5px rgba(255, 79, 79, 0.25); }

.fdh-match-form__score {
    font-size: 0.85em;
    font-weight: 600;
    font-family: var(--fdh-font-mono);
    font-variant-numeric: tabular-nums;
    color: var(--fdh-text);
    min-width: 36px;
    text-align: center;
    flex-shrink: 0;
}

.fdh-match-form__opponent {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    font-size: 0.85em;
    color: var(--fdh-text);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdh-match-form__opp-logo {
    border-radius: 2px;
    flex-shrink: 0;
}

.fdh-match-form__date {
    font-size: 0.78em;
    color: var(--fdh-text-muted);
    white-space: nowrap;
    flex-shrink: 0;
}

.fdh-match-form__none {
    font-size: 0.85em;
    color: var(--fdh-text-muted);
    font-style: italic;
    padding: 8px 0;
}

@media (max-width: 640px) {
    .fdh-match-form__grid {
        grid-template-columns: 1fr;
    }
}


/* ---------------------------------------------------------------
   Formation Pitch View
   --------------------------------------------------------------- */
.fdh-formation {
    margin-top: var(--fdh-spacing-lg);
    width: 100%;
}

.fdh-formation__heading {
    font-size: 0.82em;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--fdh-text-secondary);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-formation__formation-badge {
    font-family: var(--fdh-font-mono);
    font-size: 0.82em;
    font-weight: 600;
    color: var(--fdh-text-muted);
    background: var(--fdh-bg-elevated);
    padding: 2px 7px;
    border-radius: 4px;
}

/* ---- 3-column layout: roster | pitch | roster ---- */
.fdh-formation__layout {
    display: grid;
    grid-template-columns: 1fr minmax(0, 480px) 1fr;
    gap: 16px;
    align-items: start;
    width: 100%;
    margin: 0 auto;
}

/* ---- Roster side panels ---- */
.fdh-formation__roster {
    padding-top: 4px;
}

.fdh-formation__roster-header {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82em;
    font-weight: 700;
    color: var(--fdh-text);
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--fdh-divider);
    flex-wrap: wrap;
}

.fdh-formation__roster-header img {
    border-radius: 2px;
}

.fdh-formation__roster-team {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-formation__roster-list {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: none;
}

.fdh-formation__roster-item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px 0;
    font-size: 0.78em;
    color: var(--fdh-text);
    border-bottom: 1px solid var(--fdh-divider-light, var(--fdh-divider));
}

.fdh-formation__roster-item:last-child {
    border-bottom: none;
}

.fdh-formation__roster-number {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--fdh-font-mono);
    font-size: 0.82em;
    font-weight: 800;
    color: #fff;
    line-height: 1;
}

.fdh-formation__roster--home .fdh-formation__roster-number {
    background: var(--fdh-primary);
}

.fdh-formation__roster--away {
    text-align: right;
}

.fdh-formation__roster--away .fdh-formation__roster-header {
    justify-content: flex-end;
}

.fdh-formation__roster--away .fdh-formation__roster-item {
    flex-direction: row-reverse;
}

.fdh-formation__roster--away .fdh-formation__roster-number {
    background: var(--fdh-accent);
}

.fdh-formation__roster-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--fdh-text);
    text-decoration: none;
}

a.fdh-formation__roster-name:hover {
    color: var(--fdh-primary);
    text-decoration: underline;
}

/* ---- Pitch ---- */
.fdh-pitch {
    position: relative;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
}

.fdh-pitch__surface {
    position: relative;
    width: 100%;
    padding-bottom: 154%;  /* ~105/68 FIFA ratio */
    border-radius: var(--fdh-radius);
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, 0.25);
    background:
        repeating-linear-gradient(
            180deg,
            #2e8b4a 0%,
            #2e8b4a 10%,
            #349a54 10%,
            #349a54 20%
        );
}

body.fdh-theme-dark .fdh-pitch__surface {
    background:
        repeating-linear-gradient(
            180deg,
            #1a5e34 0%,
            #1a5e34 10%,
            #1d6b3a 10%,
            #1d6b3a 20%
        );
    border-color: rgba(255, 255, 255, 0.15);
}

/* Players layer — sits on top of surface, no overflow clipping so tooltips show */
.fdh-pitch__players {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
}

/* Center line */
.fdh-pitch__center-line {
    position: absolute;
    top: 50%;
    left: 4%;
    right: 4%;
    height: 2px;
    background: rgba(255, 255, 255, 0.55);
    transform: translateY(-50%);
}

/* Center circle */
.fdh-pitch__center-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20%;
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    border: 2px solid rgba(255, 255, 255, 0.55);
    border-radius: 50%;
}

/* Center spot */
.fdh-pitch__center-spot {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    transform: translate(-50%, -50%);
    background: rgba(255, 255, 255, 0.55);
    border-radius: 50%;
}

/* Penalty boxes */
.fdh-pitch__penalty-box {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 15.7%;   /* 16.5m / 105m */
    border: 2px solid rgba(255, 255, 255, 0.55);
}

.fdh-pitch__penalty-box--top {
    top: 0;
    border-top: none;
    border-radius: 0 0 2px 2px;
}

.fdh-pitch__penalty-box--bottom {
    bottom: 0;
    border-bottom: none;
    border-radius: 2px 2px 0 0;
}

/* Goal areas (6-yard boxes) */
.fdh-pitch__goal-area {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 28%;
    height: 5.2%;    /* 5.5m / 105m */
    border: 2px solid rgba(255, 255, 255, 0.55);
}

.fdh-pitch__goal-area--top {
    top: 0;
    border-top: none;
    border-radius: 0 0 2px 2px;
}

.fdh-pitch__goal-area--bottom {
    bottom: 0;
    border-bottom: none;
    border-radius: 2px 2px 0 0;
}

/* Goals */
.fdh-pitch__goal {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 14%;
    height: 1.2%;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 2px;
}

.fdh-pitch__goal--top {
    top: 0;
    border-radius: 0 0 2px 2px;
}

.fdh-pitch__goal--bottom {
    bottom: 0;
    border-radius: 2px 2px 0 0;
}

/* Player dots */
.fdh-pitch__player {
    position: absolute;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
    z-index: 2;
    cursor: default;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.fdh-pitch__player:hover,
.fdh-pitch__player:focus {
    transform: translate(-50%, -50%) scale(1.2);
    z-index: 5;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

.fdh-pitch__player--home {
    background: var(--fdh-primary);
    border: 2px solid rgba(255, 255, 255, 0.9);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.fdh-pitch__player--away {
    background: var(--fdh-accent);
    border: 2px solid rgba(255, 255, 255, 0.9);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.fdh-pitch__number {
    font-size: 0.68em;
    font-weight: 800;
    color: #fff;
    font-family: var(--fdh-font-mono);
    line-height: 1;
}

/* CSS-only tooltip */
.fdh-pitch__tooltip {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    background: rgba(0, 0, 0, 0.88);
    color: #fff;
    font-size: 0.7em;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 4px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease;
    z-index: 10;
}

.fdh-pitch__tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 4px solid transparent;
    border-top-color: rgba(0, 0, 0, 0.88);
}

.fdh-pitch__player:hover .fdh-pitch__tooltip,
.fdh-pitch__player:focus .fdh-pitch__tooltip {
    opacity: 1;
}

/* Edge-aligned tooltips — prevent overflow on edge players */
.fdh-pitch__player--edge-left .fdh-pitch__tooltip {
    left: 0;
    transform: translateX(-4px);
}
.fdh-pitch__player--edge-left .fdh-pitch__tooltip::after {
    left: 12px;
    transform: none;
}

.fdh-pitch__player--edge-right .fdh-pitch__tooltip {
    left: auto;
    right: 0;
    transform: translateX(4px);
}
.fdh-pitch__player--edge-right .fdh-pitch__tooltip::after {
    left: auto;
    right: 8px;
    transform: none;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
    .fdh-formation__layout {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    /* Pitch first on mobile */
    .fdh-pitch {
        order: -1;
    }
    /* Side-by-side rosters below pitch */
    .fdh-formation__roster {
        display: block;
    }
    .fdh-pitch__player {
        width: 24px;
        height: 24px;
    }
    .fdh-pitch__number {
        font-size: 0.58em;
    }
    .fdh-pitch__tooltip {
        font-size: 0.62em;
    }
}

@media (min-width: 769px) {
    /* Hide rosters that overflow on narrow screens — show at md+ */
    .fdh-formation__roster {
        display: block;
    }
}

@media (max-width: 480px) {
    .fdh-pitch__player {
        width: 20px;
        height: 20px;
    }
    .fdh-pitch__number {
        font-size: 0.5em;
    }
}


/* ---------------------------------------------------------------
   Shot Zone Map
   --------------------------------------------------------------- */
.fdh-shotmap {
    margin-top: var(--fdh-spacing-lg);
}

.fdh-shotmap__heading {
    font-size: 0.82em;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--fdh-text-secondary);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-shotmap__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.fdh-shotmap__team-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85em;
    font-weight: 700;
    color: var(--fdh-text);
    margin-bottom: 8px;
}

.fdh-shotmap__team-label img {
    border-radius: 2px;
}

.fdh-shotmap__half-pitch {
    position: relative;
    padding-bottom: 130%;
    border-radius: var(--fdh-radius);
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, 0.2);
    background: linear-gradient(180deg, #2e8b4a, #349a54);
}

body.fdh-theme-dark .fdh-shotmap__half-pitch {
    background: linear-gradient(180deg, #1a5e34, #1d6b3a);
    border-color: rgba(255, 255, 255, 0.12);
}

/* Penalty box line */
.fdh-shotmap__half-pitch::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 32%;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top: none;
    border-radius: 0 0 2px 2px;
}

/* Goal area line */
.fdh-shotmap__half-pitch::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 28%;
    height: 12%;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top: none;
    border-radius: 0 0 2px 2px;
}

/* Zone overlays */
.fdh-shotmap__zone {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    z-index: 2;
    border-radius: 4px;
    transition: opacity 0.3s ease;
}

.fdh-shotmap__side--home .fdh-shotmap__zone--inside {
    top: 2%;
    left: 50%;
    transform: translateX(-50%);
    width: 56%;
    height: 30%;
    background: rgba(var(--fdh-primary-rgb), var(--zone-opacity, 0.3));
}

.fdh-shotmap__side--home .fdh-shotmap__zone--outside {
    top: 35%;
    left: 8%;
    right: 8%;
    height: 35%;
    background: rgba(var(--fdh-primary-rgb), var(--zone-opacity, 0.2));
}

.fdh-shotmap__side--home .fdh-shotmap__zone--blocked {
    bottom: 5%;
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    height: 18%;
    background: rgba(150, 150, 150, var(--zone-opacity, 0.2));
    border-radius: 50%;
}

.fdh-shotmap__side--away .fdh-shotmap__zone--inside {
    top: 2%;
    left: 50%;
    transform: translateX(-50%);
    width: 56%;
    height: 30%;
    background: rgba(212, 96, 10, var(--zone-opacity, 0.3));
}

.fdh-shotmap__side--away .fdh-shotmap__zone--outside {
    top: 35%;
    left: 8%;
    right: 8%;
    height: 35%;
    background: rgba(212, 96, 10, var(--zone-opacity, 0.2));
}

.fdh-shotmap__side--away .fdh-shotmap__zone--blocked {
    bottom: 5%;
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    height: 18%;
    background: rgba(150, 150, 150, var(--zone-opacity, 0.2));
    border-radius: 50%;
}

body.fdh-theme-dark .fdh-shotmap__side--home .fdh-shotmap__zone--inside,
body.fdh-theme-dark .fdh-shotmap__side--home .fdh-shotmap__zone--outside {
    background: rgba(var(--fdh-primary-rgb), var(--zone-opacity, 0.3));
}

body.fdh-theme-dark .fdh-shotmap__side--away .fdh-shotmap__zone--inside,
body.fdh-theme-dark .fdh-shotmap__side--away .fdh-shotmap__zone--outside {
    background: rgba(255, 122, 26, var(--zone-opacity, 0.3));
}

.fdh-shotmap__zone-count {
    font-size: 1.4em;
    font-weight: 800;
    color: #fff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
    font-family: var(--fdh-font-mono);
    line-height: 1;
}

.fdh-shotmap__zone-on {
    font-size: 0.65em;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.85);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

.fdh-shotmap__zone-label {
    font-size: 0.6em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.7);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Summary bar */
.fdh-shotmap__summary {
    margin-top: 14px;
    background: var(--fdh-bg-elevated);
    border-radius: var(--fdh-radius);
    padding: 10px 16px;
}

.fdh-shotmap__summary-row {
    display: grid;
    grid-template-columns: 50px 1fr 50px;
    text-align: center;
    padding: 5px 0;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-shotmap__summary-row:last-child {
    border-bottom: none;
}

.fdh-shotmap__summary-value {
    font-family: var(--fdh-font-mono);
    font-weight: 800;
    font-size: 0.95em;
    color: var(--fdh-text);
}

.fdh-shotmap__summary-label {
    font-size: 0.78em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted);
}

@media (max-width: 768px) {
    .fdh-shotmap__grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    .fdh-shotmap__zone-count {
        font-size: 1.1em;
    }
}

@media (max-width: 480px) {
    .fdh-shotmap__zone-count {
        font-size: 0.95em;
    }
    .fdh-shotmap__zone-on {
        font-size: 0.55em;
    }
    .fdh-shotmap__zone-label {
        font-size: 0.5em;
    }
}


/* ---------------------------------------------------------------
   Momentum Timeline (Kampflow)
   --------------------------------------------------------------- */
.fdh-momentum {
    margin-top: var(--fdh-spacing-lg);
}

.fdh-momentum__heading {
    font-size: 0.82em;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--fdh-text-secondary);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--fdh-divider);
}

.fdh-momentum__teams {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
}

.fdh-momentum__team-name {
    font-size: 0.75em;
    font-weight: 700;
    color: var(--fdh-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fdh-momentum__container {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0 8px;
}

.fdh-momentum__track {
    position: relative;
    height: 52px;
}

/* Timeline bar */
.fdh-momentum__bar {
    position: relative;
    height: 3px;
    background: var(--fdh-border-light);
    border-radius: 2px;
}

/* Event dots */
.fdh-momentum__event {
    position: absolute;
    transform: translateX(-50%);
    cursor: default;
    z-index: 2;
    outline: none;
}

.fdh-momentum__track--home .fdh-momentum__event {
    bottom: 4px;
}

.fdh-momentum__track--away .fdh-momentum__event {
    top: 4px;
}

/* Goal marker */
.fdh-momentum__event--goal {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--fdh-win);
    box-shadow: 0 0 10px rgba(var(--fdh-primary-rgb), 0.4);
    border: 2px solid rgba(255, 255, 255, 0.6);
}

/* Goal label (player name) */
.fdh-momentum__label {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    font-size: 0.62em;
    font-weight: 700;
    color: var(--fdh-text-secondary);
    pointer-events: none;
}

.fdh-momentum__track--home .fdh-momentum__label {
    bottom: calc(100% + 3px);
}

.fdh-momentum__track--away .fdh-momentum__label {
    top: calc(100% + 3px);
}

/* Card marker */
.fdh-momentum__event--card {
    width: 10px;
    height: 14px;
    border-radius: 2px;
}

.fdh-momentum__event--yellow {
    background: var(--fdh-draw);
}

.fdh-momentum__event--red {
    background: var(--fdh-loss);
    box-shadow: 0 0 6px rgba(255, 79, 79, 0.3);
}

/* Substitution marker */
.fdh-momentum__event--subst {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--fdh-text-muted);
    opacity: 0.5;
}

/* Missed penalty */
.fdh-momentum__event--missed {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: transparent;
    border: 2px solid var(--fdh-loss);
}

/* VAR marker */
.fdh-momentum__event--var {
    width: 10px;
    height: 10px;
    border-radius: 2px;
    background: var(--fdh-text-muted);
    opacity: 0.4;
}

/* HT divider */
.fdh-momentum__ht-divider {
    position: absolute;
    top: -52px;
    bottom: -52px;
    width: 2px;
    background: var(--fdh-border-light);
    transform: translateX(-50%);
    z-index: 1;
}

.fdh-momentum__ht-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--fdh-bg-card);
    padding: 2px 6px;
    font-size: 0.6em;
    font-weight: 800;
    color: var(--fdh-text-muted);
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Tick marks */
.fdh-momentum__tick {
    position: absolute;
    top: 100%;
    transform: translateX(-50%);
}

.fdh-momentum__tick::before {
    content: '';
    display: block;
    width: 1px;
    height: 6px;
    background: var(--fdh-border-light);
    margin: 0 auto;
}

.fdh-momentum__tick-label {
    font-size: 0.58em;
    color: var(--fdh-text-muted);
    font-family: var(--fdh-font-mono);
    font-weight: 600;
    margin-top: 2px;
    display: block;
    text-align: center;
}

@media (max-width: 768px) {
    .fdh-momentum__track {
        height: 44px;
    }
    .fdh-momentum__ht-divider {
        top: -44px;
        bottom: -44px;
    }
    .fdh-momentum__event--goal {
        width: 14px;
        height: 14px;
    }
}

@media (max-width: 480px) {
    .fdh-momentum__track {
        height: 36px;
    }
    .fdh-momentum__ht-divider {
        top: -36px;
        bottom: -36px;
    }
    .fdh-momentum__label {
        display: none;
    }
    .fdh-momentum__event--goal {
        width: 12px;
        height: 12px;
    }
    .fdh-momentum__event--card {
        width: 8px;
        height: 11px;
    }
}


/* ---------------------------------------------------------------
   Match Ratings Enhanced (player links, cards, secondary stats)
   --------------------------------------------------------------- */
.fdh-match-ratings__name {
    text-decoration: none;
    color: var(--fdh-text);
}

a.fdh-match-ratings__name:hover {
    color: var(--fdh-primary);
}

.fdh-match-ratings__card {
    display: inline-block;
    width: 10px;
    height: 14px;
    border-radius: 2px;
    vertical-align: middle;
    margin: 0 1px;
}

.fdh-match-ratings__card--yellow {
    background: #ffc107;
}

.fdh-match-ratings__card--red {
    background: var(--fdh-loss);
}

.fdh-match-ratings__secondary {
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
    padding: 0.15rem 0 0 44px;
    line-height: 1.3;
}

.fdh-match-ratings__player {
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--fdh-border);
}


/* ---------------------------------------------------------------
   Top Performers (team sidebar)
   --------------------------------------------------------------- */
.fdh-top-performers {
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    padding: 1rem;
    background: var(--fdh-overlay-hover);
}

.fdh-section-heading--sm {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fdh-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
    margin-top: 1rem;
}

.fdh-section-heading--sm:first-child {
    margin-top: 0;
}

.fdh-top-performers__list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.fdh-top-performers__item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.5rem;
    border-radius: var(--fdh-radius);
    text-decoration: none;
    color: var(--fdh-text);
    font-size: 0.85rem;
    transition: background 0.15s;
}

.fdh-top-performers__item:hover {
    background: var(--fdh-overlay-light);
    color: var(--fdh-primary);
}

.fdh-top-performers__photo {
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.fdh-top-performers__name {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdh-top-performers__value {
    font-weight: 700;
    font-family: var(--fdh-font-mono);
    font-size: 0.8rem;
    color: var(--fdh-primary);
    white-space: nowrap;
}


/* ---------------------------------------------------------------
   Team Injuries Table
   --------------------------------------------------------------- */
.fdh-team-injuries__table {
    width: 100%;
    border-collapse: collapse;
}

.fdh-team-injuries__table th,
.fdh-team-injuries__table td {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--fdh-border);
    font-size: 0.85rem;
}

.fdh-team-injuries__table th {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--fdh-text-secondary);
    border-bottom: 2px solid var(--fdh-border-light);
}

.fdh-team-injuries__col-player {
    min-width: 160px;
}

.fdh-team-injuries__player-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--fdh-text);
}

.fdh-team-injuries__player-link:hover {
    color: var(--fdh-primary);
}

.fdh-team-injuries__player-link img {
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

/* Suspension table variant */
.fdh-team-injuries__table--suspended {
    border-left: 3px solid var(--fdh-draw);
}

.fdh-team-injuries__row--suspended {
    background: rgba(255, 193, 7, 0.04);
}

.fdh-team-injuries__badge--suspended {
    display: inline-block;
    padding: 0.15em 0.5em;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: rgba(255, 193, 7, 0.15);
    color: var(--fdh-draw);
}

.fdh-team-injuries__susp-reason {
    display: block;
    font-size: 0.75rem;
    color: var(--fdh-text-secondary);
    margin-top: 0.15em;
}

.fdh-section-heading--suspended {
    color: var(--fdh-draw);
}

.fdh-tabs__badge--suspended {
    background: rgba(255, 193, 7, 0.15);
    color: var(--fdh-draw);
}

/* Match page suspension items */
.fdh-match-injuries__item--suspended {
    border-left: 3px solid var(--fdh-draw);
    background: rgba(255, 193, 7, 0.04);
}

.fdh-match-injuries__badge--suspended {
    display: inline-block;
    padding: 0.15em 0.5em;
    border-radius: 4px;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: rgba(255, 193, 7, 0.15);
    color: var(--fdh-draw);
}

.fdh-match-injuries__detail--suspended {
    color: var(--fdh-text-secondary);
}

.fdh-match-suspensions .fdh-match-injuries__team-label {
    color: var(--fdh-draw);
}


/* ---------------------------------------------------------------
   Leaders Table (Topscorer / Assist / Winners)
   --------------------------------------------------------------- */
.fdh-leaders__table {
    width: 100%;
    border-collapse: collapse;
}

.fdh-leaders__table th,
.fdh-leaders__table td {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--fdh-border);
    text-align: left;
}

.fdh-leaders__table th {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text-secondary);
}

.fdh-leaders__col-rank {
    width: 36px;
    text-align: center !important;
    font-weight: 600;
    color: var(--fdh-text-secondary);
}

.fdh-leaders__col-player {
    min-width: 160px;
}

.fdh-leaders__col-team {
    min-width: 120px;
}

.fdh-leaders__col-pos {
    white-space: nowrap;
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
}

.fdh-leaders__col-num {
    text-align: center !important;
    white-space: nowrap;
    min-width: 50px;
}

.fdh-leaders__col-primary {
    font-size: 1rem;
}

.fdh-leaders__player-link,
.fdh-leaders__team-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: inherit;
}

.fdh-leaders__player-link {
    font-weight: 500;
}

.fdh-leaders__player-link:hover,
.fdh-leaders__team-link:hover {
    color: var(--fdh-primary);
}

.fdh-leaders__player-link img {
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.fdh-leaders__team-link img {
    flex-shrink: 0;
    object-fit: contain;
}

.fdh-leaders__team-link span {
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
}

@media (max-width: 600px) {
    .fdh-leaders__col-pos {
        display: none;
    }
    .fdh-leaders__table th,
    .fdh-leaders__table td {
        padding: 0.5rem 0.4rem;
    }
}


/* ---------------------------------------------------------------
   Team Discipline (Cards) Table
   --------------------------------------------------------------- */
.fdh-discipline__table {
    width: 100%;
    border-collapse: collapse;
}

.fdh-discipline__table th,
.fdh-discipline__table td {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--fdh-border);
    text-align: left;
}

.fdh-discipline__table th {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text-secondary);
}

.fdh-discipline__col-player {
    min-width: 160px;
}

.fdh-discipline__col-team {
    min-width: 120px;
}

.fdh-discipline__col-pos {
    white-space: nowrap;
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
}

.fdh-discipline__col-num {
    text-align: center !important;
    white-space: nowrap;
    min-width: 50px;
}

.fdh-discipline__player-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: inherit;
    font-weight: 500;
}

.fdh-discipline__player-link:hover {
    color: var(--fdh-primary);
}

.fdh-discipline__player-link img {
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

/* Card icons in header */
.fdh-discipline__card-icon {
    display: inline-block;
    width: 14px;
    height: 18px;
    border-radius: 2px;
    vertical-align: middle;
}

.fdh-discipline__card-icon--yellow {
    background: #ffc107;
}

.fdh-discipline__card-icon--red {
    background: #dc3545;
}

/* Card count badges */
.fdh-discipline__card-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 4px;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 600;
}

.fdh-discipline__card-count--yellow {
    background: rgba(255, 193, 7, 0.15);
    color: #d4a106;
}

.fdh-discipline__card-count--red {
    background: rgba(220, 53, 69, 0.12);
    color: #dc3545;
}

.fdh-discipline__card-count--zero {
    color: var(--fdh-text-muted, #ccc);
    font-weight: 400;
}

.fdh-discipline__col-total {
    font-size: 0.9rem;
}

/* Responsive */
@media (max-width: 600px) {
    .fdh-discipline__col-pos {
        display: none;
    }
    .fdh-discipline__table th,
    .fdh-discipline__table td {
        padding: 0.5rem 0.4rem;
    }
}


/* ---------------------------------------------------------------
   Competition Players Table
   --------------------------------------------------------------- */
.fdh-comp-players__table {
    width: 100%;
    border-collapse: collapse;
}

.fdh-comp-players__table th,
.fdh-comp-players__table td {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--fdh-border);
    text-align: left;
}

.fdh-comp-players__table th {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fdh-text-secondary);
}

.fdh-comp-players__col-player {
    min-width: 160px;
}

.fdh-comp-players__col-team {
    min-width: 120px;
}

.fdh-comp-players__col-pos {
    white-space: nowrap;
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
}

.fdh-comp-players__col-num {
    text-align: center !important;
    white-space: nowrap;
    min-width: 50px;
}

.fdh-comp-players__player-link,
.fdh-comp-players__team-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: inherit;
}

.fdh-comp-players__player-link {
    font-weight: 500;
}

.fdh-comp-players__player-link:hover,
.fdh-comp-players__team-link:hover {
    color: var(--fdh-primary);
}

.fdh-comp-players__player-link img {
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.fdh-comp-players__team-link img {
    flex-shrink: 0;
    object-fit: contain;
}

.fdh-comp-players__team-link span {
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
}

/* Position filter */
.fdh-position-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.fdh-position-filter__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.85rem;
    border: 1px solid var(--fdh-border);
    border-radius: 20px;
    background: var(--fdh-bg, #fff);
    color: var(--fdh-text-secondary);
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
}

.fdh-position-filter__btn:hover {
    border-color: var(--fdh-primary);
    color: var(--fdh-primary);
}

.fdh-position-filter__btn--active {
    background: var(--fdh-primary);
    border-color: var(--fdh-primary);
    color: #fff;
}

.fdh-position-filter__btn--active .fdh-tabs__badge {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

/* Responsive */
@media (max-width: 600px) {
    .fdh-comp-players__col-pos,
    .fdh-comp-players__col-team span {
        display: none;
    }
    .fdh-comp-players__table th,
    .fdh-comp-players__table td {
        padding: 0.5rem 0.4rem;
    }
}


/* ---------------------------------------------------------------
   Competition Coaches Grid
   --------------------------------------------------------------- */
.fdh-comp-coaches__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.fdh-comp-coaches__card {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem;
    border: 1px solid var(--fdh-border);
    border-radius: 8px;
    background: var(--fdh-bg, #fff);
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.fdh-comp-coaches__card:hover {
    border-color: var(--fdh-primary);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.fdh-comp-coaches__photo img {
    border-radius: 50%;
    object-fit: cover;
    width: 64px;
    height: 64px;
}

.fdh-comp-coaches__info {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.fdh-comp-coaches__name {
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    color: inherit;
}

.fdh-comp-coaches__name:hover {
    color: var(--fdh-primary);
}

.fdh-comp-coaches__team {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    color: var(--fdh-text-secondary);
    font-size: 0.85rem;
}

.fdh-comp-coaches__team:hover {
    color: var(--fdh-primary);
}

.fdh-comp-coaches__team img {
    flex-shrink: 0;
    object-fit: contain;
}

.fdh-comp-coaches__nationality,
.fdh-comp-coaches__since {
    font-size: 0.78rem;
    color: var(--fdh-text-muted, #999);
}

@media (max-width: 600px) {
    .fdh-comp-coaches__grid {
        grid-template-columns: 1fr;
    }
}


/* ---------------------------------------------------------------
   Injuries Shortcode Table — Grouped (Skader + Karantæne)
   --------------------------------------------------------------- */
.fdh-injuries__group + .fdh-injuries__group {
    margin-top: 24px;
}

.fdh-injuries__group-title {
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.fdh-injuries__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    font-size: 0.7rem;
    font-weight: 700;
    background: rgba(239, 83, 80, 0.12);
    color: #ef5350;
}

.fdh-injuries__count--suspended {
    background: rgba(255, 193, 7, 0.15);
    color: var(--fdh-draw);
}

.fdh-injuries__group--injury .fdh-injuries__table {
    border-left: 3px solid #ef5350;
}

.fdh-injuries__group--suspended .fdh-injuries__table {
    border-left: 3px solid var(--fdh-draw);
}

.fdh-injuries__group-title--suspended {
    color: var(--fdh-draw);
}

.fdh-injuries__row--suspended {
    background: rgba(255, 193, 7, 0.04);
}

.fdh-injuries__type-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 6px;
    vertical-align: middle;
    background: #ef5350;
}

.fdh-injuries__type-dot--suspended {
    background: var(--fdh-draw);
}


/* ---------------------------------------------------------------
   Player Matches Table Extended
   --------------------------------------------------------------- */
.fdh-player-matches__league {
    font-size: 0.8rem;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdh-player-matches__round {
    display: block;
    font-size: 0.7rem;
}


/* ===================================================================
   Virtual Pages — Livescore, TV, Stillinger, Resultater
   =================================================================== */

/* ---------------------------------------------------------------
   Page wrapper — uniform width + top/bottom spacing
   All three container types share the same 1200px max-width so
   /, /hold/, /stillinger/, etc. line up visually.
   --------------------------------------------------------------- */
.fdh-page {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding: 24px 16px 48px;
    overflow-x: hidden;
}

.fdh-archive {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding: 24px 16px 48px;
}

/* ---------------------------------------------------------------
   Page Hero — Solid Midnight Blue (matches entity hero)
   --------------------------------------------------------------- */
.fdh-page__hero {
    background: #192250;
    border-radius: var(--fdh-radius-lg);
    padding: 48px 32px;
    margin-bottom: 32px;
    text-align: center;
    border: none;
    color: #fff;
    box-shadow: 0 8px 24px rgba(25, 34, 80, 0.18), 0 2px 6px rgba(25, 34, 80, 0.10);
}

.fdh-page__hero-inner {
    max-width: 600px;
    margin: 0 auto;
}

.fdh-page__hero-title {
    font-family: var(--fdh-font-heading);
    font-size: 2.2rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
    background: none;
    margin: 0 0 8px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

.fdh-page__hero-subtitle {
    color: rgba(255, 255, 255, 0.82);
    font-size: 1rem;
    margin: 0;
}

.fdh-page__hero-stats {
    display: flex;
    gap: 32px;
    justify-content: center;
    margin-top: 28px;
}

.fdh-page__hero-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.fdh-page__hero-stat--live {
    position: relative;
}

.fdh-page__hero-stat-value {
    font-family: var(--fdh-font-mono);
    font-size: 1.8rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1;
}

.fdh-page__hero-stat--live .fdh-page__hero-stat-value {
    color: #ff5a7a;
}

.fdh-page__hero-stat-label {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.7);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
}

/* ---------------------------------------------------------------
   Section heading
   --------------------------------------------------------------- */
.fdh-page__section {
    margin-bottom: 32px;
}

.fdh-page__section-heading {
    font-family: var(--fdh-font-heading);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--fdh-text);
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--fdh-border);
    display: flex;
    align-items: center;
    gap: 8px;
}

.fdh-page__section-heading--date {
    font-size: 1.05rem;
    text-transform: capitalize;
}

.fdh-page__live-dot {
    width: 8px;
    height: 8px;
    background: var(--fdh-live);
    border-radius: 50%;
    display: inline-block;
    animation: fdh-pulse 1.5s ease-in-out infinite;
}

.fdh-page__day-badge {
    font-size: 0.65rem;
    font-weight: 700;
    background: var(--fdh-primary);
    color: #fff;
    padding: 2px 8px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ---------------------------------------------------------------
   League group (shared across all pages)
   --------------------------------------------------------------- */
.fdh-page__league-group {
    margin-bottom: 16px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-divider);
    border-radius: var(--fdh-radius-lg);
    overflow: hidden;
    box-shadow: var(--fdh-shadow-xs);
}

.fdh-page__league-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--fdh-overlay-subtle);
    border-bottom: 1px solid var(--fdh-divider);
    font-size: 0.85rem;
    font-weight: 600;
}

.fdh-page__league-header--standings,
.fdh-page__league-header--results {
    padding: 12px 16px;
    background: none;
    border-bottom: none;
    gap: 10px;
    margin-bottom: 0;
}

.fdh-page__league-logo {
    width: 20px;
    height: 20px;
    object-fit: contain;
    flex-shrink: 0;
}

.fdh-page__league-name {
    color: var(--fdh-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-page__league-title {
    font-family: var(--fdh-font-heading);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--fdh-text);
    margin: 0;
    flex: 1;
}

.fdh-page__league-title a {
    color: inherit;
    text-decoration: none;
}

.fdh-page__league-title a:hover {
    color: var(--fdh-primary);
}

.fdh-page__league-country {
    font-size: 0.7rem;
    color: var(--fdh-text-muted);
    background: var(--fdh-overlay-light);
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 600;
    letter-spacing: 0.03em;
    flex-shrink: 0;
}

.fdh-page__league-season {
    font-size: 0.75rem;
    color: var(--fdh-text-muted);
    font-weight: 500;
    flex-shrink: 0;
}

.fdh-page__round-badge {
    font-size: 0.7rem;
    color: var(--fdh-primary);
    background: rgba(var(--fdh-primary-rgb), 0.1);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 600;
    flex-shrink: 0;
}

/* ---------------------------------------------------------------
   Match row (shared across Livescore, TV, Resultater)
   --------------------------------------------------------------- */
.fdh-page__match-list {
    display: flex;
    flex-direction: column;
}

.fdh-page__match-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
    align-items: center;
    padding: 10px 16px;
    text-decoration: none;
    color: var(--fdh-text);
    border-bottom: 1px solid var(--fdh-divider);
    transition: background-color 0.15s ease;
}

.fdh-page__match-row:last-child {
    border-bottom: none;
}

.fdh-page__match-row:hover {
    background: var(--fdh-overlay-hover);
}

.fdh-page__match-row--live {
    background: rgba(var(--fdh-primary-rgb), 0.04);
}

.fdh-page__match-row--live:hover {
    background: rgba(var(--fdh-primary-rgb), 0.08);
}

.fdh-page__match-row--ft {
    opacity: 0.85;
}

/* TV page: 2-column split — match info (80%) | TV channels (20%) */
.fdh-page__match-row--tv {
    grid-template-columns: 1fr auto;
    gap: 12px;
}

.fdh-page__match-row--tv .fdh-page__match-info {
    display: grid;
    grid-template-columns: 60px 1fr auto;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

/* Result page: date|home|score|away */
.fdh-page__match-row--result {
    grid-template-columns: 40px 1fr auto 1fr;
}

.fdh-page__result-date {
    font-size: 0.75rem;
    color: var(--fdh-text-muted);
    font-weight: 500;
    text-align: center;
}

.fdh-page__result-extra {
    font-size: 0.7rem;
    color: var(--fdh-text-muted);
    font-weight: 500;
    margin-left: 4px;
}

/* ---------------------------------------------------------------
   Match team names + logos
   --------------------------------------------------------------- */
.fdh-page__match-team {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.fdh-page__match-team--home {
    justify-content: flex-end;
    text-align: right;
}

.fdh-page__match-team--away {
    justify-content: flex-start;
}

.fdh-page__match-team-name {
    font-size: 0.9rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-page__match-logo {
    width: 24px;
    height: 24px;
    object-fit: contain;
    flex-shrink: 0;
}

/* ---------------------------------------------------------------
   Match score
   --------------------------------------------------------------- */
.fdh-page__match-score {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 60px;
    font-family: var(--fdh-font-mono);
    font-weight: 700;
    font-size: 1rem;
}

.fdh-page__match-score--result {
    min-width: 50px;
}

.fdh-page__score-sep {
    color: var(--fdh-text-muted);
    font-weight: 400;
}

.fdh-page__match-row--live .fdh-page__match-score {
    color: var(--fdh-live);
}

.fdh-page__live-badge {
    font-size: 0.6rem;
    font-weight: 700;
    color: var(--fdh-live);
    background: rgba(239, 68, 68, 0.12);
    padding: 1px 5px;
    border-radius: 3px;
    margin-left: 4px;
    text-transform: uppercase;
}

.fdh-page__match-time {
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
    font-family: var(--fdh-font-mono);
    font-weight: 600;
}

.fdh-page__score {
    font-family: var(--fdh-font-mono);
    font-weight: 700;
    font-size: 0.9rem;
    text-align: center;
}

.fdh-page__vs {
    font-size: 0.8rem;
    color: var(--fdh-text-muted);
    text-align: center;
}

/* ---------------------------------------------------------------
   TV-specific columns
   --------------------------------------------------------------- */
.fdh-page__match-time-col {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 55px;
}

.fdh-page__match-teams-col {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.fdh-page__match-teams-col .fdh-page__match-team {
    justify-content: flex-start;
}

.fdh-page__match-teams-col .fdh-page__match-team .fdh-page__match-logo {
    width: 18px;
    height: 18px;
}

.fdh-page__match-teams-col .fdh-page__match-team-name {
    font-size: 0.82rem;
}

.fdh-page__match-score-col {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 45px;
}

.fdh-page__tv-col {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 4px;
    flex-shrink: 0;
    min-width: 80px;
}

.fdh-page__kickoff-time {
    font-family: var(--fdh-font-mono);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fdh-text);
}

.fdh-page__live-text {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--fdh-live);
    text-transform: uppercase;
}

.fdh-page__ft-text {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--fdh-text-muted);
}

.fdh-page__tv-channels {
    display: flex;
    gap: 4px;
    margin-left: auto;
    flex-shrink: 0;
}

/* ---------------------------------------------------------------
   Standings table (Stillinger page)
   --------------------------------------------------------------- */
.fdh-page__standings-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Split-round league group heading (Mesterskabsspillet / Nedrykningsspillet etc.) */
.fdh-page__standings-group {
    font-family: var(--fdh-font-heading);
    font-size: 0.95rem;
    font-weight: 700;
    margin: 18px 0 8px;
    padding: 6px 12px;
    color: var(--fdh-primary);
    background: rgba(var(--fdh-primary-rgb), 0.06);
    border-left: 3px solid var(--fdh-primary);
    border-radius: 4px;
    display: inline-block;
}

.fdh-page__standings-group + .fdh-page__standings-table-wrap {
    margin-top: 4px;
}

.fdh-page__standings-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.fdh-page__standings-th {
    padding: 8px 10px;
    text-align: center;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--fdh-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 1px solid var(--fdh-divider);
    white-space: nowrap;
}

.fdh-page__standings-th--pos {
    width: 32px;
    text-align: center;
}

.fdh-page__standings-th--team {
    text-align: left;
    min-width: 140px;
}

.fdh-page__standings-th--pts {
    color: var(--fdh-text);
    font-weight: 700;
}

.fdh-page__standings-row {
    transition: background-color 0.15s ease;
}

.fdh-page__standings-row:hover {
    background: var(--fdh-overlay-hover);
}

.fdh-page__standings-td {
    padding: 8px 10px;
    text-align: center;
    border-bottom: 1px solid var(--fdh-divider);
    color: var(--fdh-text-secondary);
    font-size: 0.82rem;
}

.fdh-page__standings-td--pos {
    font-weight: 600;
    color: var(--fdh-text);
    width: 32px;
}

.fdh-page__standings-td--team {
    text-align: left;
}

.fdh-page__standings-td--pts {
    color: var(--fdh-text);
    font-family: var(--fdh-font-mono);
    font-weight: 700;
}

.fdh-page__standings-team-link {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--fdh-text);
    text-decoration: none;
}

.fdh-page__standings-team-link:hover {
    color: var(--fdh-primary);
}

.fdh-page__standings-team-logo {
    width: 18px;
    height: 18px;
    object-fit: contain;
    flex-shrink: 0;
}

.fdh-page__standings-team-name {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---------------------------------------------------------------
   Section footer / more link
   --------------------------------------------------------------- */
.fdh-page__section-footer {
    padding: 12px 16px;
    text-align: right;
    border-top: 1px solid var(--fdh-divider);
}

.fdh-page__more-link {
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--fdh-primary);
    text-decoration: none;
}

.fdh-page__more-link:hover {
    text-decoration: underline;
}

/* ---------------------------------------------------------------
   Empty state
   --------------------------------------------------------------- */
.fdh-page__empty {
    text-align: center;
    padding: 48px 24px;
    color: var(--fdh-text-muted);
    font-size: 0.95rem;
}

/* ---------------------------------------------------------------
   FDH Menu items
   --------------------------------------------------------------- */
.fdh-menu-item.current-menu-item > a {
    color: var(--fdh-primary) !important;
}

/* ---------------------------------------------------------------
   Virtual pages — Responsive (≤960px)
   --------------------------------------------------------------- */
@media (max-width: 960px) {
    .fdh-page {
        padding: 0 16px 32px;
    }

    .fdh-page__hero {
        padding: 32px 20px;
        margin-bottom: 24px;
    }

    .fdh-page__hero-title {
        font-size: 1.6rem;
    }

    .fdh-page__hero-stat-value {
        font-size: 1.4rem;
    }

    .fdh-page__match-row--tv {
        grid-template-columns: 1fr auto;
        gap: 8px;
    }

    .fdh-page__match-row--tv .fdh-page__match-info {
        grid-template-columns: 50px 1fr auto;
        gap: 8px;
    }

    .fdh-page__tv-col {
        min-width: 60px;
    }
}

@media (max-width: 480px) {
    .fdh-page__hero {
        padding: 24px 16px;
    }

    .fdh-page__hero-title {
        font-size: 1.3rem;
    }

    .fdh-page__hero-stats {
        gap: 16px;
    }

    .fdh-page__match-row {
        padding: 8px 12px;
        gap: 6px;
    }

    .fdh-page__match-team-name {
        font-size: 0.8rem;
    }

    .fdh-page__match-logo {
        width: 20px;
        height: 20px;
    }

    .fdh-page__match-score {
        min-width: 50px;
        font-size: 0.9rem;
    }

    .fdh-page__standings-th--hide-mobile,
    .fdh-page__standings-td--hide-mobile {
        display: none;
    }

    .fdh-page__match-row--result {
        grid-template-columns: 30px 1fr auto 1fr;
    }

    .fdh-page__result-date {
        font-size: 0.65rem;
    }

    .fdh-page__match-row--tv {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .fdh-page__match-row--tv .fdh-page__match-info {
        grid-template-columns: 44px 1fr auto;
        gap: 6px;
    }

    .fdh-page__tv-col {
        min-width: unset;
        justify-content: flex-start;
        padding-left: 44px;
    }
}

/* ---------------------------------------------------------------
 * Predicted / Expected Lineups
 * --------------------------------------------------------------- */

.fdh-predicted-badge {
    display: inline-block;
    padding: 2px 8px;
    background: #f0ad4e;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    vertical-align: middle;
    margin-left: 8px;
}

/* Dashed pitch border for predicted formations */
.fdh-formation--predicted .fdh-pitch__surface {
    border-style: dashed;
}

.fdh-formation--predicted .fdh-pitch__player--home .fdh-pitch__number,
.fdh-formation--predicted .fdh-pitch__player--away .fdh-pitch__number {
    opacity: 0.8;
}

/* Subtle opacity on predicted lineups grid */
.fdh-lineups--predicted .fdh-lineups__list {
    opacity: 0.9;
}

/* Source attribution text */
.fdh-expected-lineups__source {
    font-size: 0.8rem;
    color: var(--fdh-text-muted, #888);
    font-style: italic;
    margin-top: 12px;
    text-align: center;
}

/* ==========================================================================
   Football Travel CTA
   ========================================================================== */

.fdh-travel-cta {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    background: linear-gradient(135deg, #192250 0%, #2d3a6e 50%, #4374BA 100%);
    color: #fff;
    margin: 2rem 0;
}

.fdh-travel-cta__inner {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.5rem 2rem;
}

.fdh-travel-cta__icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    color: #b7e4c7;
}

.fdh-travel-cta__content {
    flex: 1;
    min-width: 0;
}

.fdh-travel-cta__title {
    margin: 0 0 0.25rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}

.fdh-travel-cta__desc {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.85);
}

.fdh-travel-cta__btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 1.5rem;
    background: #fff;
    color: #192250;
    font-weight: 700;
    font-size: 0.9rem;
    border-radius: 8px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s, transform 0.15s;
}

.fdh-travel-cta__btn:hover {
    background: rgba(67, 116, 186, 0.1);
    transform: translateY(-1px);
    color: #192250;
    text-decoration: none;
}

.fdh-travel-cta__badge {
    position: absolute;
    top: 0.5rem;
    right: 0.75rem;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.5);
}

/* Compact style */
.fdh-travel-cta--compact .fdh-travel-cta__inner {
    padding: 1rem 1.25rem;
    gap: 1rem;
}

.fdh-travel-cta--compact .fdh-travel-cta__icon {
    width: 36px;
    height: 36px;
}

.fdh-travel-cta--compact .fdh-travel-cta__icon svg {
    width: 20px;
    height: 20px;
}

.fdh-travel-cta--compact .fdh-travel-cta__title {
    font-size: 0.95rem;
    margin: 0;
}

.fdh-travel-cta--compact .fdh-travel-cta__btn {
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
}

/* Inline style (for within content) */
.fdh-travel-cta--inline {
    border-radius: 8px;
    margin: 1.5rem 0;
}

.fdh-travel-cta--inline .fdh-travel-cta__inner {
    padding: 1rem 1.25rem;
}

.fdh-travel-cta--inline .fdh-travel-cta__icon {
    display: none;
}

/* ==========================================================================
   Match Anchor Navigation (competition matches tab)
   ========================================================================== */

.fdh-match-nav {
    display: flex;
    gap: 8px;
    margin-bottom: 1.5rem;
    padding: 4px;
    background: var(--fdh-bg-card, #1a1a2e);
    border-radius: var(--fdh-radius, 8px);
    width: fit-content;
}

.fdh-match-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: calc(var(--fdh-radius, 8px) - 2px);
    background: transparent;
    color: var(--fdh-text-muted, #8b8b9e);
    font-family: var(--fdh-font, inherit);
    font-size: 0.85em;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.fdh-match-nav__link:hover {
    color: var(--fdh-text, #e8e8f0);
    background: var(--fdh-overlay-subtle, rgba(255, 255, 255, 0.06));
}

.fdh-match-nav__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: var(--fdh-overlay-subtle, rgba(255, 255, 255, 0.08));
    font-size: 0.78em;
    font-weight: 700;
    line-height: 1;
}

@media (max-width: 480px) {
    .fdh-match-nav {
        width: 100%;
    }

    .fdh-match-nav__link {
        flex: 1;
        justify-content: center;
        padding: 8px 12px;
        font-size: 0.8em;
    }
}

.fdh-travel-cta--inline .fdh-travel-cta__title {
    font-size: 0.9rem;
}

.fdh-travel-cta--inline .fdh-travel-cta__btn {
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
}

/* Responsive */
@media (max-width: 640px) {
    .fdh-travel-cta__inner {
        flex-direction: column;
        text-align: center;
        padding: 1.25rem;
    }

    .fdh-travel-cta__btn {
        width: 100%;
        justify-content: center;
    }

    .fdh-travel-cta--compact .fdh-travel-cta__inner {
        flex-direction: row;
        text-align: left;
    }

    .fdh-travel-cta--compact .fdh-travel-cta__btn {
        width: auto;
    }
}

/* ---------------------------------------------------------------
   Related Entities ("Se også")
   --------------------------------------------------------------- */
.fdh-related {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--fdh-border, #e5e7eb);
}

.fdh-related__heading {
    font-size: 16px;
    font-weight: 700;
    color: var(--fdh-text-primary);
    margin: 0 0 16px;
}

.fdh-related__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
}

.fdh-related__card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border, #e5e7eb);
    border-radius: 8px;
    text-decoration: none;
    color: var(--fdh-text-primary);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.fdh-related__card:hover {
    border-color: var(--fdh-accent, #22c55e);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.fdh-related__image {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--fdh-bg-elevated, #e9ecef);
}

.fdh-related__image--placeholder {
    display: block;
}

.fdh-related__info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.fdh-related__name {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-related__subtitle {
    font-size: 11px;
    color: var(--fdh-text-secondary, #6b7280);
}

/* -------------------------------------------------------
 * Weather widget on match pages
 * ------------------------------------------------------- */

/* Weather — compact inline strip */
.fdh-weather {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin: 14px auto 4px;
    padding: 10px 20px;
    max-width: 480px;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    border: 1px solid var(--fdh-border, rgba(255, 255, 255, 0.1));
}

body.fdh-theme-dark .fdh-weather {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.08);
}

.fdh-weather__primary {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
}

.fdh-weather__icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
}

.fdh-weather__temp {
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--fdh-text-bright, #fff);
}

.fdh-weather__desc {
    font-size: 13px;
    font-weight: 600;
    color: var(--fdh-text-muted, rgba(255, 255, 255, 0.7));
    text-transform: capitalize;
}

.fdh-weather__feels {
    font-size: 12px;
    color: var(--fdh-text-muted, rgba(255, 255, 255, 0.5));
}

.fdh-weather__stats {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
}

.fdh-weather__stat {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
    color: var(--fdh-text-muted, rgba(255, 255, 255, 0.65));
}

.fdh-weather__stat-icon {
    font-size: 13px;
}

.fdh-weather__label {
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fdh-text-muted, rgba(255, 255, 255, 0.35));
}

@media (max-width: 600px) {
    .fdh-weather {
        padding: 8px 14px;
        max-width: 100%;
    }
    .fdh-weather__temp {
        font-size: 17px;
    }
    .fdh-weather__stats {
        gap: 10px;
    }
}

/* Related — match-specific layout */
.fdh-related__matches {
    display: flex;
    flex-direction: column;
    gap: 2px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border, #e5e7eb);
    border-radius: 8px;
    overflow: hidden;
}

.fdh-related__match {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    text-decoration: none;
    color: var(--fdh-text-primary);
    transition: background 0.12s;
}

.fdh-related__match:hover {
    background: var(--fdh-bg-card-hover, #f3f4f6);
}

.fdh-related__match + .fdh-related__match {
    border-top: 1px solid var(--fdh-border-light, #f0f1f3);
}

.fdh-related__match-team {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.fdh-related__match-team--home {
    justify-content: flex-end;
    text-align: right;
}

.fdh-related__match-team--away {
    justify-content: flex-start;
}

.fdh-related__match-team img {
    flex-shrink: 0;
    border-radius: 2px;
}

.fdh-related__match-name {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-related__match-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 52px;
}

.fdh-related__match-score {
    font-size: 15px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

.fdh-related__match-time {
    font-size: 13px;
    font-weight: 600;
    color: var(--fdh-text-secondary);
}

.fdh-related__match-live {
    font-size: 10px;
    font-weight: 700;
    color: #ef5350;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fdh-related__match--live .fdh-related__match-score {
    color: #ef5350;
}

.fdh-related__match--ft .fdh-related__match-name {
    color: var(--fdh-text-secondary);
}

@media (max-width: 600px) {
    .fdh-related__grid {
        grid-template-columns: 1fr 1fr;
    }
    .fdh-related__card {
        padding: 8px 10px;
    }
    .fdh-related__image {
        width: 32px;
        height: 32px;
    }
    .fdh-related__match {
        padding: 8px 12px;
    }
    .fdh-related__match-name {
        font-size: 12px;
    }
}

/* ---------------------------------------------------------------
   Global Search — floating button + overlay
   --------------------------------------------------------------- */
.fdh-global-search {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 9999;
    font-family: var(--fdh-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
}

.fdh-global-search__trigger {
    width: 52px;
    height: 52px;
    border: none;
    border-radius: 50%;
    background: var(--fdh-primary, #1a56db);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
    transition: background 0.15s, transform 0.15s;
}

.fdh-global-search__trigger:hover {
    background: var(--fdh-primary-dark, #1648b8);
    transform: scale(1.05);
}

.fdh-global-search__panel {
    position: absolute;
    bottom: 64px;
    right: 0;
    width: 380px;
    max-width: calc(100vw - 32px);
    background: var(--fdh-bg-card, #fff);
    border: 1px solid var(--fdh-border, #e5e7eb);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}

.fdh-global-search__input {
    width: 100%;
    border: none;
    border-bottom: 1px solid var(--fdh-border, #e5e7eb);
    padding: 14px 16px;
    font-size: 15px;
    background: transparent;
    color: var(--fdh-text-primary, #1a1a2e);
    outline: none;
    box-sizing: border-box;
}

.fdh-global-search__input::placeholder {
    color: var(--fdh-text-muted, #999);
}

.fdh-global-search__results {
    max-height: 360px;
    overflow-y: auto;
}

.fdh-global-search__results--open {
    display: block;
}

.fdh-global-search__empty {
    padding: 20px 16px;
    text-align: center;
    font-size: 13px;
    color: var(--fdh-text-muted, #888);
}

.fdh-global-search__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    text-decoration: none;
    color: var(--fdh-text-primary, #1a1a2e);
    transition: background 0.1s;
    cursor: pointer;
}

.fdh-global-search__item:hover,
.fdh-global-search__item--active {
    background: var(--fdh-bg-page, #f5f6fa);
}

.fdh-global-search__item + .fdh-global-search__item {
    border-top: 1px solid var(--fdh-border-light, #f0f1f3);
}

.fdh-global-search__item-img {
    width: 28px;
    height: 28px;
    border-radius: 4px;
    flex-shrink: 0;
    object-fit: contain;
}

.fdh-global-search__item-img--empty {
    display: block;
    background: var(--fdh-bg-elevated, #eee);
    border-radius: 4px;
}

.fdh-global-search__item-name {
    flex: 1;
    font-size: 14px;
    font-weight: 600;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fdh-global-search__item-badge {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--fdh-bg-elevated, #f0f1f3);
    color: var(--fdh-text-muted, #888);
    flex-shrink: 0;
}

@media (max-width: 480px) {
    .fdh-global-search {
        bottom: 16px;
        right: 16px;
    }
    .fdh-global-search__panel {
        width: calc(100vw - 32px);
        right: -8px;
    }
    .fdh-global-search__trigger {
        width: 46px;
        height: 46px;
    }
}

/* =================================================================
   FODBOLD I TV — bold.dk-inspired layout
   Width + padding inherit from .fdh-page — only page-specific tweaks here.
   ================================================================= */

.fdh-tv {
    /* No max-width/padding here — .fdh-page (1200px, 24/16/48) wins. */
}

.fdh-tv__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    gap: 16px;
}

.fdh-tv__title {
    font-size: 1.5rem;
    font-weight: 800;
    margin: 0;
    color: var(--fdh-text-primary);
}

/* Channel filter dropdown */
.fdh-tv__filter {
    position: relative;
}

.fdh-tv__filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 2px solid #2ecc40;
    border-radius: 24px;
    background: #fff;
    color: #222;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}

.fdh-tv__filter-btn:hover {
    background: #f0fdf4;
}

.fdh-tv__filter-btn svg {
    flex-shrink: 0;
}

.fdh-tv__filter-dropdown {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    z-index: 100;
    min-width: 220px;
    max-height: 360px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid var(--fdh-border, #e5e7eb);
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0,0,0,.12);
    padding: 6px 0;
}

.fdh-tv__filter-option {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 14px;
    border: none;
    background: none;
    font-size: 13px;
    font-weight: 500;
    color: #333;
    cursor: pointer;
    text-align: left;
    transition: background 0.1s;
}

.fdh-tv__filter-option:hover {
    background: #f5f5f5;
}

.fdh-tv__filter-option--active {
    font-weight: 700;
    color: #2ecc40;
}

.fdh-tv__filter-option img {
    flex-shrink: 0;
    height: 16px;
    width: auto;
}

/* Day sections */
.fdh-tv__day {
    background: #fff;
    border: 1px solid var(--fdh-border, #e5e7eb);
    border-radius: 12px;
    margin-bottom: 16px;
    overflow: hidden;
}

.fdh-tv__day--today {
    border-color: #2ecc40;
}

.fdh-tv__day-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 20px;
    background: #fafafa;
    border: none;
    border-bottom: 1px solid var(--fdh-border-light, #f0f1f3);
    font-size: 15px;
    font-weight: 700;
    color: var(--fdh-text-primary);
    cursor: pointer;
    transition: background 0.12s;
}

.fdh-tv__day--today .fdh-tv__day-header {
    background: #f0fdf4;
}

.fdh-tv__day-header:hover {
    background: #f0f0f0;
}

.fdh-tv__day--today .fdh-tv__day-header:hover {
    background: #e6f9ec;
}

.fdh-tv__day-chevron {
    transition: transform 0.2s;
    flex-shrink: 0;
}

.fdh-tv__day--collapsed .fdh-tv__day-chevron {
    transform: rotate(-90deg);
}

/* Match rows */
.fdh-tv__row {
    display: grid;
    grid-template-columns: 70px 1fr auto auto;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    text-decoration: none;
    color: var(--fdh-text-primary);
    border-bottom: 1px solid var(--fdh-border-light, #f5f5f5);
    transition: background 0.1s;
}

.fdh-tv__row:last-child {
    border-bottom: none;
}

.fdh-tv__row:hover {
    background: #fafafa;
}

.fdh-tv__row--live {
    background: #fffbeb;
}

.fdh-tv__row--live:hover {
    background: #fef3c7;
}

.fdh-tv__row--ft {
    opacity: 0.6;
}

/* Time column */
.fdh-tv__time {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.3;
}

.fdh-tv__date-small {
    font-size: 11px;
    font-weight: 600;
    color: var(--fdh-text-muted);
}

.fdh-tv__time-small {
    font-size: 15px;
    font-weight: 800;
    color: var(--fdh-text-primary);
}

.fdh-tv__live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ef5350;
    animation: fdh-pulse 1.5s infinite;
    display: inline-block;
    margin-bottom: 2px;
}

.fdh-tv__live-label {
    font-size: 11px;
    font-weight: 600;
    color: #ef5350;
}

.fdh-tv__live-time {
    font-size: 14px;
    font-weight: 800;
    color: #ef5350;
}

/* Teams column */
.fdh-tv__teams {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.fdh-tv__team {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.fdh-tv__team img {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}

.fdh-tv__team span {
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* League column */
.fdh-tv__league {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.fdh-tv__league-name {
    font-size: 12px;
    font-weight: 500;
    color: var(--fdh-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 150px;
}

.fdh-tv__league img {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}

/* TV channel logos */
.fdh-tv__channels {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.fdh-tv__channel-logo {
    height: 22px;
    width: auto;
    max-width: 48px;
    object-fit: contain;
}

.fdh-tv__channel-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* Empty state */
.fdh-tv__empty {
    text-align: center;
    padding: 48px 24px;
    color: var(--fdh-text-muted);
}

/* Responsive */
@media (max-width: 700px) {
    .fdh-tv__row {
        grid-template-columns: 55px 1fr auto;
        gap: 8px;
        padding: 10px 14px;
    }

    .fdh-tv__league {
        display: none;
    }

    .fdh-tv__team span {
        font-size: 13px;
    }

    .fdh-tv__channel-logo {
        height: 18px;
    }

    .fdh-tv__header {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .fdh-tv {
        padding: 16px 12px 32px;
    }

    .fdh-tv__row {
        grid-template-columns: 50px 1fr;
        gap: 6px;
    }

    .fdh-tv__channels {
        grid-column: 1 / -1;
        margin-top: 4px;
    }

    .fdh-tv__day-header {
        padding: 12px 14px;
        font-size: 14px;
    }
}

/* ===================================================================
   FINAL POLISH — Consistent spacing, card layout, and styling
   applied uniformly across all entity types.
   Added: 2026-04 brand redesign.
   =================================================================== */

/* ---------- Consistent section spacing on ALL entity pages ---------- */
.fdh-entity__section,
.fdh-match__section {
    margin-bottom: 32px;
}

.fdh-entity__section:last-child,
.fdh-match__section:last-child {
    margin-bottom: 0;
}

/* ---------- Card wrapper for sections on ALL entity types ----------
   Previously only the country page wrapped sections in cards. Promoting
   the pattern to all entity pages gives the site a consistent, elevated
   feel and cleaner section boundaries.
   AI sections are exempted — .fdh-ai-content already has its own card. */
.fdh-entity--player .fdh-entity__section:not(.fdh-entity__section--ai),
.fdh-entity--team .fdh-entity__section:not(.fdh-entity__section--ai),
.fdh-entity--coach .fdh-entity__section:not(.fdh-entity__section--ai),
.fdh-entity--competition .fdh-entity__section:not(.fdh-entity__section--ai),
.fdh-entity--venue .fdh-entity__section:not(.fdh-entity__section--ai),
.fdh-entity--country .fdh-entity__section:not(.fdh-entity__section--ai) {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    padding: 24px 28px;
    box-shadow: var(--fdh-shadow-xs);
    transition: box-shadow 0.2s ease;
}

/* Inner tables/standings inside the card wrapper — drop their own chrome. */
.fdh-entity__section .fdh-standings,
.fdh-entity__section .fdh-standings-snapshot,
.fdh-entity__section .fdh-matches,
.fdh-entity__section .fdh-table-wrap {
    border: none;
    border-radius: 0;
    background: transparent;
    padding: 0;
    box-shadow: none;
}

/* Section heading — stronger, more prominent, clear text colour */
.fdh-section-heading,
.fdh-entity__section-title {
    font-family: var(--fdh-font-heading);
    font-size: 0.95em;
    font-weight: 700;
    margin: 0 0 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--fdh-border-light);
    color: var(--fdh-text-bright);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Accent bar before the heading for extra polish */
.fdh-section-heading::before,
.fdh-entity__section-title::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 16px;
    background: linear-gradient(180deg, var(--fdh-primary) 0%, var(--fdh-secondary) 100%);
    border-radius: 2px;
    flex-shrink: 0;
}

/* Section header (heading + action button row) — consistent alignment */
.fdh-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.fdh-section-header .fdh-section-heading {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

/* ---------- Tabs — stronger contrast & nicer inactive state ---------- */
.fdh-tabs {
    padding: 6px;
    box-shadow: var(--fdh-shadow-xs);
    margin-bottom: 28px;
}

.fdh-tabs__tab {
    color: var(--fdh-text-secondary);
    font-weight: 600;
    padding: 11px 20px;
}

.fdh-tabs__tab:hover {
    color: var(--fdh-primary);
    background: rgba(var(--fdh-primary-rgb), 0.06);
}

.fdh-tabs__tab--active,
.fdh-tabs__tab--active:hover {
    background: linear-gradient(135deg, var(--fdh-primary) 0%, var(--fdh-secondary) 100%);
    color: #ffffff;
    box-shadow: 0 3px 10px rgba(var(--fdh-primary-rgb), 0.28);
}

/* ---------- Responsive tuning ---------- */
@media (max-width: 768px) {
    .fdh-hero {
        padding: 28px 22px;
        margin-bottom: 24px;
    }

    .fdh-hero__title {
        font-size: 1.65em;
    }

    .fdh-entity--player .fdh-entity__section:not(.fdh-entity__section--ai),
    .fdh-entity--team .fdh-entity__section:not(.fdh-entity__section--ai),
    .fdh-entity--coach .fdh-entity__section:not(.fdh-entity__section--ai),
    .fdh-entity--competition .fdh-entity__section:not(.fdh-entity__section--ai),
    .fdh-entity--venue .fdh-entity__section:not(.fdh-entity__section--ai),
    .fdh-entity--country .fdh-entity__section:not(.fdh-entity__section--ai) {
        padding: 18px 20px;
    }

    .fdh-entity__section,
    .fdh-match__section {
        margin-bottom: 24px;
    }

    .fdh-section-heading,
    .fdh-entity__section-title {
        font-size: 0.88em;
    }

    .fdh-match-banner {
        padding: 32px 20px 26px;
        margin-bottom: 24px;
    }
}

@media (max-width: 480px) {
    .fdh-hero {
        padding: 22px 18px;
    }

    .fdh-hero__inner {
        flex-direction: column;
        text-align: center;
        gap: 16px;
    }

    .fdh-hero__badges {
        justify-content: center;
    }

    .fdh-hero__title {
        font-size: 1.4em;
    }
}

/* ===================================================================
   Pagination — used on /spiller/ and other paginated archives
   =================================================================== */
.fdh-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 32px 0 16px;
    padding: 16px;
}

.fdh-pagination__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
    border-radius: var(--fdh-radius);
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    color: var(--fdh-text);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
    transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}

.fdh-pagination__link:hover:not(.fdh-pagination__link--current) {
    background: var(--fdh-bg-card-hover);
    border-color: rgba(var(--fdh-primary-rgb), 0.25);
    color: var(--fdh-primary);
}

.fdh-pagination__link--current {
    background: var(--fdh-primary);
    color: #ffffff;
    border-color: var(--fdh-primary);
    cursor: default;
}

.fdh-pagination__link--prev,
.fdh-pagination__link--next {
    padding: 0 16px;
}

.fdh-pagination__gap {
    color: var(--fdh-text-muted);
    padding: 0 4px;
    font-weight: 600;
}

@media (max-width: 600px) {
    .fdh-pagination__link {
        min-width: 34px;
        height: 34px;
        padding: 0 10px;
        font-size: 0.85rem;
    }
}

/* ===================================================================
   Transfers page — /transfers/
   =================================================================== */
.fdh-page--transfers {
    max-width: 1200px;
}

.fdh-transfers-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fdh-transfer-row {
    display: grid;
    grid-template-columns: 110px 1.5fr 1.2fr 24px 1.2fr auto;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.fdh-transfer-row:hover {
    box-shadow: var(--fdh-shadow-sm);
    border-color: var(--fdh-border-light);
}

.fdh-transfer-row__date {
    font-size: 0.82rem;
    color: var(--fdh-text-muted);
    font-weight: 600;
    letter-spacing: 0.02em;
}

.fdh-transfer-row__player {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.fdh-transfer-row__photo {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--fdh-bg-elevated);
    flex-shrink: 0;
}

.fdh-transfer-row__photo--placeholder {
    background: linear-gradient(135deg, var(--fdh-bg-elevated), var(--fdh-bg-page));
}

.fdh-transfer-row__player-name {
    font-weight: 700;
    color: var(--fdh-text-bright);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdh-transfer-row__player-name:hover {
    color: var(--fdh-primary);
}

.fdh-transfer-row__from,
.fdh-transfer-row__to {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-size: 0.9rem;
    color: var(--fdh-text);
}

.fdh-transfer-row__from a,
.fdh-transfer-row__to a,
.fdh-transfer-row__from span,
.fdh-transfer-row__to span {
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.fdh-transfer-row__from a:hover,
.fdh-transfer-row__to a:hover {
    color: var(--fdh-primary);
}

.fdh-transfer-row__from img,
.fdh-transfer-row__to img {
    flex-shrink: 0;
    object-fit: contain;
}

.fdh-transfer-row__arrow {
    text-align: center;
    color: var(--fdh-text-muted);
    font-size: 1.1rem;
}

.fdh-transfer-row__meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.fdh-transfer-row__type {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--fdh-primary-dim);
    color: var(--fdh-primary);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: capitalize;
    letter-spacing: 0.02em;
}

.fdh-transfer-row__fee {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(67, 116, 186, 0.12);
    color: var(--fdh-secondary);
    font-size: 0.75rem;
    font-weight: 700;
    font-family: var(--fdh-font-mono);
}

@media (max-width: 900px) {
    .fdh-transfer-row {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            'player   player'
            'from     to'
            'date     meta';
        gap: 8px 10px;
    }
    .fdh-transfer-row__date   { grid-area: date; }
    .fdh-transfer-row__player { grid-area: player; }
    .fdh-transfer-row__from   { grid-area: from; }
    .fdh-transfer-row__arrow  { display: none; }
    .fdh-transfer-row__to     { grid-area: to; }
    .fdh-transfer-row__to::before {
        content: '→';
        color: var(--fdh-text-muted);
        margin-right: 4px;
    }
    .fdh-transfer-row__meta   { grid-area: meta; justify-content: flex-end; }
}

/* ===================================================================
   Topscore page — /topscore/
   =================================================================== */
.fdh-page--topscore {
    max-width: 1000px;
}

.fdh-topscore-table {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    overflow: hidden;
    box-shadow: var(--fdh-shadow-xs);
}

.fdh-topscore-row {
    display: grid;
    grid-template-columns: 48px 2fr 1.4fr 70px 70px 90px;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--fdh-divider);
    transition: background-color 0.12s ease;
}

.fdh-topscore-row:last-child {
    border-bottom: none;
}

.fdh-topscore-row:not(.fdh-topscore-row--header):hover {
    background: var(--fdh-bg-card-hover);
}

.fdh-topscore-row--header {
    background: var(--fdh-bg-elevated);
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
    color: var(--fdh-text-muted);
    padding: 10px 16px;
}

.fdh-topscore-row__rank {
    font-family: var(--fdh-font-mono);
    font-weight: 800;
    color: var(--fdh-text-muted);
    font-size: 0.92rem;
    text-align: center;
}

.fdh-topscore-row:not(.fdh-topscore-row--header) .fdh-topscore-row__rank {
    color: var(--fdh-text);
}

/* Top 3 ranks with medal-like highlight */
.fdh-topscore-row:not(.fdh-topscore-row--header):nth-of-type(2) .fdh-topscore-row__rank { color: #D4AF37; font-weight: 900; }
.fdh-topscore-row:not(.fdh-topscore-row--header):nth-of-type(3) .fdh-topscore-row__rank { color: #A8A8A8; font-weight: 800; }
.fdh-topscore-row:not(.fdh-topscore-row--header):nth-of-type(4) .fdh-topscore-row__rank { color: #CD7F32; font-weight: 800; }

.fdh-topscore-row__player {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.fdh-topscore-row__player a {
    color: var(--fdh-text-bright);
    text-decoration: none;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdh-topscore-row__player a:hover {
    color: var(--fdh-primary);
}

.fdh-topscore-row__photo {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--fdh-bg-elevated);
    flex-shrink: 0;
}

.fdh-topscore-row__photo--placeholder {
    background: linear-gradient(135deg, var(--fdh-bg-elevated), var(--fdh-bg-page));
    display: inline-block;
}

.fdh-topscore-row__team {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.86rem;
    color: var(--fdh-text-secondary);
    min-width: 0;
}

.fdh-topscore-row__team a,
.fdh-topscore-row__team span {
    color: inherit;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.fdh-topscore-row__team a:hover {
    color: var(--fdh-primary);
}

.fdh-topscore-row__team img {
    flex-shrink: 0;
    object-fit: contain;
}

.fdh-topscore-row__stat {
    font-family: var(--fdh-font-mono);
    text-align: center;
    font-size: 0.92rem;
    color: var(--fdh-text);
}

.fdh-topscore-row__stat--goals strong {
    color: var(--fdh-primary);
    font-size: 1.05rem;
    font-weight: 800;
}

.fdh-topscore-row__stat--minutes {
    color: var(--fdh-text-muted);
    font-size: 0.82rem;
}

@media (max-width: 700px) {
    .fdh-topscore-row {
        grid-template-columns: 36px 1fr 50px 50px;
        gap: 8px;
        padding: 10px 12px;
    }
    .fdh-topscore-row__team,
    .fdh-topscore-row__stat--minutes {
        display: none;
    }
    .fdh-topscore-row--header .fdh-topscore-row__team,
    .fdh-topscore-row--header .fdh-topscore-row__stat--minutes {
        display: none;
    }
}

/* ===================================================================
   Front Page — Full-width layout (v3)
   Three sections: Today's matches, Upcoming, TV today.
   All rows use a shared .fdh-fp-match flex layout.
   =================================================================== */

.fdh-frontpage--full {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 16px 48px;
}

/* ---------- Hero ---------- */
.fdh-fp-hero {
    background: #192250;
    border-radius: var(--fdh-radius-lg);
    padding: 44px 32px;
    margin: 0 0 24px;
    text-align: center;
    color: #fff;
    box-shadow: 0 8px 24px rgba(25, 34, 80, 0.18), 0 2px 6px rgba(25, 34, 80, 0.10);
}

.fdh-fp-hero__title {
    font-family: var(--fdh-font-heading);
    font-size: 2.4rem;
    font-weight: 800;
    margin: 0 0 10px;
    letter-spacing: -0.02em;
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
}

.fdh-fp-hero__subtitle {
    color: rgba(255, 255, 255, 0.82);
    font-size: 1rem;
    margin: 0;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

/* ---------- Section card ---------- */
.fdh-fp-section {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    padding: 20px 24px;
    margin-bottom: 24px;
    box-shadow: var(--fdh-shadow-xs);
}

.fdh-fp-section__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--fdh-border-light);
    flex-wrap: wrap;
}

.fdh-fp-section__title {
    font-family: var(--fdh-font-heading);
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--fdh-text-bright);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: flex;
    align-items: center;
    gap: 10px;
}

.fdh-fp-section__title::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 18px;
    background: linear-gradient(180deg, var(--fdh-primary) 0%, var(--fdh-secondary) 100%);
    border-radius: 2px;
    flex-shrink: 0;
}

.fdh-fp-section__date,
.fdh-fp-section__link {
    font-size: 0.85rem;
    color: var(--fdh-text-secondary);
    font-weight: 500;
    text-decoration: none;
    text-transform: capitalize;
}

.fdh-fp-section__link:hover {
    color: var(--fdh-primary);
}

/* ---------- Date group (upcoming matches grouped per day) ---------- */
.fdh-fp-date-group {
    margin-bottom: 18px;
}

.fdh-fp-date-group:last-child {
    margin-bottom: 0;
}

.fdh-fp-date-group__heading {
    font-family: var(--fdh-font-heading);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--fdh-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 8px;
    padding: 6px 10px;
    background: var(--fdh-bg-elevated);
    border-radius: var(--fdh-radius-sm);
    display: inline-block;
}

/* ---------- Match list (shared for all 3 sections) ---------- */
.fdh-fp-match-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fdh-fp-match {
    display: grid;
    grid-template-columns: 56px 1fr 70px 1fr 1.2fr auto;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border-radius: var(--fdh-radius);
    text-decoration: none;
    color: inherit;
    transition: background-color 0.15s ease, transform 0.15s ease;
    border: 1px solid transparent;
}

.fdh-fp-match:hover {
    background: var(--fdh-bg-card-hover);
    border-color: var(--fdh-border-light);
}

.fdh-fp-match--live {
    background: rgba(255, 82, 82, 0.05);
    border-color: rgba(255, 82, 82, 0.18);
}

.fdh-fp-match--ft {
    opacity: 0.82;
}

.fdh-fp-match--ft:hover {
    opacity: 1;
}

/* Time / status */
.fdh-fp-match__time {
    font-family: var(--fdh-font-mono);
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--fdh-text);
    text-align: center;
}

.fdh-fp-match__live-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--fdh-live);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    animation: fdh-pulse-live 1.5s ease-in-out infinite;
}

.fdh-fp-match__ft-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--fdh-bg-elevated);
    color: var(--fdh-text-muted);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
}

/* Home team */
.fdh-fp-match__home {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    justify-content: flex-end;
    text-align: right;
}

/* Away team */
.fdh-fp-match__away {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    text-align: left;
}

.fdh-fp-match__team-name {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--fdh-text-bright);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.fdh-fp-match__home img,
.fdh-fp-match__away img {
    flex-shrink: 0;
    object-fit: contain;
}

/* Score */
.fdh-fp-match__score {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: var(--fdh-font-mono);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--fdh-text-bright);
    min-width: 70px;
}

.fdh-fp-match__score span {
    font-weight: 400;
    color: var(--fdh-text-muted);
}

.fdh-fp-match__vs {
    color: var(--fdh-text-muted);
    font-family: var(--fdh-font);
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* League badge */
.fdh-fp-match__league {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    color: var(--fdh-text-secondary);
    font-weight: 500;
    overflow: hidden;
    min-width: 0;
}

.fdh-fp-match__league span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.fdh-fp-match__league img {
    flex-shrink: 0;
    object-fit: contain;
}

/* TV channels */
.fdh-fp-match__tv {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
    max-width: 320px;
}

.fdh-fp-match__tv-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(var(--fdh-primary-rgb), 0.06);
    border: 1px solid rgba(var(--fdh-primary-rgb), 0.12);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--fdh-text);
    line-height: 1;
    white-space: nowrap;
}

.fdh-fp-match__tv-chip img {
    flex-shrink: 0;
    border-radius: 2px;
    object-fit: contain;
}

.fdh-fp-match__tv-chip--more {
    background: var(--fdh-bg-elevated);
    color: var(--fdh-text-muted);
    border-color: var(--fdh-border-light);
}

/* TV-sectioned list row — slightly more space for TV chips */
.fdh-fp-match-list--tv .fdh-fp-match {
    grid-template-columns: 56px 1fr 70px 1fr 1fr auto;
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .fdh-fp-match {
        grid-template-columns: 48px 1fr auto 1fr;
        grid-template-areas:
            'time home score away'
            '.    league league league'
            '.    tv    tv    tv';
        gap: 8px 10px;
        padding: 10px 12px;
    }

    .fdh-fp-match__time   { grid-area: time; }
    .fdh-fp-match__home   { grid-area: home; }
    .fdh-fp-match__score  { grid-area: score; min-width: 50px; }
    .fdh-fp-match__away   { grid-area: away; }
    .fdh-fp-match__league { grid-area: league; font-size: 0.72rem; }
    .fdh-fp-match__tv     { grid-area: tv; max-width: 100%; }

    .fdh-fp-match__team-name {
        font-size: 0.85rem;
    }

    .fdh-fp-hero__title {
        font-size: 1.7rem;
    }

    .fdh-fp-section {
        padding: 16px 14px;
    }
}

@media (max-width: 480px) {
    .fdh-fp-match {
        grid-template-columns: 42px 1fr auto 1fr;
        gap: 6px 8px;
    }

    .fdh-fp-match__home img,
    .fdh-fp-match__away img {
        width: 18px;
        height: 18px;
    }

    .fdh-fp-match__team-name {
        font-size: 0.8rem;
    }

    .fdh-fp-match__score {
        font-size: 0.95rem;
        min-width: 44px;
    }

    .fdh-fp-match__tv-chip span {
        display: none;  /* show only logo on tiny screens */
    }

    .fdh-fp-match__tv-chip {
        padding: 3px 5px;
    }
}

/* ===================================================================
   Coach Archive Grid — /traener/
   =================================================================== */
.fdh-coaches-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.fdh-coaches-grid__card {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius-lg);
    padding: 22px 16px 18px;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

a.fdh-coaches-grid__card,
.fdh-coaches-grid__card--linked {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.fdh-coaches-grid__card:hover {
    transform: translateY(-3px);
    border-color: rgba(var(--fdh-primary-rgb), 0.25);
    box-shadow: var(--fdh-shadow-md);
}

.fdh-coaches-grid__card--inactive {
    opacity: 0.78;
}

.fdh-coaches-grid__card--inactive:hover {
    opacity: 1;
}

.fdh-coaches-grid__photo-wrap {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--fdh-bg-elevated);
    flex-shrink: 0;
    border: 3px solid var(--fdh-bg-card);
    box-shadow: 0 3px 10px rgba(var(--fdh-primary-rgb), 0.08);
}

.fdh-coaches-grid__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fdh-coaches-grid__photo-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--fdh-bg-elevated), var(--fdh-bg-page));
    display: flex;
    align-items: center;
    justify-content: center;
}

.fdh-coaches-grid__photo-placeholder::after {
    content: '';
    display: block;
    width: 40%;
    height: 40%;
    background: currentColor;
    opacity: 0.18;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.fdh-coaches-grid__body {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.fdh-coaches-grid__name {
    font-family: var(--fdh-font-heading);
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--fdh-text-bright);
    margin: 0;
    line-height: 1.25;
    word-break: break-word;
}

.fdh-coaches-grid__team {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--fdh-text-secondary);
    font-weight: 600;
    max-width: 100%;
}

.fdh-coaches-grid__team span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.fdh-coaches-grid__team--last {
    color: var(--fdh-text-muted);
    font-weight: 500;
    font-style: italic;
}

.fdh-coaches-grid__team-logo {
    flex-shrink: 0;
    object-fit: contain;
}

.fdh-coaches-grid__nationality,
.fdh-coaches-grid__age {
    display: inline-block;
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--fdh-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fdh-coaches-grid__age {
    background: var(--fdh-primary-dim);
    color: var(--fdh-primary);
    padding: 2px 8px;
    border-radius: 999px;
    letter-spacing: normal;
    font-weight: 700;
}

@media (max-width: 640px) {
    .fdh-coaches-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 12px;
    }

    .fdh-coaches-grid__card {
        padding: 16px 10px 14px;
    }

    .fdh-coaches-grid__photo-wrap {
        width: 68px;
        height: 68px;
    }

    .fdh-coaches-grid__name {
        font-size: 0.9rem;
    }
}

/* ==========================================================================
   Tournament Mode — front-page takeover (VM/EM)         (since 2.7.0)
   ========================================================================== */

.fdh-tournament .fdh-vm-hero {
    display: flex;
    align-items: center;
    gap: 24px;
    background: var(--fdh-primary);
    color: #fff;
    border-radius: var(--fdh-radius-lg);
    padding: 32px 28px;
    margin-bottom: 28px;
    box-shadow: var(--fdh-shadow-md);
}

.fdh-vm-hero__logo {
    flex: 0 0 auto;
    width: 72px;
    height: 72px;
    object-fit: contain;
    background: rgba(255, 255, 255, 0.96);
    border-radius: var(--fdh-radius);
    padding: 8px;
}

.fdh-vm-hero__body {
    min-width: 0;
}

.fdh-vm-hero__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--fdh-secondary);
    background: rgba(255, 255, 255, 0.12);
    padding: 3px 10px;
    border-radius: 999px;
    margin-bottom: 10px;
}

.fdh-vm-hero__title {
    margin: 0;
    color: #fff;
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.1;
    font-weight: 800;
}

.fdh-vm-hero__tagline {
    margin: 10px 0 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 16px;
    line-height: 1.5;
    max-width: 60ch;
}

.fdh-vm-hero__cta {
    display: inline-block;
    margin-top: 18px;
    background: var(--fdh-secondary);
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    padding: 10px 18px;
    border-radius: var(--fdh-radius);
    transition: background 0.15s ease, transform 0.15s ease;
}

.fdh-vm-hero__cta:hover {
    background: #355f9c;
    transform: translateY(-1px);
    color: #fff;
}

/* ---- Group standings grid ---- */

.fdh-vm-groups {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 18px;
}

.fdh-vm-group {
    background: var(--fdh-bg-card);
    border: 1px solid var(--fdh-border);
    border-radius: var(--fdh-radius);
    box-shadow: var(--fdh-shadow-sm);
    padding: 14px 16px 6px;
}

.fdh-vm-group__title {
    margin: 0 0 8px;
    font-size: 15px;
    font-weight: 700;
    color: var(--fdh-text-primary);
}

.fdh-vm-group__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.fdh-vm-group__table th {
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--fdh-text-muted);
    padding: 4px 6px;
    border-bottom: 1px solid var(--fdh-border-light);
}

.fdh-vm-group__table td {
    text-align: center;
    padding: 7px 6px;
    border-bottom: 1px solid var(--fdh-border);
    color: var(--fdh-text-secondary);
}

.fdh-vm-group__table tbody tr:last-child td {
    border-bottom: none;
}

.fdh-vm-group__pos {
    width: 28px;
    color: var(--fdh-text-muted);
    font-weight: 600;
}

.fdh-vm-group__team {
    text-align: left !important;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--fdh-text-primary) !important;
    font-weight: 600;
}

.fdh-vm-group__team img {
    flex: 0 0 auto;
    object-fit: contain;
}

@media (max-width: 600px) {
    .fdh-tournament .fdh-vm-hero {
        flex-direction: column;
        text-align: center;
        gap: 16px;
        padding: 24px 18px;
    }
    .fdh-vm-hero__tagline {
        margin-left: auto;
        margin-right: auto;
    }
    .fdh-vm-groups {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Player jersey placeholder (rights-safe, replaces API photos)  (2.8.0)
   Overrides the circular avatar framing so the full jersey is visible.
   ========================================================================== */
img.fdh-player-jersey {
    border-radius: 10% !important;
    object-fit: contain !important;
    background: #eef1f6;
}

/* ==========================================================================
   TV coverage feature removed (2.9.1) — hide any residual TV wrappers/icons.
   The TV partials render nothing; these containers only appeared when TV data
   existed, so hide them so no empty wrapper or lone TV icon remains.
   ========================================================================== */
.fdh-fp-match__tv,
.fdh-match-row__tv,
.fdh-matches__tv,
.fdh-now-next__tv,
.fdh-page__tv-channels,
.fdh-tv-badges,
.fdh-tv {
    display: none !important;
}
