/* Variante CD62 : reprend les jetons du socle (--fsu-*, --lift-*) ; rien n'est redéfini ici. */
.fpvp-cd62-banner{
  margin:0 0 14px;padding:12px 16px;border-left:4px solid var(--fsu-blue,#307baa);
  background:var(--fsu-soft,#f5f7f9);border-radius:8px;font-size:14px;line-height:1.5;color:var(--fsu-ink,#151515);
}
.fpvp-cd62-banner strong{display:block;margin-bottom:3px}
.fpvp-cd62-banner p{margin:0 0 8px}

/* Rapport CD62 (lot 3) : tableau du régime indemnitaire, pastilles d'état, listes et détails à déplier.
   Couleurs : vert = vérifié, jaune = à vérifier, bleu = information. Jamais de rouge. */
.fpvp-cd62-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0;max-width:100%}
.fpvp-cd62-table{border-collapse:collapse;width:100%;font-size:.88rem;line-height:1.35}
.fpvp-cd62-table th,.fpvp-cd62-table td{padding:7px 8px;border-bottom:1px solid var(--fsu-line,#e2e4e7);text-align:left;vertical-align:top}
/* 0.18.0 : le texte d'une cellule passe à la ligne (plus de défilement horizontal) ; les montants, écrits avec des
   espaces insécables, restent d'un seul tenant. */
.fpvp-cd62-table td{font-variant-numeric:tabular-nums;white-space:normal}
.fpvp-cd62-table th[scope="row"]{font-weight:600}
.fpvp-cd62-table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.02em;opacity:.8}
.fpvp-cd62-chip{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}
.fpvp-cd62-chip-vert{background:#e9f5e3;color:#2f6b1c}
.fpvp-cd62-chip-orange{background:#fef3dc;color:#7a5709}
.fpvp-cd62-chip-info{background:#e6f0f7;color:#1f5a80}
.fpvp-cd62-days{font-weight:600}
/* 0.19.0 : sources et dates sans transparence (contraste de 3,65:1 mesuré avec opacity:.8 ; 4,5:1 au moins requis). */
.fpvp-cd62-source{font-size:13px}
.fpvp-cd62-around{margin:6px 0 10px;padding-left:1.1em;display:grid;gap:4px}
/* Lot 31 : listes des niveaux d'encadrement, des rappels et des cas particuliers d'une IFSE, comme la liste des métiers. */
.fpvp-cd62-niveaux,.fpvp-cd62-rappels,.fpvp-cd62-cas{margin:6px 0 10px;padding-left:1.1em;display:grid;gap:6px}
.fpvp-cd62-more{margin:8px 0}
.fpvp-cd62-more>summary{cursor:pointer;font-weight:600;color:var(--fsu-blue,#307baa)}
.fpvp-cd62-more blockquote{margin:8px 0;padding:6px 10px;border-left:3px solid var(--fsu-line,#e2e4e7);font-size:.9rem}
/* Lot 3b : lisibilité (une carte = une idée, détail dépliable), blocs visuels de « Demain » et « Vous situer ». */
/* 0.19.0 : intitulé d'un dépliant haut d'au moins 44 px (cible tactile ; 28 px mesurés avec padding:4px 0). */
.fpvp-cd62-more>summary{list-style-position:inside;padding:11px 0;min-height:44px;box-sizing:border-box}
.fpvp-cd62-more[open]>summary{margin-bottom:4px}
.fpvp-cd62-more>:not(summary){margin-left:2px}
.fpvp-cd62-explain{font-size:.9rem}
.fpvp-cd62-note{margin:0 0 10px;padding:8px 10px;border-left:4px solid var(--fsu-yellow,#efb33e);background:#fdf6e7;border-radius:6px;font-weight:600;font-size:.9rem}
.fpvp-cd62-limits{margin:4px 0 0;padding-left:1.1em;display:grid;gap:4px;font-size:.92rem}
.fpvp-cd62-share{font-size:1rem}
.fpvp-cd62-share-date{display:block;margin-top:3px;font-size:13px}
.fpvp-cd62-share b{font-size:1.35rem;font-variant-numeric:tabular-nums;color:var(--fsu-blue,#307baa)}
.fpvp-cd62-step{display:flex;align-items:stretch;gap:10px;margin:6px 0 10px}
.fpvp-cd62-step-box{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border:1px solid var(--fsu-line,#e2e4e7);border-radius:10px;background:var(--fsu-soft,#f5f7f9);text-align:center}
.fpvp-cd62-step-box b{font-size:1.15rem}
.fpvp-cd62-step-box small{font-size:.78rem;opacity:.8}
.fpvp-cd62-step-next{border-color:var(--fsu-blue,#307baa);background:#e6f0f7}
.fpvp-cd62-step-arrow{align-self:center;font-size:1.4rem;color:var(--fsu-blue,#307baa)}
.fpvp-cd62-gain{margin:0 0 8px;font-size:1rem}
.fpvp-cd62-gain b{font-size:1.6rem;color:#2f6b1c;font-variant-numeric:tabular-nums}
.fpvp-cd62-bars{list-style:none;margin:8px 0;padding:0;display:grid;gap:10px}
.fpvp-cd62-bars li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center}
.fpvp-cd62-bar-label{grid-column:1 / -1;font-size:.9rem;line-height:1.3}
.fpvp-cd62-bar-label small{opacity:.75}
.fpvp-cd62-bar{display:block;height:12px;border-radius:6px;background:var(--fsu-line,#e2e4e7);overflow:hidden}
.fpvp-cd62-bar i{display:block;height:100%;border-radius:6px;background:#9bbfd8}
.fpvp-cd62-bars b{font-variant-numeric:tabular-nums;font-size:.9rem;white-space:nowrap}
.fpvp-cd62-bars em{grid-column:1 / -1;justify-self:end;font-style:normal;font-size:.82rem;color:#2f6b1c;font-variant-numeric:tabular-nums}
.fpvp-cd62-bar-mine .fpvp-cd62-bar i{background:var(--fsu-blue,#307baa)}
.fpvp-cd62-bar-mine .fpvp-cd62-bar-label{font-weight:700}
.fpvp-cd62-voie{margin:10px 0 4px;font-weight:700;font-size:.92rem}
.fpvp-cd62-check,.fpvp-cd62-gains{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:5px;font-size:.92rem;line-height:1.35}
.fpvp-cd62-check li{display:grid;grid-template-columns:1.6em 1fr;align-items:start}
.fpvp-cd62-check li>.fpvp-cd62-check-mark{display:inline-flex;justify-content:center;align-items:center;width:1.3em;height:1.3em;border-radius:50%;font-weight:700;font-size:.8rem}
.fpvp-cd62-check-ok>.fpvp-cd62-check-mark{background:#e9f5e3;color:#2f6b1c}
.fpvp-cd62-check-todo>.fpvp-cd62-check-mark{background:#fef3dc;color:#7a5709}
.fpvp-cd62-check-no>.fpvp-cd62-check-mark{background:var(--fsu-soft,#f5f7f9);color:#555;border:1px solid var(--fsu-line,#e2e4e7)}
/* 0.19.0 : la pastille (✓, ?, ○) est décorative ; son sens est dit au lecteur d'écran par un texte hors écran. Un critère
   du Département écrit en liste garde ses puces, sous sa phrase d'introduction. */
.fpvp-cd62-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.fpvp-cd62-check-text{min-width:0}
.fpvp-cd62-sous{margin:4px 0 2px;padding-left:1.1em;list-style:disc;display:block}
.fpvp-cd62-check .fpvp-cd62-sous li{display:list-item;margin:2px 0}
.fpvp-cd62-check .fpvp-cd62-articulation{margin:6px 0 2px;padding:6px 9px;border-left:3px solid var(--fsu-yellow,#efb33e);background:#fdf6e7;border-radius:5px;font-size:.88rem}
.fpvp-cd62-gains li{padding-left:1em;position:relative}
.fpvp-cd62-gains li::before{content:"•";position:absolute;left:0;color:#2f6b1c;font-weight:700}
@media (max-width: 480px){
  .fpvp-cd62-table{font-size:.8rem}
  .fpvp-cd62-table th,.fpvp-cd62-table td{padding:6px 5px}
  .fpvp-cd62-chip{padding:2px 6px;font-size:.72rem;white-space:normal}
  .fpvp-cd62-table td:last-child{white-space:normal;width:1%}
}
/* 0.18.0 : tableaux de contrôle (primes, prévoyance, mutuelle, cotisations, retenues) sans défilement horizontal. Dans
   une carte étroite (téléphone, ou carte en demi-largeur sur ordinateur), chaque ligne devient un bloc : intitulé et
   résultat sur la première ligne, puis les autres cellules précédées de l'intitulé de leur colonne (attribut
   data-label). Le conteneur « fpvp-carte » est le corps de la carte, déclaré par le rapport du vérificateur général. */
.fpvp-cd62-bareme{margin:6px 0 10px;padding-left:1.1em;display:grid;gap:4px}
@container fpvp-carte (max-width:520px){
  .fpvp-cd62-table-wrap{overflow-x:visible}
  .fpvp-rw .table-scroll:has(> .fpvp-cd62-table){overflow-x:visible}
  .fpvp-cd62-table,.fpvp-cd62-table tbody{display:block;width:100%}
  .fpvp-cd62-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}
  .fpvp-cd62-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:10px 0;border-bottom:1px solid var(--fsu-line,#e2e4e7)}
  .fpvp-cd62-table th[scope="row"],.fpvp-cd62-table td{display:block;padding:0;border:0}
  .fpvp-cd62-table th[scope="row"]{grid-column:1;grid-row:1}
  .fpvp-cd62-table td:last-child{grid-column:2;grid-row:1;justify-self:end;text-align:right;width:auto}
  .fpvp-cd62-table td:not(:last-child){grid-column:1 / -1}
  .fpvp-cd62-table td[data-label]::before{content:attr(data-label) " : ";opacity:.75}
}
/* Consentement facultatif (statistiques, apprentissage des libellés) : la même case unique que le parcours général,
   décochée par défaut, proposée aussi aux agents du Département depuis la 0.9.1 (décision du 23/09/2026). */
/* Masques prépositionnés : message sous le guide de l'éditeur. Jamais de rouge pour un état. */
.fpvp-cd62-mask-note{margin:10px 0 0;padding:9px 11px;border-left:4px solid var(--fsu-blue,#307baa);background:var(--fsu-soft,#f3f5f7);border-radius:8px;font-size:.86rem;line-height:1.4;color:var(--fsu-ink,#151515)}
.fpvp-cd62-mask-note-adaptive,.fpvp-cd62-mask-note-manual{border-left-color:var(--fsu-yellow,#efb33e);background:#fdf6e7}
/* Calibration administrateur */
.fpvp-cd62-calibration-app{max-width:1180px;margin-top:16px}
.fpvp-cd62-calibration-panel{margin-top:12px;padding:12px 16px;background:#fff;border:1px solid #dcdcde;border-radius:8px}
.fpvp-cd62-mask-note-ok{display:block;margin:6px 0 0;min-height:36px;padding:4px 12px;font-size:.82rem}
/* Formulaire « Être recontacté par la FSU » (0.7.0) : bouton discret, fenêtre par-dessus le rapport. */
.fpvp-cd62-contact-link{margin:10px 0 0;font-size:.9rem}
.fpvp-cd62-contact-link a{color:var(--fsu-blue,#307baa);font-weight:600;text-decoration:underline}
.fpvp-cd62-contact-fab{
  position:fixed;right:18px;bottom:18px;z-index:1200;
  padding:10px 16px;border:1px solid var(--fsu-blue,#307baa);border-radius:999px;
  background:#fff;color:var(--fsu-blue,#307baa);font-size:.86rem;font-weight:600;
  box-shadow:0 6px 18px rgba(21,21,21,.16);cursor:pointer;
}
.fpvp-cd62-contact-fab:hover,.fpvp-cd62-contact-fab:focus-visible{background:var(--fsu-soft,#f5f7f9)}
@media (max-width: 640px){
  .fpvp-cd62-contact-fab{left:12px;right:12px;bottom:12px;width:auto;text-align:center;font-size:.82rem;padding:10px 12px}
}
.fpvp-cd62-contact-backdrop{
  position:fixed;inset:0;z-index:1300;display:none;align-items:center;justify-content:center;
  background:rgba(21,21,21,.5);padding:16px;
}
.fpvp-cd62-contact-backdrop.is-open{display:flex}
body.fpvp-cd62-contact-open{overflow:hidden}
.fpvp-cd62-contact-dialog{
  position:relative;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;
  background:#fff;border-radius:12px;padding:24px 22px;box-shadow:0 20px 60px rgba(21,21,21,.32);
}
.fpvp-cd62-contact-dialog h2{margin:0 12px 6px 0;font-size:1.15rem}
.fpvp-cd62-contact-intro{margin:0 0 12px;font-size:.9rem;opacity:.85}
.fpvp-cd62-contact-point{margin:0 0 12px;padding:8px 10px;border-left:4px solid var(--fsu-blue,#307baa);background:var(--fsu-soft,#f5f7f9);font-size:.86rem;border-radius:6px}
.fpvp-cd62-contact-close{
  position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:999px;border:none;
  background:var(--fsu-soft,#f5f7f9);font-size:1.3rem;line-height:1;cursor:pointer;color:var(--fsu-ink,#151515);
}
.fpvp-cd62-contact-form{display:grid;gap:12px}
.fpvp-cd62-contact-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width: 480px){.fpvp-cd62-contact-row{grid-template-columns:1fr}}
.fpvp-cd62-contact-field label{display:grid;gap:4px;font-size:.85rem;font-weight:600}
.fpvp-cd62-contact-field input,.fpvp-cd62-contact-field select,.fpvp-cd62-contact-field textarea{
  font:inherit;padding:8px 10px;border:1px solid var(--fsu-line,#e2e4e7);border-radius:8px;background:#fff;color:var(--fsu-ink,#151515);
}
.fpvp-cd62-contact-hint{margin:-6px 0 0;font-size:.78rem;opacity:.75}
.fpvp-cd62-contact-consent label{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;font-size:.86rem;line-height:1.35}
.fpvp-cd62-contact-trap{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.fpvp-cd62-contact-status{margin:0;min-height:1.2em;font-size:.86rem;font-weight:600}
.fpvp-cd62-contact-status.is-error{color:#7a5709}
.fpvp-cd62-contact-status.is-success{color:#2f6b1c}
/* Mobile : le socle masque le guide à l'étape récapitulatif ; on n'y garde que le message des masques, en bas. */
@media (max-width: 899px), (orientation: landscape) and (max-height: 720px) and (pointer: coarse) {
  /* En bas, juste au-dessus de la barre d'outils : en haut, il cachait les coordonnées et les zones à vérifier. */
  .fpvp-page.fpvp-editing[data-stage="summary"] .fpvp-guide:has(.fpvp-cd62-mask-note){display:block;top:auto;bottom:var(--fpvp-bottom-bar,150px);max-height:none;padding:0;background:transparent;box-shadow:none}
  .fpvp-page.fpvp-editing[data-stage="summary"] .fpvp-guide:has(.fpvp-cd62-mask-note) > :not(.fpvp-cd62-mask-note){display:none}
  .fpvp-page.fpvp-editing .fpvp-guide .fpvp-cd62-mask-note{margin:6px 0 0;font-size:.8rem;line-height:1.35;box-shadow:0 8px 28px rgba(21,21,21,.22)}
  .fpvp-page.fpvp-editing .fpvp-guide .fpvp-cd62-mask-note-ok{display:block;min-height:34px;margin:6px 0 0;font-size:.8rem}
}

/* Au-dessus de la barre de navigation du rapport (Précédent / Suivant), qui occupe le bas de l'écran. */
.fpvp-cd62-contact-fab{bottom:88px;z-index:2000}
@media (max-width: 640px){ .fpvp-cd62-contact-fab{bottom:84px} }
.fpvp-cd62-contact-summary{margin:16px 0 4px;padding:14px 16px;border-radius:12px;background:#fff4e0;color:#4a3200}
.fpvp-cd62-contact-summary p{margin:0 0 10px;font-weight:600}

/* Sur téléphone, pas de bouton flottant : l'invitation du résumé et les liens des cartes suffisent. */
@media (max-width: 640px){ .fpvp-cd62-contact-fab{display:none !important} }

/* Le rapport est une couche fixe au z-index 2147483000 : bouton et fenêtre de contact doivent passer au-dessus. */
.fpvp-cd62-contact-fab{z-index:2147483600}
.fpvp-cd62-contact-backdrop{z-index:2147483640}

/* Accueil : encart discret vers la version des assistants familiaux (CASAMAAF 62), sous la note de bas d'accueil. */
.fpvp-verifier-webapp .fpvp-cd62-af-lien{margin:6px 16px 0;font-size:13px;line-height:1.35;color:var(--fsu-muted,#64686d);text-align:center}
.fpvp-verifier-webapp .fpvp-cd62-af-lien a{color:var(--fsu-blue,#307baa);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.fpvp-verifier-webapp .fpvp-desktop-hero .fpvp-cd62-af-lien{margin:10px 0 0;text-align:left;font-size:14px}

/* PDF d'assistant familial reconnu sur l'appareil : écran d'arrêt par-dessus tout le parcours (0.14.1). */
.fpvp-cd62-af-arret{position:fixed;inset:0;z-index:2147483600;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(21,21,21,.45);box-sizing:border-box}
.fpvp-cd62-af-arret-carte{box-sizing:border-box;width:100%;max-width:460px;padding:24px 20px 18px;border-radius:24px;background:#fff;color:var(--fsu-ink,#151515);box-shadow:0 20px 50px rgba(21,21,21,.3);display:flex;flex-direction:column;gap:12px}
.fpvp-cd62-af-arret-carte h2{margin:0;font-size:22px;line-height:1.2;font-weight:700;letter-spacing:-.015em}
.fpvp-cd62-af-arret-carte p{margin:0;font-size:15.5px;line-height:1.5;color:var(--fsu-muted,#64686d)}
.fpvp-cd62-af-arret-carte .fpvp-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;margin:0;padding:10px 20px;border-radius:999px;text-align:center;line-height:1.25;text-decoration:none;font-weight:600}

/* 0.20.0 : carte « Indemnité différentielle », calcul posé dans le dépliant (libellé à gauche, montant à droite). */
.fpvp-cd62-calcul{width:100%;border-collapse:collapse;margin:6px 0 10px;font-size:14px;font-variant-numeric:tabular-nums}
.fpvp-cd62-calcul th{text-align:left;font-weight:400;padding:5px 8px 5px 0;color:var(--fsu-muted,#64686d)}
.fpvp-cd62-calcul td{text-align:right;white-space:nowrap;padding:5px 0;font-weight:600;color:var(--fsu-ink,#151515)}
.fpvp-cd62-calcul tr.fpvp-cd62-calcul-resultat th,.fpvp-cd62-calcul tr.fpvp-cd62-calcul-resultat td{border-top:1px solid var(--fsu-line,#e2e4e7)}
