.authentication-wrapper {
  display: flex;
  flex-basis: 100%;
  min-height: 100vh;
  width: 100%;
}
.authentication-wrapper .authentication-inner {
  width: 100%;
}
.authentication-wrapper.authentication-basic {
  align-items: center;
  justify-content: center;
}
.authentication-wrapper.authentication-basic .card-body {
  padding: 2rem;
}
.authentication-wrapper.authentication-cover {
  align-items: flex-start;
}
.authentication-wrapper.authentication-cover .authentication-inner {
  height: 100%;
  margin: auto 0;
}
.authentication-wrapper.authentication-cover .authentication-inner .auth-cover-bg {
  margin: 2rem 0 2rem 2rem;
  border-radius: 1.125rem;
  position: relative;
}
/* Panel izquierdo: logo arriba, ilustración centro, eslogan abajo */
.authentication-wrapper.authentication-cover .authentication-inner .auth-cover-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 2rem 1.5rem;
  width: 100%;
}
.authentication-wrapper.authentication-cover .authentication-inner .auth-cover-logo {
  max-height: 20%;
  width: auto;
  z-index: 1;
  flex-shrink: 0;
}
.authentication-wrapper.authentication-cover .authentication-inner .auth-cover-slogan {
  color: #fff;
  font-size: clamp(1.125rem, 1rem + 1.5vw, 2.5rem);
  font-weight: 700;
  text-align: center;
  margin: 0;
  z-index: 1;
  flex-shrink: 0;
  line-height: 1.35;
}

@keyframes auth-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-12px);
  }
}

/* Controla el tamaño de toda la escena */
.illustration-wrapper {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  /*el límite de altura que tenía la imagen */
  height: 65vh; 
  width: auto; 
  flex-shrink: 0;
  z-index: 1;
}

/* Gato */
.authentication-wrapper.authentication-cover .authentication-inner .auth-cover-bg .auth-illustration {
  height: 105%;
  margin: 0;
  object-fit: contain;
  object-position: center;
  animation: none;
}

/* Círculos */
.auth-bg-shape {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1; 
  pointer-events: none;
}

/* Tamaño de los círculos */
.shape-large {
  width: 115%;        
  height: auto; 
}
.shape-small {
  width: 105%;
  height: auto;
}

/* Orbita: mismo tamaño que .shape-large para seguir el círculo exterior */
.auth-orbit-wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 110%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  animation: auth-orbit 35s linear infinite;
  z-index: 2;
}

@keyframes auth-orbit {
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

/* Iconos que orbitan */
.auth-orbit-wrapper .auth-icon {
  position: absolute;
  left: calc(50% + 50% * cos(var(--orbit-angle)));
  top: calc(50% + 50% * sin(var(--orbit-angle)));
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  transform: translate(-50%, -50%);
  animation: auth-orbit-counter 35s linear infinite;
}
.auth-orbit-wrapper .auth-icon .auth-icon-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: inherit;
}

/* Tamaños en % del wrapper para escalar con los círculos (max-height) */
.auth-icon-flow {
  width: 12.5%;
  height: 12.5%;
  min-width: 32px;
  min-height: 32px;
  background-color: #dcf6e8;
}
.auth-icon-flow .auth-icon-inner svg {
  width: 64%;
  height: 64%;
}
.auth-icon-cart {
  width: 10.5%;
  height: 10.5%;
  min-width: 28px;
  min-height: 28px;
  background-color: #ffe2e3;
}
.auth-icon-cart .auth-icon-inner svg {
  width: 60%;
  height: 60%;
}
.auth-icon-clock {
  width: 14%;
  height: 14%;
  min-width: 40px;
  min-height: 40px;
  background-color: #ffe8d2;
}
.auth-icon-clock .auth-icon-inner svg {
  width: 64%;
  height: 64%;
}

@keyframes auth-orbit-counter {
  to {
    transform: translate(-50%, -50%) rotate(-360deg);
  }
}

/* Clase base por si se usa .auth-icon fuera de la órbita */
.auth-icon {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  z-index: 2;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

.authentication-wrapper.authentication-cover .authentication-inner .auth-cover-bg .auth-illustration {
  max-height: 105%;  
  z-index: 1;
  flex-shrink: 0;
  animation: auth-float 3s ease-in-out infinite;
}
.authentication-wrapper.authentication-cover .authentication-inner .platform-bg {
  position: absolute;
  width: 100%;
  bottom: 0%;
  left: 0%;
  height: 35%;
}
.authentication-wrapper.authentication-cover .authentication-inner .auth-multisteps-bg-height {
  height: 100vh;
}
.authentication-wrapper.authentication-cover .authentication-inner .auth-multisteps-bg-height > img:first-child {
  z-index: 1;
}
.authentication-wrapper.authentication-basic .authentication-inner {
  max-width: 400px;
  position: relative;
}
.authentication-wrapper.authentication-basic .authentication-inner:before {
  width: 238px;
  height: 233px;
  content: ' ';
  position: absolute;
  top: -55px;
  left: -40px;
  /*   background-image: url("data:image/svg+xml,%3Csvg width='239' height='234' viewBox='0 0 239 234' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='88.5605' y='0.700195' width='149' height='149' rx='19.5' stroke='%237367F0' stroke-opacity='0.16'/%3E%3Crect x='0.621094' y='33.761' width='200' height='200' rx='10' fill='%237367F0' fill-opacity='0.08'/%3E%3C/svg%3E%0A");
 */
}
@media (max-width: 575.98px) {
  .authentication-wrapper.authentication-basic .authentication-inner:before {
    display: none;
  }
}
.authentication-wrapper.authentication-basic .authentication-inner:after {
  width: 180px;
  height: 180px;
  content: ' ';
  position: absolute;
  z-index: -1;
  bottom: -30px;
  right: -56px;
  /*   background-image: url("data:image/svg+xml,%3Csvg width='181' height='181' viewBox='0 0 181 181' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1.30469' y='1.44312' width='178' height='178' rx='19' stroke='%237367F0' stroke-opacity='0.16' stroke-width='2' stroke-dasharray='8 8'/%3E%3Crect x='22.8047' y='22.9431' width='135' height='135' rx='10' fill='%237367F0' fill-opacity='0.08'/%3E%3C/svg%3E");
 */
}
@media (max-width: 575.98px) {
  .authentication-wrapper.authentication-basic .authentication-inner:after {
    display: none;
  }
}
.authentication-wrapper .auth-input-wrapper .auth-input {
  max-width: 50px;
  padding-left: 0.4rem;
  padding-right: 0.4rem;
  font-size: 150%;
}

@media (max-height: 636px) {
  .auth-multisteps-bg-height {
    height: 100% !important;
  }
}
@media (max-width: 575.98px) {
  .authentication-wrapper .auth-input-wrapper .auth-input {
    font-size: 1.125rem;
  }
}
#twoStepsForm .fv-plugins-bootstrap5-row-invalid .form-control {
  border-color: #ea5455;
}

.light-style .authentication-wrapper.authentication-bg {
  background-color: #3fa8a6;
}

/* Header del login (logo + eslogan arriba del contenedor) */
.auth-login-icon {
  height: 2.5rem;
  width: auto;
  display: block;
}
.auth-login-logo {
  height: 16px;
  width: 130px;
  display: block;
}
.auth-login-tagline {
  font-size: 12px;
  color: #fff;
  line-height: 1.3;
}

/* Contenedor del formulario de login (relleno #64b9b7) */
.auth-login-box {
  max-width: 100%;
  width: 550px;
  background-color: #76c0bf;
  padding: 5rem 3rem 3rem 3rem;
}
.auth-login-box .form-label {
  color: #fff;
}

/* Solo el label del input que tiene el foco (no el form.mb-3) */
.auth-login-box form > .mb-3:focus-within .form-label {
  color: #3fa8a6;
}

/* Estado autocompletado de los inputs del login */
.auth-login-box .form-control:-webkit-autofill,
.auth-login-box .form-control:-webkit-autofill:hover,
.auth-login-box .form-control:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #ffffff inset;
  box-shadow: 0 0 0 1000px #ffffff inset;
  -webkit-text-fill-color: #2d3140;
}
.auth-login-box .form-control:autofill {
  box-shadow: 0 0 0 1000px #fff inset;
}

/* Input vacío: fondo transparente y letra blanca */
.auth-login-box .form-control {
  background-color: transparent;
  color: #fff;
}
.auth-login-box .form-control::placeholder {
  color: rgba(255, 255, 255, 0.85);
}
.auth-login-box .form-control:focus,
.auth-login-box .form-control:not(:placeholder-shown) {
  background-color: #fff;
  color: #2d3140;
}
.auth-login-box .form-control:focus::placeholder {
  color: rgba(0, 0, 0, 0.4);
}

/* Hover: borde #486670 en todos los inputs y en el grupo de contraseña */
.auth-login-box .form-control:hover {
  border-color: #486670 !important;
}
.auth-login-box .input-group:hover .form-control,
.auth-login-box .input-group:hover .input-group-text {
  border-color: #486670 !important;
}

/* Checkbox Recuerdame (solo visual, sin funcionalidad) */
.auth-login-box .auth-login-remember .form-check-label {
  color: #fff;
}
.auth-login-box .auth-login-remember .form-check-input:checked {
  background-color: #3fa8a6;
  border-color: #3fa8a6;
}

/* Icono ojo contraseña: vacío = transparente y blanco; con foco o con valor = blanco y icono oscuro */
.auth-login-box .form-control:placeholder-shown + .input-group-text {
  background-color: transparent;
  color: #ffffff;
}

.auth-login-box .form-control:not(:placeholder-shown) + .input-group-text {
  background-color: #fff;
  color: #363b4b;
}
.auth-login-box .form-control:focus + .input-group-text i,
.auth-login-box .form-control:focus + .input-group-text,
.auth-login-box .form-control:autofill + .input-group-text,
.auth-login-box .form-control:not(:placeholder-shown) + .input-group-text i {
  background-color: #fff;
  color: #363b4b;
}

/* Título y subtítulo dentro del contenedor de login */
.auth-login-box .auth-login-title {
  color: #fff;
  font-size: clamp(2rem, 1.25rem + 1.5vw, 2.875rem);
}
.auth-login-box .auth-login-subtitle {
  color: #fff;
  font-size: 0.95rem;
}

/* Botón Acceder del login */
.auth-login-box #loginBtn,
.auth-login-box button[name="login"] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background-color: #363b4b;
  border-color: #363b4b;
}
/* Botón Acceder del login: hover, focus, disabled */
.auth-login-box #loginBtn:hover,
.auth-login-box #loginBtn:focus,
.auth-login-box #loginBtn:disabled,
.auth-login-box button[name="login"]:hover, 
.auth-login-box button[name="login"]:disabled, 
.auth-login-box button[name="login"]:focus {
  background-color: #2d3140 !important;
  border-color: #2d3140 !important;
}

.dark-style .authentication-wrapper.authentication-bg {
  background-color: #2f3349;
}
.dark-style .auth-cover-bg-color {
  background-color: #25293c;
}