/* Phase 7 — A11y baseline focus ring.
 *
 * 112+ occurrences de `outline: none` dans le code legacy ne re-définissent
 * pas un focus alternatif. Cette règle globale ajoute un focus ring visible
 * (`:focus-visible`) pour TOUT élément focusable, ce qui rétablit la
 * navigation clavier sans casser le hover-only des designers.
 *
 * `:focus-visible` se déclenche uniquement quand l'utilisateur navigue au
 * clavier (Tab) ou avec un focus programmatique d'un élément interactif —
 * pas au clic souris (qui déclencherait `:focus` et non `:focus-visible`).
 *
 * Couleur : utilise `var(--accent)` qui s'adapte au thème custom de l'user.
 * Width : 2px + offset 2px pour rester visible même sur fonds chargés.
 *
 * Override possible localement via `:focus-visible` plus spécifique.
 */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible,
[contenteditable="true"]:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--accent, #FF7B54) !important;
  outline-offset: 2px !important;
  border-radius: 4px;
}

/* Skip-link : accessibilité écran lecteur. Caché par défaut, visible au focus. */
.skip-to-content {
  position: absolute;
  top: -40px;
  left: 8px;
  background: var(--bg-surface);
  color: var(--text-primary);
  padding: 8px 16px;
  border-radius: 8px;
  border: 2px solid var(--accent);
  z-index: 9999;
  transition: top 0.15s ease;
}

.skip-to-content:focus {
  top: 8px;
}

/* Reduced motion — respect des préférences user. */
@media (prefers-reduced-motion: reduce) {
  .kbd-cheatsheet-overlay,
  .canvas-comments-panel,
  .canvas-activity-panel,
  .bulk-toolbar {
    animation: none !important;
    transition: none !important;
  }
}
