/*
 * Accessibilité AA de base (Sprint 7.6).
 *  - Focus visible renforcé sur tout élément interactif.
 *  - Ring de focus au-dessus du contenu (pas caché par un background).
 *  - Skip-link pour les utilisateurs clavier.
 *  - Classes utilitaires sr-only et sr-only-focusable.
 */

/* Ring de focus clavier uniquement (pas souris), avec contraste AA. */
:root {
    --a11y-focus-ring: 0 0 0 3px rgba(72, 122, 255, 0.45);
    --a11y-focus-outline: 2px solid var(--color-primary-100, #487AFF);
}

*:focus {
    outline: none;
}

*:focus-visible {
    outline: var(--a11y-focus-outline);
    outline-offset: 2px;
    box-shadow: var(--a11y-focus-ring);
    border-radius: 6px;
    position: relative;
    z-index: 2;
}

/* Boutons/selects : focus plus appuyé. */
button:focus-visible,
a.btn:focus-visible,
.app-sidebar-link:focus-visible,
.grid-action-btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.checkbox:focus-visible {
    outline: var(--a11y-focus-outline);
    outline-offset: 2px;
    box-shadow: var(--a11y-focus-ring);
}

/* Skip-link : caché sauf au focus. */
.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    background: var(--color-primary-100, #487AFF);
    color: white;
    padding: 10px 14px;
    border-radius: 6px;
    font-weight: 600;
    z-index: 1000;
}

.skip-link:focus,
.skip-link:focus-visible {
    left: 12px;
    top: 12px;
    outline: 3px solid white;
    outline-offset: 2px;
}

/* Classes utilitaires "visuellement cachées" pour lecteurs d'écran. */
.sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.sr-only-focusable:focus,
.sr-only-focusable:focus-visible {
    position: static !important;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

/* Contraste : labels secondaires, légendes de champs. Le gris tertiaire
   est limite AA sur un fond blanc pour du texte <14px ; on durcit. */
.form-group .text-tertiary.p3,
.stat-card .label,
.fact-label {
    color: var(--color-text-secondary, #4B5563);
}

/* Boutons d'action en grille (icônes uniquement) : cible minimum 32x32
   recommandée par WCAG AAA — on met 32 px au focus pour faciliter. */
.grid-action-btn {
    min-width: 32px;
    min-height: 32px;
}
