        /* ── Palmarés page styles ───────────────────────────────────────── */

        /* Competition nav tabs */
        .pal-nav {
            display: flex;
            gap: .375rem;
            flex-wrap: wrap;
            margin-bottom: 2rem;
            border-bottom: 2px solid var(--gp-border);
            padding-bottom: 0;
        }
        .pal-nav-btn {
            background: none;
            border: none;
            border-bottom: 3px solid transparent;
            margin-bottom: -2px;
            padding: .55rem 1rem;
            font-size: .82rem;
            font-weight: 600;
            color: var(--gp-text-muted);
            cursor: pointer;
            border-radius: 4px 4px 0 0;
            transition: color .15s, border-color .15s;
            white-space: nowrap;
        }
        .pal-nav-btn:hover { color: var(--gp-accent); }
        .pal-nav-btn.active {
            color: var(--gp-accent);
            border-bottom-color: var(--gp-accent);
        }

        /* Competition section */
        .pal-section { display: none; }
        .pal-section.active { display: block; }

        /* Hero for highlighted competition */
        .pal-hero {
            background: linear-gradient(135deg, #0a2342 0%, #0d3b75 60%, #0085C7 100%);
            border-radius: 14px;
            padding: 2rem 2rem 1.5rem;
            margin-bottom: 2rem;
            color: #fff;
            position: relative;
            overflow: hidden;
        }
        .pal-hero::before {
            content: '';
            position: absolute;
            inset: 0;
            background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat;
        }
        .pal-hero-inner { position: relative; z-index: 1; }
        .pal-hero-icon { font-size: 2.5rem; margin-bottom: .5rem; display: block; }
        .pal-hero-title {
            font-size: 1.75rem;
            font-weight: 800;
            letter-spacing: -.5px;
            margin: 0 0 .4rem;
        }
        .pal-hero-desc {
            font-size: .875rem;
            opacity: .8;
            max-width: 600px;
            margin: 0;
        }

        /* Section header for non-hero competitions */
        .pal-section-header {
            display: flex;
            align-items: center;
            gap: .75rem;
            margin-bottom: 1.5rem;
        }
        .pal-section-icon { font-size: 1.75rem; }
        .pal-section-title {
            font-size: 1.35rem;
            font-weight: 700;
            color: var(--gp-text);
            margin: 0 0 .15rem;
        }
        .pal-section-desc {
            font-size: .8rem;
            color: var(--gp-text-muted);
            margin: 0;
        }

        /* Year selector pills */
        .pal-years {
            display: flex;
            gap: .4rem;
            flex-wrap: wrap;
            margin-bottom: 1.5rem;
        }
        /* Edition panels */
        .pal-edition { display: none; }
        .pal-edition.active { display: block; }

        /* Edition header */
        .pal-edition-header {
            display: flex;
            align-items: center;
            gap: .75rem;
            margin-bottom: 1.5rem;
            padding-bottom: .75rem;
            border-bottom: 1px solid var(--gp-border);
        }
        .pal-edition-year {
            font-size: 1.1rem;
            font-weight: 700;
            color: var(--gp-accent);
        }
        .pal-edition-name {
            font-size: .85rem;
            color: var(--gp-text-muted);
        }
        .pal-edition-link {
            margin-left: auto;
            font-size: .78rem;
            color: var(--gp-accent);
            text-decoration: none;
            font-weight: 600;
        }
        .pal-edition-link:hover { text-decoration: underline; }

        /* Groups: sections within an edition (e.g. "Taça de Portugal", "Taça Jovem") */
        .pal-groups { display: flex; flex-direction: column; gap: 2rem; }

        .pal-group-title {
            font-size: .7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .08em;
            color: var(--gp-text-muted);
            margin: 0 0 .75rem;
            padding-bottom: .4rem;
            border-bottom: 1px solid var(--gp-border);
        }

        /* Stage grid within a group */
        .pal-stages {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1.25rem;
        }

        /* Individual stage card */
        .pal-stage-card {
            background: var(--gp-surface);
            border: 1.5px solid var(--gp-border);
            border-radius: 10px;
            overflow: hidden;
            transition: box-shadow .15s;
        }
        .pal-stage-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.07); }

        .pal-stage-header {
            display: flex;
            align-items: center;
            gap: .5rem;
            padding: .65rem .9rem;
            background: var(--gp-surface-2);
            border-bottom: 1px solid var(--gp-border);
        }
        .pal-stage-cat {
            font-size: .65rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .06em;
            padding: .15rem .45rem;
            border-radius: 3px;
            flex-shrink: 0;
        }
        .pal-stage-cat--mag { background: #DBEAFE; color: #1D4ED8; }
        .pal-stage-cat--wag { background: #FCE7F3; color: #BE185D; }
        .pal-team-badge {
            font-size: .65rem;
            font-weight: 700;
            letter-spacing: .04em;
            text-transform: uppercase;
            background: #F0FDF4;
            color: #166534;
            border: 1px solid #BBF7D0;
            border-radius: 4px;
            padding: 1px 6px;
            flex-shrink: 0;
        }
        .pal-team-name {
            font-weight: 700;
            font-size: .88rem;
            letter-spacing: .01em;
            white-space: normal;
            overflow: visible;
            text-overflow: unset;
        }
        .pal-stage-card--team .pal-podium-row { padding: .35rem .5rem; }
        .pal-club-logo {
            width: 26px;
            height: 26px;
            object-fit: contain;
            border-radius: 4px;
            flex-shrink: 0;
        }
        .pal-club-logo-placeholder {
            width: 26px;
            height: 26px;
            flex-shrink: 0;
        }
        .pal-stage-label {
            font-size: .78rem;
            font-weight: 600;
            color: var(--gp-text);
            flex: 1;
            min-width: 0;
        }
        .pal-stage-count {
            font-size: .7rem;
            color: var(--gp-text-muted);
            flex-shrink: 0;
        }

        /* Podium list */
        .pal-podium { padding: .5rem 0; }
        .pal-podium-row {
            display: flex;
            align-items: center;
            gap: .65rem;
            padding: .45rem .9rem;
            transition: background .1s;
        }
        .pal-podium-row:hover { background: var(--gp-surface-2); }

        .pal-medal {
            width: 22px;
            height: 22px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: .65rem;
            font-weight: 800;
            flex-shrink: 0;
        }
        .pal-medal--1 { background: #FEF3C7; color: #92400E; border: 1.5px solid #FBBF24; }
        .pal-medal--2 { background: #F3F4F6; color: #374151; border: 1.5px solid #9CA3AF; }
        .pal-medal--3 { background: #FEF3C7; color: #78350F; border: 1.5px solid #D97706; }

        .pal-athlete-info { flex: 1; min-width: 0; }
        .pal-athlete-name {
            font-size: .82rem;
            font-weight: 600;
            color: var(--gp-text);
        }
        .pal-athlete-club {
            font-size: .7rem;
            color: var(--gp-text-muted);
        }
        .pal-athlete-score {
            font-size: .78rem;
            font-weight: 700;
            color: var(--gp-accent);
            flex-shrink: 0;
            font-variant-numeric: tabular-nums;
        }

        .pal-empty {
            padding: 1.5rem .9rem;
            text-align: center;
            font-size: .8rem;
            color: var(--gp-text-muted);
        }

        /* Scrollable Tabs for long filter lists */
        .pal-scrollable-tabs {
            flex-wrap: nowrap !important;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none; /* Firefox */
            max-width: 100%;
        }
        .pal-scrollable-tabs::-webkit-scrollbar {
            display: none; /* Chrome/Safari */
        }

        /* Responsive */
        @media (max-width: 850px) {
            .pal-hero { padding: 1.25rem; }
            .pal-hero-title { font-size: 1.35rem; }
            .pal-stages { grid-template-columns: 1fr; }
            .pal-stage-card--empty { display: none; }
            .pal-nav-btn { font-size: .78rem; padding: .45rem .7rem; }
        }
