.pagina-login{display:flex;flex-direction:column;min-height:100vh;padding-bottom:0}
.login-pagina{width:min(92%,1180px);min-height:calc(100vh - 86px);margin:auto;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.72fr);align-items:center;gap:clamp(46px,7vw,96px);padding:48px 0 28px}
.login-marca{display:flex;align-items:center;gap:20px;margin-bottom:clamp(50px,7vh,76px)}
.login-logo{display:block;width:240px;height:auto;object-fit:contain;filter:drop-shadow(0 18px 34px rgba(56,189,248,.16))}
.login-divisor{width:1px;height:58px;background:linear-gradient(180deg,transparent,rgba(103,232,249,.5),rgba(99,102,241,.35),transparent)}
.login-etiqueta{display:block;color:#67e8f9;font-size:10px;font-weight:900;letter-spacing:.18em}
.login-marca strong{display:block;margin-top:4px;color:#f8fafc;font-size:18px}
.login-sinal{display:inline-flex;align-items:center;gap:8px;margin-bottom:17px;padding:7px 11px;border:1px solid rgba(56,189,248,.25);border-radius:999px;background:rgba(56,189,248,.07);color:#bae6fd;font-size:11px;font-weight:800}
.login-sinal i{width:7px;height:7px;border-radius:50%;background:#38bdf8;box-shadow:0 0 14px rgba(56,189,248,.75)}
.login-chamada h1{max-width:640px;margin:0;text-align:left;font-size:clamp(42px,5.2vw,68px);line-height:.98;letter-spacing:-.055em}
.login-chamada h1::before,.login-chamada h1::after{display:none;content:none}
.login-chamada p{max-width:590px;margin-top:21px;color:#a8b7ca;font-size:clamp(16px,1.6vw,19px);line-height:1.6}
.login-recursos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:38px}
.login-recursos>div{padding:15px;border:1px solid rgba(148,163,184,.13);border-radius:14px;background:rgba(6,18,35,.42)}
.login-recursos span{display:block;margin-bottom:7px;font-size:20px}.login-recursos strong{display:block;font-size:13px}.login-recursos small{display:block;margin-top:3px;color:#7f91a8;font-size:10px;line-height:1.4}
.login-card{position:relative;overflow:hidden;padding:clamp(27px,3.4vw,38px);border:1px solid rgba(56,189,248,.25);border-radius:28px;background:radial-gradient(circle at 100% 0,rgba(99,102,241,.17),transparent 38%),linear-gradient(155deg,rgba(20,40,64,.94),rgba(7,17,33,.94));box-shadow:0 30px 80px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.045);backdrop-filter:blur(20px)}
.login-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#22d3ee,#6366f1,#ec4899)}
.login-card-topo{display:flex;align-items:center;gap:14px}.login-card-icone{width:47px;height:47px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(56,189,248,.3);border-radius:14px;background:rgba(14,165,233,.1);color:#67e8f9;font-size:20px}
.login-card h2{margin:3px 0 0;font-size:30px}.login-introducao{margin:22px 0 25px;color:#9fb0c4;line-height:1.55}
.login-alerta{display:flex;align-items:flex-start;gap:11px;margin:0 0 20px;padding:13px;border:1px solid rgba(251,113,133,.3);border-radius:13px;background:rgba(127,29,29,.16);color:#fecdd3}
.login-alerta[hidden]{display:none}.login-alerta>span{width:25px;height:25px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:rgba(244,63,94,.18);font-weight:900}.login-alerta strong{font-size:12px}.login-alerta p{margin-top:2px;color:#fda4af;font-size:11px}
.login-formulario label{display:block;margin:0 0 7px 3px;color:#dbeafe;font-size:12px;font-weight:800}
.login-campo{display:flex;align-items:center;gap:10px;min-height:54px;margin-bottom:17px;padding:0 15px;border:1px solid rgba(148,163,184,.16);border-radius:15px;background:rgba(2,8,20,.5);transition:.18s}
.login-campo:focus-within{border-color:rgba(56,189,248,.58);background:rgba(2,8,20,.72);box-shadow:0 0 0 4px rgba(56,189,248,.09)}
.login-campo input{min-width:0;min-height:52px;flex:1;margin:0;padding:0;border:0;border-radius:0;outline:0;background:transparent;box-shadow:none;color:#f8fafc}.login-campo input:focus{background:transparent;box-shadow:none}
.login-mostrar{min-width:0;padding:6px 0 6px 8px;border:0;background:transparent;box-shadow:none;color:#67e8f9;font-size:11px}.login-mostrar:hover{transform:none;background:transparent;color:#fff;box-shadow:none}
.login-entrar{width:100%;min-height:50px;margin-top:6px;display:flex;align-items:center;justify-content:center;gap:11px;border-radius:14px;background:linear-gradient(90deg,#0284c7,#2563eb 55%,#4f46e5);box-shadow:0 15px 32px rgba(37,99,235,.24)}
.login-seguranca{margin-top:21px;color:#71839a;text-align:center;font-size:10px;font-weight:700;letter-spacing:.06em}.login-seguranca span{color:#38bdf8}.pagina-login::after{flex:0 0 auto;margin-top:0}
@media(max-width:900px){.login-pagina{grid-template-columns:1fr;gap:38px;padding-top:38px}.login-marca{justify-content:center;margin-bottom:42px}.login-chamada{text-align:center}.login-chamada h1,.login-chamada p{margin-left:auto;margin-right:auto;text-align:center}.login-recursos{max-width:680px;margin-left:auto;margin-right:auto}.login-acesso{width:min(100%,520px);margin:auto}}
@media(max-width:560px){.login-pagina{width:min(91%,1180px);padding-top:26px}.login-marca{flex-direction:column;gap:12px;margin-bottom:34px;text-align:center}.login-logo{width:225px}.login-divisor{width:90px;height:1px}.login-chamada h1{font-size:40px}.login-recursos{grid-template-columns:1fr}.login-card{padding:25px 21px;border-radius:22px}}

/* Refinamento da assinatura da marca */
.login-marca {
  transform: translateY(18px);
  margin-bottom: clamp(72px,9vh,98px);
}
.login-marca .login-etiqueta {
  font-size: 11px;
  letter-spacing: .2em;
}
.login-marca strong {
  margin-top: 5px;
  font-size: 22px;
  line-height: 1.15;
}
@media(max-width:900px){
  .login-marca {
    transform: translateY(10px);
    margin-bottom: 62px;
  }
}
@media(max-width:560px){
  .login-marca {
    transform: none;
    margin-bottom: 48px;
  }
}

.login-marca .login-portal-nome {
  margin: 0;
  color: #f8fafc;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .06em;
  line-height: 1.15;
}


/* Neutraliza o fundo branco do preenchimento automático do navegador */
.login-campo input:-webkit-autofill,
.login-campo input:-webkit-autofill:hover,
.login-campo input:-webkit-autofill:focus,
.login-campo input:-webkit-autofill:active {
  -webkit-text-fill-color: #f8fafc !important;
  caret-color: #f8fafc !important;
  -webkit-box-shadow: 0 0 0 1000px #071426 inset !important;
  box-shadow: 0 0 0 1000px #071426 inset !important;
  border-radius: 0 !important;
  transition: background-color 9999s ease-out 0s;
}
.login-campo input:autofill {
  color: #f8fafc !important;
  background: #071426 !important;
  box-shadow: 0 0 0 1000px #071426 inset !important;
}


/* Portal com o mesmo peso visual da marca */
.login-marca .login-portal-nome {
  font-size: clamp(30px,2.5vw,38px);
  font-weight: 900;
  letter-spacing: .035em;
  line-height: 1;
  white-space: nowrap;
}


/* Ícones consistentes dos recursos */
.login-recurso-icone {
  width: 31px;
  height: 31px;
  display: grid !important;
  place-items: center;
  margin-bottom: 10px !important;
  border: 1px solid rgba(56,189,248,.25);
  border-radius: 9px;
  background: rgba(14,165,233,.08);
  color: #67e8f9;
}
.login-recurso-icone svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Aviso de Caps Lock */
.login-caps {
  margin: -9px 2px 14px;
  color: #facc15;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .025em;
}
.login-caps[hidden] { display: none; }

/* Estado de envio */
.login-entrar:disabled,
.login-entrar.carregando {
  cursor: wait;
  opacity: .78;
  transform: none;
  filter: saturate(.72);
}
.login-entrar.carregando::after {
  content: "";
  width: 14px;
  height: 14px;
  margin-left: 10px;
  border: 2px solid rgba(255,255,255,.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: login-girar .7s linear infinite;
}
@keyframes login-girar { to { transform: rotate(360deg); } }
@media(max-width:560px){
  .login-recurso-icone { grid-row:1/3;margin:0 !important; }
}


/* Evita colisão em notebooks e telas intermediárias */
@media(max-width:1080px){
  .login-pagina {
    grid-template-columns: 1fr;
    gap: 38px;
    padding-top: 38px;
  }
  .login-apresentacao {
    min-width: 0;
  }
  .login-marca {
    justify-content: center;
    margin-bottom: 52px;
  }
  .login-chamada {
    text-align: center;
  }
  .login-chamada h1,
  .login-chamada p {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
  .login-recursos {
    width: min(100%,680px);
    margin-left: auto;
    margin-right: auto;
  }
  .login-acesso {
    width: min(100%,520px);
    margin: 0 auto;
  }
}
@media(max-width:620px){
  .login-portal-nome {
    white-space: normal !important;
    text-align: center;
  }
}


/* Ícones vetoriais de toda a tela de login */
.login-ui-svg {
  width: 19px;
  height: 19px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.login-campo-icone {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #7dd3fc;
}
.login-campo-icone .login-ui-svg {
  width: 17px;
  height: 17px;
}
.login-card-icone .login-ui-svg {
  width: 20px;
  height: 20px;
}

body.pagina-login{background:radial-gradient(circle at 12% 8%,rgba(56,189,248,.28),transparent 28rem),radial-gradient(circle at 92% 10%,rgba(139,92,246,.25),transparent 30rem),linear-gradient(135deg,#071426,#0b1025)!important}.login-seguranca span{color:#38bdf8!important}.login-entrar{box-shadow:0 14px 30px rgba(37,99,235,.18)!important}

/* Fluxo mobile: uma unica rolagem e o acesso no primeiro viewport. */
@media(max-width:620px){
  html{
    min-height:100%;
    overflow-x:clip;
    background:#071426;
  }
  body.pagina-login{
    display:block;
    min-height:100svh;
    padding:0;
    overflow-x:clip;
    overflow-y:visible;
  }
  body.pagina-login::after{
    position:static;
    width:calc(100% - 32px);
    margin:24px auto 0;
    padding:18px 8px 22px;
    transform:none;
    white-space:normal;
  }
  .login-pagina{
    width:calc(100% - 32px);
    min-height:auto;
    margin:0 auto;
    padding:24px 0 0;
    display:flex;
    flex-direction:column;
    gap:24px;
  }
  .login-apresentacao{
    display:block;
  }
  .login-marca{
    margin:0;
    transform:none;
    flex-direction:column;
    justify-content:center;
    gap:10px;
  }
  .login-logo{
    width:min(190px,70vw);
  }
  .login-divisor{
    width:72px;
    height:1px;
  }
  .login-marca .login-portal-nome{
    font-size:24px;
    line-height:1.1;
    white-space:nowrap !important;
  }
  .login-chamada,
  .login-recursos{
    display:none;
  }
  .login-acesso{
    width:100%;
    margin:0;
  }
  .login-card{
    padding:24px 20px;
    border-radius:20px;
  }
  .login-card h2{
    font-size:27px;
  }
  .login-introducao{
    margin:18px 0 22px;
    font-size:14px;
  }
  .login-campo{
    min-height:52px;
    margin-bottom:15px;
    padding:0 13px;
  }
  .login-campo input{
    min-height:50px;
    font-size:16px;
  }
  .login-seguranca{
    margin-top:17px;
  }
}

.login-manter{display:flex!important;align-items:center;gap:9px;margin:2px 0 4px;color:#b8c8dc!important;font-size:12px!important;font-weight:750!important;cursor:pointer;user-select:none}.login-manter>input{position:absolute;opacity:0;pointer-events:none}.login-check{width:19px;height:19px;display:grid;place-items:center;flex:none;border:1px solid #315b7c;border-radius:6px;background:#08182b;transition:.18s ease}.login-check svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.6);transition:.18s ease}.login-manter:hover .login-check{border-color:#52d7f5}.login-manter>input:focus-visible+.login-check{outline:2px solid #67e8f9;outline-offset:2px}.login-manter>input:checked+.login-check{border-color:#0ea5e9;background:linear-gradient(135deg,#0897d1,#4f46e5)}.login-manter>input:checked+.login-check svg{opacity:1;transform:scale(1)}