@keyframes pulse {
  0% {
    box-shadow: 0 0 0px rgba(255, 144, 144, 0.5);
  }

  50% {
    box-shadow: 0 0 10px rgb(255, 63, 82);
  }
  100% {
    box-shadow: 0 0 0px rgb(170, 2, 18);
  }
}

@keyframes pulseInput {
  0% {
    border-color: #ff3f52;
    box-shadow: 0 0 0 0.2rem rgba(255, 63, 82, 0.25);
  }
  50% {
    border-color: #dc3545;
    box-shadow: 0 0 0 0.4rem rgba(220, 53, 69, 0.5);
  }
  100% {
    border-color: #ff3f52;
    box-shadow: 0 0 0 0.2rem rgba(255, 63, 82, 0.25);
  }
}

@keyframes pulseMessage {
  0% {
    background-color: #f8d7da;
    border-color: #f5c6cb;
    transform: scale(1);
  }
  50% {
    background-color: #f1b0b7;
    border-color: #ef9ba0;
    transform: scale(1.02);
  }
  100% {
    background-color: #f8d7da;
    border-color: #f5c6cb;
    transform: scale(1);
  }
}

.pulse-danger {
  animation: pulse 1s infinite;
  padding: 0.25rem 0.5rem;
  font-size: 10px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pulse-danger-input {
  animation: pulseInput 1.5s infinite;
  border: 2px solid #dc3545 !important;
}

.pulse-danger-message {
  animation: pulseMessage 1.2s infinite;
  border: 2px solid #dc3545;
  border-radius: 8px;
  padding: 15px;
}

/* Enhanced form validation styles */
.form-control.is-invalid {
  border-color: #dc3545;
  background-color: #fff5f5;
}

.form-control.is-invalid:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.text-danger {
  color: #dc3545 !important;
}

/* Phone number format hint */
.phone-hint {
  font-size: 0.75rem;
  color: #6c757d;
  font-style: italic;
}