/* Pantallas de acceso: login, recuperar y nueva contraseña */
.acceso { display: grid; min-height: 100svh; grid-template-rows: auto 1fr; }
@media (min-width: 960px) { .acceso { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); grid-template-rows: none; } }

/* Lado oscuro, como las escenas nocturnas del vídeo */
.acceso-escena {
  position: relative; overflow: hidden; color: var(--papel);
  background:
    radial-gradient(48rem 22rem at 30% 118%, rgba(255, 49, 49, .62), transparent 70%),
    radial-gradient(26rem 18rem at 100% 0%, rgba(255, 145, 77, .22), transparent 70%),
    var(--noche);
  padding: 1.4rem 1.25rem 2rem;
  display: flex; flex-direction: column; gap: 1.2rem;
}
@media (min-width: 960px) { .acceso-escena { padding: 3rem clamp(2.5rem, 5vw, 5rem); justify-content: space-between; min-height: 100svh; position: sticky; top: 0; } }
.acceso-escena .logo { width: 7.5rem; height: auto; }
@media (min-width: 960px) { .acceso-escena .logo { width: 9.5rem; } }
.acceso-titular {
  font-size: clamp(2.3rem, 8.5vw, 5.4rem); font-weight: 900; font-variation-settings: "wdth" 70;
  letter-spacing: -0.045em; line-height: .9; margin: 0; max-width: 11ch;
}
.acceso-titular span { display: block; color: var(--naranja); }
.acceso-bajada { color: rgba(242, 239, 235, .78); max-width: 30rem; margin: 1rem 0 0; font-size: 1.05rem; }
.acceso-pasos { list-style: none; padding: 0; margin: 0; display: none; gap: 0; counter-reset: paso; max-width: 34rem; }
@media (min-width: 960px) { .acceso-pasos { display: grid; } }
.acceso-pasos li {
  counter-increment: paso; display: grid; grid-template-columns: 3rem 1fr; gap: 0 .8rem; align-items: baseline;
  padding: .9rem 0; border-top: 1px solid rgba(242, 239, 235, .16);
}
.acceso-pasos li::before { content: counter(paso); font-size: 2.2rem; font-weight: 900; line-height: .8; color: var(--rojo); font-variation-settings: "wdth" 75; }
.acceso-pasos b { display: block; font-size: 1.1rem; letter-spacing: -0.01em; }
.acceso-pasos span { color: rgba(242, 239, 235, .66); font-size: .95rem; }
.acceso-firma { font-size: .9rem; color: rgba(242, 239, 235, .55); display: none; }
@media (min-width: 960px) { .acceso-firma { display: block; } }

/* Lado del formulario */
.acceso-form {
  display: grid; place-items: center; padding: 2rem 1.25rem 3rem;
}
.acceso-caja { width: 100%; max-width: 25rem; }
.acceso-caja > h1, .acceso-caja > h2 { font-size: clamp(2rem, 6vw, 2.8rem); margin-bottom: .3rem; }
.acceso-caja .entradilla { font-size: 1rem; margin-bottom: 1.6rem; }
.acceso-caja .aviso { margin-bottom: 1.4rem; }
.clave { position: relative; }
.clave input { padding-right: 4.6rem !important; }
.clave button {
  position: absolute; right: .35rem; top: 50%; transform: translateY(-50%);
  border: 0; background: transparent; font-weight: 700; font-size: .85rem; color: var(--tinta-suave);
  padding: .5rem .6rem; border-radius: var(--r-s); cursor: pointer;
}
.clave button:hover { background: var(--papel-2); color: var(--tinta); }
.acceso-pie { margin-top: 1.4rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: .95rem; }
.acceso-legal { margin-top: 2.2rem; font-size: .85rem; color: var(--tinta-tenue); line-height: 1.45; }
.fuerza { display: flex; gap: .3rem; margin: -.4rem 0 1rem; }
.fuerza i { flex: 1; height: .3rem; border-radius: 999px; background: var(--papel-2); transition: background .2s; }
.fuerza[data-n="1"] i:nth-child(-n+1) { background: var(--rojo); }
.fuerza[data-n="2"] i:nth-child(-n+2) { background: var(--naranja); }
.fuerza[data-n="3"] i:nth-child(-n+3) { background: var(--verde); }
.hecho { text-align: left; }
.hecho .vacio-icono { margin-bottom: 1rem; }

/* 404 */
.perdido {
  min-height: 100svh; display: grid; place-items: center; text-align: center; padding: 2rem 1.25rem;
  color: var(--papel);
  background: radial-gradient(50rem 24rem at 50% 115%, rgba(255, 49, 49, .6), transparent 70%), var(--noche);
}
.perdido .logo { width: 8rem; margin: 0 auto 2.5rem; }
.perdido .titular-gigante { font-size: clamp(5rem, 26vw, 12rem); background: var(--marca); -webkit-background-clip: text; background-clip: text; color: transparent; margin: 0; }
.perdido h1 { margin: .5rem 0 1rem; }
.perdido p { color: rgba(242, 239, 235, .75); max-width: 26rem; margin: 0 auto 2rem; }
