/* Telas de acesso (login e verificação em duas etapas) */
.jv-login { min-height: 100vh; position: relative; color: #e8eef9; isolation: isolate;
  background: #071324 url('../img/fundo-login.jpg') 22% center / cover no-repeat; }
.jv-login::before { content: ''; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(ellipse at 50% 45%, rgba(7,19,36,.72) 0%, rgba(7,19,36,.35) 45%, rgba(7,19,36,.12) 100%); }
.jv-login-wrap { width: 100%; max-width: 30.5rem; padding: 1.5rem 1rem; }
.jv-login-marca { display: flex; justify-content: center; margin-bottom: 1.4rem; }
.jv-login-marca img { height: 4rem; filter: drop-shadow(0 4px 14px rgba(0,0,0,.45)); }
.jv-login-painel { background: rgba(9,24,48,.82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid rgba(120,150,200,.22); border-top: 3px solid var(--jv-gold, #C9A24B); border-radius: 1rem;
  padding: 2rem 2rem 1.6rem; box-shadow: 0 24px 60px rgba(0,0,0,.5); }
.jv-login-painel h1 { font-family: 'Playfair Display', Georgia, serif; font-size: 1.75rem; font-weight: 700; margin: 0 0 .3rem; color: #fff; }
.jv-login-painel .sub { color: #b5c3dc; font-size: .92rem; margin-bottom: 1.4rem; }
.jv-login .form-label { font-size: .85rem; font-weight: 600; color: #dbe5f6; margin-bottom: .35rem; }
.jv-login .input-group-text { background: rgba(255,255,255,.06); border-color: rgba(140,165,210,.28); color: #aebdd8; border-right: 0; }
.jv-login .form-control { background: rgba(255,255,255,.06); border-color: rgba(140,165,210,.28); color: #fff; padding-top: .62rem; padding-bottom: .62rem; }
.jv-login .input-group .form-control { border-left: 0; }
.jv-login .form-control::placeholder { color: #7f90ad; }
.jv-login .form-control:focus { background: rgba(255,255,255,.1); border-color: var(--jv-gold, #C9A24B); box-shadow: 0 0 0 .2rem rgba(201,162,75,.2); color: #fff; }
.jv-login .input-group:focus-within .input-group-text { border-color: var(--jv-gold, #C9A24B); color: var(--jv-gold-soft, #E3C77A); }
.jv-login .btn-olho { background: rgba(255,255,255,.06); border: 1px solid rgba(140,165,210,.28); border-left: 0; color: #aebdd8; }
.jv-login .btn-olho:hover { color: #fff; }
.jv-login .input-group:focus-within .btn-olho { border-color: var(--jv-gold, #C9A24B); }
.jv-login .btn-entrar { background: linear-gradient(180deg, #edc261, #d6a437); border: 0; color: #14213a; font-weight: 700; padding: .72rem 1rem;
  display: flex; align-items: center; justify-content: center; gap: .6rem; border-radius: .6rem; box-shadow: 0 6px 18px rgba(214,164,55,.28); }
.jv-login .btn-entrar:hover { filter: brightness(1.06); color: #14213a; }
.jv-login .btn-entrar:disabled { opacity: .75; }
.jv-login .btn-entrar .bi { transition: transform .15s; } .jv-login .btn-entrar:hover .bi-arrow-right { transform: translateX(3px); }
.jv-login .alert { font-size: .88rem; padding: .65rem .9rem; display: flex; gap: .55rem; align-items: center; border-radius: .6rem; }
.jv-login .alert-success { background: rgba(27,175,122,.14); border-color: rgba(27,175,122,.4); color: #5fe0aa; }
.jv-login .alert-danger { background: rgba(208,59,59,.15); border-color: rgba(208,59,59,.45); color: #ff9a9a; }
.jv-login .alert-warning, .jv-login .alert-info { background: rgba(201,162,75,.12); border-color: rgba(201,162,75,.4); color: #e8cf8f; }
.jv-login-aviso-caps { display: none; font-size: .78rem; color: #e8cf8f; margin-top: .35rem; } .jv-login-aviso-caps.on { display: block; }
.jv-login-rodape { display: flex; align-items: center; justify-content: center; gap: .45rem; color: #aebdd8; font-size: .8rem; margin-top: 1.2rem; text-shadow: 0 1px 6px rgba(0,0,0,.6); }
.jv-login-rodape .bi { color: var(--jv-gold, #C9A24B); }
.jv-login .invalid-feedback { color: #ff9a9a; }
@media (max-width: 767.98px) {
  .jv-login { background-position: 18% center; }
  .jv-login::before { background: linear-gradient(180deg, rgba(7,19,36,.55), rgba(7,19,36,.8)); }
  .jv-login-painel { padding: 1.5rem 1.25rem 1.3rem; }
}
@media (prefers-reduced-motion: reduce) { .jv-login .btn-entrar .bi { transition: none; } }
