/* ================================================================
   AXEANE KOMPTA — RUBRIQUE PAIE (Thème V2)
   ================================================================
   Styles SCOPÉS à la rubrique Paie.

   RÈGLE OBLIGATOIRE (skills/design.md — "Scoping CSS des composants
   inline") : aucune classe globale ax-* n'est redéfinie ici sans
   préfixe de scope. Tous les sélecteurs commencent par .paie-*
   (ou sont qualifiés par une classe .paie-*), afin de ne JAMAIS
   contaminer le Grand Livre, la Balance, le Relevé bancaire, etc.

   Chargé en DERNIER dans localIndex.html / indexProd.html /
   indexProdCfac.html.
   ---------------------------------------------------------------- */

/* ================================================================
   1. CHAÎNE FLEX DES ONGLETS
   ----------------------------------------------------------------
   <ng-include> est rendu "inline" par défaut : sans display:flex il
   casse la chaîne flex et les tables enfants ne prennent pas toute
   la hauteur (cf. design.md — correctif Envoi Document #5).
   ================================================================ */
.paie-tab-host {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.paie-tab-host > ng-include,
.paie-tab-host > [ng-include],
.paie-tab-frame > ng-include,
.paie-tab-frame > [ng-include] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

/* Cadre d'une vue d'onglet — remplace style="height: 99%" */
.paie-tab-frame {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

/* Contenu d'un onglet : panneau de saisie + table + pagination */
.paie-tab-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* ================================================================
   2. HEADER-BAR — fil d'Ariane de l'onglet actif
   ================================================================ */
.paie-crumb {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 13.5px;
    font-weight: 600;
    white-space: nowrap;
    color: var(--ax-primary-dark, #3949ab);
    background: var(--ax-primary-50, #eef2ff);
    border: 1px solid #c7d2fe;
}

/* ================================================================
   3. TOOLBAR — chips d'état (paramètres manquants, duplication)
   ================================================================ */
.paie-param-root .ax-toolbar-left {
    min-width: 0;
    overflow: hidden;
}

.paie-chips {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: thin;
}

.paie-chips::-webkit-scrollbar { height: 4px; }
.paie-chips::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }

.paie-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    border: 1px solid transparent;
    flex-shrink: 0;
}

.paie-chip i { font-size: 13px; }

.paie-chip-danger  { background: #fee2e2; color: #991b1b; border-color: #fecaca; }
.paie-chip-info    { background: #dbeafe; color: #1e40af; border-color: #bfdbfe; }
.paie-chip-success { background: #dcfce7; color: #166534; border-color: #bbf7d0; }

.paie-chip md-progress-circular { display: inline-block; }
.paie-chip md-progress-circular path { stroke: #1e40af !important; }

/* ================================================================
   4. PANNEAU DE SAISIE INLINE (label + input + boutons)
   ----------------------------------------------------------------
   Hauteur FIXE du form-group (label + input + zone d'erreur) : quand
   un message d'erreur apparaît, les boutons ne descendent PAS.
   (design.md — "Form panel inline : boutons toujours alignés")
   ================================================================ */
.paie-form-panel {
    flex-shrink: 0;
    padding: 12px 22px;
    background: var(--ax-card, #ffffff);
    border-bottom: 1px solid var(--ax-border, #e5e7eb);
}

.paie-form-row {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    flex-wrap: wrap;
    margin: 0;
}

.paie-form-group {
    flex: 0 1 360px;
    min-width: 0;
    height: 72px;          /* label (~20px) + input (34px) + erreur (~18px) */
    margin-bottom: 0;
    padding-bottom: 0;
}

.paie-form-group > label {
    display: block;
    margin: 0 0 3px;
    font-size: 14px;
    font-weight: 700;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.paie-form-group .form-control {
    height: 34px;
    font-size: 13px;
    width: 100%;
    box-sizing: border-box;
    border: 1.5px solid var(--ax-border-input, #cbd5e1);
    border-radius: var(--ax-radius-sm, 8px);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.paie-form-group .form-control:focus {
    border-color: var(--ax-border-focus, #2563eb);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .15);
    outline: none;
}

.paie-form-group.has-error .form-control {
    border-color: var(--ax-danger, #dc2626);
}

.paie-form-group .paie-error {
    margin: 2px 0 0;
    padding: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--ax-danger, #dc2626);
}

.paie-form-actions {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding-top: 21px;     /* aligne les boutons avec les inputs */
}

/* ================================================================
   5. LIEN DE TRI DANS LES <th>
   ================================================================ */
.paie-sort-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #475569;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
    text-decoration: none;
    cursor: pointer;
}

.paie-sort-link:hover,
.paie-sort-link:focus {
    color: var(--ax-primary, #3f51b5);
    text-decoration: none;
}

.paie-sort-link > i { font-size: 13px; opacity: .85; }
.paie-sort-link > i.fa-sort { opacity: .3; }

/* ================================================================
   6. LIGNE EN COURS D'ÉDITION
   ----------------------------------------------------------------
   Sélecteur qualifié par .paie-row-active : ne peut matcher que les
   lignes de la rubrique Paie.
   ================================================================ */
.ax-table tbody tr.paie-row-active > td {
    background: rgba(63, 81, 181, .10);
}

.ax-table tbody tr.paie-row-active > td:first-child {
    border-left: 2px solid var(--ax-primary, #3f51b5);
}

/* ================================================================
   7. RESPONSIVE
   ================================================================ */
@media (max-width: 1024px) {
    .paie-form-panel { padding: 10px 14px; }
    .paie-form-group { flex: 1 1 100%; }
    .paie-form-actions { padding-top: 0; }
}

/* ================================================================
   8. BARRE D'ONGLETS MULTI-LIGNES (retour à la ligne)
   ----------------------------------------------------------------
   Demande client : dans la rubrique Paie, les onglets doivent tous
   être visibles sans scroll horizontal. Modifieur à poser en plus de
   .ax-tabs-bar — le comportement scroll par défaut du design system
   (Plan Comptable, Comptabilité générale) n'est PAS modifié.
   ================================================================ */
.ax-tabs-bar.paie-tabs-wrap {
    flex-wrap: wrap;
    overflow-x: visible;
    overflow-y: visible;
    row-gap: 6px;
    padding: 8px 20px;
}

.ax-tabs-bar.paie-tabs-wrap .ax-tab-item {
    flex-shrink: 1;
    padding: 6px 14px;
    font-size: 14px;
}

@media (max-width: 1024px) {
    .ax-tabs-bar.paie-tabs-wrap { padding: 8px 12px; }
    .ax-tabs-bar.paie-tabs-wrap .ax-tab-item { padding: 6px 11px; font-size: 13.5px; }
}

/* ================================================================
   9. VARIANTES DE LARGEUR DES FORM-GROUPS
   ================================================================ */
.paie-form-group.paie-fg-xs { flex: 0 1 120px; }
.paie-form-group.paie-fg-sm { flex: 1 1 180px; max-width: 300px; }
.paie-form-group.paie-fg-md { flex: 1 1 240px; max-width: 400px; }
.paie-form-group.paie-fg-lg { flex: 1 1 320px; max-width: 620px; }

/* ── Input + addon collés (même bordure, pas de double trait) ── */
.paie-form-group .input-group { display: flex; width: 100%; }

.paie-form-group .input-group .form-control {
    flex: 1;
    min-width: 0;
    height: 34px;
    font-size: 13px;
    border-right: none;
    border-radius: var(--ax-radius-sm, 8px) 0 0 var(--ax-radius-sm, 8px);
}

.paie-form-group .input-group .input-group-addon {
    height: 34px;
    display: flex;
    align-items: center;
    padding: 0 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ax-text-sec, #64748b);
    background: #f1f5f9;
    border: 1.5px solid var(--ax-border-input, #cbd5e1);
    border-left: none;
    border-radius: 0 var(--ax-radius-sm, 8px) var(--ax-radius-sm, 8px) 0;
    white-space: nowrap;
}

/* ================================================================
   10. LIGNE D'OPTION (switch) SOUS LE PANNEAU DE SAISIE
   ================================================================ */
.paie-switch-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px dashed var(--ax-border, #e5e7eb);
}

.paie-switch-row > label {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: #111827;
}

.paie-switch-row md-switch { margin: 0; min-height: auto; }

.paie-switch-row md-switch .md-label {
    color: var(--ax-primary, #3f51b5) !important;
    font-weight: 600 !important;
    font-size: 13px;
}

/* ================================================================
   11. CELLULES SPÉCIFIQUES
   ================================================================ */
.paie-num-cell { text-align: right; font-variant-numeric: tabular-nums; padding-right: 18px !important; }
.paie-check-cell { text-align: center; }
.paie-check-cell md-checkbox { margin: 0; display: inline-block; vertical-align: middle; }
.paie-check-cell md-checkbox .md-container { top: 50%; }
.ax-table-head thead th.paie-num-cell,
.ax-table-head thead th.paie-check-cell { padding-right: 18px; }
.ax-table-head thead th.paie-check-cell { text-align: center; padding-right: 11px; }

/* ================================================================
   12. TITRES DE SECTION DANS UN ONGLET
   ----------------------------------------------------------------
   Même rendu que .ax-form-section-header du design system, mais
   utilisable hors .ax-fiche-body-scroll (les onglets Paie ne sont
   pas dans une fiche).
   ================================================================ */
.paie-section-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    margin: 0 0 14px 0;
    position: relative;
    background: linear-gradient(135deg, rgba(63, 81, 181, .04) 0%, rgba(63, 81, 181, .01) 100%);
    border: none;
    border-left: 3px solid var(--ax-primary, #3f51b5);
    border-radius: 0 var(--ax-radius-sm, 8px) var(--ax-radius-sm, 8px) 0;
    box-shadow: 0 1px 3px rgba(63, 81, 181, .05);
    transition: background .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.paie-section-header:hover {
    background: linear-gradient(135deg, rgba(63, 81, 181, .06) 0%, rgba(63, 81, 181, .02) 100%);
    border-left-color: var(--ax-primary-dark, #303f9f);
}

.paie-section-header > i {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: var(--ax-primary, #3f51b5);
    background: rgba(63, 81, 181, .1);
    border-radius: 6px;
}

.paie-section-header > span {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .01em;
    color: var(--ax-text-strong, #1f2937);
}

.paie-section-header + .paie-section-header { margin-top: 20px; }

/* ================================================================
   13. CORPS D'ONGLET SCROLLABLE (onglets sans tableau)
   ================================================================ */
.paie-tab-body {
    flex: 1;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 18px 24px;
    background: #fbf8f8;
}

.paie-tab-body::-webkit-scrollbar { width: 4px; }
.paie-tab-body::-webkit-scrollbar-track { background: transparent; }
.paie-tab-body::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 10px; }
.paie-tab-body::-webkit-scrollbar-thumb:hover { background: #9ca3af; }

.paie-tab-body .paie-block { margin-bottom: 26px; }

/* ================================================================
   14. SELECT nya-bs-select DANS UN FORM-GROUP PAIE
   ================================================================ */
.paie-form-group .nya-bs-select,
.paie-block .nya-bs-select { width: 100%; }

.paie-form-group ol.nya-bs-select.form-control,
.paie-block ol.nya-bs-select.form-control {
    height: 34px;
    padding: 0;
    border: none;
    box-shadow: none;
    background: transparent;
}

/* Le dropdown ne doit pas être coupé par les conteneurs de l'onglet */
.paie-tab-content { overflow: visible; }
.paie-tab-body { overflow-y: auto; }
.paie-block .nya-bs-select .dropdown-menu { z-index: 1050 !important; }

/* ================================================================
   15. ONGLET « PARAMÈTRES HEURE SUPPLÉMENTAIRE » (scope .paie-hs-root)
   ----------------------------------------------------------------
   Classes historiques conservées (ng-class du contrôleur), mais
   scopées pour ne pas fuir sur les autres écrans.
   ================================================================ */
.paie-hs-root .saveHureSuppValidInput { border: 1.5px solid var(--ax-border-input, #cbd5e1) !important; }
.paie-hs-root .saveHureSuppValidText { color: #111827 !important; }

/* ================================================================
   16. TABLE EN LECTURE SEULE (TFP, IRPP) — radios / checkbox centrés
   ================================================================ */
.paie-radio-cell { text-align: center; }
.paie-radio-cell md-radio-button { margin: 0; display: inline-block; }
.paie-radio-cell md-radio-button .md-container { position: static; display: inline-block; }
.paie-radio-group { width: 100%; margin: 0 !important; padding: 0 !important; display: block; }
.paie-radio-group md-radio-button { margin: 0 !important; }
.ax-table-head thead th.paie-radio-cell { text-align: center; padding-right: 11px; }

/* ================================================================
   17. CASES À COCHER & RADIOS MODERNES DANS LES TABLEAUX
   ----------------------------------------------------------------
   Reprend le style md-checkbox V2 du design system (défini pour
   .ax-fiche-body dans axeane-layout.css) et le rend disponible dans
   les tableaux de la rubrique Paie : carré 18px, radius 5px,
   bordure #CBD5E1, dégradé indigo + coche blanche à l'état coché,
   halo au survol, petit rebond à la sélection.
   ================================================================ */
.paie-check-cell md-checkbox,
.paie-radio-cell md-radio-button {
    margin: 0 !important;
    min-height: auto !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    padding: 0 !important;
}

.paie-check-cell md-checkbox .md-label,
.paie-check-cell md-checkbox ._md-label { display: none !important; }

.paie-check-cell md-checkbox .md-container,
.paie-check-cell md-checkbox ._md-container {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: 18px;
    height: 18px;
    margin: 0;
}

.paie-check-cell md-checkbox .md-icon,
.paie-check-cell md-checkbox ._md-icon {
    width: 18px;
    height: 18px;
    border-radius: 5px;
    border: 1.5px solid #cbd5e1;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
    transition: all .2s cubic-bezier(.4, 0, .2, 1);
}

.paie-check-cell md-checkbox:not([disabled]):hover .md-icon,
.paie-check-cell md-checkbox:not([disabled]):hover ._md-icon {
    border-color: var(--ax-primary, #3f51b5);
    box-shadow: 0 0 0 3px rgba(63, 81, 181, .10);
}

.paie-check-cell md-checkbox.md-checked .md-icon,
.paie-check-cell md-checkbox.md-checked ._md-icon {
    background: linear-gradient(135deg, var(--ax-primary, #3f51b5) 0%, var(--ax-primary-dark, #303f9f) 100%);
    border-color: var(--ax-primary, #3f51b5);
    box-shadow: 0 1px 3px rgba(63, 81, 181, .25);
    animation: ax-check-pop .22s cubic-bezier(.4, 0, .2, 1);
}

.paie-check-cell md-checkbox.md-checked .md-icon:after,
.paie-check-cell md-checkbox.md-checked ._md-icon:after {
    position: absolute;
    left: 50%;
    top: 45%;
    width: 5px;
    height: 10px;
    margin: 0;
    border-color: #fff;
    border-width: 0 2px 2px 0;
    border-style: solid;
    transform: translate(-50%, -55%) rotate(45deg);
}

.paie-check-cell md-checkbox[disabled] .md-icon,
.paie-check-cell md-checkbox[disabled] ._md-icon {
    background: #f1f5f9;
    border-color: #e2e8f0;
}

/* Effet d'onde Material supprimé : trop visuel dans une cellule */
.paie-check-cell md-checkbox .md-ripple-container,
.paie-radio-cell md-radio-button .md-ripple-container { display: none !important; }

/* ── Radios ── */
.paie-radio-cell md-radio-button .md-container,
.paie-radio-cell md-radio-button ._md-container {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: 18px;
    height: 18px;
    margin: 0;
}

.paie-radio-cell md-radio-button .md-off,
.paie-radio-cell md-radio-button ._md-off {
    top: 0;
    left: 0;
    width: 18px;
    height: 18px;
    border: 1.5px solid #cbd5e1;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
    transition: all .2s cubic-bezier(.4, 0, .2, 1);
}

.paie-radio-cell md-radio-button:not([disabled]):hover .md-off,
.paie-radio-cell md-radio-button:not([disabled]):hover ._md-off {
    border-color: var(--ax-primary, #3f51b5);
    box-shadow: 0 0 0 3px rgba(63, 81, 181, .10);
}

/* ⚠️ CORRECTIF : Angular Material met .md-on a transform:scale(0) et ne le
   passe a scale(.5) QUE sur .md-checked. Forcer scale(.5) sur .md-on affichait
   le point central sur les radios NON selectionnees. */
.paie-radio-cell md-radio-button .md-on,
.paie-radio-cell md-radio-button ._md-on {
    top: 0;
    left: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--ax-primary, #3f51b5);
    transform: scale(0);
    transition: transform .2s cubic-bezier(.4, 0, .2, 1);
}

.paie-radio-cell md-radio-button.md-checked .md-off,
.paie-radio-cell md-radio-button.md-checked ._md-off {
    border-color: var(--ax-primary, #3f51b5);
    box-shadow: 0 0 0 3px rgba(63, 81, 181, .10);
}

.paie-radio-cell md-radio-button.md-checked .md-on,
.paie-radio-cell md-radio-button.md-checked ._md-on {
    transform: scale(.55);
    animation: ax-check-pop .22s cubic-bezier(.4, 0, .2, 1);
}

.paie-radio-cell md-radio-button .md-label,
.paie-radio-cell md-radio-button ._md-label { display: none !important; }

/* ── Switch md-switch : piste plus fine, indigo ── */
.paie-switch-row md-switch .md-thumb { box-shadow: 0 1px 4px rgba(0, 0, 0, .2); }
.paie-switch-row md-switch.md-checked .md-thumb { background-color: var(--ax-primary, #3f51b5); }
.paie-switch-row md-switch.md-checked .md-bar { background-color: rgba(63, 81, 181, .45); }
.paie-switch-row md-switch .md-ripple-container { display: none !important; }

/* ================================================================
   18. COMPLÉMENTS FORMULAIRE (datepicker, case à cocher, indice)
   ================================================================ */

/* ── Datepicker : input + bouton calendrier collés (design.md) ── */
.paie-form-group .input-group .input-group-btn .btn {
    height: 34px;
    padding: 0 10px;
    border: 1.5px solid var(--ax-border-input, #cbd5e1);
    border-left: none;
    border-radius: 0 var(--ax-radius-sm, 8px) var(--ax-radius-sm, 8px) 0;
    background: var(--ax-card, #fff);
    color: var(--ax-text-body, #334155);
    box-shadow: none;
    transition: background .15s ease, color .15s ease;
}

.paie-form-group .input-group .input-group-btn .btn:hover {
    background: #f1f5f9;
    color: var(--ax-primary, #3f51b5);
}

.paie-form-group .input-group .input-group-btn .btn i { color: var(--ax-primary, #3f51b5); }

/* ── Case à cocher dans un formulaire (Cotisable / Imposable…) ── */
.paie-form-check { display: flex; flex-direction: column; align-items: flex-start; }
.paie-form-check > label { margin: 0 0 3px; font-size: 14px; font-weight: 700; color: #111827; white-space: nowrap; }
.paie-form-check > .paie-check-box { height: 34px; display: flex; align-items: center; }

/* Même rendu moderne que dans les tableaux */
.paie-form-check md-checkbox,
.paie-prime-root .ax-table-head thead th md-checkbox {
    margin: 0 !important;
    min-height: auto !important;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
}

.paie-form-check md-checkbox .md-label,
.paie-form-check md-checkbox ._md-label,
.paie-prime-root .ax-table-head thead th md-checkbox .md-label,
.paie-prime-root .ax-table-head thead th md-checkbox ._md-label { display: none !important; }

.paie-form-check md-checkbox .md-container,
.paie-form-check md-checkbox ._md-container,
.paie-prime-root .ax-table-head thead th md-checkbox .md-container,
.paie-prime-root .ax-table-head thead th md-checkbox ._md-container {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: 18px;
    height: 18px;
    margin: 0;
}

.paie-form-check md-checkbox .md-icon,
.paie-form-check md-checkbox ._md-icon,
.paie-prime-root .ax-table-head thead th md-checkbox .md-icon,
.paie-prime-root .ax-table-head thead th md-checkbox ._md-icon {
    width: 18px;
    height: 18px;
    border-radius: 5px;
    border: 1.5px solid #cbd5e1;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
    transition: all .2s cubic-bezier(.4, 0, .2, 1);
}

.paie-form-check md-checkbox:not([disabled]):hover .md-icon,
.paie-form-check md-checkbox:not([disabled]):hover ._md-icon,
.paie-prime-root .ax-table-head thead th md-checkbox:not([disabled]):hover .md-icon,
.paie-prime-root .ax-table-head thead th md-checkbox:not([disabled]):hover ._md-icon {
    border-color: var(--ax-primary, #3f51b5);
    box-shadow: 0 0 0 3px rgba(63, 81, 181, .10);
}

.paie-form-check md-checkbox.md-checked .md-icon,
.paie-form-check md-checkbox.md-checked ._md-icon,
.paie-prime-root .ax-table-head thead th md-checkbox.md-checked .md-icon,
.paie-prime-root .ax-table-head thead th md-checkbox.md-checked ._md-icon {
    background: linear-gradient(135deg, var(--ax-primary, #3f51b5) 0%, var(--ax-primary-dark, #303f9f) 100%);
    border-color: var(--ax-primary, #3f51b5);
    box-shadow: 0 1px 3px rgba(63, 81, 181, .25);
    animation: ax-check-pop .22s cubic-bezier(.4, 0, .2, 1);
}

.paie-form-check md-checkbox.md-checked .md-icon:after,
.paie-form-check md-checkbox.md-checked ._md-icon:after,
.paie-prime-root .ax-table-head thead th md-checkbox.md-checked .md-icon:after,
.paie-prime-root .ax-table-head thead th md-checkbox.md-checked ._md-icon:after {
    position: absolute;
    left: 50%;
    top: 45%;
    width: 5px;
    height: 10px;
    margin: 0;
    border-color: #fff;
    border-width: 0 2px 2px 0;
    border-style: solid;
    transform: translate(-50%, -55%) rotate(45deg);
}

.paie-form-check md-checkbox .md-ripple-container,
.paie-prime-root .ax-table-head thead th md-checkbox .md-ripple-container { display: none !important; }

/* ── Indice sous un champ ── */
.paie-hint {
    margin: 3px 0 0;
    font-size: 13px;
    font-weight: 500;
    color: var(--ax-text-muted, #94a3b8);
    line-height: 1.3;
}

/* ── Groupe haut (form-group sans zone d'erreur réservée) ── */
.paie-form-group.paie-fg-auto { height: auto; min-height: 58px; }

/* ── Panneau de saisie multi-lignes (formulaires riches type Primes) ── */
.paie-form-panel.paie-form-panel-lg { padding: 12px 22px 10px; max-height: 42vh; overflow-y: auto; overflow-x: hidden; }
.paie-form-panel.paie-form-panel-lg::-webkit-scrollbar { width: 4px; }
.paie-form-panel.paie-form-panel-lg::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 10px; }

/* ── Select nya-bs-select désactivé (Formule de calcul en lecture) ── */
.paie-prime-root .disabled-nyabs-select > button {
    background-color: #f8f9fa;
    border-color: var(--ax-border-input, #cbd5e1);
    box-shadow: none;
    opacity: 1;
    color: #000;
    pointer-events: none;
}

/* ================================================================
   19. BADGES OUI / NON (colonnes Cotisable, Imposable…)
   ================================================================ */
.paie-prime-root .pc-badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.6;
    white-space: nowrap;
}
.paie-prime-root .pc-badge-oui { background: #dcfce7; color: #166534; }
.paie-prime-root .pc-badge-non { background: #f1f5f9; color: #64748b; }

/* ---- PRIMES : listes nya-bs-select (Modeles Bulletin, Periode) ----
   Le panneau de saisie est un scroll-box (overflow-y:auto) qui rognait la
   liste ouverte : elle s'affichait DANS le panneau et le texte etait tronque.
   1) le panneau ne rogne plus (overflow visible) ; 2) la liste passe par-dessus
   (z-index) ; 3) les libelles longs reviennent a la ligne. */
.paie-prime-root .paie-form-panel.paie-form-panel-lg {
    max-height: none;
    overflow: visible;
}
.paie-prime-root .nya-bs-select.open { position: relative; z-index: 1050; }
.paie-prime-root .nya-bs-select .dropdown-menu {
    z-index: 1050;
    width: auto !important;
    min-width: 100% !important;
    max-width: 480px;
}
.paie-prime-root .nya-bs-select .dropdown-menu.inner {
    overflow-y: auto !important;
    max-height: 260px !important;
}
.paie-prime-root .nya-bs-select .dropdown-menu li > a,
.paie-prime-root .nya-bs-select .dropdown-menu li > a > span,
.paie-prime-root .nya-bs-select .dropdown-menu li .text {
    white-space: normal !important;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
}

/* ================================================================
   20. PASTILLE D'INFORMATION DANS LA BARRE D'ACTIONS
   ----------------------------------------------------------------
   La pastille « Cliquez sur le crayon… » vit dans le MÊME
   .paie-form-actions que les boutons. align-self:stretch lui donne
   exactement leur hauteur, et align-items:center centre son texte :
   la pastille et les boutons sont alignés au pixel.
   ================================================================ */
.paie-form-actions .paie-chip {
    align-self: stretch;
    display: inline-flex;
    align-items: center;
    margin-left: 4px;
}

/* ================================================================
   21. RACINE D'ÉCRAN AVEC ROUTEUR ng-include (table ↔ fiche)
   ----------------------------------------------------------------
   Remplace style="height: 99%" sur les routeurs (gestionMemo,
   gestionConventions, gestionSalaries…). <ng-include> étant rendu
   inline, il doit être remis dans la chaîne flex.
   ================================================================ */
.paie-screen {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.paie-screen > ng-include,
.paie-screen > [ng-include] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

/* ================================================================
   22. COLONNES « JOURS FÉRIÉS » (fiche convention)
   ----------------------------------------------------------------
   Trois mini-tableaux côte à côte, un par exercice.
   ================================================================ */
.paie-jf-grid {
    display: flex;
    gap: 14px;
    align-items: stretch;
    flex-wrap: wrap;
}

.paie-jf-col {
    flex: 1 1 280px;
    min-width: 260px;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--ax-card, #fff);
    border: 1px solid var(--ax-border, #e5e7eb);
    border-radius: var(--ax-radius-sm, 8px);
    overflow: hidden;
}

.paie-jf-head {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    background: #f9fafc;
    border-bottom: 2px solid var(--ax-border, #e5e7eb);
    font-size: 13.5px;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: .6px;
}

.paie-jf-head > div { padding: 9px 8px; }
.paie-jf-body { flex: 1; min-height: 0; max-height: 320px; overflow-y: auto; overflow-x: hidden; }
.paie-jf-body::-webkit-scrollbar { width: 4px; }
.paie-jf-body::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 10px; }

.paie-jf-row {
    display: flex;
    align-items: center;
    min-height: 36px;
    font-size: 14px;
    color: var(--ax-text-body, #334155);
    border-bottom: 1px solid #dfe3ee;
    transition: background .15s ease;
}

.paie-jf-row:nth-child(odd) { background: var(--ax-row-odd, #fff); }
.paie-jf-row:nth-child(even) { background: var(--ax-row-even, #eef0f8); }
.paie-jf-row:hover { background: var(--ax-row-hover, rgba(63, 81, 181, .14)); }
.paie-jf-row > div { padding: 0 8px; min-width: 0; }

.paie-jf-label { flex: 1 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.paie-jf-date { font-weight: 700; color: var(--ax-primary-dark, #3949ab); margin-right: 6px; }
.paie-jf-check { flex: 0 0 70px; text-align: center; }

.paie-jf-empty { padding: 24px 12px; text-align: center; font-size: 13px; color: var(--ax-text-muted, #94a3b8); }

/* Cases à cocher modernes dans les colonnes jours fériés */
.paie-jf-check md-checkbox { margin: 0 !important; min-height: auto !important; display: inline-flex; align-items: center; }
.paie-jf-check md-checkbox .md-label, .paie-jf-check md-checkbox ._md-label { display: none !important; }
.paie-jf-check md-checkbox .md-container, .paie-jf-check md-checkbox ._md-container {
    position: relative !important; top: auto !important; left: auto !important; transform: none !important;
    width: 18px; height: 18px; margin: 0; }
.paie-jf-check md-checkbox .md-icon, .paie-jf-check md-checkbox ._md-icon {
    width: 18px; height: 18px; border-radius: 5px; border: 1.5px solid #cbd5e1; background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04); transition: all .2s cubic-bezier(.4, 0, .2, 1); }
.paie-jf-check md-checkbox:not([disabled]):hover .md-icon, .paie-jf-check md-checkbox:not([disabled]):hover ._md-icon {
    border-color: var(--ax-primary, #3f51b5); box-shadow: 0 0 0 3px rgba(63, 81, 181, .10); }
.paie-jf-check md-checkbox.md-checked .md-icon, .paie-jf-check md-checkbox.md-checked ._md-icon {
    background: linear-gradient(135deg, var(--ax-primary, #3f51b5) 0%, var(--ax-primary-dark, #303f9f) 100%);
    border-color: var(--ax-primary, #3f51b5); box-shadow: 0 1px 3px rgba(63, 81, 181, .25);
    animation: ax-check-pop .22s cubic-bezier(.4, 0, .2, 1); }
.paie-jf-check md-checkbox.md-checked .md-icon:after, .paie-jf-check md-checkbox.md-checked ._md-icon:after {
    position: absolute; left: 50%; top: 45%; width: 5px; height: 10px; margin: 0;
    border-color: #fff; border-width: 0 2px 2px 0; border-style: solid;
    transform: translate(-50%, -55%) rotate(45deg); }
.paie-jf-check md-checkbox .md-ripple-container { display: none !important; }

/* ================================================================
   23. ÉCRAN OPÉRANDES — filtres nya-bs-select non tronqués
   ----------------------------------------------------------------
   Les deux selects multiples (Type opérande, Mémo) sont au-dessus du
   tableau, DANS .ax-table-wrapper qui est en overflow:hidden — leur
   menu déroulant serait coupé. On rend le wrapper et le panneau
   visibles ; le défilement réel du tableau reste porté par
   .ax-table-body-scroll, donc rien ne change côté table.
   (design.md — règle dropdowns dans une zone à overflow caché)
   ================================================================ */
.paie-op-root .ax-table-wrapper { overflow: visible; }
.paie-op-root .paie-form-panel { overflow: visible; }
.paie-op-root .nya-bs-select { width: 100%; }
.paie-op-root .nya-bs-select.open { position: relative; z-index: 1040; }
.paie-op-root .nya-bs-select .dropdown-menu { z-index: 1050 !important; max-height: 280px; overflow-y: auto; }

/* ================================================================
   24. BADGES GÉNÉRIQUES (Nature, Type…) — utilisables partout en Paie
   ================================================================ */
.paie-badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.6;
    white-space: nowrap;
}
.paie-badge-indigo { background: var(--ax-primary-50, #eef2ff); color: var(--ax-primary-dark, #3949ab); }
.paie-badge-amber  { background: #fef3c7; color: #92400e; }
.paie-badge-grey   { background: #f1f5f9; color: #64748b; }


/* ================================================================
   25. FORMULAIRES LEGACY — harmonisation des champs UNIQUEMENT
       Cible : les grands formulaires dont le coeur metier ne doit pas
       etre reecrit (Ajout/Edition Operande & Rubrique, Modele bulletin,
       Modele Integration paie, Ajouter salarie, Import salaries).

       /!\ REGLE : on ne touche PAS a la mise en page.
       La grille Bootstrap d'origine (float + col-md-*) est conservee
       telle quelle : convertir les .row en flex reorganisait les ecrans
       (champs isoles etires sur toute la largeur, titres de section
       aspires dans la ligne voisine, colonnes de tableau decalees).
       Cette section ne fait qu'uniformiser la HAUTEUR, la BORDURE et la
       TYPOGRAPHIE des champs, des libelles et des messages d'erreur.
   ================================================================ */

/* ---- Libelles : une seule graisse, une seule taille ---- */
.paie-legacy-form label,
.paie-legacy-form .control-label {
    margin: 0 0 3px;
    font-size: 14.5px;
    font-weight: 700;
    color: #111827;
    line-height: 1.25;
}

/* Groupes de boutons segmentes (Toute/Periode/Mensuelle, Operande/Rubrique...) :
   ce sont des <label class="btn btn-primary"> -> la couleur sombre de
   .paie-legacy-form label debordait sur les boutons inactifs (texte noir sur
   bleu, illisible). On force le texte en BLANC (actif comme inactif). */
.paie-legacy-form .btn-group[data-toggle="buttons"] .btn.btn-primary,
.paie-legacy-form .btn-group[data-toggle="buttons"] .btn.btn-primary:hover,
.paie-legacy-form .btn-group[data-toggle="buttons"] .btn.btn-primary:focus,
.paie-legacy-form .btn-group[data-toggle="buttons"] .btn.btn-primary.active {
    color: #ffffff;
}
.paie-legacy-form label > strong { font-weight: 700; }
.paie-legacy-form label .ax-required { margin-left: 2px; }

/* ---- Champs : hauteur et bordure uniques ---- */
.paie-legacy-form .form-control {
    height: 34px;
    font-size: 13px;
    box-sizing: border-box;
    border: 1.5px solid var(--ax-border-input, #cbd5e1);
    border-radius: var(--ax-radius-sm, 8px);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.paie-legacy-form textarea.form-control { height: auto; min-height: 60px; }
.paie-legacy-form .form-control:focus {
    border-color: var(--ax-border-focus, #2563eb);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .15);
    outline: none;
}
.paie-legacy-form .form-control[disabled],
.paie-legacy-form .form-control[readonly] {
    background: #f8fafc;
    color: #64748b;
}

/* ---- nya-bs-select : meme gabarit que les inputs ---- */
.paie-legacy-form ol.nya-bs-select.form-control { height: 34px; padding: 0; }
.paie-legacy-form ol.nya-bs-select.form-control > .dropdown-toggle {
    height: 32px;
    line-height: 32px;
    padding: 0 26px 0 10px;
    font-size: 13px;
    border: none;
    background: transparent;
    box-shadow: none;
}
.paie-legacy-form ol.nya-bs-select.form-control .filter-option {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---- input-group : le bouton garde la meme hauteur que le champ ---- */
.paie-legacy-form .input-group-btn > .btn {
    height: 34px;
    border: 1.5px solid var(--ax-border-input, #cbd5e1);
    border-left: none;
    background: #f8fafc;
    color: #475569;
}

/* ---- Messages d'erreur : une seule taille, une seule couleur ---- */
.paie-legacy-form .form-group > p,
.paie-legacy-form .help-block,
.paie-legacy-form .help-block-form {
    margin: 2px 0 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    font-weight: 500;
    line-height: 1.3;
    color: var(--ax-danger, #dc2626) !important;
    list-style: none;
}

/* ---- Titres de section : bandeau pleine largeur, jamais une pastille ---- */
.paie-legacy-form .paie-section-header {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    clear: both;
    margin: 20px 0 12px;
}
/* Titre de section un peu plus grand pour la lisibilite */
.paie-legacy-form .paie-section-header > span { font-size: 14.5px; }

/* ================================================================
   26. BARRES D'OUTILS — regroupement a droite et colonnes Bootstrap
       `.ax-toolbar` est un conteneur flex `justify-content:space-between`.
       Plusieurs ecrans Paie ont conserve plusieurs groupes d'actions
       (heritage des `pull-right`) : space-between les ecartait sur toute
       la largeur. La marge auto sur le PREMIER groupe de droite les
       recolle, quel que soit leur nombre — sans effet dans le cas
       standard « un groupe a gauche + un groupe a droite ».
   ================================================================ */
.ax-toolbar > .ax-toolbar-right { margin-left: auto; }
/* Plusieurs groupes de droite peuvent coexister, chacun sous son propre
   ng-show (ex. Pointage : un groupe par mode). Le selecteur de fratrie
   doit IGNORER les groupes masques (.ng-hide), sinon le groupe visible
   perd son margin-left:auto a cause d'un frere invisible et se colle
   au groupe de gauche. */
.ax-toolbar > .ax-toolbar-right:not(.ng-hide) ~ .ax-toolbar-right { margin-left: 8px; }

/* Une col-md-* placee dans une barre d'outils imposait une largeur en %
   (ex. col-md-1 = 8,33% -> libelle du bouton « Retour » rogne). */
.ax-toolbar > [class*="col-md-"],
.ax-toolbar > [class*="col-sm-"],
.ax-toolbar > [class*="col-lg-"] {
    width: auto !important;
    float: none;
    padding-left: 0;
    padding-right: 0;
}

/* Ligne de formulaire d'un bloc « Ecriture groupee » (Modele Integration paie).
   Elle etait enfermee dans une .ax-toolbar de 46px `overflow:hidden`,
   ce qui coupait les libelles et masquait les « Ce champ est requis ». */
.paie-ipf-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    column-gap: 14px;
    padding: 10px 12px 0;
    margin: 0;
}
.paie-ipf-head > [class*="col-md-"] { float: none; width: auto !important; padding: 0; flex: 1 1 240px; min-width: 0; }
.paie-ipf-head > i.btn { align-self: flex-start; float: none !important; }
.paie-ipf-head > i.btn:first-of-type { margin-left: auto; }

/* ================================================================
   27. PRIME PERSONNELLE (etape 3 de « Ajouter salarie »)
       Les libelles Code/Libelle/Valeur etaient repetes a chaque ligne
       et les champs figes (le code « Taux Patronal Assurance groupe »
       etait tronque). En-tete unique + colonnes fluides.
   ================================================================ */
.paie-prime-head,
.paie-prime-row { display: flex; gap: 12px; align-items: center; }

.paie-prime-head {
    padding: 0 6px 7px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--ax-border, #dfe3ee);
    font-size: 13.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: #475569;
}

.paie-prime-row { padding: 4px 6px; border-radius: 6px; }
.paie-prime-row:hover { background: #f8fafc; }

.paie-prime-c1 { flex: 1 1 200px; min-width: 0; }
.paie-prime-c2 { flex: 2 1 300px; min-width: 0; }
.paie-prime-c3 { flex: 0 1 180px; min-width: 0; }

.paie-prime-row .form-control {
    width: 100%;
    height: 34px;
    font-size: 13px;
    box-sizing: border-box;
    border: 1.5px solid var(--ax-border-input, #cbd5e1);
    border-radius: var(--ax-radius-sm, 8px);
    box-shadow: none;
}
.paie-prime-row .form-control[disabled] { background: #f8fafc; color: #475569; cursor: default; }
.paie-prime-c3 .form-control { text-align: right; }

/* ================================================================
   28. EN-TETES LEGACY — mise au ton du theme V2
       `.nax-table-header-cell` (gris 10%), `.nax-table-header-cell-dark`
       (gris 23%) et `.nax-panel-header` (gris 26%, texte blanc) sont des
       classes PARTAGEES avec le reste de l'application : on ne les touche
       pas. On pose a la place un modificateur sur les seuls elements de
       la rubrique Paie.

       /!\ REGLE : aucune propriete de mise en page ici (pas de display,
       pas de height, pas de padding). Seules la couleur de fond, la
       couleur du texte et la graisse changent — la geometrie d'origine
       (float, largeurs en %, text-align) est preservee au pixel pres.
   ================================================================ */
.paie-legacy-head {
    background: linear-gradient(180deg, #f8fafc 0%, #eef1f6 100%) !important;
    border-bottom: 2px solid var(--ax-border, #dfe3ee) !important;
    color: #475569 !important;
}
.paie-legacy-head span,
.paie-legacy-head a,
.paie-legacy-head label { color: #475569 !important; }
.paie-legacy-head span { font-size: 13.5px; font-weight: 700; letter-spacing: .3px; }

.paie-panel-header {
    background: linear-gradient(90deg, #f8fafc 0%, #f1f5f9 100%) !important;
    border-bottom: 1px solid var(--ax-border, #e5e7eb) !important;
    border-left: 3px solid var(--ax-primary, #3f51b5);
}
.paie-panel-header .nax-panel-title,
.paie-panel-header .nax-panel-title span,
.paie-panel-header > .nax-panel-title {
    color: #1f2937 !important;
    font-size: 14px;
    font-weight: 700;
}

/* ================================================================
   29. MENUS DEROULANTS nya-bs-select — REGLE MINIMALE
       Politique : AUCUN style sur le menu lui-meme (le composant gere
       sa taille tout seul, comme avant le re-design). On garantit
       seulement que les nouveaux conteneurs V2 ne le rognent pas :
       - les wrappers au-dessus du tableau laissent depasser le menu ;
       - le select ouvert passe au-dessus de l'en-tete collant (z-index 5).
       La zone de tableau (ax-table-zone/-border/-body-scroll) continue de
       couper et de defiler normalement.
   ================================================================ */
.absf-root .ax-table-wrapper { overflow: visible; }
.absv-root .ax-table-wrapper { overflow: visible; }
.cnss-root .ax-table-wrapper { overflow: visible; }
.cri-root .ax-table-wrapper { overflow: visible; }
.crs-root .ax-table-wrapper { overflow: visible; }
.fpr-root .ax-table-wrapper { overflow: visible; }
.fps-root .ax-table-wrapper { overflow: visible; }
.imps-root .ax-table-wrapper { overflow: visible; }
.ipc-root .ax-table-wrapper { overflow: visible; }
.ipf-root .ax-table-wrapper { overflow: visible; }
.ipg-root .ax-table-wrapper { overflow: visible; }
.ipk-root .ax-table-wrapper { overflow: visible; }
.jp-root .ax-table-wrapper { overflow: visible; }
.mbaf-root .ax-table-wrapper { overflow: visible; }
.mbf-root .ax-table-wrapper { overflow: visible; }
.nax-absences-list-page .ax-table-wrapper { overflow: visible; }
.ov-root .ax-table-wrapper { overflow: visible; }
.paie-docsal-root .ax-table-wrapper { overflow: visible; }
.paie-infsal-root .ax-table-wrapper { overflow: visible; }
.paie-opadfiche-root .ax-table-wrapper { overflow: visible; }
.paie-opfiche-root .ax-table-wrapper { overflow: visible; }
.paie-paisal-root .ax-table-wrapper { overflow: visible; }
.pfs-root .ax-table-wrapper { overflow: visible; }
.ptg-root .ax-table-wrapper { overflow: visible; }
.ptgm-root .ax-table-wrapper { overflow: visible; }
.pts-root .ax-table-wrapper { overflow: visible; }

.absf-root .ax-table-header-bar { overflow: visible; }
.absv-root .ax-table-header-bar { overflow: visible; }
.cnss-root .ax-table-header-bar { overflow: visible; }
.cri-root .ax-table-header-bar { overflow: visible; }
.crs-root .ax-table-header-bar { overflow: visible; }
.fpr-root .ax-table-header-bar { overflow: visible; }
.fps-root .ax-table-header-bar { overflow: visible; }
.imps-root .ax-table-header-bar { overflow: visible; }
.ipc-root .ax-table-header-bar { overflow: visible; }
.ipf-root .ax-table-header-bar { overflow: visible; }
.ipg-root .ax-table-header-bar { overflow: visible; }
.ipk-root .ax-table-header-bar { overflow: visible; }
.jp-root .ax-table-header-bar { overflow: visible; }
.mbaf-root .ax-table-header-bar { overflow: visible; }
.mbf-root .ax-table-header-bar { overflow: visible; }
.nax-absences-list-page .ax-table-header-bar { overflow: visible; }
.ov-root .ax-table-header-bar { overflow: visible; }
.paie-docsal-root .ax-table-header-bar { overflow: visible; }
.paie-infsal-root .ax-table-header-bar { overflow: visible; }
.paie-opadfiche-root .ax-table-header-bar { overflow: visible; }
.paie-opfiche-root .ax-table-header-bar { overflow: visible; }
.paie-paisal-root .ax-table-header-bar { overflow: visible; }
.pfs-root .ax-table-header-bar { overflow: visible; }
.ptg-root .ax-table-header-bar { overflow: visible; }
.ptgm-root .ax-table-header-bar { overflow: visible; }
.pts-root .ax-table-header-bar { overflow: visible; }

.absf-root .ax-filter-section { overflow: visible; }
.absv-root .ax-filter-section { overflow: visible; }
.cnss-root .ax-filter-section { overflow: visible; }
.cri-root .ax-filter-section { overflow: visible; }
.crs-root .ax-filter-section { overflow: visible; }
.fpr-root .ax-filter-section { overflow: visible; }
.fps-root .ax-filter-section { overflow: visible; }
.imps-root .ax-filter-section { overflow: visible; }
.ipc-root .ax-filter-section { overflow: visible; }
.ipf-root .ax-filter-section { overflow: visible; }
.ipg-root .ax-filter-section { overflow: visible; }
.ipk-root .ax-filter-section { overflow: visible; }
.jp-root .ax-filter-section { overflow: visible; }
.mbaf-root .ax-filter-section { overflow: visible; }
.mbf-root .ax-filter-section { overflow: visible; }
.nax-absences-list-page .ax-filter-section { overflow: visible; }
.ov-root .ax-filter-section { overflow: visible; }
.paie-docsal-root .ax-filter-section { overflow: visible; }
.paie-infsal-root .ax-filter-section { overflow: visible; }
.paie-opadfiche-root .ax-filter-section { overflow: visible; }
.paie-opfiche-root .ax-filter-section { overflow: visible; }
.paie-paisal-root .ax-filter-section { overflow: visible; }
.pfs-root .ax-filter-section { overflow: visible; }
.ptg-root .ax-filter-section { overflow: visible; }
.ptgm-root .ax-filter-section { overflow: visible; }
.pts-root .ax-filter-section { overflow: visible; }

.absf-root .nya-bs-select.open { position: relative; z-index: 1040; }
.absv-root .nya-bs-select.open { position: relative; z-index: 1040; }
.cnss-root .nya-bs-select.open { position: relative; z-index: 1040; }
.cri-root .nya-bs-select.open { position: relative; z-index: 1040; }
.crs-root .nya-bs-select.open { position: relative; z-index: 1040; }
.fpr-root .nya-bs-select.open { position: relative; z-index: 1040; }
.fps-root .nya-bs-select.open { position: relative; z-index: 1040; }
.imps-root .nya-bs-select.open { position: relative; z-index: 1040; }
.ipc-root .nya-bs-select.open { position: relative; z-index: 1040; }
.ipf-root .nya-bs-select.open { position: relative; z-index: 1040; }
.ipg-root .nya-bs-select.open { position: relative; z-index: 1040; }
.ipk-root .nya-bs-select.open { position: relative; z-index: 1040; }
.jp-root .nya-bs-select.open { position: relative; z-index: 1040; }
.mbaf-root .nya-bs-select.open { position: relative; z-index: 1040; }
.mbf-root .nya-bs-select.open { position: relative; z-index: 1040; }
.nax-absences-list-page .nya-bs-select.open { position: relative; z-index: 1040; }
.ov-root .nya-bs-select.open { position: relative; z-index: 1040; }
.paie-docsal-root .nya-bs-select.open { position: relative; z-index: 1040; }
.paie-infsal-root .nya-bs-select.open { position: relative; z-index: 1040; }
.paie-opadfiche-root .nya-bs-select.open { position: relative; z-index: 1040; }
.paie-opfiche-root .nya-bs-select.open { position: relative; z-index: 1040; }
.paie-paisal-root .nya-bs-select.open { position: relative; z-index: 1040; }
.pfs-root .nya-bs-select.open { position: relative; z-index: 1040; }
.ptg-root .nya-bs-select.open { position: relative; z-index: 1040; }
.ptgm-root .nya-bs-select.open { position: relative; z-index: 1040; }
.pts-root .nya-bs-select.open { position: relative; z-index: 1040; }

/* Garde-fou : un groupe d'actions IMBRIQUE dans un autre heritait de
   `flex: 1` + `margin-left: auto` (design system). S'il est vide — cas
   frequent quand son seul bouton est sous ng-if — il absorbe toute la
   place libre et pousse les boutons visibles vers la GAUCHE.
   (Constate sur Pointage : « Actualiser » et « Enregistrer » collés au
   bouton « Retour Liste des mois » au lieu d'etre a droite.) */
.ax-toolbar-right .ax-toolbar-right,
.ax-toolbar-left .ax-toolbar-right {
    flex: 0 0 auto;
    margin-left: 0;
}

/* ================================================================
   30. SELECTS NATIFS — mise au ton du theme V2 (cosmetique)
       Cible : <select class="form-control"> des formulaires legacy
       (Civilite, Type de paie, Mode de paiement, Role utilisateur…).
       On ne remplace PAS le select (ng-options / ng-repeat intacts) :
       on masque la fleche native et on dessine un caret V2.
       Les selects multiples / avec attribut size sont exclus.
   ================================================================ */
.paie-legacy-form select.form-control:not([multiple]):not([size]),
.absf-root select.form-control:not([multiple]):not([size]),
.absv-root select.form-control:not([multiple]):not([size]),
.cnss-root select.form-control:not([multiple]):not([size]),
.cri-root select.form-control:not([multiple]):not([size]),
.crs-root select.form-control:not([multiple]):not([size]),
.fpr-root select.form-control:not([multiple]):not([size]),
.fps-root select.form-control:not([multiple]):not([size]),
.imps-root select.form-control:not([multiple]):not([size]),
.ipc-root select.form-control:not([multiple]):not([size]),
.ipf-root select.form-control:not([multiple]):not([size]),
.ipg-root select.form-control:not([multiple]):not([size]),
.ipk-root select.form-control:not([multiple]):not([size]),
.jp-root select.form-control:not([multiple]):not([size]),
.mbaf-root select.form-control:not([multiple]):not([size]),
.mbf-root select.form-control:not([multiple]):not([size]),
.ov-root select.form-control:not([multiple]):not([size]),
.paie-docsal-root select.form-control:not([multiple]):not([size]),
.paie-hs-root select.form-control:not([multiple]):not([size]),
.paie-infsal-root select.form-control:not([multiple]):not([size]),
.paie-op-root select.form-control:not([multiple]):not([size]),
.paie-opadfiche-root select.form-control:not([multiple]):not([size]),
.paie-opfiche-root select.form-control:not([multiple]):not([size]),
.paie-paisal-root select.form-control:not([multiple]):not([size]),
.paie-param-root select.form-control:not([multiple]):not([size]),
.paie-prime-root select.form-control:not([multiple]):not([size]),
.pfs-root select.form-control:not([multiple]):not([size]),
.ptg-root select.form-control:not([multiple]):not([size]),
.ptgm-root select.form-control:not([multiple]):not([size]),
.pts-root select.form-control:not([multiple]):not([size]) {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 0 30px 0 10px;
    line-height: 30px;
    color: #1e293b;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 12px 12px;
    cursor: pointer;
}
.paie-legacy-form select.form-control:not([multiple]):not([size])::-ms-expand,
.absf-root select.form-control:not([multiple]):not([size])::-ms-expand,
.absv-root select.form-control:not([multiple]):not([size])::-ms-expand,
.cnss-root select.form-control:not([multiple]):not([size])::-ms-expand,
.cri-root select.form-control:not([multiple]):not([size])::-ms-expand,
.crs-root select.form-control:not([multiple]):not([size])::-ms-expand,
.fpr-root select.form-control:not([multiple]):not([size])::-ms-expand,
.fps-root select.form-control:not([multiple]):not([size])::-ms-expand,
.imps-root select.form-control:not([multiple]):not([size])::-ms-expand,
.ipc-root select.form-control:not([multiple]):not([size])::-ms-expand,
.ipf-root select.form-control:not([multiple]):not([size])::-ms-expand,
.ipg-root select.form-control:not([multiple]):not([size])::-ms-expand,
.ipk-root select.form-control:not([multiple]):not([size])::-ms-expand,
.jp-root select.form-control:not([multiple]):not([size])::-ms-expand,
.mbaf-root select.form-control:not([multiple]):not([size])::-ms-expand,
.mbf-root select.form-control:not([multiple]):not([size])::-ms-expand,
.ov-root select.form-control:not([multiple]):not([size])::-ms-expand,
.paie-docsal-root select.form-control:not([multiple]):not([size])::-ms-expand,
.paie-hs-root select.form-control:not([multiple]):not([size])::-ms-expand,
.paie-infsal-root select.form-control:not([multiple]):not([size])::-ms-expand,
.paie-op-root select.form-control:not([multiple]):not([size])::-ms-expand,
.paie-opadfiche-root select.form-control:not([multiple]):not([size])::-ms-expand,
.paie-opfiche-root select.form-control:not([multiple]):not([size])::-ms-expand,
.paie-paisal-root select.form-control:not([multiple]):not([size])::-ms-expand,
.paie-param-root select.form-control:not([multiple]):not([size])::-ms-expand,
.paie-prime-root select.form-control:not([multiple]):not([size])::-ms-expand,
.pfs-root select.form-control:not([multiple]):not([size])::-ms-expand,
.ptg-root select.form-control:not([multiple]):not([size])::-ms-expand,
.ptgm-root select.form-control:not([multiple]):not([size])::-ms-expand,
.pts-root select.form-control:not([multiple]):not([size])::-ms-expand { display: none; }
.paie-legacy-form select.form-control:not([multiple]):not([size]):hover,
.absf-root select.form-control:not([multiple]):not([size]):hover,
.absv-root select.form-control:not([multiple]):not([size]):hover,
.cnss-root select.form-control:not([multiple]):not([size]):hover,
.cri-root select.form-control:not([multiple]):not([size]):hover,
.crs-root select.form-control:not([multiple]):not([size]):hover,
.fpr-root select.form-control:not([multiple]):not([size]):hover,
.fps-root select.form-control:not([multiple]):not([size]):hover,
.imps-root select.form-control:not([multiple]):not([size]):hover,
.ipc-root select.form-control:not([multiple]):not([size]):hover,
.ipf-root select.form-control:not([multiple]):not([size]):hover,
.ipg-root select.form-control:not([multiple]):not([size]):hover,
.ipk-root select.form-control:not([multiple]):not([size]):hover,
.jp-root select.form-control:not([multiple]):not([size]):hover,
.mbaf-root select.form-control:not([multiple]):not([size]):hover,
.mbf-root select.form-control:not([multiple]):not([size]):hover,
.ov-root select.form-control:not([multiple]):not([size]):hover,
.paie-docsal-root select.form-control:not([multiple]):not([size]):hover,
.paie-hs-root select.form-control:not([multiple]):not([size]):hover,
.paie-infsal-root select.form-control:not([multiple]):not([size]):hover,
.paie-op-root select.form-control:not([multiple]):not([size]):hover,
.paie-opadfiche-root select.form-control:not([multiple]):not([size]):hover,
.paie-opfiche-root select.form-control:not([multiple]):not([size]):hover,
.paie-paisal-root select.form-control:not([multiple]):not([size]):hover,
.paie-param-root select.form-control:not([multiple]):not([size]):hover,
.paie-prime-root select.form-control:not([multiple]):not([size]):hover,
.pfs-root select.form-control:not([multiple]):not([size]):hover,
.ptg-root select.form-control:not([multiple]):not([size]):hover,
.ptgm-root select.form-control:not([multiple]):not([size]):hover,
.pts-root select.form-control:not([multiple]):not([size]):hover {
    border-color: #94a3b8;
}
.paie-legacy-form select.form-control:not([multiple]):not([size])[disabled],
.absf-root select.form-control:not([multiple]):not([size])[disabled],
.absv-root select.form-control:not([multiple]):not([size])[disabled],
.cnss-root select.form-control:not([multiple]):not([size])[disabled],
.cri-root select.form-control:not([multiple]):not([size])[disabled],
.crs-root select.form-control:not([multiple]):not([size])[disabled],
.fpr-root select.form-control:not([multiple]):not([size])[disabled],
.fps-root select.form-control:not([multiple]):not([size])[disabled],
.imps-root select.form-control:not([multiple]):not([size])[disabled],
.ipc-root select.form-control:not([multiple]):not([size])[disabled],
.ipf-root select.form-control:not([multiple]):not([size])[disabled],
.ipg-root select.form-control:not([multiple]):not([size])[disabled],
.ipk-root select.form-control:not([multiple]):not([size])[disabled],
.jp-root select.form-control:not([multiple]):not([size])[disabled],
.mbaf-root select.form-control:not([multiple]):not([size])[disabled],
.mbf-root select.form-control:not([multiple]):not([size])[disabled],
.ov-root select.form-control:not([multiple]):not([size])[disabled],
.paie-docsal-root select.form-control:not([multiple]):not([size])[disabled],
.paie-hs-root select.form-control:not([multiple]):not([size])[disabled],
.paie-infsal-root select.form-control:not([multiple]):not([size])[disabled],
.paie-op-root select.form-control:not([multiple]):not([size])[disabled],
.paie-opadfiche-root select.form-control:not([multiple]):not([size])[disabled],
.paie-opfiche-root select.form-control:not([multiple]):not([size])[disabled],
.paie-paisal-root select.form-control:not([multiple]):not([size])[disabled],
.paie-param-root select.form-control:not([multiple]):not([size])[disabled],
.paie-prime-root select.form-control:not([multiple]):not([size])[disabled],
.pfs-root select.form-control:not([multiple]):not([size])[disabled],
.ptg-root select.form-control:not([multiple]):not([size])[disabled],
.ptgm-root select.form-control:not([multiple]):not([size])[disabled],
.pts-root select.form-control:not([multiple]):not([size])[disabled] {
    background-color: #f8fafc;
    color: #64748b;
    cursor: not-allowed;
}

/* ================================================================
   31. FICHE SALARIE (wizard « Ajouter salarie ») — alignements
       - .pfs-select-add : select + bouton « + » (Qualification,
         Fonction) sur la meme ligne, bouton a la hauteur du champ.
       - .pfs-calc-actions : boutons « Calcule Net » / « Calcule Base »
         sur la ligne de base des inputs (padding-top = hauteur label).
       Les cases a cocher (Soumis CNSS, Titulaire, Activer sommeil)
       reutilisent .paie-form-check / .paie-check-box (34px).
   ================================================================ */
.pfs-root .pfs-select-add {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}
.pfs-root .pfs-select-add > .form-control {
    flex: 1 1 auto;
    min-width: 0;
}
.pfs-root .pfs-select-add > .abtn {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    margin: 0;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ax-radius-sm, 8px);
    font-size: 13px;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
}
.pfs-root .paie-form-actions.pfs-calc-actions {
    padding-top: 20px;   /* label 13.5px x 1.25 + marge 3px */
}
.pfs-root .paie-form-actions.pfs-calc-actions .ax-btn {
    height: 34px;
    white-space: nowrap;
}
.pfs-root .paie-form-actions.pfs-calc-actions .dropdown { position: relative; display: inline-block; }

/* ================================================================
   33. EN-TETES DE LISTE (facon Liste entreprises) — rendu pro
       Toutes les listes Paie (.ax-table-head thead) : fond degrade,
       bordure basse indigo, titres capitales nettes. N affecte que
       les ecrans qui possedent une table de liste.
   ================================================================ */
.absf-root .ax-table-head thead tr,
.absv-root .ax-table-head thead tr,
.cnss-root .ax-table-head thead tr,
.cri-root .ax-table-head thead tr,
.crs-root .ax-table-head thead tr,
.fpr-root .ax-table-head thead tr,
.fps-root .ax-table-head thead tr,
.imps-root .ax-table-head thead tr,
.ipc-root .ax-table-head thead tr,
.ipf-root .ax-table-head thead tr,
.ipg-root .ax-table-head thead tr,
.ipk-root .ax-table-head thead tr,
.jp-root .ax-table-head thead tr,
.mbaf-root .ax-table-head thead tr,
.mbf-root .ax-table-head thead tr,
.ov-root .ax-table-head thead tr,
.paie-docsal-root .ax-table-head thead tr,
.paie-hs-root .ax-table-head thead tr,
.paie-infsal-root .ax-table-head thead tr,
.paie-op-root .ax-table-head thead tr,
.paie-opadfiche-root .ax-table-head thead tr,
.paie-opfiche-root .ax-table-head thead tr,
.paie-paisal-root .ax-table-head thead tr,
.paie-param-root .ax-table-head thead tr,
.paie-prime-root .ax-table-head thead tr,
.pfs-root .ax-table-head thead tr,
.ptg-root .ax-table-head thead tr,
.ptgm-root .ax-table-head thead tr,
.pts-root .ax-table-head thead tr {
    background: linear-gradient(180deg, #ffffff 0%, #f1f5fb 100%) !important;
}
.absf-root .ax-table-head thead th,
.absv-root .ax-table-head thead th,
.cnss-root .ax-table-head thead th,
.cri-root .ax-table-head thead th,
.crs-root .ax-table-head thead th,
.fpr-root .ax-table-head thead th,
.fps-root .ax-table-head thead th,
.imps-root .ax-table-head thead th,
.ipc-root .ax-table-head thead th,
.ipf-root .ax-table-head thead th,
.ipg-root .ax-table-head thead th,
.ipk-root .ax-table-head thead th,
.jp-root .ax-table-head thead th,
.mbaf-root .ax-table-head thead th,
.mbf-root .ax-table-head thead th,
.ov-root .ax-table-head thead th,
.paie-docsal-root .ax-table-head thead th,
.paie-hs-root .ax-table-head thead th,
.paie-infsal-root .ax-table-head thead th,
.paie-op-root .ax-table-head thead th,
.paie-opadfiche-root .ax-table-head thead th,
.paie-opfiche-root .ax-table-head thead th,
.paie-paisal-root .ax-table-head thead th,
.paie-param-root .ax-table-head thead th,
.paie-prime-root .ax-table-head thead th,
.pfs-root .ax-table-head thead th,
.ptg-root .ax-table-head thead th,
.ptgm-root .ax-table-head thead th,
.pts-root .ax-table-head thead th {
    border-bottom: 2px solid rgba(63, 81, 181, 0.28) !important;
}
.absf-root .ax-table-head thead th,
.absv-root .ax-table-head thead th,
.cnss-root .ax-table-head thead th,
.cri-root .ax-table-head thead th,
.crs-root .ax-table-head thead th,
.fpr-root .ax-table-head thead th,
.fps-root .ax-table-head thead th,
.imps-root .ax-table-head thead th,
.ipc-root .ax-table-head thead th,
.ipf-root .ax-table-head thead th,
.ipg-root .ax-table-head thead th,
.ipk-root .ax-table-head thead th,
.jp-root .ax-table-head thead th,
.mbaf-root .ax-table-head thead th,
.mbf-root .ax-table-head thead th,
.ov-root .ax-table-head thead th,
.paie-docsal-root .ax-table-head thead th,
.paie-hs-root .ax-table-head thead th,
.paie-infsal-root .ax-table-head thead th,
.paie-op-root .ax-table-head thead th,
.paie-opadfiche-root .ax-table-head thead th,
.paie-opfiche-root .ax-table-head thead th,
.paie-paisal-root .ax-table-head thead th,
.paie-param-root .ax-table-head thead th,
.paie-prime-root .ax-table-head thead th,
.pfs-root .ax-table-head thead th,
.ptg-root .ax-table-head thead th,
.ptgm-root .ax-table-head thead th,
.pts-root .ax-table-head thead th,
.absf-root .ax-table-head thead th .paie-sort-link,
.absv-root .ax-table-head thead th .paie-sort-link,
.cnss-root .ax-table-head thead th .paie-sort-link,
.cri-root .ax-table-head thead th .paie-sort-link,
.crs-root .ax-table-head thead th .paie-sort-link,
.fpr-root .ax-table-head thead th .paie-sort-link,
.fps-root .ax-table-head thead th .paie-sort-link,
.imps-root .ax-table-head thead th .paie-sort-link,
.ipc-root .ax-table-head thead th .paie-sort-link,
.ipf-root .ax-table-head thead th .paie-sort-link,
.ipg-root .ax-table-head thead th .paie-sort-link,
.ipk-root .ax-table-head thead th .paie-sort-link,
.jp-root .ax-table-head thead th .paie-sort-link,
.mbaf-root .ax-table-head thead th .paie-sort-link,
.mbf-root .ax-table-head thead th .paie-sort-link,
.ov-root .ax-table-head thead th .paie-sort-link,
.paie-docsal-root .ax-table-head thead th .paie-sort-link,
.paie-hs-root .ax-table-head thead th .paie-sort-link,
.paie-infsal-root .ax-table-head thead th .paie-sort-link,
.paie-op-root .ax-table-head thead th .paie-sort-link,
.paie-opadfiche-root .ax-table-head thead th .paie-sort-link,
.paie-opfiche-root .ax-table-head thead th .paie-sort-link,
.paie-paisal-root .ax-table-head thead th .paie-sort-link,
.paie-param-root .ax-table-head thead th .paie-sort-link,
.paie-prime-root .ax-table-head thead th .paie-sort-link,
.pfs-root .ax-table-head thead th .paie-sort-link,
.ptg-root .ax-table-head thead th .paie-sort-link,
.ptgm-root .ax-table-head thead th .paie-sort-link,
.pts-root .ax-table-head thead th .paie-sort-link {
    color: #475569;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}
.absf-root .ax-table-head thead th .paie-sort-link:hover,
.absv-root .ax-table-head thead th .paie-sort-link:hover,
.cnss-root .ax-table-head thead th .paie-sort-link:hover,
.cri-root .ax-table-head thead th .paie-sort-link:hover,
.crs-root .ax-table-head thead th .paie-sort-link:hover,
.fpr-root .ax-table-head thead th .paie-sort-link:hover,
.fps-root .ax-table-head thead th .paie-sort-link:hover,
.imps-root .ax-table-head thead th .paie-sort-link:hover,
.ipc-root .ax-table-head thead th .paie-sort-link:hover,
.ipf-root .ax-table-head thead th .paie-sort-link:hover,
.ipg-root .ax-table-head thead th .paie-sort-link:hover,
.ipk-root .ax-table-head thead th .paie-sort-link:hover,
.jp-root .ax-table-head thead th .paie-sort-link:hover,
.mbaf-root .ax-table-head thead th .paie-sort-link:hover,
.mbf-root .ax-table-head thead th .paie-sort-link:hover,
.ov-root .ax-table-head thead th .paie-sort-link:hover,
.paie-docsal-root .ax-table-head thead th .paie-sort-link:hover,
.paie-hs-root .ax-table-head thead th .paie-sort-link:hover,
.paie-infsal-root .ax-table-head thead th .paie-sort-link:hover,
.paie-op-root .ax-table-head thead th .paie-sort-link:hover,
.paie-opadfiche-root .ax-table-head thead th .paie-sort-link:hover,
.paie-opfiche-root .ax-table-head thead th .paie-sort-link:hover,
.paie-paisal-root .ax-table-head thead th .paie-sort-link:hover,
.paie-param-root .ax-table-head thead th .paie-sort-link:hover,
.paie-prime-root .ax-table-head thead th .paie-sort-link:hover,
.pfs-root .ax-table-head thead th .paie-sort-link:hover,
.ptg-root .ax-table-head thead th .paie-sort-link:hover,
.ptgm-root .ax-table-head thead th .paie-sort-link:hover,
.pts-root .ax-table-head thead th .paie-sort-link:hover {
    color: var(--ax-primary, #3f51b5);
}
.absf-root .ax-table-head thead th .paie-sort-link > i,
.absv-root .ax-table-head thead th .paie-sort-link > i,
.cnss-root .ax-table-head thead th .paie-sort-link > i,
.cri-root .ax-table-head thead th .paie-sort-link > i,
.crs-root .ax-table-head thead th .paie-sort-link > i,
.fpr-root .ax-table-head thead th .paie-sort-link > i,
.fps-root .ax-table-head thead th .paie-sort-link > i,
.imps-root .ax-table-head thead th .paie-sort-link > i,
.ipc-root .ax-table-head thead th .paie-sort-link > i,
.ipf-root .ax-table-head thead th .paie-sort-link > i,
.ipg-root .ax-table-head thead th .paie-sort-link > i,
.ipk-root .ax-table-head thead th .paie-sort-link > i,
.jp-root .ax-table-head thead th .paie-sort-link > i,
.mbaf-root .ax-table-head thead th .paie-sort-link > i,
.mbf-root .ax-table-head thead th .paie-sort-link > i,
.ov-root .ax-table-head thead th .paie-sort-link > i,
.paie-docsal-root .ax-table-head thead th .paie-sort-link > i,
.paie-hs-root .ax-table-head thead th .paie-sort-link > i,
.paie-infsal-root .ax-table-head thead th .paie-sort-link > i,
.paie-op-root .ax-table-head thead th .paie-sort-link > i,
.paie-opadfiche-root .ax-table-head thead th .paie-sort-link > i,
.paie-opfiche-root .ax-table-head thead th .paie-sort-link > i,
.paie-paisal-root .ax-table-head thead th .paie-sort-link > i,
.paie-param-root .ax-table-head thead th .paie-sort-link > i,
.paie-prime-root .ax-table-head thead th .paie-sort-link > i,
.pfs-root .ax-table-head thead th .paie-sort-link > i,
.ptg-root .ax-table-head thead th .paie-sort-link > i,
.ptgm-root .ax-table-head thead th .paie-sort-link > i,
.pts-root .ax-table-head thead th .paie-sort-link > i {
    color: #94a3b8;
}

/* ================================================================
   34. EN-TETE COMPACT : input de filtre + mini fleche de tri sur UNE
       seule ligne (le libelle de colonne est deja porte par le
       placeholder de l input -> on gagne la ligne du titre).
   ================================================================ */
.paie-th-filter { display: flex; align-items: center; gap: 6px; }
.paie-th-filter > .form-control { flex: 1 1 auto; min-width: 0; }
.paie-th-filter > .paie-sort-mini {
    flex: 0 0 auto;
    padding: 2px 4px;
    line-height: 1;
    text-decoration: none;
}
.paie-th-filter > .paie-sort-mini > i { color: #94a3b8; font-size: 13px; }
.paie-th-filter > .paie-sort-mini:hover > i { color: var(--ax-primary, #3f51b5); }

/* ================================================================
   35. EN-TETES DE LISTE (ecrans sans -root) — meme rendu pro
       Memos, Modele bulletin (+admin), Integration paie, popups Conges.
   ================================================================ */
.paie-list-pro .ax-table-head thead tr,
md-dialog.cgs-dialog .ax-table-head thead tr,
md-dialog.cgr-dialog .ax-table-head thead tr {
    background: linear-gradient(180deg, #ffffff 0%, #f1f5fb 100%) !important;
}
.paie-list-pro .ax-table-head thead th,
md-dialog.cgs-dialog .ax-table-head thead th,
md-dialog.cgr-dialog .ax-table-head thead th {
    border-bottom: 2px solid rgba(63, 81, 181, 0.28) !important;
}
.paie-list-pro .ax-table-head thead th,
md-dialog.cgs-dialog .ax-table-head thead th,
md-dialog.cgr-dialog .ax-table-head thead th,
.paie-list-pro .ax-table-head thead th .paie-sort-link,
md-dialog.cgs-dialog .ax-table-head thead th .paie-sort-link,
md-dialog.cgr-dialog .ax-table-head thead th .paie-sort-link {
    color: #475569;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}
.paie-list-pro .ax-table-head thead th .paie-sort-link:hover,
md-dialog.cgs-dialog .ax-table-head thead th .paie-sort-link:hover,
md-dialog.cgr-dialog .ax-table-head thead th .paie-sort-link:hover {
    color: var(--ax-primary, #3f51b5);
}
.paie-list-pro .ax-table-head thead th .paie-sort-link > i,
md-dialog.cgs-dialog .ax-table-head thead th .paie-sort-link > i,
md-dialog.cgr-dialog .ax-table-head thead th .paie-sort-link > i {
    color: #94a3b8;
}

/* ================================================================
   36. LISTES DEROULANTES nya-bs-select — largeur + retour a la ligne
       Probleme : les libelles longs (modeles de bulletin) ou une chaine
       sans espace (un RIB) debordaient -> troncature ou scroll horizontal.
       -> menu au moins aussi large que le champ (plancher 260px, plafond
          560px) et texte qui revient a la ligne, meme sans espace.
   ================================================================ */
.absf-root .nya-bs-select .dropdown-menu,
.absv-root .nya-bs-select .dropdown-menu,
.cnss-root .nya-bs-select .dropdown-menu,
.cri-root .nya-bs-select .dropdown-menu,
.crs-root .nya-bs-select .dropdown-menu,
.fpr-root .nya-bs-select .dropdown-menu,
.fps-root .nya-bs-select .dropdown-menu,
.imps-root .nya-bs-select .dropdown-menu,
.ipc-root .nya-bs-select .dropdown-menu,
.ipf-root .nya-bs-select .dropdown-menu,
.ipg-root .nya-bs-select .dropdown-menu,
.ipk-root .nya-bs-select .dropdown-menu,
.jp-root .nya-bs-select .dropdown-menu,
.mbaf-root .nya-bs-select .dropdown-menu,
.mbf-root .nya-bs-select .dropdown-menu,
.ov-root .nya-bs-select .dropdown-menu,
.paie-docsal-root .nya-bs-select .dropdown-menu,
.paie-hs-root .nya-bs-select .dropdown-menu,
.paie-infsal-root .nya-bs-select .dropdown-menu,
.paie-op-root .nya-bs-select .dropdown-menu,
.paie-opadfiche-root .nya-bs-select .dropdown-menu,
.paie-opfiche-root .nya-bs-select .dropdown-menu,
.paie-paisal-root .nya-bs-select .dropdown-menu,
.paie-param-root .nya-bs-select .dropdown-menu,
.paie-prime-root .nya-bs-select .dropdown-menu,
.pfs-root .nya-bs-select .dropdown-menu,
.ptg-root .nya-bs-select .dropdown-menu,
.ptgm-root .nya-bs-select .dropdown-menu,
.pts-root .nya-bs-select .dropdown-menu {
    width: auto !important;
    min-width: max(100%, 260px) !important;
    max-width: 560px !important;
    z-index: 1050;
}
.absf-root .nya-bs-select .dropdown-menu.inner,
.absv-root .nya-bs-select .dropdown-menu.inner,
.cnss-root .nya-bs-select .dropdown-menu.inner,
.cri-root .nya-bs-select .dropdown-menu.inner,
.crs-root .nya-bs-select .dropdown-menu.inner,
.fpr-root .nya-bs-select .dropdown-menu.inner,
.fps-root .nya-bs-select .dropdown-menu.inner,
.imps-root .nya-bs-select .dropdown-menu.inner,
.ipc-root .nya-bs-select .dropdown-menu.inner,
.ipf-root .nya-bs-select .dropdown-menu.inner,
.ipg-root .nya-bs-select .dropdown-menu.inner,
.ipk-root .nya-bs-select .dropdown-menu.inner,
.jp-root .nya-bs-select .dropdown-menu.inner,
.mbaf-root .nya-bs-select .dropdown-menu.inner,
.mbf-root .nya-bs-select .dropdown-menu.inner,
.ov-root .nya-bs-select .dropdown-menu.inner,
.paie-docsal-root .nya-bs-select .dropdown-menu.inner,
.paie-hs-root .nya-bs-select .dropdown-menu.inner,
.paie-infsal-root .nya-bs-select .dropdown-menu.inner,
.paie-op-root .nya-bs-select .dropdown-menu.inner,
.paie-opadfiche-root .nya-bs-select .dropdown-menu.inner,
.paie-opfiche-root .nya-bs-select .dropdown-menu.inner,
.paie-paisal-root .nya-bs-select .dropdown-menu.inner,
.paie-param-root .nya-bs-select .dropdown-menu.inner,
.paie-prime-root .nya-bs-select .dropdown-menu.inner,
.pfs-root .nya-bs-select .dropdown-menu.inner,
.ptg-root .nya-bs-select .dropdown-menu.inner,
.ptgm-root .nya-bs-select .dropdown-menu.inner,
.pts-root .nya-bs-select .dropdown-menu.inner {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    max-height: 300px !important;
}
.absf-root .nya-bs-select .dropdown-menu li > a,
.absv-root .nya-bs-select .dropdown-menu li > a,
.cnss-root .nya-bs-select .dropdown-menu li > a,
.cri-root .nya-bs-select .dropdown-menu li > a,
.crs-root .nya-bs-select .dropdown-menu li > a,
.fpr-root .nya-bs-select .dropdown-menu li > a,
.fps-root .nya-bs-select .dropdown-menu li > a,
.imps-root .nya-bs-select .dropdown-menu li > a,
.ipc-root .nya-bs-select .dropdown-menu li > a,
.ipf-root .nya-bs-select .dropdown-menu li > a,
.ipg-root .nya-bs-select .dropdown-menu li > a,
.ipk-root .nya-bs-select .dropdown-menu li > a,
.jp-root .nya-bs-select .dropdown-menu li > a,
.mbaf-root .nya-bs-select .dropdown-menu li > a,
.mbf-root .nya-bs-select .dropdown-menu li > a,
.ov-root .nya-bs-select .dropdown-menu li > a,
.paie-docsal-root .nya-bs-select .dropdown-menu li > a,
.paie-hs-root .nya-bs-select .dropdown-menu li > a,
.paie-infsal-root .nya-bs-select .dropdown-menu li > a,
.paie-op-root .nya-bs-select .dropdown-menu li > a,
.paie-opadfiche-root .nya-bs-select .dropdown-menu li > a,
.paie-opfiche-root .nya-bs-select .dropdown-menu li > a,
.paie-paisal-root .nya-bs-select .dropdown-menu li > a,
.paie-param-root .nya-bs-select .dropdown-menu li > a,
.paie-prime-root .nya-bs-select .dropdown-menu li > a,
.pfs-root .nya-bs-select .dropdown-menu li > a,
.ptg-root .nya-bs-select .dropdown-menu li > a,
.ptgm-root .nya-bs-select .dropdown-menu li > a,
.pts-root .nya-bs-select .dropdown-menu li > a,
.absf-root .nya-bs-select .dropdown-menu li > a > span,
.absv-root .nya-bs-select .dropdown-menu li > a > span,
.cnss-root .nya-bs-select .dropdown-menu li > a > span,
.cri-root .nya-bs-select .dropdown-menu li > a > span,
.crs-root .nya-bs-select .dropdown-menu li > a > span,
.fpr-root .nya-bs-select .dropdown-menu li > a > span,
.fps-root .nya-bs-select .dropdown-menu li > a > span,
.imps-root .nya-bs-select .dropdown-menu li > a > span,
.ipc-root .nya-bs-select .dropdown-menu li > a > span,
.ipf-root .nya-bs-select .dropdown-menu li > a > span,
.ipg-root .nya-bs-select .dropdown-menu li > a > span,
.ipk-root .nya-bs-select .dropdown-menu li > a > span,
.jp-root .nya-bs-select .dropdown-menu li > a > span,
.mbaf-root .nya-bs-select .dropdown-menu li > a > span,
.mbf-root .nya-bs-select .dropdown-menu li > a > span,
.ov-root .nya-bs-select .dropdown-menu li > a > span,
.paie-docsal-root .nya-bs-select .dropdown-menu li > a > span,
.paie-hs-root .nya-bs-select .dropdown-menu li > a > span,
.paie-infsal-root .nya-bs-select .dropdown-menu li > a > span,
.paie-op-root .nya-bs-select .dropdown-menu li > a > span,
.paie-opadfiche-root .nya-bs-select .dropdown-menu li > a > span,
.paie-opfiche-root .nya-bs-select .dropdown-menu li > a > span,
.paie-paisal-root .nya-bs-select .dropdown-menu li > a > span,
.paie-param-root .nya-bs-select .dropdown-menu li > a > span,
.paie-prime-root .nya-bs-select .dropdown-menu li > a > span,
.pfs-root .nya-bs-select .dropdown-menu li > a > span,
.ptg-root .nya-bs-select .dropdown-menu li > a > span,
.ptgm-root .nya-bs-select .dropdown-menu li > a > span,
.pts-root .nya-bs-select .dropdown-menu li > a > span,
.absf-root .nya-bs-select .dropdown-menu li .text,
.absv-root .nya-bs-select .dropdown-menu li .text,
.cnss-root .nya-bs-select .dropdown-menu li .text,
.cri-root .nya-bs-select .dropdown-menu li .text,
.crs-root .nya-bs-select .dropdown-menu li .text,
.fpr-root .nya-bs-select .dropdown-menu li .text,
.fps-root .nya-bs-select .dropdown-menu li .text,
.imps-root .nya-bs-select .dropdown-menu li .text,
.ipc-root .nya-bs-select .dropdown-menu li .text,
.ipf-root .nya-bs-select .dropdown-menu li .text,
.ipg-root .nya-bs-select .dropdown-menu li .text,
.ipk-root .nya-bs-select .dropdown-menu li .text,
.jp-root .nya-bs-select .dropdown-menu li .text,
.mbaf-root .nya-bs-select .dropdown-menu li .text,
.mbf-root .nya-bs-select .dropdown-menu li .text,
.ov-root .nya-bs-select .dropdown-menu li .text,
.paie-docsal-root .nya-bs-select .dropdown-menu li .text,
.paie-hs-root .nya-bs-select .dropdown-menu li .text,
.paie-infsal-root .nya-bs-select .dropdown-menu li .text,
.paie-op-root .nya-bs-select .dropdown-menu li .text,
.paie-opadfiche-root .nya-bs-select .dropdown-menu li .text,
.paie-opfiche-root .nya-bs-select .dropdown-menu li .text,
.paie-paisal-root .nya-bs-select .dropdown-menu li .text,
.paie-param-root .nya-bs-select .dropdown-menu li .text,
.paie-prime-root .nya-bs-select .dropdown-menu li .text,
.pfs-root .nya-bs-select .dropdown-menu li .text,
.ptg-root .nya-bs-select .dropdown-menu li .text,
.ptgm-root .nya-bs-select .dropdown-menu li .text,
.pts-root .nya-bs-select .dropdown-menu li .text {
    white-space: normal !important;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    word-break: break-word;
}
