/* Absences et congés : écrans de conges.js, sortis de portail.css (L9). */
.pjLigne .btn-lien{flex:1 0 100%;text-align:left}
.absGrille th.nomCol,.absGrille td.nomCol{text-align:left;padding:var(--e-1) var(--e-3);min-width:110px;white-space:nowrap;background:var(--surf);border-right:1px solid var(--filet)}
/* colonne des noms figée dans le planning des absences (tous écrans) */
.absGrille th.nomCol{position:sticky;left:0;z-index:3}
.absGrille td.nomCol{position:sticky;left:0;z-index:2}
.pjChip{display:inline-flex;align-items:center;gap:var(--e-1);max-width:100%;min-width:0;padding-left:var(--e-3);border:1px solid var(--filet2);border-radius:var(--r);background:var(--surf2);color:var(--encre2);font-size:var(--t-s);font-weight:var(--g-fort);font-variant-numeric:tabular-nums}
.pjChip .pjNom{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pjChip .pjPoids{flex:none;font-weight:var(--g-normal);color:var(--encre3);margin-left:var(--e-2);white-space:nowrap}
.pjBtn{gap:var(--e-1);color:var(--encre3);white-space:nowrap}
.pjBtn.a{background:var(--ok-d);border-color:transparent;color:var(--ok)}
.pjBtn.a:hover{border-color:var(--ok);color:var(--ok)}
.pjLigne{border:1px solid var(--filet);border-radius:var(--r);padding:var(--e-3) var(--e-3);margin-bottom:var(--e-2)}
.pjLigne b{min-width:0;overflow-wrap:anywhere}
.pjLigne .note{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e-2);margin:var(--e-3) 0 0}
#jlPieces .pjFic{min-width:150px;max-width:300px;overflow-wrap:anywhere}
/* Reprise des compteurs (#sousAbsRep, conges.js) : un salarié = un groupe de lignes, son nom en tête de groupe ;
     les totaux par compteur sont le premier groupe (.repTot), avant le détail. Sur un téléphone le tableau
     s'empile (plus bas) ; entre les deux, s'il manque de place, il défile dans son cadre */
.repCadre{overflow-x:auto;border:1px solid var(--filet);border-radius:var(--r);margin:var(--e-3) 0}
.repCadre table{min-width:640px}
.repCadre tbody th{text-transform:none;letter-spacing:0;font-size:var(--t-s);color:var(--encre);border-bottom:1px solid var(--filet);vertical-align:top}
.repCadre tbody th .sub{display:block;font-weight:var(--g-normal)}
.repCadre tbody+tbody>tr:first-child>*{border-top:1px solid var(--filet2)}
.repCadre .repTot>tr>*{font-weight:var(--g-fort);background:var(--surf2)}
.repSig{color:var(--att);font-size:var(--t-s)}
@media(max-width:700px){
.btn.pjBtn{min-width:44px}
#jfListe .pjLigne b,#jfListe .pjLigne .sub{flex:1 1 100%}
/* reprise des compteurs sur téléphone : plus de colonnes ; chaque compteur est un bloc, l'intitulé (data-l, posé
       par conges.js) à gauche et le chiffre à droite. L'en-tête reste là pour un lecteur d'écran, hors de la vue */
.repCadre table{min-width:0}
.repCadre table,.repCadre tbody,.repCadre tr,.repCadre tbody th,.repCadre td{display:block}
.repCadre thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.repCadre tbody th{font-size:var(--t-m);border-bottom:0;padding:var(--e-3) var(--e-3) 0}
.repCadre td{border-bottom:0;padding:var(--e-1) var(--e-3)}
.repCadre td:not([data-l]):not([colspan]){padding-top:var(--e-3);font-size:var(--t-xs);font-weight:var(--g-fort);text-transform:uppercase;letter-spacing:.06em;color:var(--encre3)}
.repCadre td[data-l]{display:flex;justify-content:space-between;align-items:baseline;gap:var(--e-3)}
.repCadre td[data-l]::before{content:attr(data-l);color:var(--encre2);font-weight:var(--g-normal);text-align:left}
.repCadre tr>td:last-child{padding-bottom:var(--e-3)}
.repCadre tr+tr{border-top:1px solid var(--filet)}
.repCadre tbody+tbody{border-top:1px solid var(--filet2)}
.repCadre tbody+tbody>tr:first-child>*{border-top:0}
}
.abs-defaut{--c:var(--abs-defaut);--d:var(--abs-defaut-d)}
.absBarre,.asJours span[class*="abs-"]{background:var(--d);color:var(--c);box-shadow:inset 0 0 0 1.5px var(--c)}
.absBarre.attente,.asJours span.attente{background:repeating-linear-gradient(45deg,var(--d) 0 4px,var(--surf) 4px 8px);border:0;box-shadow:none;outline:1.5px dashed var(--c);outline-offset:-1.5px}
.absGrille th.nomCol,.absGrille th.absNb{font-size:var(--t-s);font-weight:var(--g-fort);color:var(--encre)}
.absGrille td.nomCol{min-width:150px;max-width:208px;line-height:1.25}
.absGrille td.nomCol b,.absGrille td.nomCol span{display:block;overflow:hidden;text-overflow:ellipsis}
.absGrille td.nomCol b{font-size:var(--t-m);font-weight:var(--g-fort)}
.absGrille td.nomCol span{color:var(--encre3)}
.absGrille .absNb{padding:0 var(--e-3);text-align:center;font-weight:var(--g-fort);color:var(--encre2);border-left:1px solid var(--filet)}
/* la barre est posée en absolu dans sa cellule : son texte n'élargit pas les colonnes des jours */
.absGrille td.absPlage{position:relative}
.absBarre{position:absolute;left:2px;right:2px;top:50%;height:30px;margin-top:-15px;border-radius:var(--r);padding:0 var(--e-2);font:var(--g-fort) var(--t-s)/30px var(--f-ui);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.absBarre.court{padding:0;text-align:center;font-size:var(--t-xs)}
/* D6 : sous 700 px, vue semaine (rendreAbsences pose .absSemaine) — les absents d'abord, les présents
     en une ligne, puis le bloc « À venir ». Aucun tableau à faire défiler. */
.absGrille.absSemaine{border:0;border-radius:0;overflow:visible}
.asPresents,.asVide{margin:0;padding:var(--e-3) var(--e-4);border-top:1px solid var(--filet)}
.absSemaine>.asVide{border-top:0}
.absSemaine>.asVide{padding:0}
.asVide{color:var(--encre2)}
.asPresents b{display:block;font-weight:var(--g-fort);line-height:1.3}
.asVenir li div span,.asPresents span{display:block;font-size:var(--t-s);line-height:1.4;color:var(--encre3)}
.asTete,.asJours{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}
.asTete{padding:var(--e-2) var(--e-4);background:var(--surf2);font:var(--g-moyen) var(--t-xs)/1.3 var(--f-ui);color:var(--encre3)}
.asTete b{display:block;font-size:var(--t-m);font-weight:var(--g-fort);color:var(--encre)}
.asTete .we b{font-weight:var(--g-normal);color:var(--encre3)}
.asTete .auj{border-radius:var(--r)}
.asTete .auj,.asTete .auj b{background:var(--marque-f);color:var(--sur-fort)}
.asJours{margin-top:var(--e-2)}
.asJours span{height:28px;border-radius:var(--r);background:var(--surf2);display:grid;place-items:center;font:var(--g-fort) var(--t-xs)/1 var(--f-ui)}
.asJours span.we{background:transparent}
.asJours span.ferie{background:var(--att-d)}
.asTitre{margin:var(--e-5) 0 var(--e-3);font:var(--g-fort) var(--t-l)/1.3 var(--f-titre)}
.asTitre span{margin-left:var(--e-2);font:var(--g-moyen) var(--t-s)/1 var(--f-ui);color:var(--encre3)}
.asVenir li{display:flex;align-items:center;gap:var(--e-3);min-height:64px}
.asVenir li div{flex:1;min-width:0}
@media screen and (prefers-color-scheme:light){
.absBarre:not(.attente),.asJours span[class*="abs-"]:not(.attente){background:var(--c);color:var(--sur-fort);box-shadow:none}
}
.mesAct{display:flex;flex-direction:column;align-items:flex-end;gap:var(--e-1)}
.mesAct>span{display:flex;gap:var(--e-2)}
