:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 font-synthesis:none;color:#111e3d;background:#edf7fd;--line:#c9e1f2;--blue:#096dd4}
*{box-sizing:border-box}body{margin:0;min-width:300px}button,input{font:inherit}
.login-wrap{position:relative;isolation:isolate;min-height:100svh;display:grid;place-items:center;padding:36px 15px;overflow:hidden;
 background:radial-gradient(ellipse at 9% 19%,#e6f7ff 0%,transparent 44%),linear-gradient(155deg,#f5fbff,#eaf6fc)}
.login-wrap:before,.login-wrap:after{position:absolute;z-index:-1;content:"";pointer-events:none;transform:rotate(-27deg)}
.login-wrap:before{width:68vw;height:68vw;max-width:800px;max-height:800px;border-radius:48% 52% 54% 46%;background:linear-gradient(145deg,#cbe9fb99,#e9f8ff44);bottom:-53vw;left:-20vw}
.login-wrap:after{width:70vw;height:70vw;max-width:800px;max-height:800px;border-radius:45% 55% 38% 62%;background:linear-gradient(145deg,#cdeafd77,#e9f9ff44);top:10%;right:-54vw}
.login-card{width:min(655px,100%);position:relative;overflow:hidden;padding:64px clamp(28px,5vw,52px) 56px;border-radius:27px;
 border:1px solid #cee2f1;background:#ffffff;box-shadow:0 25px 85px rgba(22,83,132,.11)}
.card-accent{position:absolute;inset:0 0 auto;height:6px;background:linear-gradient(90deg,#0876dd,#138ddd 54%,#09c6b4)}
.logo{display:flex;justify-content:center;align-items:center;gap:15px;margin:0 auto 29px}
.logo img{width:75px;height:75px;object-fit:contain}
.logo strong{font-size:clamp(31px,4.4vw,45px);color:#070f35;font-weight:850;letter-spacing:-1.7px;line-height:1}
.intro{text-align:center;margin-bottom:40px}
.intro p{font-size:clamp(17px,2.2vw,20px);line-height:1.5;color:#4c6483;max-width:475px;margin:0 auto}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.login-card label:not(.remember){display:block;color:#0e203b;font-size:15px;font-weight:800;margin-bottom:22px}
.input-box{display:flex;align-items:center;gap:12px;margin-top:10px;width:100%;height:62px;padding:0 15px;border:1.5px solid var(--line);
 border-radius:12px;background:linear-gradient(180deg,#f9fcff,#fbfdff);transition:border-color .2s,box-shadow .2s}
.input-box:hover{border-color:#a6c9e6}
.input-box:focus-within{border-color:#288ce3;box-shadow:0 0 0 3px #168ce31b;background:#fff}
.input-box>svg{height:24px;width:24px;stroke:#637997;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 24px}
.input-box input{border:0!important;box-shadow:none!important;outline:0!important;background:transparent!important;min-width:0;flex:1;font-size:16px;
 color:#102746;height:100%;padding:0;display:block;letter-spacing:0}
.input-box input::placeholder{color:#7f92ae}
.login-card input:not(.input-box input):not([type=checkbox]){width:100%;border:1px solid var(--line);border-radius:10px;padding:13px}
.password-wrap button{align-self:center;min-height:38px;flex:0 0 auto;padding:4px 10px;background:none;border:0;border-left:1px solid #c9def1;
 color:#076fca;font-size:14px;font-weight:750;cursor:pointer}
.password-wrap button:hover{text-decoration:underline}
.login-options{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-2px 0 30px;flex-wrap:wrap}
.login-card label.remember{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#0b1b36;cursor:pointer;margin:0}
.remember input{appearance:none;margin:0;width:22px;height:22px;border:1px solid #90c2e2;border-radius:6px;background:#fff;cursor:pointer;flex:0 0 22px}
.remember input:checked{background:#087cdb;border-color:#087cdb}
.remember input:checked:after{content:"";display:block;width:11px;height:6px;border-left:2px solid white;border-bottom:2px solid white;transform:rotate(-45deg);margin:5px 4px}
.recovery-link{border:0;background:none;color:#076ed0;text-decoration:underline;text-underline-offset:3px;font-size:14px;padding:7px 0;cursor:pointer}
.primary{width:100%;border:0;border-radius:12px;padding:18px 20px;min-height:68px;background:linear-gradient(110deg,#0875d7,#09bdb6);
 color:#fff;display:flex;align-items:center;justify-content:center;gap:20px;font-size:20px;font-weight:800;cursor:pointer;
 box-shadow:0 15px 24px rgba(5,126,168,.15);transition:filter .15s}
.primary span{font-size:25px;line-height:1}
.primary:hover{filter:brightness(1.05)}
.primary:disabled{cursor:wait;opacity:.65}
.primary:focus-visible,.recovery-link:focus-visible,.password-wrap button:focus-visible,.help-dialog button:focus-visible{outline:3px solid #73c9f4;outline-offset:3px}
.error,.notice{border-radius:11px;font-size:13px;padding:12px 14px;margin:0 0 16px;line-height:1.5}
.error{background:#fff1f3;border:1px solid #fad8dc;color:#9f3040}
.notice{background:#ecf8ff;border:1px solid #bedff2;color:#305879}
.caps-notice{font-size:12px;color:#91601a;background:#fff9e9;padding:8px 11px;border-radius:8px}
.help-dialog{max-width:420px;width:calc(100% - 24px);border:1px solid #d4e7f3;border-radius:19px;padding:24px;background:white;color:#152d48;box-shadow:0 25px 85px #102d4940}
.help-dialog::backdrop{background:#1034507c}
.help-dialog h2{font-size:19px;margin:0 0 12px}
.help-dialog p{font-size:13px;line-height:1.65;color:#5e7188}
.help-close{background:#087ac6;color:white;border:0;border-radius:9px;padding:10px 22px;font-weight:800;cursor:pointer}
[hidden]{display:none!important}
@media(max-width:650px){
 .login-card{border-radius:20px;padding:39px 25px 36px}
 .login-wrap{padding:20px 12px}
 .logo{gap:12px;margin-bottom:24px}
 .logo img{width:58px;height:58px}
 .intro{margin-bottom:29px}
 .intro p{font-size:16px}
 .input-box{height:57px}
 .primary{font-size:17px;min-height:58px}
 .login-options{margin-bottom:22px}
}
@media(max-width:370px){.login-card{padding:31px 19px}.login-options{gap:5px}.recovery-link,.login-card label.remember{font-size:12px}}
@media(prefers-reduced-motion:reduce){.input-box,.primary{transition:none}}

/* Proporções compactas e estáveis: notebook 1366x768 e monitor maior. */
.login-wrap{padding:20px 14px;min-height:100svh}
.login-card{width:min(480px,100%);padding:31px clamp(24px,4vw,34px) 29px;border-radius:22px}
.card-accent{height:5px}
.logo{gap:11px;margin-bottom:17px}
.logo img{width:55px;height:55px}
.logo strong{font-size:33px;letter-spacing:-1.2px}
.intro{margin-bottom:24px}
.intro p{font-size:14px;line-height:1.45;max-width:350px}
.login-card label:not(.remember){font-size:13px;font-weight:760;margin-bottom:15px}
.input-box{height:49px;margin-top:7px;padding:0 13px;border-radius:10px;gap:10px}
.input-box>svg{width:19px;height:19px;flex-basis:19px}
.input-box input{font-size:14px}
.password-wrap button{font-size:12px;min-height:30px}
.login-options{margin:-2px 0 10px;gap:10px}
.login-card label.remember{font-size:12px;gap:7px}
.remember input{width:17px;height:17px;flex-basis:17px;border-radius:5px}
.remember input:checked:after{width:9px;height:5px;margin:4px 3px}
.recovery-link{font-size:12px}
.primary{min-height:49px;padding:12px 15px;font-size:15px;border-radius:10px;gap:12px}
.primary span{font-size:19px}
.self-activation{text-align:center;font-size:12px;color:#587590;margin:4px 0 15px}
.self-activation a,.activate-footer a{color:#076fd0;text-decoration:underline;text-underline-offset:3px;font-weight:750}
.self-activation a:focus-visible,.activate-footer a:focus-visible{outline:2px solid #60b6e8;outline-offset:3px}
.activation-card .intro{margin-bottom:23px}
.activation-title{font-size:22px;margin:0 0 8px;color:#102d48}
.activation-card .intro p{font-size:13px}
.activation-card .login-card label,.activation-card label{font-size:13px}
.activation-card #activationCompleteForm{margin-top:18px;border-top:1px solid #e2edf5;padding-top:17px}
.activation-hint{font-size:11px;color:#69869e;line-height:1.45;margin:0 0 14px}
.compact-action{font-size:14px;min-height:47px}
.activate-footer{text-align:center;margin-top:18px;font-size:12px}
@media(max-width:650px){
 .login-card{width:min(460px,100%);padding:27px 22px 26px}
 .logo img{width:50px;height:50px}
 .logo strong{font-size:29px}
 .intro{margin-bottom:22px}
 .intro p{font-size:13px}
 .input-box{height:47px}
 .primary{min-height:47px;font-size:14px}
}
@media(max-height:700px) and (min-width:651px){
 .login-wrap{padding:12px}
 .login-card{padding-top:23px;padding-bottom:22px}
 .logo{margin-bottom:12px}.intro{margin-bottom:17px}
 .login-card label:not(.remember){margin-bottom:11px}
 .input-box{height:44px}
 .login-options{margin-bottom:6px}
 .self-activation{margin-bottom:10px}
}
