/* anti-autofill.css — Neutralise l'icône d'autofill injectée par Dashlane sur
 * les formulaires MÉTIER (organisation, épreuve, station, session, filtres…).
 *
 * POURQUOI UNE FEUILLE DE STYLES ET PAS DES ATTRIBUTS SUR LES CHAMPS
 * -----------------------------------------------------------------
 * Les attributs `autocomplete="off"`, `data-form-type="other"`, `data-lpignore`,
 * `data-1p-ignore` et `data-dashlane-ignore` sont posés depuis juin 2026 sur des
 * dizaines de champs. Le relevé du DOM réel du 2026-08-17 montre que Dashlane
 * les ignore tous : sur `#owner-organisation-name`, qui porte les cinq, il pose
 * quand même `data-dashlane-classification="company-name,username"` et décore le
 * champ. Le formulaire entier est classé `register` de son côté, donc son premier
 * champ texte devient un « nom d'utilisateur » à ses yeux — d'où l'icône.
 * Conclusion : la voie des attributs est un cul-de-sac, `data-dashlane-ignore`
 * n'a jamais rien fait. Les attributs existants sont laissés en place (ils
 * servent à 1Password / LastPass / Bitwarden), simplement ils ne suffisent pas.
 *
 * CE QUE DASHLANE INJECTE
 * -----------------------
 * Un `<span data-dashlanecreated="true">` ajouté au `<body>` — PAS à l'intérieur
 * du champ — positionné en absolu au-dessus de lui, son logo passé en
 * `background` dans un style INLINE. D'où deux conséquences :
 *   - impossible de cibler « le champ untel » : le nœud n'est pas son descendant,
 *     la portée ne peut être que la page. C'est pourquoi ce fichier n'est pas
 *     chargé partout (voir ci-dessous) ;
 *   - le `!important` est obligatoire : une règle de feuille de styles ne bat un
 *     style inline que si elle est `!important`.
 *
 * PORTÉE
 * ------
 * Ce fichier n'est PAS chargé par les pages d'authentification (index.html,
 * login.html, register.html, forgot-password.html, activate-account.html), où le
 * gestionnaire de mots de passe est légitime et attendu. Une nouvelle page métier
 * doit ajouter ce `<link>` ; une nouvelle page d'authentification doit s'en
 * abstenir.
 *
 * LIMITES ASSUMÉES
 * ----------------
 *   - `data-dashlanecreated` est un attribut propriétaire : si Dashlane le
 *     renomme, l'icône réapparaîtra sans que rien d'autre ne casse ;
 *   - masquer l'icône n'empêche pas Dashlane de classer le formulaire en
 *     `register` : il peut toujours proposer « enregistrer cet identifiant ? » à
 *     la soumission. C'est un autre problème, non traité ici ;
 *   - les autres gestionnaires (1Password, LastPass, Bitwarden) ne sont pas
 *     visés : leurs attributs d'exclusion, eux, fonctionnent.
 */

span[data-dashlanecreated="true"] {
  display: none !important;
}

/* Exception — la modale « Modifier mon mot de passe » du tableau de bord est un
 * vrai formulaire d'identifiants : Dashlane y est utile. Tant qu'elle est
 * ouverte (la classe `hidden` est retirée par dashboard.js), on lui rend ses
 * icônes sur la page. `:has()` ne matche rien sur les pages où la modale
 * n'existe pas, donc la règle générale y reste pleine et entière. */
body:has(#change-password-modal:not(.hidden)) span[data-dashlanecreated="true"] {
  display: inline !important;
}
