/* Страницы без входа: вход, код 2FA, «Забыли пароль», новый пароль, «Не найдено» для гостя.
   Тёмный градиентный фон, надпись «E.V.I. CRM» над карточкой, белая карточка с тенью.
   Подсказок внутри полей нет — подписи над полями, пояснения под полем (ab-reg-hint). */
html, body { height: 100%; }
body.ab-login {
  margin: 0; min-height: 100%;
  display: flex; align-items: center; justify-content: center;
  padding: 32px 16px;
  font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  background: #0f172a;
  background-image: radial-gradient(1200px 600px at 15% 10%, rgba(60, 141, 188, .35), transparent 60%),
                    radial-gradient(900px 500px at 90% 90%, rgba(96, 92, 168, .30), transparent 60%);
  color: #1f2937;
}
.ab-login-wrap { width: 100%; max-width: 420px; }
.ab-login-brand { text-align: center; margin: 0 0 24px; color: #fff; font-size: 38px; font-weight: 300; line-height: 1.1; letter-spacing: .5px; }
.ab-login-brand b { font-weight: 700; }
.ab-login-card {
  background: #fff; border-radius: 18px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
  padding: 34px 40px 26px;
}
.ab-login-title { text-align: center; font-size: 24px; font-weight: 600; margin: 0 0 4px; color: #111827; }
.ab-login-sub { text-align: center; font-size: 15px; color: #6b7280; margin: 0 0 26px; }
.ab-login-title + :not(.ab-login-sub) { margin-top: 20px; }
.ab-login label.ab-lbl { display: block; font-weight: 600; font-size: 15px; margin: 0 0 6px; color: #374151; }
.ab-field { position: relative; margin-bottom: 18px; }
.ab-field .fa-ico { position: absolute; left: 15px; top: 24px; transform: translateY(-50%); color: #9ca3af; font-size: 16px; pointer-events: none; }
.ab-field input {
  width: 100%; height: 48px; padding: 0 46px 0 44px;
  border: 1px solid #d1d5db; border-radius: 10px; background: #f8fafc;
  font-size: 16px; color: #111827; outline: none; transition: border-color .15s, box-shadow .15s, background .15s;
}
.ab-field input:focus { border-color: #3c8dbc; background: #fff; box-shadow: 0 0 0 3px rgba(60, 141, 188, .18); }
.ab-field input.ab-code { letter-spacing: 6px; font-size: 20px; font-weight: 600; }
.ab-field .ab-reg-hint { margin-top: 6px; font-size: 13px; color: #6b7280; }
.ab-eye { position: absolute; right: 6px; top: 24px; transform: translateY(-50%);
  border: 0; background: transparent; color: #6b7280; width: 38px; height: 38px; border-radius: 8px; cursor: pointer; font-size: 16px; }
.ab-eye:hover, .ab-eye:focus { color: #3c8dbc; background: #eef6fb; outline: none; }
.ab-remember { display: flex; align-items: center; gap: 8px; margin: 2px 0 22px; font-size: 15px; color: #4b5563; font-weight: 400; cursor: pointer; }
.ab-remember input { width: 17px; height: 17px; margin: 0; accent-color: #3c8dbc; cursor: pointer; }
.ab-btn-login {
  display: block; width: 100%; height: 50px; line-height: 50px; padding: 0; border: 0; border-radius: 10px;
  background: linear-gradient(90deg, #3c8dbc, #357ca5); color: #fff !important; text-align: center; text-decoration: none !important;
  font-size: 17px; font-weight: 600; letter-spacing: .2px; cursor: pointer;
  box-shadow: 0 8px 20px rgba(60, 141, 188, .35); transition: transform .1s, box-shadow .15s, filter .15s;
}
.ab-btn-login:hover { filter: brightness(1.06); box-shadow: 0 10px 24px rgba(60, 141, 188, .45); }
.ab-btn-login:active { transform: translateY(1px); }
.ab-btn-login .fa { margin-right: 6px; }
.ab-btn-plain {
  display: block; width: 100%; height: 46px; line-height: 44px; margin-top: 12px; padding: 0; border-radius: 10px;
  border: 1px solid #d1d5db; background: #fff; color: #4b5563 !important; text-align: center; text-decoration: none !important;
  font-size: 16px; font-weight: 600; cursor: pointer;
}
.ab-btn-plain:hover { background: #f8fafc; }
.ab-btn-plain .fa { margin-right: 6px; }
.ab-login-links { text-align: center; margin-top: 18px; font-size: 14px; }
.ab-login-links a { color: #3c8dbc; }
.ab-login-links .ab-reg-hint { margin-top: 6px; font-size: 13px; color: #9ca3af; }
.ab-login-foot { text-align: center; margin-top: 22px; padding-top: 16px; border-top: 1px solid #eef0f3; font-size: 13px; color: #9ca3af; }
.ab-login-foot .fa { margin-right: 4px; }

/* Сообщения: ошибка формы и flash-сообщения (helpers.php flash_render) внутри карточки */
.ab-login-alert, .ab-login-card .alert {
  border-radius: 10px; padding: 12px 14px; margin-bottom: 20px; font-size: 15px;
  background: #fef3c7; border: 1px solid #fcd34d; color: #92400e; box-shadow: none;
}
.ab-login-alert .fa, .ab-login-card .alert .icon { margin-right: 6px; }
.ab-login-alert.err, .ab-login-card .alert-danger { background: #fef2f2; border-color: #fca5a5; color: #991b1b; }
.ab-login-alert.ok, .ab-login-card .alert-success { background: #ecfdf5; border-color: #6ee7b7; color: #065f46; }
.ab-login-card .alert-info { background: #eff6ff; border-color: #93c5fd; color: #1e3a8a; }
.ab-login-card .alert .close { display: none; }
.ab-login-text { font-size: 15px; color: #4b5563; text-align: center; margin: 0 0 20px; }

@media (max-width: 480px) {
  body.ab-login { padding: 20px 12px; align-items: flex-start; }
  .ab-login-card { padding: 28px 22px 22px; border-radius: 14px; }
  .ab-login-title { font-size: 22px; }
  .ab-login-brand { font-size: 32px; margin-bottom: 18px; }
}
