/* =========================================================================
   MUSLIMA WORK — LA PAGE DE CANDIDATURE

   Depuis le 21/10/2026, la page tient en deux pièces : un bandeau prune —
   l'annonce à gauche, la progression à droite — et une carte blanche qui
   porte les étapes, en ligne, puis les champs. Ces pièces sont communes avec
   « Publier une annonce » : elles vivent dans parcours.css.

   Les CHAMPS et les BOUTONS restent ceux de refonte.css — .soum-etape,
   .soum__grille, .field, .input, .soum-nav —, les mêmes que sur la page de
   dépôt. Ce fichier ne garde que ce qui appartient en propre à la
   candidature.

   Ce qui appartient en propre à la candidature :

     1. le fil de retour ;
     2. la note des candidatures hors formulaire ;
     5. les dépôts de documents ;
     6. la vérification ;
     7. le consentement, l'envoi et la confirmation ;
     8. les petits écrans ;
     9. le mouvement réduit.

   Le numéro 4 — les champs — a disparu avec les règles qu'il portait.
   ========================================================================= */

/* =========================================================================
   0. JETONS
   ========================================================================= */
:root{
  /* Le fond de la zone pleine largeur autour du header : il doit être le
     premier arrêt du dégradé du bandeau, sans quoi une couture paraît sous
     la barre. Voir --fond-offre dans header.css. */
  --fond-candidature:#FAF5F9;

  --cd-prune:#3A1B2A;                  /* titres, libellés, texte important  */
  --cd-encre:#6B6069;                  /* texte secondaire                   */
  --cd-doux:#8A7B85;                   /* mentions, aides, unités            */
  --cd-framboise:#C32371;
  --cd-filet:#F1E8EE;                  /* tous les filets internes           */
  --cd-bord:#EADFE6;                   /* le contour des champs              */
  --cd-ivoire:var(--mw-info-fond);     /* le fond des dépôts (teintes.css)   */
  --cd-lilas:var(--mw-info-fond);      /* la note de confidentialité         */
}

.cand-page{overflow-x:clip}

/* =========================================================================
   1. LE FIL DE RETOUR
   ========================================================================= */
/* Le fil de retour, au-dessus de la carte : il dit d'où l'on vient sans
   disputer quoi que ce soit au titre. Il ne paraît qu'à partir de la
   tablette — sur téléphone, la barre du haut porte déjà sa flèche. */
.cand-fil{
  display:none;align-items:center;gap:8px;
  margin:0 0 14px;
  font-size:14px;font-weight:500;color:var(--cd-encre);
}
.cand-fil svg{width:16px;height:16px;transition:transform .16s ease}
@media (hover:hover){
.cand-fil:hover{color:var(--cd-prune)}
}
@media (hover:hover){
.cand-fil:hover svg{transform:translateX(-3px)}
}
.cand-fil:focus-visible{outline:2px solid var(--cd-framboise);outline-offset:3px;border-radius:6px}


/* =========================================================================
   2. LA NOTE DE CONFIDENTIALITÉ
   Dans la colonne principale, au-dessus des champs qu'elle concerne — et non
   en carte séparée. Un bandeau lilas, un bouclier, deux lignes.
   ========================================================================= */
.cand-note{
  display:flex;align-items:flex-start;gap:11px;
  margin:0 0 26px;padding:13px 16px;
  background:var(--cd-lilas);
  border:1px solid var(--mw-info-bord);border-radius:10px;
  font-size:13.5px;line-height:1.55;color:var(--mw-info-texte);
}
.cand-note__ico{flex:none;display:inline-flex;color:var(--mw-info-ico)}
.cand-note__ico svg{width:17px;height:17px}

/* La candidature qui se dépose chez le recruteur : pas d'étapes, pas de
   colonne. La note, deux liens, une mention — dans la carte, au même
   rembourrage que le formulaire. */
.cand-externe,.cand-fin{max-width:720px;margin-inline:auto}
.cand-externe{padding:0}

/* L'erreur d'un champ, sous le champ — jamais en haut de page. Le message
   du serveur, lui, passe par « .soum__erreur », en tête du panneau. */
.cand-err{
  display:flex;align-items:flex-start;gap:7px;
  margin:0;font-size:13.5px;line-height:1.5;font-weight:500;color:#A3283F;
}
.cand-err::before{
  content:"";flex:none;margin-top:.42em;
  width:6px;height:6px;border-radius:50%;background:#C2405C;
}

/* Ce qu'on dit quand il n'y a rien à dire : aucune pièce demandée, aucun
   document joint. Une phrase, au ton du reste. */
.cand-rien{margin:0;font-size:14.5px;line-height:1.6;color:var(--cd-encre)}

/* =========================================================================
   3. LES ÉTAPES SONT DES FIELDSET

   La page de dépôt enveloppe ses étapes dans des <div>. Ici ce sont des
   <fieldset> — et il y a une raison : c'est sur eux que la validation
   interroge ses champs, et c'est eux qu'on masque d'un seul attribut. Les
   remplacer par des <div> aurait coûté une réécriture de validerEtape() pour
   un gain nul.

   Mais un fieldset porte une bordure par défaut, et le navigateur encoche sa
   légende dedans : cela redessinait une carte autour de chaque étape, à
   l'intérieur de la carte — précisément ce qu'on voulait supprimer. On retire
   la bordure et on rend la légende à son rang de premier élément.

   `min-width:0` n'est pas décoratif : sans lui, un fieldset refuse de se
   réduire sous la largeur de son contenu, et un long nom de fichier dans la
   liste des dépôts ferait déborder la page sur téléphone.
   ========================================================================= */
fieldset.soum-etape{margin:0;padding:0;border:0;min-width:0}
/* La légende n'est pas un élément de la grille : le « gap » de l'étape ne
   joue pas sous elle, et la description venait s'y coller (0 px). Elle
   reçoit donc elle-même les 12 px de la page de dépôt (« .soum-etape__tete »). */
fieldset.soum-etape > legend{
  display:block;float:none;width:100%;padding:0;margin:0 0 12px;
}

/* =========================================================================
   5. LES DÉPÔTS DE DOCUMENTS

   Même matière que les champs : fond ivoire, contour prune très pâle, coins
   de douze. Le pointillé dit qu'on peut y déposer ; il devient plein dès
   qu'un document est là.

   Toute la zone est cliquable parce que c'est un <label> : le champ de
   fichier, lui, est hors écran mais bien présent — il garde le focus au
   clavier, et c'est lui que le formulaire envoie.
   ========================================================================= */
.cand-depots{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.cand-depot{
  display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;
  padding:16px;
  background:var(--cd-ivoire);
  border:1px dashed var(--mw-info-bord-fort);border-radius:14px;
  transition:border-color .16s ease,background-color .16s ease;
}
.cand-depot.est-rempli{border-style:solid;border-color:var(--cd-bord);background:#fff}
.cand-depot.est-survol{border-color:var(--cd-framboise);background:#FFF9FC}

/* Hors écran, jamais « display:none » : un champ non rendu n'est plus
   focalisable, et le dépôt ne serait plus accessible au clavier. */
.cand-depot__champ{
  position:absolute;width:1px;height:1px;
  margin:-1px;padding:0;border:0;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;
}
.cand-depot__zone{display:flex;align-items:center;gap:14px;cursor:pointer}
.cand-depot__ico{
  flex:none;display:inline-grid;place-items:center;
  width:42px;height:42px;border-radius:12px;
  background:#fff;color:var(--mw-info-ico);
}
.cand-depot__ico svg{width:21px;height:21px}
.cand-depot__c{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;min-width:0;flex:1 1 auto}
.cand-depot__n{font-size:14.5px;font-weight:600;color:var(--cd-prune);line-height:1.35}
.cand-depot__r{font-size:12.5px;color:var(--cd-doux);line-height:1.4}
/* Le bouton du dépôt : un contour, jamais un aplat — l'aplat de la page est
   réservé au bouton qui fait avancer. */
.cand-depot__btn{
  flex:none;
  padding:9px 15px;border-radius:10px;
  border:1px solid #DCD0D8;background:#fff;
  font-size:13.5px;font-weight:600;color:var(--cd-prune);white-space:nowrap;
  transition:border-color .16s ease,color .16s ease;
}
@media (hover:hover){
.cand-depot__zone:hover .cand-depot__btn{border-color:var(--cd-framboise);color:var(--cd-framboise)}
}
/* Le focus clavier se voit sur la zone entière, puisque c'est elle qu'on
   actionne. */
.cand-depot__champ:focus-visible + .cand-depot__zone .cand-depot__btn{
  border-color:var(--cd-framboise);color:var(--cd-framboise);
  box-shadow:0 0 0 3px rgba(195,35,113,.13);
}

/* --- La lettre de motivation, au choix -------------------------------------
   Un encadré violet très clair (teintes.css, « information ») : le nom de la
   pièce, deux options côte à côte, puis la seule zone active — la zone de
   texte, ou le dépôt du PDF. Les options sont des boutons radio habillés :
   on les parcourt aux flèches, et le choix part avec le formulaire. */
fieldset.cand-lettre{
  display:grid;gap:14px;min-width:0;
  margin:0;padding:16px;
  background:var(--mw-info-fond);
  border:1px solid var(--mw-info-bord);border-radius:14px;
}
.cand-lettre__t{
  float:left;width:100%;padding:0;margin:0;
  font-size:14.5px;font-weight:600;color:var(--cd-prune);line-height:1.35;
}
.cand-lettre__t + *{clear:both}
.cand-lettre__choix{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;
  padding:4px;border-radius:11px;
  background:#fff;border:1px solid var(--mw-info-bord);
}
.cand-lettre__opt{
  position:relative;display:flex;align-items:center;justify-content:center;
  min-height:40px;padding:8px 12px;border-radius:8px;cursor:pointer;
  font-size:14px;font-weight:600;color:var(--mw-info-texte);text-align:center;
  transition:background-color .16s ease,color .16s ease;
}
/* Le bouton radio reste dans le parcours au clavier, hors de la vue. */
.cand-lettre__opt input{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap;
}
@media (hover:hover){
.cand-lettre__opt:hover{color:var(--cd-prune)}
}
.cand-lettre__opt.est-choisi{
  background:var(--mw-avant-fond);color:var(--mw-avant-titre);
  box-shadow:inset 0 0 0 1px var(--mw-avant-bord);
}
.cand-lettre__opt:has(input:focus-visible){outline:2px solid var(--cd-framboise);outline-offset:2px}
.cand-lettre__corps{display:grid;gap:8px;min-width:0}
.cand-lettre__corps[hidden]{display:none}
.cand-lettre .soum__zone{background:#fff}
/* Dans l'encadré, le dépôt reprend le blanc : un violet sur un violet ne se
   lirait plus comme une zone où déposer. */
.cand-lettre .cand-depot{background:#fff}

/* La ligne de confirmation : le document, son nom, son poids, une coche, et
   de quoi le retirer. */
.cand-choisi{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;
  margin:0;padding:10px 12px;
  background:var(--mw-info-fond);border:1px solid var(--mw-info-bord);border-radius:10px;
  font-size:13.5px;color:var(--cd-prune);
}
.cand-choisi__ico{flex:none;display:inline-flex;color:#8E6A80}
.cand-choisi__ico svg{width:16px;height:16px}
/* Un nom de fichier long se coupe plutôt que de pousser la ligne dehors. */
.cand-choisi__n{
  flex:1 1 160px;min-width:0;font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cand-choisi__t{flex:none;color:var(--cd-doux)}
.cand-choisi__ok{flex:none;display:inline-flex;color:#2E7D53}
.cand-choisi__ok svg{width:13px;height:13px}
.cand-choisi__x{
  flex:none;
  padding:4px 2px;border:0;background:none;cursor:pointer;
  font:inherit;font-size:13px;font-weight:600;color:var(--cd-encre);
  text-decoration:underline;text-underline-offset:3px;
}
@media (hover:hover){
.cand-choisi__x:hover{color:#A3283F}
}
.cand-choisi__x:focus-visible{outline:2px solid var(--cd-framboise);outline-offset:2px;border-radius:4px}

/* Le poids total de la candidature. */
.cand-total{
  margin:16px 0 0;padding:11px 13px;
  background:var(--mw-info-fond);border:1px solid var(--mw-info-bord);border-radius:10px;
  font-size:13.5px;line-height:1.55;color:var(--mw-info-texte);
}
.cand-total--alerte{background:#FDF1F3;border-color:#F0D2D9;color:#A3283F;font-weight:500}

/* =========================================================================
   6. LA VÉRIFICATION

   Deux relevés, séparés d'un filet — et non deux cartes dans un panneau qui
   en est déjà une. Chacun a son « Modifier », qui ramène à l'étape et ne
   perd rien : les champs n'ont jamais quitté la page.
   ========================================================================= */
.cand-recap{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.cand-bloc{padding:0 0 22px}
.cand-bloc + .cand-bloc{padding-top:22px;border-top:1px solid var(--cd-filet)}
.cand-bloc:last-child{padding-bottom:0}
.cand-bloc__h{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  margin-bottom:14px;
}
.cand-bloc__h h3,.cand-bloc__h .cand-groupe__t{
  margin:0;font-size:15px;font-weight:600;letter-spacing:-.015em;color:var(--cd-prune);
}
.cand-modif{
  flex:none;
  padding:2px;border:0;background:none;cursor:pointer;
  font:inherit;font-size:13.5px;font-weight:600;color:var(--cd-framboise);
  text-decoration:underline;text-underline-offset:3px;
}
@media (hover:hover){
.cand-modif:hover{color:#8E1A51}
}
.cand-modif:focus-visible{outline:2px solid var(--cd-framboise);outline-offset:2px;border-radius:4px}

.cand-lignes{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0}
.cand-lignes > div{
  display:grid;grid-template-columns:160px minmax(0,1fr);gap:14px;
  font-size:14px;line-height:1.5;
}
.cand-lignes dt{color:var(--cd-doux)}
.cand-lignes dd{margin:0;min-width:0;color:var(--cd-prune);overflow-wrap:anywhere}
.cand-lignes__lien{color:var(--cd-encre)}
.cand-lignes__t{color:var(--cd-doux)}
.cand-lignes__vide{color:#A99CA5;font-style:italic}
.cand-lignes__ok{display:inline-flex;margin-right:6px;color:#2E7D53;vertical-align:-1px}
.cand-lignes__ok svg{width:13px;height:13px}

/* =========================================================================
   7. LE CONSENTEMENT, L'ENVOI ET LA CONFIRMATION
   ========================================================================= */
/* Le consentement suit le récapitulatif : il lui faut l'air d'un bloc à
   part, et la gouttière de l'étape ne joue pas à l'intérieur. */
.soum-etape > .cand-case{margin-top:2px}
.cand-case{
  display:flex;align-items:flex-start;gap:11px;
  font-size:14px;line-height:1.55;font-weight:400 !important;color:#4A3A44;
}
.cand-case input{margin-top:3px;width:18px;height:18px;accent-color:var(--cd-framboise);flex:0 0 auto}
.cand-case input:focus-visible{outline:2px solid var(--cd-framboise);outline-offset:2px}
.cand-case a{color:var(--cd-framboise);text-decoration:underline;text-underline-offset:2px}

/* Le bouton d'envoi est un « .btn--primary » du site, comme celui du dépôt :
   il n'a donc plus ni fond, ni rayon, ni hauteur à lui. Il ne lui reste que
   sa coche et son anneau d'attente. */
.cand-envoi__ok{display:inline-flex;flex:none;opacity:.9}
/* L'attente de l'envoi : un anneau qui tourne, et le bouton hors d'atteinte.
   C'est ce qui empêche le double envoi, avec l'attribut « disabled ». */
.cand-envoi__rond{
  flex:none;width:16px;height:16px;border-radius:50%;
  border:2px solid rgba(255,255,255,.34);border-top-color:#fff;
  animation:candTourne .7s linear infinite;
}
@keyframes candTourne{to{transform:rotate(360deg)}}
.cand-envoi:disabled{opacity:.5;cursor:not-allowed}

.cand-mention{margin:16px 0 0;font-size:13px;color:var(--cd-doux);line-height:1.5}

/* --- Confirmation --------------------------------------------------------- */
.cand-fin{
  display:grid;gap:12px;padding:28px;border-radius:12px;
  background:#F2F9F4;border:1px solid #CCE5D4;color:#1E4B32;font-size:15px;line-height:1.6;
}
.cand-fin__t{margin:0;font-size:20px;font-weight:700;color:#14532D;letter-spacing:-.01em}
.cand-fin p{margin:0}
.cand-fin__s{color:#3F6B50;font-size:14px}
.cand-fin .btn{margin-top:6px;justify-self:start}

/* =========================================================================
   8. PETITS ÉCRANS

   La coquille, le sommaire et les champs se replient tout seuls : ce sont
   les règles de refonte.css, les mêmes que sur la page de dépôt. Il ne reste
   ici que ce qui appartient à la candidature.
   ========================================================================= */
@media (min-width:1024px){
  .cand-fil{display:inline-flex}
}

/* Sans le fil de retour (sous 1024 px), le bandeau touchait l'en-tête :
   « .soum-page.soum-page--depot » (refonte.css) remet à zéro le haut de
   « .parc-sec ». Une respiration, sur cette page seulement. */
@media (max-width:1023.98px){
  .cand-page .soum-page.parc-sec{padding-top:22px}
}

@media (max-width:768px){
  .cand-note{margin-bottom:22px;padding:12px 14px;font-size:13px}

  .cand-lignes > div{grid-template-columns:minmax(0,1fr);gap:2px}
  .cand-lignes dt{font-size:12.5px}

  /* La zone de dépôt se replie : le bouton passe sous le nom du document
     plutôt que de serrer la ligne. */
  .cand-depot__zone{flex-wrap:wrap;gap:12px}
  .cand-depot__c{flex:1 1 150px}
  .cand-depot__btn{flex:1 1 100%;text-align:center}

  .cand-fin{padding:22px 18px}
  .cand-mention{text-align:center}
}


@media (max-width:420px){
  fieldset.cand-lettre{padding:12px}
  /* Deux classes : « .soum label » (refonte.css) fixe 14 px à toute étiquette. */
  .cand-lettre .cand-lettre__opt{padding:8px 4px;font-size:12.5px;letter-spacing:-.01em}
}

/* =========================================================================
   9. MOUVEMENT RÉDUIT
   ========================================================================= */
@media (prefers-reduced-motion:reduce){
  .cand-fil svg{transition:none}
  .cand-fil:hover svg{transform:none}
  .cand-envoi__rond{animation:none}
  .cand-depot,.cand-depot__btn,.cand-lettre__opt{transition:none}
}

/* --- Candidature directe (18/10/2026) ------------------------------------
   Pas d'e-mail recruteur : la page montre le moyen que le recruteur a rendu
   public — WhatsApp, téléphone, instructions — et ne recueille rien. */
.cand-direct__moyens{list-style:none;margin:20px 0 24px;padding:0;display:grid;gap:10px}
.cand-direct__moyens li{
  display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 16px;align-items:baseline;
  padding:14px 16px;border-radius:10px;background:var(--mw-avant-fond);border:1px solid var(--mw-avant-bord);
}
.cand-direct__l{font-size:13px;font-weight:600;color:var(--mw-avant-titre)}
.cand-direct__moyens a{font-size:15px;font-weight:600;color:#951753;text-decoration:underline;text-underline-offset:3px;word-break:break-word}
.cand-direct__instr{font-size:14.5px;line-height:1.6;color:var(--mw-avant-texte);white-space:pre-wrap}
@media (max-width:600px){
  .cand-direct__moyens li{grid-template-columns:minmax(0,1fr)}
}
