/* ============================================================
   BYMETAL ERP - LOGIN TRANSITION SLOW
   Ajuste de duración para que la bienvenida se vea con calma
   ============================================================ */

.login-transition.welcome-transition,
.welcome-transition {
  transition:
    opacity 520ms ease,
    visibility 520ms ease,
    backdrop-filter 720ms ease !important;
}

/* Barrido diagonal más lento */
.welcome-transition.is-active .welcome-gradient,
.login-transition.is-active .welcome-gradient {
  animation-duration: 2.55s !important;
  animation-timing-function: cubic-bezier(.16, 1, .3, 1) !important;
}

/* Línea diagonal más suave */
.welcome-transition.is-active .welcome-line,
.login-transition.is-active .welcome-line {
  animation-duration: 2.45s !important;
  animation-timing-function: cubic-bezier(.16, 1, .3, 1) !important;
}

/* Velo de fondo si existe */
.welcome-transition.is-active::after,
.login-transition.is-active::after {
  animation-duration: 2.45s !important;
  animation-timing-function: cubic-bezier(.16, 1, .3, 1) !important;
}

/* Texto entra con más presencia */
.welcome-transition.is-active .welcome-content,
.login-transition.is-active .welcome-content {
  animation-duration: 1.10s !important;
  animation-delay: 0.42s !important;
  animation-timing-function: cubic-bezier(.16, 1, .3, 1) !important;
}

/* Mantiene el texto visible y legible durante la espera */
.welcome-content {
  will-change: opacity, transform, filter;
}

.welcome-content h3 {
  text-shadow:
    0 22px 52px rgba(0, 0, 0, 0.68),
    0 0 32px rgba(255, 183, 77, 0.18) !important;
}

.welcome-content p {
  text-shadow: 0 12px 34px rgba(0, 0, 0, 0.55);
}

/* ============================================================
   BYMETAL ERP - LOGIN READABILITY PASS
   Ajustes finos sin cambiar el flujo ni la identidad visual.
   ============================================================ */

body:has(.login-shell) {
  min-height: 100vh !important;
  align-items: center !important;
  overflow-x: hidden !important;
}

.login-shell {
  max-height: calc(100vh - 32px) !important;
}

.login-brand,
.login-panel {
  min-height: clamp(600px, calc(100vh - 32px), 760px) !important;
}

.login-brand {
  padding: clamp(28px, 4vw, 42px) !important;
}

.login-panel {
  padding: clamp(28px, 4vw, 40px) !important;
}

.brand-title {
  font-size: clamp(48px, 6.6vw, 76px) !important;
  line-height: 0.94 !important;
}

.brand-hero-logo.machine-scene {
  min-height: 210px !important;
  height: clamp(210px, 30vh, 260px) !important;
  width: 100% !important;
  max-width: 540px !important;
}

.brand-point {
  color: #e2e8f0 !important;
  background: rgba(15, 23, 42, 0.72) !important;
  border-color: rgba(148, 163, 184, 0.22) !important;
}

.login-card {
  transform: translateY(-4px);
}

.login-transition.welcome-transition::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 45%, rgba(2, 6, 23, 0.82), rgba(2, 6, 23, 0.42) 38%, rgba(2, 6, 23, 0.74) 100%),
    linear-gradient(180deg, rgba(2, 6, 23, 0.24), rgba(2, 6, 23, 0.78));
  pointer-events: none;
}

.welcome-content {
  max-width: min(760px, calc(100vw - 40px));
  padding: clamp(26px, 5vw, 46px) !important;
  border: 1px solid rgba(125, 211, 252, 0.22);
  border-radius: 32px;
  background: linear-gradient(180deg, rgba(2, 6, 23, 0.48), rgba(15, 23, 42, 0.28));
  box-shadow:
    0 32px 90px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.welcome-content h3 {
  color: #ffffff !important;
  letter-spacing: 0.04em !important;
  text-shadow:
    0 24px 64px rgba(0, 0, 0, 0.78),
    0 0 24px rgba(125, 211, 252, 0.18) !important;
}

.welcome-content p {
  color: #f8fafc !important;
  font-weight: 700;
}

.welcome-loader-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  width: min(680px, calc(100vw - 84px));
  margin: 28px auto 0;
}

.welcome-loader-card {
  position: relative;
  overflow: hidden;
  min-height: 92px;
  padding: 16px 16px 14px;
  border-radius: 20px;
  border: 1px solid rgba(125, 211, 252, 0.22);
  background:
    linear-gradient(180deg, rgba(15, 23, 42, 0.82), rgba(2, 6, 23, 0.58)),
    radial-gradient(circle at 12% 10%, rgba(125, 211, 252, 0.2), transparent 34%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 18px 34px rgba(0, 0, 0, 0.24);
  opacity: 0;
  transform: translateY(14px) scale(0.98);
}

.welcome-loader-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 0%, rgba(255, 255, 255, 0.14) 44%, transparent 76%);
  transform: translateX(-115%);
}

.welcome-loader-card strong,
.welcome-loader-card small {
  display: block;
  text-align: left;
}

.welcome-loader-card strong {
  margin: 18px 0 5px;
  color: #f8fafc;
  font-size: 14px;
  letter-spacing: 0.03em;
}

.welcome-loader-card small {
  color: #a9b7ca;
  font-size: 11px;
  line-height: 1.35;
}

.loader-dot {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: #22c55e;
  box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.45);
}

.welcome-progress {
  position: relative;
  width: min(520px, calc(100vw - 100px));
  height: 7px;
  margin: 24px auto 0;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.22);
  border: 1px solid rgba(148, 163, 184, 0.16);
}

.welcome-progress span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #0ea5e9, #22c55e, #f59e0b);
  box-shadow: 0 0 24px rgba(14, 165, 233, 0.34);
}

.welcome-transition.is-active .welcome-loader-card,
.login-transition.is-active .welcome-loader-card {
  animation: loaderCardIn 760ms cubic-bezier(.16, 1, .3, 1) forwards;
}

.welcome-transition.is-active .welcome-loader-card:nth-child(1),
.login-transition.is-active .welcome-loader-card:nth-child(1) {
  animation-delay: 760ms;
}

.welcome-transition.is-active .welcome-loader-card:nth-child(2),
.login-transition.is-active .welcome-loader-card:nth-child(2) {
  animation-delay: 980ms;
}

.welcome-transition.is-active .welcome-loader-card:nth-child(3),
.login-transition.is-active .welcome-loader-card:nth-child(3) {
  animation-delay: 1200ms;
}

.welcome-transition.is-active .welcome-loader-card::after,
.login-transition.is-active .welcome-loader-card::after {
  animation: loaderSweep 1.05s ease forwards;
  animation-delay: inherit;
}

.welcome-transition.is-active .loader-dot,
.login-transition.is-active .loader-dot {
  animation: loaderPulse 1.15s ease-in-out infinite;
}

.welcome-transition.is-active .welcome-progress span,
.login-transition.is-active .welcome-progress span {
  animation: welcomeProgress 2.35s cubic-bezier(.22, .61, .36, 1) forwards;
  animation-delay: 520ms;
}

@keyframes loaderCardIn {
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes loaderSweep {
  to {
    transform: translateX(115%);
  }
}

@keyframes loaderPulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.42);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(34, 197, 94, 0);
    transform: scale(1.1);
  }
}

@keyframes welcomeProgress {
  0% { width: 0; }
  55% { width: 68%; }
  100% { width: 100%; }
}

#btn-login.is-loading,
.login-cta.is-loading {
  cursor: progress;
  filter: saturate(0.9) brightness(0.95);
}

@media (max-width: 720px) {
  .welcome-loader-grid {
    grid-template-columns: 1fr;
    width: min(420px, calc(100vw - 58px));
    gap: 10px;
    margin-top: 20px;
  }

  .welcome-loader-card {
    min-height: 74px;
    padding: 13px 14px;
  }

  .welcome-loader-card strong {
    margin-top: 10px;
  }
}

@media (max-height: 780px) and (min-width: 961px) {
  body:has(.login-shell) {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  .login-shell {
    height: calc(100vh - 24px) !important;
    max-height: calc(100vh - 24px) !important;
  }

  .login-brand,
  .login-panel {
    min-height: 0 !important;
    height: calc(100vh - 24px) !important;
  }

  .login-brand {
    padding: 28px 38px !important;
  }

  .login-panel {
    padding: 28px 36px !important;
  }

  .brand-kicker {
    margin-bottom: 10px !important;
  }

  .brand-title {
    font-size: clamp(42px, 5.7vw, 64px) !important;
  }

  .brand-text {
    margin-top: 14px !important;
    line-height: 1.55 !important;
  }

  .brand-hero-logo.machine-scene {
    height: 185px !important;
    min-height: 185px !important;
    margin-top: 22px !important;
  }

  .brand-points {
    gap: 10px !important;
    margin-top: 18px !important;
  }

  .brand-point {
    padding: 9px 12px !important;
    font-size: 13px !important;
  }

  .login-mark {
    width: 84px !important;
    height: 84px !important;
    margin-bottom: 14px !important;
  }

  .login-heading {
    margin-bottom: 22px !important;
  }

  .login-heading h1 {
    font-size: 36px !important;
  }

  .login-heading-copy,
  .login-card > p.text-sm {
    margin-bottom: 24px !important;
  }

  .login-card .space-y-5 {
    gap: 16px !important;
  }

  .login-card > p.mt-8 {
    margin-top: 20px !important;
  }
}

@media (max-width: 760px) {
  html,
  body {
    min-height: 100% !important;
  }

  body:has(.login-shell) {
    display: block !important;
    padding: 12px !important;
    overflow-y: auto !important;
  }

  .login-shell {
    max-height: none !important;
    min-height: 0 !important;
    height: auto !important;
    border-radius: 24px !important;
    margin: 0 auto !important;
    transform: none !important;
  }

  .login-brand {
    min-height: auto !important;
    height: auto !important;
    padding: 24px !important;
    overflow: visible !important;
  }

  .brand-title {
    font-size: clamp(40px, 11vw, 58px) !important;
  }

  .brand-hero-logo.machine-scene {
    height: 190px !important;
    min-height: 190px !important;
  }

  .brand-points {
    display: none !important;
  }

  .login-panel {
    min-height: auto !important;
    height: auto !important;
    padding: 26px 22px 28px !important;
  }
}
