/* Le suivi des avis d'intervention. Feuille à part, comme materiel.css et
   courriels.css : main.css est encodé en Windows-1252 et toute réécriture en
   modifierait tous les octets non ASCII.

   Rien ici ne redéfinit une classe de main.css. Les compteurs, la barre de
   filtres, le tableau, les pastilles d'état, les boutons, les champs et la
   modale viennent tous de là — .stats-strip, .stat-card, .filters-bar,
   .table, .pastille-etape, .btn, .input, .modal. Ne restent que les quelques
   choses que main.css ne connaît pas, et qui tiennent toutes au même sujet :
   rendre VISIBLE une ligne dont l'adresse manque.

   Pourquoi une ligne sans adresse a sa couleur, et une couleur à elle : dans
   l'application que LISA PAQA remplace, 381 avis n'étaient pas envoyés et
   l'on ne découvrait qu'au moment d'envoyer que plusieurs n'avaient pas de
   destinataire. Un avis qu'on ne PEUT pas envoyer et un avis qu'on a oublié
   d'envoyer ne doivent pas se ressembler à l'œil, sinon le premier se noie
   dans le second — c'est exactement ce qui s'est passé. */

/* ── Les compteurs cliquables ────────────────────────────────────────────── */

/* Un compteur qui filtre doit s'annoncer comme un bouton, sinon personne ne
   l'essaie. Le curseur et le filet au survol suffisent ; l'anneau de focus
   vient de finitions.css, qui le pose sur [tabindex]. */
.av-stat--clic { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.av-stat--clic:hover { border-color: var(--color-primary); }

/* ── Le tableau ──────────────────────────────────────────────────────────── */

.av-table td { vertical-align: top; }

/* Les trois lignes qui ne sont pas ordinaires. Jamais la couleur seule :
   chacune porte aussi sa pastille d'état en toutes lettres, et le filet de
   gauche se voit en noir et blanc comme à l'impression. */
.av-ligne--trou   td { background: #fdf3f3; }
.av-ligne--trou   td:first-child { box-shadow: inset 3px 0 0 var(--color-danger); }
.av-ligne--erreur td { background: #fdf3f3; }
.av-ligne--erreur td:first-child { box-shadow: inset 3px 0 0 var(--color-danger); }

/* L'adresse qui ne vient que de la fiche du site : du sable, pas du rouge.
   Ce n'est pas une panne — le courriel partirait — mais c'est le cas le plus
   trompeur de l'écran, puisqu'il a l'air réglé et que l'automate ne le verra
   jamais. */
.av-ligne--repli  td { background: #fdf9ef; }
.av-ligne--repli  td:first-child { box-shadow: inset 3px 0 0 #c9a227; }

/* Le trou nommé dans la cellule de destination. */
.av-trou { color: var(--color-danger); font-size: 12px; }
.av-trou strong { display: block; margin-bottom: 2px; }
.av-trou .btn { margin-top: 6px; }

.av-repli {
  margin-top: 4px; font-size: 11px; line-height: 1.35;
  color: #6b5415;
}
.av-repli + .btn { margin-top: 6px; }

/* « 2 interventions » sur une seule ligne : le regroupement se voit, sinon on
   croit lire une intervention et l'on s'étonne du nombre d'envois. */
.av-groupe {
  display: inline-block; margin-top: 3px;
  padding: 1px 7px; border-radius: 10px;
  background: var(--color-primary-fd, #e8f4f3); color: var(--color-primary-h);
  font-size: 11px; font-weight: 600; white-space: nowrap;
}

.av-actions { display: flex; flex-direction: column; gap: 4px; align-items: stretch; }

/* ── L'envoi groupé ──────────────────────────────────────────────────────── */

/* Le nombre écarté se lit À CÔTÉ du bouton et non après le clic : savoir
   qu'on écarte douze avis une fois les autres partis n'aide plus personne. */
.av-envoi-lot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.av-envoi-lot .stat-note { max-width: 32rem; }

/* ── Ce que l'écran ne sait pas ──────────────────────────────────────────── */

/* En sable et non en rouge : un trou déclaré n'est pas une panne. Mais en
   tête de page et non en note de bas de page, parce qu'une absence expliquée
   à voix basse reste une absence inexpliquée. */
.av-avertissement {
  background: #fdf6e8; border: 1px solid #c9a227; border-left-width: 4px;
  border-radius: var(--radius); padding: 12px 16px; margin-bottom: 16px;
  font-size: 13px; color: #6b5415;
}
.av-avertissement strong { display: block; margin-bottom: 6px; }

.av-erreur { color: var(--color-danger); font-size: 13px; margin: 8px 0; }

/* ── Les réglages d'automatisation ───────────────────────────────────────── */

/* Le pli est marqué tant que l'automatique n'est pas complet : c'est le
   réglage que l'on vient vérifier quand un avis n'est pas parti, et il doit
   se repérer sans être déplié. */
.av-pli--marque > summary { background: #fdf6e8; color: #6b5415; }

.av-reglages { padding: 14px 16px; }
.av-form { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: flex-end; }
.av-form .form-label { flex: 0 1 15rem; }
.av-form .checkbox-ligne { flex: 1 1 100%; margin-top: 0; }
.av-form .form-actions,
.av-form > p { flex: 1 1 100%; margin-top: 0; }

/* ── L'aperçu avant envoi ────────────────────────────────────────────────── */

.av-apercu-tete {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 8px 20px; margin-bottom: 18px;
}
.av-apercu-ligne { display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.av-apercu h4 { margin: 20px 0 8px; font-size: 14px; }

.av-bloc {
  border-left: 2px solid var(--color-border); padding-left: 12px;
  margin-bottom: 12px; font-size: 13px;
}
.av-bloc p { margin: 4px 0; white-space: pre-line; }
.av-instructions { color: var(--color-text-2); font-style: italic; }

/* ── Les messages fugaces ────────────────────────────────────────────────── */

.av-toast {
  position: fixed; right: 18px; bottom: 18px; z-index: 400;
  display: flex; flex-direction: column; gap: 8px; max-width: 30rem;
}
.av-toast-msg {
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-primary);
  border-radius: var(--radius); padding: 10px 14px;
  font-size: 13px; box-shadow: 0 2px 10px rgba(0, 0, 0, .12);
}
/* L'échec reste neuf fois plus longtemps à l'écran que le succès, et il est
   le seul à porter le rouge : un avis qui n'est pas parti se rattrape, un
   avis parti ne se reprend pas. */
.av-toast-msg--erreur { border-left-color: var(--color-danger); background: #fdf3f3; }
