/* ================================================
   WEBFORM MODAL - diploma.africa v2
   ================================================ */
/* Overlay sombre */
.ui-widget-overlay {
  background: rgba(0, 0, 0, 0.6);
  opacity: 1;
}
/* Modal container */
.ui-dialog.webform-modal {
  border: none;
  border-radius: var(--radius-xl);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  padding: 0;
  max-width: 90vw;
  max-height: 90vh;
  overflow: hidden;
}
/* Header */
.ui-dialog.webform-modal .ui-dialog-titlebar {
  background: linear-gradient(135deg, var(--primary) 0%, var(--cyan) 100%);
  border: none;
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  padding: 1rem 1.25rem;
  color: white;
}
.ui-dialog.webform-modal .ui-dialog-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: white;
}
/* Bouton fermer */
.ui-dialog.webform-modal .ui-dialog-titlebar-close {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  border-radius: 50%;
  width: 2rem;
  height: 2rem;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
  margin: 0;
  padding: 0;
  transition: background 0.2s;
}
.ui-dialog.webform-modal .ui-dialog-titlebar-close:hover {
  background: rgba(255, 255, 255, 0.3);
}
.ui-dialog.webform-modal .ui-dialog-titlebar-close .ui-icon {
  background-image: none;
  position: relative;
}
.ui-dialog.webform-modal .ui-dialog-titlebar-close .ui-icon::before,
.ui-dialog.webform-modal .ui-dialog-titlebar-close .ui-icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  background: white;
}
.ui-dialog.webform-modal .ui-dialog-titlebar-close .ui-icon::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.ui-dialog.webform-modal .ui-dialog-titlebar-close .ui-icon::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
/* Contenu */
.ui-dialog.webform-modal .ui-dialog-content {
  padding: 1.5rem;
  overflow-y: auto;
  max-height: 60vh;
}
/* Formulaire */
.webform-modal .webform-submission-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
/* Champs readonly (formation, établissement) */
.webform-modal .form-item-formation,
.webform-modal .form-item-etablissement {
  margin-bottom: 0.5rem;
}
.webform-modal .form-item-formation input,
.webform-modal .form-item-etablissement input {
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  color: var(--gray-600);
  font-weight: 500;
  font-style: normal !important;
}
/* Inputs */
.webform-modal input[type="text"],
.webform-modal input[type="email"],
.webform-modal input[type="tel"],
.webform-modal input[type="url"],
.webform-modal textarea,
.webform-modal select {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-lg);
  font-size: 1rem;
  transition: border-color 0.2s, box-shadow 0.2s;
  background: white;
}
.webform-modal input:focus,
.webform-modal textarea:focus,
.webform-modal select:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.webform-modal textarea {
  min-height: 100px;
  resize: vertical;
}
/* Select2 override */
.webform-modal .select2-container--default .select2-selection--single {
  height: auto;
  padding: 0.75rem 1rem;
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-lg);
}
.webform-modal .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 1.5;
  padding: 0;
}
.webform-modal .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
  right: 0.75rem;
}
/* Labels cachés mais accessibles */
.webform-modal .form-item label.visually-hidden,
.webform-modal .form-item label[style*="display:none"] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
/* Masquer les champs hidden */
.webform-modal .form-item-programme,
.webform-modal .form-item-filiere,
.webform-modal .form-item-diplome,
.webform-modal .form-item-mode,
.webform-modal .form-item-rythme,
.webform-modal .form-item-type {
  display: none;
}
/* Erreurs */
.webform-modal .form-item--error input,
.webform-modal .form-item--error textarea,
.webform-modal .form-item--error select {
  border-color: #EF4444;
}
.webform-modal .form-item--error-message {
  color: #EF4444;
  font-size: 0.875rem;
  margin-top: 0.25rem;
}
/* Bouton soumettre */
.webform-modal .webform-button--submit,
.webform-modal .form-submit {
  width: 100%;
  padding: 1rem 1.5rem;
  background: linear-gradient(135deg, var(--primary) 0%, var(--cyan) 100%);
  color: white;
  border: none;
  border-radius: var(--radius-lg);
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  margin-top: 0.5rem;
}
.webform-modal .webform-button--submit:hover,
.webform-modal .form-submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}
.webform-modal .webform-button--submit:active,
.webform-modal .form-submit:active {
  transform: translateY(0);
}
/* Message de confirmation */
.webform-modal .webform-confirmation {
  text-align: center;
  padding: 1rem 0;
}
.webform-modal .webform-confirmation .alert-success {
  background: var(--gray-50);
  border: 1px solid var(--green);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
}
/* Téléphone international */
.webform-modal .iti {
  width: 100%;
}
.webform-modal .iti__flag-container {
  padding-left: 0.5rem;
}
/* Responsive */
@media (max-width: 480px) {
  .ui-dialog.webform-modal {
    width: 95vw !important;
    margin: 0 auto;
  }
  
  .ui-dialog.webform-modal .ui-dialog-content {
    padding: 1rem;
  }
}
