/*
 * Inicio de sesión (/). Superficie de marca (tokens en brand-theme.css): logo, titular con la
 * línea de acento en el degradado de marca y la tarjeta con el intro, los campos, el botón y el
 * aviso de privacidad. Detrás, la decoración SVG compartida (js/components/brand-decor.js).
 */
.login {
  --decor-ribbon-zone: 230px;

  display: flex;
}

.login__column {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: calc(420px + 2 * var(--gutter));
  margin-inline: auto;
  padding-top: max(clamp(40px, 7.5dvh, 72px), calc(env(safe-area-inset-top) + var(--space-6)));
  padding-inline: max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right));
}

.login .login__logo {
  align-self: center;
  width: min(300px, 74%);
  max-width: none;
  height: auto;
  max-height: none;
}

/* Titular: la línea de acento lleva el degradado de marca (como en el boceto). */
.login__title {
  margin-top: clamp(var(--space-5), 4dvh, var(--space-8));
  font-size: clamp(1.75rem, 7.4vw, 2.125rem);
  font-weight: var(--weight-black);
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-align: center;
  text-wrap: balance;
}

.login__accent {
  background: linear-gradient(90deg, var(--brand-blue), var(--brand-violet) 52%, var(--brand-magenta));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Tarjeta del formulario: blanca en el tema claro, superficie elevada en el oscuro. */
.login__card {
  margin-top: var(--space-6);
  padding: var(--space-6) var(--space-5) var(--space-5);
  border: 1px solid var(--brand-glass-border);
  border-radius: var(--brand-radius-sheet);
  background: var(--brand-elevated);
  box-shadow: var(--shadow-dialog);
}

.login__intro {
  color: var(--brand-text-muted);
  font-size: var(--text-body);
  line-height: var(--text-lead-leading);
  text-align: center;
}

.login__form {
  display: grid;
  gap: var(--space-5);
  margin-top: var(--space-5);
}

/* "¿Olvidaste tu contraseña?" bajo el campo, a la derecha (flujo pendiente de conectar). */
.login__forgot {
  justify-self: end;
  margin-top: calc(-1 * var(--space-3));
  padding-block: var(--space-1);
  color: var(--brand-text-muted);
  font-size: var(--text-small);
  text-decoration: none;
}

.login__forgot:hover,
.login__forgot:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* Botón: más bajo que el estándar (--button-h) y con menos letra; mismo degradado de marca. */
.login .login__submit {
  min-height: var(--tap-min);
  font-size: var(--text-label);
}

/* Aviso de privacidad: escudo de marca y dos líneas, centrado bajo el botón. */
.login__privacy {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  margin-top: var(--space-6);
  color: var(--brand-text-muted);
  font-size: var(--text-small);
  line-height: var(--text-small-leading);
}

.login__privacy-icon {
  flex: none;
  width: 30px;
  height: 30px;
  color: var(--brand-sky);
}

.login__privacy-link {
  color: var(--brand-sky);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

/* Franja reservada para la cinta: el contenido nunca queda debajo de ella. */
.login__ribbon-space {
  flex: 1 0 var(--decor-ribbon-zone);
}
