/* ============================================================
   CLEANFLOW - Composant partage de localisation
   Mapping SQL:
   country_id -> pays.idpays
   state_id   -> etat.idetat
   city_id    -> ville.idville
   ============================================================ */

.cf-location {
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  background: var(--gray-50);
  padding: var(--sp-4);
}

.cf-location-head {
  display: grid;
  gap: 4px;
  margin-bottom: var(--sp-4);
}

.cf-location-title {
  margin: 0;
  font-size: var(--text-body);
  font-weight: var(--fw-semibold);
  font-family: var(--font-heading);
}

.cf-location-note {
  margin: 0;
  font-size: var(--text-caption);
  color: var(--gray-500);
}

.cf-location-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-3);
}

.cf-location-full {
  grid-column: 1 / -1;
}

.cf-location-feedback {
  margin: var(--sp-3) 0 0;
  min-height: 1.25em;
  font-size: var(--text-caption);
  color: var(--gray-500);
}

.cf-location-feedback.is-error {
  color: var(--color-danger);
}

.cf-location-feedback.is-warning {
  color: var(--color-warning-dark);
}

.cf-location-feedback.is-success {
  color: var(--color-accent);
}

.cf-location.is-country-locked [data-loc-country-id] {
  background: var(--gray-100);
  color: var(--gray-500);
}

.cf-location-grid-compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 900px) {
  .cf-location-grid,
  .cf-location-grid-compact {
    grid-template-columns: 1fr;
  }

  .cf-location-full {
    grid-column: auto;
  }
}
