/* ===========================================================================
   FEUILLE D'ÉCRAN — Traitement des absences constatées
   Écran : Components/Pages/App/TraitementAbsences.razor — /app/traitement-absences
           et sa fiche de décision, TraitementAbsenceFiche.razor

   POURQUOI CE FICHIER EXISTE, ET PAS UN BLOC DE PLUS DANS modele-erp.css
   Voir l'en-tête d'ecran-cycles.css : une feuille par écran donne à chacun sa
   fin de fichier et sa clé de cache, et deux branches ouvertes le même jour
   cessent de se télescoper sur l'une comme sur l'autre.

   CE QUI N'EST PAS ICI, ET POURQUOI
   Deux classes de cet écran vivent dans la feuille de leur FAMILLE et non ici :
   .fx-liste (fiche.css, avec le reste du modèle .fx-*) et .tbl-barre-aide
   (easytime-shell.css, avec le gabarit de liste .tbl-*). Elles portent le
   préfixe d'un gabarit partagé ; les loger dans une feuille d'écran aurait
   éclaté la famille entre deux fichiers. Ce qui suit porte au contraire un
   préfixe propre à l'écran — .tra-* —, et n'a de sens que pour lui.

   Chargée APRÈS modele-erp.css : ses règles peuvent affiner le gabarit à
   spécificité égale, l'inverse n'est pas vrai.
   =========================================================================== */

/* ===========================================================================
   TRAITEMENT DES ABSENCES CONSTATÉES — boutons de décision de la fiche.
   Passation « design_handoff_traitement_absences » (Design 19).

   Deux décisions de NATURE différente, pas deux valeurs d'un même champ : elles
   méritent deux boutons visibles plutôt qu'une liste déroulante où l'une se
   choisit par inadvertance.
   =========================================================================== */
.tra-choix {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 36px;
    padding: 0 15px;
    background: var(--et-surface);
    border: 1px solid var(--et-form-border);
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: var(--et-form-text);
    cursor: pointer;
    white-space: nowrap;
}
.tra-choix:hover:not(:disabled) { border-color: var(--et-form-blue); background: var(--et-surface-3); }
.tra-choix:disabled { opacity: .55; cursor: not-allowed; }
.tra-choix:focus-visible { outline: 2px solid var(--et-form-blue); outline-offset: -2px; }

/* Le choix retenu prend LA COULEUR DE SA CONSÉQUENCE, pas le bleu d'interface :
   vert pour ce qui clôt sans frais, rouge pour ce qui porte une retenue. La
   décision se relit d'un coup d'œil une fois la fiche rouverte. L'ardoise reste
   pour le troisième choix — remettre à traiter n'a pas de conséquence de paie. */
.tra-choix.est-actif { border-color: var(--et-table-head); background: var(--et-table-head); color: var(--et-sur-ardoise-plein); }
.tra-choix.est-actif.est-positif { border-color: var(--et-form-ok); background: var(--et-form-ok); }
.tra-choix.est-actif.est-negatif { border-color: var(--et-form-danger); background: var(--et-form-danger); }

/* ===========================================================================
   BOUCLAGE DU TRAITEMENT — deux seuils, et le chiffrage du lot.
   Passation « design_handoff_traitement_absences » (MIGRATION.md), script db/1475.
   =========================================================================== */

/* LA PRESCRIPTION MÉRITE SA PROPRE TEINTE, et elle est ROUGE.

   Le gabarit de liste n'a qu'un seul état de rangée, .tbl-alerte, et il est
   AMBRE. Il convient parfaitement à ce qui approche — un constat de douze jours
   dont on peut encore décider —, mais pas à ce qui est perdu : au-delà du délai,
   la retenue n'est plus opposable, et ce n'est pas un retard de confort mais une
   décision qu'on ne pourra plus prendre. Les deux sous la même teinte revenaient
   à ne prévenir qu'une fois le mal fait, ce que la passation reproche
   explicitement à la version précédente de l'écran.

   POURQUOI ICI ET NON DANS LE GABARIT : un seul écran en a l'usage aujourd'hui.
   Le jour où un deuxième en veut une — la correction des pointages est la
   candidate évidente —, elle remonte en section 11 de modele-erp.css sous son
   nom de famille (.tbl-critique), et cette règle disparaît. La règle du dépôt
   veut ce sens-là, jamais l'inverse. */
.tbl tbody tr.tra-prescrit td { background: var(--et-danger-badge-bg); }
.tbl tbody tr.tra-prescrit td:first-child { box-shadow: inset 3px 0 0 var(--et-danger); }

/* Le chiffrage de la sélection, dans la barre d'actions groupées : « 108 h au
   total ». Il dit l'ENJEU AVANT LE CLIC — « ne pas justifier » sur quatorze
   constats n'est pas la même décision que sur un seul, et rien ne le disait. */
.tra-lot-chiffre {
    font-family: var(--et-font-mono);
    font-size: 12px;
    color: var(--et-faint);
    white-space: nowrap;
}
