/* PASIVITE.fr V62.11 — cohérence des vues Web, PWA et console.
   Chargée en dernier. Règles ciblées uniquement : chaque bloc corrige un défaut
   constaté à l'audit du 29/10/2026 (captures 390 / 1366 px). */

/* ---------- 1. Navigation publique sur téléphone ---------- */
@media (max-width: 760px) {
  .public-body .public-nav {
    gap: .35rem;
    padding-inline: 12px;
    scroll-snap-type: x proximity;
    -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 36px), transparent 100%);
            mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 36px), transparent 100%);
    padding-right: 36px;
  }
  .public-body .public-nav a {
    scroll-snap-align: start;
    padding: 0 .7rem;
    border-radius: 999px;
    min-height: 44px;
  }
  .public-body .public-nav a[aria-current="page"] { background: var(--blue-soft, #e9f2fb); }
  /* Outils de lecture : jamais hors écran. */
  .public-body .site-header .access-tools { flex-wrap: nowrap; overflow-x: auto; max-width: calc(100vw - 196px); min-width: 0; scrollbar-width: none; }
  .public-body .site-header .brand { flex: 0 0 auto; }
  .public-body .site-header .access-tools::-webkit-scrollbar { display: none; }
  .public-body .site-header .access-tools .tool-button { flex: 0 0 auto; white-space: nowrap; }
}
.public-body .public-nav a[aria-current="page"] { color: var(--navy, #12355b); box-shadow: inset 0 -3px 0 #28b8b2; }

/* ---------- 2. Contrastes cassés ---------- */
/* « Mes mots de passe » : titre bleu nuit sur fond bleu nuit. */
body.public-body .psv-password-hero h1, body.mobile-mode .psv-password-hero h1 { color: #fff !important; }
body.public-body .psv-password-hero h1 span, body.mobile-mode .psv-password-hero h1 span { color: #7fe3d6 !important; }
/* /conseils : bouton secondaire pensé pour un fond sombre, posé sur fond clair. */
.public-body .seo-hero .classic-cta.secondary {
  color: var(--navy, #12355b);
  background: #fff;
  border: 2px solid #b8cbd8;
}
/* Décodeur de promesse : une ancienne règle forçait le texte en blanc sur carte blanche. */
body.public-body main .promise-card,
body.public-body main .promise-card :is(h1,h2,h3,h4,p,strong,b,small,em,label),
body.mobile-mode main .promise-card,
body.mobile-mode main .promise-card :is(h1,h2,h3,h4,p,strong,b,small,em,label) { color: #12355b !important; }
body.public-body main .promise-card .promise-number,
body.mobile-mode main .promise-card .promise-number { color: #fff !important; background: #008f8a; }

/* ---------- 3. Champs de saisie sans style (UA par défaut) ---------- */
/* :where() = spécificité nulle : ne remplace jamais un style déjà défini. */
:where(.public-body, .admin-body) :where(main) :where(
  input[type="text"], input[type="email"], input[type="password"], input[type="search"],
  input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input:not([type]),
  select, textarea) {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  padding: .7rem .9rem;
  border: 2px solid #b8cbd8;
  border-radius: 12px;
  background: #fff;
  color: #12355b;
  font: inherit;
  font-size: 1rem;
}
:where(.public-body, .admin-body) :where(main) :where(textarea) { min-height: 110px; }
:where(.public-body, .admin-body) :where(main) :where(input, select, textarea):focus-visible {
  outline: 3px solid var(--focus, #f6c445);
  outline-offset: 2px;
}
/* Libellé + champ : empilés, lisibles. */
:where(.admin-body) :where(main) label:has(> input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), > select, > textarea) {
  display: grid;
  gap: 6px;
  margin: 0 0 12px;
  font-weight: 700;
}
:where(.admin-body) :where(main) :where(input[type="file"]) { min-height: 0; padding: .5rem; border-style: dashed; }
:where(.admin-body) :where(main) :where(input[type="color"]) { width: 64px; height: 44px; padding: 2px; }

/* ---------- 4. Détails divers ---------- */
/* « Où signaler ? » : titre et texte collés. */
.public-body summary > strong + span,
.public-body summary > b + span { margin-left: .4em; }
.public-body details > summary { gap: .4em; }
/* Pastille « Protection expliquée simplement » : texte hors pastille. */
.public-body :is(.psv-domain-hero, .domain-email-hero) :is(.eyebrow, .psv-kicker, .pv-kicker) {
  display: inline-block;
  padding: .45rem .9rem;
  line-height: 1.3;
}
/* Qui sommes-nous : bloc mission. */
.about-mission { text-align: left; display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin: 24px 0 36px; }
.about-mission article { background: #fff; border: 1px solid var(--line, #ccd7df); border-radius: var(--radius, 18px); padding: 20px 22px; box-shadow: var(--shadow); }
.about-mission h2 { margin: 0 0 10px; font-size: 1.2rem; color: var(--navy, #12355b); }
.about-mission ul { margin: 0; padding-left: 1.1em; display: grid; gap: 8px; }
.about-mission p { margin: 14px 0 0; font-size: .95rem; }
.about-mascots-title { margin: 8px 0 4px; color: var(--navy, #12355b); }
.about-mascots-lead { margin-top: 0; }

/* ---------- 5. Console d'administration ---------- */
/* Pied de page compact (le grand pied de page public n'a rien à faire dans la console). */
.psv-admin-footer {
  display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between;
  max-width: 1280px; margin: 40px auto 0; padding: 18px 20px 28px;
  border-top: 1px solid var(--line, #ccd7df); color: var(--muted, #526473); font-size: .9rem;
}
.admin-console-closed {
  display: inline-block; margin-left: 4px; padding: 1px 7px; border-radius: 999px;
  background: rgba(255,255,255,.18); font-size: .72em; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
}
/* Grilles de chiffres clés : sans règle, chaque carte prenait toute la largeur. */
.admin-body :is(.admin-stat-grid, .admin-kpi-grid, .admin-health-grid) {
  display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); margin: 12px 0 20px;
}
.admin-body :is(.admin-stat-grid, .admin-kpi-grid) > * { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.admin-body :is(.admin-stat-grid, .admin-kpi-grid) > * > strong:first-child { font-size: 1.6rem; line-height: 1.1; color: var(--navy, #12355b); }
.admin-body .admin-health-grid > div {
  display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px;
  background: #f6f9fb; border: 1px solid #dde7ee; border-radius: 10px;
}
.admin-body .admin-health-grid > div > span { font-weight: 700; color: var(--navy, #12355b); }
/* Utilitaires remplaçant les style="" bloqués par la CSP. */
.psv-u-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.psv-u-mt { margin-top: 1rem; }
.psv-u-my { margin: 12px 0; }
.psv-u-autogrid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.psv-u-inline { display: inline; }
.psv-u-full { grid-column: 1 / -1; }
.psv-u-boxed { margin: 14px 0; padding: 16px; border: 1px solid #a6becb; }
.psv-u-scroll { max-height: 220px; overflow: auto; }
/* Vues écrites avec des classes « Bootstrap » jamais chargées. */
.admin-body :is(.row) { display: flex; flex-wrap: wrap; gap: 12px; }
.admin-body :is(.row) > [class*="col-"] { flex: 1 1 220px; min-width: 0; }
.admin-body .col-12 { flex-basis: 100%; }
.admin-body :is(.form-label) { display: block; font-weight: 700; margin-bottom: 6px; }
.admin-body :is(.form-help, .form-text) { color: var(--muted, #526473); font-size: .88rem; }
.admin-body :is(.btn) {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .55rem 1rem;
  border-radius: 10px; border: 2px solid var(--navy, #12355b); background: #fff; color: var(--navy, #12355b);
  font-weight: 700; text-decoration: none; cursor: pointer;
}
.admin-body :is(.btn-primary) { background: var(--navy, #12355b); color: #fff; }
.admin-body :is(.btn-outline-danger) { border-color: var(--red, #b42318); color: var(--red, #b42318); }
.admin-body :is(.btn-sm) { min-height: 36px; padding: .35rem .7rem; font-size: .9rem; }
.admin-body :is(.card-body) { padding: 18px; }
.admin-body :is(.alert-info, .alert-warning) { padding: 12px 14px; border-radius: 10px; margin: 10px 0; }
.admin-body .alert-info { background: var(--blue-soft, #e9f2fb); }
.admin-body .alert-warning { background: var(--orange-soft, #fff4df); color: var(--orange, #8a4b00); }
.admin-body .mb-0 { margin-bottom: 0; } .admin-body .mb-2 { margin-bottom: .5rem; } .admin-body .mb-3 { margin-bottom: 1rem; } .admin-body .mb-4 { margin-bottom: 1.5rem; }
.admin-body .mt-2 { margin-top: .5rem; } .admin-body .mt-3 { margin-top: 1rem; }
.admin-body :is(.table-responsive) { overflow-x: auto; }
.admin-body :is(.form-actions) { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.admin-body :is(.stacked-form, .compact-form) { display: grid; gap: 10px; }
.admin-body :is(.status-badge) { display: inline-block; padding: 2px 9px; border-radius: 999px; background: #eef3f7; font-size: .82rem; font-weight: 700; }
/* Formulaires d'admin « bruts » (Direct, Relais) : une grille lisible. */
.admin-body .admin-shell > form:not([class]) ,
.admin-body .admin-card > form:not([class]) { display: grid; gap: 10px; max-width: 820px; }
/* États vides explicites. */
.admin-body .admin-empty-state {
  padding: 22px; border: 2px dashed #cbd9e3; border-radius: 14px; background: #fafcfd; color: var(--muted, #526473);
}
/* Téléphone : la barre utilisateur du haut débordait ; le compte reste dans la console. */
@media (max-width: 760px) {
  .admin-body .site-header .header-inner { flex-wrap: wrap; gap: 8px; }
  .admin-body .site-header .user-chip { flex-wrap: wrap; width: 100%; justify-content: flex-end; gap: 4px 12px; font-size: .9rem; }
  .admin-body .admin-console-groups { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: thin; }
  .admin-body .admin-console-group > summary { white-space: nowrap; }
}

/* Carte « Besoin d'un accompagnement humain ? » : en colonne, flex-basis 210px devenait une hauteur vide. */
@media (max-width: 680px) {
  .psv-family-cybermois-link > span { flex: 0 0 auto !important; }
}
.admin-body .admin-health-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
/* Bandeau final de l'accueil : titre sombre sur fond sombre. */
body.public-body .psv-home-final h2 { color: #fff !important; }

/* ======================= V62.12 ======================= */
/* Porte d'entrée unique « Que s'est-il passé ? » */
.psv-chooser { margin: 8px 0 28px; }
.psv-chooser-head h1, .psv-chooser-head h2 { margin: 0 0 6px; color: var(--navy, #12355b); font-size: clamp(1.6rem, 4.5vw, 2.2rem); line-height: 1.15; }
.psv-chooser-head p { margin: 0 0 16px; color: var(--muted, #526473); font-size: 1.02rem; }
.psv-chooser a { text-decoration: none; }
.psv-chooser-urgent {
  display: flex; align-items: center; gap: 14px; margin: 0 0 14px; padding: 16px 18px;
  border-radius: 16px; background: #fff1ef; border: 2px solid #c8322a; color: #7a1610;
}
.psv-chooser-urgent:hover { background: #ffe4e0; }
.psv-chooser-urgent strong { display: block; font-size: 1.08rem; line-height: 1.3; color: #8f1d15; }
.psv-chooser-urgent small { display: block; margin-top: 3px; color: #6d2a24; font-size: .92rem; line-height: 1.4; }
.psv-chooser-urgent > span:not(.psv-chooser-icon) { flex: 1 1 auto; min-width: 0; }
.psv-chooser-urgent b { font-size: 1.3rem; color: #c8322a; }
.psv-chooser-icon {
  flex: 0 0 auto; display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
  background: #c8322a; color: #fff; font-weight: 900; font-size: 1.4rem;
}
.psv-chooser-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.psv-chooser-item {
  display: flex; align-items: flex-start; gap: 12px; padding: 16px; min-height: 64px;
  background: #fff; border: 1.5px solid #cfdde7; border-radius: 16px; color: var(--navy, #12355b);
  box-shadow: 0 6px 18px rgba(18, 53, 91, .06);
}
.psv-chooser-item:hover, .psv-chooser-item:focus-visible { border-color: #0f8f86; background: #f4fbfa; }
.psv-chooser-item strong { display: block; font-size: 1.04rem; line-height: 1.3; color: var(--navy, #12355b); }
.psv-chooser-item small { display: block; margin-top: 3px; font-size: .9rem; line-height: 1.4; color: var(--muted, #526473); }
.psv-chooser-item > span:last-child { min-width: 0; }
.psv-chooser-emoji { flex: 0 0 auto; font-size: 1.5rem; line-height: 1.2; }
.psv-chooser-more { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 16px 0 0; }
.psv-chooser-more a { font-weight: 800; color: #0b6f68; }
.psv-chooser-pro-link { margin: 4px 0 0; font-size: .95rem; }
.psv-chooser-pro-link a { color: var(--muted, #526473); font-weight: 700; }
.psv-chooser.is-pwa { margin: 14px 0 18px; }
.psv-chooser.is-pwa .psv-chooser-grid { grid-template-columns: 1fr; gap: 10px; }
.psv-chooser.is-pwa .psv-chooser-item { padding: 13px 14px; }
.help-other-title { margin: 30px 0 12px; color: var(--navy, #12355b); }
@media (max-width: 520px) {
  .psv-chooser-grid { grid-template-columns: 1fr; gap: 10px; }
  .psv-chooser-item { padding: 13px 14px; }
}
/* Menu : accès d'urgence en rouge, sur tout le site et dans l'application. */
.public-body .public-nav a.psv-nav-urgent { color: #b42318; }
.public-body .public-nav a.psv-nav-urgent[aria-current="page"] { box-shadow: inset 0 -3px 0 #c8322a; }
.mobile-app-drawer a.mobile-drawer-urgent { color: #b42318 !important; font-weight: 800; }
/* Résultat : partage à un proche et impression. */
.psv-result-share { margin-top: 18px; padding: 14px 16px; border-radius: 14px; background: #f2f8fb; border: 1px solid #d3e3ec; }
.psv-result-share-title { margin: 0 0 10px; font-weight: 800; color: var(--navy, #12355b); }
.psv-result-share-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.psv-result-share-actions > * { min-height: 46px; }
.psv-result-share small { display: block; margin-top: 10px; color: var(--muted, #526473); }
@media print {
  .site-header, .psv-footer, .site-footer, .mobile-bottom-nav, .psv-chatbot, .psv-cookie-panel,
  .psv-result-share-actions, .result-footer, .hero-actions, .psv-mascot-page-aide img { display: none !important; }
  .result-shell { max-width: none; padding: 0; }
}
/* Pastille Alertes : informative, pas alarmante. */
.public-body .public-nav .alert-count-badge, .mobile-bottom-nav .alert-count-badge { background: #0f6f9a !important; }
/* Forcer la mise en ligne icône + texte (certaines anciennes règles empilaient les liens). */
.psv-chooser a.psv-chooser-item, .psv-chooser a.psv-chooser-urgent {
  display: flex !important; flex-direction: row !important; align-items: center !important;
  justify-content: flex-start !important; text-align: left !important; width: auto !important;
}
.psv-chooser a.psv-chooser-item { align-items: flex-start !important; }
.psv-chooser.is-pwa .psv-chooser-head { display: none; }
.psv-chooser-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.psv-chooser a > span.psv-chooser-emoji, .psv-chooser a > span.psv-chooser-icon { width: auto !important; flex: 0 0 auto !important; display: inline-grid !important; }
.psv-chooser a > span:not(.psv-chooser-emoji):not(.psv-chooser-icon) { flex: 1 1 auto !important; width: auto !important; min-width: 0; display: block !important; }
.psv-chooser a > b { flex: 0 0 auto; width: auto !important; }
.public-body .public-nav a.psv-nav-urgent { color: #b42318 !important; }
@media (max-width: 520px) { .psv-chooser-grid { grid-template-columns: 1fr; } }
.psv-chooser a.psv-chooser-item, .psv-chooser a.psv-chooser-urgent { flex-wrap: nowrap !important; }
.psv-chooser a > span.psv-chooser-icon { width: 42px !important; height: 42px !important; }

/* ======================= V62.13 ======================= */
.psv-reflex-print { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 12px 0 0; }
.psv-reflex-print small { color: var(--muted, #526473); }
@media print {
  .site-header, .site-footer, .psv-footer, .mobile-bottom-nav, .mobile-global-mode-bar, .psv-chatbot,
  .psv-cookie-panel, .skip-link, .psv-reflex-print, .reflex-filters, .reflex-audience-tabs, .reflex-situation-links,
  .reflex-pwa-back, .pv-theme-hero-mascot, .mobile-kit-intro-actions, .kit-detail-actions { display: none !important; }
  body { background: #fff !important; }
  .reflex-card, .kit-detail, .result-shell { box-shadow: none !important; border: 0 !important; }
  body.public-body main a.reflex-back-link, body.public-body main a.reflex-back-link.psv-action-button { display: none !important; }
  body.public-body .reflex-dedicated .reflex-card-header { display: block !important; }
  body.public-body .reflex-dedicated .reflex-card-header::after {
    content: "Fiche PASIVITE.fr · pasivite.fr · Un doute ? Vérifiez avant d’agir."; display: block; margin-top: 6px; font-size: .85rem; color: #444;
  }
}

/* V62.15 — liste obligatoire vide expliquée */
.psv-empty-select-note{display:block;margin-top:4px;font-size:.85rem;color:#8a4b00;}
button[disabled][title]{opacity:.55;cursor:not-allowed;}

/* V62.16 — rappel de la question au-dessus de la réponse de l'assistant */
.psv-chatbot-asked{margin:0 0 10px;padding:8px 12px;border-radius:12px;background:#eef4f8;color:#1b2a3a;font-size:.92rem;line-height:1.35;overflow-wrap:anywhere;}
.psv-chatbot-asked span{display:block;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#4c5d6e;margin-bottom:2px;}

/* =====================================================================
   V62.18 — Équilibre des pages en version appli (téléphone)
   Les mascottes occupaient un bloc entier (80 à 300 px de vide) entre le
   titre et le contenu. Elles se placent désormais dans le coin du titre.
   ===================================================================== */
body.mobile-mode main:has(.pv-theme-hero-mascot, .alerts-app-title-mascot, .emergency-hero-mascot, .psv-home-hero-mascot) .psv-page-mascot-fallback{display:none !important}
body.mobile-mode .psv-page-mascot-fallback{position:relative !important;display:block !important;height:0 !important;min-height:0 !important;margin:0 !important;padding:0 !important;border:0 !important;background:none !important;overflow:visible !important;z-index:4}
body.mobile-mode .psv-page-mascot-fallback img{position:absolute !important;right:20px !important;top:18px !important;width:52px !important;height:60px !important;max-width:none !important;object-fit:contain !important;margin:0 !important;filter:drop-shadow(0 4px 8px rgba(13,42,76,.18))}
body.mobile-mode .psv-page-mascot-fallback + * h1,
body.mobile-mode .psv-page-mascot-fallback ~ * > h1:first-of-type{padding-right:58px !important}

body.mobile-mode .pv-theme-hero,
body.mobile-mode .alerts-app-title-mascot,
body.mobile-mode .emergency-hero-mascot{position:relative !important;display:block !important;min-height:0 !important}
body.mobile-mode .pv-theme-hero > img.pv-theme-hero-mascot,
body.mobile-mode .alerts-app-title-mascot > img,
body.mobile-mode .emergency-hero-mascot > img{position:absolute !important;top:4px !important;right:4px !important;width:54px !important;height:62px !important;max-width:none !important;margin:0 !important;object-fit:contain !important;display:block !important}
body.mobile-mode .pv-theme-hero h1,
body.mobile-mode .alerts-app-title-mascot h1,
body.mobile-mode .emergency-hero-mascot h1{padding-right:60px !important}
body.mobile-mode .pv-theme-hero .eyebrow,
body.mobile-mode .alerts-app-title-mascot .eyebrow,
body.mobile-mode .emergency-hero-mascot .eyebrow{margin-right:60px !important}

/* Fiches réflexes : une ligne compacte (titre, résumé, flèche à droite) au lieu
   d'une pastille seule sur sa ligne et d'une flèche seule en bas. */
body.mobile-mode .reflex-row-card{display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;align-items:center !important;gap:10px !important;padding:14px 14px 14px 16px !important;min-height:0 !important}
body.mobile-mode .reflex-row-card .reflex-row-signal{display:none !important}
body.mobile-mode .reflex-row-card .reflex-row-main{display:flex !important;flex-direction:column !important;gap:4px !important;min-width:0}
body.mobile-mode .reflex-row-card .reflex-row-meta{display:flex !important;flex-wrap:wrap;gap:6px;margin:0 !important}
body.mobile-mode .reflex-row-card .reflex-row-arrow{grid-column:2 !important;grid-row:1 !important;align-self:center !important;font-size:1.6rem !important;line-height:1 !important;color:#0d2a4c !important;margin:0 !important}

/* « Où signaler ? » : titre puis sous-titre, flèche à droite. */
.psv-reporting-guide > summary{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:12px !important;list-style:none !important;cursor:pointer}
.psv-reporting-guide > summary::-webkit-details-marker{display:none}
.psv-reporting-guide > summary > span{display:flex !important;flex-direction:column !important;gap:2px !important;min-width:0}
.psv-reporting-guide > summary > span > small{display:block !important;font-size:.88rem !important;font-weight:500 !important;color:#5b6b7c !important;line-height:1.35 !important;margin:0 !important}
.psv-reporting-guide > summary > b{flex:0 0 auto;font-size:1.2rem;transition:transform .2s}
.psv-reporting-guide[open] > summary > b{transform:rotate(180deg)}

/* Bibliothèques (kits, fiches) : lignes alignées à gauche, flèche à droite. */
body.mobile-mode .mobile-library-row{display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;align-items:center !important;gap:10px !important;text-align:left !important;padding:14px 16px !important}
body.mobile-mode .mobile-library-row > span{display:flex !important;flex-direction:column !important;gap:4px !important;align-items:flex-start !important;text-align:left !important;min-width:0}
body.mobile-mode .mobile-library-row > span > *{text-align:left !important}
body.mobile-mode .mobile-library-row > b,
body.mobile-mode .mobile-library-row > i{grid-column:2;align-self:center;font-size:1.5rem;color:#0d2a4c}
body.mobile-mode details.psv-reporting-guide > summary{flex-wrap:nowrap !important}
body.mobile-mode details.psv-reporting-guide > summary > span{flex:1 1 auto !important;width:auto !important}
body.mobile-mode .mobile-app-main .psv-password-hero h1{color:#fff !important}
body.mobile-mode .mobile-app-main .psv-password-hero h1 span{color:#5eead4 !important}
body.mobile-mode .alerts-app-title-mascot .lead{padding-right:56px !important}
body.mobile-mode .psv-page-mascot-fallback + * .eyebrow,
body.mobile-mode .psv-page-mascot-fallback + * .mobile-home-eyebrow{margin-right:60px !important}
/* Boutons des pages de conseils (classic-cta) : non stylés dans l'appli. */
body.mobile-mode .mobile-app-main a.classic-cta{display:flex !important;align-items:center;justify-content:center;min-height:48px;padding:12px 18px !important;border-radius:999px !important;font-weight:800 !important;text-decoration:none !important;margin-top:10px}
body.mobile-mode .mobile-app-main a.classic-cta.primary{background:#0d2a4c !important;color:#fff !important;border:0 !important}
body.mobile-mode .mobile-app-main a.classic-cta.secondary{background:#fff !important;color:#0d2a4c !important;border:2px solid #0d2a4c !important}
/* « Suis-je concerné ? » : questions lisibles, sans cadre de fieldset. */
body.mobile-mode .assistant-form fieldset{border:0 !important;padding:0 !important;margin:14px 0 0 !important}
body.mobile-mode .assistant-form fieldset legend{padding:0 !important;margin-bottom:8px !important;font-weight:800;line-height:1.35}
body.mobile-mode .psv-password-hero .psv-password-hero-grid > img{width:150px !important;height:auto !important;max-height:170px !important;object-fit:contain !important;margin:8px auto 0 !important;display:block !important}

/* V62.18 — mêmes corrections pour le site web consulté sur téléphone */
@media (max-width:760px){
body main:has(.pv-theme-hero-mascot, .alerts-app-title-mascot, .emergency-hero-mascot, .psv-home-hero-mascot) .psv-page-mascot-fallback{display:none !important}
body .psv-page-mascot-fallback{position:relative !important;display:block !important;height:0 !important;min-height:0 !important;margin:0 !important;padding:0 !important;border:0 !important;background:none !important;overflow:visible !important;z-index:4}
body .psv-page-mascot-fallback img{position:absolute !important;right:20px !important;top:18px !important;width:52px !important;height:60px !important;max-width:none !important;object-fit:contain !important;margin:0 !important;filter:drop-shadow(0 4px 8px rgba(13,42,76,.18))}
body .psv-page-mascot-fallback + * h1,
body .psv-page-mascot-fallback ~ * > h1:first-of-type{padding-right:58px !important}
body .pv-theme-hero,
body .alerts-app-title-mascot,
body .emergency-hero-mascot{position:relative !important;display:block !important;min-height:0 !important}
body .pv-theme-hero > img.pv-theme-hero-mascot,
body .alerts-app-title-mascot > img,
body .emergency-hero-mascot > img{position:absolute !important;top:4px !important;right:4px !important;width:54px !important;height:62px !important;max-width:none !important;margin:0 !important;object-fit:contain !important;display:block !important}
body .pv-theme-hero h1,
body .alerts-app-title-mascot h1,
body .emergency-hero-mascot h1{padding-right:60px !important}
body .pv-theme-hero .eyebrow,
body .alerts-app-title-mascot .eyebrow,
body .emergency-hero-mascot .eyebrow{margin-right:60px !important}
body .reflex-row-card{display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;align-items:center !important;gap:10px !important;padding:14px 14px 14px 16px !important;min-height:0 !important}
body .reflex-row-card .reflex-row-signal{display:none !important}
body .reflex-row-card .reflex-row-main{display:flex !important;flex-direction:column !important;gap:4px !important;min-width:0}
body .reflex-row-card .reflex-row-meta{display:flex !important;flex-wrap:wrap;gap:6px;margin:0 !important}
body .reflex-row-card .reflex-row-arrow{grid-column:2 !important;grid-row:1 !important;align-self:center !important;font-size:1.6rem !important;line-height:1 !important;color:#0d2a4c !important;margin:0 !important}
body details.psv-reporting-guide > summary{flex-wrap:nowrap !important}
body details.psv-reporting-guide > summary > span{flex:1 1 auto !important;width:auto !important}
body .alerts-app-title-mascot .lead{padding-right:56px !important}
body .psv-page-mascot-fallback + * .eyebrow,
body .psv-page-mascot-fallback + * .mobile-home-eyebrow{margin-right:60px !important}
body a.classic-cta{display:flex !important;align-items:center;justify-content:center;min-height:48px;padding:12px 18px !important;border-radius:999px !important;font-weight:800 !important;text-decoration:none !important;margin-top:10px}
body a.classic-cta.primary{background:#0d2a4c !important;color:#fff !important;border:0 !important}
body a.classic-cta.secondary{background:#fff !important;color:#0d2a4c !important;border:2px solid #0d2a4c !important}
}
/* « Où signaler ? » : même boîte que « Filtrer par situation », sur tous les écrans. */
html body details.psv-reporting-guide{background:#fff;border:1px solid #dde5ee;border-radius:14px;padding:0;margin-top:10px}
html body details.psv-reporting-guide > summary{display:flex !important;flex-wrap:nowrap !important;align-items:center !important;justify-content:space-between !important;padding:12px 16px !important}
html body details.psv-reporting-guide > summary > span{flex:1 1 auto !important;width:auto !important}
html body details.psv-reporting-guide[open] > .psv-reporting-grid{padding:0 12px 12px}
.public-body .main-content details.psv-reporting-guide > summary,
body.mobile-mode .main-content details.psv-reporting-guide > summary{flex-wrap:nowrap !important}

/* V62.18 — cartes avec flèche ronde (aide guidée, contacts officiels) :
   la flèche ne recouvre plus le texte, le nom est séparé de sa description. */
.public-body .main-content a.info-card,
body.mobile-mode .main-content a.info-card{position:relative !important;padding-right:58px !important}
.public-body .main-content a.info-card > strong,
body.mobile-mode .main-content a.info-card > strong{display:block !important;margin:0 0 6px !important}
.public-body .main-content a.info-card > span,
body.mobile-mode .main-content a.info-card > span{display:block !important}

/* Accueil de l'appli : lignes « Rester protégé » alignées (pictogramme, texte, flèche). */
body.mobile-mode .main-content .pv-list > a{display:grid !important;grid-template-columns:40px minmax(0,1fr) auto !important;align-items:center !important;gap:12px !important;text-align:left !important;padding:14px 16px !important}
body.mobile-mode .main-content .pv-list > a > .pv-mark{grid-column:1 !important;margin:0 !important;justify-self:center}
body.mobile-mode .main-content .pv-list > a > span:not(.pv-mark){grid-column:2 !important;display:flex !important;flex-direction:column !important;gap:3px !important;align-items:flex-start !important;text-align:left !important;min-width:0}
body.mobile-mode .main-content .pv-list > a > .pv-arrow{grid-column:3 !important;align-self:center !important;margin:0 !important;font-size:1.5rem}
html body .main-content a.info-card.info-card.info-card.info-card{padding-right:58px !important}

/* V62.19 — bouton « Besoin d'aide ? » : libellé toujours sur une ligne */
html body .psv-chatbot .psv-chatbot-launcher{flex-wrap:nowrap !important;}
html body .psv-chatbot .psv-chatbot-launcher-label{white-space:nowrap !important;}

/* V62.20 — Alertes (appli) : boutons propres à chaque alerte intégrée, alignés sur les autres boutons pleine largeur */
body.mobile-mode .alert-card .psv-sim-alert-inline-actions{display:flex;flex-direction:column;gap:10px;margin:12px 0}
body.mobile-mode .alert-card .psv-sim-alert-inline-actions > .primary-button,
body.mobile-mode .alert-card .psv-sim-alert-inline-actions > .secondary-button{width:100%;justify-content:center;text-align:center;margin:0}
