/* Suivi de recherche d'apprentissage — charte ENSEA (rouge #A6004C, gris #706F6F) */
:root {
  --ensea: #A6004C; --ensea-fonce: #7d003a; --ensea-clair: #f7eef2;
  --gris: #706F6F; --gris-clair: #f4f4f4; --bord: #dcdcdc; --texte: #222;
  --vert: #2e7d32; --vert-clair: #e8f5e9; --orange: #b35c00; --orange-clair: #fff3e0;
  --rouge: #c62828; --rouge-clair: #ffebee; --bleu: #1565c0; --bleu-clair: #e3f2fd;
  --rayon: 6px;
}
* { box-sizing: border-box; }
html { font-size: 15px; }
body { margin: 0; font-family: Verdana, "DejaVu Sans", Geneva, sans-serif; color: var(--texte);
       background: #fafafa; line-height: 1.5; }
a { color: var(--ensea); }
h1 { font-size: 1.6rem; color: var(--ensea); margin: .2em 0 .6em; }
h2 { font-size: 1.2rem; color: var(--ensea); margin: 1.4em 0 .6em; }
h3 { font-size: 1rem; color: var(--gris); margin: 1em 0 .4em; }
.muted { color: var(--gris); font-size: .9em; }

/* En-tête */
.entete { background: #fff; border-bottom: 1px solid var(--bord); }
.entete .interieur { max-width: 1200px; margin: 0 auto; padding: 10px 16px; display: flex;
                     align-items: center; gap: 18px; flex-wrap: wrap; }
.logos { display: flex; align-items: center; gap: 16px; }
.logos img { height: 46px; width: auto; display: block; }
.logos img.ensea { height: 54px; }
.nom-app { font-size: 1.5rem; letter-spacing: .01em; }
.titre-outil .muted { font-weight: normal; }
.titre-outil { font-weight: bold; color: var(--ensea); font-size: 1.05rem; flex: 1; min-width: 200px; }
.utilisateur { font-size: .9rem; color: var(--gris); text-align: right; }
.utilisateur form { display: inline; }
.nav { background: var(--ensea); }
.nav ul { max-width: 1200px; margin: 0 auto; padding: 0 8px; list-style: none; display: flex;
          flex-wrap: wrap; }
.nav a { display: block; color: #fff; text-decoration: none; padding: 10px 14px; font-size: .95rem; }
.nav a:hover, .nav a.actif { background: var(--ensea-fonce); }

main { max-width: 1200px; margin: 0 auto; padding: 20px 16px 60px; }
footer { text-align: center; color: var(--gris); font-size: .8rem; padding: 20px; }

/* Messages */
.messages { list-style: none; padding: 0; margin: 0 0 16px; }
.messages li { padding: 10px 14px; border-radius: var(--rayon); margin-bottom: 6px;
               border-left: 4px solid; background: #fff; }
.messages .success { border-color: var(--vert); background: var(--vert-clair); }
.messages .error { border-color: var(--rouge); background: var(--rouge-clair); }
.messages .info, .messages .warning { border-color: var(--bleu); background: var(--bleu-clair); }

/* Cartes et grilles */
.carte { background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon);
         padding: 16px 18px; margin-bottom: 16px; }
.grille { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.deux-colonnes { display: grid; gap: 20px; grid-template-columns: 2fr 1fr; }
@media (max-width: 860px) { .deux-colonnes { grid-template-columns: 1fr; } }
.chiffres { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.chiffre { background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon);
           padding: 10px 16px; min-width: 130px; }
.chiffre b { display: block; font-size: 1.6rem; color: var(--ensea); }
.chiffre span { font-size: .85rem; color: var(--gris); }
.chiffre.alerte b { color: var(--rouge); }

/* Tableaux */
table.liste { width: 100%; border-collapse: collapse; background: #fff; font-size: .92rem; }
table.liste th, table.liste td { padding: 8px 10px; border-bottom: 1px solid var(--bord);
                                 text-align: left; vertical-align: top; }
table.liste th { background: var(--gris-clair); color: #444; font-weight: bold; white-space: nowrap; }
table.liste tr:hover td { background: #fcf7f9; }
table.liste td.num { text-align: right; }
.defilement { overflow-x: auto; border: 1px solid var(--bord); border-radius: var(--rayon); }
.defilement table.liste { border: 0; }

/* Pastilles */
.pastille { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: .82rem;
            background: #eee; color: #333; white-space: nowrap; }
.p-a_preparer, .p-sans_reponse, .p-abandonnee, .p-brouillon, .p-close { background: #eee; }
.p-envoyee, .p-publiee, .p-recherche { background: var(--bleu-clair); color: var(--bleu); }
.p-relancee, .p-a_faire, .p-inactif { background: var(--orange-clair); color: var(--orange); }
.p-entretien { background: var(--ensea-clair); color: var(--ensea); }
.p-acceptee, .p-faite, .p-contrat, .p-pourvue { background: var(--vert-clair); color: var(--vert); }
.p-refusee, .p-pas_demarre, .p-retard { background: var(--rouge-clair); color: var(--rouge); }
.p-exemple { background: #fff8e1; color: #8d6e00; border: 1px dashed #e0b400; }

/* Boutons et formulaires */
.bouton, button { display: inline-block; background: var(--ensea); color: #fff; border: 0;
                  border-radius: var(--rayon); padding: 8px 14px; font: inherit; font-size: .92rem;
                  cursor: pointer; text-decoration: none; line-height: 1.3; }
.bouton:hover, button:hover { background: var(--ensea-fonce); }
.bouton.secondaire, button.secondaire { background: #fff; color: var(--ensea);
                                        border: 1px solid var(--ensea); }
.bouton.secondaire:hover, button.secondaire:hover { background: var(--ensea-clair); }
.bouton.petit, button.petit { padding: 3px 9px; font-size: .82rem; }
.bouton.danger, button.danger { background: var(--rouge); }
button.lien { background: none; color: var(--ensea); padding: 0; text-decoration: underline; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.actions form { display: inline; }
form.formulaire p { margin: 0 0 12px; }
form.formulaire label { display: block; font-weight: bold; font-size: .9rem; margin-bottom: 3px; }
input[type=text], input[type=email], input[type=password], input[type=url], input[type=date],
input[type=number], input[type=tel], select, textarea {
  width: 100%; max-width: 560px; padding: 7px 9px; border: 1px solid #bbb; border-radius: 4px;
  font: inherit; font-size: .95rem; background: #fff; }
input[type=checkbox] { transform: scale(1.15); margin-right: 6px; }
label.case { font-weight: normal; display: flex; align-items: flex-start; margin: 4px 0; }
.helptext, .aide { display: block; color: var(--gris); font-size: .82rem; margin-top: 2px; }
.errorlist { color: var(--rouge); list-style: none; padding: 0; margin: 2px 0; font-size: .88rem; }
.filtres { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-bottom: 14px; }
.filtres label { font-size: .82rem; color: var(--gris); display: block; }
.filtres input, .filtres select { width: auto; min-width: 160px; }
.encadre { background: var(--ensea-clair); border-left: 4px solid var(--ensea); padding: 10px 14px;
           border-radius: var(--rayon); margin: 12px 0; }
.encadre.jaune { background: #fff8e1; border-color: #e0b400; }

/* Démarches */
.chrono { list-style: none; padding: 0; margin: 0; }
.chrono li { border-left: 3px solid var(--bord); padding: 6px 0 10px 14px; position: relative; }
.chrono li::before { content: ""; position: absolute; left: -7px; top: 10px; width: 11px;
                     height: 11px; border-radius: 50%; background: var(--bord); }
.chrono li.faite::before { background: var(--vert); }
.chrono li.a_faire::before { background: var(--orange); }
.chrono li.retard::before { background: var(--rouge); }
.commentaire-g { background: var(--bleu-clair); border-radius: 4px; padding: 6px 10px;
                 margin-top: 6px; font-size: .9rem; }

/* Import : correspondances */
.correspondance { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(220px, 2fr);
                  gap: 6px 14px; align-items: center; }
.correspondance .champ { font-weight: bold; }
.correspondance .obligatoire::after { content: " *"; color: var(--rouge); }
.correspondance select.auto { border-color: var(--vert); background: var(--vert-clair); }
.correspondance select.vide { color: var(--gris); }
.valeurs { margin: 4px 0 12px; padding: 8px 12px; background: var(--gris-clair); border-radius: 4px;
           grid-column: 1 / -1; }
.valeurs table td { padding: 2px 8px; }
.valeurs select { width: auto; min-width: 180px; }
.valeurs .inconnu { border-color: var(--orange); background: var(--orange-clair); }
.ordre-colonnes li { display: flex; align-items: center; gap: 8px; padding: 4px 6px;
                     border-bottom: 1px solid var(--bord); background: #fff; }
.ordre-colonnes { list-style: none; padding: 0; max-width: 560px; border: 1px solid var(--bord);
                  border-radius: var(--rayon); }
.ordre-colonnes li span { flex: 1; }
.ordre-colonnes button { padding: 1px 7px; }
table.brut td { font-family: monospace; font-size: .8rem; padding: 2px 6px; border: 1px solid #eee; }
table.brut tr.entete-detectee td { background: var(--vert-clair); font-weight: bold; }

/* Page publique */
.bandeau-public { background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon);
                  padding: 28px; }
.etapes { counter-reset: e; list-style: none; padding: 0; }
.etapes li { counter-increment: e; padding: 6px 0 6px 40px; position: relative; }
.etapes li::before { content: counter(e); position: absolute; left: 0; top: 4px; width: 28px;
                     height: 28px; border-radius: 50%; background: var(--ensea); color: #fff;
                     text-align: center; line-height: 28px; font-weight: bold; }
.connexion-boite { max-width: 460px; margin: 20px auto; }
