/* ── Login page — CRM-CMS-AILab ───────────────────────────── */
:root {
  --navy-900: #071A31;
  --navy-800: #0A2240;
  --navy-700: #12365C;
  --blue-500: #1B6EC2;
  --blue-050: #EAF2FA;
  --red-600:  #C8102E;
  --red-700:  #A00D25;
  --red-050:  #FDECEF;
  --gold-500: #C9A227;
  --gold-050: #FBF4E2;
  --green-600:#0F7B4F;
  --green-050:#E8F4EE;
  --ink-900: #0F1720;
  --ink-700: #2B3947;
  --ink-400: #5F6E7E;
  --line:    #E3E8EE;
  --ease-out: cubic-bezier(.23,1,.32,1);
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(160deg, var(--navy-900) 0%, var(--navy-800) 45%, var(--navy-700) 100%);
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  font-variant-numeric: tabular-nums;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.login-wrapper {
  width: 100%;
  max-width: 400px;
  padding: 1.5rem;
}

.login-logo {
  text-align: center;
  margin-bottom: 1.75rem;
}

.login-logo img {
  height: 52px;
  width: auto;
}

.login-card {
  background: #fff;
  border-radius: 14px;
  padding: 2rem 2.25rem 1.75rem;
  box-shadow: 0 24px 64px rgba(7,26,49,.4);
}

.login-card h2 {
  font-family: 'Source Serif 4', serif;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -.01em;
  color: var(--navy-800);
  margin: 0 0 1.5rem;
}

.login-card .form-label {
  font-size: .78rem;
  font-weight: 600;
  color: var(--ink-700);
  display: block;
  margin-bottom: .35rem;
}

.login-card .form-control {
  width: 100%;
  padding: .6rem .85rem;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  font-size: .88rem;
  color: var(--ink-900);
  background: #FAFBFC;
  margin-bottom: 1rem;
  transition: border-color .15s var(--ease-out), box-shadow .15s var(--ease-out), background-color .15s var(--ease-out);
  box-sizing: border-box;
}
.login-card .form-control::placeholder { color: #9AA8B6; }
.login-card .form-control:focus {
  outline: none;
  border-color: var(--blue-500);
  box-shadow: 0 0 0 3px rgba(27,110,194,.13);
  background: #fff;
}

.login-card .btn-login {
  width: 100%;
  padding: .7rem;
  background: var(--red-600);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: .9rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s var(--ease-out), box-shadow .15s var(--ease-out), transform .16s var(--ease-out);
  margin-top: .25rem;
}
.login-card .btn-login:hover {
  background: var(--red-700);
  box-shadow: 0 4px 14px rgba(200,16,46,.4);
}
.login-card .btn-login:active { transform: scale(.98); }

.login-card .forgot-link {
  display: block;
  text-align: center;
  margin-top: 1.1rem;
  font-size: .78rem;
  color: var(--ink-400);
}
.login-card .forgot-link a { color: var(--blue-500); }
.login-card .forgot-link a:hover { color: var(--red-600); }

/* Alerts dentro del login */
.login-card .alert {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem .8rem;
  border-radius: 8px;
  font-size: .8rem;
  margin-bottom: 1rem;
  border-left: 3px solid;
}
.login-card .alert-danger,
.login-card .alert-error   { background: var(--red-050);   border-color: var(--red-600); color: var(--red-700); }
.login-card .alert-success { background: var(--green-050); border-color: var(--green-600); color: #0B5D3B; }
.login-card .alert-info    { background: var(--blue-050);  border-color: var(--blue-500); color: #0B4F87; }
.login-card .alert-warning { background: var(--gold-050);  border-color: var(--gold-500); color: #7A5E0D; }

::selection { background: #7FB3E3; color: var(--navy-900); }
:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 2px; }

/* Footer del login */
.login-footer {
  text-align: center;
  margin-top: 1.5rem;
  font-size: .72rem;
  color: rgba(255,255,255,.45);
}
