/* ===== MODAL OVERLAY ===== */
#lead-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
  background: color-mix(in srgb, #000 72%, transparent);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
}
#lead-modal.active {
  opacity: 1;
  pointer-events: all;
}

/* ===== MODAL CARD ===== */
.modal {
  position: relative;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-6);
  width: 100%;
  max-width: 480px;
  max-height: 90dvh;
  overflow-y: auto;
  transform: translateY(20px) scale(0.97);
  transition: transform var(--transition-slow);
  box-shadow: 0 24px 64px color-mix(in srgb, #000 60%, transparent);
}
#lead-modal.active .modal {
  transform: translateY(0) scale(1);
}

/* ===== CLOSE BUTTON ===== */
.modal__close {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: 50%;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: color var(--transition-fast), background var(--transition-fast);
}
.modal__close:hover {
  background: var(--color-border);
  color: var(--color-text-primary);
}
.modal__close:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}
.modal__close svg { width: 16px; height: 16px; display: block; }

/* ===== HEADER ===== */
.modal__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  text-align: center;
  margin-bottom: var(--space-6);
}
.modal__icon-wrap {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-accent) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--color-accent) 30%, transparent);
}
.modal__icon-wrap svg { width: 24px; height: 24px; color: var(--color-accent); }
.modal__title {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text-primary);
  letter-spacing: -0.02em;
}
.modal__desc {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: 1.55;
  max-width: 340px;
}

/* ===== FORM ===== */
.modal__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.modal__row {
  display: grid;
  grid-template-columns: 1fr 120px;
  gap: var(--space-4);
}
.modal__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.modal__label {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
}
.modal__input,
.modal__select {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0.75rem 1rem;
  font-size: var(--text-base);
  font-family: inherit;
  color: var(--color-text-primary);
  width: 100%;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  appearance: none;
  -webkit-appearance: none;
}
.modal__input::placeholder { color: var(--color-text-tertiary); }
.modal__input:focus,
.modal__select:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--color-accent) 60%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 12%, transparent);
}
.modal__input.invalid,
.modal__select.invalid {
  border-color: var(--color-danger);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger) 15%, transparent);
}

/* Select custom arrow (oculto quando Select2 está ativo) */
.modal__select-wrap {
  position: relative;
}
.modal__select-wrap::after {
  content: '';
  position: absolute;
  right: 0.9rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid var(--color-text-tertiary);
  pointer-events: none;
}
.modal__select-wrap .select2-container ~ ::after { display: none; }

/* ===== SELECT2 DARK THEME ===== */
.modal .select2-container { width: 100% !important; }

/* Botão de seleção */
.modal .select2-container--default .select2-selection--single {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  height: auto;
  padding: 0.75rem 2.5rem 0.75rem 1rem;
  transition: border-color 150ms ease-out, box-shadow 150ms ease-out;
}
.modal .select2-container--default.select2-container--open .select2-selection--single,
.modal .select2-container--default.select2-container--focus .select2-selection--single {
  border-color: color-mix(in srgb, var(--color-accent) 60%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 12%, transparent);
  outline: none;
}
.modal .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--color-text-primary);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: var(--text-base);
  line-height: 1;
  padding: 0;
}
.modal .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--color-text-tertiary);
}
.modal .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
  top: 0;
  right: 0.75rem;
}
.modal .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: var(--color-text-tertiary) transparent transparent transparent;
}
.modal .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  border-color: transparent transparent var(--color-text-secondary) transparent;
}

/* Campo inválido */
.modal .select2-container--default.invalid .select2-selection--single {
  border-color: var(--color-danger);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger) 15%, transparent);
}

/* Dropdown */
.select2-dropdown {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: 0 8px 32px color-mix(in srgb, #000 50%, transparent);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: var(--text-base);
  overflow: hidden;
}
.select2-results__option {
  padding: 0.6rem 1rem;
  color: var(--color-text-secondary);
  transition: background 100ms ease-out, color 100ms ease-out;
}
.select2-results__option--highlighted.select2-results__option--selectable {
  background: color-mix(in srgb, var(--color-accent) 15%, transparent);
  color: var(--color-text-primary);
}
.select2-results__option[aria-selected="true"] {
  background: color-mix(in srgb, var(--color-accent) 10%, transparent);
  color: var(--color-accent);
  font-weight: 600;
}

/* ===== SUBMIT ===== */
.modal__submit {
  background: var(--color-cta);
  color: var(--color-cta-text);
  border: none;
  border-radius: var(--radius-md);
  padding: 1rem 2rem;
  font-size: var(--text-base);
  font-weight: 700;
  font-family: inherit;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  width: 100%;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
  margin-top: var(--space-2);
}
.modal__submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px color-mix(in srgb, var(--color-cta) 40%, transparent);
}
.modal__submit:active { transform: translateY(0); }
.modal__submit:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}
.modal__submit:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

/* ===== FOOTER NOTE ===== */
.modal__footer {
  text-align: center;
  margin-top: var(--space-2);
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
}

/* ===== LOCK SCROLL ===== */
body.modal-open { overflow: hidden; }
