/* ==========================================================================
   SIG — Feuille commune Responsive / Accessibilité des formulaires
   --------------------------------------------------------------------------
   Fichiers concernés :
     resources/views/sig/auth/login.blade.php
     resources/views/sig/acteur/form.blade.php
     resources/views/sig/activite/form.blade.php
     (à diffuser aux autres form.blade.php par le même patron)

   Règles transverses appliquées :
     - Unités relatives (%/rem) exclusivement, px réservé à border/media queries.
     - Mobile d'abord : les media queries n'ajoutent qu'à partir de min-width.
     - Cibles tactiles 44 px minimum sous pointer:coarse (WCAG 2.5.8).
     - Conteneur de formulaire plafonné à 75rem et centré (écran géant).
     - Champ obligatoire lié (aria-invalid + aria-describedby).
   Substitution conforme : référentiel interne non fourni → WCAG 2.1 AA.
   ========================================================================== */

/* ---------- Tokens ---------- */
:root {
  --sig-form-max: 75rem;
  --sig-touch: 44px;
  --sig-radius: 0.625rem;
  --sig-border-field: #d3d7d0;
  --sig-focus-ring: #b9dcc9;
}

/* ---------- Formulaire : plafond + centrage (laptop ≥ 64rem) ---------- */
.sig-form {
  max-width: var(--sig-form-max);
  margin-inline: auto;
}

/* ---------- Grilles intrinsèquement fluides ---------- */
.sig-grid-cols-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 0 1rem;
  row-gap: 0.875rem;
}
.sig-grid-cols-2 .sig-field { margin-bottom: 0; }

/* ---------- Fieldset / legend thématiques (WCAG 1.3.1) ---------- */
.sig-fieldset {
  border: 0;
  border-top: 1px solid var(--c-line);
  padding: 0;
  margin: 1.25rem 0 0;
  min-inline-size: 0;
}
.sig-fieldset legend {
  font-weight: 700;
  font-size: 0.8125rem;
  color: var(--c-vert);
  padding: 0 0.5rem 0 0;
  margin-bottom: 0.5rem;
}

/* ---------- Cascade localisation (activite) ---------- */
.sig-cascade-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}
.sig-cascade-label {
  display: block;
  font-size: 0.8125rem;
  color: var(--c-mute);
  margin-bottom: 0.25rem;
  font-weight: 600;
}
.sig-hint {
  font-size: 0.8125rem;
  color: var(--c-mute);
  margin-top: 0.25rem;
}

/* ---------- Assistance erreur liée au champ (WCAG 3.3.1) ---------- */
.sig-error {
  display: block;
  color: var(--c-danger);
  font-size: 0.75rem;
  margin-top: 0.25rem;
}

/* ---------- Contenu masqué visuellement mais accessible (WCAG 1.3.1) ---------- */
.sig-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* ---------- Actions collantes sur formulaire long (téléphone) ---------- */
@media (max-width: 47.999rem) {
  .sig-form.sig-form-sticky-actions .sig-form-actions {
    position: sticky;
    bottom: 0;
    background: var(--c-card);
    border-top: 1px solid var(--c-line);
    padding: 0.75rem 0.25rem;
    margin: 1.25rem -0.25rem 0;
    z-index: 4;
  }
}

/* ---------- Cibles tactiles ≥ 44 px (WCAG 2.5.8) ---------- */
@media (pointer: coarse) {
  .sig-btn,
  .sig-btn-primary,
  .sig-btn-danger,
  .sig-btn-ghost {
    min-height: var(--sig-touch);
  }
  .sig-btn-sm {
    min-height: 2.25rem;
  }
  .sig-field input[type="checkbox"],
  .sig-field input[type="radio"] {
    width: 1.375rem;
    height: 1.375rem;
  }
  .sig-row,
  .sig-check {
    min-height: 2.75rem;
  }
}

/* ---------- Tablette : 2 colonnes max pour champs courts appariés ---------- */
@media (min-width: 48rem) {
  .sig-form-actions {
    justify-content: flex-start;
  }
}