/* Product adaptation of the shared Excellia identity. No workflow or permission logic. */
:root {
  --navy: var(--ex-nuit); --gold: var(--ex-or-fonce); --line: var(--ex-filet); --muted: var(--ex-texte-2);
  --couleur-primaire: var(--ex-indigo); --couleur-primaire-hover: var(--ex-indigo-fonce);
  --couleur-primaire-clair: var(--ex-indigo-clair); --couleur-primaire-texte: var(--ex-indigo);
  --couleur-fond: var(--ex-surface); --couleur-surface: var(--ex-blanc);
  --couleur-texte: var(--ex-encre); --couleur-texte-att: var(--ex-texte-2); --couleur-texte-muted: var(--ex-texte-2);
  --couleur-bordure: var(--ex-filet); --couleur-bordure-forte: var(--ex-bordure-champ);
  --couleur-info: var(--ex-indigo); --couleur-info-fond: var(--ex-indigo-clair);
  --rayon-sm: var(--ex-radius); --rayon-md: var(--ex-card-radius); --rayon-lg: var(--ex-card-radius);
  --ombre-sm: none; --ombre-md: none; --ombre-nav: none;
  --police: "Readex Pro","Readex Fallback",Arial,sans-serif;
  --ex-editorial-font: var(--ex-heading-font);
}
body.ex-product { margin: 0; background: var(--ex-surface); letter-spacing: 0; }
.ex-product :is(h1,h2,h3,h4) { font-family: var(--police); font-optical-sizing: auto; font-weight: 550; line-height: 1.3; letter-spacing: -.02em; max-width: none; }
.ex-product h1 { font-size: clamp(2rem,3.5vw,3.5rem); }
.ex-product h2 { font-size: 1.55rem; }
.ex-product h3 { font-size: 1.15rem; }
.ex-product p { max-width: 70ch; color: var(--ex-texte-2); line-height: 1.65; }
.ex-product :is(a,button,summary) { touch-action: manipulation; }
.ex-product :is(a,button,summary,input,select,textarea,[tabindex]):focus-visible { outline: 2px solid var(--ex-indigo) !important; outline-offset: 3px !important; }
.ex-product :is(button,.btn,.bouton) { border-radius: var(--ex-radius); box-shadow: none; min-height: 40px; font-family: var(--police); font-weight: 500; }
.ex-product :is(button,.btn,.bouton):hover { transform: none; box-shadow: none; }
.ex-product :is(.btn-primary,.btn-primaire,.bouton:not(.secondaire)) { background: var(--ex-indigo); border-color: var(--ex-indigo); color: var(--ex-blanc); text-decoration: none; }
.ex-product :is(.btn-primary,.btn-primaire,.bouton:not(.secondaire)):hover { background: var(--ex-indigo-fonce); color: var(--ex-blanc); }
.ex-product :is(.btn-secondaire,.bouton.secondaire,.btn-outline-primary) { color: var(--ex-indigo); border: 1px solid var(--ex-indigo); background: transparent; text-decoration: none; }
.ex-product :is(.btn-secondaire,.bouton.secondaire,.btn-outline-primary):hover { background: var(--ex-indigo-clair); }
.ex-product :is(.btn,.bouton) { display: inline-flex; align-items: center; justify-content: center; gap: 12px; white-space: normal; }
.ex-product :is(.carte,.card,.offre,.mission-resume,.pipeline-carte,.pipeline-colonne,.bandeau,.bienvenue) { border-radius: var(--ex-card-radius); box-shadow: none; border-color: var(--ex-filet); }
.ex-product :is(.carte,.card,.offre,.mission-resume):hover { transform: none; box-shadow: none; }
.ex-product :is(input,select,textarea,.form-control,.form-select) { border-color: var(--ex-bordure-champ); border-radius: var(--ex-radius); color: var(--ex-encre); font-family: var(--police); }
.ex-product :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]) { min-height: 44px; max-width: 100%; }
.ex-product [aria-invalid=true] { border-color: var(--ex-rouge); }
.ex-product :is(.erreur,.erreur-champ,.text-danger) { color: var(--ex-rouge) !important; }
.ex-product :is(.eyebrow,.pastille,.barre-app-marque,.entete-label) { letter-spacing: 0; text-transform: none; }
.ex-product .eyebrow,.ex-product .bienvenue > .pastille,.ex-product .numero { display: none; }
.ex-product .ds-logo { width: 180px; height: auto; object-fit: contain; flex-shrink: 0; }
.ex-product .ds-arrow { width: 24px; height: 24px; flex-shrink: 0; }
.ex-product .entete { max-width: none; background: var(--ex-blanc); padding: 24px max(24px,calc((100vw - 1248px)/2)); gap: 24px; }
.ex-product .marque { text-decoration: none; gap: 24px; letter-spacing: 0; font-weight: 500; color: var(--ex-encre); }
.ex-product .marque > span { font-size: 1.05rem; padding-inline-start: 24px; border-inline-start: 1px solid var(--ex-filet); }
.ex-product .entete nav { gap: 8px; }
.ex-product .entete nav a { min-height: 44px; border-radius: var(--ex-radius); color: var(--ex-indigo); }
.ex-product .entete nav a[aria-current] { background: var(--ex-indigo-clair); }
.ex-product .entete .deconnexion { border-left: 0; border-inline-start: 1px solid var(--ex-filet); margin-left: 0; }
.ex-portal > main { width: min(100%,1296px); max-width: 1296px; padding: 64px 24px 80px; }
.ex-portal .hero { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 80px; align-items: start; padding: 0 0 64px; }
.ex-portal .hero h1 { font-family: var(--ex-editorial-font); font-size: clamp(2.5rem,4vw,4.4rem); max-width: 18ch; line-height: 1.15; }
.ex-portal .hero .intro { font-size: 1.1rem; }
.ex-portal .hero .signature { border: 0; padding-inline: 0; color: var(--ex-indigo); font-size: 1rem; font-weight: 500; }
.ex-portal .bienvenue { border-top: 3px solid var(--ex-or); padding: 36px; }
.ex-portal .bienvenue h2 { margin-top: 0; }
.ex-portal .bouton { min-height: 48px; padding: 13px 20px; }
.ex-portal .titre-page { max-width: 75ch; margin-bottom: 48px; }
.ex-portal .titre-page h1 { font-size: clamp(2.25rem,4vw,3.4rem); max-width: 24ch; }
.ex-portal .offres { gap: 24px; }
.ex-portal .offre { padding: 32px; }
.ex-portal .offre h2 { font-size: 1.5rem; }
.ex-portal .offre h2 a { color: var(--ex-encre); text-decoration: none; }
.ex-portal .offre h2 a:hover { color: var(--ex-indigo); text-decoration: underline; }
.ex-product .pastille { background: var(--ex-surface); color: var(--ex-texte-2); border: 0; font-size: .75rem; font-weight: 500; }
.ex-product .pastille[data-status=open],.ex-product .pastille[data-status=importe] { background: var(--ex-vert-pale); color: var(--ex-vert-fonce); }
.ex-product .pastille[data-status=attente] { background: var(--ex-indigo-clair); color: var(--ex-indigo); }
.ex-portal .offre-detail { max-width: 880px; }
.ex-portal .offre-pied .bouton { width: auto; }
.ex-product .identite-neutre { min-height: 200px; margin: 0 0 48px; display: grid; place-items: center; border: 1px solid var(--ex-filet); border-radius: var(--ex-card-radius); background: var(--ex-blanc); }
.ex-product .identite-neutre .ds-logo { width: 260px; height: auto; }
.ex-product .conclusion { text-align: start; font-weight: 500; }
.ex-product .statut { border-left: 0; border-inline-start: 3px solid var(--ex-indigo); background: var(--ex-indigo-clair); color: var(--ex-indigo); }
.ex-product .statut.acceptee { border-color: var(--ex-vert-fonce); background: var(--ex-vert-pale); color: var(--ex-vert-fonce); }
.ex-product .statut.refusee { border-color: var(--ex-gris); background: var(--ex-surface); color: var(--ex-texte-2); }
.ex-product :is(.notification,.flash-success) { background: var(--ex-vert-pale); color: var(--ex-vert-fonce); border-color: var(--ex-vert-fonce); }
.ex-product .parcours-public { display: flex; gap: 8px; }
.ex-product .parcours-public li { border-radius: var(--ex-radius); background: var(--ex-surface); color: var(--ex-texte-2); }
.ex-product .parcours-public [aria-current=step] { background: var(--ex-indigo-clair); color: var(--ex-indigo); border-bottom: 2px solid var(--ex-indigo); }
.ex-product .suivi-candidat { position: relative; padding-inline-start: 24px; border-inline-start: 2px solid var(--ex-filet); margin-inline-start: 8px; }
.ex-product .suivi-candidat::before { content: ""; position: absolute; inset-inline-start: -6px; top: 24px; width: 10px; height: 10px; background: var(--ex-indigo); border-radius: 50%; }
.ex-product > footer { background: var(--ex-nuit); color: var(--ex-blanc); padding-inline: max(24px,calc((100vw - 1248px)/2)); }
.ex-product > footer p,.ex-product > footer a { color: var(--ex-indigo-clair); }
.ex-product > footer strong { letter-spacing: 0; }
.ex-product > footer a:focus-visible { outline-color: var(--ex-or-clair) !important; }
.ex-workspace { --bs-body-font-family: var(--police); --bs-body-color: var(--ex-encre); --bs-body-bg: var(--ex-surface); --bs-border-color: var(--ex-filet); }
.ex-workspace :is(h1,h2,h3) { font-family: var(--police); }
.ex-workspace h1 { font-size: clamp(1.8rem,2.5vw,2.5rem); }
.ex-workspace h2 { font-size: 1.35rem; }
.ex-workspace h3 { font-size: 1.05rem; }
.ex-workspace .contenu { max-width: 1536px; padding: 32px 32px 64px; }
.ex-workspace .sidebar-app { background: var(--ex-nuit); color: var(--ex-blanc); }
.ex-workspace .sidebar-app .marque { flex-direction: column; align-items: flex-start; gap: 12px; padding: 42px 24px 12px; margin-bottom: 20px; }
.ex-workspace .sidebar-app .marque .ds-logo { width: 172px; }
.ex-workspace .sidebar-app .marque > span { color: var(--ex-indigo-clair); padding: 0; border: 0; font-size: .9rem; }
.ex-workspace .sidebar-app :is(p,a,summary,button,.sidebar-utilisateur) { color: var(--ex-indigo-clair); }
.ex-workspace .sidebar-app a { text-decoration: none; }
.ex-workspace .sidebar-app :is(a,button,summary):focus-visible { outline-color: var(--ex-or-clair) !important; }
.ex-workspace .sidebar-app :is(.sidebar-lien,.nav-rubrique>summary) { border-radius: var(--ex-radius); font-size: .82rem; min-height: 40px; }
.ex-workspace .sidebar-app :is(.sidebar-lien:hover,.nav-rubrique>summary:hover) { color: var(--ex-blanc); background: var(--ex-indigo); }
.ex-workspace .sidebar-app .sidebar-lien.actif { background: var(--ex-indigo); color: var(--ex-blanc); box-shadow: none; border-inline-start: 2px solid var(--ex-or-clair); }
.ex-workspace .sidebar-app select { color: var(--ex-encre); }
.ex-workspace .barre-app { background: var(--ex-blanc); box-shadow: none; border-bottom: 1px solid var(--ex-filet); }
.ex-workspace .barre-app-marque { font-size: .78rem; }
.ex-workspace .bouton-bascule-sidebar { background: var(--ex-indigo); color: var(--ex-blanc); }
.ex-workspace table { font-variant-numeric: tabular-nums; font-size: .9rem; }
.ex-workspace .table-responsive { max-width: 100%; overflow-x: auto; }
.ex-workspace thead th { position: sticky; top: 0; z-index: 1; background: var(--ex-surface); color: var(--ex-encre); font-weight: 550; }
.ex-workspace :is(.badge,.badge-info) { border-radius: var(--ex-radius); box-shadow: none; font-weight: 500; }
.ex-workspace .badge-info { color: var(--ex-indigo); background: var(--ex-indigo-clair); }
.ex-workspace :is(.badge-ok,.badge-succes) { color: var(--ex-vert-fonce); background: var(--ex-vert-pale); }
.ex-workspace .badge-attention { color: var(--ex-or-fonce); background: var(--ex-or-pale); }
.ex-workspace .pipeline-colonne { border-width: 1px; background: var(--ex-surface); }
.ex-workspace .pipeline-colonne[data-pipeline-etape=Refusee] { background: var(--ex-surface); color: var(--ex-texte-2); }
.ex-workspace .pipeline-colonne[data-pipeline-etape=Recrutee] { background: var(--ex-vert-pale); }
.ex-workspace .pipeline-colonne[data-pipeline-etape=Entretien] { background: var(--ex-or-pale); }
.ex-workspace .pipeline-colonne.pipeline-cible { border-color: var(--ex-indigo); background: var(--ex-indigo-clair); }
.ex-product :is(dialog,.dropdown-menu,.profil-entete>div) { border-radius: var(--ex-card-radius); box-shadow: var(--ex-overlay-shadow); }
.ex-application .candidature { max-width: 900px; padding: 48px 24px; }
.ex-application .candidature header { margin-bottom: 40px; }
.ex-application .candidature header .marque { margin-bottom: 32px; }
.ex-application .candidature > header h1 { font-size: clamp(2rem,4vw,3rem); }
.ex-application .candidature :is(section,fieldset) { border-color: var(--ex-filet); border-radius: var(--ex-card-radius); }
.ex-application .candidature button[type=submit] { background: var(--ex-indigo); color: var(--ex-blanc); min-height: 48px; }
.ex-product :is(h1,h2,h3,p):dir(rtl) { letter-spacing: 0; line-height: 1.8; }
.ex-product :is(h1,h2,h3):dir(rtl) { font-family: "Readex Pro",Arial,sans-serif; }
@media(max-width:1024px) { .ex-portal .hero { gap: 32px; grid-template-columns: minmax(0,1fr); } }
@media(max-width:600px) {
  .ex-portal > main { padding: 40px 24px; }
  .ex-product .entete { padding: 20px 24px; gap: 16px; }
  .ex-product .entete .ds-logo { width: 140px; height: auto; }
  .ex-product .entete .marque { gap: 16px; }
  .ex-product .marque > span { padding-inline-start: 16px; font-size: .9rem; }
  .ex-product .entete nav { width: 100%; gap: 4px; }
  .ex-product .entete nav a { font-size: .8rem; padding-inline: 10px; }
  .ex-product :is(.carte,.bienvenue,.offre) { padding: 24px; }
  .ex-product .hero h1 { font-size: 2.6rem; }
  .ex-product :is(.btn,.bouton,button) { min-height: 44px; }
  .ex-portal .offre-pied .bouton { width: 100%; }
  .ex-workspace .contenu { padding: 24px 16px 48px; }
  .ex-product .ds-logo { max-width: 100%; }
}
@media(prefers-reduced-motion:reduce) { .ex-product *, .ex-product *::before, .ex-product *::after { animation: none !important; transition: none !important; } }
