/* ═══════════════════════════════════════════════════════════════════════════
   TEMA KAIROS — RosarioSIS
   ───────────────────────────────────────────────────────────────────────────
   Hereda todo FlatSIS y solo sobreescribe la pantalla de acceso, acotado con
   `body.login`. El interior de la aplicación queda intacto a propósito: así
   las capturas de los manuales oficiales en español siguen coincidiendo con
   lo que ve el usuario.

   REUTILIZAR PARA OTRO CLIENTE
   Solo hay que cambiar dos cosas:
     1. Las variables del bloque :root de abajo
     2. El archivo logo.png de esta misma carpeta
   Nada más. Ver README.md junto a este archivo.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Hereda FlatSIS completo. Las rutas relativas internas (btn/, modules/) se
   resuelven contra la carpeta de FlatSIS, que es lo correcto. */
@import url("../FlatSIS/stylesheet.css");

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap");

/* ── IDENTIDAD DE MARCA ──────────────────────────────────────────────────── */
:root {
  --k-primary:      #C4872A;   /* dorado Kairos — igual que el landing */
  --k-primary-light:#E8A83E;
  --k-primary-dark: #9A6318;
  --k-text:         #262626;
  --k-text-soft:    #737373;
  --k-border:       #E5E5E5;
  --k-bg:           #FAFAFA;
  --k-card:         #FFFFFF;
  --k-radius:       16px;
  --k-radius-sm:    10px;
  --k-font:         'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --k-font-display: 'Playfair Display', Georgia, serif;
  --k-shadow:       0 12px 32px rgba(0,0,0,.08), 0 4px 8px rgba(0,0,0,.04);
}

/* ═══ A PARTIR DE AQUÍ, TODO ACOTADO A body.login ═══════════════════════════
   RosarioSIS marca la página de acceso con <body class="login">. Usarlo como
   prefijo garantiza que ninguna regla se filtre al resto de la aplicación. */

/* ── Fondo y centrado vertical ───────────────────────────────────────────── */
body.login {
  background: linear-gradient(160deg, #FFFFFF 0%, var(--k-bg) 55%, #F2EFE9 100%);
  font-family: var(--k-font);
  color: var(--k-text);
  min-height: 100vh;
  margin: 0;
}

body.login #body,
body.login .postbox-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 24px;
  background: none;
  border: 0;
}

/* ── La tarjeta ──────────────────────────────────────────────────────────── */
body.login table.postbox {
  width: 100%;
  max-width: 420px;
  background: var(--k-card);
  border: 1px solid var(--k-border);
  border-radius: var(--k-radius);
  box-shadow: var(--k-shadow);
  overflow: hidden;
  border-collapse: separate;
}

/* Barra superior "ENTRAR A ROSARIOSIS": se oculta.
   El logo y el nombre del instituto ya identifican la pantalla. */
body.login table.postbox h3.title,
body.login table.postbox .title {
  display: none;
}

body.login td.popTable {
  padding: 40px 36px 32px;
  background: var(--k-card);
  border: 0;
}

/* ── Logo ────────────────────────────────────────────────────────────────── */
/* El logo es un lockup completo (isotipo + nombre + bajada), así que se le da
   protagonismo y se oculta el título de texto para no repetir el nombre. */
body.login img.logo {
  display: block;
  margin: 4px auto 22px;
  width: 100%;
  max-width: 270px;
  height: auto;
}

/* Título de texto: redundante con el logo, que ya incluye el nombre. */
body.login h4.center,
body.login .k-title {
  display: none;
}

body.login .k-subtitle {
  font-size: 13.5px;
  color: var(--k-text-soft);
  text-align: center;
  margin: 0 0 26px;
  letter-spacing: .02em;
  text-transform: uppercase;
  font-weight: 500;
}

/* ── Campos ──────────────────────────────────────────────────────────────── */
body.login #loginform table { width: 100%; }
body.login #loginform td { padding: 0; border: 0; display: block; }

body.login #USERNAME,
body.login #PASSWORD {
  width: 100%;
  box-sizing: border-box;
  padding: 13px 15px;
  margin-bottom: 6px;
  font-family: var(--k-font);
  font-size: 15px;
  color: var(--k-text);
  background: #FFFFFF;
  border: 1.5px solid var(--k-border);
  border-radius: var(--k-radius-sm);
  transition: border-color .18s ease, box-shadow .18s ease;
}

body.login #USERNAME:focus,
body.login #PASSWORD:focus {
  outline: none;
  border-color: var(--k-primary);
  box-shadow: 0 0 0 3px rgba(196,135,42,.15);
}

body.login #USERNAME::placeholder,
body.login #PASSWORD::placeholder { color: #A3A3A3; }

/* Etiquetas "Nombre de usuario" / "Contraseña" bajo cada campo */
body.login #loginform td > div,
body.login #loginform label {
  font-size: 12.5px;
  color: var(--k-text-soft);
  margin: 0 0 16px 2px;
  display: block;
}

/* ── Enlace de ayuda de contraseña ───────────────────────────────────────── */
body.login .align-right { text-align: right; margin-bottom: 22px; }

body.login .align-right a {
  font-size: 13px;
  color: var(--k-primary-dark);
  text-decoration: none;
  transition: color .15s ease;
}
body.login .align-right a:hover {
  color: var(--k-primary);
  text-decoration: underline;
}

/* ── Botón principal ─────────────────────────────────────────────────────── */

/* El botón vive en un <p class="center">, fuera de la <table> que contiene los
   campos. Para que ambos midan exactamente lo mismo hay que anular los
   márgenes de ese <p> y compartir el mismo modelo de caja. */
body.login #loginform p.center {
  margin: 0;
  padding: 0;
  text-align: initial;
}

body.login #loginform table {
  border-spacing: 0;
  margin: 0;
}

body.login .button-primary,
body.login input[type="submit"] {
  display: block;
  width: 100%;
  /* `max-width` replica lo que FlatSIS ya hace con los campos de texto e
     impide que el botón desborde su contenedor en ningún motor. */
  max-width: 100%;
  margin: 0;
  /* Imprescindible: sin esto el ancho sería 100% MÁS el padding, y el botón
     sobresaldría respecto a los campos (era el desajuste original). */
  box-sizing: border-box;
  padding: 13px 20px;
  font-family: var(--k-font);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .02em;
  color: #FFFFFF;
  background: var(--k-primary);
  border: 0;
  border-radius: var(--k-radius-sm);
  cursor: pointer;
  transition: background .18s ease, transform .12s ease, box-shadow .18s ease;
}

body.login .button-primary:hover,
body.login input[type="submit"]:hover {
  background: var(--k-primary-dark);
  box-shadow: 0 4px 14px rgba(196,135,42,.3);
}

body.login .button-primary:active,
body.login input[type="submit"]:active { transform: translateY(1px); }

body.login .button-primary:focus-visible,
body.login input[type="submit"]:focus-visible {
  outline: 3px solid rgba(196,135,42,.4);
  outline-offset: 2px;
}

/* ── Enlace de vuelta al sitio (lo inserta scripts.js) ───────────────────── */
body.login .k-back {
  text-align: center;
  margin: 22px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--k-border);
}

body.login .k-back a {
  font-size: 13.5px;
  color: var(--k-text-soft);
  text-decoration: none;
  transition: color .15s ease;
}
body.login .k-back a:hover { color: var(--k-primary); }

/* ── Pie: se atenúa la promoción de RosarioSIS, no se oculta ──────────────
   La licencia GPL v2 no obliga a mantener la atribución visible, pero
   quitarla sería descortés con el proyecto. Se deja discreta. */
body.login .size-1,
body.login .size-3 {
  text-align: center;
  font-size: 11.5px;
  color: #A3A3A3;
  margin-top: 16px;
}
body.login .size-1 a, body.login .size-3 a { color: #A3A3A3; }

/* ── Mensajes de error ───────────────────────────────────────────────────── */
body.login .error,
body.login div.error {
  background: #FEF2F2;
  border: 1px solid #FECACA;
  border-radius: var(--k-radius-sm);
  color: #991B1B;
  font-size: 13.5px;
  padding: 12px 14px;
  margin-bottom: 20px;
  text-align: center;
}

/* ── Responsive: los profesores entrarán desde el celular ────────────────── */
@media (max-width: 480px) {
  body.login #body,
  body.login .postbox-wrapper { padding: 16px; }

  body.login table.postbox { max-width: 100%; border-radius: 14px; }
  body.login td.popTable    { padding: 32px 22px 26px; }
  body.login img.logo       { max-width: 220px; }

  /* 16px evita que iOS haga zoom automático al enfocar un campo */
  body.login #USERNAME,
  body.login #PASSWORD      { font-size: 16px; }
}

/* ── Respeta la preferencia de reducir movimiento ────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  body.login * { transition: none !important; }
}
