/* ══════════════════════════════════════════════════════════════════════
   EXPÉRIA PARK — SYSTÈME DE DESIGN
   Dérivé du CSS des maquettes validées. Les déclarations en viennent
   telles quelles ; seuls les noms de classes sont traduits vers ceux que
   l'application émet. Modifier une valeur ici, c'est modifier la maquette.
   ══════════════════════════════════════════════════════════════════════ */

:root {
  --ep-rail-fond: #3A2418;
  --ep-encre: #2B1D14;
  --ep-corail: #E96646;
  --ep-corail-fonce: #CF5039;
  --ep-corail-voile: #FDEEE9;
  --ep-sable: #FFEDC4;
  --ep-sable-voile: #FDF6E7;
  --ep-dore: #F2D49C;
  --ep-canvas: #F7F6F4;
  --ep-surface: #FFF;
  --ep-surface-2: #FBFAF8;
  --ep-ligne: #E7E3DC;
  --ep-ligne-forte: #D8D2C8;
  --ep-texte: #2B1D14;
  --ep-texte-2: #6B5B4D;
  --ep-texte-3: #968678;
  --ep-ok: #3F7A34;
  --ep-ok-voile: #EDF6EA;
  --ep-ok-bord: #C4DCBB;
  --ep-attn: #B47512;
  --ep-attn-voile: #FEF6E7;
  --ep-attn-bord: #EBD49A;
  --ep-alerte: #C0392B;
  --ep-alerte-voile: #FDEDEB;
  --ep-alerte-bord: #EFC0B9;
  --ep-info: #41598F;
  --ep-info-voile: #EDF1F9;
  --ep-info-bord: #BFD3EC;
  --ep-violet: #6A4A9E;
  --ep-violet-voile: #F3EFFA;
  --ep-violet-bord: #D6C9EC;
  --ep-st-nouveau: #41598F;
  --ep-st-nouveau-v: #EDF1F9;
  --ep-st-cours: #B47512;
  --ep-st-cours-v: #FEF6E7;
  --ep-st-attente: #6A4A9E;
  --ep-st-attente-v: #F3EFFA;
  --ep-st-resolu: #3F7A34;
  --ep-st-resolu-v: #EDF6EA;
  --ep-st-clos: #8B857D;
  --ep-st-clos-v: #F3F2F0;
  --ep-cat-resto: #C9752B;
  --ep-cat-billet: #41598F;
  --ep-cat-resa: #6A4A9E;
  --ep-cat-accueil: #2E7D6B;
  --ep-cat-secu: #C0392B;
  --ep-cat-prop: #3F7A34;
  --ep-cat-info: #8B857D;
  --ep-r-1: 6px;
  --ep-r-2: 10px;
  --ep-r-3: 999px;
  --ep-om-1: 0 1px 2px rgba(43,29,20,.06);
  --ep-om-2: 0 4px 16px rgba(43,29,20,.08);
  --ep-om-3: 0 16px 48px rgba(43,29,20,.16);
  --ep-f-ui: 'Figtree',system-ui,sans-serif;
  --ep-f-titre: 'Raleway',sans-serif;
  --ep-f-data: 'IBM Plex Mono',monospace;
  --ep-f-marque: 'Londrina Solid',serif;
}


/* ─── Coquille et composants ─── */

* {box-sizing:border-box;margin:0;padding:0 }
body {font-family:var(--ep-f-ui);font-size:14px;line-height:1.45;color:var(--ep-texte);background:var(--ep-canvas);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;height:100vh;overflow:hidden }
button,input,select,textarea {font:inherit;color:inherit }
button {cursor:pointer;background:none;border:0 }
a {color:inherit;text-decoration:none }
.ic {width:18px;height:18px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round }
.ic-s {width:15px;height:15px }
.ic-xs {width:13px;height:13px }
.ep-data {font-family:var(--ep-f-data);font-size:.88em;letter-spacing:-.01em }
.ep-faible {color:var(--ep-texte-3) }
:focus-visible {outline:2px solid var(--ep-corail);outline-offset:2px;border-radius:4px }
.ep-app {display:grid;grid-template-columns:238px 1fr;height:100vh;overflow:hidden }
/* RAIL */
.ep-rail {background:var(--ep-rail-fond);color:var(--ep-sable);display:flex;flex-direction:column;overflow:hidden }
.ep-rail__marque {padding:18px 18px 14px;display:flex;align-items:center;gap:10px }
.ep-rail__logo {width:30px;height:30px;border-radius:8px;background:var(--ep-corail);display:grid;place-items:center;flex:0 0 auto }
.ep-rail__logo svg {width:18px;height:18px;stroke:#fff;stroke-width:2;fill:none }
.ep-rail__nom {font-family:var(--ep-f-marque);font-size:19px;line-height:1;color:#fff }
.ep-rail__nom span {display:block;font-family:var(--ep-f-ui);font-size:9.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,237,196,.5);margin-top:3px }
.ep-rail__parc {margin:2px 12px 12px;padding:7px 10px 8px;border-radius:var(--ep-r-1);background:rgba(255,255,255,.06);display:grid;gap:2px;width:calc(100% - 24px);text-align:left }
.ep-rail__parc b {font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,237,196,.45) }
.ep-rail__parc i {font-style:normal;font-size:13px;font-weight:600;color:#fff }
.ep-rail__cmd {margin:0 12px 14px;padding:8px 10px;width:calc(100% - 24px);border-radius:var(--ep-r-1);border:1px solid rgba(255,255,255,.13);display:flex;align-items:center;gap:8px;color:rgba(255,237,196,.6);font-size:13px }
.ep-rail__cmd:hover {border-color:rgba(255,255,255,.3);color:#fff }
.ep-rail__cmd kbd {margin-left:auto;font-family:var(--ep-f-data);font-size:10px;padding:2px 5px;border-radius:4px;background:rgba(0,0,0,.25) }
.ep-rail__nav {flex:1;overflow-y:auto;padding:0 12px }
.ep-rail__nav a {display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:var(--ep-r-1);color:rgba(255,237,196,.72);font-size:13.5px;font-weight:500;margin-bottom:2px }
.ep-rail__nav a:hover {background:rgba(255,255,255,.07);color:#fff }
.ep-rail__nav a.on {background:var(--ep-corail);color:#fff;font-weight:600 }
.ep-rail__nav .ep-pastille {margin-left:auto;font-family:var(--ep-f-data);font-size:10.5px;padding:1px 6px;border-radius:var(--ep-r-3);background:rgba(0,0,0,.22) }
.ep-rail__nav .ep-pastille.ep-n--chaud {background:var(--ep-corail);color:#fff }
.ep-rail__nav a.on .ep-pastille {background:rgba(255,255,255,.22) }
.ep-rail__sep {height:1px;background:rgba(255,255,255,.09);margin:12px 10px }
.ep-rail__moi {padding:12px;border-top:1px solid rgba(255,255,255,.09);display:flex;align-items:center;gap:10px }
.ep-rail__moi b {display:block;font-size:13px;color:#fff;font-weight:600 }
.ep-rail__moi i {font-style:normal;font-size:11px;color:rgba(255,237,196,.45) }
/* AVATARS */
.ep-av {border-radius:var(--ep-r-3);display:grid;place-items:center;font-weight:700;flex:0 0 auto;width:32px;height:32px;font-size:12px;color:#fff }
.ep-av--sm {width:24px;height:24px;font-size:9.5px }
.ep-av--lg {width:46px;height:46px;font-size:16px }
.ep-av--xs {width:20px;height:20px;font-size:8.5px }
.ep-av-1 {background:#C9752B }
.ep-av-2 {background:#41598F }
.ep-av-3 {background:#6A4A9E }
.ep-av-4 {background:#2E7D6B }
.ep-av-5 {background:#C0392B }
.ep-av-6 {background:#3F7A34 }
.ep-av-7 {background:#8B6F47 }
.ep-av--vide {background:var(--ep-attn-voile);color:var(--ep-attn);border:1px dashed var(--ep-attn-bord) }
/* ZONE */
.ep-zone {display:flex;flex-direction:column;overflow:hidden;min-width:0 }
.ep-entete {background:var(--ep-surface);border-bottom:1px solid var(--ep-ligne);padding:13px 22px;display:flex;align-items:center;gap:14px;flex:0 0 auto }
.ep-entete h1 {font-family:var(--ep-f-titre);font-size:19px;font-weight:700;letter-spacing:-.01em }
.ep-entete .ep-entete__sous {font-size:12.5px;color:var(--ep-texte-3);margin-top:1px }
.ep-entete .ep-entete__actions {margin-left:auto;display:flex;gap:8px;align-items:center }
.ep-b {display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 12px;border-radius:var(--ep-r-1);font-size:13px;font-weight:600;border:1px solid var(--ep-ligne-forte);background:var(--ep-surface);white-space:nowrap }
.ep-b:hover {background:var(--ep-surface-2);border-color:var(--ep-texte-3) }
.ep-b--1 {background:var(--ep-corail);border-color:var(--ep-corail);color:#fff }
.ep-b--1:hover {background:var(--ep-corail-fonce);border-color:var(--ep-corail-fonce) }
.ep-b--ok {background:var(--ep-ok);border-color:var(--ep-ok);color:#fff }
.ep-b--ok:hover {background:#356428;border-color:#356428 }
.ep-b--fantome {border-color:transparent;background:transparent;color:var(--ep-texte-2) }
.ep-b--fantome:hover {background:var(--ep-surface-2);border-color:var(--ep-ligne) }
.ep-b--sm {padding:5px 9px;font-size:12.5px }
.ep-b--ic {padding:7px }
.ep-b--ic.ep-b--sm {padding:5px }
.ep-filtres {background:var(--ep-surface);border-bottom:1px solid var(--ep-ligne);padding:9px 22px;display:flex;align-items:center;gap:8px;flex:0 0 auto;flex-wrap:wrap }
.ep-cherche {position:relative;flex:1;max-width:320px;min-width:170px }
.ep-cherche svg {position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ep-texte-3) }
.ep-cherche input {width:100%;padding:7px 12px 7px 32px;border:1px solid var(--ep-ligne-forte);border-radius:var(--ep-r-1);background:var(--ep-surface-2);font-size:13px }
.ep-cherche input:focus {outline:none;border-color:var(--ep-corail);background:#fff;box-shadow:0 0 0 3px var(--ep-corail-voile) }
.ep-puce {display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border:1px solid var(--ep-ligne-forte);border-radius:var(--ep-r-1);font-size:12.5px;font-weight:500;color:var(--ep-texte-2);background:var(--ep-surface);white-space:nowrap }
.ep-puce:hover {border-color:var(--ep-texte-3);color:var(--ep-texte) }
.ep-puce.on {background:var(--ep-sable-voile);border-color:var(--ep-dore);color:var(--ep-encre);font-weight:600 }
.ep-bascule-vue {display:inline-flex;padding:2px;background:var(--ep-canvas);border:1px solid var(--ep-ligne);border-radius:var(--ep-r-1);margin-left:auto }
.ep-bascule-vue button {padding:5px 9px;border-radius:4px;color:var(--ep-texte-3);display:grid;place-items:center }
.ep-bascule-vue button.on {background:var(--ep-surface);color:var(--ep-encre);box-shadow:var(--ep-om-1) }
.ep-corps {flex:1;display:grid;grid-template-columns:196px 1fr;overflow:hidden;min-height:0 }
.ep-segments {border-right:1px solid var(--ep-ligne);background:var(--ep-surface);overflow-y:auto;padding:13px 10px }
.ep-segments__t {font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ep-texte-3);padding:0 8px 7px }
.ep-segments a {display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--ep-r-1);font-size:13px;color:var(--ep-texte-2);margin-bottom:1px }
.ep-segments a:hover {background:var(--ep-surface-2);color:var(--ep-texte) }
.ep-segments a.on {background:var(--ep-sable-voile);color:var(--ep-encre);font-weight:600 }
.ep-segments a .ep-n {margin-left:auto;font-family:var(--ep-f-data);font-size:11px;color:var(--ep-texte-3) }
.ep-segments a.on .ep-n {color:var(--ep-corail-fonce) }
.ep-segments__sep {height:1px;background:var(--ep-ligne);margin:12px 8px }
.ep-contenu {overflow:auto;min-width:0 }
.ep-contenu--pad {padding:18px 22px }
/* PASTILLES */
.ep-pt {width:7px;height:7px;border-radius:var(--ep-r-3);display:inline-block;flex:0 0 auto }
.ep-et {display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--ep-r-3);font-size:11px;font-weight:600;white-space:nowrap;border:1px solid transparent }
.ep-et--nouveau {background:var(--ep-st-nouveau-v);color:var(--ep-st-nouveau);border-color:#CBD8EC }
.ep-et--cours {background:var(--ep-st-cours-v);color:var(--ep-st-cours);border-color:var(--ep-attn-bord) }
.ep-et--attente {background:var(--ep-st-attente-v);color:var(--ep-st-attente);border-color:var(--ep-violet-bord) }
.ep-et--resolu {background:var(--ep-st-resolu-v);color:var(--ep-st-resolu);border-color:var(--ep-ok-bord) }
.ep-et--clos {background:var(--ep-st-clos-v);color:var(--ep-st-clos);border-color:#E2E0DC }
.ep-et--ok {background:var(--ep-ok-voile);color:var(--ep-ok);border-color:var(--ep-ok-bord) }
.ep-et--attn {background:var(--ep-attn-voile);color:var(--ep-attn);border-color:var(--ep-attn-bord) }
.ep-et--alerte {background:var(--ep-alerte-voile);color:var(--ep-alerte);border-color:var(--ep-alerte-bord) }
.ep-et--info {background:var(--ep-info-voile);color:var(--ep-info);border-color:var(--ep-info-bord) }
.ep-et--violet {background:var(--ep-violet-voile);color:var(--ep-violet);border-color:var(--ep-violet-bord) }
.ep-et--n {background:var(--ep-canvas);color:var(--ep-texte-2);border-color:var(--ep-ligne) }
.ep-et .ep-pt {width:6px;height:6px;background:currentColor }
.ep-prio {display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;white-space:nowrap }
.ep-prio__b {display:flex;gap:2px;align-items:flex-end;height:13px }
.ep-prio__b i {width:3.5px;background:var(--ep-ligne-forte);border-radius:1px;display:block }
.ep-prio__b i:nth-child(1) {height:5px }
.ep-prio__b i:nth-child(2) {height:9px }
.ep-prio__b i:nth-child(3) {height:13px }
.ep-prio--urgente {color:var(--ep-alerte) }
.ep-prio--urgente i {background:var(--ep-alerte) }
.ep-prio--haute {color:#C9752B }
.ep-prio--haute i:nth-child(-n+2) {background:#C9752B }
.ep-prio--normale {color:var(--ep-info) }
.ep-prio--normale i:nth-child(1) {background:var(--ep-info) }
.ep-prio--faible {color:var(--ep-texte-3) }
.ep-cat {display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--ep-texte-2);white-space:nowrap }
.ep-cat i {width:8px;height:8px;border-radius:2px;display:block;flex:0 0 auto }
.ep-cat--resto i {background:var(--ep-cat-resto) }
.ep-cat--billet i {background:var(--ep-cat-billet) }
.ep-cat--resa i {background:var(--ep-cat-resa) }
.ep-cat--accueil i {background:var(--ep-cat-accueil) }
.ep-cat--secu i {background:var(--ep-cat-secu) }
.ep-cat--prop i {background:var(--ep-cat-prop) }
.ep-cat--info i {background:var(--ep-cat-info) }
.ep-sla {display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;white-space:nowrap }
.ep-sla__b {width:46px;height:5px;border-radius:var(--ep-r-3);background:var(--ep-ligne);overflow:hidden;flex:0 0 auto }
.ep-sla__b i {display:block;height:100%;border-radius:var(--ep-r-3) }
/* TABLEAU */
.ep-tbl {width:100%;border-collapse:separate;border-spacing:0;background:var(--ep-surface) }
.ep-tbl thead th {position:sticky;top:0;z-index:2;background:var(--ep-surface-2);border-bottom:1px solid var(--ep-ligne-forte);padding:9px 13px;text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ep-texte-3);white-space:nowrap }
.ep-tbl td {padding:10px 13px;border-bottom:1px solid var(--ep-ligne);vertical-align:middle }
.ep-tbl tbody tr {cursor:pointer }
.ep-tbl tbody tr:hover {background:var(--ep-sable-voile) }
.ep-tbl tbody tr td:first-child {border-left:3px solid transparent }
tr[data-st=nouveau] td:first-child {border-left-color:var(--ep-st-nouveau) }
tr[data-st=en_cours] td:first-child {border-left-color:var(--ep-st-cours) }
tr[data-st=en_attente] td:first-child {border-left-color:var(--ep-st-attente) }
tr[data-st=resolu] td:first-child {border-left-color:var(--ep-st-resolu) }
tr.ep-neuf .ep-cli__n {font-weight:700 }
tr.ep-neuf .ep-cli__n::after {content:"";width:6px;height:6px;border-radius:var(--ep-r-3);background:var(--ep-corail);display:inline-block;margin-left:6px;vertical-align:middle }
.ep-tbl .ep-cc {width:34px;padding-right:0 }
input[type=checkbox] {width:15px;height:15px;accent-color:var(--ep-corail);cursor:pointer }
.ep-cli__n {font-weight:600;font-size:13.5px }
.ep-cli__s {font-size:11.5px;color:var(--ep-texte-3) }
.ep-motif {max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--ep-texte-2) }
.ep-reg-pied {padding:11px 18px;display:flex;align-items:center;gap:12px;color:var(--ep-texte-3);font-size:12.5px;border-top:1px solid var(--ep-ligne);background:var(--ep-surface);position:sticky;bottom:0 }
/* CARTES */
.ep-grille {display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px }
.ep-c3 {grid-column:span 3 }
.ep-c4 {grid-column:span 4 }
.ep-c5 {grid-column:span 5 }
.ep-c6 {grid-column:span 6 }
.ep-c7 {grid-column:span 7 }
.ep-c8 {grid-column:span 8 }
.ep-c12 {grid-column:span 12 }
.ep-carte {background:var(--ep-surface);border:1px solid var(--ep-ligne);border-radius:var(--ep-r-2);box-shadow:var(--ep-om-1) }
.ep-carte__tete {padding:12px 15px;border-bottom:1px solid var(--ep-ligne);display:flex;align-items:center;justify-content:space-between;gap:10px }
.ep-carte__tete h3 {font-family:var(--ep-f-titre);font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px }
.ep-carte__corps {padding:15px }
.ep-kpi {border:1px solid var(--ep-ligne);border-radius:var(--ep-r-2);padding:13px 15px;background:var(--ep-surface);display:grid;gap:3px;box-shadow:var(--ep-om-1);position:relative;overflow:hidden }
.ep-kpi::before {content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ep-ligne-forte) }
.ep-kpi b {font-family:var(--ep-f-data);font-size:26px;font-weight:500;letter-spacing:-.02em;line-height:1.05 }
.ep-kpi span {font-size:11px;color:var(--ep-texte-3);font-weight:600;text-transform:uppercase;letter-spacing:.05em }
.ep-kpi i {font-style:normal;font-size:11.5px;color:var(--ep-texte-3) }
.ep-kpi--neutre::before {background:var(--ep-corail) }
.ep-kpi--neutre b {color:var(--ep-corail-fonce) }
.ep-kpi--danger::before {background:var(--ep-alerte) }
.ep-kpi--danger b {color:var(--ep-alerte) }
.ep-kpi--danger {background:var(--ep-alerte-voile);border-color:var(--ep-alerte-bord) }
.ep-kpi--warning::before {background:var(--ep-attn) }
.ep-kpi--warning b {color:var(--ep-attn) }
.ep-kpi--warning {background:var(--ep-attn-voile);border-color:var(--ep-attn-bord) }
.ep-kpi--success::before {background:var(--ep-ok) }
.ep-kpi--success b {color:var(--ep-ok) }
.ep-kpi--info::before {background:var(--ep-info) }
.ep-kpi--info b {color:var(--ep-info) }
.ep-hausse {color:var(--ep-ok);font-weight:600 }
.ep-baisse {color:var(--ep-alerte);font-weight:600 }
.ep-ligne-item {display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--ep-ligne);font-size:13px }
.ep-ligne-item:last-child {border-bottom:0 }
.ep-ligne-item__t {flex:1;min-width:0 }
.ep-ligne-item__t strong {display:block;font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.ep-ligne-item__t small {color:var(--ep-texte-3);font-size:11.5px }
.ep-jauge {height:7px;background:var(--ep-ligne);border-radius:var(--ep-r-3);overflow:hidden;margin:5px 0 3px;display:flex }
.ep-jauge i {display:block;height:100% }
.ep-legende {display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-size:11.5px;color:var(--ep-texte-2) }
.ep-legende span {display:inline-flex;align-items:center;gap:5px }
.ep-legende i {width:9px;height:9px;border-radius:2px;display:block }
/* ══════════ FICHE : menu vertical + zone pleine largeur ══════════ */
.ep-dossier {display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0 }
/* Bandeau de contexte, toujours visible */
.ep-ctx {background:var(--ep-surface);border-bottom:1px solid var(--ep-ligne);flex:0 0 auto }
.ep-ctx__h {padding:13px 22px 11px;display:flex;align-items:center;gap:14px }
.ep-ctx__h h2 {font-family:var(--ep-f-titre);font-size:19px;font-weight:700;letter-spacing:-.01em }
.ep-ctx__act {margin-left:auto;display:flex;gap:8px;align-items:center }
.ep-ctx__p {display:flex;align-items:flex-end;gap:12px;padding:0 22px 12px;flex-wrap:wrap }
.ep-champ {display:grid;gap:3px }
.ep-champ>span {font-size:9.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ep-texte-3) }
.ep-champ select,.ep-champ input {height:32px;padding:5px 9px;font-size:12.5px;border:1px solid var(--ep-ligne-forte);
  border-radius:var(--ep-r-1);background:var(--ep-surface);min-width:120px }
.ep-champ select:focus,.ep-champ input:focus {outline:none;border-color:var(--ep-corail);box-shadow:0 0 0 3px var(--ep-corail-voile) }
.ep-champ--st select {border-left:4px solid var(--ep-st-cours);font-weight:600 }
.ep-ctx__sla {margin-left:auto;display:flex;align-items:center;gap:11px;padding:8px 13px;border-radius:var(--ep-r-2);
  background:var(--ep-alerte-voile);border:1px solid var(--ep-alerte-bord) }
.ep-ctx__sla b {font-family:var(--ep-f-data);font-size:16px;color:var(--ep-alerte) }
.ep-ctx__sla span {font-size:11px;font-weight:600;color:var(--ep-alerte);text-transform:uppercase;letter-spacing:.05em }
.ep-ctx__sla small {display:block;font-size:11px;color:#94271C;font-weight:400;text-transform:none;letter-spacing:0 }
/* Menu vertical du dossier */
.ep-dcorps {flex:1;display:grid;grid-template-columns:216px 1fr;overflow:hidden;min-height:0 }
.ep-dmenu {border-right:1px solid var(--ep-ligne);background:var(--ep-surface);overflow-y:auto;padding:12px 10px }
.ep-dmenu__t {font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ep-texte-3);padding:12px 8px 6px }
.ep-dmenu__t:first-child {padding-top:0 }
.ep-dmenu button {width:100%;display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:var(--ep-r-1);
  font-size:13px;font-weight:500;color:var(--ep-texte-2);margin-bottom:1px;text-align:left;border-left:3px solid transparent }
.ep-dmenu button:hover {background:var(--ep-surface-2);color:var(--ep-texte) }
.ep-dmenu button.on {background:var(--ep-corail-voile);color:var(--ep-corail-fonce);font-weight:600;border-left-color:var(--ep-corail) }
.ep-dmenu button .ep-n {margin-left:auto;font-family:var(--ep-f-data);font-size:10.5px;padding:1px 6px;border-radius:var(--ep-r-3);
  background:var(--ep-canvas);color:var(--ep-texte-3);font-weight:500 }
.ep-dmenu button.on .ep-n {background:#fff;color:var(--ep-corail-fonce) }
.ep-dmenu button .ep-n--chaud {background:var(--ep-corail);color:#fff }
.ep-dmenu__sep {height:1px;background:var(--ep-ligne);margin:10px 8px }
.ep-dpan {display:none;overflow:hidden;min-width:0;flex-direction:column }
.ep-dpan.on {display:flex }
.ep-dpan__scroll {overflow-y:auto;flex:1;min-width:0 }
/* Section 1 : conversation */
.rec-chat {flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:14px;background:var(--ep-canvas) }
.ep-bulle {max-width:min(760px,72%);display:grid;gap:5px }
.ep-bulle__h {display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ep-texte-3) }
.ep-bulle__b {padding:12px 15px;border-radius:var(--ep-r-2);font-size:13.5px;line-height:1.55;border:1px solid var(--ep-ligne);background:var(--ep-surface);box-shadow:var(--ep-om-1) }
.ep-bulle--in .ep-bulle__b {border-top-left-radius:3px;border-left:3px solid var(--ep-info) }
.ep-bulle--out {align-self:flex-end }
.ep-bulle--out .ep-bulle__h {justify-content:flex-end }
.ep-bulle--out .ep-bulle__b {background:var(--ep-corail-voile);border-color:#F3CDC2;border-top-right-radius:3px;border-right:3px solid var(--ep-corail) }
.ep-bulle--note {align-self:center;max-width:min(820px,84%) }
.ep-bulle--note .ep-bulle__b {background:var(--ep-attn-voile);border-color:var(--ep-attn-bord);border-left:3px solid var(--ep-attn);font-size:13px }
.ep-evt {align-self:center;font-size:11.5px;color:var(--ep-texte-3);display:flex;align-items:center;gap:8px }
.ep-evt::before,.ep-evt::after {content:"";height:1px;width:40px;background:var(--ep-ligne) }
.rec-composer {background:var(--ep-surface);border-top:1px solid var(--ep-ligne);flex:0 0 auto }
.ep-compo__o {display:flex;gap:2px;padding:8px 20px 0 }
.ep-compo__o button {padding:7px 12px;border-radius:var(--ep-r-1) var(--ep-r-1) 0 0;font-size:12.5px;font-weight:600;color:var(--ep-texte-3);display:flex;align-items:center;gap:6px;border-bottom:2px solid transparent }
.ep-compo__o button.on {background:var(--ep-canvas);color:var(--ep-corail-fonce);border-bottom-color:var(--ep-corail) }
.ep-compo__o button.on[data-c=note] {background:var(--ep-attn-voile);color:var(--ep-attn);border-bottom-color:var(--ep-attn) }
.ep-compo__b {display:flex;align-items:center;gap:3px;padding:7px 20px;border-top:1px solid var(--ep-ligne);background:var(--ep-surface-2) }
.ep-compo__b button {width:28px;height:28px;display:grid;place-items:center;border-radius:var(--ep-r-1);color:var(--ep-texte-2) }
.ep-compo__b button:hover {background:var(--ep-canvas) }
.ep-compo__b .ep-sep {width:1px;height:18px;background:var(--ep-ligne);margin:0 5px }
.ep-compo__b select {margin-left:auto;height:28px;padding:3px 8px;font-size:12px;border:1px solid var(--ep-ligne-forte);border-radius:var(--ep-r-1);background:var(--ep-surface);max-width:150px }
.rte {padding:13px 22px;min-height:82px;font-size:13.5px;line-height:1.55;color:var(--ep-texte-2) }
.rec-reply-foot {display:flex;align-items:center;gap:9px;padding:10px 22px;border-top:1px solid var(--ep-ligne) }
/* Blocs de section */
.ep-sec {padding:18px 24px }
.ep-sec__t {font-family:var(--ep-f-titre);font-size:15px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:9px }
.ep-sec__t .ep-b {margin-left:auto }
.ep-def {display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13px }
.ep-def dt {color:var(--ep-texte-3);font-size:12px;white-space:nowrap }
.ep-def dd {font-weight:500 }
.ep-def dd a {color:var(--ep-info) }
.ep-vide {padding:36px 20px;text-align:center;color:var(--ep-texte-3);display:grid;gap:7px;justify-items:center }
.ep-vide svg {width:30px;height:30px;color:var(--ep-ligne-forte) }
.ep-chrono {padding:2px 0 }
.ep-ev {display:grid;grid-template-columns:30px 1fr;gap:12px;padding:9px 0;position:relative }
.ep-ev::before {content:"";position:absolute;left:14.5px;top:0;bottom:0;width:1px;background:var(--ep-ligne) }
.ep-ev:first-child::before {top:16px }
.ep-ev:last-child::before {bottom:calc(100% - 16px) }
.ep-ev__m {width:30px;height:30px;border-radius:var(--ep-r-3);display:grid;place-items:center;z-index:1;border:2px solid var(--ep-surface) }
.ep-ev__m svg {width:14px;height:14px }
.ep-ev__c strong {display:block;font-size:13px;font-weight:600 }
.ep-ev__c small {font-size:11.5px;color:var(--ep-texte-3) }
.ep-dcorps {grid-template-columns:180px 1fr }
* {transition:none!important }

/* ─── Réglages ─── */

/* ══════════ RÉGLAGES ══════════ */
.ep-reglages {flex:1;display:grid;grid-template-columns:250px 1fr;overflow:hidden;min-height:0 }
.ep-reglages__rail {border-right:1px solid var(--ep-ligne);background:var(--ep-surface);overflow-y:auto;padding:14px 10px }
.ep-segments__t {font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ep-texte-3);padding:0 8px 8px }
.ep-segments__sep {height:1px;background:var(--ep-ligne);margin:14px 8px 12px }
.ep-reglages__rail a {display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:var(--ep-r-1);font-size:13px;color:var(--ep-texte-2);margin-bottom:2px;line-height:1.35 }
.ep-reglages__rail a:hover {background:var(--ep-surface-2);color:var(--ep-texte) }
.ep-reglages__rail a.on {background:var(--ep-corail-voile);color:var(--ep-corail-fonce);font-weight:600;box-shadow:inset 3px 0 var(--ep-corail) }
.ep-reglages__rail a .ep-pt {margin-left:auto }
.ep-reglages__rail a .ep-n {margin-left:auto;font-family:var(--ep-f-data);font-size:11px;color:var(--ep-texte-3) }
.ep-reglages__corps {overflow-y:auto;padding:24px 28px 40px;max-width:960px }
.ep-reg-tete {margin-bottom:22px }
.ep-reg-tete h2 {font-family:var(--ep-f-titre);font-size:22px;font-weight:700;letter-spacing:-.01em }
.ep-reg-tete p {font-size:13.5px;color:var(--ep-texte-2);margin-top:6px;max-width:680px;line-height:1.6 }
.ep-bloc-r {background:var(--ep-surface);border:1px solid var(--ep-ligne);border-radius:var(--ep-r-2);box-shadow:var(--ep-om-1);margin-bottom:18px;overflow:hidden }
.ep-bloc-r__t {padding:13px 18px;border-bottom:1px solid var(--ep-ligne);display:flex;align-items:flex-start;justify-content:space-between;gap:12px }
.ep-bloc-r__t h3 {font-family:var(--ep-f-titre);font-size:15px;font-weight:700 }
.ep-bloc-r__t .ep-s {font-size:12.5px;color:var(--ep-texte-3);margin-top:3px;line-height:1.45;max-width:520px }
.ep-bloc-r__c {padding:6px 18px 18px }
.ep-bloc-r__c--plein {padding:0 }
.ep-reg-l {display:grid;grid-template-columns:250px 1fr;gap:24px;padding:16px 0;border-bottom:1px solid var(--ep-ligne);align-items:start }
.ep-reg-l:last-child {border-bottom:0 }
.ep-reg-l dt strong,.ep-reg-l>div:first-child strong {display:block;font-size:13.5px;font-weight:600 }
.ep-reg-l dt small,.ep-reg-l>div:first-child small {display:block;font-size:12px;color:var(--ep-texte-3);margin-top:4px;line-height:1.5 }
.ep-reg-l dd {margin:0 }
.ep-reg-l input,.ep-reg-l select,.ep-reg-l textarea {width:100%;padding:9px 12px;border:1px solid var(--ep-ligne-forte);border-radius:var(--ep-r-1);font-size:13.5px;background:var(--ep-surface);font-family:var(--ep-f-ui) }
.ep-reg-l input:focus,.ep-reg-l select:focus,.ep-reg-l textarea:focus {outline:none;border-color:var(--ep-corail);box-shadow:0 0 0 3px var(--ep-corail-voile) }
.ep-reg-l textarea {min-height:78px;resize:vertical;line-height:1.55 }
.ep-aide {font-size:12px;color:var(--ep-texte-3);margin-top:7px;line-height:1.5 }
.ep-duo {display:grid;grid-template-columns:1fr 1fr;gap:12px }
.ep-bascule {width:42px;height:24px;border-radius:var(--ep-r-3);background:var(--ep-ligne-forte);position:relative;cursor:pointer;flex:0 0 auto;border:0;padding:0 }
.ep-bascule::after {content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:var(--ep-r-3);background:#fff;transition:left .16s }
.ep-bascule.on {background:var(--ep-ok) }
.ep-bascule.on::after {left:21px }
.ep-inter {display:flex;align-items:center;gap:11px;font-size:13px }
.ep-reg-pied {position:sticky;bottom:0;background:var(--ep-surface);border-top:1px solid var(--ep-ligne);padding:14px 18px;display:flex;gap:10px;align-items:center;margin:0 -18px -18px;z-index:2 }
.ep-reg-pied .ep-faible {margin-left:auto;font-size:12px }
.ep-onglets2 {display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--ep-ligne);background:var(--ep-surface-2) }
.ep-onglets2 button {padding:11px 14px;font-size:13px;font-weight:600;color:var(--ep-texte-3);border-bottom:2px solid transparent;margin-bottom:-1px }
.ep-onglets2 button.on {color:var(--ep-corail-fonce);border-bottom-color:var(--ep-corail);background:var(--ep-surface) }
.ep-vol {display:none }
.ep-vol.on {display:block }
.ep-conn {display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--ep-ligne) }
.ep-conn:last-child {border-bottom:0 }
.ep-conn__i {width:38px;height:38px;border-radius:var(--ep-r-2);display:grid;place-items:center;flex:0 0 auto }
.ep-conn__t {flex:1;min-width:0 }
.ep-conn__t strong {display:block;font-size:13.5px;font-weight:600 }
.ep-conn__t small {font-size:12px;color:var(--ep-texte-3);line-height:1.45 }
.ep-arbre {display:grid }
.ep-arbre__l {display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--ep-ligne) }
.ep-arbre__l:last-child {border-bottom:0 }
.ep-arbre__l.enf {padding-left:28px;position:relative }
.ep-arbre__l.enf::before {content:"";position:absolute;left:10px;top:50%;width:10px;height:1px;background:var(--ep-ligne-forte) }
.ep-arbre__l strong {font-size:13.5px;font-weight:600 }
.ep-arbre__l .ep-m2 {font-size:12px;color:var(--ep-texte-3);margin-top:2px }
.ep-mots {display:flex;gap:5px;flex-wrap:wrap;margin-top:5px }
.ep-mot {font-family:var(--ep-f-data);font-size:10.5px;padding:1px 7px;border-radius:var(--ep-r-3);background:var(--ep-canvas);color:var(--ep-texte-2) }

/* ─── Réputation ─── */

/* ══════════════ MODULE RÉPUTATION ══════════════ */
.ep-etoiles {display:inline-flex;gap:1.5px;color:var(--ep-dore) }
.ep-etoiles svg {width:14px;height:14px;fill:currentColor;stroke:none }
.ep-etoiles .ep-vide {color:var(--ep-ligne-forte) }
.ep-etoiles--lg svg {width:18px;height:18px }
.ep-note-g {display:inline-flex;align-items:baseline;gap:6px }
.ep-note-g b {font-family:var(--ep-f-data);font-size:15px;font-weight:500 }
/* Répartition par étoile */
.ep-repart {display:grid;gap:6px }
.ep-repart__l {display:grid;grid-template-columns:52px 1fr 46px;align-items:center;gap:9px;font-size:12.5px }
.ep-repart__l span:first-child {color:var(--ep-texte-2);display:flex;align-items:center;gap:4px }
.ep-repart__l b {font-family:var(--ep-f-data);text-align:right;color:var(--ep-texte-2) }
/* Vue scindée : file à gauche, réponse à droite */
.ep-split {flex:1;display:grid;grid-template-columns:400px 1fr;overflow:hidden;min-height:0 }
.ep-file {border-right:1px solid var(--ep-ligne);background:var(--ep-surface);overflow-y:auto }
.ep-file__t {padding:10px 14px;border-bottom:1px solid var(--ep-ligne);font-size:11px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--ep-texte-3);position:sticky;top:0;background:var(--ep-surface);z-index:2;
  display:flex;align-items:center;gap:7px }
.ep-file__t .ep-n {margin-left:auto;font-family:var(--ep-f-data);font-size:11px;font-weight:400 }
.ep-fitem {padding:12px 14px;border-bottom:1px solid var(--ep-ligne);cursor:pointer;display:grid;gap:5px;border-left:3px solid transparent }
.ep-fitem:hover {background:var(--ep-sable-voile) }
.ep-fitem.on {background:var(--ep-corail-voile);border-left-color:var(--ep-corail) }
.ep-fitem--attente {border-left-color:var(--ep-attn) }
.ep-fitem--repondu {border-left-color:var(--ep-ok) }
.ep-fitem--neg {border-left-color:var(--ep-alerte) }
.ep-fitem.on[class*=fitem--] {border-left-color:var(--ep-corail) }
.ep-fitem__h {display:flex;align-items:center;gap:8px }
.ep-fitem__h strong {font-size:13px;font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.ep-fitem__h time {font-family:var(--ep-f-data);font-size:10px;color:var(--ep-texte-3) }
.ep-fitem p {font-size:12.5px;color:var(--ep-texte-2);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden }
.ep-fitem__m {display:flex;align-items:center;gap:8px;font-size:10.5px;color:var(--ep-texte-3) }
/* Panneau de réponse */
.ep-detail {overflow-y:auto;display:flex;flex-direction:column;background:var(--ep-canvas);min-width:0 }
.ep-detail__h {background:var(--ep-surface);border-bottom:1px solid var(--ep-ligne);padding:16px 24px;display:flex;align-items:flex-start;gap:14px }
.ep-detail__b {flex:1;padding:20px 24px;overflow-y:auto }
.ep-avis-txt {background:var(--ep-surface);border:1px solid var(--ep-ligne);border-left:3px solid var(--ep-dore);
  border-radius:var(--ep-r-2);padding:16px 18px;font-size:14px;line-height:1.6;box-shadow:var(--ep-om-1) }
.ep-avis-trad {margin-top:10px;padding:11px 14px;background:var(--ep-info-voile);border:1px solid var(--ep-info-bord);
  border-radius:var(--ep-r-1);font-size:13px;line-height:1.55;color:#2E4372 }
.ep-rep-off {margin-top:16px;background:var(--ep-corail-voile);border:1px solid #F3CDC2;border-left:3px solid var(--ep-corail);
  border-radius:var(--ep-r-2);padding:14px 16px;font-size:13.5px;line-height:1.55 }
.ep-rep-off__h {font-size:11.5px;color:var(--ep-corail-fonce);font-weight:600;margin-bottom:6px;display:flex;align-items:center;gap:6px }
.ep-zone {width:100%;min-height:120px;padding:13px 15px;border:1px solid var(--ep-ligne-forte);border-radius:var(--ep-r-1);
  font-size:13.5px;line-height:1.55;background:var(--ep-surface);resize:vertical }
.ep-zone:focus {outline:none;border-color:var(--ep-corail);box-shadow:0 0 0 3px var(--ep-corail-voile) }
.ep-ia-sugg {background:var(--ep-info-voile);border:1px solid var(--ep-info-bord);border-radius:var(--ep-r-2);padding:13px 15px;margin-bottom:12px }
.ep-ia-sugg__h {display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--ep-info);
  text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px }
.ep-ia-sugg p {font-size:13.5px;line-height:1.55;color:#2E4372 }
.ep-theme {display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--ep-r-3);
  font-size:12.5px;font-weight:500;border:1px solid var(--ep-ligne-forte);background:var(--ep-surface);cursor:pointer }
.ep-theme:hover {border-color:var(--ep-texte-3) }
.ep-theme b {font-family:var(--ep-f-data);font-size:11.5px }
.ep-theme--pos {background:var(--ep-ok-voile);border-color:var(--ep-ok-bord);color:var(--ep-ok) }
.ep-theme--neg {background:var(--ep-alerte-voile);border-color:var(--ep-alerte-bord);color:var(--ep-alerte) }
.ep-theme--neu {background:var(--ep-canvas);color:var(--ep-texte-2) }
.ep-verbatim {background:var(--ep-surface);border:1px solid var(--ep-ligne);border-radius:var(--ep-r-2);padding:13px 15px;
  font-size:13px;line-height:1.55;color:var(--ep-texte-2);box-shadow:var(--ep-om-1) }
.ep-verbatim__h {display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ep-texte-3);margin-bottom:7px }
.ep-nps {display:grid;grid-template-columns:repeat(3,1fr);gap:10px }
.ep-nps__c {border:1px solid var(--ep-ligne);border-radius:var(--ep-r-2);padding:12px;text-align:center;background:var(--ep-surface) }
.ep-nps__c b {display:block;font-family:var(--ep-f-data);font-size:24px;line-height:1.1 }
.ep-nps__c span {font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ep-texte-3) }
.ep-nps--prom {background:var(--ep-ok-voile);border-color:var(--ep-ok-bord) }
.ep-nps--prom b {color:var(--ep-ok) }
.ep-nps--pass {background:var(--ep-attn-voile);border-color:var(--ep-attn-bord) }
.ep-nps--pass b {color:var(--ep-attn) }
.ep-nps--detr {background:var(--ep-alerte-voile);border-color:var(--ep-alerte-bord) }
.ep-nps--detr b {color:var(--ep-alerte) }
.ep-src {display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:var(--ep-r-3) }
.ep-src--google {background:#EDF1F9;color:#41598F }
.ep-src--trip {background:#EDF6EA;color:#3F7A34 }
.ep-src--enquete {background:#F3EFFA;color:#6A4A9E }

/* ══════════════════════════════════════════════════════════════════════════
   ADAPTATION À L'APPLICATION
   La maquette est une page unique ; l'application a une coquille, des
   identifiants et quelques composants sans équivalent. Ce qui suit les relie,
   sans jamais redéfinir une valeur déjà fixée plus haut.
   ══════════════════════════════════════════════════════════════════════════ */

html, body { height:100%; margin:0 }
body { overflow:hidden }
#view { display:flex; flex-direction:column; min-height:0; overflow:auto }
.ep-app { display:grid; grid-template-columns:238px 1fr; height:100vh; overflow:hidden }
.ep-zone { display:flex; flex-direction:column; overflow:hidden; min-width:0 }
.ep-corps { flex:1; display:grid; grid-template-columns:196px 1fr; overflow:hidden; min-height:0 }
.ep-corps--plein { grid-template-columns:1fr }
.ep-contenu { overflow:auto; min-width:0; flex:1 }
.ep-contenu--pad { padding:20px 24px }

/* Le rail : l'application ajoute la version, le sélecteur d'établissement
   et les compteurs de destination. */
.ep-rail__nav a.is-actif { background:var(--ep-corail); color:#fff; font-weight:600 }
.ep-pastille { margin-left:auto; font-family:var(--ep-f-data); font-size:10.5px;
  padding:1px 6px; border-radius:var(--ep-r-3); background:rgba(0,0,0,.22) }
.ep-pastille--chaud { background:var(--ep-corail); color:#fff }
.ep-rail__nav a.is-actif .ep-pastille { background:rgba(255,255,255,.22) }
.ep-rail__version { padding:8px 22px 12px; font-family:var(--ep-f-data); font-size:10.5px;
  background:none; border:0; text-align:left; width:100%; cursor:pointer }
.ep-rail__moi-n { display:block; font-size:13px; font-weight:600; color:#fff }
.ep-rail__moi-r { font-style:normal; font-size:11px; color:rgba(255,237,196,.45) }
.ep-rail__parc label { display:block; font-size:9.5px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:rgba(255,237,196,.45) }
.ep-rail__parc select { border:0; background:none; color:#fff; font-size:13px;
  font-weight:600; width:100%; padding:0; font-family:var(--ep-f-ui) }

/* Le rail de vues du second niveau reprend le rail de segments de la maquette */
.ep-segments a.is-actif { background:var(--ep-sable-voile); color:var(--ep-encre); font-weight:600 }
.ep-segments a.is-actif .ep-n { color:var(--ep-corail-fonce) }

/* Surcouches */
.ep-modale-fond, .ep-volet-fond { position:fixed; inset:0; background:rgba(43,29,20,.42); z-index:60 }
.ep-modale { position:fixed; inset:0; display:grid; place-items:center; z-index:61; padding:24px; pointer-events:none }
.ep-modale__boite { pointer-events:auto; width:min(620px,100%); max-height:88vh; display:flex;
  flex-direction:column; background:var(--ep-surface); border-radius:var(--ep-r-2); box-shadow:var(--ep-om-3) }
.ep-volet { position:fixed; top:0; right:0; bottom:0; width:min(560px,100vw); z-index:61;
  display:flex; flex-direction:column; background:var(--ep-surface); box-shadow:var(--ep-om-3) }
.ep-volet.large { width:min(1080px,100vw) }
.ep-modale__tete, .ep-volet__tete { padding:14px 20px; border-bottom:1px solid var(--ep-ligne);
  display:flex; align-items:center; justify-content:space-between; gap:12px }
.ep-modale__corps, .ep-volet__corps { flex:1; overflow-y:auto; padding:18px 20px }
.ep-modale__pied, .ep-volet__pied { padding:13px 20px; border-top:1px solid var(--ep-ligne);
  display:flex; gap:9px; align-items:center; flex-wrap:wrap }
.ep-modale__pied { justify-content:flex-end }

/* Champs de saisie génériques */
.ep-saisie, input[type=text], input[type=email], input[type=password], input[type=search],
input[type=number], input[type=date], input[type=time], input[type=datetime-local],
input[type=url], input[type=tel], select, textarea {
  font-family:var(--ep-f-ui); font-size:13.5px; color:var(--ep-texte);
  padding:8px 11px; border:1px solid var(--ep-ligne-forte); border-radius:var(--ep-r-1);
  background:var(--ep-surface) }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--ep-corail);
  box-shadow:0 0 0 3px var(--ep-corail-voile) }
input[type=checkbox], input[type=radio] { accent-color:var(--ep-corail); width:15px; height:15px; padding:0 }
label { font-size:13px }

/* Notifications et barre de sélection */
.ep-toast-zone { position:fixed; bottom:18px; right:18px; z-index:90; display:grid; gap:8px }
.ep-toast { background:var(--ep-encre); color:#fff; padding:11px 15px; border-radius:var(--ep-r-2);
  box-shadow:var(--ep-om-3); font-size:13px; max-width:340px }
.ep-barre-sel { position:sticky; bottom:0; z-index:4; background:var(--ep-encre); color:#fff;
  padding:11px 16px; display:flex; align-items:center; gap:12px; font-size:13px }
.ep-maj { position:fixed; top:14px; left:50%; transform:translateX(-50%); z-index:95;
  background:var(--ep-encre); color:#fff; padding:10px 12px 10px 18px; border-radius:var(--ep-r-3);
  box-shadow:var(--ep-om-3); display:flex; align-items:center; gap:14px; font-size:13.5px }
.ep-maj .ep-b { background:var(--ep-corail); border-color:var(--ep-corail); color:#fff }

/* Squelette de chargement */
.ep-sq { height:14px; border-radius:var(--ep-r-3); background:linear-gradient(90deg,
  var(--ep-ligne) 25%, var(--ep-surface-2) 50%, var(--ep-ligne) 75%);
  background-size:200% 100%; animation:ep-sq 1.3s linear infinite }
@keyframes ep-sq { to { background-position:-200% 0 } }

/* Utilitaires attendus par le code */
.ep-dr { text-align:right }
.ep-ic { flex:0 0 auto; vertical-align:middle }
.ep-sep { height:1px; background:var(--ep-ligne); border:0; margin:18px 0 }
.ep-msg { display:flex; gap:9px; align-items:flex-start; padding:11px 14px;
  border-radius:var(--ep-r-2); font-size:13px; line-height:1.55; border:1px solid var(--ep-ligne);
  background:var(--ep-surface-2); margin-bottom:14px }
.ep-msg > svg { flex:0 0 auto; margin-top:2px }
.ep-msg > span, .ep-msg > div { flex:1; min-width:0 }
.ep-msg--info   { background:var(--ep-info-voile);   border-color:var(--ep-info-bord);   color:#2E4372 }
.ep-msg--ok     { background:var(--ep-ok-voile);     border-color:var(--ep-ok-bord);     color:#2E5C25 }
.ep-msg--attn   { background:var(--ep-attn-voile);   border-color:var(--ep-attn-bord);   color:#7A4E08 }
.ep-msg--alerte { background:var(--ep-alerte-voile); border-color:var(--ep-alerte-bord); color:#94271C }

@media (max-width:1100px) { .ep-app { grid-template-columns:1fr } .ep-rail { display:none } }
@media (prefers-reduced-motion:reduce) { * { transition:none !important; animation:none !important } }

/* ══════════════════════════════════════════════════════════════════════════
   RAIL DE NAVIGATION — VERSION BEIGE
   Le brun reste le jeton des notifications et de la barre de sélection ;
   seule la navigation change de fond. Supprimez ce bloc pour revenir au brun.
   ══════════════════════════════════════════════════════════════════════════ */
:root { --ep-nav:#F6EBD6; --ep-nav-bord:#E7D6B4; --ep-nav-survol:#FBF4E6 }
.ep-rail { background:var(--ep-nav); border-right:1px solid var(--ep-nav-bord); color:var(--ep-texte) }
.ep-rail__nom { color:var(--ep-encre) }
.ep-rail__nom span { color:var(--ep-texte-3) }
.ep-rail__parc { background:var(--ep-surface); border:1px solid var(--ep-nav-bord) }
.ep-rail__parc label { color:var(--ep-texte-3) }
.ep-rail__parc select { color:var(--ep-encre) }
.ep-rail__cmd { border:1px solid var(--ep-ligne-forte); background:rgba(255,255,255,.55); color:var(--ep-texte-2) }
.ep-rail__cmd:hover { border-color:var(--ep-corail); color:var(--ep-corail-fonce); background:var(--ep-surface) }
.ep-rail__cmd kbd { background:var(--ep-surface); border:1px solid var(--ep-nav-bord); color:var(--ep-texte-3) }
.ep-rail__nav a { color:var(--ep-texte-2) }
.ep-rail__nav a:hover { background:var(--ep-nav-survol); color:var(--ep-encre) }
.ep-rail__nav a.is-actif { background:var(--ep-corail); color:#fff; box-shadow:var(--ep-om-1) }
.ep-rail__nav a .ep-pastille { background:rgba(43,29,20,.09); color:var(--ep-texte-2) }
.ep-rail__nav a .ep-pastille--chaud { background:var(--ep-corail); color:#fff }
.ep-rail__sep { background:var(--ep-nav-bord) }
.ep-rail__moi { border-top:1px solid var(--ep-nav-bord) }
.ep-rail__moi-n { color:var(--ep-encre) }
.ep-rail__moi-r { color:var(--ep-texte-3) }
.ep-rail__moi .ep-av { background:var(--ep-corail); color:#fff }
.ep-rail__version { color:var(--ep-texte-3) }
.ep-rail__logo { background:var(--ep-corail) }

/* ══════════════════════════════════════════════════════════════════════════
   FICHE DOSSIER — chaîne de pleine largeur
   Le gabarit hérité de la conversation était une grille « 1fr 240px » : même
   sans son volet latéral, elle réservait la seconde piste.
   ══════════════════════════════════════════════════════════════════════════ */
#view:has(.ep-dossier) { padding:0; overflow:hidden; position:relative }
.ep-dossier { position:absolute; inset:0; margin:0; display:flex; flex-direction:column }
.ep-dcorps { align-items:stretch }
.ep-dmenu { height:100%; border-radius:0; box-shadow:none }
.ep-dossier, .ep-dcorps, .ep-dpan, .ep-dpan > section,
.ep-dpan .rec-email2, .ep-dpan .rec-email2__main, .ep-dpan .rec-chat,
.ep-dpan .rec-composer, .ep-dpan .rte, .ep-dpan .rte-toolbar,
.ep-dpan .ep-compo__o, .ep-dpan .ep-compo__b, .ep-dpan .rec-reply-foot {
  width:100%; max-width:none; box-sizing:border-box }
.ep-dpan .rec-email2, .ep-dpan .rec-email2__main {
  display:flex; flex-direction:column; grid-template-columns:none; gap:0; flex:1; min-height:0 }
.ep-dpan .rec-email2__side { display:none }
.ep-dpan > section { padding:18px 24px }
.ep-dpan > section[data-panel="email"] { padding:0; height:100%; display:flex; flex-direction:column }
.ep-dpan .rec-chat > .ep-bulle { max-width:min(760px,72%) }
.ep-dpan .rec-chat > .ep-bulle--note { max-width:min(820px,84%) }
.ep-dpan .rec-chat > .ep-evt { max-width:84% }
.rte { min-height:110px; padding:12px 14px }
.rte-toolbar { display:flex; align-items:center; gap:2px; padding:0 }
.rte-toolbar button { width:28px; height:28px; display:grid; place-items:center;
  border:0; border-radius:var(--ep-r-1); background:none; color:var(--ep-texte-2) }
.rte-toolbar button:hover { background:var(--ep-canvas); color:var(--ep-texte) }
.rte-sep { width:1px; height:18px; background:var(--ep-ligne); margin:0 5px }

/* ══════════════════════════════════════════════════════════════════════════
   33. COUVERTURE COMPLÈTE — v5.20
   Le back-office ne charge plus qu'une seule feuille. Ce qui suit couvre les
   109 classes qui restaient sans règle, mesurées écran par écran.
   Il ne s'agit plus d'une couche de compatibilité qui lutte contre une autre
   feuille : c'est la seule définition de ces composants.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Boutons ──────────────────────────────────────────────────────────── */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:7px;
  padding:8px 14px; border-radius:var(--ep-r-1); font-size:13px; font-weight:600;
  font-family:var(--ep-f-ui); border:1px solid var(--ep-ligne-forte);
  background:var(--ep-surface); color:var(--ep-texte); cursor:pointer; white-space:nowrap;
  transition:background .12s, border-color .12s }
.btn:hover { background:var(--ep-surface-2); border-color:var(--ep-texte-3) }
.btn:disabled { opacity:.45; cursor:not-allowed }
.btn--primary, .btn--cta { background:var(--ep-corail); border-color:var(--ep-corail); color:#fff }
.btn--primary:hover, .btn--cta:hover { background:var(--ep-corail-fonce); border-color:var(--ep-corail-fonce) }
.btn--danger { background:var(--ep-alerte-voile); border-color:var(--ep-alerte-bord); color:var(--ep-alerte) }
.btn--danger:hover { background:var(--ep-alerte); border-color:var(--ep-alerte); color:#fff }
.btn--ghost { border-color:transparent; background:transparent; color:var(--ep-texte-2) }
.btn--ghost:hover { background:var(--ep-surface-2); border-color:var(--ep-ligne) }
.btn--sm { padding:5px 10px; font-size:12.5px }
.actions { display:flex; gap:7px; align-items:center; flex-wrap:wrap; white-space:nowrap }

/* ── Tableaux ─────────────────────────────────────────────────────────── */
.table-wrap { background:var(--ep-surface); border:1px solid var(--ep-ligne);
  border-radius:var(--ep-r-2); overflow:auto; box-shadow:var(--ep-om-1); margin-bottom:16px }
.table { width:100%; border-collapse:separate; border-spacing:0; background:var(--ep-surface) }
.table thead th { position:sticky; top:0; z-index:2; background:var(--ep-surface-2);
  border-bottom:1px solid var(--ep-ligne-forte); padding:9px 13px; text-align:left;
  font-size:10.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
  color:var(--ep-texte-3); white-space:nowrap }
.table td { padding:10px 13px; border-bottom:1px solid var(--ep-ligne); vertical-align:middle; font-size:13.5px }
.table tbody tr:hover { background:var(--ep-sable-voile) }
.table tbody tr:last-child td { border-bottom:0 }
.table-empty { padding:30px 16px; text-align:center; color:var(--ep-texte-3); font-size:13px }
.cell-mute { color:var(--ep-texte-3); font-size:12.5px }
.pagination, .avis-pagination { display:flex; align-items:center; gap:10px; padding:12px 0;
  font-size:12.5px; color:var(--ep-texte-3) }

/* ── Cartes ───────────────────────────────────────────────────────────── */
.card { background:var(--ep-surface); border:1px solid var(--ep-ligne);
  border-radius:var(--ep-r-2); box-shadow:var(--ep-om-1); margin-bottom:16px }
.card__body { padding:16px 18px }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px }

/* ── En-tête de page hérité ───────────────────────────────────────────── */
.page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  padding:16px 28px; background:var(--ep-surface); border-bottom:1px solid var(--ep-ligne); margin:-20px -24px 20px }
.page-header__content h1 { font-family:var(--ep-f-titre); font-size:19px; font-weight:700; letter-spacing:-.01em }
.page-header__subtitle { font-size:12.5px; color:var(--ep-texte-3); margin-top:3px; line-height:1.45 }
.page-header__actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap }

/* ── Étiquettes et repères ────────────────────────────────────────────── */
.badge { display:inline-flex; align-items:center; gap:5px; padding:3px 9px;
  border-radius:var(--ep-r-3); font-size:11px; font-weight:600; white-space:nowrap;
  background:var(--ep-canvas); color:var(--ep-texte-2); border:1px solid var(--ep-ligne) }
.badge--green { background:var(--ep-ok-voile); color:var(--ep-ok); border-color:var(--ep-ok-bord) }
.badge--mute { background:var(--ep-surface-2); color:var(--ep-texte-3) }
.badge--sand { background:var(--ep-sable-voile); color:var(--ep-encre); border-color:var(--ep-dore) }
.alert { display:flex; gap:9px; align-items:flex-start; padding:11px 14px;
  border-radius:var(--ep-r-2); border:1px solid var(--ep-ligne); font-size:13px; line-height:1.55;
  background:var(--ep-surface-2); margin-bottom:14px }
.alert--info { background:var(--ep-info-voile); border-color:var(--ep-info-bord); color:#2E4372 }
.alert--success { background:var(--ep-ok-voile); border-color:var(--ep-ok-bord); color:#2E5C25 }
.alert--warn, .alert--warning { background:var(--ep-attn-voile); border-color:var(--ep-attn-bord); color:#7A4E08 }
.alert--danger { background:var(--ep-alerte-voile); border-color:var(--ep-alerte-bord); color:#94271C }
.empty-state { padding:36px 20px; text-align:center; color:var(--ep-texte-3); font-size:13px }
.avatar { border-radius:var(--ep-r-3); object-fit:cover; flex:0 0 auto }

/* ── Contrôles ────────────────────────────────────────────────────────── */
.segmented { display:inline-flex; padding:2px; background:var(--ep-canvas);
  border:1px solid var(--ep-ligne); border-radius:var(--ep-r-1); gap:2px }
.segmented button { padding:5px 11px; border-radius:4px; font-size:12.5px; font-weight:600;
  color:var(--ep-texte-3); border:0; background:none; display:inline-flex; align-items:center; gap:6px }
.segmented button.on, .segmented button.is-on { background:var(--ep-surface);
  color:var(--ep-encre); box-shadow:var(--ep-om-1) }
.avis-bar { display:flex; align-items:center; gap:9px; flex-wrap:wrap; padding:10px 0 }
.rec-assign { height:30px; padding:4px 8px; font-size:12.5px; max-width:150px;
  border:1px solid var(--ep-ligne-forte); border-radius:var(--ep-r-1); background:var(--ep-surface) }
.no-print { }

/* ── Icônes ───────────────────────────────────────────────────────────── */
.ic { flex:0 0 auto; vertical-align:middle }

/* ── Grilles héritées du module expérience ────────────────────────────── */
.exp-list { display:grid }
.exp-table { width:100%; border-collapse:separate; border-spacing:0 }
.exp-table thead th { background:var(--ep-surface-2); border-bottom:1px solid var(--ep-ligne-forte);
  padding:8px 12px; text-align:left; font-size:10.5px; font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--ep-texte-3) }
.exp-table td { padding:9px 12px; border-bottom:1px solid var(--ep-ligne); font-size:13px }
.exp-incident-grid, .exp-tele-dashboard { display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px }
.insight-list { display:grid; gap:10px }
.rm-legend { display:flex; gap:12px; flex-wrap:wrap; font-size:11.5px; color:var(--ep-texte-3) }

/* ══════════════════════════════════════════════════════════════════════════
   34. LANGAGE VISUEL DES DOSSIERS
   Une couleur par statut et par catégorie, tenue partout : file de travail,
   fiche, tableau de bord. On lit l'état d'un dossier sans le lire.
   ══════════════════════════════════════════════════════════════════════════ */

:root {
  --ep-cat-resto:#C9752B;   --ep-cat-billet:#41598F;  --ep-cat-resa:#6A4A9E;
  --ep-cat-accueil:#2E7D6B; --ep-cat-secu:#C0392B;    --ep-cat-prop:#3F7A34;
  --ep-cat-info:#8B857D;
  --ep-st-nouveau:#41598F;  --ep-st-cours:#B47512;    --ep-st-attente:#6A4A9E;
  --ep-st-resolu:#3F7A34;   --ep-st-clos:#8B857D;
}

/* Étiquettes de statut */
.ep-et--nouveau { background:#EDF1F9; color:var(--ep-st-nouveau); border:1px solid #CBD8EC }
.ep-et--cours   { background:var(--ep-attn-voile); color:var(--ep-st-cours); border:1px solid var(--ep-attn-bord) }
.ep-et--attente { background:#F3EFFA; color:var(--ep-st-attente); border:1px solid #D6C9EC }
.ep-et--resolu  { background:var(--ep-ok-voile); color:var(--ep-st-resolu); border:1px solid var(--ep-ok-bord) }
.ep-et--clos    { background:#F3F2F0; color:var(--ep-st-clos); border:1px solid #E2E0DC }
.ep-et--n       { background:var(--ep-canvas); color:var(--ep-texte-2); border:1px solid var(--ep-ligne) }
.ep-et .ep-pt { width:6px; height:6px; background:currentColor }

/* Catégories : un carré de couleur, le mot à côté */
.ep-cat { display:inline-flex; align-items:center; gap:6px; font-size:12px;
  font-weight:500; color:var(--ep-texte-2); white-space:nowrap }
.ep-cat i { width:8px; height:8px; border-radius:2px; display:block; flex:0 0 auto }
.ep-cat--resto i   { background:var(--ep-cat-resto) }
.ep-cat--billet i  { background:var(--ep-cat-billet) }
.ep-cat--resa i    { background:var(--ep-cat-resa) }
.ep-cat--accueil i { background:var(--ep-cat-accueil) }
.ep-cat--secu i    { background:var(--ep-cat-secu) }
.ep-cat--prop i    { background:var(--ep-cat-prop) }
.ep-cat--info i    { background:var(--ep-cat-info) }

/* Priorité : trois barres graduées. On la lit sans lire le mot. */
.ep-prio { display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; white-space:nowrap }
.ep-prio__b { display:flex; gap:2px; align-items:flex-end; height:13px }
.ep-prio__b i { width:3.5px; background:var(--ep-ligne-forte); border-radius:1px; display:block }
.ep-prio__b i:nth-child(1) { height:5px } .ep-prio__b i:nth-child(2) { height:9px } .ep-prio__b i:nth-child(3) { height:13px }
.ep-prio--urgente { color:var(--ep-alerte) } .ep-prio--urgente i { background:var(--ep-alerte) }
.ep-prio--haute   { color:#C9752B } .ep-prio--haute i:nth-child(-n+2) { background:#C9752B }
.ep-prio--normale { color:var(--ep-info) } .ep-prio--normale i:nth-child(1) { background:var(--ep-info) }
.ep-prio--faible  { color:var(--ep-texte-3) }

/* SLA en temps restant : « 12 h restantes » se décide, « à risque » se subit. */
.ep-sla { display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; white-space:nowrap }
.ep-sla__b { width:46px; height:5px; border-radius:var(--ep-r-3); background:var(--ep-ligne);
  overflow:hidden; flex:0 0 auto }
.ep-sla__b i { display:block; height:100%; border-radius:var(--ep-r-3); background:currentColor }
.ep-sla--t-ok { color:var(--ep-ok) } .ep-sla--t-attn { color:var(--ep-attn) } .ep-sla--t-alerte { color:var(--ep-alerte) }

/* Avatars : la teinte vient du nom, deux fiches ne se ressemblent jamais */
.ep-av-1 { background:#C9752B; color:#fff } .ep-av-2 { background:#41598F; color:#fff }
.ep-av-3 { background:#6A4A9E; color:#fff } .ep-av-4 { background:#2E7D6B; color:#fff }
.ep-av-5 { background:#C0392B; color:#fff } .ep-av-6 { background:#3F7A34; color:#fff }
.ep-av-7 { background:#8B6F47; color:#fff }
.ep-av--vide { background:var(--ep-attn-voile); color:var(--ep-attn); border:1px dashed var(--ep-attn-bord) }

/* File de travail */
.ep-tbl--dossiers tbody tr { cursor:pointer }
.ep-tbl--dossiers tbody tr td:first-child { border-left:3px solid transparent }
.ep-tbl--dossiers tr[data-st=nouveau]    td:first-child { border-left-color:var(--ep-st-nouveau) }
.ep-tbl--dossiers tr[data-st=en_cours]   td:first-child { border-left-color:var(--ep-st-cours) }
.ep-tbl--dossiers tr[data-st=en_attente] td:first-child { border-left-color:var(--ep-st-attente) }
.ep-tbl--dossiers tr[data-st=resolu]     td:first-child { border-left-color:var(--ep-st-resolu) }
.ep-tbl--dossiers tr[data-st=clos]       td:first-child { border-left-color:var(--ep-st-clos) }
.ep-neuf .ep-cli__n { font-weight:700 }
.ep-neuf .ep-cli__n::after { content:""; width:6px; height:6px; border-radius:var(--ep-r-3);
  background:var(--ep-corail); display:inline-block; margin-left:6px; vertical-align:middle }
.ep-motif { max-width:320px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-size:13px; color:var(--ep-texte-2) }

/* Indicateurs */
.ep-kpi__l { font-size:11px; color:var(--ep-texte-3); font-weight:600;
  text-transform:uppercase; letter-spacing:.05em }
.ep-kpi__v { font-family:var(--ep-f-data); font-size:26px; font-weight:500;
  letter-spacing:-.02em; line-height:1.05; display:block }
.ep-kpi__m { font-style:normal; font-size:11.5px; color:var(--ep-texte-3) }
.ep-kpi--neutre::before { background:var(--ep-corail) }
.ep-kpi--danger  { background:var(--ep-alerte-voile); border-color:var(--ep-alerte-bord) }
.ep-kpi--danger::before  { background:var(--ep-alerte) } .ep-kpi--danger .ep-kpi__v  { color:var(--ep-alerte) }
.ep-kpi--warning { background:var(--ep-attn-voile); border-color:var(--ep-attn-bord) }
.ep-kpi--warning::before { background:var(--ep-attn) }   .ep-kpi--warning .ep-kpi__v { color:var(--ep-attn) }
.ep-kpi--success::before { background:var(--ep-ok) }     .ep-kpi--success .ep-kpi__v { color:var(--ep-ok) }
.ep-kpi--info::before    { background:var(--ep-info) }   .ep-kpi--info .ep-kpi__v    { color:var(--ep-info) }
.ep-legende { display:flex; flex-wrap:wrap; gap:10px; margin-top:10px; font-size:11.5px; color:var(--ep-texte-2) }
.ep-legende span { display:inline-flex; align-items:center; gap:5px }
.ep-legende i { width:9px; height:9px; border-radius:2px; display:block }

/* Portées de grille du module expérience */
.exp-span-3 { grid-column:span 3 } .exp-span-4 { grid-column:span 4 } .exp-span-8 { grid-column:span 8 }
@media (max-width:1100px) { .exp-span-3, .exp-span-4, .exp-span-8 { grid-column:1/-1 } }

/* ══════════════════════════════════════════════════════════════════════════
   35. ACCUEIL ET TABLEAU DE BORD DES DOSSIERS
   Les 40 dernières classes sans règle. L'Accueil sera refondu ensuite, mais
   il doit d'ici là ressembler au reste de l'application.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Bandeau d'ouverture ──────────────────────────────────────────────── */
.rp-hero { background:linear-gradient(135deg, var(--ep-rail), #4A3122); color:var(--ep-sable);
  border-radius:var(--ep-r-2); padding:22px 26px; margin-bottom:18px;
  display:flex; align-items:center; gap:24px; flex-wrap:wrap }
.rp-hero h1, .rp-hero h2 { color:#fff; font-family:var(--ep-f-titre); font-size:22px; font-weight:700 }
.rp-hero p { color:rgba(255,237,196,.72); font-size:13.5px; margin-top:5px; max-width:560px; line-height:1.55 }
.rp-hero__score { margin-left:auto; font-family:var(--ep-f-data); font-size:38px; font-weight:500;
  color:#fff; line-height:1 }
.rp-eyebrow { font-size:10.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
  color:var(--ep-texte-3) }

/* ── Indicateurs ──────────────────────────────────────────────────────── */
.rp-kpis, .rec-kpis { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:14px; margin-bottom:18px }
.rp-kpi, .rec-kpi { position:relative; overflow:hidden; background:var(--ep-surface);
  border:1px solid var(--ep-ligne); border-radius:var(--ep-r-2); padding:13px 15px;
  display:grid; gap:3px; box-shadow:var(--ep-om-1) }
.rp-kpi::before, .rec-kpi::before { content:""; position:absolute; left:0; top:0; bottom:0;
  width:4px; background:var(--ep-ligne-forte) }
.rp-kpi__label, .rec-kpi__l { font-size:11px; font-weight:600; text-transform:uppercase;
  letter-spacing:.05em; color:var(--ep-texte-3) }
.rp-kpi__value, .rec-kpi__n { font-family:var(--ep-f-data); font-size:26px; font-weight:500;
  letter-spacing:-.02em; line-height:1.05; color:var(--ep-encre) }
.rp-kpi__foot { font-size:11.5px; color:var(--ep-texte-3) }
.rp-kpi--accent::before  { background:var(--ep-corail) }  .rp-kpi--accent .rp-kpi__value  { color:var(--ep-corail-fonce) }
.rp-kpi--success::before { background:var(--ep-ok) }      .rp-kpi--success .rp-kpi__value { color:var(--ep-ok) }
.rp-kpi--danger  { background:var(--ep-alerte-voile); border-color:var(--ep-alerte-bord) }
.rp-kpi--danger::before  { background:var(--ep-alerte) }  .rp-kpi--danger .rp-kpi__value  { color:var(--ep-alerte) }
.rp-kpi--google::before  { background:var(--ep-dore) }
.rec-kpi--urgent { background:var(--ep-alerte-voile); border-color:var(--ep-alerte-bord) }
.rec-kpi--urgent::before { background:var(--ep-alerte) } .rec-kpi--urgent .rec-kpi__n { color:var(--ep-alerte) }
.rec-kpi--today::before  { background:var(--ep-corail) } .rec-kpi--today .rec-kpi__n  { color:var(--ep-corail-fonce) }

/* ── Panneaux et sections ─────────────────────────────────────────────── */
.rp-panel, .rp-section { background:var(--ep-surface); border:1px solid var(--ep-ligne);
  border-radius:var(--ep-r-2); box-shadow:var(--ep-om-1); margin-bottom:16px; overflow:hidden }
.rp-panel__head, .rp-section__head { padding:13px 16px; border-bottom:1px solid var(--ep-ligne);
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px }
.rp-panel__head h2, .rp-panel__head h3, .rp-section__head h2, .rp-section__head h3 {
  font-family:var(--ep-f-titre); font-size:15px; font-weight:700 }
.rp-panel > *:not(.rp-panel__head), .rp-section > *:not(.rp-section__head) { padding:0 16px 16px }
.rec-dash { display:grid; gap:16px }
.rec-dash-t { font-family:var(--ep-f-titre); font-size:15px; font-weight:700; margin-bottom:10px }
.rec-side__t { font-family:var(--ep-f-titre); font-size:14px; font-weight:700;
  display:flex; align-items:center; gap:8px; margin-bottom:12px }

/* ── Grilles ──────────────────────────────────────────────────────────── */
.rp-grid, .rec-dash-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px }
.rp-grid--2 { grid-template-columns:repeat(auto-fill,minmax(380px,1fr)) }
.rp-category-grid, .rp-objective-grid { display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:12px }
.rp-dual-list { display:grid; grid-template-columns:1fr 1fr; gap:16px }
@media (max-width:900px) { .rp-dual-list { grid-template-columns:1fr } }

/* ── Listes de thèmes et verbatims ────────────────────────────────────── */
.rp-theme-list, .rp-reco-list, .rp-comments { display:grid; gap:10px }
.rp-comments > * { border-left:2px solid var(--ep-ligne-forte); padding:9px 0 9px 12px;
  font-size:13px; line-height:1.55; color:var(--ep-texte-2) }
.rp-good { color:var(--ep-ok); font-weight:600 }
.rp-bad  { color:var(--ep-alerte); font-weight:600 }
.rp-comments .rp-good, .rp-comments .rp-bad { border-left-color:currentColor }

/* ── Filtres de période ───────────────────────────────────────────────── */
.rp-presets { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:14px }
.rp-preset { padding:6px 12px; border:1px solid var(--ep-ligne-forte); border-radius:var(--ep-r-1);
  font-size:12.5px; font-weight:500; color:var(--ep-texte-2); background:var(--ep-surface); cursor:pointer }
.rp-preset:hover { border-color:var(--ep-texte-3); color:var(--ep-texte) }
.rp-preset.is-on, .rp-preset.on { background:var(--ep-sable-voile); border-color:var(--ep-dore);
  color:var(--ep-encre); font-weight:600 }
.rp-custom-dates { display:flex; gap:9px; align-items:center; flex-wrap:wrap; margin-bottom:14px }
.rp-custom-dates input { height:32px; padding:5px 10px; font-size:12.5px; width:auto;
  border:1px solid var(--ep-ligne-forte); border-radius:var(--ep-r-1); background:var(--ep-surface) }
.rp-comment-filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px }

/* ══════════════════════════════════════════════════════════════════════════
   36. PAGE DE CONNEXION
   Elle chargeait admin.css, retiré en 5.20. Ses sept classes sont ici.
   C'est la première chose que voit un utilisateur : elle porte la marque.
   ══════════════════════════════════════════════════════════════════════════ */

.auth-bg { min-height:100vh; display:grid; place-items:center; padding:24px;
  background:linear-gradient(150deg, var(--ep-rail) 0%, #4A3122 55%, #5C3E2A 100%) }
.auth-bg::before { content:""; position:fixed; inset:0; pointer-events:none;
  background:radial-gradient(circle at 22% 18%, rgba(233,102,70,.20), transparent 45%),
             radial-gradient(circle at 82% 78%, rgba(242,212,156,.14), transparent 50%) }

.auth-card { position:relative; z-index:1; width:min(420px,100%);
  background:var(--ep-surface); border-radius:14px; padding:34px 34px 30px;
  box-shadow:0 24px 64px rgba(43,29,20,.34); border:1px solid rgba(255,255,255,.6) }
.auth-card .logo { display:grid; justify-items:center; gap:10px; margin-bottom:22px }
.auth-card .logo img { max-width:180px; height:auto }
.auth-card h1 { font-family:var(--ep-f-marque); font-size:26px; color:var(--ep-encre);
  line-height:1.1; text-align:center }
.auth-card .sub { font-size:12.5px; color:var(--ep-texte-3); text-align:center;
  margin-top:4px; margin-bottom:22px; line-height:1.5 }

.auth-card .field { display:grid; gap:6px; margin-bottom:15px }
.auth-card .field label { font-size:11px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ep-texte-3) }
.auth-card .field input { width:100%; padding:11px 13px; font-size:14px;
  border:1px solid var(--ep-ligne-forte); border-radius:var(--ep-r-1);
  background:var(--ep-surface-2); font-family:var(--ep-f-ui) }
.auth-card .field input:focus { outline:none; border-color:var(--ep-corail);
  background:var(--ep-surface); box-shadow:0 0 0 3px var(--ep-corail-voile) }

.auth-card button[type=submit], .auth-card .btn--primary { width:100%; margin-top:6px;
  padding:12px 16px; font-size:14px; font-weight:700 }

.auth-error, .auth-ok { display:flex; gap:9px; align-items:flex-start; padding:11px 14px;
  border-radius:var(--ep-r-2); font-size:13px; line-height:1.5; margin-bottom:16px; border:1px solid }
.auth-error { background:var(--ep-alerte-voile); border-color:var(--ep-alerte-bord); color:#94271C }
.auth-ok    { background:var(--ep-ok-voile); border-color:var(--ep-ok-bord); color:#2E5C25 }

/* ══════════════════════════════════════════════════════════════════════════
   COMPLÉMENTS — les 29 classes restantes, mesurées écran par écran
   ══════════════════════════════════════════════════════════════════════════ */

/* Barres d'outils */
.toolbar, .exp-toolbar, .rp-toolbar, .exp-tele-toolbar {
  display:flex; align-items:center; gap:9px; flex-wrap:wrap;
  padding:10px 24px; background:var(--ep-surface); border-bottom:1px solid var(--ep-ligne) }
.toolbar .search, .ep-chercher { position:relative; flex:1; max-width:340px; min-width:180px }
.toolbar .search input, .ep-chercher input { width:100%; padding:8px 12px 8px 32px;
  background:var(--ep-surface-2); font-size:13px }
.toolbar .search svg, .ep-chercher svg { position:absolute; left:10px; top:50%;
  transform:translateY(-50%); color:var(--ep-texte-3); pointer-events:none }

/* Cartes du module expérience — alignées sur .ep-carte */
.exp-card { background:var(--ep-surface); border:1px solid var(--ep-ligne);
  border-radius:var(--ep-r-2); box-shadow:var(--ep-om-1); margin-bottom:16px; overflow:hidden }
.exp-card__head { padding:13px 16px; border-bottom:1px solid var(--ep-ligne);
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px }
.exp-card__head h3 { font-family:var(--ep-f-titre); font-size:15px; font-weight:700 }
.exp-card__body { padding:16px }
.exp-empty { padding:26px 16px; text-align:center; color:var(--ep-texte-3); font-size:13px }
.exp-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:16px }
.exp-span-5 { grid-column:span 5 } .exp-span-6 { grid-column:span 6 }
.exp-span-7 { grid-column:span 7 } .exp-span-12 { grid-column:span 12 }
@media (max-width:1100px) { .exp-grid > [class*=exp-span] { grid-column:1/-1 } }

/* Lignes de liste et clients */
.ep-ligne, .ep-ligne-item { display:flex; align-items:center; gap:10px; padding:9px 0;
  border-bottom:1px solid var(--ep-ligne); font-size:13px }
.ep-ligne:last-child, .ep-ligne-item:last-child { border-bottom:0 }
.ep-ligne__t, .ep-ligne-item__t { flex:1; min-width:0 }
.ep-ligne__t strong, .ep-ligne-item__t strong { display:block; font-weight:600; font-size:13px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.ep-ligne__t small, .ep-ligne-item__t small { color:var(--ep-texte-3); font-size:11.5px }
.ep-cli { display:flex; align-items:center; gap:9px; min-width:0 }
.avis-clic { cursor:pointer }

/* Indicateurs : variantes de nommage utilisées par le code */
.ep-kpi--ok::before   { background:var(--ep-ok) }     .ep-kpi--ok .ep-kpi__v   { color:var(--ep-ok) }
.ep-kpi--attn { background:var(--ep-attn-voile); border-color:var(--ep-attn-bord) }
.ep-kpi--attn::before { background:var(--ep-attn) }   .ep-kpi--attn .ep-kpi__v { color:var(--ep-attn) }
.ep-kpi--fort::before { background:var(--ep-corail) } .ep-kpi--fort .ep-kpi__v { color:var(--ep-corail-fonce) }

/* Résumé des droits d'un rôle */
.ep-droits { display:flex; flex-wrap:wrap; gap:6px; cursor:help }
.ep-droit { display:inline-flex; align-items:center; gap:5px; padding:2px 9px;
  border-radius:var(--ep-r-3); font-size:11.5px; font-weight:500;
  background:var(--ep-canvas); color:var(--ep-texte-2); border:1px solid var(--ep-ligne) }
.ep-droit b { font-family:var(--ep-f-data); font-size:11px; font-weight:500; color:var(--ep-corail-fonce) }
.ep-droit--autre { background:var(--ep-surface-2); color:var(--ep-texte-3) }

/* Divers */
.ep-b--danger { background:var(--ep-alerte-voile); border-color:var(--ep-alerte-bord); color:var(--ep-alerte) }
.ep-b--danger:hover { background:var(--ep-alerte); border-color:var(--ep-alerte); color:#fff }
.ep-carte__t3 { font-family:var(--ep-f-titre); font-size:14px; font-weight:700;
  display:flex; align-items:center; gap:8px; margin:14px 0 12px; color:var(--ep-encre) }
.ep-page { display:grid; gap:16px }
.ep-crm-suggestions { display:grid; gap:8px; margin-top:10px }
.muted { color:var(--ep-texte-3); font-size:12.5px }

/* ══════════════════════════════════════════════════════════════════════════
   COQUILLE RÉELLE — v5.22
   Mon rapport de couverture ne scannait que #view : la coquille, les
   surcouches et les notifications étaient hors de son champ et sont restées
   sans aucune règle. Ce sont les noms de classes réellement présents dans
   admin/index.html, relevés sur la page servie.
   ══════════════════════════════════════════════════════════════════════════ */

/* Bandeau d'environnement */
.ep-bandeau-dev { position:fixed; top:0; left:50%; transform:translateX(-50%); z-index:98;
  background:var(--ep-alerte); color:#fff; padding:5px 18px; border-radius:0 0 var(--ep-r-1) var(--ep-r-1);
  font-size:10.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase }

/* Le conteneur de contenu porte deux classes : .ep-contenu et .main */
.main { min-width:0 }

/* Sélecteur d'établissement et pied du rail : noms réels */
.ep-rail__parc-l { display:block; font-size:9.5px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ep-texte-3) }
.ep-rail__parc-select { border:0; background:none; color:var(--ep-encre); font-size:13px;
  font-weight:600; width:100%; padding:0; font-family:var(--ep-f-ui); cursor:pointer }
.ep-rail__moi-t { flex:1; min-width:0 }

/* ── Volet latéral ────────────────────────────────────────────────────── */
.drawer-overlay { position:fixed; inset:0; background:rgba(43,29,20,.42); z-index:60 }
.drawer { position:fixed; top:0; right:0; bottom:0; width:min(560px,100vw); z-index:61;
  display:flex; flex-direction:column; background:var(--ep-surface); box-shadow:var(--ep-om-3) }
.drawer.large { width:min(1080px,100vw) }
.drawer-head { padding:14px 20px; border-bottom:1px solid var(--ep-ligne);
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex:0 0 auto }
.drawer-head h2, .drawer-head h3 { font-family:var(--ep-f-titre); font-size:16px; font-weight:700 }
.drawer-body { flex:1; overflow-y:auto; padding:18px 20px; min-height:0 }
.drawer-foot { padding:13px 20px; border-top:1px solid var(--ep-ligne);
  display:flex; gap:9px; align-items:center; flex-wrap:wrap; flex:0 0 auto }
.drawer-close { width:32px; height:32px; display:grid; place-items:center; border:0;
  border-radius:var(--ep-r-1); background:none; color:var(--ep-texte-2); cursor:pointer }
.drawer-close:hover { background:var(--ep-canvas); color:var(--ep-texte) }

/* ── Surcouche modale ─────────────────────────────────────────────────── */
.modal-overlay { position:fixed; inset:0; z-index:62; background:rgba(43,29,20,.42);
  display:grid; place-items:center; padding:24px }
.modal { width:min(620px,100%); max-height:88vh; display:flex; flex-direction:column;
  background:var(--ep-surface); border-radius:var(--ep-r-2); box-shadow:var(--ep-om-3); overflow:hidden }
.modal--rep { width:min(880px,100%) }
.modal-head { padding:14px 20px; border-bottom:1px solid var(--ep-ligne);
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex:0 0 auto }
.modal-head h2, .modal-head h3 { font-family:var(--ep-f-titre); font-size:16px; font-weight:700 }
.modal-body { flex:1; overflow-y:auto; padding:18px 20px; min-height:0 }
.modal-foot { padding:13px 20px; border-top:1px solid var(--ep-ligne);
  display:flex; gap:9px; align-items:center; justify-content:flex-end; flex-wrap:wrap; flex:0 0 auto }

/* ── Notifications ────────────────────────────────────────────────────── */
.ep-toasts, .toast-zone { position:fixed; bottom:18px; right:18px; z-index:90; display:grid; gap:8px }

/* ── Listes du module expérience ──────────────────────────────────────── */
.exp-list-row { display:flex; align-items:center; gap:12px; padding:11px 0;
  border-bottom:1px solid var(--ep-ligne) }
.exp-list-row:last-child { border-bottom:0 }
.exp-list-row__main { flex:1; min-width:0 }
.exp-list-row__title { font-weight:600; font-size:13.5px; color:var(--ep-encre) }
.exp-list-row__meta { font-size:12px; color:var(--ep-texte-3); margin-top:3px; line-height:1.45 }
.exp-badge { display:inline-flex; align-items:center; gap:5px; padding:3px 9px;
  border-radius:var(--ep-r-3); font-size:11px; font-weight:600; white-space:nowrap;
  background:var(--ep-canvas); color:var(--ep-texte-2); border:1px solid var(--ep-ligne) }
.exp-badge--good   { background:var(--ep-ok-voile);     color:var(--ep-ok);     border-color:var(--ep-ok-bord) }
.exp-badge--info   { background:var(--ep-info-voile);   color:var(--ep-info);   border-color:var(--ep-info-bord) }
.exp-badge--warn   { background:var(--ep-attn-voile);   color:var(--ep-attn);   border-color:var(--ep-attn-bord) }
.exp-badge--danger { background:var(--ep-alerte-voile); color:var(--ep-alerte); border-color:var(--ep-alerte-bord) }

/* Pastilles de vue dans le rail de segments */
.ep-pt--alerte { background:var(--ep-alerte) }
.ep-pt--attn   { background:var(--ep-attn) }
.ep-pt--neutre { background:var(--ep-texte-3) }
