:root{color-scheme:light;--navy:#0b294b;--ink:#142c46;--muted:#617187;--blue:#1965c4;--line:#dce4ee;--cyan:#80d7ec;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#071b32;color:var(--ink)}button,input{font:inherit}button{cursor:pointer}button,a,input{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid #54b9f5;outline-offset:4px}button:disabled{cursor:wait}button[hidden],[hidden]{display:none!important}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.backdrop{position:fixed;inset:0;z-index:-1;background:#071b32 url("/assets/login/poster.jpg") center/cover no-repeat}.backdrop video{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s}.backdrop video.is-playing{opacity:1}.backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,18,36,.9),rgba(4,24,47,.63) 60%,rgba(3,20,40,.7)),linear-gradient(0deg,rgba(2,17,34,.7),transparent 50%)}
.page-shell{min-height:100svh;max-width:1600px;margin:auto;padding:40px 6.3% 26px;display:flex;flex-direction:column}
/* Seletor com um nível a mais de especificidade (.page-shell main, não só "main") de propósito: blinda o
   layout contra folhas de estilo genéricas de terceiros (extensões de navegador, "leitor", etc.) que
   redefinem elementos semânticos como main/article/section com um simples seletor de elemento. */
.page-shell main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:24px;padding:40px 0;min-height:0}
.brand-logo-center{width:min(280px,70vw);height:auto;display:block}
.login-card{background:#fff;max-width:460px;width:100%;padding:39px 38px 29px;border-radius:20px;border:1px solid rgba(255,255,255,.25);box-shadow:0 28px 80px #0004;position:relative}.login-card::before{content:"";position:absolute;top:0;left:38px;right:38px;height:3px;background:linear-gradient(90deg,#1d68ba,#80d7ec);border-radius:0 0 3px 3px}.card-kicker{font-size:10px;font-weight:700;color:#2c70b3;letter-spacing:1.4px}.card-heading h2{font-size:27px;font-weight:650;letter-spacing:-.8px;line-height:1.25;margin:13px 0 9px}.card-heading>p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}form{margin-top:29px}.field{margin-bottom:18px}.field>label{display:block;font-size:14px;font-weight:600;margin-bottom:9px}.input-wrap{display:flex;align-items:center;min-height:53px;border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:0 14px;gap:12px;transition:border-color .15s,box-shadow .15s}.input-wrap:focus-within{border-color:#3778c5;box-shadow:0 0 0 3px #1965c413;background:white}.input-wrap>.icon{color:#7c8ca1;width:19px;height:19px}.input-wrap input{width:100%;min-width:0;border:0;background:transparent;outline:none;padding:15px 0;font-size:14px;color:var(--ink)}.input-wrap input::placeholder{color:#8a96a6}.input-wrap input:focus-visible{outline:0}.input-wrap:has(input[aria-invalid=true]){border-color:#c94242}.field-error{display:block;color:#b82d3a;font-size:12px;line-height:1.5;margin-top:5px}.field-error:empty{display:none}.password-toggle{border:0;color:#7c8ca1;background:none;display:grid;place-items:center;padding:8px;margin-right:-7px;min-width:36px}.password-toggle:hover{color:var(--blue)}.form-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:21px 0 24px;font-size:13px}.remember{display:flex;gap:8px;align-items:center;color:var(--muted);cursor:pointer}.remember input{width:16px;height:16px;margin:0;accent-color:var(--blue)}.text-button{border:0;background:none;color:#1c5c9f;font-weight:600;font-size:13px;padding:4px 0}.text-button:hover{text-decoration:underline}.submit-button{border:0;border-radius:9px;background:#155caa;color:white;font-size:15px;font-weight:650;width:100%;min-height:52px;padding:14px;box-shadow:0 5px 12px #155caa1a;transition:background .15s,transform .15s}.submit-button:hover{background:#104b8b}.submit-button:active{transform:translateY(1px)}.submit-button:disabled{opacity:.65}.form-message{background:#f0f5fc;border:1px solid #cfdfef;color:#1c4a77;padding:12px;border-radius:8px;margin-bottom:18px;font-size:13px;line-height:1.6}.form-message.error{background:#fff4f4;border-color:#f3cbd0;color:#b02b3d}
.access{border-top:1px solid #e8edf3;margin-top:29px;padding-top:21px}.access>p{font-size:12px;text-align:center;color:#79889b;margin:0 0 17px}.access ul{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:12px 5px;padding:0;margin:0}.access li{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px;color:#5a6e87}.access .icon{width:20px;height:20px;color:#536d8a}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;color:#91a6bd;font-size:11px;line-height:1.6}.footer-separator{padding:0 10px;color:#52708d}.site-footer>div{display:flex;align-items:center;gap:24px}.version{color:#839ab3}.motion-toggle{display:flex;align-items:center;gap:6px;color:#a1b8cf;border:0;background:none;font-size:11px;padding:5px}.motion-toggle .icon{width:14px;height:14px}.motion-toggle:hover{color:white}
/* Logo+card sempre alinhados pelo topo por padrão (nunca corta em telas baixas, rola normalmente quando
   precisa); centraliza verticalmente só quando a janela é alta o bastante pra isso ficar bonito sem risco. */
@media(min-height:780px){.page-shell main{justify-content:center}}
@media(max-width:1050px){.page-shell{padding:30px 5% 24px}.login-card{padding:32px 26px 26px}.card-heading h2{font-size:25px}.form-options{font-size:12px;gap:6px}.text-button{font-size:12px}}
@media(max-width:760px){.page-shell{padding:26px 20px 20px}.brand-logo-center{width:min(200px,65vw)}.page-shell main{gap:20px;padding:24px 0}.login-card{padding:30px 25px 25px;max-width:420px;border-radius:17px}.card-heading h2{font-size:25px}.card-heading>p{font-size:14px}.site-footer{justify-content:center;flex-wrap:wrap;font-size:11px;text-align:center}.site-footer>div{gap:12px}.access li{font-size:11px}.backdrop::after{background:rgba(3,20,39,.8)}}
@media(max-width:360px){.page-shell{padding-left:14px;padding-right:14px}.login-card{padding-left:20px;padding-right:20px}.form-options{flex-wrap:wrap;gap:12px}.card-heading h2{font-size:23px}.access ul{grid-template-columns:repeat(2,1fr);gap:17px}.site-footer{font-size:10px}}
@media(max-height:760px){.page-shell main{padding:20px 0;gap:18px}.login-card{padding:26px 32px 20px}form{margin-top:18px}.field{margin-bottom:12px}.form-options{margin:13px 0 15px}.access{margin-top:14px;padding-top:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}.backdrop video{display:none}}
