/* Mise en page de l'application. Requiert assets/ee/tokens/tokens.css et assets/ee/css/components.css. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
img, svg { max-width: 100%; }
p { margin: 0 0 1em; }
h1 { font-size: 30px; }
h2 { font-size: 22px; }
h3 { font-size: 18px; }
:focus-visible { outline: 3px solid var(--ee-bleu); outline-offset: 2px; }

.icone { width: 20px; height: 20px; flex: none; }
.discret { color: var(--ee-ardoise); }
.petit { font-size: var(--ee-fs-small); }
.pile { display: flex; flex-direction: column; gap: var(--ee-space-5); }
.pile--serree { gap: var(--ee-space-3); }
.rangee { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ee-space-3); }
.rangee--ecart { justify-content: space-between; }
.grille { display: grid; gap: var(--ee-space-4); }
.grille--2 { grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); }
.grille--3 { grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); }
.grille--kpi { grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)); }
.grille--moitie { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ee-space-3); }
.ee-btn--bloc { width: 100%; }
.ee-btn--sm { height: var(--ee-touch-min); padding: 0 16px; font-size: 14px; }
.ee-btn--fantome { background: transparent; color: inherit; border-color: currentColor; }
.ee-card--plate { padding: 0; overflow: hidden; }
.ee-card__tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; padding: 16px 20px; border-bottom: 1px solid var(--ee-trait); }
.ee-card__titre { font: 700 18px var(--ee-font-display); margin: 0; }
.ee-card__corps { padding: 16px 20px; }
.ee-note--bleu { color: var(--ee-bleu); font-weight: 600; align-items: center; }
.ee-note--vert { background: var(--ee-statut-regulier-bg); color: var(--ee-statut-regulier-text); font-weight: 600; align-items: center; }
.ee-note--or { background: var(--ee-statut-proche-bg); color: var(--ee-statut-proche-text); }
.ee-note--rouge { background: var(--ee-statut-expire-bg); color: var(--ee-statut-expire-text); }
.ee-note ul { margin: 6px 0 0; padding-left: 18px; }
.ee-table td.mono, .mono { font-family: var(--ee-font-mono); }
.ee-table td.numero { font-family: var(--ee-font-mono); color: var(--ee-bleu); white-space: nowrap; }
.ee-table .droite { text-align: right; }
.ee-table a { font-weight: 600; }
.ee-badge { white-space: nowrap; }
.ee-badge--file-1 { background: var(--ee-statut-regulier-bg); color: var(--ee-statut-regulier-text); }
.ee-badge--file-2 { background: var(--ee-statut-regularise-bg); color: var(--ee-statut-regularise-text); }
.ee-badge--file-3 { background: var(--ee-statut-expire-bg); color: var(--ee-statut-expire-text); }
.ee-badge--neutre { background: var(--ee-voile); color: var(--ee-bleu); }
.ee-badge--attente { background: var(--ee-statut-proche-bg); color: var(--ee-statut-proche-text); }
.ee-badge--sans-point::before { display: none; }
.vide { color: var(--ee-ardoise); margin: 0; }

/* Champs */
.ee-field { margin-bottom: var(--ee-space-4); min-width: 0; }
.ee-input, .ee-select, .ee-textarea { width: 100%; min-width: 0; }
.ee-textarea { border-radius: var(--ee-radius-md); border: 1px solid var(--ee-trait-fort); padding: 12px 14px; font: 16px var(--ee-font-body); color: var(--ee-encre); background: #fff; }
.ee-textarea:focus { outline: none; border: 1.5px solid var(--ee-bleu); box-shadow: var(--ee-shadow-focus); }
input[type=date].ee-input, .ee-input--mono { font-family: var(--ee-font-mono); font-size: 15px; }
input[type=file].ee-input { height: auto; padding: 11px 14px; }
.ee-field--erreur .ee-input, .ee-field--erreur .ee-select, .ee-field--erreur .ee-textarea { border-color: var(--ee-rouge); }
.ee-erreur { font-size: var(--ee-fs-caption); color: var(--ee-statut-expire-text); font-weight: 600; }
.ee-optionnel { font-weight: 400; color: var(--ee-ardoise); }
.champs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 0 var(--ee-space-4); }
.champs .large { grid-column: 1 / -1; }
.segments { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); background: #E4E8EF; border-radius: var(--ee-radius-lg); padding: 4px; }
.segments label { display: flex; align-items: center; justify-content: center; height: var(--ee-touch-min); border-radius: 9px; font-size: 14px; font-weight: 600; color: var(--ee-ardoise); cursor: pointer; }
.segments input { position: absolute; opacity: 0; pointer-events: none; }
.segments input:checked + label { background: #fff; color: var(--ee-bleu); font-weight: 700; box-shadow: var(--ee-shadow-segment); }
.segments input:focus-visible + label { outline: 3px solid var(--ee-bleu); outline-offset: 1px; }
.case { display: flex; align-items: center; gap: 10px; min-height: var(--ee-touch-min); font-size: 15px; cursor: pointer; }
.case input { width: 20px; height: 20px; accent-color: var(--ee-bleu); flex: none; }

/* Marque */
.marque { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; }
.marque img { width: 30px; height: 30px; }
.marque__nom { font: 800 17px var(--ee-font-display); line-height: 1.15; }
.marque__sous { display: block; font: 400 13px var(--ee-font-body); color: #AEB8CC; }
.marque__sur { display: block; font: 700 11px var(--ee-font-body); letter-spacing: .14em; color: var(--ee-or); text-transform: uppercase; }

/* Coque voyageur */
.barre { background: #fff; border-bottom: 1px solid var(--ee-trait); }
.barre__in { max-width: 1120px; margin: 0 auto; padding: 12px 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px; }
.barre nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.barre nav a { display: inline-flex; align-items: center; min-height: var(--ee-touch-min); padding: 0 12px; border-radius: var(--ee-radius-md); text-decoration: none; font-weight: 600; font-size: 15px; color: var(--ee-encre); }
.barre nav a:hover, .barre nav a[aria-current] { background: var(--ee-voile); color: var(--ee-bleu); }
.page { max-width: 1120px; margin: 0 auto; padding: 28px 20px 64px; }
.page--etroite { max-width: 620px; }
.page--fiche { max-width: 760px; }
.pied { border-top: 1px solid var(--ee-trait); background: #fff; }
.pied__in { max-width: 1120px; margin: 0 auto; padding: 20px; font-size: var(--ee-fs-caption); color: var(--ee-ardoise); display: flex; flex-wrap: wrap; gap: 6px 24px; justify-content: space-between; }
.sombre { background: var(--ee-encre); color: #fff; }
.sombre .barre { background: transparent; border-color: #1A2C52; }
.sombre .barre nav a { color: #C9D4EC; }
.sombre .barre nav a:hover { background: #1A2C52; color: #fff; }
.sombre .pied { background: transparent; border-color: #1A2C52; }
.sombre .pied__in { color: #AEB8CC; }
.sombre .page > a { color: #C9D4EC; }

/* Coque agent */
.entete-agent { background: var(--ee-encre); color: #fff; }
.entete-agent__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 14px 28px; }
.entete-agent nav { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 14px; }
.entete-agent nav a { display: inline-flex; align-items: center; min-height: var(--ee-touch-min); padding: 0 12px; border-radius: 8px; color: #C9D4EC; text-decoration: none; font-weight: 600; }
.entete-agent nav a:hover, .entete-agent nav a[aria-current] { background: #1A2C52; color: #fff; }
.entete-agent__agent { padding: 8px 12px; border: 1px solid #2A3B5E; border-radius: 8px; }
.entete-agent button { background: none; border: 0; color: #C9D4EC; font: 600 14px var(--ee-font-body); min-height: var(--ee-touch-min); padding: 0 12px; border-radius: 8px; cursor: pointer; }
.entete-agent button:hover { background: #1A2C52; color: #fff; }
.poste { width: 100%; max-width: 1400px; margin: 0 auto; padding: 24px 28px 56px; }
.poste__colonnes { display: flex; flex-wrap: wrap; gap: 24px; }
.poste__principal { flex: 999 1 560px; min-width: 0; }
.poste__lateral { flex: 1 1 360px; min-width: 0; }
.titre-page { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 22px; }
.titre-page__sur { font-size: 13px; font-weight: 600; color: var(--ee-ardoise); margin-bottom: 4px; }
.recherche { display: flex; flex-wrap: wrap; gap: 10px; }
.recherche .ee-input { flex: 1 1 320px; height: var(--ee-button-h-lg); font-size: 17px; }
.voyageur { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
.voyageur__infos { flex: 1 1 280px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.voyageur__nom { font: 800 28px var(--ee-font-display); letter-spacing: -0.01em; overflow-wrap: anywhere; }
.voyageur__numero { font: 600 15px var(--ee-font-mono); color: var(--ee-bleu); }
.photo { width: 96px; height: 120px; border-radius: var(--ee-radius-md); background: #E4E8EF; object-fit: cover; display: flex; align-items: center; justify-content: center; text-align: center; font-size: 11px; font-weight: 600; color: var(--ee-ardoise); flex: none; }
.encart { background: var(--ee-fond); border-radius: var(--ee-radius-lg); padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.encart--or { background: var(--ee-statut-proche-bg); color: var(--ee-statut-proche-text); }
.encart__libelle { font-size: 12px; color: var(--ee-ardoise); }
.encart--or .encart__libelle { color: inherit; }
.encart__valeur { font: 600 17px var(--ee-font-mono); color: var(--ee-encre); }
.etat-ok { color: var(--ee-statut-regulier-dot); font-weight: 700; }
.etat-ko { color: var(--ee-statut-expire-text); font-weight: 700; }
details.repli > summary { list-style: none; cursor: pointer; }
details.repli > summary::-webkit-details-marker { display: none; }
details.repli[open] > summary { margin-bottom: var(--ee-space-3); }

/* Coque administration */
.admin { display: flex; flex-wrap: wrap; min-height: 100vh; }
.admin__nav { flex: 1 1 240px; max-width: 100%; background: var(--ee-encre); color: #fff; padding: 24px 16px; display: flex; flex-direction: column; gap: 28px; }
.admin__nav .marque { padding: 0 8px; }
.admin__liens { display: flex; flex-direction: column; gap: 4px; font-size: 15px; }
.admin__liens a, .admin__liens button { display: flex; align-items: center; gap: 10px; min-height: var(--ee-touch-min); padding: 0 12px; border-radius: var(--ee-radius-md); color: #C9D4EC; text-decoration: none; background: none; border: 0; font: inherit; width: 100%; text-align: left; cursor: pointer; }
.admin__liens a:hover, .admin__liens button:hover { background: #14244A; color: #fff; }
.admin__liens a[aria-current] { background: #1A2C52; color: #fff; font-weight: 700; }
.admin__liens a[aria-current] .icone { color: var(--ee-or); }
.admin__liens .icone { width: 18px; height: 18px; }
.admin__compteur { margin-left: auto; padding: 2px 8px; border-radius: 999px; background: var(--ee-rouge); color: #fff; font-size: 12px; font-weight: 700; }
.admin__separateur { border: 0; border-top: 1px solid #1A2C52; margin: 8px 0; width: 100%; }
.admin__qui { font-size: 13px; color: #AEB8CC; padding: 0 12px; }
.admin__main { flex: 999 1 640px; min-width: 0; padding: 28px 32px 56px; display: flex; flex-direction: column; gap: 22px; }
.kpi { background: #fff; border: 1px solid var(--ee-trait); border-radius: var(--ee-radius-xl); padding: 18px; display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: inherit; }
.kpi__libelle { font-size: 13px; font-weight: 600; color: var(--ee-ardoise); }
.kpi__valeur { font: 800 34px var(--ee-font-display); line-height: 1.1; font-variant-numeric: tabular-nums; }
.kpi__detail { font-size: 13px; color: var(--ee-ardoise); }
.kpi--or { background: var(--ee-statut-proche-bg); border-color: #F0D97A; }
.kpi--or .kpi__libelle, .kpi--or .kpi__detail { color: var(--ee-statut-proche-text); }
.kpi--rouge { background: var(--ee-statut-expire-bg); border-color: #F1B5C1; }
.kpi--rouge .kpi__libelle, .kpi--rouge .kpi__detail, .kpi--rouge .kpi__valeur { color: var(--ee-statut-expire-text); }
.jauge { height: 6px; border-radius: 3px; background: #E4E8EF; display: flex; }
.jauge span { background: var(--ee-bleu); border-radius: 3px; }
.barres { display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.barre-h { display: grid; grid-template-columns: minmax(110px, 40%) 1fr 52px; align-items: center; gap: 12px; }
.barre-h__piste { height: 14px; background: var(--ee-voile); border-radius: 4px; display: flex; }
.barre-h__piste span { background: var(--ee-bleu); border-radius: 4px; min-width: 3px; }
.barre-h__total { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.empile { display: flex; border-radius: 8px; overflow: hidden; background: var(--ee-voile); }
.empile--files { height: 28px; font-size: 12px; font-weight: 700; color: #fff; }
.empile--files span { display: flex; align-items: center; padding-left: 10px; white-space: nowrap; overflow: hidden; min-width: 0; }
.empile--statuts { height: 18px; border-radius: 6px; }
.fond-file-1, .fond-regulier { background: var(--ee-file-1); }
.fond-file-2, .fond-regularise { background: var(--ee-file-2); }
.fond-file-3, .fond-expire { background: var(--ee-file-3); }
.fond-proche { background: var(--ee-statut-proche-dot); }
.legende { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; font-size: 14px; }
.legende a { display: flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; min-height: 28px; }
.legende a:hover { text-decoration: underline; }
.legende i { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.legende b { margin-left: auto; font-variant-numeric: tabular-nums; }
.pastilles { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; }
.pastilles a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--ee-trait); background: #fff; color: var(--ee-encre); text-decoration: none; font-weight: 600; }
.pastilles a[aria-current] { background: var(--ee-encre); border-color: var(--ee-encre); color: #fff; font-weight: 700; }
.pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 20px; border-top: 1px solid var(--ee-trait); font-size: 14px; }

/* Fiche par étapes */
.fiche-tete { background: #fff; border-bottom: 1px solid var(--ee-trait); }
.fiche-tete__in { max-width: 760px; margin: 0 auto; padding: 16px 20px; }
.progression { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; list-style: none; margin: 0; padding: 0; }
.progression li { display: flex; flex-direction: column; gap: 6px; font-size: 11px; font-weight: 600; color: var(--ee-ardoise); }
.progression li::before { content: ""; height: 4px; border-radius: 2px; background: var(--ee-trait); }
.progression li.faite::before { background: var(--ee-bleu); }
.progression li.active { color: var(--ee-encre); font-weight: 700; }
.progression li.active::before { background: var(--ee-or); }
.etape { border: 0; padding: 0; margin: 0 0 var(--ee-space-8); min-width: 0; }
.etape legend { padding: 0; margin-bottom: var(--ee-space-4); }
.etape__rang { display: block; font-size: 13px; font-weight: 600; color: var(--ee-ardoise); margin-bottom: 4px; }
.etape__titre { font: 800 28px var(--ee-font-display); letter-spacing: -0.01em; }
.js-etapes .etape:not(.courante) { display: none; }
.fiche-actions { display: flex; gap: 10px; }
.fiche-actions .ee-btn--primaire { flex: 1; }
.js-etapes .fiche-actions { position: sticky; bottom: 0; background: #fff; border-top: 1px solid var(--ee-trait); margin: 0 -20px; padding: 14px 20px; }
.fiche--agent .etape { background: #fff; border: 1px solid var(--ee-trait); border-radius: var(--ee-radius-xl); padding: 20px 20px 4px; margin-bottom: var(--ee-space-5); }
.fiche--agent .etape__titre { font-size: 20px; }

/* Document de préenregistrement et suivi */
.document { background: #fff; color: var(--ee-encre); border-radius: var(--ee-radius-2xl); overflow: hidden; }
.document__tete { padding: 18px 20px 0; }
.document__titre { font: 800 22px var(--ee-font-display); text-transform: uppercase; letter-spacing: .01em; line-height: 1.1; }
.document__qr { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 20px; }
.document__qr svg { width: 200px; height: 200px; padding: 12px; border: 1px solid var(--ee-trait); border-radius: var(--ee-radius-xl); }
.document__numero { font: 600 22px var(--ee-font-mono); letter-spacing: .04em; color: var(--ee-bleu); text-align: center; overflow-wrap: anywhere; }
.document__details { border-top: 1px dashed var(--ee-trait-fort); padding: 18px 20px 20px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.document__details .large { grid-column: 1 / -1; }
.donnee__libelle { font-size: 13px; color: var(--ee-ardoise); }
.donnee__valeur { font-weight: 700; overflow-wrap: anywhere; }
.document .photo { margin: 0 auto 4px; }
.mention { text-align: center; font-size: 13px; color: #AEB8CC; margin: 0; }
.valide { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: var(--ee-or); color: var(--ee-encre); font-size: 13px; font-weight: 700; }
.sejour { background: var(--ee-bleu); color: #fff; border-radius: var(--ee-radius-2xl); padding: 20px; display: flex; flex-direction: column; gap: 16px; }
.sejour__corps { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.sejour__anneau { position: relative; width: 128px; height: 128px; flex: none; }
.sejour__anneau svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.sejour__compte { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.sejour__compte b { font: 800 34px var(--ee-font-display); line-height: 1; }
.sejour__compte span { font-size: 12px; color: #C9D4EC; }
.sejour__dates { display: flex; flex-direction: column; gap: 10px; }
.sejour__dates small { display: block; font-size: 13px; color: #C9D4EC; }
.sejour__dates b { font: 700 18px var(--ee-font-display); }
.sejour__dates .limite { color: var(--ee-or); }
.sejour__pied { border-top: 1px solid rgba(255,255,255,.15); padding-top: 12px; font-size: 13px; color: #C9D4EC; }
.frise { list-style: none; margin: 0; padding: 0; }
.frise li { position: relative; padding: 0 0 18px 26px; }
.frise li:last-child { padding-bottom: 0; }
.frise li::before { content: ""; position: absolute; left: 0; top: 5px; width: 12px; height: 12px; border-radius: 50%; background: var(--ee-bleu); }
.frise li::after { content: ""; position: absolute; left: 5px; top: 19px; bottom: 0; width: 2px; background: var(--ee-trait); }
.frise li:last-child::after { display: none; }
.frise li.verte::before { background: var(--ee-file-1); }
.frise li.avenir::before { background: #fff; border: 2px solid var(--ee-trait-fort); }
.frise li.avenir b { color: var(--ee-ardoise); }
.frise li.rouge::before { background: var(--ee-rouge); }
.frise small { display: block; font-size: 14px; color: var(--ee-ardoise); }

/* Page vitrine */
.vitrine section { padding: 56px 20px; }
.vitrine__in { max-width: 1120px; margin: 0 auto; }
.heros { background: var(--ee-bleu); color: #fff; }
.heros__in { display: flex; flex-wrap: wrap; align-items: center; gap: 40px; }
.heros__texte { flex: 1 1 460px; min-width: 0; }
.heros h1 { font-size: clamp(32px, 5vw, 48px); margin: 12px 0 16px; }
.heros p { font-size: var(--ee-fs-body-lg); color: #DCE5F7; max-width: 56ch; }
.heros .ee-overline { color: var(--ee-or); }
.heros__carte { flex: 1 1 300px; max-width: 380px; background: #fff; color: var(--ee-encre); border-radius: var(--ee-radius-2xl); overflow: hidden; }
.heros__carte .document__qr svg { width: 150px; height: 150px; }
.chiffre { font: 800 56px var(--ee-font-display); line-height: 1; color: var(--ee-bleu); }
.section-titre { max-width: 62ch; margin-bottom: 28px; }
.section-titre h2 { font-size: clamp(24px, 3.4vw, 32px); margin: 8px 0 10px; }
.section-titre p { color: var(--ee-ardoise); font-size: var(--ee-fs-body-lg); margin: 0; }
.fond-blanc { background: #fff; }
.fond-encre { background: var(--ee-encre); color: #fff; }
.fond-encre .section-titre p, .fond-encre .discret { color: #AEB8CC; }
.fond-encre .ee-overline { color: var(--ee-or); }
.atout { display: flex; flex-direction: column; gap: 10px; }
.atout h3 { margin: 4px 0 0; }
.atout p { margin: 0; color: var(--ee-ardoise); }
.atout .ee-icon-pill svg { width: 24px; height: 24px; }
.voie { display: flex; flex-direction: column; gap: 12px; }
.voie__rang { width: 44px; height: 44px; border-radius: 50%; background: var(--ee-bleu); color: #fff; font: 800 18px var(--ee-font-display); display: flex; align-items: center; justify-content: center; }
.voie ul, .liste { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
.parcours { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 16px; counter-reset: pas; }
.parcours li { counter-increment: pas; background: #14244A; border-radius: var(--ee-radius-xl); padding: 18px; }
.parcours li::before { content: counter(pas); display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--ee-or); color: var(--ee-encre); font: 800 16px var(--ee-font-display); margin-bottom: 12px; }
.parcours b { display: block; font: 700 17px var(--ee-font-display); margin-bottom: 4px; }
.parcours span { font-size: 14px; color: #C9D4EC; }
.files { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 16px; }
.file { background: #fff; border: 1px solid var(--ee-trait); border-radius: var(--ee-radius-xl); overflow: hidden; }
.file__tete { color: #fff; font: 800 15px var(--ee-font-display); letter-spacing: .06em; padding: 10px 18px; }
.file__corps { padding: 16px 18px; }
.file__corps b { display: block; margin-bottom: 4px; }
.file__corps p { margin: 0; color: var(--ee-ardoise); font-size: 14px; }
.faq details { background: #fff; border: 1px solid var(--ee-trait); border-radius: var(--ee-radius-lg); padding: 0 18px; }
.faq details + details { margin-top: 10px; }
.faq summary { min-height: 56px; display: flex; align-items: center; font-weight: 700; cursor: pointer; }
.faq details p { color: var(--ee-ardoise); }
.appel { text-align: center; }
.appel .rangee { justify-content: center; }

@media (max-width: 640px) {
    .poste, .admin__main { padding-left: 16px; padding-right: 16px; }
    .entete-agent__in { padding: 12px 16px; }
    .vitrine section { padding: 40px 16px; }
    .legende { grid-template-columns: 1fr; }
}

@media print {
    .barre, .pied, .no-print, .entete-agent, .admin__nav { display: none !important; }
    body, .sombre { background: #fff !important; color: var(--ee-encre); }
    .document { border: 1px solid var(--ee-trait-fort); }
    .mention { color: var(--ee-ardoise); }
}

/* Sélecteur de langue */
.langues { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--ee-trait); border-radius: 999px; }
.langues a { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; min-height: 38px !important; padding: 0 8px !important; border-radius: 999px !important; font-size: 13px !important; font-weight: 700 !important; text-decoration: none; }
.langues a[aria-current] { background: var(--ee-bleu) !important; color: #fff !important; }
.sombre .langues, .entete-agent .langues, .admin__nav .langues { border-color: #2A3B5E; }
.admin__nav .langues a { width: auto; color: #C9D4EC; }
.entete-agent .langues a[aria-current], .admin__nav .langues a[aria-current], .sombre .langues a[aria-current] { background: var(--ee-or) !important; color: var(--ee-encre) !important; }

/* Arabe : écriture de droite à gauche */
:lang(ar) { --ee-font-display: 'Noto Kufi Arabic', 'Noto Sans Arabic', 'Geeza Pro', 'Segoe UI', Tahoma, sans-serif; --ee-font-body: 'Noto Sans Arabic', 'Geeza Pro', 'Segoe UI', Tahoma, sans-serif; }
[dir=rtl] h1, [dir=rtl] h2, [dir=rtl] h3, [dir=rtl] .ee-display, [dir=rtl] .voyageur__nom, [dir=rtl] .etape__titre, [dir=rtl] .document__titre { letter-spacing: 0; line-height: 1.35; }
[dir=rtl] .ee-overline, [dir=rtl] .marque__sur, [dir=rtl] .ee-table th { letter-spacing: 0; }
[dir=rtl] .ee-table th { text-align: right; }
[dir=rtl] .ee-table .droite { text-align: left; }
[dir=rtl] .barre-h__total { text-align: left; }
[dir=rtl] .admin__compteur, [dir=rtl] .legende b { margin-left: 0; margin-right: auto; }
[dir=rtl] .admin__liens a, [dir=rtl] .admin__liens button { text-align: right; }
[dir=rtl] .empile--files span { padding-left: 0; padding-right: 10px; }
[dir=rtl] .ee-note ul, [dir=rtl] .voie ul, [dir=rtl] .liste { padding-left: 0; padding-right: 20px; }
[dir=rtl] .frise li { padding: 0 26px 18px 0; }
[dir=rtl] .frise li::before { left: auto; right: 0; }
[dir=rtl] .frise li::after { left: auto; right: 5px; }
[dir=rtl] .mono, [dir=rtl] .numero, [dir=rtl] .voyageur__numero, [dir=rtl] .document__numero, [dir=rtl] .encart__valeur, [dir=rtl] .ee-input--mono, [dir=rtl] input[type=date], [dir=rtl] input[type=tel], [dir=rtl] input[type=email] { direction: ltr; unicode-bidi: isolate; }
[dir=rtl] .ee-input--mono, [dir=rtl] input[type=date], [dir=rtl] input[type=tel], [dir=rtl] input[type=email] { text-align: right; }
[dir=rtl] .ee-table td.numero, [dir=rtl] .ee-table td.mono { text-align: right; }

/* Droits d'un profil */
.domaine { border: 1px solid var(--ee-trait); border-radius: var(--ee-radius-lg); padding: 10px 14px; margin: 0; min-width: 0; }
.domaine legend { font: 700 14px var(--ee-font-display); padding: 0 6px; }
.domaine .case { font-size: 14px; align-items: flex-start; padding: 6px 0; min-height: 0; }
.domaine .case input { margin-top: 1px; }

/* Bouton présenté comme un lien de navigation */
.lien-nav { display: inline-flex; align-items: center; min-height: var(--ee-touch-min); padding: 0 12px; border: 0; border-radius: var(--ee-radius-md); background: none; font: 600 15px var(--ee-font-body); color: var(--ee-encre); cursor: pointer; }
.lien-nav:hover { background: var(--ee-voile); color: var(--ee-bleu); }
.sombre .lien-nav { color: #C9D4EC; }
.sombre .lien-nav:hover { background: #1A2C52; color: #fff; }
