/* Pasivite 2.8.49.7 — garde-fou de lisibilité PWA.
   Règle : aucune carte d'action sombre ne doit conserver un texte sombre. */

body.mobile-mode.pwa-app-shell .pv-list > a,
body.mobile-mode.pwa-app-shell .pv-list > a:link,
body.mobile-mode.pwa-app-shell .pv-list > a:visited,
body.mobile-mode.pwa-app-shell .pv-list > article {
  background:#fff !important;
  color:#12355b !important;
  border-color:#d7e2e9 !important;
  box-shadow:none !important;
  text-decoration:none !important;
}
body.mobile-mode.pwa-app-shell .pv-list > a:hover,
body.mobile-mode.pwa-app-shell .pv-list > a:focus,
body.mobile-mode.pwa-app-shell .pv-list > a:focus-visible,
body.mobile-mode.pwa-app-shell .pv-list > a:active {
  background:#f2fbf8 !important;
  color:#12355b !important;
  border-color:#79c9bd !important;
  outline:none !important;
}
body.mobile-mode.pwa-app-shell .pv-list > a:focus-visible {
  box-shadow:0 0 0 3px rgba(40,184,178,.18) !important;
}
body.mobile-mode.pwa-app-shell .pv-list > a strong,
body.mobile-mode.pwa-app-shell .pv-list > a:link strong,
body.mobile-mode.pwa-app-shell .pv-list > a:visited strong,
body.mobile-mode.pwa-app-shell .pv-list > a:hover strong,
body.mobile-mode.pwa-app-shell .pv-list > a:focus strong,
body.mobile-mode.pwa-app-shell .pv-list > a:active strong {
  color:#12355b !important;
}
body.mobile-mode.pwa-app-shell .pv-list > a small,
body.mobile-mode.pwa-app-shell .pv-list > a:link small,
body.mobile-mode.pwa-app-shell .pv-list > a:visited small,
body.mobile-mode.pwa-app-shell .pv-list > a:hover small,
body.mobile-mode.pwa-app-shell .pv-list > a:focus small,
body.mobile-mode.pwa-app-shell .pv-list > a:active small {
  color:#617487 !important;
}
body.mobile-mode.pwa-app-shell .pv-list > a .pv-arrow,
body.mobile-mode.pwa-app-shell .pv-list > a:visited .pv-arrow,
body.mobile-mode.pwa-app-shell .pv-list > a:hover .pv-arrow,
body.mobile-mode.pwa-app-shell .pv-list > a:focus .pv-arrow,
body.mobile-mode.pwa-app-shell .pv-list > a:active .pv-arrow {
  color:#6d8295 !important;
}
body.mobile-mode.pwa-app-shell .pv-list > a .pv-mark {
  background:#e6f8f4 !important;
  color:#087b70 !important;
  border:0 !important;
}

/* Les états sélectionnés doivent être identifiables sans inverser brutalement les couleurs. */
body.mobile-mode.pwa-app-shell .pv-list > a[aria-current="page"],
body.mobile-mode.pwa-app-shell .pv-list > a.is-active,
body.mobile-mode.pwa-app-shell .pv-list > a.is-current {
  background:#edf8f6 !important;
  color:#12355b !important;
  border-color:#72c9bd !important;
}

/* Accueil PWA : textes et cartes toujours lisibles. */
body.mobile-mode.pwa-app-shell .mobile-home-v473,
body.mobile-mode.pwa-app-shell .mobile-pro-home-v370 {
  color:#12355b !important;
}
body.mobile-mode.pwa-app-shell :is(.mobile-home-v473,.mobile-pro-home-v370) .pv-section {
  color:#12355b !important;
}
body.mobile-mode.pwa-app-shell :is(.mobile-home-v473,.mobile-pro-home-v370) .pv-section-head h2,
body.mobile-mode.pwa-app-shell :is(.mobile-home-v473,.mobile-pro-home-v370) .pv-section-head strong {
  color:#12355b !important;
}
body.mobile-mode.pwa-app-shell :is(.mobile-home-v473,.mobile-pro-home-v370) .pv-section-head p,
body.mobile-mode.pwa-app-shell :is(.mobile-home-v473,.mobile-pro-home-v370) .pv-kicker {
  color:#65788b !important;
}

/* Actualités / nouveautés dans la PWA : fonds clairs et contraste explicite. */
body.mobile-mode.pwa-app-shell .pv-news-page,
body.mobile-mode.pwa-app-shell .pv-news-content,
body.mobile-mode.pwa-app-shell .pv-news-article {
  background:#f5f9fb !important;
  color:#12355b !important;
}
body.mobile-mode.pwa-app-shell .pv-news-card,
body.mobile-mode.pwa-app-shell .pv-product-guide-grid > section,
body.mobile-mode.pwa-app-shell .pv-news-empty {
  background:#fff !important;
  color:#12355b !important;
}
body.mobile-mode.pwa-app-shell .pv-news-card :is(h2,h3,strong),
body.mobile-mode.pwa-app-shell .pv-product-guide-grid :is(h2,h3,strong),
body.mobile-mode.pwa-app-shell .pv-news-article :is(h1,h2,h3,strong) {
  color:#12355b !important;
}
body.mobile-mode.pwa-app-shell .pv-news-card p,
body.mobile-mode.pwa-app-shell .pv-product-guide-grid p,
body.mobile-mode.pwa-app-shell .pv-news-article p {
  color:#536b80 !important;
}
body.mobile-mode.pwa-app-shell .pv-news-card a,
body.mobile-mode.pwa-app-shell .pv-news-card a:visited {
  color:#12355b !important;
}

/* Boutons : quand le fond est marine, le texte reste blanc dans tous les états. */
body.mobile-mode.pwa-app-shell :is(.primary-button,.big-submit,.promise-primary),
body.mobile-mode.pwa-app-shell :is(.primary-button,.big-submit,.promise-primary):visited,
body.mobile-mode.pwa-app-shell :is(.primary-button,.big-submit,.promise-primary):hover,
body.mobile-mode.pwa-app-shell :is(.primary-button,.big-submit,.promise-primary):focus,
body.mobile-mode.pwa-app-shell :is(.primary-button,.big-submit,.promise-primary):active {
  color:#fff !important;
}

/* Taille minimale de lecture : éviter les micro-libellés sur les cartes PWA. */
@media (max-width:760px){
  body.mobile-mode.pwa-app-shell .pv-list > a strong{font-size:.86rem !important;line-height:1.22 !important}
  body.mobile-mode.pwa-app-shell .pv-list > a small{font-size:.70rem !important;line-height:1.32 !important;margin-top:3px !important}
  body.mobile-mode.pwa-app-shell .pv-list > a{min-height:62px !important;padding:10px 11px !important}
  body.mobile-mode.pwa-app-shell .pv-list .pv-mark{width:34px !important;height:34px !important}
}

/* 2.8.50.0 — garde-fous finaux : aucun texte sombre sur une surface PWA sombre. */
body.mobile-mode.pwa-app-shell .observatory-index-panel,
body.mobile-mode.pwa-app-shell .observatory-index-panel :is(h1,h2,h3,h4,p,span,strong,small,b,em,time){color:#fff!important}
body.mobile-mode.pwa-app-shell .observatory-index-panel a,
body.mobile-mode.pwa-app-shell .observatory-index-panel a:visited{color:#fff!important;text-decoration:underline}
body.mobile-mode.pwa-app-shell :is(a.psv-action-button--primary,a.psv-action-button--service),
body.mobile-mode.pwa-app-shell :is(a.psv-action-button--primary,a.psv-action-button--service) :is(span,strong,small,b,em){color:#fff!important}
body.mobile-mode.pwa-app-shell .mobile-pro-partner-actions a:first-child,
body.mobile-mode.pwa-app-shell .mobile-pro-partner-actions a:first-child :is(span,strong,small,b,em){color:#fff!important}

/* Contraste des surfaces de navigation et états actifs. */
body.mobile-mode.pwa-app-shell .mobile-mode-switcher span[aria-current="page"],
body.mobile-mode.pwa-app-shell .mobile-mode-switcher span[aria-current="page"] *{color:#fff!important}
body.mobile-mode.pwa-app-shell :is(.primary-button,.big-submit,.promise-primary),
body.mobile-mode.pwa-app-shell :is(.primary-button,.big-submit,.promise-primary) :is(span,strong,small,b,em){color:#fff!important}

/* Barres de progression CSP-safe. */
.professional-guidance-progress progress,.maturity-axis-bar progress{display:block;width:100%;height:8px;border:0;border-radius:99px;overflow:hidden;background:#e8eef2;appearance:none;-webkit-appearance:none}
.professional-guidance-progress progress::-webkit-progress-bar,.maturity-axis-bar progress::-webkit-progress-bar{background:#e8eef2;border-radius:99px}
.professional-guidance-progress progress::-webkit-progress-value,.maturity-axis-bar progress::-webkit-progress-value{background:#28b8b2;border-radius:99px}
.professional-guidance-progress progress::-moz-progress-bar,.maturity-axis-bar progress::-moz-progress-bar{background:#28b8b2;border-radius:99px}

/* Utilitaires CSP-safe remplaçant les anciens styles inline. */
.psv-mt-1-25{margin-top:1.25rem!important}.psv-mb-1-25{margin-bottom:1.25rem!important}.psv-mt-1{margin-top:1rem!important}.psv-my-1{margin-top:1rem!important;margin-bottom:1rem!important}.psv-inline-form{display:inline!important}.psv-status-ok{color:#087f5b!important}.psv-status-warn{color:#a15c00!important}
