/* ==========================================================================
   PISTON QUARKS — Pantalla de entrada
   --------------------------------------------------------------------------
   Una sola tarjeta, centrada, sin adornos. Es la pantalla donde alguien
   escribe su contrasena: cualquier elemento que distraiga es un problema.

   El estado de sesion vive en localStorage bajo una sola clave. Se guarda el
   token y el perfil, nunca la contrasena.
   ========================================================================== */

.lg {
  min-height: 100vh;
  background: var(--pq-paper);
}

.lg__field[hidden], .lg__sep[hidden] { display: none; }
.lg__wrap {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--pq-s6);
  padding: calc(var(--pq-nav-h) + var(--pq-s6)) var(--pq-s5) var(--pq-s7);
}

.lg__card {
  width: 100%;
  max-width: 428px;
  padding: var(--pq-s7) var(--pq-s6);
  border: 1px solid var(--pq-hair);
  border-radius: 14px;
  background: var(--pq-white);
  box-shadow: 0 1px 2px rgba(10,10,15,0.04), 0 24px 56px -32px rgba(10,10,15,0.22);
}

.lg__kicker {
  margin: 0 0 var(--pq-s3);
  font: 500 0.6875rem/1 var(--pq-font-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pq-primary);
}
.lg__title {
  margin: 0 0 var(--pq-s3);
  font: 800 var(--pq-t-2)/1.1 var(--pq-font-display);
  letter-spacing: -0.02em;
}
.lg__title--sm { font-size: var(--pq-t-3); }
.lg__lead {
  margin: 0 0 var(--pq-s5);
  font: 400 0.9375rem/1.55 var(--pq-font-body);
  color: var(--pq-text-2);
}

/* --- Aviso de contexto (venias de una pagina protegida) --- */
.lg__aviso {
  margin: 0 0 var(--pq-s5);
  padding: var(--pq-s4);
  border-left: 3px solid var(--pq-primary);
  background: var(--pq-primary-wash);
  border-radius: 0 8px 8px 0;
  font: 400 0.875rem/1.5 var(--pq-font-body);
  color: var(--pq-text);
}
.lg__aviso.is-error {
  border-left-color: #C0392B;
  background: rgba(192, 57, 43, 0.07);
}

/* --- Boton de Google --- */
.lg__google-wrap { margin-bottom: var(--pq-s5); }
.lg__google {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  width: 100%;
  padding: 12px 16px;
  font: 500 0.9375rem/1 var(--pq-font-body);
  color: var(--pq-text);
  background: var(--pq-white);
  border: 1px solid var(--pq-hair-2);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 200ms var(--pq-ease), background 200ms var(--pq-ease);
}
.lg__google:hover { border-color: var(--pq-text-3); background: var(--pq-paper-2); }
.lg__google:focus-visible { outline: 2px solid var(--pq-primary); outline-offset: 2px; }
.lg__google svg { width: 18px; height: 18px; flex: none; }

.lg__sep {
  display: flex;
  align-items: center;
  gap: var(--pq-s4);
  margin: var(--pq-s5) 0;
  font: 400 0.75rem/1 var(--pq-font-body);
  color: var(--pq-text-3);
}
.lg__sep::before,
.lg__sep::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--pq-hair);
}

/* --- Formulario --- */
.lg__form { display: grid; gap: var(--pq-s4); }
.lg__field { display: grid; gap: 7px; }
.lg__k {
  font: 500 0.6875rem/1 var(--pq-font-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pq-text-3);
}
.lg__input {
  width: 100%;
  padding: 12px 14px;
  font: 400 0.9375rem/1.4 var(--pq-font-body);
  color: var(--pq-text);
  background: var(--pq-white);
  border: 1px solid var(--pq-hair-2);
  border-radius: 8px;
  transition: border-color 200ms var(--pq-ease);
}
.lg__input::placeholder { color: var(--pq-text-3); }
.lg__input:focus { outline: none; border-color: var(--pq-primary); }
.lg__input:focus-visible { box-shadow: 0 0 0 3px var(--pq-primary-wash); }

.lg__error {
  margin: 0;
  padding: var(--pq-s3) var(--pq-s4);
  font: 400 0.875rem/1.5 var(--pq-font-body);
  color: #C0392B;
  background: rgba(192, 57, 43, 0.07);
  border-radius: 8px;
}

.lg__submit { width: 100%; margin-top: var(--pq-s2); justify-content: center; }
.lg__submit:disabled { opacity: 0.6; cursor: progress; }

.lg__alt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pq-s4);
  margin-top: var(--pq-s5);
  padding-top: var(--pq-s5);
  border-top: 1px solid var(--pq-hair);
  font: 400 0.875rem/1.4 var(--pq-font-body);
  color: var(--pq-text-2);
}
.lg__alt p { margin: 0; }

.lg__nota {
  margin: var(--pq-s5) 0 0;
  font: 400 0.75rem/1.5 var(--pq-font-body);
  color: var(--pq-text-3);
}

/* --- Paso 2: elegir a donde ir --- */
.lg__paso {
  width: 100%;
  max-width: 428px;
  padding: var(--pq-s6);
  border: 1px solid var(--pq-hair);
  border-radius: 14px;
  background: var(--pq-white);
}
.lg__opciones { display: grid; gap: var(--pq-s3); margin-top: var(--pq-s4); }
.lg__opcion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pq-s4);
  width: 100%;
  padding: var(--pq-s4) var(--pq-s5);
  text-align: left;
  background: var(--pq-paper-2);
  border: 1px solid var(--pq-hair);
  border-radius: 10px;
  cursor: pointer;
  font: 500 0.9375rem/1.3 var(--pq-font-body);
  color: var(--pq-text);
  transition: border-color 200ms var(--pq-ease), background 200ms var(--pq-ease);
}
.lg__opcion:hover { border-color: var(--pq-primary); background: var(--pq-white); }
.lg__opcion:focus-visible { outline: 2px solid var(--pq-primary); outline-offset: 2px; }
.lg__opcion small {
  display: block;
  margin-top: 3px;
  font: 400 0.75rem/1.4 var(--pq-font-body);
  color: var(--pq-text-3);
}
.lg__opcion span { color: var(--pq-text-3); }

@media (prefers-reduced-motion: reduce) {
  .lg__input, .lg__google, .lg__opcion { transition: none; }
}
