/* ===================================
   AUTH MODULE - Estilos de Autenticação
   =================================== */

/* Tab Styling */
.auth-tab {
  background-color: transparent;
  color: #92400e;
  cursor: pointer;
}

.auth-tab.active {
  background-color: white;
  color: #b45309;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.auth-tab:hover:not(.active) {
  background-color: rgba(255, 255, 255, 0.5);
}

/* Input Focus Effects */
.auth-input:focus {
  transform: scale(1.01);
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.2);
}

/* Button Hover Animation */
.auth-button {
  position: relative;
  overflow: hidden;
}

.auth-button::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%);
  transition: width 0.6s, height 0.6s;
}

.auth-button:active::before {
  width: 300px;
  height: 300px;
}

/* Error Message Animation */
.auth-error {
  animation: slideDown 0.3s ease-out;
}

.auth-success {
  animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Form Transition */
.auth-form {
  animation: fadeIn 0.4s ease-out;
}

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

/* Password Strength Indicator */
.password-strength {
  height: 4px;
  background: #e5e7eb;
  border-radius: 2px;
  overflow: hidden;
  margin-top: 8px;
}

.password-strength-bar {
  height: 100%;
  transition: width 0.3s, background-color 0.3s;
}

.strength-weak {
  width: 33%;
  background-color: #ef4444;
}

.strength-medium {
  width: 66%;
  background-color: #f59e0b;
}

.strength-strong {
  width: 100%;
  background-color: #10b981;
}

/* Input Validation Icons */
.auth-input.valid {
  border-color: #10b981;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2310b981' viewBox='0 0 16 16'%3E%3Cpath d='M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 20px;
  padding-right: 40px;
}

.auth-input.invalid {
  border-color: #ef4444;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ef4444' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 20px;
  padding-right: 40px;
}

/* Loading Animation */
#loading-overlay {
  backdrop-filter: blur(4px);
}

/* Mobile Responsiveness */
@media (max-width: 480px) {
  .auth-form {
    padding: 0;
  }

  .auth-input {
    font-size: 16px; /* Prevent zoom on iOS */
  }

  .auth-button {
    padding: 12px 16px;
  }
}

/* Dark Mode Support (opcional para futuro) */
@media (prefers-color-scheme: dark) {
  /* Estilos para dark mode podem ser adicionados aqui */
}
