/* Login unificado AvanBox (Nova y Astra). No depende de Argon ni de Paper Dashboard. */
:root {
  color-scheme: light;
  --avb-azul: #344767;
  --avb-azul-osc: #1f2a44;
  --avb-texto: #67748e;
  --avb-error: #ea0606;
  --avb-fondo: url("../img/bg_astra.jpg");
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body.avb-login {
  min-height: 100vh;
  font-family: "Open Sans", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--avb-texto);
  background: var(--avb-fondo) center / cover no-repeat fixed;
}
.avb-login .avb-overlay {
  min-height: 100vh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 24px 16px;
  background: rgba(0, 0, 0, 0.18);
}
.avb-login .avb-copy { margin-top: 18px; text-align: center; font-size: 12px; color: rgba(255, 255, 255, .9); text-shadow: 0 1px 3px rgba(0, 0, 0, .6); }
.avb-login .avb-card {
  display: flex; width: 100%; max-width: 440px;
  background: #fff; border-radius: 1rem; overflow: hidden;
  box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, 0.30);
}
.avb-login .avb-form-col {
  flex: 1 1 100%; padding: 40px 44px 24px; display: flex; flex-direction: column; justify-content: center;
}
.avb-login .avb-logo { text-align: center; margin-bottom: 26px; }
.avb-login .avb-logo img {
  width: auto; max-width: 100%; max-height: 110px; object-fit: contain; display: inline-block;
}
.avb-login .avb-label { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--avb-azul-osc); }
.avb-login .avb-field { margin-bottom: 16px; }
.avb-login .avb-input {
  width: 100%; height: 44px; padding: 0 14px; font: inherit; font-size: 15px; color: var(--avb-azul-osc);
  background: #fff; border: 1px solid #d2d6da; border-radius: 8px; outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.avb-login .avb-input:focus { border-color: #5e72e4; box-shadow: 0 0 0 3px rgba(94, 114, 228, .18); }
.avb-login .avb-error { display: none; text-align: center; color: var(--avb-error); font-size: 13px; margin: 0 0 12px; }
.avb-login .avb-btn {
  width: 100%; height: 46px; border: 0; border-radius: 8px; cursor: pointer;
  font: inherit; font-size: 14px; font-weight: 700; letter-spacing: .02em; color: #fff;
  background: linear-gradient(180deg, #3d5075, var(--avb-azul));
  box-shadow: 0 4px 10px rgba(52, 71, 103, .30);
}
.avb-login .avb-btn:hover { filter: brightness(1.08); }
.avb-login .avb-btn-sec {
  margin-top: 12px; color: var(--avb-azul); background: #fff; border: 1px solid var(--avb-azul); box-shadow: none;
}
.avb-login .avb-links { margin-top: 18px; text-align: center; font-size: 13px; }
.avb-login .avb-links a { color: var(--avb-azul-osc); font-weight: 600; text-decoration: none; }
.avb-login .avb-links a:hover { text-decoration: underline; }
.avb-login .avb-langs { margin-top: 14px; padding-top: 12px; border-top: 1px solid #e9ecef; text-align: center; }
.avb-login .avb-langs .lang {
  background: none; border: 0; padding: 4px 8px; cursor: pointer; font: inherit; font-size: 12px; font-weight: 700; color: #8392ab;
}
.avb-login .avb-langs .lang:hover { color: var(--avb-azul); }
/* Movil: estilo Nova, pagina blanca limpia sin foto de fondo ni tarjeta flotante */
@media (max-width: 860px) {
  body.avb-login { background: #fff; }
  .avb-login .avb-overlay { background: none; justify-content: flex-start; padding: 0; }
  .avb-login .avb-copy { margin: 24px 0 20px; color: #8392ab; text-shadow: none; }
  .avb-login .avb-card { max-width: 480px; min-height: 0; border-radius: 0; box-shadow: none; margin: 0 auto; }
  .avb-login .avb-form-col { padding: 36px 24px 24px; justify-content: flex-start; }
  .avb-login .avb-logo { margin-bottom: 30px; }
  .avb-login .avb-input { height: 48px; font-size: 16px; }
  .avb-login .avb-btn { height: 50px; font-size: 15px; margin-top: 8px; }
}

/* Validacion y espera (usados por app-login.js) */
.avb-login .avb-input.is-invalid { border-color: var(--avb-error); box-shadow: 0 0 0 3px rgba(234, 6, 6, .12); }
.avb-login .avb-btn:disabled { opacity: .75; cursor: default; filter: none; }
.avb-login .spinner-border {
  display: inline-block; width: 1rem; height: 1rem; vertical-align: -2px; border: .15em solid currentColor;
  border-right-color: transparent; border-radius: 50%; animation: avb-giro .75s linear infinite;
}
@keyframes avb-giro { to { transform: rotate(360deg); } }

/* Identificacion sutil de la aplicacion: color de acento + etiqueta bajo el logo */
body.avb-nova  { --avb-acento: #3b6fb6; }
body.avb-astra { --avb-acento: #0e9f8e; }
.avb-login .avb-card { position: relative; }
.avb-login .avb-card::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--avb-acento, var(--avb-azul));
}
.avb-login .avb-app {
  margin: -14px 0 24px; text-align: center; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8392ab;
}
.avb-login .avb-app::before {
  content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%;
  background: var(--avb-acento, var(--avb-azul)); vertical-align: 1px;
}
.avb-login .avb-input:focus { border-color: var(--avb-acento, #5e72e4); box-shadow: 0 0 0 3px rgba(0, 0, 0, .06); }

/* Paginas de recuperar contrasena */
.avb-login .avb-titulo { margin: 0 0 8px; font-size: 21px; font-weight: 700; color: var(--avb-azul-osc); line-height: 1.25; }
.avb-login .avb-ayuda { margin: 0 0 20px; font-size: 14px; line-height: 1.55; color: var(--avb-texto); }
.avb-login .avb-hint { display: block; margin-top: 5px; font-size: 12px; color: #8392ab; }
.avb-login .avb-error.visible { display: block; text-align: left; padding: 10px 12px; border-radius: 8px; background: #fdecec; font-size: 13px; line-height: 1.45; }
.avb-login .avb-pasos { margin: 0 0 20px; padding: 0; list-style: none; counter-reset: paso; text-align: left; }
.avb-login .avb-pasos li { position: relative; margin: 0 0 12px; padding-left: 36px; font-size: 14px; line-height: 1.5; color: var(--avb-texto); counter-increment: paso; }
.avb-login .avb-pasos li::before {
  content: counter(paso); position: absolute; left: 0; top: 0; width: 24px; height: 24px; border-radius: 50%;
  background: #eef1f6; color: var(--avb-azul); font-size: 12px; font-weight: 700; text-align: center; line-height: 24px;
}
.avb-login .avb-icono-ok {
  width: 56px; height: 56px; margin: 0 0 16px; border-radius: 50%; background: #e7f6ec; color: #1f9d55;
  font-size: 28px; line-height: 56px; text-align: center; font-weight: 700;
}
.avb-login .avb-nota { margin: 4px 0 20px; padding: 10px 12px; border-radius: 8px; background: #f6f8fb; font-size: 13px; line-height: 1.5; color: var(--avb-texto); }
.avb-login a.avb-btn { display: block; text-align: center; text-decoration: none; line-height: 46px; }

/* AvanBox Core */
body.avb-core  { --avb-acento: #6a4fb3; }
