/**
 * PagPlast Login Page Styles
 * Nova tela de login com layout duas colunas
 */

/* ==========================================================================
   Page Layout
   ========================================================================== */

.login-page {
  min-height: 100vh;
  display: flex;
  background: var(--pg-bg-main);
}

/* Left Column - Branding */
.login-branding {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: var(--pg-space-10);
  background: linear-gradient(135deg, var(--pg-primary) 0%, var(--pg-primary-dark) 50%, #6d3d45 100%);
  position: relative;
  overflow: hidden;
}

.login-branding::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 60%);
  animation: pg-pulse 8s ease-in-out infinite;
}

.login-branding-content {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 500px;
}

.login-illustration {
  width: 100%;
  max-width: 400px;
  margin-bottom: var(--pg-space-8);
  animation: pg-fade-in-up 0.8s ease-out;
}

.login-illustration svg,
.login-illustration img {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 20px 40px rgba(0,0,0,0.2));
}

.login-tagline {
  color: var(--pg-white);
  animation: pg-fade-in-up 0.8s ease-out 0.2s backwards;
}

.login-tagline h2 {
  font-size: var(--pg-font-size-3xl);
  font-weight: var(--pg-font-weight-bold);
  margin-bottom: var(--pg-space-3);
  line-height: var(--pg-line-height-tight);
}

.login-tagline p {
  font-size: var(--pg-font-size-lg);
  opacity: 0.85;
  line-height: var(--pg-line-height-relaxed);
}

/* Decorative elements */
.login-branding-decor {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.05);
}

.login-branding-decor-1 {
  width: 300px;
  height: 300px;
  bottom: -100px;
  left: -100px;
}

.login-branding-decor-2 {
  width: 200px;
  height: 200px;
  top: 10%;
  right: -50px;
}

.login-branding-decor-3 {
  width: 100px;
  height: 100px;
  top: 30%;
  left: 10%;
}

/* Right Column - Form */
.login-form-section {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: var(--pg-space-10) var(--pg-space-8);
  background: var(--pg-white);
}

.login-form-wrapper {
  width: 100%;
  max-width: 440px;
  animation: pg-fade-in-up 0.6s ease-out;
}

/* Logo */
.login-logo {
  text-align: center;
  margin-bottom: var(--pg-space-10);
}

.login-logo img {
  max-width: 180px;
  height: auto;
}

/* Headings */
.login-header {
  text-align: center;
  margin-bottom: var(--pg-space-8);
}

.login-title {
  font-size: var(--pg-font-size-2xl);
  font-weight: var(--pg-font-weight-bold);
  color: var(--pg-gray-900);
  margin-bottom: var(--pg-space-2);
}

.login-subtitle {
  font-size: var(--pg-font-size-base);
  color: var(--pg-gray-500);
}

/* Form */
.login-form {
  width: 100%;
}

.login-input-wrapper {
  position: relative;
  margin-bottom: var(--pg-space-5);
}

.login-input-wrapper label {
  display: block;
  font-size: var(--pg-font-size-sm);
  font-weight: var(--pg-font-weight-medium);
  color: var(--pg-gray-700);
  margin-bottom: var(--pg-space-2);
}

.login-input-field {
  position: relative;
}

.login-input-field .input-pg {
  padding-left: 48px;
  height: 52px;
}

.login-input-field .input-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  color: var(--pg-gray-400);
  transition: var(--pg-transition-base);
}

.login-input-field:focus-within .input-icon {
  color: var(--pg-primary);
}

/* Password toggle */
.login-password-toggle {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: var(--pg-gray-400);
  transition: var(--pg-transition-base);
}

.login-password-toggle:hover {
  color: var(--pg-gray-600);
}

/* Options Row */
.login-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--pg-space-6);
  flex-wrap: wrap;
  gap: var(--pg-space-3);
}

.login-checkbox {
  display: flex;
  align-items: center;
  gap: var(--pg-space-2);
  cursor: pointer;
}

.login-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--pg-primary);
  cursor: pointer;
}

.login-checkbox span {
  font-size: var(--pg-font-size-sm);
  color: var(--pg-gray-600);
}

.login-forgot-link {
  font-size: var(--pg-font-size-sm);
  color: var(--pg-secondary);
  text-decoration: none;
  font-weight: var(--pg-font-weight-medium);
  transition: var(--pg-transition-base);
}

.login-forgot-link:hover {
  color: var(--pg-secondary-dark);
  text-decoration: underline;
}

/* Submit Button */
.login-submit-btn {
  width: 100%;
  height: 54px;
  font-size: var(--pg-font-size-base);
  font-weight: var(--pg-font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 1px;
  border-radius: var(--pg-radius-lg);
  margin-top: var(--pg-space-2);
}

/* Footer */
.login-footer {
  margin-top: var(--pg-space-10);
  text-align: center;
}

.login-footer p {
  font-size: var(--pg-font-size-sm);
  color: var(--pg-gray-400);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 991.98px) {
  .login-page {
    flex-direction: column;
  }

  .login-branding {
    display: none;
  }

  .login-form-section {
    min-height: 100vh;
    padding: var(--pg-space-6);
    background: linear-gradient(180deg, var(--pg-primary) 0%, var(--pg-primary-dark) 30%, var(--pg-white) 30%);
  }

  .login-form-wrapper {
    background: var(--pg-white);
    padding: var(--pg-space-8);
    border-radius: var(--pg-radius-xl);
    box-shadow: var(--pg-shadow-xl);
    margin-top: var(--pg-space-8);
  }

  .login-logo {
    margin-top: -100px;
    margin-bottom: var(--pg-space-6);
  }

  .login-logo img {
    max-width: 140px;
    background: var(--pg-white);
    padding: var(--pg-space-4);
    border-radius: var(--pg-radius-xl);
    box-shadow: var(--pg-shadow-lg);
  }
}

@media (max-width: 575.98px) {
  .login-form-wrapper {
    padding: var(--pg-space-6);
  }

  .login-title {
    font-size: var(--pg-font-size-xl);
  }

  .login-options {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ==========================================================================
   Animations & Effects
   ========================================================================== */

/* Shake animation for errors */
@keyframes login-shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
  20%, 40%, 60%, 80% { transform: translateX(5px); }
}

.login-shake {
  animation: login-shake 0.5s ease-in-out;
}

/* Loading state */
.login-submit-btn.loading {
  position: relative;
  color: transparent !important;
  pointer-events: none;
}

.login-submit-btn.loading::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 24px;
  top: 50%;
  left: 50%;
  margin-top: -12px;
  margin-left: -12px;
  border: 3px solid var(--pg-white);
  border-top-color: transparent;
  border-radius: 50%;
  animation: pg-spin 0.8s linear infinite;
}

/* Focus ring styles */
.login-input-field .input-pg:focus {
  border-color: var(--pg-primary);
  box-shadow: 0 0 0 4px var(--pg-primary-100);
}

/* Error state */
.login-input-wrapper.has-error .input-pg {
  border-color: var(--pg-danger);
}

.login-input-wrapper.has-error .input-pg:focus {
  box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.2);
}

.login-error-message {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-size: var(--pg-font-size-sm);
  color: var(--pg-danger);
}
