/* =====================================================================
   Système de design commun – Coach (BNP Paribas × IMT-BS)
   Couleurs relevées dans le deck BNP Paribas du challenge.
   Titres : Barlow Condensed (libre, condensée) ; texte : Arial.
   Le vert d'accent des textes est assombri (#007A50) pour le contraste AA.
   ===================================================================== */
:root {
  --bnpp-vert-profond:#004B3B; --bnpp-vert:#00955C; --bnpp-vert-texte:#007A50; --bnpp-vert-moyen:#149E6B; --bnpp-menthe:#EAF7F2; --bnpp-gris:#D0D2D6;
  --police-titre:"Barlow Condensed", "Arial Narrow", Arial, sans-serif; --police-texte:Arial, "Helvetica Neue", Helvetica, sans-serif;
}
body { font-family:var(--police-texte); }
h1, h2, h3, .titre-condense { font-family:var(--police-titre); font-weight:600; letter-spacing:.01em; }

/* En-tête commun */
.bnpp-entete { display:flex; align-items:center; gap:14px; min-height:54px; padding:0 22px; padding-top:env(safe-area-inset-top, 0px);
  background:#fff; border-bottom:3px solid var(--bnpp-vert); position:relative; z-index:5; flex-shrink:0; }
.bnpp-logo { height:26px; width:auto; display:block; }
.bnpp-marque { font-weight:700; color:var(--bnpp-vert-profond); font-size:15px; white-space:nowrap; text-decoration:none; }
.bnpp-sep { width:1px; height:22px; background:var(--bnpp-gris); }
.bnpp-produit { font-family:var(--police-titre); font-weight:600; font-size:22px; color:var(--bnpp-vert-profond); }
.bnpp-liens { margin-left:auto; display:flex; gap:2px; overflow-x:auto; }
.bnpp-liens a { color:#3c4a4f; text-decoration:none; font-size:14px; padding:7px 11px; border-radius:6px; white-space:nowrap; }
.bnpp-liens a:hover { background:var(--bnpp-menthe); color:var(--bnpp-vert-profond); }
.bnpp-liens a[aria-current="page"] { background:var(--bnpp-menthe); color:var(--bnpp-vert-profond); font-weight:700; }
@media (prefers-color-scheme: dark) {
  .bnpp-entete { background:#141c1a; } .bnpp-marque, .bnpp-produit { color:#7fd7b2; } .bnpp-liens a { color:#c9d6d2; }
  .bnpp-liens a:hover, .bnpp-liens a[aria-current="page"] { background:#173229; color:#7fd7b2; }
}
@media (max-width: 700px) { .bnpp-marque, .bnpp-sep { display:none; } .bnpp-entete { padding:0 10px; gap:8px; } .bnpp-liens a { padding:7px 8px; } }

/* Infobulle : <span class="info" tabindex="0" data-info="…">?</span> */
.info { display:inline-grid; place-items:center; width:16px; height:16px; border-radius:50%; border:1px solid currentColor; font-size:11px; font-weight:700;
  color:#5d6c70; cursor:help; position:relative; vertical-align:middle; margin-left:4px; line-height:1; font-family:var(--police-texte); }
.info:hover::after, .info:focus::after { content:attr(data-info); position:absolute; left:50%; bottom:calc(100% + 8px); transform:translateX(-50%);
  width:max-content; max-width:250px; background:#1b2a2f; color:#fff; font-weight:400; font-size:12.5px; line-height:1.45; padding:8px 10px; border-radius:6px;
  white-space:normal; text-align:left; z-index:30; box-shadow:0 4px 14px rgba(0,0,0,.2); letter-spacing:0; }
.info:focus { outline:2px solid var(--bnpp-vert); outline-offset:2px; }

/* Badges communs */
.badge-simule { font-size:12px; background:#f1f2f4; color:#5d6c70; border:1px dashed #b9bfc4; padding:1px 7px; border-radius:4px; white-space:nowrap; font-weight:400; font-family:var(--police-texte); }
.badge-direct { font-size:12px; background:var(--bnpp-menthe); color:var(--bnpp-vert-profond); border:1px solid #bfe3d2; padding:1px 7px; border-radius:4px; white-space:nowrap; font-weight:700; font-family:var(--police-texte); }
.badge-direct::before { content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--bnpp-vert); margin-right:5px; vertical-align:1px; }

@media print { .bnpp-liens, nav, .pas-imprimer { display:none !important; } body { background:#fff !important; } * { box-shadow:none !important; } }

/* Sélecteur de langue */
.langues { display:inline-flex; border:1px solid var(--bnpp-gris); border-radius:6px; overflow:hidden; margin-left:10px; flex-shrink:0; }
.langues button { background:transparent; border:none; padding:5px 9px; font-size:12px; font-weight:700; color:#5d6c70; cursor:pointer; font-family:var(--police-texte); }
.langues button[aria-pressed="true"] { background:var(--bnpp-vert-profond); color:#fff; }
.marque-pan .langues { margin-left:auto; }
@media (prefers-color-scheme: dark) { .langues button { color:#c9d6d2; } .langues button[aria-pressed="true"] { background:#7fd7b2; color:#0b201b; } }

/* ---- Lot 5 : accessibilité ---- */
:focus-visible { outline:2px solid var(--bnpp-vert); outline-offset:2px; }
tr[role="button"]:focus-visible td { background:var(--bnpp-menthe); }
@media (prefers-reduced-motion: reduce) { * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* ---- Lot 5 : mode sombre aux couleurs de la charte ---- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --encre:#E6EEEB; --papier:#101716; --surface:#18211F; --vert:#5ACC9F; --vert-vif:#3FB68A; --menthe:#173229; --ligne:#2C3A37;
    --gris:#A3B4AF; --pale:#8C9C97; --temoin:#8C9C97; --nav:#0B201B; --nav-texte:#CFE3DA; --bandeau:#0B201B;
    --ambre:#E3A24A; --ambre-clair:#3A2C17; --rouge:#EC8A78; --rouge-clair:#3D211C; --fond:#1d2826; color-scheme:dark;
  }
  /* Les boutons pleins gardent un vert foncé : texte blanc lisible (contraste AA) */
  .bouton:not(.second), button.principal, .nouvelle, .envoyer, .commencer .bouton { background-color:#007A50 !important; color:#fff !important; }
  .bouton.second, button.secondaire { color:#5ACC9F !important; border-color:#5ACC9F !important; background:transparent !important; }
}

/* ---- Lot 5 : impression et export PDF ---- */
@media print {
  @page { margin:14mm; }
  .bnpp-liens, .langues, nav, .pas-imprimer, button, details.demo, .commencer, .entete .maj-auto, .barre .filtre, .question, #fil, .menu, aside { display:none !important; }
  .coquille, .app { display:block !important; min-height:0 !important; }
  main, .contenu { padding:0 !important; max-width:none !important; overflow:visible !important; }
  .entete, .barre { position:static !important; border:none !important; padding:0 0 8px !important; }
  .bnpp-entete { border-bottom:2px solid #00955C; padding:0 0 6px; min-height:0; }
  .module, .kpi, table, .bloc, .plan label { break-inside:avoid; }
  a { color:inherit !important; text-decoration:none !important; }
  .info { display:none !important; }
  textarea.proposition { border:none !important; min-height:0 !important; height:auto !important; }
}
@media print { * { -webkit-print-color-adjust:exact; print-color-adjust:exact; } }
@media (prefers-color-scheme: dark) { .badge-simule { background:#24302d; color:#c9d6d2; border-color:#4a5a56; } }
