/* Product Theme Base Transitions */
/* Smooth transitions for theme switching */

/* Background color transition */
body {
  transition: background-color 0.8s ease-in-out;
}

/* Pseudo-element transitions for wave shapes */
body::before,
body::after {
  transition: opacity 0.8s ease-in-out;
}

/* Button transitions */
.cta-button,
button[type="submit"],
.btn-primary {
  transition: background-color 0.6s ease-in-out,
              border-color 0.6s ease-in-out,
              transform 0.2s ease-out;
}

/* Text color transitions */
.footer-text,
.page-footer,
.product-tagline {
  transition: color 0.6s ease-in-out;
}

/* Product branding transitions */
.product-branding {
  transition: opacity 0.4s ease-in-out;
}

.product-branding img {
  transition: opacity 0.3s ease-in-out;
}

/* Product selector tab transitions */
.product-tab {
  transition: background-color 0.3s ease,
              color 0.3s ease,
              box-shadow 0.3s ease,
              transform 0.2s ease;
}

.product-tab:hover {
  transform: translateY(-1px);
}

.product-tab.active {
  transition: background-color 0.2s ease,
              color 0.2s ease,
              box-shadow 0.2s ease;
}

/* Card entrance animation */
.login-card,
#signin {
  animation: card-entrance 0.5s ease-out 0.1s backwards;
}

@keyframes card-entrance {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Logo entrance animation */
.product-branding img {
  animation: logo-entrance 0.5s ease-out;
}

@keyframes logo-entrance {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Form fade transitions for one-time-link switching */
.simplified-login-form,
.one-time-link-form {
  transition: opacity 0.3s ease-in-out;
}

/* One-time-link form styling */
.one-time-link-form {
  margin-bottom: 24px;
}

.one-time-link-description {
  font-size: 14px;
  line-height: 20px;
  color: rgba(0, 0, 0, 0.7);
  margin-bottom: 20px;
  text-align: left;
  font-weight: 400;
}

.one-time-link-form .form-actions {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.one-time-link-form .btn {
  width: 100%;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  border: none;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.one-time-link-form .btn-primary {
  background: var(--product-btn);
  color: white;
}

.one-time-link-form .btn-primary:hover {
  opacity: 0.9;
}

.one-time-link-form .btn-secondary {
  background: white;
  color: #364153;
  border: 1px solid #e5e7eb;
  font-weight: 500;
  text-transform: uppercase;
}

.one-time-link-form .btn-secondary:hover {
  background: #f9fafb;
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
