/* AVYQA · Pilotage — charte AVYQA : encre #0B0F14, vermillon #F94027 (masses uniquement, jamais en texte). */
:root {
  --encre:#0B0F14; --vermillon:#F94027; --texte:#2B3138; --discret:#6B7280;
  --filet:#E3E6EA; --fond:#F5F6F8; --blanc:#fff; --surface2:#EEF0F3;
  --vert:#0F7B4F; --ambre:#B45309; --rouge:#B42318; --bleu:#1E4FB0;
  --vert-fond:#E6F4EE; --ambre-fond:#FCF1E3; --rouge-fond:#FBE9E7; --bleu-fond:#E8EEFA; --gris-fond:#ECEEF1;
  --rayon:8px;
}
* { box-sizing:border-box; margin:0; padding:0; }
html { color-scheme:light; }
body { font-family:"Poppins","Avenir Next",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:14.5px; line-height:1.5; color:var(--texte); background:var(--fond); }
a { color:var(--encre); }
button { font:inherit; }
[hidden] { display:none !important; }

/* ── connexion ── */
.ecran-connexion { display:grid; place-items:center; min-height:100vh; background:var(--fond); }
.connexion { width:min(360px, 92vw); background:var(--blanc); border:1px solid var(--filet); border-radius:10px; padding:34px 30px 26px; text-align:center; }
.marque-grande { font-weight:600; letter-spacing:.32em; font-size:24px; color:var(--encre); display:inline-block; position:relative; padding-bottom:12px; }
.marque-grande .trait { position:absolute; left:50%; bottom:0; width:42px; height:4px; background:var(--vermillon); transform:translateX(-50%); border-radius:2px; }
.connexion-sous { color:var(--discret); margin:6px 0 22px; font-size:13.5px; }
.connexion form { text-align:left; }
.connexion label { display:block; font-size:12.5px; font-weight:600; color:var(--encre); margin-bottom:5px; }
.connexion input[type=password], .connexion input[type=text] { width:100%; padding:10px 12px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:15px; }
.connexion input[type=text] { letter-spacing:.22em; text-align:center; font-size:19px; }
.connexion-aide { color:var(--discret); font-size:12.5px; margin-top:8px; }
.bouton-large { width:100%; margin-top:8px; text-align:center; }
.connexion input:focus { outline:2px solid var(--encre); outline-offset:1px; border-color:var(--encre); }
.bouton { display:inline-block; width:100%; margin-top:14px; padding:11px 16px; background:var(--encre); color:#fff; border:0; border-radius:6px; font-weight:600; cursor:pointer; }
.bouton:disabled { opacity:.5; cursor:not-allowed; }
.erreur { margin-top:10px; color:var(--rouge); font-size:13.5px; }
.connexion-note { margin-top:18px; color:var(--discret); font-size:12px; }

/* ── coquille ── */
.appli { display:flex; min-height:100vh; }
.lateral { width:232px; flex:none; background:var(--encre); color:#fff; padding:20px 12px; position:sticky; top:0; height:100vh; overflow:auto; display:flex; flex-direction:column; }
.marque { padding:2px 10px 18px; border-bottom:3px solid var(--vermillon); margin-bottom:14px; }
.marque span { display:block; font-weight:600; letter-spacing:.3em; font-size:17px; }
.marque small { display:block; color:rgba(255,255,255,.55); font-size:12px; letter-spacing:.04em; }
.nav-titre { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.4); padding:14px 10px 6px; }
.nav-lien { display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.82); text-decoration:none; padding:9px 10px; border-radius:7px; font-size:14px; }
.nav-lien:hover { background:rgba(255,255,255,.07); color:#fff; }
.nav-lien.actif { background:#fff; color:var(--encre); font-weight:600; }
.nav-lien.nav-eteint { color:rgba(255,255,255,.4); }
.nav-lien .puce { width:9px; height:9px; border-radius:50%; flex:none; background:#8b95a3; }
.puce-vermillon { background:var(--vermillon) !important; }
.puce-gris { background:#6B7280 !important; }
.compteur { margin-left:auto; background:var(--vermillon); color:#fff; font-size:11.5px; font-weight:600; padding:1px 8px; border-radius:10px; }
.nav-lien.actif .compteur { color:#fff; }
.nav-note { margin-top:auto; padding:14px 10px 0; font-size:11.5px; color:rgba(255,255,255,.4); }
.contenu { flex:1; min-width:0; padding:26px 30px 60px; max-width:1240px; }
.chargement { color:var(--discret); }

/* ── en-tête de page ── */
.entete { display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.entete h1 { font-size:24px; color:var(--encre); line-height:1.2; }
.entete .sous { color:var(--discret); font-size:13.5px; }
.entete .droite { margin-left:auto; display:flex; gap:8px; align-items:center; font-size:12.5px; color:var(--discret); }
.lien-bouton { display:inline-block; padding:7px 12px; border:1px solid #CBD2D9; border-radius:6px; background:#fff; color:var(--encre); text-decoration:none; font-size:13px; cursor:pointer; }
.lien-bouton:hover { border-color:var(--encre); }
.bandeau-projet { height:4px; border-radius:2px; margin:-6px 0 18px; }

/* ── onglets de rubriques ── */
.onglets { display:flex; gap:4px; flex-wrap:wrap; border-bottom:1px solid var(--filet); margin-bottom:20px; }
.onglets a { text-decoration:none; color:var(--discret); padding:9px 12px; border-bottom:3px solid transparent; margin-bottom:-1px; font-size:13.5px; }
.onglets a.actif { color:var(--encre); border-bottom-color:var(--vermillon); font-weight:600; }

/* ── cartes, grilles ── */
.carte { background:var(--blanc); border:1px solid var(--filet); border-radius:var(--rayon); padding:18px 20px; margin-bottom:16px; }
.carte h2 { font-size:15px; color:var(--encre); margin-bottom:12px; }
.carte h2 small { color:var(--discret); font-weight:400; font-size:12.5px; margin-left:8px; }
.groupe-titre { display:flex; align-items:center; gap:10px; margin:22px 0 10px; font-size:15px; color:var(--encre); font-weight:600; }
.groupe-titre .barre { width:4px; height:18px; border-radius:2px; }
.grille-chiffres { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:12px; margin-bottom:16px; }
.chiffre { background:var(--blanc); border:1px solid var(--filet); border-radius:var(--rayon); padding:14px 16px; }
.chiffre .lib { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--discret); }
.chiffre .val { font-size:26px; font-weight:600; color:var(--encre); line-height:1.15; margin-top:4px; }
.chiffre .val small { font-size:13px; font-weight:400; color:var(--discret); }
.chiffre .sous { font-size:12.5px; color:var(--discret); margin-top:3px; }
.chiffre .tend { font-size:12px; margin-top:4px; }
.tend.haut { color:var(--vert); } .tend.bas { color:var(--rouge); } .tend.plat { color:var(--discret); }
.deux-colonnes { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.deux-colonnes > .carte { min-width:0; }
@media (max-width:900px) { .deux-colonnes { grid-template-columns:1fr; } }

/* ── alertes ── */
.alertes { border-left:4px solid var(--vermillon); }
.alerte { display:flex; gap:12px; align-items:flex-start; padding:10px 0; border-top:1px solid var(--filet); }
.alerte:first-of-type { border-top:0; }
.alerte .niv { flex:none; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; padding:3px 8px; border-radius:4px; margin-top:2px; }
.niv-critique { background:var(--rouge-fond); color:var(--rouge); }
.niv-attention { background:var(--ambre-fond); color:var(--ambre); }
.niv-info { background:var(--bleu-fond); color:var(--bleu); }
.alerte .txt b { display:block; color:var(--encre); font-weight:600; }
.alerte .txt span { color:var(--discret); font-size:13px; }
.alerte .proj { margin-left:auto; flex:none; font-size:12px; color:var(--discret); }
.alerte a { font-size:12.5px; }

/* ── séries (barres) ── */
.serie { display:flex; align-items:flex-end; gap:6px; height:120px; padding-top:18px; }
.serie .jour { flex:1 1 0; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; min-width:0; overflow:hidden; }
/* séries denses (plus de 14 points) : barres serrées, une étiquette sur cinq */
.serie.dense { gap:2px; }
.serie.dense .val { display:none; }
.serie.dense .jour { overflow:visible; }
.serie.dense .lbl { visibility:hidden; }
.serie.dense .jour:nth-child(5n+1) .lbl { visibility:visible; overflow:visible; }
.serie .val { font-size:11px; color:var(--discret); margin-bottom:3px; }
.serie .barre { width:100%; max-width:44px; border-radius:4px 4px 0 0; }
.serie .lbl { font-size:10.5px; color:var(--discret); margin-top:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }

/* ── tableaux ── */
.tableau-enveloppe { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:13.5px; }
th, td { text-align:left; padding:9px 12px; border-bottom:1px solid var(--filet); vertical-align:top; }
thead th { background:#F1F3F5; color:var(--encre); font-weight:600; font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
thead th.tri { cursor:pointer; user-select:none; }
thead th.tri:hover { color:var(--bleu); }
thead th.tri.actif { color:var(--encre); text-decoration:underline; text-underline-offset:3px; }
thead th { position:sticky; top:0; z-index:1; }
td { max-width:300px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
tbody tr:hover { background:#FAFBFC; }
tbody tr.ligne-lien { cursor:pointer; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }
.badge { display:inline-block; padding:2px 9px; border-radius:10px; font-size:12px; font-weight:600; }
.ton-vert { background:var(--vert-fond); color:var(--vert); } .ton-ambre { background:var(--ambre-fond); color:var(--ambre); }
.ton-rouge { background:var(--rouge-fond); color:var(--rouge); } .ton-bleu { background:var(--bleu-fond); color:var(--bleu); } .ton-gris { background:var(--gris-fond); color:var(--discret); }
.vide { color:var(--discret); padding:16px 0; text-align:center; }

/* ── filtres, pagination ── */
.filtres { display:flex; gap:10px; flex-wrap:wrap; align-items:end; margin-bottom:14px; }
.filtres label { display:block; font-size:11.5px; color:var(--discret); margin-bottom:3px; }
.filtres input, .filtres select { padding:7px 10px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:13.5px; background:#fff; min-width:160px; }
.pagination { display:flex; gap:8px; align-items:center; justify-content:flex-end; margin-top:12px; font-size:13px; color:var(--discret); }

/* ── détail ── */
.champs { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px 20px; }
.champs .ch .l { font-size:11.5px; color:var(--discret); }
.champs .ch .v { color:var(--encre); overflow-wrap:anywhere; }
.texte-bloc { white-space:pre-wrap; }
.cadre-html { width:100%; height:70vh; border:1px solid var(--filet); border-radius:6px; background:#fff; }
.actions-catalogue { display:flex; gap:8px; flex-wrap:wrap; }
.actions-catalogue button { padding:7px 12px; border:1px solid #CBD2D9; background:#fff; border-radius:6px; cursor:not-allowed; color:var(--discret); font-size:13px; }
.actions-catalogue button.dispo { color:#fff; background:var(--encre); cursor:pointer; border-color:var(--encre); font-weight:600; }
.actions-catalogue button.dispo:hover { opacity:.88; }
.actions-catalogue button.dispo.dangereuse { background:#fff; color:var(--rouge); border-color:var(--rouge); }

/* ── fenêtre d'action ── */
.dialogue { margin:auto; border:0; border-radius:10px; padding:0; width:min(520px, 92vw); box-shadow:0 20px 60px rgba(11,15,20,.25); }
.dialogue::backdrop { background:rgba(11,15,20,.45); }
.dialogue-form { padding:24px 26px 20px; }
.dialogue h2 { font-size:18px; color:var(--encre); margin-bottom:10px; }
.dialogue .danger { display:inline-block; background:var(--rouge-fond); color:var(--rouge); font-weight:600; font-size:12px; padding:3px 9px; border-radius:4px; margin-bottom:10px; }
.dialogue .question { color:var(--texte); margin-bottom:8px; }
.dialogue .cible { font-size:12.5px; color:var(--discret); margin-bottom:8px; }
.dialogue .cible code { background:var(--surface2); padding:1px 6px; border-radius:4px; }
.dialogue .parametres { display:grid; gap:10px; margin:12px 0 4px; max-height:52vh; overflow:auto; padding-right:4px; }
.dialogue .parametres:has(> :nth-child(6)) { grid-template-columns:1fr 1fr; }
.dialogue .parametres > div:has(textarea) { grid-column:1 / -1; }
.dialogue .parametres label { display:block; font-size:12.5px; font-weight:600; color:var(--encre); margin-bottom:4px; }
.dialogue .parametres input, .dialogue .parametres select, .dialogue .parametres textarea { width:100%; padding:8px 10px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:13.5px; }
.dialogue .parametres .coche { display:flex; gap:8px; align-items:center; } .dialogue .parametres .coche label { margin:0; } .dialogue .parametres .coche input { width:auto; }
.dialogue .resultat { margin-top:12px; font-size:13.5px; padding:9px 12px; border-radius:6px; background:var(--surface2); }
.dialogue .resultat.ok { background:var(--vert-fond); color:var(--vert); } .dialogue .resultat.ko { background:var(--rouge-fond); color:var(--rouge); }
.dialogue .boutons { display:flex; gap:10px; justify-content:flex-end; margin-top:16px; }
.bouton-court { width:auto; margin:0; padding:9px 18px; }
.bouton.rouge { background:var(--rouge); }

/* ── À traiter : résumé et groupes par projet ── */
.resume-alertes { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.pastille-projet { display:inline-flex; align-items:center; gap:7px; padding:6px 11px; background:#fff; border:1px solid var(--filet); border-radius:20px; text-decoration:none; font-size:13px; color:var(--encre); }
.pastille-projet .puce { width:8px; height:8px; border-radius:50%; }
.pastille-projet .n { font-size:11.5px; padding:1px 7px; border-radius:9px; font-weight:600; }
.pastille-projet .n.critique { background:var(--rouge-fond); color:var(--rouge); } .pastille-projet .n.attention { background:var(--ambre-fond); color:var(--ambre); } .pastille-projet .n.info { background:var(--bleu-fond); color:var(--bleu); }
.groupe-alertes { background:#fff; border:1px solid var(--filet); border-left-width:4px; border-radius:var(--rayon); padding:14px 20px 8px; margin-bottom:14px; }
.groupe-alertes h3 { font-size:15px; color:var(--encre); margin-bottom:4px; } .groupe-alertes h3 a { text-decoration:none; } .groupe-alertes h3 small { color:var(--discret); font-weight:400; font-size:12.5px; margin-left:8px; }
.alertes-liste .alerte:first-of-type { border-top:0; }
.pagination .par-page { display:flex; gap:6px; align-items:center; } .pagination select { padding:4px 6px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:12.5px; background:#fff; }

/* ── états ── */
.etat { padding:14px 16px; border-radius:var(--rayon); border:1px solid var(--filet); background:#fff; margin-bottom:14px; }
.etat.ko { border-left:4px solid var(--rouge); }
.etat.non-branche { border-left:4px solid #9AA3AE; color:var(--discret); }
.etat code { background:var(--surface2); padding:1px 6px; border-radius:4px; font-size:12.5px; }
.liens-externes a { display:inline-block; margin:0 10px 8px 0; font-size:13px; }
.info-cache { font-size:12px; color:var(--discret); }

@media (max-width:760px) {
  .appli { flex-direction:column; }
  .lateral { width:100%; height:auto; position:static; flex-direction:row; flex-wrap:wrap; gap:2px; padding:12px; }
  .marque { width:100%; border-bottom:0; margin-bottom:6px; padding-bottom:0; }
  .nav-titre, .nav-note { display:none; }
  .nav-lien { padding:7px 9px; font-size:13px; }
  .contenu { padding:18px 16px 50px; }
}

/* ── phase 6 : recherche, activité, notes, réponses types, actions groupées, courbes ── */
.recherche { margin:0 0 10px; }
.recherche input { width:100%; padding:8px 10px; border:1px solid rgba(255,255,255,.18); border-radius:7px; background:rgba(255,255,255,.08); color:#fff; font:inherit; font-size:13.5px; }
.recherche input::placeholder { color:rgba(255,255,255,.45); }
.recherche input:focus { outline:2px solid var(--vermillon); outline-offset:1px; background:rgba(255,255,255,.12); }
.puce-inline { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; vertical-align:middle; }
.courbe { display:block; margin-top:8px; opacity:.9; }
.resultat-rubrique { padding:8px 0 4px; }
.resultat-rubrique h4 { font-size:13.5px; color:var(--encre); margin-bottom:6px; } .resultat-rubrique h4 small { color:var(--discret); font-weight:400; margin-left:6px; }
.jour-activite h3 { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--discret); margin:14px 0 6px; }
.evenement { display:flex; gap:10px; align-items:baseline; padding:7px 0; border-top:1px solid var(--filet); font-size:13.5px; }
.evenement .quand { flex:none; width:44px; color:var(--discret); font-variant-numeric:tabular-nums; }
.evenement .qui { flex:none; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; padding:2px 7px; border-radius:4px; background:var(--gris-fond); color:var(--discret); }
.evenement .qui-hub { background:var(--bleu-fond); color:var(--bleu); } .evenement .qui-agent { background:var(--ambre-fond); color:var(--ambre); }
.evenement .proj { flex:none; color:var(--discret); font-size:12.5px; width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.evenement .txt { flex:1; min-width:0; color:var(--encre); text-decoration:none; } .evenement .txt:hover { text-decoration:underline; }
.evenement .type { flex:none; color:var(--discret); font-size:12px; }
.notes .note { padding:10px 0; border-top:1px solid var(--filet); } .notes .note:first-of-type { border-top:0; }
.notes .note-texte { white-space:pre-wrap; color:var(--encre); }
.notes .note-pied { font-size:12px; color:var(--discret); margin-top:4px; }
.note-form { display:flex; gap:8px; align-items:flex-start; margin-top:10px; }
.note-form textarea, .notes textarea { flex:1; width:100%; padding:8px 10px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:13.5px; }
.tache { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid var(--filet); } .tache:first-of-type { border-top:0; }
.tache small { color:var(--discret); margin-left:6px; } .tache-etat { font-size:12.5px; color:var(--discret); margin-top:3px; }
.reponse-type { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid var(--filet); }
.reponse-type:first-of-type { border-top:0; } .reponse-type small { color:var(--discret); margin-left:6px; }
.reponse-texte { font-size:13px; color:var(--texte); margin-top:3px; max-width:640px; }
.reponse-boutons { display:flex; gap:6px; flex:none; align-items:flex-start; }
.reponse-form { margin-top:12px; padding-top:12px; border-top:1px solid var(--filet); }
.reponse-form label { display:block; font-size:12px; color:var(--discret); margin:8px 0 3px; }
.reponse-form input, .reponse-form select, .reponse-form textarea { width:100%; padding:8px 10px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:13.5px; background:#fff; }
.reponse-form .deux-champs { display:grid; grid-template-columns:2fr 1fr; gap:12px; }
.reponse-form .boutons { display:flex; gap:8px; margin-top:10px; }
.dialogue .reponses-types { font-size:12.5px; color:var(--discret); margin:6px 0 2px; } .dialogue .reponses-types select { margin-left:6px; padding:4px 6px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:12.5px; }
.dialogue .origine { font-size:12.5px; background:var(--ambre-fond); color:var(--ambre); padding:6px 10px; border-radius:6px; margin-bottom:8px; }
.dialogue h2 small { color:var(--discret); font-weight:400; font-size:13px; }
.resultats-groupe { max-height:200px; overflow:auto; font-size:12.5px; margin-top:10px; border:1px solid var(--filet); border-radius:6px; padding:6px 10px; }
.ligne-resultat { padding:3px 0; color:var(--discret); } .ligne-resultat.ok { color:var(--vert); } .ligne-resultat.ko { color:var(--rouge); }
th.case, td.case { width:34px; padding-right:0; } td.case input, th.case input { width:15px; height:15px; cursor:pointer; }
.barre-selection { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 10px; padding:9px 12px; background:var(--encre); color:#fff; border-radius:7px; font-size:13px; }
.barre-selection .nb { font-weight:600; margin-right:6px; }
.barre-selection .lien-bouton { padding:5px 10px; font-size:12.5px; } .barre-selection .lien-bouton:disabled { opacity:.45; cursor:not-allowed; }
.barre-selection .danger-texte { color:var(--rouge); border-color:var(--rouge); }
.dialogue.large { width:min(760px, 94vw); } .dialogue.large .cadre-html { height:70vh; }
.tache-boutons { display:flex; gap:6px; flex:none; }

/* ── assistant ── */
/* « aside. » est indispensable : les bulles de réponse portent la classe « assistant »
   (div class="bulle assistant"). Sans lui, elles héritaient de position:fixed et de
   height:100vh, et se peignaient par-dessus l'en-tête et la zone de saisie du panneau. */
aside.assistant { position:fixed; right:0; top:0; height:100vh; width:min(440px, 100vw); background:#fff; border-left:1px solid var(--filet); display:flex; flex-direction:column; z-index:20; box-shadow:-8px 0 30px rgba(11,15,20,.08); }
body.avec-assistant .contenu { max-width:calc(100vw - 232px - 440px); }
.assistant-entete { flex:none; display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:3px solid var(--vermillon); color:var(--encre); }
.assistant-entete b { font-size:15px; } .assistant-etat { color:var(--discret); font-size:11.5px; margin-right:auto; }
.assistant-entete .lien-bouton { padding:4px 9px; font-size:12.5px; }
.assistant-fil { flex:1 1 0; min-height:0; overflow-y:auto; overflow-x:hidden; padding:14px; display:flex; flex-direction:column; gap:10px; background:var(--fond); }
.bulle { max-width:92%; padding:9px 12px; border-radius:10px; font-size:13.5px; line-height:1.5; overflow-wrap:anywhere; }
.bulle.david { align-self:flex-end; background:var(--encre); color:#fff; white-space:pre-wrap; }
.bulle.assistant { align-self:flex-start; background:#fff; border:1px solid var(--filet); color:var(--texte); }
.bulle.assistant ul { padding-left:18px; margin:4px 0; } .bulle.assistant code { background:var(--surface2); padding:1px 5px; border-radius:4px; font-size:12.5px; }
.bulle.systeme { align-self:stretch; background:var(--ambre-fond); color:var(--ambre); font-size:12.5px; }
.bulle.attente { align-self:flex-start; background:#fff; border:1px dashed #CBD2D9; color:var(--discret); font-size:12.5px; }
.bulle .etape { color:var(--discret); font-size:12px; }
.bulle .jetons { margin-top:6px; font-size:11px; color:var(--discret); text-align:right; }
.proposition { align-self:stretch; background:#fff; border:1px solid var(--filet); border-left:4px solid var(--vermillon); border-radius:8px; padding:10px 12px; font-size:13px; }
.proposition-titre { color:var(--encre); } .proposition-titre code { background:var(--surface2); padding:0 5px; border-radius:4px; }
.proposition-pourquoi { color:var(--discret); margin:4px 0; }
.proposition-params { display:grid; gap:2px; margin:6px 0; font-size:12.5px; } .proposition-params span { color:var(--discret); margin-right:6px; }
.proposition .bouton { margin-top:6px; padding:7px 12px; font-size:13px; }
.assistant-form { flex:none; display:flex; gap:8px; padding:10px 14px; border-top:1px solid var(--filet); }
.assistant-form textarea { flex:1; padding:8px 10px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:13.5px; resize:none; }
.assistant-form .bouton { margin:0; align-self:flex-end; }
.assistant-note { flex:none; padding:0 14px 10px; font-size:11.5px; color:var(--discret); }
@media (max-width:1100px) { body.avec-assistant .contenu { max-width:none; } }

/* ── sécurité : deuxième facteur ── */
.totp-enrolement { display:flex; gap:20px; align-items:flex-start; flex-wrap:wrap; margin-top:14px; padding:16px; background:var(--surface2); border-radius:var(--rayon); }
.totp-qr { flex:none; line-height:0; padding:8px; background:#fff; border:1px solid var(--filet); border-radius:6px; }
.totp-qr svg { display:block; width:230px; height:230px; }
.totp-pas { flex:1 1 260px; }
.totp-pas p { margin-bottom:9px; font-size:13.5px; }
.totp-cle { display:inline-block; margin-top:2px; padding:3px 7px; background:#fff; border:1px solid var(--filet); border-radius:4px; letter-spacing:.12em; font-size:13px; }
.totp-pas form, .totp-confirme { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:6px; }
.totp-pas input, .totp-confirme input { padding:9px 12px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; letter-spacing:.18em; width:150px; }
.totp-confirme { margin-top:14px; padding:14px 16px; background:var(--surface2); border-radius:var(--rayon); }
.totp-confirme label { flex:1 0 100%; font-size:13.5px; font-weight:600; color:var(--encre); }
.totp-erreur { flex:1 0 100%; margin-top:4px; color:var(--rouge); font-size:13px; }
.totp-secours { margin-top:14px; padding:16px 18px; background:var(--surface2); border-radius:var(--rayon); border-left:5px solid var(--vermillon); }
.totp-secours b { color:var(--encre); }
.codes-secours { list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:8px; margin:12px 0; }
.codes-secours li { padding:8px 10px; background:#fff; border:1px solid var(--filet); border-radius:6px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:14px; letter-spacing:.06em; text-align:center; }
.totp-secours .lien-bouton { margin-right:8px; }

/* ── tournée de l'assistant (palier 3) ── */
.sous-titre { margin:18px 0 8px; font-size:13px; font-weight:600; color:var(--encre); letter-spacing:.02em; }
.regle { margin:0 0 10px; padding:12px 14px; border:1px solid var(--filet); border-left:4px solid var(--encre); border-radius:var(--rayon); background:#fff; }
.regle-tete { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.regle-tete b { color:var(--encre); font-size:14.5px; }
.regle-quoi { margin-top:5px; font-size:12.5px; color:var(--discret); }
.regle-quoi code { background:var(--surface2); padding:1px 5px; border-radius:4px; }
.regle-condition { margin-top:6px; font-size:13px; color:var(--texte); font-style:italic; }
.regle-boutons { margin-top:9px; display:flex; gap:6px; flex-wrap:wrap; }
.regle-form { margin:12px 0; padding:14px 16px; background:var(--surface2); border-radius:var(--rayon); }
.regle-form label { display:block; margin:10px 0 4px; font-size:12.5px; font-weight:600; color:var(--encre); }
.regle-form input, .regle-form select, .regle-form textarea { width:100%; padding:8px 10px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:13.5px; background:#fff; }
.regle-form textarea { resize:vertical; }
.trois-champs { display:grid; grid-template-columns:1fr 1fr 130px; gap:10px; }
@media (max-width:820px) { .trois-champs { grid-template-columns:1fr; } }
.regle-erreur { margin-top:8px; }
.decisions { display:flex; flex-direction:column; }
.decision { display:flex; gap:10px; align-items:flex-start; padding:8px 0; border-top:1px solid var(--filet); font-size:13px; }
.decision .badge { flex:none; margin-top:1px; }
.decision-txt { flex:1; min-width:0; }
.decision-txt b { color:var(--encre); }
.decision-txt span { display:block; color:var(--discret); font-size:12.5px; }
.decision-quand { flex:none; color:var(--discret); font-size:11.5px; white-space:nowrap; }

/* ── courriels ── */
.tableau-courriels { width:100%; border-collapse:collapse; }
.tableau-courriels th { text-align:left; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--discret); font-weight:600; padding:8px 10px; border-bottom:1px solid var(--filet); white-space:nowrap; }
.tableau-courriels td { padding:9px 10px; border-bottom:1px solid var(--filet); vertical-align:top; font-size:13.5px; }
.tableau-courriels tbody tr { cursor:pointer; }
.tableau-courriels tbody tr:hover { background:var(--surface2); }
.tableau-courriels tr.ligne-souci { background:var(--rouge-fond); }
.tableau-courriels tr.ligne-souci:hover { background:#F7DDD9; }
.col-quand b { display:block; color:var(--encre); white-space:nowrap; }
.col-quand span { color:var(--discret); font-size:11.5px; }
.col-projet { white-space:nowrap; color:var(--discret); font-size:12.5px; }
.col-sens { text-align:center; width:26px; }
.fleche { font-size:15px; font-weight:700; }
.fleche.envoye { color:var(--bleu); }
.fleche.recu { color:var(--vert); }
.col-adresse b { color:var(--encre); overflow-wrap:anywhere; }
.col-adresse span, .col-objet span { display:block; color:var(--discret); font-size:11.5px; }
.col-objet { max-width:340px; }
.col-objet span.err { color:var(--rouge); }
.col-etat, .col-parcours, .col-actions { white-space:nowrap; }
.parcours { display:inline-flex; align-items:center; gap:5px; }
.parcours .etape { width:11px; height:11px; border-radius:50%; background:var(--filet); display:inline-block; position:relative; }
.parcours .etape + .etape::before { content:""; position:absolute; left:-6px; top:5px; width:6px; height:1px; background:var(--filet); }
.parcours .etape.faite { background:var(--encre); }
.parcours .etape.arret { background:var(--rouge); }
.chrono { list-style:none; margin:8px 0 16px; padding:0; border-left:2px solid var(--filet); }
.chrono li { position:relative; padding:5px 0 5px 18px; font-size:13.5px; }
.chrono li::before { content:""; position:absolute; left:-6px; top:11px; width:10px; height:10px; border-radius:50%; background:var(--encre); }
.chrono li.souci::before { background:var(--rouge); }
.chrono li b { color:var(--encre); margin-right:8px; }
.chrono li span { color:var(--discret); }
.bloc-champs { margin:14px 0; }
.bloc-champs h3, .dialogue-form h3 { font-size:12.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--discret); margin:14px 0 6px; }
.champ { display:flex; gap:12px; padding:5px 0; border-bottom:1px solid var(--filet); font-size:13.5px; }
.champ span { flex:0 0 190px; color:var(--discret); }
.champ b { color:var(--encre); font-weight:600; overflow-wrap:anywhere; }
.courriel-texte { max-height:340px; overflow:auto; white-space:pre-wrap; }
.manques { margin:4px 0 10px 18px; font-size:13.5px; }
.manques li { margin-bottom:5px; }
.filtres .large { flex:1 1 220px; }
.recap-etats { display:flex; gap:7px; flex-wrap:wrap; margin:0 0 14px; }
.pastille-etat { display:inline-flex; align-items:center; gap:6px; padding:5px 11px; border:1px solid var(--filet); border-radius:20px; background:#fff; font-size:12.5px; color:var(--texte); cursor:pointer; }
.pastille-etat b { font-weight:600; color:var(--encre); }
.pastille-etat:hover { border-color:var(--encre); }
.pastille-etat.choisie { background:var(--encre); color:#fff; border-color:var(--encre); }
.pastille-etat.choisie b { color:#fff; }
.mention-audit { display:inline-block; margin-left:6px; padding:0 6px; border-radius:4px; background:var(--surface2); color:var(--discret); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; vertical-align:middle; }
.bandeau-nouveau { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 16px; padding:11px 15px; background:var(--encre); color:#fff; border-radius:var(--rayon); text-decoration:none; font-size:13.5px; }
.bandeau-nouveau b { background:var(--vermillon); color:#fff; border-radius:12px; padding:1px 9px; font-weight:600; }
.bandeau-nouveau span { margin-left:auto; color:#B8BEC6; font-size:12.5px; white-space:nowrap; }
.bandeau-nouveau:hover span { color:#fff; }

/* Le texte d'une note proposée par l'assistant : montré en entier et modifiable avant écriture. */
.proposition-note{width:100%;margin:8px 0 6px;padding:8px 10px;border:1px solid var(--trait);border-radius:8px;
  font:inherit;font-size:.92rem;line-height:1.5;background:#fff;color:var(--encre);resize:vertical}
.proposition-note:disabled{background:#f6f5f2;color:#666}

/* Page Campagnes : l'entonnoir en six chiffres, lus dans les routes des projets. */
.campagne-definition { background:var(--gris-fond); border-left:4px solid var(--encre); padding:12px 16px; border-radius:6px; margin-bottom:16px; font-size:13.5px; line-height:1.55; }
.campagne-definition b { color:var(--encre); }
.entonnoir { display:grid; grid-template-columns:repeat(6, minmax(110px,1fr)); gap:10px; margin:10px 0 14px; }
.entonnoir .etape-e { background:var(--blanc); border:1px solid var(--filet); border-radius:var(--rayon); padding:10px 12px; }
.entonnoir .etape-e span { display:block; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--discret); }
.entonnoir .etape-e b { display:block; font-size:22px; color:var(--encre); margin-top:2px; }
.entonnoir .etape-e i { display:block; font-style:normal; font-size:12px; color:var(--discret); }
.entonnoir .etape-e.attente { border-style:dashed; } .entonnoir .etape-e.attente b { color:var(--discret); font-size:15px; }
.tableau-zones td.num, .tableau-zones th.num { text-align:right; white-space:nowrap; }
.tableau-zones td.taux { color:var(--discret); font-size:12px; }
.campagne-sources { font-size:12px; color:var(--discret); margin-top:6px; }
.campagne-sources .badge { margin-right:6px; }
.reponses-liste li { display:flex; gap:10px; align-items:baseline; padding:6px 0; border-bottom:1px solid var(--filet); font-size:13.5px; }
.reponses-liste li time { color:var(--discret); font-size:12.5px; white-space:nowrap; }
.reponses-liste li .lien-bouton { margin-left:auto; }
.form-ligne { display:flex; gap:10px; flex-wrap:wrap; align-items:end; margin-top:10px; }
.form-ligne label { display:block; font-size:11.5px; color:var(--discret); margin-bottom:3px; }
.form-ligne input, .form-ligne select, .form-ligne textarea { padding:7px 10px; border:1px solid #CBD2D9; border-radius:6px; font:inherit; font-size:13.5px; background:#fff; }
.form-ligne textarea { width:100%; min-height:90px; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:12.5px; }
@media (max-width:900px) { .entonnoir { grid-template-columns:repeat(3, 1fr); } }
