/**
 * Liste des compétitions de l'appli mobile (results.php) : onglets plats, filtres par discipline,
 * lignes séparées par des filets avec la couleur de la discipline à gauche.
 */

.pm-comp-barre {
    position: sticky;
    top: 56px;
    z-index: 40;
    background: var(--ink);
    border-bottom: 1px solid var(--rule);
}

.pm-comp-onglets { display: flex; padding: 0 8px; }
.pm-comp-onglets a {
    flex: 1;
    text-align: center;
    padding: 14px 4px 12px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--muted);
    text-decoration: none;
    border-bottom: 2px solid transparent;
}
.pm-comp-onglets a.actif { color: var(--white); border-bottom-color: var(--blue); }

.pm-comp-filtres {
    display: flex;
    gap: 6px;
    padding: 10px 16px;
    overflow-x: auto;
    scrollbar-width: none;
    border-top: 1px solid var(--rule);
}
.pm-comp-filtres::-webkit-scrollbar { display: none; }
.pm-comp-filtres button {
    flex-shrink: 0;
    padding: 6px 12px;
    border-radius: 6px;
    border: 1px solid var(--rule2, var(--rule));
    background: transparent;
    color: color-mix(in srgb, var(--white) 75%, transparent);
    font: 700 12px/1 Inter, system-ui, sans-serif;
    cursor: pointer;
}
.pm-comp-filtres button.actif {
    background: var(--white);
    border-color: var(--white);
    color: var(--ink, #0d0f14);
}

.pm-comp-liste { padding: 0 0 110px; }
.pm-comp-vide { padding: 60px 24px; text-align: center; color: var(--muted); }

.pm-comp-mois h2 {
    margin: 0;
    padding: 18px 16px 8px;
    background: var(--ink);
    font-family: 'Bebas Neue', 'Barlow Condensed', sans-serif;
    font-size: 20px;
    font-weight: 400;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--white);
}

.pm-comp-ligne {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px 12px 13px;
    border-left: 3px solid var(--disc, var(--muted));
    border-bottom: 1px solid var(--rule);
    text-decoration: none;
    color: inherit;
}
.pm-comp-ligne:active { background: var(--ink2); }
.pm-comp-ligne[hidden] { display: none; }

.pm-comp-jour {
    width: 38px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
}
.pm-comp-jour strong {
    font-family: 'Bebas Neue', 'Barlow Condensed', sans-serif;
    font-size: 26px;
    font-weight: 400;
    color: var(--white);
}
.pm-comp-jour small {
    margin-top: 2px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--white) 55%, transparent);
}

.pm-comp-infos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.pm-comp-disc {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--disc, var(--muted));
    filter: brightness(1.4);
}
.pm-comp-nom {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--white);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pm-comp-lieu {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: color-mix(in srgb, var(--white) 55%, transparent);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pm-comp-lieu .flag-icon { font-size: 11px; border-radius: 2px; flex-shrink: 0; }

.pm-comp-etat {
    flex-shrink: 0;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--white) 70%, transparent);
}
.pm-comp-etat.direct { color: #fff; background: #b91c1c; padding: 4px 6px; border-radius: 3px; }
.pm-comp-etat.cours { color: var(--blue); }

/* ═══ Fiche compétition (event.php) ═══ */

/* Épreuves d'une compétition : liste simple, couleur de la discipline à gauche */
.pm-epreuves { margin: 4px -16px 0; }
.pm-epreuves h2 {
    margin: 0;
    padding: 6px 16px 10px;
    font-family: 'Bebas Neue', 'Barlow Condensed', sans-serif;
    font-size: 20px;
    font-weight: 400;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--white);
}
.pm-epreuve {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px 14px 13px;
    border-left: 3px solid var(--disc, var(--blue));
    border-top: 1px solid var(--rule);
    color: color-mix(in srgb, var(--white) 50%, transparent);
    text-decoration: none;
}
.pm-epreuve:last-child { border-bottom: 1px solid var(--rule); }
.pm-epreuve:active { background: var(--ink2); }
.pm-epreuve-texte { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.pm-epreuve-nom { font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--white); }
.pm-epreuve-info { font-size: 12px; color: color-mix(in srgb, var(--white) 55%, transparent); }

/* Classement : lignes pleine largeur, podium en couleur */
.pm-classement { margin: 0 -16px; border-top: 1px solid var(--rule); }
.pm-rang {
    width: 30px;
    flex-shrink: 0;
    font-family: 'Bebas Neue', 'Barlow Condensed', sans-serif;
    font-size: 20px;
    line-height: 1;
    color: var(--white);
}
.pm-rang.podium-1 { color: #eab308; }
.pm-rang.podium-2 { color: #cbd5e1; }
.pm-rang.podium-3 { color: #d97706; }
.pm-bouton-profil {
    display: block;
    margin: 10px 16px 4px;
    padding: 10px;
    border: 1px solid var(--rule2, var(--rule));
    border-radius: 6px;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
    color: var(--white);
    text-decoration: none;
}

/* ═══ Calendrier (calendar.php) ═══ */
.pm-cal-mois {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 8px 10px;
    border-top: 1px solid var(--rule);
}
.pm-cal-mois h1 {
    margin: 0;
    font-family: 'Bebas Neue', 'Barlow Condensed', sans-serif;
    font-size: 22px;
    font-weight: 400;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--white);
}
.pm-cal-mois a {
    width: 40px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
}

.pm-cal-grille {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    padding: 8px 8px 12px;
    border-bottom: 1px solid var(--rule);
}
.pm-cal-entete {
    padding: 6px 0;
    text-align: center;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--white) 50%, transparent);
}
.pm-cal-jour {
    height: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--white);
    font: 600 15px/1 Inter, system-ui, sans-serif;
    cursor: pointer;
}
.pm-cal-jour[aria-disabled="true"] { color: color-mix(in srgb, var(--white) 45%, transparent); }
.pm-cal-jour.aujourdhui > span:first-child { color: var(--blue); font-weight: 800; }
.pm-cal-jour.choisi { background: var(--white); color: var(--ink, #0d0f14); }
.pm-cal-jour.choisi.aujourdhui > span:first-child { color: var(--ink, #0d0f14); }
.pm-cal-traits { display: flex; gap: 2px; height: 3px; }
.pm-cal-traits i { display: block; width: 8px; height: 3px; border-radius: 1px; }

.pm-cal-titre-jour {
    margin: 0;
    padding: 18px 16px 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--white) 70%, transparent);
}
.pm-cal-titre-jour[hidden] { display: none; }
.pm-comp-vide[hidden] { display: none; }

/* ═══ Listes d'athlètes et de clubs (athletes.php, clubs.php) ═══ */
.pm-recherche { padding: 10px 16px 12px; border-top: 1px solid var(--rule); display: flex; flex-direction: column; gap: 8px; }
.pm-recherche input[type="search"],
.pm-recherche select {
    width: 100%;
    height: 40px;
    padding: 0 12px;
    border: 1px solid var(--rule2, var(--rule));
    border-radius: 6px;
    background: var(--ink2);
    color: var(--white);
    font: 500 14px/1 Inter, system-ui, sans-serif;
    -webkit-appearance: none;
    appearance: none;
}
.pm-recherche input[type="search"]::placeholder { color: color-mix(in srgb, var(--white) 45%, transparent); }
.pm-recherche input:focus,
.pm-recherche select:focus { outline: none; border-color: var(--blue); }
.pm-recherche-filtres { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pm-recherche select { font-size: 13px; padding-right: 28px; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: right 14px center, right 9px center; background-size: 5px 5px; background-repeat: no-repeat; }

.pm-liste-ligne {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
    border-bottom: 1px solid var(--rule);
    text-decoration: none;
    color: inherit;
}
.pm-liste-ligne:active { background: var(--ink2); }
.pm-liste-ligne .pm-rang { width: 26px; text-align: center; }
.pm-liste-ligne .pm-rang:empty { display: none; }
.pm-liste-photo {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--ink3);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 700;
    color: color-mix(in srgb, var(--white) 60%, transparent);
}
.pm-liste-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pm-liste-photo.carre { border-radius: 6px; }
.pm-liste-texte { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.pm-liste-nom {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--white);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pm-liste-nom small { font-size: 14px; font-weight: 500; }
.pm-liste-info {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: color-mix(in srgb, var(--white) 55%, transparent);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pm-liste-info .flag-icon { font-size: 11px; border-radius: 2px; flex-shrink: 0; }
.pm-liste-points {
    flex-shrink: 0;
    font-family: 'Bebas Neue', 'Barlow Condensed', sans-serif;
    font-size: 20px;
    line-height: 1;
    color: var(--white);
    text-align: right;
}
.pm-liste-points small { margin-left: 2px; font-family: Inter, system-ui, sans-serif; font-size: 10px; font-weight: 700; color: var(--muted); }
.pm-liste-photo.carre { position: relative; background: var(--ink3); }
.pm-liste-photo.carre img { position: absolute; inset: 0; object-fit: contain; background: #fff; padding: 3px; }
