/* ============================================================
   LOGIN – PLATAFORMA RENTA PELÍCULAS NT
   Paleta: azul noche profundo, glassmorphism marino, acentos
   azul eléctrico. Tipografía Montserrat (títulos) + Inter (cuerpo).
   ============================================================ */

/* -------------------------------------------------------
   GOOGLE FONTS — importados vía <link> en el <head>
   Montserrat 600,700,800  |  Inter 400,500,600
   ------------------------------------------------------- */

/* -------------------------------------------------------
   CSS CUSTOM PROPERTIES (PALETA)
   ------------------------------------------------------- */
:root {
  --nt-noche: #0a1128;
  --nt-marino: rgba(27, 38, 59, 0.7);
  --nt-marino-solid: #1b263b;
  --nt-acento: #00b4d8;
  --nt-acento-claro: #90e0ef;
  --nt-blanco-tras: rgba(255, 255, 255, 0.7);
  --nt-blanco-tenue: rgba(255, 255, 255, 0.12);
  --nt-blanco-input-border: rgba(255, 255, 255, 0.3);
}

/* -------------------------------------------------------
   RESET Y BASE
   ------------------------------------------------------- */
html, body {
  height: 100%;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
  font-family: 'Inter', 'Segoe UI', sans-serif;
}

body.login-page {
  display: block;
  min-height: 100vh;
  height: auto;
  background: var(--nt-noche);
  overflow-y: auto;
}

.login-page {
  position: relative;
  overflow-x: hidden;
}

.login-page::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--nt-noche);
  z-index: -1;
}

/* -------------------------------------------------------
   MAIN CONTAINER
   ------------------------------------------------------- */
.main-cont {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.main-cont > .row {
  flex: 1;
}

/* -------------------------------------------------------
   COLUMNA IZQUIERDA
   ------------------------------------------------------- */
.col-izquierda {
  overflow-x: hidden;
  min-height: 100vh;
  padding-top: 30px;
  background: linear-gradient(180deg, rgb(40, 110, 165) 0%, rgba(6, 27, 42, 1) 100%);
  background-attachment: local;
  background-repeat: repeat-y;
  background-size: 100% auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.col-izquierda::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgb(40, 110, 165) 0%, rgba(6, 27, 42, 1) 100%);
  z-index: -1;
  min-height: 100%;
  height: 100%;
}

/* Scrollbar Webkit */
.col-izquierda::-webkit-scrollbar {
  width: 6px;
}
.col-izquierda::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
}
.col-izquierda::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.3);
  border-radius: 3px;
}
.col-izquierda::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.5);
}

/* -------------------------------------------------------
   LOGIN BOX + FRONT
   ------------------------------------------------------- */
.login-box {
  width: 100%;
  padding: 15px;
  background: transparent;
}

.login-box-front {
  width: 90%;
  padding-bottom: 20px;
}

/* -------------------------------------------------------
   GLASSMORPHISM CARD (FORMULARIO)
   ------------------------------------------------------- */
.card-logo {
  background: var(--nt-marino);
  border-radius: 10px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  border: 1px solid var(--nt-blanco-tenue);
  padding: 5px;
  color: white;
  height: auto;
}

.login-card-body {
  background: transparent;
  color: white;
  padding: 15px;
  height: auto;
  display: block;
}

/* -------------------------------------------------------
   LOGO
   ------------------------------------------------------- */
.login-logo {
  margin-bottom: 0;
}

.login-logo a {
  color: white;
  font-size: 2rem;
  font-weight: bold;
}

.login-logo img {
  max-width: 100%;
  height: auto;
  width: auto;
  max-height: 80px;
  min-width: 120px;
  transition: all 0.3s ease;
}

/* -------------------------------------------------------
   TIPOGRAFÍA DE TÍTULOS
   ------------------------------------------------------- */
.subtitulo-login {
  color: white;
  font-family: 'Montserrat', sans-serif;
  margin-bottom: 5px;
  line-height: 1.3;
  text-align: center;
}

.subtitulo-login:first-of-type {
  font-weight: 800;
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 3px;
}

.row-subtitulo-bienvenido {
  margin-top: 5px;
  margin-bottom: 10px;
  text-align: center;
}

.row-subtitulo-bienvenido strong.subtitulo-login {
  font-size: 0.85rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 1px;
}

.login-box-msg {
  margin-bottom: 15px;
  padding: 0;
  color: white;
}

.login-box-msg strong {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: 2px;
}

/* -------------------------------------------------------
   USER IMAGE
   ------------------------------------------------------- */
.user-image {
  text-align: center;
  margin: 10px 0;
}

.user-image img {
  opacity: 0.9;
  width: 48px;
  height: 48px;
  margin-top: 5px;
  margin-bottom: 5px;
}

/* -------------------------------------------------------
   LANGUAGE SELECTOR
   ------------------------------------------------------- */
.language-selector {
  margin-bottom: 15px;
  text-align: center;
}

.language-selector .btn-group .btn {
  padding: 6px 14px;
  font-size: 0.85rem;
  font-family: 'Inter', sans-serif;
  border-radius: 20px;
  margin: 0 3px;
  transition: all 0.3s ease;
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: white;
  background-color: rgba(255, 255, 255, 0.15);
}

.language-selector .btn-group .btn.active {
  border-color: var(--nt-acento);
  color: var(--nt-noche);
  background-color: var(--nt-acento);
  box-shadow: 0 0 12px rgba(0, 180, 216, 0.4);
}

.language-selector .btn-group .btn:hover:not(.active) {
  background-color: rgba(255, 255, 255, 0.25);
}

/* -------------------------------------------------------
   FORM INPUTS (EMAIL / PASSWORD)
   ------------------------------------------------------- */
.input-group {
  margin-bottom: 10px;
}

.login-card-body .input-group .form-control {
  width: calc(100% - 45px);
  background: transparent;
  color: white;
  border: none;
  border-bottom: 2px solid var(--nt-blanco-input-border);
  border-radius: 0;
  font-size: 1rem;
  font-family: 'Inter', sans-serif;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
  height: 38px;
}

.login-card-body .input-group .form-control:focus {
  border-bottom-color: var(--nt-acento);
  box-shadow: 0 4px 16px rgba(0, 180, 216, 0.25);
  outline: none;
  background: transparent;
}

.login-card-body .input-group .form-control::placeholder {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.95rem;
}

.login-card-body .input-group .input-group-text {
  width: 45px;
  background: transparent;
  border: none;
  border-bottom: 2px solid var(--nt-blanco-input-border);
  border-radius: 0;
  justify-content: center;
  color: var(--nt-blanco-tras);
  transition: border-color 0.3s ease;
}

.login-card-body .input-group .input-group-text span {
  color: var(--nt-blanco-tras);
}

/* Error feedback */
.invalid-feedback {
  color: #ff6b6b;
  font-size: 0.85rem;
  margin-top: 4px;
}

/* Captcha container */
.form-group-captcha {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 16px;
}

/* -------------------------------------------------------
   REMEMBER CHECKBOX
   ------------------------------------------------------- */
.icheck-secondary label {
  color: var(--nt-blanco-tras);
  font-size: 0.95rem;
  cursor: pointer;
  font-family: 'Inter', sans-serif;
}

/* -------------------------------------------------------
   LINKS (OLVIDÉ CONTRASEÑA)
   ------------------------------------------------------- */
#olvide-pass,
#solicitar-cuenta {
  color: var(--nt-blanco-tras);
  font-weight: 600;
  transition: color 0.3s ease;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
}

#olvide-pass:hover,
#solicitar-cuenta:hover {
  color: var(--nt-acento);
}

/* -------------------------------------------------------
   BTN INGRESAR (ACCEDER)
   ------------------------------------------------------- */
#btn-ingresar {
  width: 95%;
  font-size: 0.95rem;
  height: 42px;
  background: linear-gradient(135deg, var(--nt-acento) 0%, #0077b6 100%);
  color: var(--nt-noche);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  border: none;
  border-radius: 25px;
  box-shadow: 0 4px 20px rgba(0, 180, 216, 0.4);
  cursor: pointer;
  transition: all 0.3s ease;
}

#btn-ingresar:hover {
  width: 100%;
  box-shadow: 0 6px 28px rgba(0, 180, 216, 0.6);
  transform: translateY(-1px);
}

/* -------------------------------------------------------
   BTN SOLICITAR CUENTA (IZQUIERDA)
   ------------------------------------------------------- */
.btn-solicitar-izquierda {
  display: block;
  width: 100%;
  background: linear-gradient(135deg, #f7971e 0%, #ffd200 100%);
  color: #1a1a2e;
  border: none;
  border-radius: 25px;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.8px;
  padding: 10px 20px;
  box-shadow: 0 4px 15px rgba(255, 210, 0, 0.4);
  transition: all 0.3s ease;
  text-transform: uppercase;
  text-decoration: none;
  font-family: 'Montserrat', sans-serif;
  text-align: center;
}

.btn-solicitar-izquierda:hover {
  box-shadow: 0 6px 20px rgba(255, 210, 0, 0.6);
  transform: translateY(-2px);
  color: #1a1a2e;
  text-decoration: none;
}

/* -------------------------------------------------------
   COLUMNA DERECHA
   ------------------------------------------------------- */
.col-derecha {
  color: white;
  display: flex;
  align-items: stretch;
  justify-content: center;
  overflow: hidden;
  background: var(--nt-noche);
  min-height: 100vh;
  padding: 0;
}

.col-derecha > div.row {
  width: 100%;
}

/* -------------------------------------------------------
   POSTER REVEAL — EFECTO FOCO DE LUZ (LENTE)
   ------------------------------------------------------- */
.poster-reveal {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  cursor: ew-resize;
}

/* Capa-base: visible por defecto, oscurecida */
.poster-base {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.45);
  transition: filter 0.6s ease;
  z-index: 0;
}

/* Capa-superior: enmascarada; wipe horizontal que sigue al cursor */
.poster-top {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  --x: 0%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent calc(var(--x) - 2%), #000 calc(var(--x) + 2%), #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, transparent calc(var(--x) - 2%), #000 calc(var(--x) + 2%), #000 100%);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  z-index: 1;
}

/* Overlay de textos y botón sobre el póster */
.poster-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 80px 40px 40px;
  background: linear-gradient(0deg, rgba(10, 17, 40, 0.95) 0%, rgba(10, 17, 40, 0.5) 60%, transparent 100%);
  z-index: 2;
  text-align: center;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
}

.poster-overlay > * {
  pointer-events: auto;
}

.poster-overlay p {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  color: var(--nt-blanco-tras);
  margin-bottom: 8px;
  line-height: 1.5;
}

/* Botón "Solicitar Cuenta" dentro del overlay del póster */
.poster-overlay .btn-solicitar-derecha {
  display: inline-block;
  background: linear-gradient(135deg, var(--nt-acento) 0%, #0077b6 100%);
  color: var(--nt-noche);
  border: none;
  border-radius: 25px;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.8px;
  padding: 10px 30px;
  box-shadow: 0 4px 20px rgba(0, 180, 216, 0.4);
  text-transform: uppercase;
  text-decoration: none;
  font-family: 'Montserrat', sans-serif;
  transition: all 0.3s ease;
  margin-top: 8px;
}

.poster-overlay .btn-solicitar-derecha:hover {
  box-shadow: 0 6px 28px rgba(0, 180, 216, 0.6);
  transform: translateY(-2px);
  color: var(--nt-noche);
  text-decoration: none;
}

/* Texto descriptivo y créditos en la derecha (legacy si se usa fuera del overlay) */
.row-descripcion,
.row-creditos {
  text-align: center;
  font-size: 1rem;
  color: var(--nt-blanco-tras);
  font-family: 'Inter', sans-serif;
}

.row-creditos {
  font-size: 1.1em;
}

.row-solicitar-cuenta {
  text-align: center;
  font-size: 1rem;
  margin-top: 1.5rem;
}

.row-solicitar-cuenta p {
  color: var(--nt-blanco-tras);
  font-family: 'Inter', sans-serif;
}

/* -------------------------------------------------------
   ALERTAS
   ------------------------------------------------------- */
.alert {
  font-family: 'Inter', sans-serif;
  border-radius: 6px;
}

/* -------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------- */

/* Extra small (xs) */
@media (max-width: 575.98px) {
  html {
    height: auto;
    overflow-y: auto;
  }

  body,
  body.login-page,
  body.hold-transition {
    height: auto;
    min-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
  }

  .main-cont {
    min-height: auto;
  }

  .main-cont > .row {
    min-height: auto;
  }

  .col-izquierda {
    min-height: auto;
    height: auto;
    align-items: center;
    padding-top: 0;
  }

  .col-derecha {
    padding: 20px 15px;
    min-height: auto;
    height: auto;
  }

  .poster-reveal {
    height: 50vh;
    min-height: 300px;
  }

  .login-box {
    min-height: auto;
  }

  .login-box-front {
    width: 92%;
  }

  .login-logo img {
    max-height: 50px;
    min-width: 80px;
  }

  .subtitulo-login:first-of-type {
    font-size: 1.3rem;
  }

  .col-derecha > div.row {
    position: relative;
    top: 0;
  }

  .row-subtitulo-bienvenido {
    font-size: 1rem;
    text-align: center;
  }

  .row-subtitulo-bienvenido > div > p {
    margin-top: 1rem;
    margin-bottom: 0.5rem;
  }

  .row-descripcion {
    font-size: 1rem;
  }

  .row-creditos {
    font-size: 1rem;
  }

  .row-solicitar-cuenta {
    margin-top: 0.8rem;
  }

  .row-empresas {
    margin-top: 0.8rem;
  }
}

/* Small (sm) */
@media (min-width: 576px) and (max-width: 767px) {
  .login-logo img {
    max-height: 60px;
    min-width: 100px;
  }

  .login-box {
    padding: 5px;
  }

  .login-box-front {
    width: 95%;
  }

  .poster-reveal {
    height: 60vh;
    min-height: 350px;
  }

  .poster-overlay {
    padding: 40px 20px 20px;
  }

  .poster-overlay p {
    font-size: 0.85rem;
  }
}

/* Large (lg) and up */
@media (min-width: 1200px) {
  .login-logo img {
    max-height: 100px;
    min-width: 140px;
  }
}
