/*
  Écrans de gestion (E-06 tableau de bord, E-07 à valider et feuille d'un salarié), piste A « Carnet de chantier ».
  Statuts toujours écrits ; la couleur double le texte (charte : jamais la couleur seule).
*/
.gestion-entete { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--espace-3); margin-bottom: var(--espace-4); }
.gestion-entete h1 { margin: 0; font-size: 2rem; }
.gestion-entete__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espace-2); }
.gestion-entete__actions form { margin: 0; }
.filtre-equipe { display: flex; align-items: center; gap: var(--espace-2); }
.filtre-equipe .champ { width: auto; min-width: 150px; }
.bouton-vert { background: var(--couleur-succes); }
.bouton-vert:hover { background: #125A2A; }

.compteurs-mois { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espace-3); margin-bottom: var(--espace-4); }
.compteur-mois { background: var(--couleur-blanc); border-radius: 12px; padding: var(--espace-3) var(--espace-4); box-shadow: 0 2px 0 var(--carnet-ombre); border-top: 6px solid var(--couleur-bleu-action); }
.compteur-mois--validees { border-top-color: var(--couleur-succes); }
.compteur-mois--a-valider { border-top-color: var(--carnet-ocre); }
.compteur-mois--retards { border-top-color: var(--couleur-rouge-logo); }
.compteur-mois--retards .compteur-mois__chiffre { color: var(--couleur-rouge-danger); }
.compteur-mois__chiffre { font-family: var(--police-titre); font-weight: 700; font-size: 2.4rem; line-height: 1.1; }
@media (min-width: 821px) { .compteurs-mois { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.tableau-statuts__defilement { overflow-x: auto; background: var(--couleur-blanc); border-radius: var(--rayon-carte); box-shadow: 0 2px 0 var(--carnet-ombre); }
.tableau-statuts { width: 100%; border-collapse: collapse; min-width: 760px; font-size: var(--taille-petite); }
.tableau-statuts th { background: var(--carnet-encre); color: var(--couleur-blanc); text-align: left; padding: var(--espace-3) var(--espace-3); font-family: var(--police-titre); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.tableau-statuts td { padding: var(--espace-2) var(--espace-3); border-bottom: var(--epaisseur-filet) solid var(--carnet-ombre); vertical-align: middle; }
.tableau-statuts tbody tr:nth-child(even) td { background: var(--carnet-papier-fonce); }
.tableau-statuts .droite, .tableau-statuts th.droite { text-align: right; }

.statut { display: inline-block; border-radius: 6px; padding: 5px 10px; font-weight: 600; font-size: var(--taille-petite); text-decoration: none; white-space: nowrap; border: 2px solid transparent; }
.statut--validee_direction { background: var(--couleur-succes); color: var(--couleur-blanc); }
.statut--validee, .statut--validee_partielle { background: var(--couleur-succes-clair); color: var(--couleur-succes); border-color: var(--couleur-succes); }
.statut--rendue { background: var(--carnet-ocre-clair); color: var(--carnet-ocre-texte); border-color: var(--carnet-ocre); }
.statut--brouillon { background: var(--couleur-neutre-clair); color: var(--couleur-texte-doux); }
.statut--manquante { background: transparent; color: var(--couleur-texte-doux); border: 2px dashed var(--couleur-bordure); }
.statut--retard { background: var(--couleur-rouge-clair); color: var(--couleur-rouge-danger); border-color: var(--couleur-rouge-danger); font-weight: 700; }
a.statut:hover { filter: brightness(.95); }

.reaffectation { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espace-2); margin-top: var(--espace-2); }
.reaffectation .champ { width: auto; flex: 1 1 260px; }
.gestion-colonnes { display: grid; grid-template-columns: 1fr; gap: var(--espace-4); margin-top: var(--espace-4); }
.gestion-colonnes .carte h2 { margin-top: 0; }
.synthese-ecarts { width: 100%; border-collapse: collapse; font-size: var(--taille-petite); }
.synthese-ecarts th, .synthese-ecarts td { border-bottom: var(--epaisseur-filet) solid var(--carnet-ombre); padding: var(--espace-1) var(--espace-2); text-align: left; }
.synthese-ecarts th { background: var(--carnet-papier); }
.synthese-ecarts td s { color: var(--couleur-texte-doux); }
.ecart--ajout td strong { color: var(--couleur-bleu-action); }
.ecart--suppression td strong { color: var(--couleur-rouge-danger); }
.historique { display: grid; grid-template-columns: 110px 1fr; gap: var(--espace-1) var(--espace-3); margin: 0; font-size: var(--taille-petite); }
.historique div { display: contents; }
.historique dt { color: var(--couleur-texte-doux); white-space: nowrap; }
.historique dd { margin: 0; }
.actions-secondaires { display: grid; gap: var(--espace-3); margin-top: var(--espace-4); padding-top: var(--espace-3); border-top: var(--epaisseur-filet) solid var(--carnet-ombre); }
.actions-secondaires form { display: grid; gap: var(--espace-1); }
.actions-secondaires .bouton-encre { justify-self: start; }
@media (min-width: 821px) { .gestion-colonnes { grid-template-columns: 3fr 2fr; } }

/* Récapitulatifs (E-08, E-09) : tableaux denses, chiffres alignés à droite, nuit grisée */
.tableau-statuts.recap th, .tableau-statuts.recap td { padding: 6px 8px; font-size: .85rem; white-space: nowrap; }
.tableau-statuts.recap thead th { text-align: center; font-size: .85rem; }
.tableau-statuts.recap td.nuit { background: var(--carnet-papier); }
.tableau-statuts.recap { min-width: 1100px; }

/* Formulaires de gestion (chantiers, salariés) */
.formulaire--large { max-width: 900px; }
.formulaire__grille { display: grid; grid-template-columns: 1fr; gap: var(--espace-3) var(--espace-4); }
.formulaire__grille select.champ, .formulaire__grille input.champ { width: 100%; box-sizing: border-box; }
.formulaire .bouton-encre { margin-top: var(--espace-3); margin-right: var(--espace-2); }
.roles ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--espace-1); }
.roles li label { display: flex; align-items: center; gap: var(--espace-2); min-height: var(--cible-min); }
.roles input[type="checkbox"], .case-brute { width: 22px; height: 22px; accent-color: var(--couleur-bleu-action); }
.actions-ligne { display: flex; gap: var(--espace-1); flex-wrap: wrap; }
.actions-ligne form { margin: 0; }
@media (min-width: 821px) { .formulaire__grille { grid-template-columns: 1fr 1fr; } }


/* Import des chantiers (E-11 bis) */
.etapes-import { padding-left: 1.2em; margin: 0 0 var(--espace-3); }
.etapes-import li { margin-bottom: var(--espace-2); }
input[type="file"].champ { padding: var(--espace-2); }

/* Invitation (E-17) */
img.qr { display: block; margin: var(--espace-2) 0; max-width: 100%; image-rendering: pixelated; background: #fff; }  /* taille native : cases nettes, lisibles par les applications */
@media print { .lateral, .bandeau, .nav-bas, .bouton-encre { display: none !important; } }

/* Tableau des droits dans la fiche salarié (D-AA) */
.droits { margin-top: var(--espace-3); }
.droits summary { cursor: pointer; font-weight: 700; min-height: var(--cible-min); display: flex; align-items: center; }
.droits table { font-size: var(--taille-petite); margin-top: var(--espace-2); }

/* J12 : listes de gestion, filtres, cartes sur téléphone, pagination */
.filtres { display: flex; flex-wrap: wrap; gap: var(--espace-2); align-items: center; margin-bottom: var(--espace-3); }
.filtres .champ { width: auto; min-width: 150px; flex: 1 1 160px; }
.filtres .case { gap: var(--espace-1); }
.compteur-discret { font-family: var(--police-base); text-transform: none; letter-spacing: 0; font-weight: 400; }
.pagination { display: flex; gap: var(--espace-3); align-items: center; margin: var(--espace-3) 0; }
@media (max-width: 820px) {
  .tableau-cartes thead { display: none; }
  .tableau-cartes tr { display: block; padding: var(--espace-3); border-bottom: 1px solid var(--couleur-bordure); }
  .tableau-cartes td { display: block; padding: 2px 0; border: 0; }
  .tableau-cartes td[data-titre]::before { content: attr(data-titre) " : "; color: var(--couleur-texte-doux); font-size: var(--taille-petite); }
  .tableau-cartes td[data-titre="Personne"]::before { content: none; }
  .tableau-cartes td.actions-ligne { padding-top: var(--espace-2); }
}
.tableau-cartes td.actions-ligne, .carte .actions-ligne { display: flex; flex-wrap: wrap; gap: var(--espace-2); align-items: center; }
.tableau-compact td { padding: var(--espace-1) var(--espace-2); }
.tableau-compact td.droite { text-align: right; white-space: nowrap; }
@media (min-width: 821px) { .fiche-colonnes { grid-template-columns: 2fr 3fr; } }

/* Sécurité (D-AB) */
.codes-secours { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: var(--espace-2); margin: var(--espace-3) 0; }
.codes-secours code { display: block; padding: var(--espace-2); background: var(--couleur-blanc); border: 1px dashed var(--couleur-bordure-champ); border-radius: var(--rayon-controle); font-size: 1.1rem; text-align: center; }
.cle-totp { user-select: all; word-break: break-all; font-size: 1.05rem; }
