/* ===== Classes utilitaires communes ===== */

.visually-hidden {
    position: absolute;
    width: 0.1rem;
    height: 0.1rem;
    margin: -0.1rem;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Anneau de focus uniforme — source unique pour tous les éléments interactifs.
   Override contextuel dans footer.css (couleur blanche sur fond sombre).
   Les inputs gardent leur propre règle :focus dans forms.css / field.css (border-color). */
:focus-visible {
    outline: 0.2rem solid var(--color-primary);
    outline-offset: 0.2rem;
}

/* Les liens inline n'ont pas de border-radius par défaut → anneau rectangulaire.
   On leur ajoute un rayon minimal pour que l'outline suive la forme des coins. */
a:focus-visible {
    border-radius: var(--border-radius-xs);
}

/* Pastille ronde (notification, statut) — la taille reste définie par le composant hôte
   (width/height), ainsi que son positionnement ; la couleur est celle du danger par défaut. */
.badge-dot {
    display: inline-block;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--color-danger);
}

/* Remplace un <br style="clear:both"> en dur (CSP style-src interdit tout style inline). */
.clear-both {
    clear: both;
}
