/* Tela de acesso NEPO+: visual isolado, sem alterar o fluxo de autenticação. */
body.login-premium-page{min-width:0;background:#f8fafc!important;color:#102344;font-family:"Plus Jakarta Sans",Inter,"Segoe UI",sans-serif!important;overflow-x:hidden}
body.login-premium-page .main{margin-left:0!important;min-height:100dvh!important;width:100%!important}
body.login-premium-page .content{display:block!important;max-width:none!important;min-height:100dvh!important;width:100%!important;margin:0!important;padding:0!important}
body.login-premium-page .messages{display:none}
.login-premium-page .login-layout{position:relative;isolation:isolate;display:block!important;grid-template-columns:none!important;width:100%!important;min-width:0!important;max-width:none!important;min-height:100dvh!important;height:auto!important;margin:0!important;overflow:hidden!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)}
.login-premium-page .login-brand-arcs{position:absolute;z-index:0;top:calc(-32px + env(safe-area-inset-top));right:clamp(-108px,-7vw,-34px);width:clamp(260px,42vw,510px);height:clamp(300px,48vw,580px);pointer-events:none;opacity:.72}
.login-premium-page .login-brand-arcs i,.login-premium-page .login-brand-arcs b{position:absolute;display:block;border-radius:50%;transform:rotate(-14deg)}
.login-premium-page .login-brand-arcs i{inset:2% 3% 0 -8%;border:1px solid rgba(13,102,235,.42)}
.login-premium-page .login-brand-arcs b{inset:7% -4% -7% 1%;border:1px solid rgba(245,123,18,.34)}
.login-premium-page .login-form-area{position:relative;z-index:1;display:grid!important;place-items:center!important;justify-items:center!important;align-content:center!important;gap:0;width:100%!important;min-width:0!important;min-height:100dvh!important;padding:max(34px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom))!important;background:transparent!important}
.login-premium-page .login-brand-header{display:grid;place-items:center;margin:0 0 clamp(24px,4vh,40px)}
.login-premium-page .login-brand-logo{display:block!important;width:clamp(160px,42vw,205px)!important;height:auto!important;max-height:none!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;object-fit:contain!important;object-position:center!important}
.login-premium-page .login-welcome{margin:0 0 clamp(24px,3.6vh,34px);text-align:center}
.login-premium-page .login-welcome h1{margin:0;color:#102a50;font-size:clamp(1.65rem,5vw,2.05rem);font-weight:800;letter-spacing:-.048em;line-height:1.15}
.login-premium-page .login-welcome p{margin:8px 0 0;color:#70819b;font-size:clamp(.88rem,2.9vw,1rem);line-height:1.5}
.login-premium-page .login-card-modern{width:min(100%,460px);padding:clamp(25px,5.5vw,36px);border:1px solid #e7edf5;border-radius:24px;background:#fff;box-shadow:0 16px 38px rgba(20,53,94,.075)}
.login-premium-page .login-feedback:empty{display:none}
.login-premium-page .login-feedback{margin:0 0 15px}
.login-premium-page .login-feedback .alert{position:relative;margin:0;padding:11px 40px 11px 13px;border-radius:12px;font-size:.82rem;line-height:1.4}
.login-premium-page .login-feedback .alert-danger{border:1px solid #fecaca;background:#fff7f7;color:#b42318}
.login-premium-page .login-alert-close{position:absolute;top:50%;right:8px;width:28px;height:28px;transform:translateY(-50%);border:0;border-radius:8px;background:transparent;color:currentColor;font-size:1.2rem;cursor:pointer}
.login-premium-page .login-form{display:grid;gap:8px}
.login-premium-page .login-form>label{margin:0 0 2px;color:#172e52;font-size:.88rem;font-weight:750}
.login-premium-page .login-input-wrap{position:relative}
.login-premium-page .login-input-wrap>svg{position:absolute;z-index:1;top:50%;left:17px;width:22px;height:22px;transform:translateY(-50%);fill:none;stroke:#71839e;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.login-premium-page .login-input-wrap input{width:100%;height:58px;padding:12px 52px;border:1px solid #d9e3ef;border-radius:15px;background:#fff;color:#122b50;font:inherit;font-size:.96rem;outline:0;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.login-premium-page .login-input-wrap input::placeholder{color:#95a4b9}
.login-premium-page .login-input-wrap input:hover{border-color:#b9c9df}
.login-premium-page .login-input-wrap input:focus{border-color:#1769e8;box-shadow:0 0 0 4px rgba(23,105,232,.11)}
.login-premium-page .login-input-wrap input:invalid:not(:placeholder-shown){border-color:#e8a2a2}
.login-premium-page .password-toggle{position:absolute;z-index:2;top:50%;right:9px;display:grid;place-items:center;width:40px;height:40px;transform:translateY(-50%);border:0;border-radius:10px;background:transparent;color:#71839e;cursor:pointer;transition:background .18s ease,color .18s ease}
.login-premium-page .password-toggle:hover{background:#f1f6fd;color:#1267e6}
.login-premium-page .password-toggle:focus-visible{outline:3px solid rgba(23,105,232,.2)}
.login-premium-page .password-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-premium-page .caps-lock-warning{margin:0 0 2px;color:#b45309;font-size:.78rem}
.login-premium-page .login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 15px}
.login-premium-page .login-remember{display:inline-flex;align-items:center;min-width:0;gap:9px;color:#1f3557;font-size:.86rem;font-weight:600;white-space:nowrap;cursor:pointer}
.login-premium-page .login-remember input{appearance:none;position:relative;width:36px;height:22px;flex:0 0 36px;margin:0;border:1px solid #c8d5e4;border-radius:999px;background:#edf3f8;cursor:pointer;transition:background .18s ease,border-color .18s ease}.login-premium-page .login-remember input::before{position:absolute;top:3px;left:3px;width:14px;height:14px;content:"";border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(16,42,80,.22);transition:transform .18s ease}
.login-premium-page .login-remember input:checked{border-color:#23a35a;background:#23a35a}.login-premium-page .login-remember input:checked::before{transform:translateX(14px)}
.login-premium-page .login-remember input:checked::after{display:none!important}
.login-premium-page .login-remember input:focus-visible{outline:3px solid rgba(23,105,232,.2);outline-offset:2px}
.login-premium-page .login-forgot{flex:0 0 auto;color:#df7410;font-size:.84rem;font-weight:700;text-decoration:none;white-space:nowrap}
.login-premium-page .login-forgot:hover{text-decoration:underline;color:#bf5b00}
.login-premium-page .login-submit{display:flex;align-items:center;justify-content:center;width:100%;height:56px;border:0!important;border-radius:15px!important;background:#0e65e8!important;color:#fff!important;font-size:1rem;font-weight:800;letter-spacing:-.015em;box-shadow:none;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}
.login-premium-page .login-submit:not(:disabled):hover{background:#0955c8!important;box-shadow:0 8px 18px rgba(14,101,232,.19);transform:translateY(-1px)}
.login-premium-page .login-submit:not(:disabled):active{transform:translateY(0);box-shadow:none}
.login-premium-page .login-submit:focus-visible{outline:4px solid rgba(23,105,232,.2);outline-offset:3px}
.login-premium-page .login-submit:disabled{background:#cbd6e5!important;color:#f8fbff!important;opacity:1;box-shadow:none;cursor:not-allowed}
.login-premium-page .login-submit.is-loading{cursor:wait}
.login-premium-page .login-spinner{display:none;width:17px;height:17px;border:2px solid rgba(255,255,255,.44);border-top-color:#fff;border-radius:50%;animation:loginSpin .7s linear infinite}
.login-premium-page .login-submit.is-loading .login-spinner{display:block}
@keyframes loginSpin{to{transform:rotate(360deg)}}
.login-premium-page .login-biometric-divider{display:flex;align-items:center;gap:12px;margin:20px 0 10px;color:#8090a7;font-size:.82rem;text-align:center}
.login-premium-page .login-biometric-divider::before,.login-premium-page .login-biometric-divider::after{height:1px;flex:1;content:"";background:#e7edf5}
.login-premium-page .login-biometric-divider span{padding:0 3px}
.login-premium-page .login-biometric{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:45px;padding:8px;border:0;border-radius:12px;background:transparent;color:#1267e6;font:inherit;font-size:.91rem;font-weight:750;cursor:pointer;transition:background .18s ease,color .18s ease}
.login-premium-page .login-biometric:hover:not(:disabled){background:#f3f7ff;color:#0957cd}
.login-premium-page .login-biometric:focus-visible{outline:3px solid rgba(23,105,232,.18)}
.login-premium-page .login-biometric:disabled{cursor:wait;opacity:.72}
.login-premium-page .login-biometric svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-premium-page .login-help{display:none!important}
.login-premium-page .login-support{display:block;margin:18px 0 0;color:#7586a0;font-size:.76rem;line-height:1.45;text-align:center;text-decoration:none}
.login-premium-page .login-support b{color:#3d5f8d;font-weight:700}
.login-premium-page .login-support:hover b{text-decoration:underline}
.login-premium-page .login-support.is-text{margin-bottom:0}
.login-premium-page .login-footer{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:clamp(20px,3.5vh,30px);color:#8795a9;font-size:.72rem;font-weight:600}
.login-premium-page .login-footer img{width:65px;height:17px;object-fit:contain}
@media(min-width:721px){
  .login-premium-page .login-layout{min-height:100dvh}
  .login-premium-page .login-form-area{padding-top:max(38px,env(safe-area-inset-top));padding-bottom:max(28px,env(safe-area-inset-bottom))}
  .login-premium-page .login-brand-header{margin-bottom:28px}
  .login-premium-page .login-brand-logo{width:196px}
  .login-premium-page .login-welcome{margin-bottom:27px}
  .login-premium-page .login-card-modern{width:min(100%,430px);padding:31px 33px}
}
@media(max-width:390px){
  .login-premium-page .login-form-area{padding-inline:17px}
  .login-premium-page .login-card-modern{padding:23px 20px;border-radius:21px}
  .login-premium-page .login-brand-header{margin-bottom:22px}
  .login-premium-page .login-welcome{margin-bottom:22px}
  .login-premium-page .login-options{gap:8px}
  .login-premium-page .login-remember,.login-premium-page .login-forgot{font-size:.77rem}
}
@media(max-width:720px){
  .login-premium-page .login-layout{width:100vw!important;min-height:100dvh!important}
  .login-premium-page .login-form-area{width:100vw!important;min-height:100dvh!important;padding-left:20px!important;padding-right:20px!important}
  .login-premium-page .login-card-modern{width:100%!important;max-width:430px!important}
  .login-premium-page .login-options{align-items:center!important;flex-direction:row!important}
}
@media(max-height:720px) and (max-width:720px){
  .login-premium-page .login-form-area{align-content:start;padding-top:max(22px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}
  .login-premium-page .login-brand-header{margin-bottom:16px}
  .login-premium-page .login-brand-logo{width:146px}
  .login-premium-page .login-welcome{margin-bottom:18px}
  .login-premium-page .login-welcome h1{font-size:1.48rem}
  .login-premium-page .login-welcome p{margin-top:4px;font-size:.83rem}
  .login-premium-page .login-card-modern{padding:20px 22px;border-radius:20px}
  .login-premium-page .login-input-wrap input{height:51px}
  .login-premium-page .login-options{margin:5px 0 10px}
  .login-premium-page .login-submit{height:50px}
  .login-premium-page .login-biometric-divider{margin:13px 0 5px}
  .login-premium-page .login-support{margin-top:10px}
  .login-premium-page .login-footer{margin-top:15px}
}
/* Abertura curta: a mesma marca da tela final parte do centro e assume sua posicao. */
.login-premium-page .login-brand-header{gap:4px;transform-origin:center}
.login-premium-page .login-brand-mark{display:block;width:clamp(160px,42vw,205px);aspect-ratio:1476/260;overflow:hidden}
.login-premium-page .login-brand-mark .login-brand-logo{display:block!important;width:100%!important;height:auto!important;max-height:none!important}
.login-premium-page .login-brand-slogan{display:block;width:clamp(160px,42vw,205px);height:7px;overflow:hidden}
.login-premium-page .login-brand-slogan img{display:block;width:100%;height:auto;transform:translateY(-82%)}
.login-premium-page .login-layout.login-intro-pending .login-brand-header{position:relative;z-index:3;opacity:0;transform:translate3d(var(--login-intro-x,0),var(--login-intro-y,32vh),0) scale(var(--login-intro-scale,1.08));will-change:transform,opacity;transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .34s cubic-bezier(.16,1,.3,1)}
.login-premium-page .login-layout.login-intro-pending.login-intro-brand .login-brand-header{opacity:1}
.login-premium-page .login-layout.login-intro-pending .login-brand-slogan{opacity:0;transform:translateY(4px);transition:opacity .22s ease-out,transform .22s ease-out}
.login-premium-page .login-layout.login-intro-pending.login-intro-slogan .login-brand-slogan{opacity:1;transform:translateY(0)}
.login-premium-page .login-layout.login-intro-pending .login-welcome,.login-premium-page .login-layout.login-intro-pending .login-card-modern,.login-premium-page .login-layout.login-intro-pending .login-footer{opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .24s ease-out,transform .3s cubic-bezier(.16,1,.3,1)}
.login-premium-page .login-layout.login-intro-pending.login-intro-welcome .login-brand-header{transform:translate3d(0,0,0) scale(1)}
.login-premium-page .login-layout.login-intro-pending.login-intro-welcome .login-welcome{opacity:1;transform:translateY(0)}
.login-premium-page .login-layout.login-intro-pending.login-intro-form .login-card-modern,.login-premium-page .login-layout.login-intro-pending.login-intro-form .login-footer{opacity:1;transform:translateY(0);pointer-events:auto}
@media(min-width:721px){.login-premium-page .login-brand-mark,.login-premium-page .login-brand-slogan{width:196px}}
@media(prefers-reduced-motion:reduce){.login-premium-page *{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Compatibilidade entre o mobile atual e o desktop histórico. */
@media(max-width:720px){
  .login-premium-page .login-showcase,
  .login-premium-page .login-intro,
  .login-premium-page .login-security-badge,
  .login-premium-page .login-submit-icon,
  .login-premium-page .login-footer-desktop{display:none!important}
}
@media(min-width:721px){
  .login-premium-page .login-brand-arcs,
  .login-premium-page .login-brand-header,
  .login-premium-page .login-welcome,
  .login-premium-page .login-footer-mobile{display:none!important}
  .login-premium-page .login-help{display:flex!important}
  .login-premium-page .login-footer-desktop{display:inline}
  .login-premium-page .login-layout.login-intro-pending .login-card-modern,
  .login-premium-page .login-layout.login-intro-pending .login-footer{opacity:1;transform:none;pointer-events:auto}
}