/* Modal Overlay */
.captcha-modal-overlay {
  position: fixed !important;
  inset: 0 !important;
  background-color: rgba(0, 0, 0, 0.6) !important;
  backdrop-filter: blur(8px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 9999 !important;
  padding: 1rem !important;
  animation: fadeIn 0.3s ease-out !important;
}

/* Modal Container */
.captcha-modal-container {
  background: white !important;
  border-radius: 1rem !important;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2) !important;
  width: 100% !important;
  max-width: 400px !important;
  overflow: hidden !important;
  animation: zoomIn 0.3s ease-out !important;
}

/* Modal Header - TikTok Pink Gradient */
.captcha-modal-header {
  background: linear-gradient(135deg, #FE2C55 0%, #FF0050 100%) !important;
  padding: 2rem 1.5rem !important;
  text-center !important;
}

.captcha-modal-icon-wrapper {
  display: flex !important;
  justify-content: center !important;
  margin-bottom: 1rem !important;
}

.captcha-modal-icon {
  width: 56px !important;
  height: 56px !important;
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.1)) !important;
}

.captcha-modal-title {
  color: white !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  margin-bottom: 0.5rem !important;
}

.captcha-modal-subtitle {
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 0.875rem !important;
}

/* Modal Body */
.captcha-modal-body {
  padding: 1.5rem !important;
}

.captcha-question-wrapper {
  text-align: center !important;
  margin-bottom: 1.5rem !important;
}

.captcha-question-box {
  display: inline-block !important;
  background: linear-gradient(135deg, rgba(254, 44, 85, 0.1) 0%, rgba(255, 0, 80, 0.1) 100%) !important;
  border-radius: 1rem !important;
  padding: 1.5rem 2rem !important;
  margin-bottom: 1rem !important;
}

.captcha-question-text {
  font-size: 2.25rem !important;
  font-weight: 700 !important;
  color: #3c4043 !important;
}

.captcha-question-hint {
  font-size: 0.875rem !important;
  color: #5f6368 !important;
}

/* Input Field */
.captcha-input {
  width: 100% !important;
  padding: 0.875rem 1rem !important;
  border: 2px solid #e0e0e0 !important;
  border-radius: 0.75rem !important;
  text-align: center !important;
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  transition: all 0.3s ease !important;
}

.captcha-input:focus {
  outline: none !important;
  border-color: #FE2C55 !important;
  box-shadow: 0 0 0 4px rgba(254, 44, 85, 0.2) !important;
}

.captcha-input.error {
  border-color: #EA4335 !important;
  background-color: #FEF2F2 !important;
  animation: shake 0.5s ease !important;
}

.captcha-input.success {
  border-color: #34A853 !important;
  background-color: #F0FDF4 !important;
}

/* Feedback Messages */
.captcha-feedback {
  margin-top: 0.75rem !important;
  padding: 0.75rem !important;
  border-radius: 0.5rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  animation: fadeIn 0.2s ease !important;
}

.captcha-feedback.error {
  background-color: #FEF2F2 !important;
  border: 1px solid #FECACA !important;
}

.captcha-feedback.success {
  background-color: #F0FDF4 !important;
  border: 1px solid #BBF7D0 !important;
}

.captcha-feedback-icon {
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0 !important;
}

.captcha-feedback-text {
  font-size: 0.75rem !important;
  font-weight: 500 !important;
}

.captcha-feedback.error .captcha-feedback-text {
  color: #EA4335 !important;
}

.captcha-feedback.success .captcha-feedback-text {
  color: #34A853 !important;
}

/* Confirm Button - TikTok Pink */
.captcha-confirm-btn {
  width: 100% !important;
  margin-top: 1.25rem !important;
  padding: 0.875rem 1.5rem !important;
  background: linear-gradient(135deg, #FE2C55 0%, #FF0050 100%) !important;
  color: white !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  border: none !important;
  border-radius: 0.75rem !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 4px 6px -1px rgba(254, 44, 85, 0.3), 0 2px 4px -1px rgba(254, 44, 85, 0.2) !important;
}

.captcha-confirm-btn:hover:not(:disabled) {
  background: linear-gradient(135deg, #FF0050 0%, #FE2C55 100%) !important;
  box-shadow: 0 10px 15px -3px rgba(254, 44, 85, 0.4), 0 4px 6px -2px rgba(254, 44, 85, 0.3) !important;
}

.captcha-confirm-btn:active:not(:disabled) {
  transform: scale(0.95) !important;
}

.captcha-confirm-btn:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
}

/* Animations */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes shake {
  0%, 100% {
    transform: translateX(0);
  }
  10%, 30%, 50%, 70%, 90% {
    transform: translateX(-5px);
  }
  20%, 40%, 60%, 80% {
    transform: translateX(5px);
  }
}
