/* =====================================================================
   Anniversaires TU — feuille de style
   Identité : logo EEU (bleu roi #0020E0, jaune #F8F000), police Bookman.
   Les couleurs --primaire et --accent sont fournies par /theme.css (.env),
   chargé après ce fichier ; toutes les autres teintes en dérivent.
   ===================================================================== */

/* ---------- Police : TeX Gyre Bonum, version libre de Bookman (licence GUST, voir /fonts) ---------- */
@font-face { font-family: "TeX Gyre Bonum"; font-style: normal; font-weight: 400; font-display: swap; src: url("/static/fonts/texgyrebonum-regular.woff2") format("woff2"); }
@font-face { font-family: "TeX Gyre Bonum"; font-style: normal; font-weight: 700; font-display: swap; src: url("/static/fonts/texgyrebonum-bold.woff2") format("woff2"); }
@font-face { font-family: "TeX Gyre Bonum"; font-style: italic; font-weight: 400; font-display: swap; src: url("/static/fonts/texgyrebonum-italic.woff2") format("woff2"); }

/* ---------- Échelle unique : couleurs, espacements, tailles, arrondis ---------- */
:root {
  --primaire: #0020E0;               /* bleu roi du logo (remplacé par /theme.css) */
  --accent: #F8F000;                 /* jaune du logo (remplacé par /theme.css) */
  --bleu: var(--primaire);
  --bleu-fonce: color-mix(in srgb, var(--primaire) 42%, #070B33);   /* barres, titres, chiffres */
  --bleu-texte: color-mix(in srgb, var(--primaire) 88%, #070B33);   /* liens */
  --bleu-clair: color-mix(in srgb, var(--primaire) 9%, white);      /* fonds légers */
  --bleu-pale: color-mix(in srgb, var(--primaire) 4%, white);       /* lignes alternées */
  --jaune: var(--accent);            /* jamais en texte sur fond clair : fond, filet ou pastille */
  --jaune-fonce: color-mix(in srgb, var(--accent) 55%, #6B5300);    /* filets autour du jaune */
  --jaune-pale: color-mix(in srgb, var(--accent) 18%, white);
  --fond: #F4F5FA;
  --surface: #FFFFFF;
  --texte: #141A33;
  --texte-doux: #4E566E;
  --bordure: #D8DCE8;
  --succes: #156B3F; --succes-fond: #E4F3EA; --succes-bord: #B5DEC4;
  --erreur: #A8261E; --erreur-fond: #FBEAE8; --erreur-bord: #EFC1BC;
  --alerte: #7A4E00; --alerte-fond: #FFF5D6; --alerte-bord: #EBD38F;
  --info: var(--bleu-texte); --info-fond: var(--bleu-clair); --info-bord: color-mix(in srgb, var(--primaire) 25%, white);

  --e1: .25rem; --e2: .5rem; --e3: .75rem; --e4: 1rem; --e5: 1.5rem; --e6: 2rem;
  --t0: .78rem; --t1: .86rem; --t2: .94rem; --t3: 1rem; --t4: 1.15rem; --t5: 1.4rem; --t6: 1.75rem;
  --r1: 6px; --r2: 10px; --r3: 16px; --rond: 999px;
  --ombre: 0 1px 2px rgba(10, 16, 60, .06), 0 2px 6px rgba(10, 16, 60, .06);
  --ombre-haute: 0 6px 24px rgba(10, 16, 60, .14);
  --police: "Bookman Old Style", "TeX Gyre Bonum", "URW Bookman", serif;
  --hauteur-entete: 56px;
  --anneau: 0 0 0 3px var(--surface), 0 0 0 6px var(--primaire);   /* focus clavier */
}

/* ---------- Base ---------- */
* { box-sizing: border-box; }
button, input, select, textarea, optgroup { font-family: inherit; font-size: inherit; }
::placeholder { font-family: inherit; opacity: 1; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--police); font-size: 15px; line-height: 1.5; color: var(--texte); background: var(--fond); }
a { color: var(--primaire); text-underline-offset: .15em; }
a:hover { color: var(--bleu-fonce); }
h1, h2, h3 { line-height: 1.2; margin: 0 0 var(--e3); color: var(--bleu-fonce); letter-spacing: -.01em; }
h1 { font-size: var(--t5); }
h2 { font-size: 1.08rem; }
h3 { font-size: var(--t2); }
.carte > h2 { font-size: 1.05rem; margin-bottom: var(--e2); }
p { margin: 0 0 var(--e3); }
small, .doux { color: var(--texte-doux); }
small { font-size: var(--t1); }
.cache { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
:focus-visible { outline: none; box-shadow: var(--anneau); border-radius: var(--r1); }

/* ---------- Structure de l'administration ---------- */
.entete {
  position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: var(--e3);
  min-height: var(--hauteur-entete); padding: var(--e2) var(--e4); background: var(--bleu-fonce); color: #fff;
  border-bottom: 3px solid var(--jaune);
}
.entete a { color: #fff; text-decoration: none; }
.entete .marque { display: flex; align-items: center; gap: var(--e2); font-weight: 700; font-size: var(--t3); }
.entete .marque img { width: 44px; height: 44px; padding: 4px; background: #fff; border-radius: 50%; object-fit: contain; }
.entete .espace { flex: 1; }
.entete .qui { font-size: var(--t1); opacity: .92; }
.entete form { margin: 0; }
.entete .btn.secondaire { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.entete .btn.secondaire:hover { background: rgba(255,255,255,.12); color: #fff; }
.btn-menu { display: none; background: none; border: 1px solid rgba(255,255,255,.55); color: #fff; border-radius: var(--r1); padding: .3rem .6rem; font: inherit; font-size: var(--t3); cursor: pointer; }
.cadre { display: flex; min-height: calc(100vh - var(--hauteur-entete)); }
.menu { width: 236px; flex-shrink: 0; background: var(--surface); border-right: 1px solid var(--bordure); padding: var(--e4) var(--e2); }
.menu .section { font-size: var(--t0); text-transform: uppercase; letter-spacing: .08em; color: var(--texte-doux); margin: var(--e4) var(--e3) var(--e1); }
.menu .section:first-child { margin-top: 0; }
.menu a { display: flex; justify-content: space-between; align-items: center; gap: var(--e2); padding: .5rem var(--e3); border-radius: var(--r1); color: var(--texte); text-decoration: none; border-left: 3px solid transparent; }
.menu a:hover { background: var(--bleu-pale); color: var(--bleu-fonce); }
.menu a.actif { background: var(--bleu-clair); color: var(--primaire); font-weight: 700; border-left-color: var(--jaune); }
.pastille { background: var(--jaune); color: var(--texte); border-radius: var(--rond); font-size: var(--t0); padding: 0 .5rem; font-weight: 700; line-height: 1.5; }
.contenu { flex: 1; min-width: 0; padding: var(--e5) var(--e5) var(--e6); max-width: 1200px; }
.pied { text-align: center; color: var(--texte-doux); font-size: var(--t0); padding: var(--e4); }

@media (max-width: 860px) {
  .btn-menu { display: inline-block; }
  .entete .qui { display: none; }
  .entete { gap: var(--e2); padding: var(--e2) var(--e3); }
  .entete .marque span { font-size: var(--t2); white-space: nowrap; }
  .entete .marque img { width: 40px; height: 40px; }
  .entete .btn { min-height: 32px; padding: .2rem .6rem; font-size: var(--t1); }
  .menu { position: fixed; top: var(--hauteur-entete); left: 0; bottom: 0; z-index: 30; transform: translateX(-105%); transition: transform .2s; box-shadow: var(--ombre-haute); overflow-y: auto; }
  .menu.ouvert { transform: none; }
  .contenu { padding: var(--e4) var(--e3) var(--e6); }
}

/* ---------- Partie publique ---------- */
.public { max-width: 600px; margin: 0 auto; padding: var(--e5) var(--e4) var(--e6); }
.public .bandeau { text-align: center; margin-bottom: var(--e5); }
.public .bandeau img { width: 136px; height: 136px; object-fit: contain; display: block; margin: 0 auto var(--e3); }
.public .bandeau .eglise { color: var(--bleu-fonce); line-height: 1.25; max-width: 26rem; margin: 0 auto; }
.public .bandeau .titre { display: block; font-size: var(--t4); font-weight: 700; text-wrap: balance; }
.public .bandeau .sous-titre { display: block; font-size: var(--t2); color: var(--texte-doux); margin-top: var(--e1); text-wrap: balance; }
.public .carte { border-top: 4px solid var(--jaune); padding: var(--e5) var(--e4); }
.public h1 { font-size: var(--t5); margin-bottom: var(--e2); }
.public .carte > p:first-of-type { color: var(--texte-doux); }
.public input[type=text], .public input[type=email], .public input[type=tel], .public input[type=password] { min-height: 50px; font-size: 1.05rem; }
.public .consentement span { font-size: var(--t1); color: var(--texte-doux); line-height: 1.45; }
.public .btn.large { min-height: 54px; font-size: var(--t4); margin-top: var(--e2); }
.public > p.doux { text-align: center; }
@media (max-width: 480px) {
  .public { padding: var(--e4) var(--e3) var(--e6); }
  .public .bandeau img { width: 112px; height: 112px; }
  .public .carte { padding: var(--e4) var(--e3); }
}

/* ---------- Blocs ---------- */
.carte { background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r2); padding: var(--e4) var(--e4); box-shadow: var(--ombre); margin-bottom: var(--e4); }
.carte > h2:first-child, .carte > h3:first-child { margin-top: 0; }
.titre-page { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e2) var(--e3); margin-bottom: var(--e4); }
.titre-page h1 { margin: 0; }
.actions { display: flex; flex-wrap: wrap; gap: var(--e2); align-items: center; }
.grille { display: grid; gap: var(--e4); grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.stats { display: grid; gap: var(--e3); grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); margin-bottom: var(--e4); }
.stat { display: block; background: var(--surface); border: 1px solid var(--bordure); border-top: 4px solid var(--primaire); border-radius: var(--r2); padding: var(--e3) var(--e4); text-decoration: none; color: var(--texte); box-shadow: var(--ombre); }
a.stat:hover { box-shadow: var(--ombre-haute); color: var(--texte); }
.stat .nombre { font-size: var(--t6); font-weight: 700; color: var(--bleu-fonce); line-height: 1.1; }
.stat .libelle { font-size: var(--t1); color: var(--texte-doux); margin-top: var(--e1); }
.stat.accent { border-top-color: var(--jaune); }
.stat.accent .nombre { color: var(--bleu-fonce); }

/* ---------- Messages ---------- */
.message { border-radius: var(--r1); padding: var(--e3) var(--e4); margin-bottom: var(--e3); border: 1px solid transparent; border-left-width: 4px; }
.message.succes { background: var(--succes-fond); color: var(--succes); border-color: var(--succes-bord); border-left-color: var(--succes); }
.message.erreur { background: var(--erreur-fond); color: var(--erreur); border-color: var(--erreur-bord); border-left-color: var(--erreur); }
.message.info { background: var(--info-fond); color: var(--info); border-color: var(--info-bord); border-left-color: var(--primaire); }
.message.alerte { background: var(--alerte-fond); color: var(--alerte); border-color: var(--alerte-bord); border-left-color: var(--jaune-fonce); }

/* ---------- Formulaires ---------- */
label { display: block; font-weight: 400; color: var(--texte); margin-bottom: var(--e1); font-size: var(--t2); }
.champ { margin-bottom: var(--e4); }
.champ .aide { font-size: var(--t0); color: var(--texte-doux); margin-top: var(--e1); }
.champ .err { font-size: var(--t1); color: var(--erreur); margin-top: var(--e1); }
.champ.invalide input { border-color: var(--erreur); background: #FFFBFB; }
.oblig { color: var(--erreur); }
input[type=text], input[type=email], input[type=tel], input[type=password], input[type=search], input[type=number], input[type=file], select, textarea {
  width: 100%; font: inherit; color: inherit; background: #fff; border: 1px solid var(--bordure); border-radius: var(--r1); padding: .55rem .7rem; min-height: 44px;
}
input::placeholder, textarea::placeholder { color: #8A91A8; }
input:hover, select:hover, textarea:hover { border-color: #B9C0D6; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--primaire); box-shadow: 0 0 0 3px var(--bleu-clair); }
input:disabled, select:disabled, textarea:disabled { background: var(--fond); color: var(--texte-doux); cursor: not-allowed; }
textarea { min-height: 120px; resize: vertical; line-height: 1.45; }
.case { display: flex; gap: var(--e2); align-items: flex-start; font-weight: 400; }
.case input { margin-top: .2rem; width: 1.15rem; height: 1.15rem; min-height: 0; flex-shrink: 0; accent-color: var(--primaire); }
input[type=checkbox], input[type=radio] { accent-color: var(--primaire); }
.deux { display: grid; gap: 0 var(--e4); grid-template-columns: 1fr 1fr; }
@media (max-width: 560px) { .deux { grid-template-columns: 1fr; } }
.piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Boutons et états ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .35rem; font: inherit; font-weight: 700; font-size: var(--t2);
  min-height: 40px; padding: .45rem 1rem; border-radius: var(--r1); border: 1px solid var(--primaire); background: var(--primaire); color: #fff;
  text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color .15s, border-color .15s, box-shadow .15s;
}
.btn:hover { background: var(--bleu-fonce); border-color: var(--bleu-fonce); color: #fff; }
.btn:focus-visible { box-shadow: var(--anneau); }
.btn:disabled, .btn[aria-disabled=true] { opacity: .55; cursor: not-allowed; }
.btn.secondaire { background: #fff; color: var(--bleu-texte); }
.btn.secondaire:hover { background: var(--bleu-clair); color: var(--bleu-fonce); }
.btn.discret { background: transparent; border-color: var(--bordure); color: var(--texte); }
.btn.discret:hover { background: var(--bleu-pale); border-color: #B9C0D6; color: var(--texte); }
.btn.danger { background: var(--erreur); border-color: var(--erreur); }
.btn.danger:hover { background: #8C1F18; border-color: #8C1F18; }
.btn.accent { background: var(--jaune); border-color: var(--jaune-fonce); color: var(--texte); }
.btn.accent:hover { background: color-mix(in srgb, var(--jaune) 85%, #6B5300); color: var(--texte); }
.btn.petit { min-height: 32px; padding: .2rem .65rem; font-size: var(--t1); }
.btn.large { width: 100%; min-height: 48px; padding: .7rem; font-size: var(--t3); }
form.enligne { display: inline; margin: 0; }

/* ---------- Filtres ---------- */
.filtres { display: grid; gap: var(--e3); grid-template-columns: 2fr 1fr 1fr 1fr auto; align-items: end; }
.filtres .champ { margin: 0; }
@media (max-width: 900px) { .filtres { grid-template-columns: 1fr 1fr; } .filtres .large { grid-column: 1 / -1; } }

/* ---------- Tableaux ---------- */
.tableau-conteneur { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table.tableau { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--t2); }
.tableau th, .tableau td { text-align: left; padding: .6rem .7rem; border-bottom: 1px solid var(--bordure); vertical-align: top; }
.tableau th { font-size: var(--t0); text-transform: uppercase; letter-spacing: .06em; color: var(--bleu-fonce); background: var(--bleu-clair); white-space: nowrap; border-bottom: 2px solid var(--info-bord); }
.tableau tbody tr:nth-child(even) td { background: var(--bleu-pale); }
.tableau tbody tr:hover td { background: var(--jaune-pale); }
.tableau .nom { font-weight: 700; }
.tableau a.ligne { color: inherit; text-decoration: none; }
.nowrap { white-space: nowrap; }
.tableau input, .tableau select { padding: .3rem .5rem; font-size: var(--t1); min-width: 60px; min-height: 36px; }
.tableau .court { width: 64px; }
.tableau .moyen { min-width: 130px; }
/* Sur ordinateur, les en-têtes restent visibles pendant le défilement de la page. */
@media (min-width: 861px) {
  .tableau-conteneur:not(.large) { overflow: visible; }
  .tableau thead th { position: sticky; top: calc(var(--hauteur-entete) + 3px); z-index: 2; }
  .tableau-conteneur.large { overflow-x: auto; }
  .tableau-conteneur.large thead th { position: static; }
}
/* Tableaux de saisie (aperçu d'import, destinataires) : le conteneur défile horizontalement,
   chaque colonne garde une largeur lisible au lieu d'être écrasée. */
.tableau.saisie td { white-space: nowrap; }
.tableau.saisie td.libre { white-space: normal; min-width: 22rem; font-size: var(--t1); line-height: 1.4; }
.tableau.saisie td.source { white-space: normal; min-width: 11rem; max-width: 16rem; }
.tableau.saisie .moyen { width: 11rem; }
.tableau.saisie select { min-width: 9rem; display: block; }
.tableau.saisie input[type=email], .tableau.saisie input[type=tel] { min-width: 12rem; }
.tableau.saisie .enligne { margin-right: var(--e1); }

/* ---------- Étiquettes ---------- */
.etiquette { display: inline-block; font-size: var(--t0); font-weight: 700; padding: .1rem .55rem; border-radius: var(--rond); border: 1px solid var(--bordure); color: var(--texte-doux); background: #fff; white-space: nowrap; line-height: 1.5; }
.etiquette.incomplet { background: var(--jaune-pale); color: var(--alerte); border-color: var(--jaune-fonce); }
.etiquette.archive { background: #ECEEF4; color: #474E63; }
.etiquette.fort { background: var(--erreur-fond); color: var(--erreur); border-color: var(--erreur-bord); }
.etiquette.probable { background: var(--alerte-fond); color: var(--alerte); border-color: var(--alerte-bord); }
.etiquette.homonyme { background: var(--info-fond); color: var(--info); border-color: var(--info-bord); }
.etiquette.ok, .etiquette.envoye { background: var(--succes-fond); color: var(--succes); border-color: var(--succes-bord); }
.etiquette.simule { background: var(--info-fond); color: var(--info); border-color: var(--info-bord); }
.etiquette.echec { background: var(--erreur-fond); color: var(--erreur); border-color: var(--erreur-bord); }

/* ---------- Correspondances / fusion ---------- */
.correspondance { border: 1px solid var(--bordure); border-left: 4px solid var(--jaune-fonce); border-radius: var(--r1); padding: var(--e3) var(--e4); margin-bottom: var(--e3); background: #fff; }
.correspondance.fort { border-left-color: var(--erreur); }
.correspondance.homonyme { border-left-color: var(--primaire); }
.correspondance ul { margin: var(--e1) 0 var(--e2) 1.1rem; padding: 0; font-size: var(--t1); }
.fusion td.choix label { font-weight: 400; display: flex; gap: .4rem; align-items: flex-start; cursor: pointer; }
.fusion tr.conflit td { background: var(--alerte-fond) !important; }
.fusion tr.identique td { color: var(--texte-doux); }
/* Sur téléphone, les trois colonnes ne tiennent pas côte à côte : chaque information
   devient un bloc, et chaque choix rappelle le nom de sa colonne. */
@media (max-width: 640px) {
  .fusion table.tableau, .fusion .tableau tbody, .fusion .tableau tr, .fusion .tableau td { display: block; width: 100%; box-sizing: border-box; }
  .fusion .tableau thead { display: none; }
  .fusion .tableau tr { border-bottom: 1px solid var(--bordure); padding: var(--e1) 0; }
  .fusion .tableau td { border-bottom: 0; padding: .3rem .5rem; }
  .fusion td.choix::before { content: attr(data-colonne); display: block; font-size: var(--t0); text-transform: uppercase; letter-spacing: .06em; color: var(--texte-doux); margin-bottom: .15rem; }
}

/* ---------- Listes anniversaires ---------- */
.liste-anniv { list-style: none; margin: 0; padding: 0; }
.liste-anniv li { display: flex; justify-content: space-between; gap: var(--e2); padding: .5rem 0; border-bottom: 1px dashed var(--bordure); }
.liste-anniv li:last-child { border-bottom: 0; }
.liste-anniv a { text-decoration: none; }
.liste-anniv .quand { color: var(--texte-doux); font-size: var(--t1); white-space: nowrap; }
.vide { color: var(--texte-doux); font-style: italic; }

/* ---------- Histogramme par mois ---------- */
.histo { display: grid; grid-template-columns: repeat(12, 1fr); gap: .35rem; align-items: end; height: 150px; padding-top: var(--e2); }
.histo a { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; text-decoration: none; color: var(--texte-doux); font-size: var(--t0); }
.histo .barre { width: 100%; background: color-mix(in srgb, var(--primaire) 70%, white); border-radius: 4px 4px 0 0; min-height: 3px; }
.histo a:hover .barre { background: var(--primaire); }
.histo a.courant .barre { background: var(--jaune); border: 1px solid var(--jaune-fonce); border-bottom: 0; }
.histo a.courant .mois { font-weight: 700; color: var(--texte); background: var(--jaune); border-radius: var(--r1); padding: 0 .35rem; margin-top: 2px; }
.histo .n { font-weight: 700; color: var(--texte); font-size: var(--t0); }

/* ---------- Divers ---------- */
.pagination { display: flex; gap: .3rem; flex-wrap: wrap; margin-top: var(--e3); }
.pagination a, .pagination span { padding: .3rem .7rem; border: 1px solid var(--bordure); border-radius: var(--r1); text-decoration: none; font-size: var(--t1); background: #fff; }
.pagination a:hover { background: var(--bleu-clair); }
.pagination .courant { background: var(--primaire); color: #fff; border-color: var(--primaire); }
dl.details { display: grid; grid-template-columns: 170px 1fr; gap: .45rem var(--e3); margin: 0; }
dl.details dt { color: var(--texte-doux); }
dl.details dd { margin: 0; font-weight: 400; color: var(--texte); }
@media (max-width: 560px) { dl.details { grid-template-columns: 1fr; } dl.details dt { margin-top: var(--e2); font-size: var(--t1); } dl.details dd { margin-bottom: var(--e1); } }
.historique { list-style: none; padding: 0; margin: 0; font-size: var(--t1); }
.historique li { padding: .5rem 0; border-bottom: 1px solid var(--bordure); }
.historique .modifs { color: var(--texte-doux); font-size: var(--t0); }
pre.apercu { white-space: pre-wrap; background: var(--bleu-pale); border: 1px solid var(--bordure); border-radius: var(--r1); padding: var(--e3); font-size: var(--t1); max-height: 320px; overflow: auto; font-family: ui-monospace, Menlo, Consolas, monospace; }
textarea.copie { min-height: 380px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: var(--t1); }
details.repli summary { cursor: pointer; font-weight: 700; color: var(--bleu-texte); }
.groupe-droits { border: 1px solid var(--bordure); border-radius: var(--r1); padding: var(--e3) var(--e4); margin-bottom: var(--e3); background: var(--bleu-pale); }
.groupe-droits h3 { margin-bottom: var(--e2); display: flex; justify-content: space-between; align-items: center; gap: var(--e2); }
.connexion { max-width: 400px; margin: 3rem auto; padding: 0 var(--e4); }
.zone-danger { border-color: var(--erreur-bord); }
.etat-config { padding-left: 1.2rem; }
.etat-config li { margin-bottom: .35rem; }
.espace-bas { margin-bottom: var(--e3); }
.espace-haut { margin-top: var(--e2); }
.sans-marge { margin: 0; }

/* ---------- Impression ---------- */
@media print {
  body { background: #fff; font-size: 12pt; color: #000; }
  .entete, .menu, .actions, .filtres, .pagination, .pied, .btn, .btn-menu { display: none !important; }
  .cadre { display: block; }
  .contenu { padding: 0; max-width: none; }
  .carte, .stat { box-shadow: none; border: 1px solid #999; break-inside: avoid; }
  .tableau th { position: static !important; background: #eee !important; color: #000; }
  .tableau tbody tr:nth-child(even) td { background: #f6f6f6 !important; }
  a { color: #000; text-decoration: none; }
}

/* ---------- Écran Rappels : destinataires en cartes, blocs d'envoi ---------- */
.destinataires { display: grid; gap: var(--e3); }
.destinataire { border: 1px solid var(--bordure); border-radius: var(--r2); padding: var(--e3) var(--e4); background: var(--bleu-pale); margin: 0; }
.destinataire.ajout { background: var(--surface); border-style: dashed; }
.destinataire-champs { display: grid; gap: var(--e2) var(--e3); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.destinataire-champs .champ { margin-bottom: 0; }
.destinataire-champs input { min-width: 0; }
.destinataire-options { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e4); margin: var(--e3) 0; }
.destinataire-options .case { font-size: var(--t2); }
.destinataire .actions { gap: var(--e2); }
.destinataire.lecture .destinataire-options { margin-bottom: 0; }
@media (max-width: 700px) {
  .destinataire-champs { grid-template-columns: 1fr; }
  .destinataire .actions .btn { flex: 1 1 auto; }
}
.bloc-envoi { padding: var(--e3) var(--e4); border: 1px solid var(--bordure); border-radius: var(--r1); margin-bottom: var(--e3); background: var(--bleu-pale); }
.bloc-envoi h3 { margin-bottom: var(--e2); }
.bloc-envoi .case.champ { margin-bottom: var(--e2); }
/* Sur téléphone, les boutons aux libellés longs passent à la ligne au lieu de déborder. */
@media (max-width: 560px) {
  .btn { white-space: normal; text-align: center; line-height: 1.3; }
  .btn.petit { padding-top: .3rem; padding-bottom: .3rem; }
}
