/* Charte graphique CFPMI — socle commun des modules (version 1).
   Couleurs relevées sur le logo de Charte_graphique/logo_1.JPG. À charger avant la feuille du module. */
:root {
  --cfpmi-bleu: #214a73;
  --cfpmi-orange: #f28229;
  --fond: #f4f6fb; --carte: #ffffff; --encre: #1c2540; --discret: #5b6585; --bord: #dde2ee;
  --accent: var(--cfpmi-bleu);
}
@media (prefers-color-scheme: dark) {
  :root { --fond: #121726; --carte: #1b2236; --encre: #eef1fa; --discret: #a3acc6; --bord: #2c3550; --accent: #7fa2ff; }
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
       padding: 24px 16px; background: var(--fond); color: var(--encre);
       font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
main { width: 100%; max-width: 640px; }
.logo { display: block; margin: 0 auto 18px; width: 100%; max-width: 380px; height: auto; background: #fff; border-radius: 12px; }
h1 { margin: 0 0 6px; font-size: 1.7rem; text-align: center; }
.sous-titre { margin: 0 0 28px; text-align: center; color: var(--discret); }
a.appli { display: block; margin-bottom: 12px; padding: 16px 20px; background: var(--carte); border: 1px solid var(--bord);
          border-left: 5px solid var(--cfpmi-orange); border-radius: 14px; color: inherit; text-decoration: none; }
a.appli:hover, a.appli:focus-visible { border-color: var(--accent); border-left-color: var(--cfpmi-orange); outline: none; }
a.appli b { display: block; font-size: 1.05rem; color: var(--accent); }
a.appli span { color: var(--discret); font-size: .92rem; }
a.appli.prepa { opacity: .72; }
.retour { display: block; margin-top: 22px; text-align: center; color: var(--accent); }

/* Petit message flottant (toast) en bas de l'écran, quelques secondes : confirmations et erreurs de tous les modules.
   Utilisation : afficherToast("Texte", "info" | "ok" | "erreur") — voir socle/toast.js. */
.toast-cfpmi {
  position: fixed; left: 50%; bottom: 1.5rem; transform: translate(-50%, 12px);
  max-width: min(92vw, 520px); padding: .7rem 1.2rem; border-radius: 10px;
  color: #fff; font-size: .92rem; font-weight: 600; line-height: 1.4; text-align: center;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .25); cursor: pointer;
  opacity: 0; pointer-events: none; transition: opacity .3s ease, transform .3s ease; z-index: 3000;
}
.toast-cfpmi.visible { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.toast-cfpmi.toast-info { background: var(--cfpmi-bleu); }
.toast-cfpmi.toast-ok { background: #2f6f62; }
.toast-cfpmi.toast-erreur { background: #b3261e; }
