/* Accessibilité — cibles tactiles >= 44px (WCAG 2.5.5) + focus visible.
   Ciblé sur les contrôles interactifs pour ne pas casser la mise en page.
   :not() exclut les interrupteurs/switches stylés (toggles) dont la taille
   est volontairement petite — sinon ils deviennent d'énormes carrés. */
button:not(.tv-toggle):not(.sp-theme-btn),
.btn,
.btn-icon,
[role="button"]:not(.tv-toggle),
.tab-item,
.bottom-nav-item,
.op-btn,
.sp-reset,
select {
  min-height: 44px;
}

/* Largeur minimale 44px pour les boutons icônes sans texte (cloche notif, toggle
   stats, etc.) qui tombaient sous 44px de large. Ciblé par classe pour ne PAS
   toucher les boutons de segments (bare <button> dans .sp-seg). min-width
   n'affecte pas un bouton déjà plus large -> aucune casse de mise en page. */
.btn,
.btn-icon,
.notif-bell,
.stats-toggle-btn,
[role="button"]:not(.tv-toggle) {
  min-width: 44px;
}

/* Les boutons de segments (police, densité, etc.) gardent leur taille propre. */
.sp-seg button { min-height: 0; }

/* Champs de recherche et inputs interactifs visibles (type=hidden exclus nativement).
   Un <input> sans attribut type= vaut type=text mais n'était PAS matché par
   input[type="text"] -> les champs .op-input / .cb-input passaient sous 44px.
   On couvre donc aussi les inputs typeless et les classes d'input de l'app. */
input[type="search"],
input[type="text"],
input[type="number"],
input[type="url"],
input[type="tel"],
input[type="email"],
input[type="password"],
input[type="date"],
input:not([type]),
textarea,
.op-input,
.cb-input,
.scan-create-form__input { min-height: 44px; }

/* Cases à cocher / boutons radio : cible tactile 24px min (WCAG 2.5.8 AA),
   sans les gonfler à 44px (casserait l'alignement des listes). */
input[type="checkbox"],
input[type="radio"] { min-width: 24px; min-height: 24px; }

.btn-icon,
button.btn-icon,
#sp-close,
.sp-close,
.modal-close,
.close-modal {
  min-width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Focus clavier visible (accessibilité navigation sans souris) */
button:focus-visible,
a:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--accent-primary, #32b8c6);
  outline-offset: 2px;
}
