/* Selects des trois formulaires publics. Le menu d'options reste natif,
   conformément au design system ; le contrôle fermé, la flèche et le focus
   suivent les tokens du site. Les ID assurent la priorité sur les styles
   locaux des vues Astro sans recourir à !important. */

#escape-form label:has(> select),
#demo-form label:has(> select),
#ms-order-form label:has(> select) {
  position: relative;
  min-width: 0;
}

#escape-form select,
#demo-form select,
#ms-order-form select {
  appearance: none;
  -webkit-appearance: none;
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding-right: var(--space-12);
  background: var(--surface-card);
  box-shadow: var(--shadow-xs);
  cursor: pointer;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
}

#escape-form label:has(> select)::after,
#demo-form label:has(> select)::after,
#ms-order-form label:has(> select)::after {
  content: '';
  position: absolute;
  right: var(--space-5);
  bottom: var(--space-5);
  width: var(--space-2);
  height: var(--space-2);
  border-right: 2px solid var(--text-muted);
  border-bottom: 2px solid var(--text-muted);
  transform: rotate(45deg);
  pointer-events: none;
}

#escape-form select:focus,
#demo-form select:focus,
#ms-order-form select:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: var(--shadow-focus);
}

#escape-form select:required:invalid,
#demo-form select:required:invalid,
#ms-order-form select:required:invalid {
  color: var(--text-faint);
}

#escape-form select:disabled,
#demo-form select:disabled,
#ms-order-form select:disabled {
  background: var(--surface-sunken);
  color: var(--text-faint);
  cursor: not-allowed;
}

#escape-form label:has(> select:disabled)::after,
#demo-form label:has(> select:disabled)::after,
#ms-order-form label:has(> select:disabled)::after {
  opacity: .6;
}
