/* GIGN (src/pages/gign/) : bandeau des scans, onglets, tableaux triables, cartes de chiffres, fiche d'un dossier,
   réglages. Couleurs des statuts : celles de l'écran du poste (modele.COULEURS), assombries au besoin pour le contraste
   AA. Cibles tactiles de 44 px ; tableaux en cartes sur téléphone (components.css, .tableau). */

/* ---------- pastilles de statut, de gravité, de résultat ---------- */
.gign-pastille {
  display: inline-block;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 650;
  white-space: nowrap;
  background: #eef1f5;
  color: #334155;
}

.gign-pastille--bloquant { background: #fdecec; color: #b91c1c; }
.gign-pastille--a_corriger { background: #fff1e6; color: #9a3412; }
.gign-pastille--a_surveiller { background: #fef7dc; color: #854d0e; }
.gign-pastille--ok { background: #e7f8f0; color: #047857; }
.gign-pastille--exclu { background: #eef1f5; color: #475569; }
.gign-pastille--erreur { background: #f3eeff; color: #6d28d9; }
.gign-pastille--incomplet { background: #eaf2fc; color: #154a8c; }
.gign-pastille--non_verifiable { background: #eef1f5; color: #334155; }
.gign-pastille--justifie { background: #e8f2fc; color: #1f66ad; }
.gign-pastille--sans_anomalie { background: #e7f8f0; color: #047857; }
.gign-pastille--non_verifie { background: #eef1f5; color: #334155; }

/* lignes : un filet de la couleur du statut (aussi en cartes sur téléphone) */
.gign-tableau tr[class*="gign-ligne--"] td:first-child {
  box-shadow: inset 4px 0 0 var(--gign-filet, transparent);
}

.gign-ligne--bloquant { --gign-filet: #b91c1c; }
.gign-ligne--a_corriger { --gign-filet: #c2410c; }
.gign-ligne--a_surveiller { --gign-filet: #a16207; }
.gign-ligne--erreur { --gign-filet: #6d28d9; }
.gign-ligne--incomplet { --gign-filet: #154a8c; }
.gign-ligne--actionnable { --gign-filet: var(--bleu); }

.gign-ligne--inactif td {
  color: var(--discret);
}

@media (max-width: 47.99em) {
  .gign-tableau tr[class*="gign-ligne--"] {
    border-left: 4px solid var(--gign-filet, var(--bord));
  }

  .gign-tableau tr[class*="gign-ligne--"] td:first-child {
    box-shadow: none;
  }
}

.gign-ton--bloquant { color: #b91c1c; }
.gign-ton--a_corriger { color: #9a3412; }
.gign-ton--a_surveiller { color: #854d0e; }

/* ---------- textes ---------- */
.gign-aide {
  color: var(--encre-2);
  font-size: 0.9rem;
}

.gign-vide {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border: 1px dashed var(--bord-fort);
  border-radius: var(--rayon-petit);
  color: var(--encre-2);
}

.gign-attention {
  color: var(--attention);
}

.gign-erreur {
  color: var(--mauvais);
}

.gign-gras {
  font-weight: 700;
}

.gign-discret {
  color: var(--discret);
  font-weight: 550;
}

.gign-titre {
  margin-bottom: 0.75rem;
}

.gign-sous-titre {
  margin: 1rem 0 0.5rem;
  font-size: 1rem;
}

/* ---------- mise en page ---------- */
.gign-contenu {
  display: grid;
  gap: 1rem;
}

.gign-contenu > .carte,
.gign-contenu > .alerte {
  min-width: 0;
}

.gign-onglets {
  margin-top: 1rem;
}

.gign-deux {
  display: grid;
  gap: 1rem;
}

.gign-deux > * {
  min-width: 0;
}

@media (min-width: 75em) {
  .gign-deux {
    grid-template-columns: minmax(0, 6fr) minmax(0, 7fr);
    align-items: start;
  }
}

.gign-filtres {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 40em) {
  .gign-filtres {
    grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
    align-items: end;
  }

  .gign-choix--large {
    grid-column: span 2;
  }
}

.gign-boutons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin: 0.75rem 0;
}

.gign-barre-infos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.gign-pied {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.25rem 1rem;
  margin-top: 1.25rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--trait);
  color: var(--discret);
  font-size: 0.875rem;
}

.gign-plus {
  display: flex;
  justify-content: center;
  margin-top: 0.75rem;
}

/* ---------- bandeau des scans ---------- */
.gign-bandeau {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
}

.gign-bandeau__ligne {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.6rem;
  align-items: baseline;
}

.gign-bandeau__etiquette {
  color: var(--discret);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.gign-bandeau__etiquette--accent {
  color: var(--bleu);
}

.gign-alertes {
  color: var(--attention);
  font-size: 0.9rem;
}

.gign-alertes ul {
  list-style: none;
  display: grid;
  gap: 0.15rem;
}

.gign-alertes li::before {
  content: "⚠ ";
}

.gign-scan {
  display: grid;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon-petit);
  background: var(--bleu-pale);
}

.gign-scan__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: center;
}

.gign-barres {
  list-style: none;
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
}

.gign-barre progress {
  width: 100%;
  height: 0.6rem;
  accent-color: var(--bleu);
}

.gign-barre__titre {
  font-weight: 650;
  font-size: 0.875rem;
}

.gign-barre__titre--groupe {
  margin-top: 0.4rem;
  color: var(--discret);
  font-weight: 550;
}

.gign-barre__texte {
  color: var(--discret);
  font-size: 0.8rem;
}

.gign-barre__texte--erreur {
  color: var(--mauvais);
}

.gign-message {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0 0.5rem;
}

.gign-message > .alerte {
  flex: 1 1 18rem;
}

.gign-message__fermer {
  margin-top: 0.75rem;
}

/* ---------- menus (fenêtres « Lancer un scan », « Exporter Excel ») ---------- */
.gign-menu {
  list-style: none;
  display: grid;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.gign-menu .bouton {
  justify-content: flex-start;
  white-space: normal;
  text-align: left;
}

.gign-menu__titre {
  margin: 0.75rem 0 0.4rem;
  color: var(--discret);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* ---------- tableaux ---------- */
.gign-tableau .tableau th {
  vertical-align: bottom;
}

.gign-tri {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-height: 2.75rem;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
}

.gign-tri:hover {
  color: var(--bleu-fonce);
}

.gign-tri__fleche {
  color: var(--discret);
  font-size: 0.75em;
}

/* tri sur téléphone : les en-têtes du tableau sont masqués (une carte par ligne) */
.gign-tri-mobile {
  display: none;
}

@media (max-width: 47.99em) {
  .gign-tri-mobile {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.35rem 0.5rem;
    align-items: end;
    margin-bottom: 0.75rem;
  }

  .gign-tri-mobile .champ__libelle {
    grid-column: 1 / -1;
    margin-top: 0;
  }
}

.gign-personne,
.gign-controle,
.gign-anomalies {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 0.5rem;
}

.gign-personne .lien-bouton,
.gign-controle .lien-bouton,
.gign-anomalies .lien-bouton {
  text-align: left;
}

.gign-detail {
  margin-top: 0.75rem;
  color: var(--encre-2);
}

/* ---------- Tableau de bord ---------- */
.gign-niveaux,
.gign-seuils,
.gign-portee {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 1rem;
  margin: 0.75rem 0 0;
  padding: 0;
  border: 0;
}

.gign-niveaux legend,
.gign-seuils legend,
.gign-portee legend {
  float: left;
  margin-right: 0.5rem;
  color: var(--encre-2);
  font-weight: 600;
}

.gign-case {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.75rem;
  cursor: pointer;
}

.gign-case input {
  width: 1.25rem;
  height: 1.25rem;
  flex: none;
  accent-color: var(--bleu);
}

.gign-case--ligne {
  display: flex;
}

.gign-liste-cases {
  display: grid;
  gap: 0 1rem;
}

@media (min-width: 48em) {
  .gign-liste-cases--deux {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.gign-chiffres {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 48em) {
  .gign-chiffres {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

.gign-chiffre {
  padding: 0.75rem 1rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  background: var(--fond);
}

.gign-chiffre__titre {
  color: var(--discret);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.gign-chiffre__valeur {
  font-size: 1.75rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.gign-chiffre__sous {
  color: var(--encre-2);
  font-size: 0.85rem;
}

/* ---------- Pistes ---------- */
.gign-seuil {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.gign-seuil__saisie {
  width: 6rem;
  min-height: 2.75rem;
  text-align: right;
}

.gign-seuil__saisie--erreur {
  border-color: var(--mauvais);
  box-shadow: 0 0 0 1px var(--mauvais);
}

.gign-fichier {
  min-height: 2.75rem;
}

/* ---------- fiche d'un dossier ---------- */
.gign-retour {
  margin-bottom: 0.5rem;
}

.gign-fiche-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.gign-etat {
  color: var(--bleu);
  font-weight: 600;
}

.gign-responsables {
  display: grid;
  gap: 0.4rem;
}

.gign-responsables div {
  display: grid;
  gap: 0 0.75rem;
}

@media (min-width: 40em) {
  .gign-responsables div {
    grid-template-columns: 10rem minmax(0, 1fr);
  }
}

.gign-responsables dt {
  color: var(--discret);
  font-weight: 600;
}

.gign-responsables dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.gign-anomalies-liste {
  list-style: none;
  display: grid;
  gap: 0.6rem;
}

.gign-anomalie {
  display: grid;
  gap: 0.25rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon-petit);
  background: var(--fond-doux);
}

.gign-anomalie__tete {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.6rem;
}

.gign-anomalie__titre {
  flex: 1 1 12rem;
}

.gign-anomalie__valeur {
  color: var(--encre-2);
}

.gign-anomalie__aide {
  color: var(--bleu-fonce);
  font-size: 0.9rem;
}

.gign-puces {
  display: grid;
  gap: 0.25rem;
  padding-left: 1.25rem;
}

.gign-qualification {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.gign-zone {
  min-height: 5.5rem;
  resize: vertical;
  font: inherit;
}

/* ---------- Réglages ---------- */
.gign-avertissements {
  color: var(--attention);
}

.gign-legende {
  display: grid;
  gap: 0.25rem;
  margin: 0.5rem 0;
}

.gign-legende div {
  display: flex;
  gap: 0.5rem;
}

.gign-legende dt {
  flex: none;
  min-width: 6.5rem;
  font-weight: 700;
}

.gign-legende dd {
  margin: 0;
  color: var(--encre-2);
}

.gign-categorie {
  border-top: 1px solid var(--trait);
}

.gign-categorie__titre {
  font-size: 1rem;
}

.gign-categorie__bouton {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 2.75rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--bleu-fonce);
  font: inherit;
  font-weight: 650;
  text-align: left;
  cursor: pointer;
}

.gign-categorie__compte {
  margin-left: 0.4rem;
  color: var(--discret);
  font-size: 0.875rem;
  font-weight: 500;
}

.gign-categorie__corps {
  display: grid;
  gap: 0;
  padding-bottom: 0.5rem;
}

.gign-controle-ligne {
  display: grid;
  gap: 0.5rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--trait);
}

.gign-controle-ligne__tete {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  min-height: 2.75rem;
}

.gign-controle-ligne__tete .case__saisie {
  margin-top: 0.15rem;
}

.gign-controle-ligne__libelle {
  cursor: pointer;
}

.gign-controle-ligne__reglages {
  display: grid;
  gap: 0.5rem;
  padding-left: 1.9rem;
}

@media (min-width: 64em) {
  .gign-controle-ligne__reglages {
    grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr);
    align-items: start;
  }
}

.gign-seuils-controle {
  display: grid;
  gap: 0.35rem;
}

.gign-seuil-ligne {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.25rem;
  align-items: center;
}

@media (min-width: 40em) {
  .gign-seuil-ligne {
    grid-template-columns: minmax(10rem, 16rem) 6.5rem minmax(0, 1fr);
    gap: 0.75rem;
  }
}

.gign-pied-reglages {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.75rem 0;
  border-top: 1px solid var(--bord);
  background: var(--fond);
}

.gign-pied-reglages p {
  margin-right: auto;
}

.gign-referents {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

@media (min-width: 48em) {
  .gign-referents {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.gign-referent {
  display: grid;
  gap: 0.25rem;
  margin: 0;
  padding: 0.5rem 0.75rem 0.75rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon-petit);
}

.gign-referent legend {
  padding: 0 0.25rem;
  font-weight: 650;
}
