/* ======================================================
   FILTRES — STRUCTURE PROFILE
   ====================================================== */

.filters-row-structure-profile {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.4rem 1rem !important;
    width: 100% !important;
    align-items: flex-start !important;
    box-sizing: border-box !important;
}

.filter-block-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.35rem !important;

    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content !important;

    box-sizing: border-box !important;
}

.filters-label-structure-profile {
    font-size: 12px !important;
    line-height: 14px !important;
    font-weight: 600 !important;
    color: var(--ffbad-blue-light) !important;
}

#structure-profile-filters-wrapper {
    padding-bottom: 0 !important;
}

/* ======================================================
   LAYOUT CONTENT — STRUCTURE PROFILE
   ====================================================== */

.structure-profile-content {
    width: auto !important;
    box-sizing: border-box !important;
}

/* Ligne de cartes */
.structure-profile-flex-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    width: 100% !important;
    align-items: flex-start !important;
    box-sizing: border-box !important;
}

/* Slot standard :
   - base = 50% moins la moitié du gap
   - donc maximum 2 cartes par ligne
   - min-width réelle = 350px
   - si 2 cartes de 350px + gap ne tiennent plus, elles passent en colonne
*/
.structure-profile-card-slot {
    flex: 1 1 500px !important;
    min-width: 350px !important;
    display: flex !important;
    box-sizing: border-box !important;
}

/* Slot pleine largeur */
.structure-profile-card-slot-full {
    flex: 1 1 100% !important;
    min-width: 350px !important;

    display: flex !important;
    box-sizing: border-box !important;
}

/* La card_updated remplit son wrapper */
.structure-profile-card-slot > *,
.structure-profile-card-slot-full > * {
    width: 100% !important;
    height: 100% !important;
    box-sizing: border-box !important;
}


/* ======================================================
   CONTROLS — PROVENANCE ATHLÈTES — STRUCTURE PROFILE
   ====================================================== */

.provenance-controls-row-structure-profile {
    width: 100% !important;

    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;

    gap: 0.55rem 1rem !important;
    margin-bottom: 0.65rem !important;

    box-sizing: border-box !important;
}

.provenance-control-block-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.28rem !important;

    min-width: 0 !important;
    box-sizing: border-box !important;
}

.provenance-control-label-structure-profile {
    font-size: 12px !important;
    line-height: 14px !important;
    font-weight: 600 !important;
    color: var(--ffbad-blue-light) !important;
}

.provenance-control-label-right-structure-profile {
    text-align: right !important;
}

/* Bloc saisons : largeur utile uniquement */
.provenance-season-filter-structure-profile {
    flex: 0 0 auto !important;
    gap : 0.35rem !important;
    display: flex !important;
    box-sizing: border-box !important;
}

/* Bloc types juste après les saisons */
.provenance-types-filter-wrapper-structure-profile {
    flex: 0 0 auto !important;
    gap: 0.35rem !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;

    box-sizing: border-box !important;
}

/* Bloc vue toujours à droite */
.provenance-display-filter-structure-profile {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    margin-left: auto !important;

    display: flex !important;
    justify-content: flex-end !important;
    align-items: flex-end !important;

    box-sizing: border-box !important;
}


/* ======================================================
   SEASON RANGE FILTER — STRUCTURE PROFILE
   Utilisé par :
   - Provenance des athlètes
   - Flux sorties des athlètes
   ====================================================== */

.season-control-block-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.28rem !important;

    min-width: 0 !important;
    box-sizing: border-box !important;
}

.season-control-label-structure-profile {
    font-size: 12px !important;
    line-height: 14px !important;
    font-weight: 600 !important;
    color: var(--ffbad-blue-light) !important;
}

.season-range-filter-structure-profile {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    gap: 0.32rem !important;

    width: auto !important;
    min-width: 0 !important;

    box-sizing: border-box !important;
}

.season-range-item-structure-profile {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    gap: 0.22rem !important;

    min-width: 0 !important;
    box-sizing: border-box !important;
}

.season-range-label-structure-profile {
    flex: 0 0 auto !important;

    font-size: 9px !important;
    line-height: 11px !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;

    color: var(--ffbad-blue, #101F69) !important;
}

.season-range-item-structure-profile .blue-dropdown-xsmall {
    width: 92px !important;
    min-width: 92px !important;
    max-width: 92px !important;
}

.season-range-separator-structure-profile {
    flex: 0 0 auto !important;

    font-size: 13px !important;
    line-height: 13px !important;
    font-weight: 950 !important;

    color: var(--ffbad-blue-light, #7076AC) !important;

    padding: 0 0.03rem !important;
    margin-top: 1px !important;
}

/* ======================================================
   PROVENANCE — TYPE FILTER PILLS
   ====================================================== */

.provenance-types-checklist-structure-profile {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;

    gap: 0.35rem !important;
}

.provenance-type-option-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    cursor: pointer !important;
    user-select: none !important;
}

.provenance-type-input-structure-profile {
    display: none !important;
}

.provenance-type-pill-structure-profile {
    --type-color: #101F69;
    --type-bg: rgba(16, 31, 105, 0.06);

    height: 24px !important;
    padding: 0 0.58rem !important;
    border-radius: 999px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    font-size: 10.5px !important;
    line-height: 1 !important;
    font-weight: 900 !important;

    color: var(--ffbad-blue-light, #7076AC) !important;
    background-color: rgba(255, 255, 255, 0.78) !important;
    border: 1px solid rgba(16, 31, 105, 0.14) !important;

    opacity: 0.42 !important;

    transition:
        opacity 0.15s ease,
        transform 0.15s ease,
        background-color 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease,
        box-shadow 0.15s ease !important;
}

.provenance-type-option-structure-profile:hover
.provenance-type-pill-structure-profile {
    opacity: 0.85 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 3px 10px rgba(16, 31, 105, 0.08) !important;
}

/* État sélectionné */
.provenance-type-input-structure-profile:checked
+ .provenance-type-pill-structure-profile {
    color: var(--type-color) !important;
    background-color: var(--type-bg) !important;
    border-color: var(--type-color) !important;
    opacity: 1 !important;
    box-shadow: 0 3px 10px rgba(16, 31, 105, 0.06) !important;
}


/* ======================================================
   PROVENANCE — TYPE COLORS
   ====================================================== */

.provenance-type-pill-pf-structure-profile {
    --type-color: #cf2c28;
    --type-bg: rgba(207, 44, 40, 0.085);
}

.provenance-type-pill-pfr-structure-profile {
    --type-color: #131F65;
    --type-bg: rgba(19, 31, 101, 0.085);
}

.provenance-type-pill-pe-structure-profile {
    --type-color: #6AB084;
    --type-bg: rgba(106, 176, 132, 0.13);
}

.provenance-type-pill-cav-structure-profile {
    --type-color: #E69835;
    --type-bg: rgba(230, 152, 53, 0.13);
}

.provenance-type-pill-autres-structure-profile {
    --type-color: #4294cc;
    --type-bg: rgba(66, 148, 204, 0.13);
}


/* ======================================================
   PROFIL STRUCTURE — WRAPPER
   ====================================================== */

.profil-structure-content-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 1rem !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.profil-structure-scroll-x-structure-profile {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    box-sizing: border-box !important;
    padding-bottom: 0.15rem !important;
}


/* ======================================================
   PROFIL STRUCTURE — HEADER
   ====================================================== */

.profil-structure-header-structure-profile {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 0.75rem 1rem !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.profil-structure-header-main-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.25rem !important;
    flex: 1 1 230px !important;
    min-width: 230px !important;
    box-sizing: border-box !important;
}

.profil-structure-pole-name-structure-profile {
    font-size: 20px !important;
    line-height: 24px !important;
    font-weight: 900 !important;
    color: var(--ffbad-blue, #101F69) !important;
    letter-spacing: 0.1px !important;
}

.profil-structure-responsable-structure-profile {
    font-size: 13px !important;
    line-height: 17px !important;
    font-weight: 700 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.profil-structure-type-pill-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: fit-content !important;
    padding: 0.28rem 0.65rem !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    line-height: 15px !important;
    font-weight: 850 !important;
    color: #ffffff !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

.profil-structure-type-pf-structure-profile {
    background-color: var(--ffbad-red, #D52B1E) !important;
}

.profil-structure-type-pfr-structure-profile {
    background-color: var(--ffbad-blue, #101F69) !important;
}

.profil-structure-type-pe-structure-profile {
    background-color: #4CAF50 !important;
}

.profil-structure-type-cav-structure-profile {
    background-color: #F39C12 !important;
}

.profil-structure-type-default-structure-profile {
    background-color: var(--ffbad-grey, #555555) !important;
}


/* ======================================================
   PROFIL STRUCTURE — FLEX CARDS
   ====================================================== */

.profil-structure-flex-row-structure-profile {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: stretch !important;
    box-sizing: border-box !important;
}

.profil-structure-flex-card-structure-profile {
    flex: 1 1 230px !important;
    min-width: 230px !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}


/* ======================================================
   PROFIL STRUCTURE — EFFECTIF ACTUEL
   ====================================================== */

.profil-structure-effectif-body-structure-profile {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.85rem !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}

.profil-structure-donut-wrapper-structure-profile {
    position: relative !important;
    width: 112px !important;
    height: 112px !important;
    flex: 0 0 112px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.profil-structure-donut-structure-profile {
    width: 112px !important;
    height: 112px !important;
    border-radius: 999px !important;
    position: relative !important;
}

.profil-structure-donut-structure-profile::after {
    content: "" !important;
    position: absolute !important;
    inset: 16px !important;
    border-radius: 999px !important;
    background-color: #ffffff !important;
    box-shadow: inset 0 0 0 1px rgba(16, 31, 105, 0.08) !important;
}

.profil-structure-donut-center-structure-profile {
    position: absolute !important;
    z-index: 2 !important;
    inset: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    pointer-events: none !important;
    text-align: center !important;
}

.profil-structure-donut-value-structure-profile {
    font-size: 29px !important;
    line-height: 30px !important;
    font-weight: 950 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.profil-structure-donut-label-structure-profile {
    margin-top: 0.1rem !important;
    font-size: 11px !important;
    line-height: 13px !important;
    font-weight: 800 !important;
    color: var(--ffbad-grey, #555555) !important;
}

.profil-structure-sex-summary-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.55rem !important;
    flex: 1 1 110px !important;
    min-width: 105px !important;
    box-sizing: border-box !important;
}

.profil-structure-sex-summary-row-structure-profile {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.75rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.profil-structure-sex-summary-label-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    min-width: 0 !important;
    font-size: 13px !important;
    line-height: 16px !important;
    font-weight: 800 !important;
    color: var(--ffbad-grey, #555555) !important;
    white-space: nowrap !important;
}


/* ======================================================
   PROFIL STRUCTURE — INLINE VALUES
   ====================================================== */

.profil-structure-inline-value-structure-profile {
    display: inline-flex !important;
    align-items: baseline !important;
    justify-content: flex-start !important;
    gap: 0.35rem !important;
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    text-align: left !important;
    box-sizing: border-box !important;
}

.profil-structure-value-count-structure-profile {
    font-size: 12px !important;
    line-height: 15px !important;
    font-weight: 900 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.profil-structure-value-pct-structure-profile {
    font-size: 10px !important;
    line-height: 12px !important;
    font-weight: 800 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}


/* ======================================================
   PROFIL STRUCTURE — BARRES
   ====================================================== */

.profil-structure-bars-list-structure-profile {
    --profil-structure-label-width: 8ch;
    --profil-structure-value-width: 64px;

    display: flex !important;
    flex-direction: column !important;
    gap: 0.55rem !important;
    flex: 1 1 200px !important;
    min-width: 200px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.profil-structure-bar-row-structure-profile {
    display: flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.profil-structure-bar-label-structure-profile {
    flex: 0 0 var(--profil-structure-label-width) !important;
    width: var(--profil-structure-label-width) !important;
    min-width: var(--profil-structure-label-width) !important;
    max-width: var(--profil-structure-label-width) !important;

    font-size: 12px !important;
    line-height: 15px !important;
    font-weight: 800 !important;
    color: var(--ffbad-blue, #101F69) !important;

    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    box-sizing: border-box !important;
}

.profil-structure-bar-track-structure-profile {
    flex: 1 1 auto !important;
    min-width: 70px !important;
    height: 10px !important;
    border-radius: 999px !important;
    background-color: rgba(16, 31, 105, 0.10) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.profil-structure-bar-fill-structure-profile {
    height: 100% !important;
    border-radius: 999px !important;
}

.profil-structure-bar-fill-red-structure-profile {
    background-color: var(--ffbad-red, #D52B1E) !important;
}

.profil-structure-bar-fill-blue-structure-profile {
    background-color: var(--ffbad-blue, #101F69) !important;
}

.profil-structure-bar-row-structure-profile 
.profil-structure-inline-value-structure-profile {
    flex: 0 0 var(--profil-structure-value-width) !important;
    width: var(--profil-structure-value-width) !important;
    min-width: var(--profil-structure-value-width) !important;
    justify-content: flex-start !important;
    text-align: left !important;
}


/* ======================================================
   PROFIL STRUCTURE — DOTS
   ====================================================== */

.profil-structure-dot-structure-profile {
    width: 9px !important;
    height: 9px !important;
    border-radius: 999px !important;
    display: inline-block !important;
    flex: 0 0 9px !important;
}

.profil-structure-dot-blue-light-structure-profile {
    background-color: var(--ffbad-blue-light, #7076AC) !important;
}

.profil-structure-dot-red-light-structure-profile {
    background-color: var(--ffbad-red-light, #EF4D53) !important;
}

.profil-structure-dot-grey-structure-profile {
    background-color: var(--ffbad-lightgrey, #DFDFDF) !important;
}


/* ======================================================
   PROFIL STRUCTURE — AGE CARD
   ====================================================== */

.profil-structure-age-card-structure-profile {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.profil-structure-age-card-body-structure-profile {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    gap: 1rem !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.profil-structure-age-category-block-structure-profile {
    flex: 65 1 230px !important;
    min-width: 230px !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.65rem !important;
    box-sizing: border-box !important;
}

.profil-structure-age-jitter-block-structure-profile {
    flex: 35 1 230px !important;
    min-width: 230px !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
}


/* ======================================================
   FLUX ANNÉE — STRUCTURE PROFILE
   ====================================================== */

.flux-year-content-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 1rem !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.flux-year-movement-row-structure-profile {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: stretch !important;
    box-sizing: border-box !important;
}

.flux-year-movement-card-structure-profile {
    flex: 1 1 205px !important;
    min-width: 205px !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    padding : 0.8rem !important;
}


/* ======================================================
   FLUX ANNÉE — CARD HEADER
   ====================================================== */

.flux-year-card-head-structure-profile {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 0.75rem !important;
    width: 100% !important;
    padding-bottom: 0.7rem !important;
    margin-bottom: 0.75rem !important;
    border-bottom: 1px solid rgba(16, 31, 105, 0.10) !important;
    box-sizing: border-box !important;
}

.flux-year-card-title-wrap-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.12rem !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.flux-year-card-title-structure-profile {
    font-size: 15px !important;
    line-height: 18px !important;
    font-weight: 900 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.flux-year-card-subtitle-structure-profile {
    font-size: 11px !important;
    line-height: 14px !important;
    font-weight: 750 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.flux-year-count-pill-structure-profile {
    flex: 0 0 auto !important;
    min-width: 34px !important;
    height: 28px !important;
    padding: 0 0.55rem !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 15px !important;
    line-height: 17px !important;
    font-weight: 950 !important;
    color: #ffffff !important;
    box-sizing: border-box !important;
}

.flux-year-count-entry-structure-profile {
    background-color: var(--ffbad-blue-light, #7076AC) !important;
}

.flux-year-count-maintained-structure-profile {
    background-color: var(--ffbad-blue, #101F69) !important;
}

.flux-year-count-exit-structure-profile {
    background-color: var(--ffbad-red-light, #EF4D53) !important;
}


/* ======================================================
   FLUX ANNÉE — PLAYER LIST
   ====================================================== */

.flux-year-list-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.3rem !important;
    width: 100% !important;
    min-width: 0 !important;
    max-height: 330px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 0.2rem !important;
    box-sizing: border-box !important;
}

.flux-year-player-row-structure-profile {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.55rem !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0.42rem 0.5rem !important;
    border-radius: 6px !important;
    background-color: #ffffff !important;
    border: 1px solid rgba(16, 31, 105, 0.07) !important;
    box-sizing: border-box !important;
}

.flux-year-player-row-structure-profile:hover {
    z-index: 60 !important;
}

.flux-year-player-main-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.05rem !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.flux-year-player-name-structure-profile {
    font-size: 12px !important;
    line-height: 15px !important;
    font-weight: 850 !important;
    color: var(--ffbad-blue, #101F69) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.flux-year-player-age-row-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    width: fit-content !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.flux-year-player-age-structure-profile {
    font-size: 10px !important;
    line-height: 12px !important;
    font-weight: 750 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.flux-year-empty-structure-profile {
    padding: 0.55rem 0.65rem !important;
    border-radius: 6px !important;
    background-color: rgba(16, 31, 105, 0.04) !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
    font-size: 12px !important;
    line-height: 15px !important;
    font-weight: 750 !important;
    font-style: italic !important;
}


/* ======================================================
   FLUX ANNÉE — SEX INDICATOR
   ====================================================== */

.flux-year-sex-dot-structure-profile {
    width: 8px !important;
    height: 8px !important;
    border-radius: 999px !important;
    flex: 0 0 8px !important;
    display: inline-block !important;
}

.flux-year-sex-dot-male-structure-profile {
    background-color: var(--ffbad-blue-light, #7076AC) !important;
}

.flux-year-sex-dot-female-structure-profile {
    background-color: var(--ffbad-red-light, #EF4D53) !important;
}

.flux-year-sex-dot-empty-structure-profile {
    background-color: var(--ffbad-lightgrey, #DFDFDF) !important;
}


/* ======================================================
   FLUX ANNÉE — TYPE PILLS
   Couleurs métier uniquement pour PF, PFR, PE, CAv/CCA.
   Tout le reste = gris.
   ====================================================== */

.flux-year-type-pill-structure-profile {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 34px !important;
    padding: 0.22rem 0.45rem !important;
    border-radius: 999px !important;
    font-size: 10px !important;
    line-height: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
    border: 1px solid transparent !important;
    box-sizing: border-box !important;
}

/* PF — rouge foncé */
.flux-year-type-pf-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
    background-color: rgba(213, 43, 30, 0.10) !important;
    border-color: rgba(213, 43, 30, 0.22) !important;
}

/* PFR — bleu foncé */
.flux-year-type-pfr-structure-profile {
    color: var(--ffbad-blue, #101F69) !important;
    background-color: rgba(16, 31, 105, 0.10) !important;
    border-color: rgba(16, 31, 105, 0.22) !important;
}

/* PE — vert */
.flux-year-type-pe-structure-profile {
    color: #4CAF50 !important;
    background-color: rgba(76, 175, 80, 0.12) !important;
    border-color: rgba(76, 175, 80, 0.25) !important;
}

/* CAv / CCA — orange */
.flux-year-type-cav-structure-profile {
    color: #F39C12 !important;
    background-color: rgba(243, 156, 18, 0.14) !important;
    border-color: rgba(243, 156, 18, 0.28) !important;
}

/* Tous les autres types */
.flux-year-type-neutral-structure-profile {
    color: var(--ffbad-grey, #555555) !important;
    background-color: rgba(85, 85, 85, 0.08) !important;
    border-color: rgba(85, 85, 85, 0.16) !important;
}


/* ======================================================
   FLUX ANNÉE — CUSTOM TOOLTIP
   ====================================================== */

.flux-year-tooltip-structure-profile {
    position: absolute !important;
    left: 0.5rem !important;
    right: 0.5rem !important;
    bottom: calc(100% + 0.35rem) !important;
    z-index: 50 !important;

    display: flex !important;
    flex-direction: column !important;
    gap: 0.12rem !important;

    padding: 0.45rem 0.55rem !important;
    border-radius: 6px !important;
    background-color: #ffffff !important;
    border: 1px solid rgba(16, 31, 105, 0.14) !important;
    box-shadow:
        0 4px 10px rgba(0, 0, 0, 0.10),
        0 8px 18px rgba(0, 0, 0, 0.08) !important;

    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(3px) !important;
    pointer-events: none !important;

    transition:
        opacity 80ms ease,
        transform 80ms ease,
        visibility 0ms linear 80ms !important;

    box-sizing: border-box !important;
}

.flux-year-player-row-structure-profile:hover .flux-year-tooltip-structure-profile {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    transition-delay: 40ms !important;
}

/* Premier élément : tooltip vers le bas pour éviter le clipping en haut */
.flux-year-list-structure-profile
.flux-year-player-row-structure-profile:first-child
.flux-year-tooltip-structure-profile {
    top: calc(100% + 0.35rem) !important;
    bottom: auto !important;
    transform: translateY(-3px) !important;
}

.flux-year-list-structure-profile
.flux-year-player-row-structure-profile:first-child:hover
.flux-year-tooltip-structure-profile {
    transform: translateY(0) !important;
}

.flux-year-tooltip-label-structure-profile {
    font-size: 10px !important;
    line-height: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.flux-year-tooltip-text-structure-profile {
    font-size: 11px !important;
    line-height: 14px !important;
    font-weight: 750 !important;
    color: var(--ffbad-blue, #101F69) !important;
}


/* ======================================================
   FLUX ANNÉE — SCROLLBAR
   ====================================================== */

.flux-year-list-structure-profile::-webkit-scrollbar {
    width: 6px !important;
}

.flux-year-list-structure-profile::-webkit-scrollbar-track {
    background-color: rgba(16, 31, 105, 0.06) !important;
    border-radius: 999px !important;
}

.flux-year-list-structure-profile::-webkit-scrollbar-thumb {
    background-color: rgba(16, 31, 105, 0.22) !important;
    border-radius: 999px !important;
}

/* ======================================================
   EFFECTIF & PERFORMANCE — AG GRID
   ====================================================== */

.effectif-performance-content-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.effectif-performance-grid-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;

    --ag-border-color: rgba(16, 31, 105, 0.06);
    --ag-row-border-color: rgba(16, 31, 105, 0.055);
    --ag-header-column-separator-display: none;
    --ag-row-hover-color: rgba(16, 31, 105, 0.045);
    --ag-selected-row-background-color: rgba(16, 31, 105, 0.05);
}

.effectif-performance-grid-structure-profile .ag-root-wrapper {
    border-radius: 6px !important;
    border: 1px solid rgba(16, 31, 105, 0.10) !important;
    overflow: hidden !important;
}

.effectif-performance-grid-structure-profile .ag-header {
    background-color: #ffffff !important;
    border-bottom: 1px solid rgba(16, 31, 105, 0.16) !important;
}

.effectif-performance-grid-structure-profile .ag-header-cell,
.effectif-performance-grid-structure-profile .ag-header-group-cell {
    padding-left: 8px !important;
    padding-right: 8px !important;
    border-right: none !important;
}

.effectif-performance-grid-structure-profile .ag-header-cell-label,
.effectif-performance-grid-structure-profile .ag-header-group-cell-label {
    color: var(--ffbad-blue, #101F69) !important;
    font-weight: 850 !important;
    font-size: 11px !important;
}

.effectif-performance-grid-structure-profile .ag-header-group-cell-label {
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.effectif-performance-grid-structure-profile .ag-header-cell-label {
    justify-content: flex-start !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.effectif-performance-grid-structure-profile .ag-header-group-text,
.effectif-performance-grid-structure-profile .ag-header-cell-text {
    color: var(--ffbad-blue, #101F69) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.effectif-performance-grid-structure-profile .ag-sort-indicator-container,
.effectif-performance-grid-structure-profile .ag-header-icon,
.effectif-performance-grid-structure-profile .ag-icon {
    flex: 0 0 auto !important;
}

.effectif-performance-grid-structure-profile .ag-cell {
    display: flex !important;
    align-items: center !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    font-size: 12px !important;
    color: var(--ffbad-blue, #101F69) !important;
    border-right: none !important;
    border-left: none !important;
    border-top: none !important;
    border-bottom-color: rgba(16, 31, 105, 0.055) !important;
    line-height: 1.1 !important;
}

.effectif-performance-grid-structure-profile .ag-row {
    border-color: rgba(16, 31, 105, 0.055) !important;
}

.effectif-performance-grid-structure-profile .ag-row-odd {
    background-color: rgba(16, 31, 105, 0.014) !important;
}

.effectif-performance-grid-structure-profile .ag-row-hover {
    background-color: rgba(16, 31, 105, 0.048) !important;
}


/* ======================================================
   EFFECTIF & PERFORMANCE — BACKGROUNDS UNIFIÉS
   À placer tout en bas du fichier CSS
   ====================================================== */

/* Tous les headers de groupes ont le même fond */
.effectif-performance-group-header-structure-profile,
.effectif-performance-group-header-important-structure-profile {
    background-color: rgba(16, 31, 105, 0.025) !important;
    border-bottom: 1px solid rgba(16, 31, 105, 0.10) !important;
}

/* Toutes les cellules suivent uniquement le fond de ligne AG Grid */
.effectif-performance-volume-cell-structure-profile,
.effectif-performance-important-cell-structure-profile,
.effectif-performance-text-cell-structure-profile,
.effectif-performance-center-cell-structure-profile,
.effectif-performance-pinned-cell-structure-profile {
    background-color: transparent !important;
}

/* Sécurité : les cellules n'imposent aucun fond par-dessus les lignes alternées */
.effectif-performance-grid-structure-profile .ag-cell {
    background-color: transparent !important;
}

/* Les lignes restent les seules responsables du fond */
.effectif-performance-grid-structure-profile .ag-row-even {
    background-color: #ffffff !important;
}

.effectif-performance-grid-structure-profile .ag-row-odd {
    background-color: rgba(16, 31, 105, 0.014) !important;
}

/* Hover homogène sur toute la ligne */
.effectif-performance-grid-structure-profile .ag-row-hover {
    background-color: rgba(16, 31, 105, 0.048) !important;
}

/* ======================================================
   EFFECTIF & PERFORMANCE — PINNED JOUEUR CLEAN BORDER
   ====================================================== */

/* Une seule bordure propre après la colonne Joueur */
.effectif-performance-grid-structure-profile .ag-pinned-left-header,
.effectif-performance-grid-structure-profile .ag-pinned-left-cols-container {
    border-right: 1px solid rgba(16, 31, 105, 0.16) !important;
    box-shadow: none !important;
}

/* Supprime le faux relief qui crée l'effet parasite sur les lignes alternées */
.effectif-performance-grid-structure-profile .ag-pinned-left-header::after,
.effectif-performance-grid-structure-profile .ag-pinned-left-cols-container::after {
    content: none !important;
    display: none !important;
}

/* Pas de bordure cellule parasite dans la partie pinned */
.effectif-performance-grid-structure-profile .ag-pinned-left-cols-container .ag-cell {
    border-right: none !important;
    box-shadow: none !important;
}

/* Fond cohérent entre partie pinned et partie scrollable */
.effectif-performance-grid-structure-profile .ag-pinned-left-cols-container .ag-row {
    background-color: inherit !important;
}

.effectif-performance-grid-structure-profile .ag-pinned-left-cols-container .ag-row-odd {
    background-color: rgba(16, 31, 105, 0.014) !important;
}

.effectif-performance-grid-structure-profile .ag-pinned-left-cols-container .ag-row-even {
    background-color: #ffffff !important;
}

/* Les cellules pinned ne doivent pas créer leur propre fond */
.effectif-performance-grid-structure-profile .ag-pinned-left-cols-container .ag-cell,
.effectif-performance-pinned-cell-structure-profile {
    background-color: transparent !important;
}

/* ======================================================
   DIRECT COLUMN SEPARATORS — ROBUST FALLBACK
   ====================================================== */

.effectif-performance-grid-structure-profile .ag-header-cell[col-id="date_naissance_iso"],
.effectif-performance-grid-structure-profile .ag-cell[col-id="date_naissance_iso"],
.effectif-performance-grid-structure-profile .ag-header-cell[col-id="nb_tournois_bwf_unique"],
.effectif-performance-grid-structure-profile .ag-cell[col-id="nb_tournois_bwf_unique"],
.effectif-performance-grid-structure-profile .ag-header-cell[col-id="reperes_simple_total"],
.effectif-performance-grid-structure-profile .ag-cell[col-id="reperes_simple_total"],
.effectif-performance-grid-structure-profile .ag-header-cell[col-id="ppi_ratio_sort"],
.effectif-performance-grid-structure-profile .ag-cell[col-id="ppi_ratio_sort"] {
    box-shadow: inset 1px 0 0 rgba(16, 31, 105, 0.14) !important;
}

.effectif-performance-grid-structure-profile .ag-header-cell[col-id="moy_objectifs_dev"],
.effectif-performance-grid-structure-profile .ag-cell[col-id="moy_objectifs_dev"] {
    box-shadow: inset -1px 0 0 rgba(16, 31, 105, 0.16) !important;
}


/* ======================================================
   GENERIC CELLS
   ====================================================== */

.effectif-performance-text-cell-structure-profile {
    font-size: 12px !important;
    font-weight: 750 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.effectif-performance-center-cell-structure-profile {
    justify-content: center !important;
    text-align: center !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.effectif-performance-empty-value-structure-profile {
    color: rgba(85, 85, 85, 0.35) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}


/* ======================================================
   PLAYER CELL
   ====================================================== */

.effectif-performance-grid-structure-profile .ag-cell-value,
.effectif-performance-grid-structure-profile .ag-cell-wrapper {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.effectif-performance-player-cell-structure-profile {
    display: flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.effectif-performance-player-name-structure-profile {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.effectif-performance-sex-dot-structure-profile {
    width: 8px !important;
    height: 8px !important;
    border-radius: 999px !important;
    flex: 0 0 8px !important;
}

.effectif-performance-sex-dot-male-structure-profile {
    background-color: var(--ffbad-blue-light, #7076AC) !important;
}

.effectif-performance-sex-dot-female-structure-profile {
    background-color: var(--ffbad-red-light, #EF4D53) !important;
}

.effectif-performance-sex-dot-empty-structure-profile {
    background-color: var(--ffbad-lightgrey, #DFDFDF) !important;
}


/* ======================================================
   DATE / AGE
   ====================================================== */

.effectif-performance-date-value-structure-profile {
    font-size: 12px !important;
    font-weight: 800 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.effectif-performance-age-cell-structure-profile {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 0.25rem !important;
}

.effectif-performance-age-value-structure-profile {
    font-size: 12px !important;
    font-weight: 900 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.effectif-performance-age-suffix-structure-profile {
    font-size: 10px !important;
    font-weight: 750 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}


/* ======================================================
   BWF CELLS
   ====================================================== */

.effectif-performance-bwf-main-value-structure-profile {
    font-size: 13px !important;
    line-height: 15px !important;
    font-weight: 950 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.effectif-performance-match-main-structure-profile {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 0.35rem !important;
    width: 100% !important;
    min-width: 0 !important;
    white-space: nowrap !important;
}

.effectif-performance-match-win-inline-structure-profile {
    font-size: 10px !important;
    font-weight: 900 !important;
    color: #4CAF50 !important;
}

.effectif-performance-match-loss-inline-structure-profile {
    font-size: 10px !important;
    font-weight: 900 !important;
    color: var(--ffbad-red-light, #EF4D53) !important;
}

.effectif-performance-match-pct-inline-structure-profile {
    font-size: 10px !important;
    font-weight: 850 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}


/* ======================================================
   AG GRID CUSTOM TOOLTIP
   ====================================================== */

.effectif-performance-grid-structure-profile .ag-tooltip {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    z-index: 9999 !important;
}

.effectif-performance-ag-tooltip-structure-profile {
    min-width: 170px !important;
    padding: 0.45rem 0.55rem !important;
    border-radius: 6px !important;

    display: flex !important;
    flex-direction: column !important;
    gap: 0.22rem !important;

    background-color: #ffffff !important;
    border: 1px solid rgba(16, 31, 105, 0.14) !important;
    box-shadow:
        0 4px 10px rgba(0, 0, 0, 0.10),
        0 8px 18px rgba(0, 0, 0, 0.08) !important;

    box-sizing: border-box !important;
}

.effectif-performance-ag-tooltip-wide-structure-profile {
    min-width: 255px !important;
}

.effectif-performance-tooltip-title-structure-profile {
    font-size: 10px !important;
    line-height: 12px !important;
    font-weight: 950 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
    margin-bottom: 0.1rem !important;
}

.effectif-performance-tooltip-line-structure-profile {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 0.35rem !important;
    white-space: nowrap !important;
}

.effectif-performance-tooltip-line-label-structure-profile {
    flex: 0 0 46px !important;
    font-size: 10px !important;
    font-weight: 850 !important;
    color: var(--ffbad-grey, #555555) !important;
}

.effectif-performance-tooltip-line-main-structure-profile {
    font-size: 11px !important;
    font-weight: 900 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.effectif-performance-tooltip-win-structure-profile {
    font-size: 10px !important;
    font-weight: 900 !important;
    color: #4CAF50 !important;
}

.effectif-performance-tooltip-loss-structure-profile {
    font-size: 10px !important;
    font-weight: 900 !important;
    color: var(--ffbad-red-light, #EF4D53) !important;
}

.effectif-performance-tooltip-pct-structure-profile {
    font-size: 10px !important;
    font-weight: 850 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}


/* ======================================================
   RANKING
   ====================================================== */

.effectif-performance-ranking-value-structure-profile {
    font-size: 12px !important;
    font-weight: 950 !important;
    color: var(--ffbad-blue, #101F69) !important;
}


/* ======================================================
   REPÈRES — SIMPLE / DOUBLE
   ====================================================== */

.effectif-performance-repere-summary-cell-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    width: 100% !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

.effectif-performance-repere-total-structure-profile {
    flex: 0 0 auto !important;
    min-width: 24px !important;
    height: 22px !important;
    padding: 0 0.45rem !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 12px !important;
    line-height: 14px !important;
    font-weight: 950 !important;
    box-sizing: border-box !important;
}

.effectif-performance-repere-total-active-structure-profile {
    color: #ffffff !important;
    background-color: rgba(217, 171, 236, 0.95) !important;
}

.effectif-performance-repere-total-empty-structure-profile {
    color: rgba(85, 85, 85, 0.38) !important;
    background-color: rgba(85, 85, 85, 0.06) !important;
}

.effectif-performance-repere-chips-wrap-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.effectif-performance-repere-chip-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 34px !important;
    height: 18px !important;
    padding: 0 0.28rem !important;
    border-radius: 999px !important;
    font-size: 9px !important;
    line-height: 10px !important;
    font-weight: 900 !important;
    box-sizing: border-box !important;
}

.effectif-performance-repere-chip-empty-structure-profile {
    color: rgba(85, 85, 85, 0.34) !important;
    background-color: rgba(85, 85, 85, 0.045) !important;
    border: 1px solid rgba(85, 85, 85, 0.08) !important;
}

.effectif-performance-repere-chip-po-active-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
    background-color: rgba(213, 43, 30, 0.12) !important;
    border: 1px solid rgba(213, 43, 30, 0.22) !important;
}

.effectif-performance-repere-chip-pfr-active-structure-profile {
    color: var(--ffbad-blue, #101F69) !important;
    background-color: rgba(16, 31, 105, 0.12) !important;
    border: 1px solid rgba(16, 31, 105, 0.22) !important;
}


/* ======================================================
   OBJECTIVES — IMPORTANT
   ====================================================== */

.effectif-performance-objective-cell-compact-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    width: 100% !important;
    min-width: 0 !important;
    white-space: nowrap !important;
}

.effectif-performance-objective-ratio-structure-profile {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 0.05rem !important;
    flex: 0 0 auto !important;
}

.effectif-performance-objective-success-value-structure-profile {
    font-size: 13px !important;
    font-weight: 950 !important;
    color: var(--ffbad-red-light, #EF4D53) !important;
}

.effectif-performance-objective-total-structure-profile {
    font-size: 11px !important;
    font-weight: 800 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.effectif-performance-objective-dots-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.18rem !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.effectif-performance-objective-dot-success-structure-profile,
.effectif-performance-objective-dot-empty-structure-profile {
    width: 6px !important;
    height: 6px !important;
    border-radius: 999px !important;
    display: inline-block !important;
    flex: 0 0 6px !important;
}

.effectif-performance-objective-dot-success-structure-profile {
    background-color: #4CAF50 !important;
    border: 1px solid #4CAF50 !important;
}

.effectif-performance-objective-dot-empty-structure-profile {
    background-color: #ffffff !important;
    border: 1px solid rgba(16, 31, 105, 0.22) !important;
}


/* ======================================================
   OBJ. DEV — IMPORTANT
   ====================================================== */

.effectif-performance-dev-score-structure-profile {
    min-width: 34px !important;
    height: 22px !important;
    padding: 0 0.4rem !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 12px !important;
    font-weight: 950 !important;
    box-sizing: border-box !important;
}

.effectif-performance-dev-score-red-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
    background-color: rgba(213, 43, 30, 0.12) !important;
    border: 1px solid rgba(213, 43, 30, 0.22) !important;
}

.effectif-performance-dev-score-orange-structure-profile {
    color: #F39C12 !important;
    background-color: rgba(243, 156, 18, 0.14) !important;
    border: 1px solid rgba(243, 156, 18, 0.25) !important;
}

.effectif-performance-dev-score-green-structure-profile {
    color: #4CAF50 !important;
    background-color: rgba(76, 175, 80, 0.14) !important;
    border: 1px solid rgba(76, 175, 80, 0.25) !important;
}

/* ======================================================
   EFFECTIF & PERFORMANCE — FINAL GROUP BORDER FIX
   ====================================================== */

/* Bordure verticale au début des headers de groupes :
   Profil / BWF / Repères Perf. / PPI */
.effectif-performance-group-start-header-structure-profile {
    box-shadow: inset 1px 0 0 rgba(16, 31, 105, 0.14) !important;
}

/* Bordure verticale à la fin du dernier header de groupe : PPI */
.effectif-performance-group-end-header-structure-profile {
    box-shadow: inset -1px 0 0 rgba(16, 31, 105, 0.16) !important;
}

/* Bordure verticale à la fin de la dernière colonne réelle : Obj. Dev. */
.effectif-performance-section-end-header-structure-profile {
    box-shadow: inset -1px 0 0 rgba(16, 31, 105, 0.16) !important;
}

.effectif-performance-section-end-structure-profile {
    box-shadow: inset -1px 0 0 rgba(16, 31, 105, 0.16) !important;
}

/* ======================================================
   EFFECTIF & PERFORMANCE — FIX BORDER REPÈRES / PPI
   ====================================================== */

/* Cas où un header de groupe a une bordure gauche ET droite :
   typiquement le groupe PPI */
.effectif-performance-group-start-header-structure-profile.effectif-performance-group-end-header-structure-profile {
    box-shadow:
        inset 1px 0 0 rgba(16, 31, 105, 0.14),
        inset -1px 0 0 rgba(16, 31, 105, 0.16) !important;
}

/* Sécurité : début du groupe PPI dans les headers enfants et cellules */
.effectif-performance-grid-structure-profile .ag-header-cell[col-id="ppi_ratio_sort"],
.effectif-performance-grid-structure-profile .ag-cell[col-id="ppi_ratio_sort"] {
    box-shadow: inset 1px 0 0 rgba(16, 31, 105, 0.14) !important;
}

/* Sécurité : fin du tableau après Obj. Dev. */
.effectif-performance-grid-structure-profile .ag-header-cell[col-id="moy_objectifs_dev"],
.effectif-performance-grid-structure-profile .ag-cell[col-id="moy_objectifs_dev"] {
    box-shadow: inset -1px 0 0 rgba(16, 31, 105, 0.16) !important;
}

/* ======================================================
   DEMOGRAPHIC EVOLUTION — AG GRID
   ====================================================== */

.demo-evolution-content-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.demo-evolution-grid-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;

    --ag-border-color: rgba(16, 31, 105, 0.06);
    --ag-row-border-color: rgba(16, 31, 105, 0.055);
    --ag-header-column-separator-display: none;
    --ag-row-hover-color: rgba(16, 31, 105, 0.018);
    --ag-selected-row-background-color: rgba(16, 31, 105, 0.05);
}

.demo-evolution-grid-structure-profile .ag-root-wrapper {
    border-radius: 6px !important;
    border: 1px solid rgba(16, 31, 105, 0.10) !important;
    overflow: hidden !important;
}

.demo-evolution-grid-structure-profile .ag-header {
    background-color: #ffffff !important;
    border-bottom: 1px solid rgba(16, 31, 105, 0.16) !important;
}

.demo-evolution-grid-structure-profile .ag-header-cell,
.demo-evolution-grid-structure-profile .ag-header-group-cell {
    padding-left: 8px !important;
    padding-right: 8px !important;
    border-right: none !important;
    cursor: default !important;
}

.demo-evolution-grid-structure-profile .ag-header-cell-label,
.demo-evolution-grid-structure-profile .ag-header-group-cell-label {
    color: var(--ffbad-blue, #101F69) !important;
    font-weight: 850 !important;
    font-size: 11px !important;
}

.demo-evolution-grid-structure-profile .ag-header-group-cell-label {
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.demo-evolution-grid-structure-profile .ag-header-cell-label {
    justify-content: flex-start !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.demo-evolution-grid-structure-profile .demo-evolution-header-center-structure-profile .ag-header-cell-label {
    justify-content: center !important;
}

.demo-evolution-grid-structure-profile .ag-header-group-text,
.demo-evolution-grid-structure-profile .ag-header-cell-text {
    color: var(--ffbad-blue, #101F69) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.demo-evolution-grid-structure-profile .ag-header-icon,
.demo-evolution-grid-structure-profile .ag-sort-indicator-container,
.demo-evolution-grid-structure-profile .ag-icon-menu,
.demo-evolution-grid-structure-profile .ag-icon-filter,
.demo-evolution-grid-structure-profile .ag-icon-asc,
.demo-evolution-grid-structure-profile .ag-icon-desc,
.demo-evolution-grid-structure-profile .ag-icon-none {
    display: none !important;
}

.demo-evolution-grid-structure-profile .ag-cell {
    display: flex !important;
    align-items: center !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    font-size: 12px !important;
    color: var(--ffbad-blue, #101F69) !important;
    border-right: none !important;
    border-left: none !important;
    border-top: none !important;
    border-bottom-color: rgba(16, 31, 105, 0.055) !important;
    line-height: 1.1 !important;
    background-color: transparent !important;
}

.demo-evolution-grid-structure-profile .ag-row {
    border-color: rgba(16, 31, 105, 0.055) !important;
}

.demo-evolution-grid-structure-profile .ag-row-even {
    background-color: #ffffff !important;
}

.demo-evolution-grid-structure-profile .ag-row-odd {
    background-color: rgba(16, 31, 105, 0.014) !important;
}

.demo-evolution-grid-structure-profile .ag-row-hover {
    background-color: rgba(16, 31, 105, 0.048) !important;
}


/* ======================================================
   HEADERS / SEPARATORS
   ====================================================== */

.demo-evolution-group-header-structure-profile {
    background-color: rgba(16, 31, 105, 0.025) !important;
    border-bottom: 1px solid rgba(16, 31, 105, 0.10) !important;
    text-align: center !important;
}

.demo-evolution-group-start-header-structure-profile {
    box-shadow: inset 1px 0 0 rgba(16, 31, 105, 0.14) !important;
}

.demo-evolution-group-end-header-structure-profile {
    box-shadow: inset -1px 0 0 rgba(16, 31, 105, 0.16) !important;
}

.demo-evolution-section-start-header-structure-profile,
.demo-evolution-section-start-structure-profile {
    box-shadow: inset 1px 0 0 rgba(16, 31, 105, 0.14) !important;
}

.demo-evolution-section-end-header-structure-profile,
.demo-evolution-section-end-structure-profile {
    box-shadow: inset -1px 0 0 rgba(16, 31, 105, 0.16) !important;
}

.demo-evolution-group-start-header-structure-profile.demo-evolution-group-end-header-structure-profile {
    box-shadow:
        inset 1px 0 0 rgba(16, 31, 105, 0.14),
        inset -1px 0 0 rgba(16, 31, 105, 0.16) !important;
}


/* ======================================================
   PINNED SAISON
   ====================================================== */

.demo-evolution-grid-structure-profile .ag-pinned-left-header,
.demo-evolution-grid-structure-profile .ag-pinned-left-cols-container {
    border-right: 1px solid rgba(16, 31, 105, 0.16) !important;
    box-shadow: none !important;
}

.demo-evolution-grid-structure-profile .ag-pinned-left-header::after,
.demo-evolution-grid-structure-profile .ag-pinned-left-cols-container::after {
    content: none !important;
    display: none !important;
}

.demo-evolution-grid-structure-profile .ag-pinned-left-cols-container .ag-cell,
.demo-evolution-pinned-cell-structure-profile {
    background-color: transparent !important;
}

.demo-evolution-grid-structure-profile .ag-pinned-left-cols-container .ag-row-even {
    background-color: #ffffff !important;
}

.demo-evolution-grid-structure-profile .ag-pinned-left-cols-container .ag-row-odd {
    background-color: rgba(16, 31, 105, 0.014) !important;
}


/* ======================================================
   SAISON CELL
   ====================================================== */

.demo-evolution-season-cell-structure-profile {
    display: flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.demo-evolution-season-label-structure-profile {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.demo-evolution-season-average-structure-profile .demo-evolution-season-label-structure-profile {
    color: var(--ffbad-blue-light, #7076AC) !important;
    font-style: italic !important;
}

.demo-evolution-season-change-structure-profile .demo-evolution-season-label-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
    font-weight: 950 !important;
}

.demo-evolution-current-season-badge-structure-profile {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    height: 17px !important;
    padding: 0 0.38rem !important;
    border-radius: 999px !important;

    font-size: 9px !important;
    line-height: 10px !important;
    font-weight: 900 !important;

    color: var(--ffbad-blue, #101F69) !important;
    background-color: rgba(16, 31, 105, 0.08) !important;
    border: 1px solid rgba(16, 31, 105, 0.16) !important;
}


/* ======================================================
   TYPE PILL
   ====================================================== */

.demo-evolution-type-cell-structure-profile {
    justify-content: center !important;
    text-align: center !important;
}

.demo-evolution-type-empty-structure-profile {
    display: inline-block !important;
    width: 100% !important;
    height: 1px !important;
}

.demo-evolution-type-pill-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 38px !important;
    height: 20px !important;
    padding: 0 0.45rem !important;
    border-radius: 999px !important;
    font-size: 10px !important;
    font-weight: 950 !important;
    line-height: 12px !important;
    box-sizing: border-box !important;
}

.demo-evolution-type-pf-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
    background-color: rgba(213, 43, 30, 0.10) !important;
    border: 1px solid rgba(213, 43, 30, 0.22) !important;
}

.demo-evolution-type-pfr-structure-profile {
    color: var(--ffbad-blue, #101F69) !important;
    background-color: rgba(16, 31, 105, 0.10) !important;
    border: 1px solid rgba(16, 31, 105, 0.22) !important;
}

.demo-evolution-type-pe-structure-profile {
    color: #4CAF50 !important;
    background-color: rgba(76, 175, 80, 0.12) !important;
    border: 1px solid rgba(76, 175, 80, 0.25) !important;
}

.demo-evolution-type-cav-structure-profile {
    color: #F39C12 !important;
    background-color: rgba(243, 156, 18, 0.14) !important;
    border: 1px solid rgba(243, 156, 18, 0.28) !important;
}

.demo-evolution-type-neutral-structure-profile {
    color: var(--ffbad-grey, #555555) !important;
    background-color: rgba(85, 85, 85, 0.08) !important;
    border: 1px solid rgba(85, 85, 85, 0.16) !important;
}


/* ======================================================
   NUMBERS
   ====================================================== */

.demo-evolution-number-cell-structure-profile {
    justify-content: center !important;
}

.demo-evolution-number-value-structure-profile {
    font-size: 12px !important;
    font-weight: 900 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.demo-evolution-male-value-structure-profile {
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.demo-evolution-female-value-structure-profile {
    color: var(--ffbad-red-light, #EF4D53) !important;
}

.demo-evolution-number-positive-structure-profile {
    color: #4CAF50 !important;
}

.demo-evolution-number-negative-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
}


/* ======================================================
   FLUX / ORIGINS PILLS
   ====================================================== */

.demo-evolution-flux-pill-structure-profile,
.demo-evolution-origin-pill-structure-profile {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 28px !important;
    height: 20px !important;
    padding: 0 0.4rem !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    font-weight: 950 !important;
    box-sizing: border-box !important;
}

.demo-evolution-entrants-pill-structure-profile {
    color: var(--ffbad-blue, #101F69) !important;
    background-color: rgba(16, 31, 105, 0.10) !important;
    border: 1px solid rgba(16, 31, 105, 0.18) !important;
}

.demo-evolution-sortants-pill-structure-profile {
    color: var(--ffbad-red-light, #EF4D53) !important;
    background-color: rgba(239, 77, 83, 0.10) !important;
    border: 1px solid rgba(239, 77, 83, 0.18) !important;
}

.demo-evolution-origin-cav-structure-profile {
    color: #F39C12 !important;
    background-color: rgba(243, 156, 18, 0.12) !important;
    border: 1px solid rgba(243, 156, 18, 0.22) !important;
}

.demo-evolution-origin-pe-structure-profile {
    color: #4CAF50 !important;
    background-color: rgba(76, 175, 80, 0.12) !important;
    border: 1px solid rgba(76, 175, 80, 0.22) !important;
}

.demo-evolution-origin-pfr-structure-profile {
    color: var(--ffbad-blue, #101F69) !important;
    background-color: rgba(16, 31, 105, 0.10) !important;
    border: 1px solid rgba(16, 31, 105, 0.20) !important;
}


/* ======================================================
   ROWS — CURRENT / MOYENNE / ÉVOLUTION
   ====================================================== */

/* Saison en cours : fond bleu discret mais visible */
.demo-evolution-grid-structure-profile
.ag-row.demo-evolution-row-current-structure-profile .ag-cell {
    background-color: #4caf4f1c !important;
}

.demo-evolution-grid-structure-profile
.ag-pinned-left-cols-container
.ag-row.demo-evolution-row-current-structure-profile .ag-cell {
    background-color: #4caf4f1c !important;
}

.demo-evolution-row-current-structure-profile .demo-evolution-season-label-structure-profile {
    font-weight: 950 !important;
    color: var(--ffbad-blue, #4CAF50) !important;
}

.demo-evolution-current-season-badge-structure-profile {
    color: #4CAF50 !important;
    background-color: #4caf4f1a !important;
    border: 1px solid #4caf4fb2 !important;
}


/* Moyenne : fond bleu-gris léger, sans double bordure */
.demo-evolution-grid-structure-profile
.ag-row.demo-evolution-row-average-structure-profile .ag-cell {
    border-top: 2px solid #7076AC !important;
    font-style: italic !important;
    font-weight: 850 !important;
}

.demo-evolution-season-average-structure-profile .demo-evolution-season-label-structure-profile {
    color: var(--ffbad-blue-light, #7076AC) !important;
    font-style: italic !important;
    font-weight: 900 !important;
}


.demo-evolution-season-change-structure-profile .demo-evolution-season-label-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
    font-weight: 950 !important;
}

.demo-evolution-row-change-structure-profile .demo-evolution-number-negative-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
}

.demo-evolution-row-change-structure-profile .demo-evolution-number-positive-structure-profile {
    color: #4CAF50 !important;
}


/* Hover global très léger */
.demo-evolution-grid-structure-profile .ag-row-hover {
    background-color: rgba(16, 31, 105, 0.018) !important;
}

/* Saison en cours : hover à peine plus marqué */
.demo-evolution-grid-structure-profile
.ag-row.demo-evolution-row-current-structure-profile.ag-row-hover .ag-cell {
    background-color: rgba(16, 31, 105, 0.052) !important;
}


/* ======================================================
   TOOLTIP
   ====================================================== */

.demo-evolution-grid-structure-profile .ag-tooltip {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    z-index: 9999 !important;
}

.demo-evolution-ag-tooltip-structure-profile {
    min-width: 190px !important;
    max-width: 320px !important;
    padding: 0.45rem 0.55rem !important;
    border-radius: 6px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.3rem !important;
    background-color: #ffffff !important;
    border: 1px solid rgba(16, 31, 105, 0.14) !important;
    box-shadow:
        0 4px 10px rgba(0, 0, 0, 0.10),
        0 8px 18px rgba(0, 0, 0, 0.08) !important;
    box-sizing: border-box !important;
}

.demo-evolution-tooltip-title-structure-profile {
    font-size: 10px !important;
    line-height: 12px !important;
    font-weight: 950 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.demo-evolution-tooltip-list-structure-profile {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.18rem !important;
}

.demo-evolution-tooltip-player-structure-profile {
    font-size: 11px !important;
    line-height: 14px !important;
    font-weight: 800 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.demo-evolution-tooltip-empty-structure-profile {
    font-size: 11px !important;
    line-height: 14px !important;
    font-weight: 750 !important;
    font-style: italic !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

/* ======================================================
   PROVENANCE ATHLÈTES — STRUCTURE PROFILE
   ====================================================== */

.provenance-athletes-content-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.provenance-athletes-graph-wrapper-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    height: 600px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.provenance-athletes-graph-structure-profile {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    background-color: transparent !important;
    overflow: visible !important;
}

.provenance-athletes-graph-sankey-structure-profile {
    height: 100% !important;
    background-color: transparent !important;
    overflow: visible !important;
}

.provenance-athletes-graph-origins-structure-profile {
    height: 100% !important;
    background-color: transparent !important;
    overflow: visible !important;
}


/* ======================================================
   FLUX SORTIES — STRUCTURE PROFILE
   ====================================================== */

.flux-sorties-content-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.flux-sorties-graph-wrapper-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    height: 350px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.flux-sorties-graph-structure-profile {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    background-color: transparent !important;
    overflow: visible !important;
}

/* ======================================================
   CONTROLS — FLUX SORTIES — STRUCTURE PROFILE
   ====================================================== */

.flux-sorties-controls-row-structure-profile {
    width: 100% !important;

    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;

    gap: 0.55rem 1rem !important;
    margin-bottom: 0.65rem !important;

    box-sizing: border-box !important;
}

.flux-sorties-season-filter-structure-profile {
    flex: 0 0 auto !important;

    display: flex !important;
    box-sizing: border-box !important;
}


/* ======================================================
   ÂGE ENTRÉE & DURÉE — STRUCTURE PROFILE
   ====================================================== */

.age-entree-duree-content-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.age-entree-duree-graph-wrapper-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.age-entree-duree-graph-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    background-color: transparent !important;
    overflow: visible !important;
}


/* ======================================================
   A360 — STRUCTURE PROFILE
   ====================================================== */

.a360-content-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.a360-subcard-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin-bottom: 0.85rem !important;
    overflow: visible !important;
}

.a360-subcard-header-structure-profile {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    gap: 0.8rem !important;
    flex-wrap: wrap !important;
    margin-bottom: 0.65rem !important;
}

.a360-card-caption-structure-profile {
    font-size: 10px !important;
    line-height: 12px !important;
    font-weight: 800 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}


/* ======================================================
   A360 — EMPTY
   ====================================================== */

.a360-empty-block-structure-profile {
    width: 100% !important;
    padding: 0.6rem 0.7rem !important;
    border-radius: 6px !important;
    background-color: rgba(16, 31, 105, 0.025) !important;
    border: 1px solid rgba(16, 31, 105, 0.06) !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
    font-size: 12px !important;
    line-height: 14px !important;
    font-weight: 800 !important;
    box-sizing: border-box !important;
}


/* ======================================================
   A360 — PAIN ALERTS MODERN COMPACT
   ====================================================== */

.a360-pain-player-list-structure-profile {
    width: 100% !important;
    margin: 0 auto !important;

    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 0.45rem !important;

    overflow: visible !important;
}

.a360-pain-player-group-structure-profile {
    position: relative !important;
    flex: 0 1 200px !important;
    min-width: 200px !important;
    max-width: 200px !important;

    padding: 0.45rem 0.5rem !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;

    background-color: #FFFFFF !important;
    border: 1px solid rgba(16, 31, 105, 0.08) !important;
    box-shadow: 0 4px 14px rgba(16, 31, 105, 0.055) !important;

    overflow: visible !important;
}

.a360-pain-player-orange-structure-profile {
    background-color: rgba(255, 165, 0, 0.045) !important;
    border-color: rgba(255, 165, 0, 0.26) !important;
}

.a360-pain-player-red-structure-profile {
    background-color: rgba(213, 43, 30, 0.040) !important;
    border-color: rgba(213, 43, 30, 0.26) !important;
}

.a360-pain-player-header-structure-profile {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 0.45rem !important;
    margin-bottom: 0.35rem !important;
}

.a360-pain-player-name-structure-profile {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;

    font-size: 11.5px !important;
    line-height: 13px !important;
    font-weight: 950 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.a360-pain-player-count-structure-profile {
    flex: 0 0 auto !important;
    padding: 0.12rem 0.34rem !important;
    border-radius: 999px !important;

    font-size: 9.5px !important;
    line-height: 11px !important;
    font-weight: 900 !important;

    color: var(--ffbad-blue-light, #7076AC) !important;
    background-color: rgba(255, 255, 255, 0.70) !important;
    border: 1px solid rgba(16, 31, 105, 0.08) !important;
}

.a360-pain-zones-row-structure-profile {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.25rem !important;
    overflow: visible !important;
}

.a360-pain-zone-chip-structure-profile {
    position: relative !important;

    display: inline-flex !important;
    align-items: center !important;
    gap: 0.28rem !important;

    max-width: 100% !important;
    height: 21px !important;
    padding: 0 0.42rem !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;

    cursor: default !important;
    overflow: visible !important;
}

.a360-pain-zone-orange-structure-profile {
    color: #FFA500 !important;
    background-color: rgba(255, 165, 0, 0.12) !important;
    border: 1px solid rgba(255, 165, 0, 0.30) !important;
}

.a360-pain-zone-red-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
    background-color: rgba(213, 43, 30, 0.10) !important;
    border: 1px solid rgba(213, 43, 30, 0.28) !important;
}

.a360-pain-zone-name-structure-profile {
    min-width: 0 !important;
    max-width: 135px !important;

    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;

    font-size: 9.8px !important;
    line-height: 11px !important;
    font-weight: 900 !important;
    color: currentColor !important;
}

.a360-pain-zone-count-structure-profile {
    flex: 0 0 auto !important;

    font-size: 10px !important;
    line-height: 11px !important;
    font-weight: 950 !important;
    color: currentColor !important;
}

.a360-pain-zone-more-structure-profile {
    height: 21px !important;
    padding: 0 0.42rem !important;
    border-radius: 999px !important;

    display: inline-flex !important;
    align-items: center !important;

    font-size: 10px !important;
    line-height: 11px !important;
    font-weight: 950 !important;

    color: var(--ffbad-blue, #101F69) !important;
    background-color: rgba(16, 31, 105, 0.06) !important;
    border: 1px solid rgba(16, 31, 105, 0.14) !important;
}

.a360-pain-tooltip-structure-profile {
    display: none !important;
    position: absolute !important;
    z-index: 90 !important;

    left: 0 !important;
    top: calc(100% + 6px) !important;

    min-width: 230px !important;
    max-width: 320px !important;
    max-height: 220px !important;
    overflow-y: auto !important;

    padding: 0.55rem 0.65rem !important;
    border-radius: 6px !important;

    background-color: #FFFFFF !important;
    border: 1px solid rgba(16, 31, 105, 0.18) !important;
    box-shadow: 0 8px 24px rgba(16, 31, 105, 0.14) !important;

    color: var(--ffbad-blue, #101F69) !important;
    box-sizing: border-box !important;
}

.a360-pain-zone-chip-structure-profile:hover .a360-pain-tooltip-structure-profile {
    display: block !important;
}

.a360-pain-tooltip-title-structure-profile {
    font-size: 11px !important;
    line-height: 13px !important;
    font-weight: 950 !important;
    color: var(--ffbad-blue, #101F69) !important;
    margin-bottom: 0.25rem !important;
}

.a360-pain-tooltip-subtitle-structure-profile {
    font-size: 10.5px !important;
    line-height: 13px !important;
    font-weight: 850 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
    margin-bottom: 0.35rem !important;
}

.a360-pain-tooltip-line-structure-profile {
    font-size: 10.5px !important;
    line-height: 14px !important;
    font-weight: 750 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.a360-pain-tooltip-strong-count-structure-profile {
    margin-bottom: 0.35rem !important;
    padding: 0.25rem 0.35rem !important;
    border-radius: 4px !important;

    font-size: 10.5px !important;
    line-height: 13px !important;
    font-weight: 950 !important;
}

.a360-pain-tooltip-strong-count-red-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
    background-color: rgba(213, 43, 30, 0.08) !important;
    border: 1px solid rgba(213, 43, 30, 0.20) !important;
}

.a360-pain-tooltip-strong-count-muted-structure-profile {
    color: var(--ffbad-blue-light, #7076AC) !important;
    background-color: rgba(112, 118, 172, 0.08) !important;
    border: 1px solid rgba(112, 118, 172, 0.16) !important;
}


/* ======================================================
   A360 — ADHERENCE SUMMARY
   ====================================================== */

.a360-adherence-summary-strip-structure-profile {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.45rem !important;
    margin-bottom: 0.55rem !important;
}

.a360-adherence-summary-item-structure-profile {
    flex: 1 1 130px !important;
    min-width: 130px !important;

    padding: 0.45rem 0.55rem !important;
    border-radius: 8px !important;

    background-color: var(--ffbad-white, #FFFFFF) !important;
    border: 1px solid rgba(112, 118, 172, 0.20) !important;
    box-sizing: border-box !important;

    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

.a360-adherence-summary-label-structure-profile {
    font-size: 9.5px !important;
    line-height: 11px !important;
    font-weight: 850 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.a360-adherence-summary-value-structure-profile {
    font-size: 18px !important;
    line-height: 20px !important;
    font-weight: 950 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.a360-adherence-summary-detail-structure-profile {
    font-size: 9.5px !important;
    line-height: 11px !important;
    font-weight: 750 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.a360-adherence-value-green-structure-profile {
    color: #4CAF50 !important;
}

.a360-adherence-value-orange-structure-profile {
    color: #FFA500 !important;
}

.a360-adherence-value-red-structure-profile {
    color: var(--ffbad-red, #D52B1E) !important;
}

.a360-adherence-value-purple-structure-profile {
    color: rgba(217, 171, 236, 0.95) !important;
}


/* ======================================================
   A360 — ADHERENCE GRAPH
   ====================================================== */

.a360-adherence-graph-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    background-color: transparent !important;
    overflow: visible !important;
}


/* ======================================================
   A360 — WELLNESS SUMMARY
   ====================================================== */

.a360-wellness-summary-strip-structure-profile {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.45rem !important;
    margin-bottom: 0.65rem !important;
    overflow: visible !important;
}

.a360-wellness-summary-item-structure-profile {
    position: relative !important;

    flex: 1 1 150px !important;
    min-width: 150px !important;

    padding: 0.45rem 0.55rem !important;
    border-radius: 8px !important;

    background-color: #FFFFFF !important;
    border: 1px solid rgba(16, 31, 105, 0.08) !important;
    box-sizing: border-box !important;

    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;

    overflow: visible !important;
    cursor: default !important;
}

.a360-wellness-summary-alert-structure-profile {
    background-color: rgba(213, 43, 30, 0.040) !important;
    border-color: rgba(213, 43, 30, 0.22) !important;
}

.a360-wellness-summary-warning-structure-profile {
    background-color: rgba(255, 165, 0, 0.050) !important;
    border-color: rgba(255, 165, 0, 0.24) !important;
}

.a360-wellness-summary-degradation-structure-profile {
    background-color: rgba(112, 118, 172, 0.045) !important;
    border-color: rgba(112, 118, 172, 0.18) !important;
}

.a360-wellness-summary-insufficient-structure-profile {
    background-color: rgba(0, 0, 0, 0.025) !important;
    border-color: rgba(0, 0, 0, 0.10) !important;
}

.a360-wellness-summary-label-structure-profile {
    font-size: 9.5px !important;
    line-height: 11px !important;
    font-weight: 850 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.a360-wellness-summary-value-structure-profile {
    font-size: 18px !important;
    line-height: 20px !important;
    font-weight: 950 !important;
    color: var(--ffbad-blue, #101F69) !important;
}

.a360-wellness-summary-detail-structure-profile {
    font-size: 9.5px !important;
    line-height: 11px !important;
    font-weight: 750 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
}

.a360-wellness-summary-tooltip-structure-profile {
    display: none !important;
    position: absolute !important;
    z-index: 90 !important;

    left: 0 !important;
    top: calc(100% + 6px) !important;

    min-width: 250px !important;
    max-width: 360px !important;
    max-height: 240px !important;
    overflow-y: auto !important;

    padding: 0.55rem 0.65rem !important;
    border-radius: 6px !important;

    background-color: #FFFFFF !important;
    border: 1px solid rgba(16, 31, 105, 0.18) !important;
    box-shadow: 0 8px 24px rgba(16, 31, 105, 0.14) !important;

    box-sizing: border-box !important;
}

.a360-wellness-summary-item-structure-profile:hover
.a360-wellness-summary-tooltip-structure-profile {
    display: block !important;
}

.a360-wellness-summary-tooltip-title-structure-profile {
    font-size: 11px !important;
    line-height: 13px !important;
    font-weight: 950 !important;
    color: var(--ffbad-blue, #101F69) !important;
    margin-bottom: 0.35rem !important;
}

.a360-wellness-summary-tooltip-line-structure-profile {
    font-size: 10.5px !important;
    line-height: 14px !important;
    font-weight: 750 !important;
    color: var(--ffbad-blue-light, #7076AC) !important;
    white-space: nowrap !important;
}


/* ======================================================
   A360 — WELLNESS DYNAMICS GRAPH
   ====================================================== */

.a360-wellness-dynamics-graph-structure-profile {
    width: 100% !important;
    min-width: 0 !important;
    background-color: transparent !important;
    overflow: visible !important;
}


/* ======================================================
   PLOTLY HOVER — STYLE GLOBAL STRUCTURE PROFILE
   ====================================================== */

/*
   Ce bloc remplace les anciens blocs séparés :
   - PLOTLY HOVER — PROVENANCE / SORTIES / ÂGE
   - PLOTLY HOVER — MAP ORIGINS / PROVENANCE / SORTIES

   Il couvre :
   - Sankey provenance
   - Carte provenance / origins
   - Flux sorties
   - Âge entrée & durée
   - A360 adhésion
   - A360 wellness
*/

.provenance-athletes-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext,
.provenance-athletes-graph-origins-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext,
.provenance-athletes-graph-sankey-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext,
.flux-sorties-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext,
.age-entree-duree-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext,
.a360-adherence-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext,
.a360-wellness-dynamics-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext,
.origins-map-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext {
    opacity: 0.98 !important;
}

.provenance-athletes-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext path,
.provenance-athletes-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext rect,
.provenance-athletes-graph-origins-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext path,
.provenance-athletes-graph-origins-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext rect,
.provenance-athletes-graph-sankey-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext path,
.provenance-athletes-graph-sankey-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext rect,
.flux-sorties-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext path,
.flux-sorties-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext rect,
.age-entree-duree-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext path,
.age-entree-duree-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext rect,
.a360-adherence-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext path,
.a360-adherence-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext rect,
.a360-wellness-dynamics-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext path,
.a360-wellness-dynamics-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext rect,
.origins-map-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext path,
.origins-map-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext rect {
    fill: #FFFFFF !important;
    fill-opacity: 1 !important;
    stroke: rgba(16, 31, 105, 0.24) !important;
    stroke-opacity: 1 !important;
}

.provenance-athletes-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext text,
.provenance-athletes-graph-origins-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext text,
.provenance-athletes-graph-sankey-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext text,
.flux-sorties-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext text,
.age-entree-duree-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext text,
.a360-adherence-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext text,
.a360-wellness-dynamics-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext text,
.origins-map-graph-structure-profile
.js-plotly-plot
.hoverlayer
.hovertext text {
    fill: #101F69 !important;
    fill-opacity: 1 !important;
}


/* ======================================================
   PLOTLY — NO CLIPPING GLOBAL STRUCTURE PROFILE
   ====================================================== */

.provenance-athletes-graph-structure-profile,
.provenance-athletes-graph-structure-profile .js-plotly-plot,
.provenance-athletes-graph-structure-profile .plot-container,
.provenance-athletes-graph-structure-profile .svg-container,
.provenance-athletes-graph-structure-profile .main-svg,
.provenance-athletes-graph-structure-profile .hoverlayer,

.provenance-athletes-graph-origins-structure-profile,
.provenance-athletes-graph-origins-structure-profile .js-plotly-plot,
.provenance-athletes-graph-origins-structure-profile .plot-container,
.provenance-athletes-graph-origins-structure-profile .svg-container,
.provenance-athletes-graph-origins-structure-profile .main-svg,
.provenance-athletes-graph-origins-structure-profile .hoverlayer,

.provenance-athletes-graph-sankey-structure-profile,
.provenance-athletes-graph-sankey-structure-profile .js-plotly-plot,
.provenance-athletes-graph-sankey-structure-profile .plot-container,
.provenance-athletes-graph-sankey-structure-profile .svg-container,
.provenance-athletes-graph-sankey-structure-profile .main-svg,
.provenance-athletes-graph-sankey-structure-profile .hoverlayer,

.flux-sorties-graph-structure-profile,
.flux-sorties-graph-structure-profile .js-plotly-plot,
.flux-sorties-graph-structure-profile .plot-container,
.flux-sorties-graph-structure-profile .svg-container,
.flux-sorties-graph-structure-profile .main-svg,
.flux-sorties-graph-structure-profile .hoverlayer,

.age-entree-duree-graph-structure-profile,
.age-entree-duree-graph-structure-profile .js-plotly-plot,
.age-entree-duree-graph-structure-profile .plot-container,
.age-entree-duree-graph-structure-profile .svg-container,
.age-entree-duree-graph-structure-profile .main-svg,
.age-entree-duree-graph-structure-profile .hoverlayer,

.a360-adherence-graph-structure-profile,
.a360-adherence-graph-structure-profile .js-plotly-plot,
.a360-adherence-graph-structure-profile .plot-container,
.a360-adherence-graph-structure-profile .svg-container,
.a360-adherence-graph-structure-profile .main-svg,
.a360-adherence-graph-structure-profile .hoverlayer,

.a360-wellness-dynamics-graph-structure-profile,
.a360-wellness-dynamics-graph-structure-profile .js-plotly-plot,
.a360-wellness-dynamics-graph-structure-profile .plot-container,
.a360-wellness-dynamics-graph-structure-profile .svg-container,
.a360-wellness-dynamics-graph-structure-profile .main-svg,
.a360-wellness-dynamics-graph-structure-profile .hoverlayer,

.origins-map-graph-structure-profile,
.origins-map-graph-structure-profile .js-plotly-plot,
.origins-map-graph-structure-profile .plot-container,
.origins-map-graph-structure-profile .svg-container,
.origins-map-graph-structure-profile .main-svg,
.origins-map-graph-structure-profile .hoverlayer {
    overflow: visible !important;
}


/* ======================================================
   DASH CONTAINERS — NO CLIPPING SECURITY
   ====================================================== */

.provenance-athletes-content-structure-profile,
.provenance-athletes-graph-wrapper-structure-profile,

.flux-sorties-content-structure-profile,
.flux-sorties-graph-wrapper-structure-profile,

.age-entree-duree-content-structure-profile,
.age-entree-duree-graph-wrapper-structure-profile,

.a360-content-structure-profile,
.a360-subcard-structure-profile,

.structure-profile-card-slot,
.structure-profile-card-slot-full,
.athlete-profile-card,
.athlete-profile-pvc-card {
    overflow: visible !important;
}