
:root{font-family:Inter,system-ui,-apple-system,sans-serif;color:#102b3b;font-synthesis:none;font-size:16px}*{box-sizing:border-box}body{margin:0;background:#f8fafb}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #24b7c4;outline-offset:4px}.layout{display:grid;grid-template-columns:56% 44%;min-height:100svh}.presentation{position:relative;isolation:isolate;overflow:hidden;background:#062a3b;color:#fff;padding:48px clamp(32px,4.5vw,84px) 32px;display:flex;flex-direction:column;min-height:850px}.presentation:after{content:'';position:absolute;right:0;top:0;height:100%;width:5px;background:linear-gradient(#18a6b8,#136176);opacity:.6}.ambient{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 100% 20%,#0a6476a0,transparent 57%),radial-gradient(ellipse at 30% 110%,#0c53687a,transparent 65%),linear-gradient(130deg,#061d2e,#083c4b)}.network{position:absolute;right:-16%;top:10%;height:100%;width:95%;color:#52ced3;opacity:.12;z-index:-1;stroke-width:1}.institution{display:flex;gap:18px;align-items:center}.crest{width:76px;height:76px;border-radius:16px;background:#fff;flex:none;display:grid;place-items:center;padding:4px;box-shadow:0 5px 20px #0002}.crest img{width:100%;height:100%;object-fit:contain}.institution strong{font-size:14px;line-height:1.55;letter-spacing:.14em;font-weight:650}.institution span{display:block;font-size:12px;margin-top:7px;color:#b1c6ce;line-height:1.5;max-width:250px}.hero{max-width:650px;margin:auto 0;padding:65px 0 50px}.brand{display:flex;gap:20px;align-items:center;font-size:clamp(48px,5.4vw,80px);font-weight:700;letter-spacing:-.045em;line-height:1}.brand svg{width:80px;height:80px;flex:none}.brand small{display:block;font-size:13px;font-weight:500;letter-spacing:.33em;color:#77d4dc;margin-top:14px;margin-left:4px}h1{font-size:clamp(36px,3.2vw,54px);line-height:1.14;letter-spacing:-.045em;margin:44px 0 22px;font-weight:700}.intro{color:#c5d7df;font-size:17px;line-height:1.7;margin:0 0 38px}.carousel{border:1px solid #73d6dc32;border-radius:18px;background:linear-gradient(130deg,#ffffff09,#ffffff03);overflow:hidden;max-width:590px;backdrop-filter:blur(8px)}.carousel-top{display:flex;align-items:center;justify-content:space-between;padding:17px 22px 0;gap:10px}.carousel-top>span{color:#9cc8d2;font-size:11px;letter-spacing:.16em;font-weight:600}.carousel-controls{display:flex;gap:6px}.carousel-controls button{width:28px;height:28px;border:1px solid #ffffff20;background:transparent;color:#b9dbe2;border-radius:7px;font-size:22px;display:grid;place-items:center;line-height:1}.carousel-controls button#pause{font-size:12px}.carousel-controls button:hover{background:#ffffff15;color:white}.slide{display:flex;gap:18px;padding:23px 22px 22px;min-height:151px;align-items:flex-start}.slide.changing{animation:slideIn .45s ease both}@keyframes slideIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}.system-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:#22c4d112;color:#53d9e2;border:1px solid #34b8ca30;flex:none}.system-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.system-category{display:block;font-size:11px;color:#70c9d3;margin:1px 0 6px;font-weight:500;letter-spacing:.04em}.slide h2{font-size:21px;letter-spacing:-.02em;margin:0 0 9px;font-weight:600}.slide p{font-size:14px;line-height:1.65;color:#b8cfd8;margin:0;max-width:390px}.carousel-bottom{padding:0 22px 15px;display:flex;align-items:center;justify-content:space-between}.dots{display:flex;gap:7px}.dots button{width:7px;height:7px;background:#7097a1;border:0;border-radius:10px;padding:0;transition:width .25s,background .25s}.dots button[aria-current=true]{width:24px;background:#37d0d9}.carousel-bottom>span{font-size:11px;color:#88acb9;font-variant-numeric:tabular-nums}.progress{height:2px;background:#ffffff08}.progress span{display:block;height:100%;width:0;background:#2ecad3}.left-footer{display:flex;flex-direction:column;gap:8px;color:#a6c3ce;font-size:13px}.footer-line{width:30px;height:3px;background:#3cd2db;margin-bottom:6px}.left-footer small{font-size:11px;color:#7198a9}.access{position:relative;display:flex;flex-direction:column;justify-content:center;padding:70px clamp(32px,4.3vw,80px);background:radial-gradient(ellipse at 100% 0,#f0f7f8,transparent 50%),#fcfdfd;min-width:0}.preview-badge{position:absolute;top:30px;right:30px;font-size:10px;letter-spacing:.12em;color:#66848e;border:1px solid #dce7eb;border-radius:20px;padding:7px 12px}.login{width:100%;max-width:430px;margin:0 auto}.mini-brand{color:#078c9c;width:56px;height:56px;margin:0 0 24px}.mini-brand svg{width:100%;height:100%}.login h2{font-size:36px;line-height:1.15;letter-spacing:-.045em;margin:0 0 13px;font-weight:750}.login-intro{font-size:15px;line-height:1.6;color:#667583;margin:0 0 38px}form>label{display:block;font-size:14px;font-weight:600;margin:0 0 10px}.input-wrap{height:56px;border:1px solid #cdd9df;background:#fff;border-radius:10px;display:flex;align-items:center;padding:0 16px;gap:12px;margin:0 0 23px;transition:border-color .2s,box-shadow .2s}.input-wrap:focus-within{border-color:#0995a3;box-shadow:0 0 0 3px #0792a312}.input-wrap svg{width:20px;height:20px;fill:none;stroke:#81909d;stroke-width:1.7;flex:none}.input-wrap input{border:0;background:none;width:100%;min-width:0;outline:none;color:#193545;font-size:15px;height:100%}.input-wrap input::placeholder{color:#8b98a5}.input-wrap input:focus-visible{outline:none}.eye{background:none;border:0;display:grid;place-items:center;padding:4px}.form-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 28px}.remember{display:flex;gap:9px;align-items:center;font-size:13px;color:#526675;cursor:pointer;white-space:nowrap}.remember input{accent-color:#087c8d;width:16px;height:16px;margin:0}.text-button{border:0;background:none;color:#087787;padding:0;font-size:13px;font-weight:500;text-decoration:none;text-underline-offset:4px}.text-button:hover{text-decoration:underline}.enter{width:100%;height:54px;border:0;color:white;font-size:15px;font-weight:600;background:linear-gradient(110deg,#075b6c,#078c9b);border-radius:10px;box-shadow:0 6px 16px #075b6c15;transition:filter .2s,transform .2s}.enter:hover{filter:brightness(1.1);transform:translateY(-1px)}.enter:active{transform:translateY(0)}.form-message{font-size:12px;line-height:1.55;color:#80909b;margin:13px 0 0;min-height:38px}.help{border-top:1px solid #e0e8ed;margin-top:26px;padding-top:25px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px;color:#7a8896}.access-footer{position:absolute;bottom:32px;left:20px;right:20px;display:flex;justify-content:center;align-items:center;gap:8px;color:#83929e;font-size:11px}.access-footer svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6}@media(min-width:1600px){.presentation{padding-top:64px;padding-bottom:44px}.hero{max-width:760px}.carousel{max-width:650px}.slide{min-height:160px}.slide p{max-width:450px}.login{max-width:460px}}@media(max-width:1100px){.layout{grid-template-columns:52% 48%}.presentation{padding:32px;min-height:800px}.access{padding:70px 32px}.institution span{font-size:11px}.crest{width:62px;height:62px}.institution strong{font-size:12px}.brand{font-size:60px}.brand svg{width:60px;height:60px}h1{font-size:38px}.intro{font-size:15px}.slide{min-height:172px}.form-options{flex-wrap:wrap}.login h2{font-size:32px}}@media(max-width:760px){.layout{display:flex;flex-direction:column}.presentation{padding:25px 25px 30px;min-height:0}.institution strong{font-size:11px}.institution span{display:none}.crest{width:52px;height:52px;border-radius:10px}.institution{gap:12px}.hero{padding:32px 0 0;margin:0;max-width:none}.brand{font-size:44px;gap:12px}.brand svg{width:48px;height:48px}.brand small{font-size:10px;margin-top:8px}h1{font-size:28px;margin:25px 0 12px}.intro{font-size:14px;margin-bottom:24px}.desktop{display:none}.carousel{max-width:none}.carousel-top{padding:12px 16px 0}.slide{padding:17px 16px;min-height:133px;gap:12px}.system-icon{width:40px;height:40px}.slide h2{font-size:18px}.slide p{font-size:13px}.carousel-bottom{padding:0 16px 12px}.left-footer{display:none}.access{padding:50px 25px 90px}.preview-badge{top:15px;right:20px;font-size:9px}.mini-brand{display:none}.login h2{font-size:30px}.login-intro{font-size:14px;margin-bottom:28px}.login{max-width:460px}.form-options{gap:15px}.access-footer{bottom:30px}.network{opacity:.09}.help{margin-top:20px}.presentation:after{width:100%;height:3px;top:auto;bottom:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.progress{display:none}}
/* Nexus — paisagem institucional e cartões deslizantes */
.layout{grid-template-columns:58% 42%;background:#fcfdfd}.presentation{min-height:100svh;padding:38px clamp(32px,4.5vw,80px) 26px;clip-path:polygon(0 0,100% 0,91% 100%,0 100%)}.presentation:after{display:none}.presentation:before{content:'';position:absolute;z-index:-1;inset:44% 0 0;background:linear-gradient(180deg,#062a3b 0%,#062a3b11 35%,#041d2a44 65%,#041b2bd9 100%),url('monte-roraima.jpg') center bottom/cover no-repeat;opacity:.68;filter:saturate(.35)}.ambient{background:radial-gradient(ellipse at 100% 0,#0c7181a0,transparent 65%),linear-gradient(125deg,#041e2e,#073e4c)}.network{opacity:.075;top:-10%;height:100%;right:-12%}.crest{background:transparent;padding:0;box-shadow:none;width:80px;height:80px;border-radius:0}.crest img{filter:drop-shadow(0 3px 5px #0003)}.institution span{font-size:11px}.hero{padding:38px 0 34px;max-width:640px;width:100%}.brand{font-size:clamp(52px,5.6vw,88px);gap:18px}.brand svg{width:78px;height:78px}.brand small{font-size:12px}h1{margin:32px 0 16px;font-size:clamp(34px,3.5vw,58px);line-height:1.13}.intro{font-size:16px;margin-bottom:28px;color:#d0e0e6}.left-footer{font-size:12px;color:#c0d0d7;gap:6px}.left-footer small{color:#96aeb9}.photo-credit{font-size:9px;color:#89a4b0;text-decoration:none;margin-top:3px}.photo-credit:hover{text-decoration:underline}.systems-showcase{width:calc(100% + 14px);max-width:660px}.showcase-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 2px 14px;font-size:10px;letter-spacing:.15em;font-weight:500;color:#91c6d2}.drag-hint{display:flex;align-items:center;gap:7px;letter-spacing:0;color:#8daebc;font-size:11px}.drag-hint svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.2;fill:none}.systems-track{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;padding:2px 18% 10px 2px;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;touch-action:pan-x pan-y;overscroll-behavior-x:contain;-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 92%,transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 92%,transparent 100%)}.systems-track::-webkit-scrollbar{display:none}.systems-track.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}.system-card{flex:0 0 82%;scroll-snap-align:start;min-height:210px;padding:23px 25px;border:1px solid #9fd6dc34;border-radius:16px;background:linear-gradient(125deg,#0b364ee8,#0a3d51cc);backdrop-filter:blur(18px);box-shadow:0 10px 30px #00101d15;transition:border-color .5s,background .5s;position:relative;overflow:hidden;user-select:none}.system-card:after{content:'';position:absolute;width:100px;height:100px;top:-65px;right:15px;background:#19c6d34d;filter:blur(35px);pointer-events:none}.system-card.is-active{border-color:#97dce65c;background:linear-gradient(125deg,#113d54e8,#0b4257cc)}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.card-index{font-size:11px;letter-spacing:.12em;color:#83acbc}.system-icon{width:40px;height:40px;border-radius:10px;background:#47ced312;color:#8fe6ec;border:1px solid #65d7e321}.system-icon svg{width:21px;height:21px;stroke-width:1.4}.system-category{font-size:9px;letter-spacing:.14em;margin-bottom:7px;color:#8dd2dd}.system-card h3{font-size:23px;letter-spacing:-.025em;line-height:1.2;margin:0 0 9px;font-weight:600}.system-card p{font-size:13px;line-height:1.65;color:#c1d5df;max-width:385px;margin:0}.system-dots{display:flex;justify-content:center;gap:8px;padding-top:7px;margin-right:18%}.system-dots button{padding:0;width:6px;height:6px;border-radius:10px;border:0;background:#88afbb70;transition:width .35s,background .35s}.system-dots button[aria-current=true]{width:22px;background:#7be0e7}.access{padding:70px clamp(28px,3vw,60px) 80px 20px;background:radial-gradient(ellipse at 100% 0,#eff7f8,transparent 60%),#fcfdfd}.mini-brand{width:64px;height:64px;margin:0 auto 23px}.login h2{text-align:center;font-size:36px}.login-intro{text-align:center;margin-bottom:38px}.login{max-width:420px}.enter{box-shadow:0 8px 20px #046c7d20;background:linear-gradient(110deg,#075669,#098c9d);height:55px}.help{margin-top:22px}.form-message{font-size:11px}.access-footer{bottom:26px;font-size:10px}.input-wrap{height:56px;background:#ffffffcc;border-color:#c9d6df}.form-options{margin-bottom:26px}
@media(min-width:1600px){.presentation{padding:54px 80px 36px}.hero{max-width:780px;padding:45px 0}.brand{font-size:90px}.brand svg{width:94px;height:94px}h1{font-size:60px;margin-top:40px}.intro{font-size:19px;margin-bottom:32px}.systems-showcase{max-width:720px}.system-card{min-height:218px}.system-card p{font-size:14px;max-width:440px}.login{max-width:470px}.login h2{font-size:42px}.login-intro{font-size:17px}.input-wrap{height:62px}.enter{height:60px}.access{padding-left:35px}}
@media(max-height:800px) and (min-width:761px){.presentation{padding-top:25px;min-height:760px}.hero{padding:24px 0}.crest{width:65px;height:65px}.brand{font-size:66px}.brand svg{width:66px;height:66px}h1{font-size:42px;margin:25px 0 14px}.intro{margin-bottom:23px}.system-card{min-height:196px;padding:19px 22px}.card-top{margin-bottom:12px}.access{padding-top:45px}.login-intro{margin-bottom:30px}.mini-brand{width:55px;height:55px;margin-bottom:20px}}
@media(max-width:1100px){.presentation{padding-left:32px;padding-right:48px}.institution strong{font-size:11px}.institution span{font-size:10px}.crest{width:65px;height:65px}.brand{font-size:60px}.brand svg{width:60px;height:60px}h1{font-size:38px}.system-card{padding:20px;flex-basis:88%}.systems-track{padding-right:12%}.system-dots{margin-right:12%}.system-card h3{font-size:20px}.system-card p{font-size:12px}.drag-hint{font-size:10px}.login h2{font-size:30px}.access{padding-right:30px}.remember,.text-button{font-size:12px}.form-options{gap:8px}.login-intro{font-size:14px}}
@media(max-width:760px){.presentation{clip-path:none;padding:25px 25px 24px;min-height:0}.presentation:before{inset:35% 0 0;opacity:.6;background-position:center bottom}.hero{padding:28px 0 0;max-width:none}.crest{width:58px;height:58px}.institution span{display:none}.institution strong{font-size:11px}.brand{font-size:46px;gap:12px}.brand svg{width:49px;height:49px}.brand small{font-size:9px}h1{font-size:31px;margin:24px 0 13px}.intro{font-size:14px;margin-bottom:24px}.systems-showcase{width:calc(100% + 12px)}.showcase-heading{font-size:9px;padding-bottom:12px}.drag-hint{font-size:10px}.system-card{min-height:193px;padding:18px;flex-basis:84%}.card-top{margin-bottom:12px}.system-icon{width:34px;height:34px}.system-icon svg{width:19px;height:19px}.system-card h3{font-size:20px}.system-card p{font-size:12px}.system-category{font-size:8px}.systems-track{gap:16px;padding-right:16%}.system-dots{margin-right:16%;padding-top:4px}.left-footer{display:none}.access{padding:40px 25px 78px}.mini-brand{display:none}.login h2{text-align:left;font-size:30px}.login-intro{text-align:left;font-size:14px;margin-bottom:28px}.form-options{flex-wrap:nowrap;gap:8px}.remember,.text-button{font-size:12px}.access-footer{bottom:25px}.help{font-size:12px}.institution{gap:12px}}
.presentation:before{background-color:#083b4b;background-blend-mode:normal,luminosity;filter:none;opacity:.7;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 34%);mask-image:linear-gradient(180deg,transparent 0%,#000 34%)}
/* Ocupação integral da janela e assinatura institucional */
html,body{width:100%;min-height:100%;margin:0}.layout{width:100%;min-height:100svh}.presentation{min-height:100svh}.left-footer{display:flex}.dti-signature{display:flex;align-items:center;gap:12px}.dti-signature img{width:38px;height:42px;object-fit:contain;flex:none}.dti-signature span{display:block;font-size:11px;line-height:1.5;color:#c2d3da}.dti-signature small{display:block;font-size:10px;line-height:1.5;color:#8faebc;margin-top:2px}.left-footer .photo-credit{margin-left:50px;font-size:9px}.institution .crest{width:68px;height:68px}.institution strong{font-size:13px}
@media(min-width:761px){.layout{height:100svh}.presentation,.access{height:100%;min-height:0}.hero{flex:none;margin:auto 0}.access{min-height:0}}
@media(min-width:761px) and (max-height:800px){.presentation{padding-top:20px;padding-bottom:18px}.institution .crest{width:58px;height:58px}.institution strong{font-size:12px}.hero{padding:8px 0}.brand{font-size:54px}.brand svg{width:59px;height:59px}.brand small{font-size:10px;margin-top:9px}h1{font-size:36px;margin:20px 0 12px}.intro{font-size:14px;line-height:1.5;margin-bottom:18px}.showcase-heading{padding-bottom:10px}.system-card{min-height:172px;padding:16px 20px}.card-top{margin-bottom:10px}.system-icon{width:32px;height:32px}.system-icon svg{width:19px;height:19px}.system-card h3{font-size:20px;margin-bottom:7px}.system-card p{font-size:12px;line-height:1.5}.system-category{font-size:9px;margin-bottom:5px}.system-dots{padding-top:3px}.dti-signature img{width:32px;height:35px}.left-footer .photo-credit{margin-left:44px;font-size:8px}.dti-signature span{font-size:10px}.dti-signature small{font-size:9px}.access{padding-top:28px;padding-bottom:45px}.mini-brand{width:48px;height:48px;margin-bottom:16px}.login h2{font-size:32px}.login-intro{margin-bottom:27px}.input-wrap{height:52px;margin-bottom:20px}.form-options{margin-bottom:22px}.help{margin-top:15px;padding-top:18px}.access-footer{bottom:18px}}
@media(min-width:761px) and (max-height:620px){.layout{height:auto;min-height:100svh}.presentation,.access{height:auto;min-height:620px}}
@media(max-width:760px){.layout{height:auto}.presentation{min-height:0;height:auto}.institution .crest{width:56px;height:56px}.institution strong{font-size:11px}.left-footer{margin-top:22px;gap:3px}.dti-signature img{width:30px;height:34px}.dti-signature span{font-size:10px}.dti-signature small{font-size:9px}.left-footer .photo-credit{margin-left:42px;font-size:8px}.access{height:auto;min-height:570px}}
.systems-track{padding-right:0}.systems-track:after{content:'';flex:0 0 calc(18% - 16px);min-width:0}
@media(max-width:1100px){.systems-track:after{flex-basis:calc(12% - 16px)}}
@media(max-width:760px){.systems-track:after{flex-basis:calc(16% - 16px)}}

/* Intranet PMRR — avisos reais do login (erro, sucesso, 2FA, servidor) */
.login-alert{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;border-radius:10px;padding:12px 14px;margin:-18px 0 22px;border:1px solid}
.login-alert+.login-alert{margin-top:-12px}
.login-alert svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}
.login-alert.erro{background:#fdf1f1;border-color:#f2c9c9;color:#8f2525}
.login-alert.sucesso{background:#eef8f3;border-color:#c3e5d3;color:#1d6a43}
.login-alert.aviso{background:#fff8e9;border-color:#f0dcae;color:#7a5410}
.login-alert code{background:#0000000d;padding:1px 5px;border-radius:4px;font-size:12px}
.login-alert a{color:inherit;font-weight:600}
.login-alert ol{margin:6px 0 0;padding-left:18px}
fieldset{border:0;margin:0;padding:0;min-width:0}
fieldset:disabled{opacity:.55}
fieldset>label{display:block;font-size:14px;font-weight:600;margin:0 0 10px}
@media(max-width:760px){.login-alert{margin-top:-10px}}

/* ==========================================================================
   Ajustes de padrão (acessibilidade, contraste, toque, estados)
   Revisão com a skill de design — mantém o desenho aprovado.
   ========================================================================== */

/* Foco visível com contraste ≥ 3:1 no lado claro (o ciano só passa no escuro) */
.access button:focus-visible,.access a:focus-visible{outline-color:#087787;outline-offset:3px;border-radius:6px}

/* Borda do campo ≥ 3:1 e placeholder legível */
.input-wrap{border-color:#8695a1}
.input-wrap:hover{border-color:#6f808c}
.input-wrap input::placeholder{color:#687684}
/* Autopreenchimento do gerenciador de senhas sem fundo amarelo */
.input-wrap input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px #fff inset;-webkit-text-fill-color:#193545;caret-color:#193545}

/* Textos auxiliares com contraste ≥ 4,5:1 e tamanho mínimo legível */
.form-message{font-size:12.5px;color:#5f6e7b;min-height:20px}
.help{color:#5f6e7b}
.access-footer{color:#5f6e7b;font-size:11.5px}
.photo-credit,.left-footer .photo-credit{font-size:10.5px}

/* Botão Entrar: texto branco ≥ 4,5:1 em todo o degradê + estado "Entrando…" */
.enter{background:linear-gradient(110deg,#075669,#077a89);display:flex;align-items:center;justify-content:center;gap:10px}
.enter:focus-visible{outline-color:#087787}
.enter-spinner{display:none;width:18px;height:18px;border:2px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:girar .7s linear infinite}
.enter.is-loading{cursor:progress;filter:none;transform:none}
.enter.is-loading .enter-spinner{display:block}
@keyframes girar{to{transform:rotate(360deg)}}

/* Alvos de toque ≥ 24px (WCAG 2.2) */
.eye{flex:none;width:40px;height:40px;margin-right:-10px;border-radius:8px;color:#5f6e7b}
.eye:hover{background:#eef3f5;color:#193545}
.eye svg{stroke:currentColor}
.eye .ico-olho-off{display:none}
.eye[aria-pressed=true] .ico-olho{display:none}
.eye[aria-pressed=true] .ico-olho-off{display:block}
.text-button{min-height:28px;padding:2px 2px}
.form-options{justify-content:flex-end;margin-top:-8px}

/* Validação junto ao campo */
.input-wrap.is-invalid,.input-wrap.is-invalid:focus-within{border-color:#c0392b;box-shadow:0 0 0 3px #c0392b1f}
.field-error{margin:-16px 0 18px;font-size:12.5px;color:#a52a1f;font-weight:500}
.caps-hint{display:flex;align-items:center;gap:6px;margin:-16px 0 18px;font-size:12.5px;color:#7a5410;font-weight:500}
.caps-hint svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.field-error[hidden],.caps-hint[hidden]{display:none}

/* Carrossel: controle de pausa e pontos com área de toque de 24px */
.showcase-tools{display:flex;align-items:center;gap:10px}
.carousel-toggle{width:28px;height:28px;display:grid;place-items:center;border:1px solid #ffffff26;border-radius:8px;background:transparent;color:#b9dbe2;padding:0;transition:background .2s,color .2s}
.carousel-toggle:hover{background:#ffffff14;color:#fff}
.carousel-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.carousel-toggle .ico-play{display:none;fill:currentColor;stroke:none}
.carousel-toggle[aria-pressed=true] .ico-pausa{display:none}
.carousel-toggle[aria-pressed=true] .ico-play{display:block}
.system-dots{gap:0}
.system-dots button{width:24px;height:24px;background:none;display:grid;place-items:center;transition:none}
.system-dots button::before{content:'';display:block;width:6px;height:6px;border-radius:10px;background:#88afbb70;transition:width .35s,background .35s}
.system-dots button[aria-current=true]{width:34px;background:none}
.system-dots button[aria-current=true]::before{width:22px;background:#7be0e7}

/* Celular: fonte de 16px nos campos evita o zoom automático do iOS */
@media(max-width:760px){
  .input-wrap input{font-size:16px}
  .system-dots{padding-top:0}
}
@media(prefers-reduced-motion:reduce){.enter-spinner{animation:girar 1.6s linear infinite!important}}

/* ==========================================================================
   Telas baixas (notebooks, zoom de 125%): tudo cabe sem rolar, com o
   rodapé do DTI sempre visível. Compacta em degraus conforme a altura.
   ========================================================================== */

/* Assinatura do DTI maior */
.dti-signature{gap:14px}
.dti-signature img{width:52px;height:56px}
.dti-signature span{font-size:12px}
.dti-signature small{font-size:11px}
.left-footer .photo-credit{margin-left:66px}
/* O carrossel nunca encosta no rodapé */
.left-footer{padding-top:14px;flex:none}

@media(min-width:761px) and (max-height:800px){
  .dti-signature img{width:46px;height:50px}
  .left-footer .photo-credit{margin-left:60px}
}

/* Até 700px de altura: título, marca e cards mais compactos */
@media(min-width:761px) and (max-height:700px){
  .presentation{padding-top:18px;padding-bottom:16px}
  .institution .crest{width:52px;height:52px}
  .institution strong{font-size:11.5px}
  .hero{padding:6px 0}
  .brand{font-size:46px;gap:14px}
  .brand svg{width:50px;height:50px}
  .brand small{font-size:9.5px;margin-top:7px}
  h1{font-size:31px;margin:16px 0 10px}
  .intro{font-size:13.5px;margin-bottom:14px}
  .showcase-heading{padding-bottom:8px}
  .system-card{min-height:148px;padding:14px 18px}
  .card-top{margin-bottom:8px}
  .system-icon{width:30px;height:30px}
  .system-card h3{font-size:18px;margin-bottom:5px}
  .system-card p{font-size:12px;line-height:1.45}
  .left-footer{padding-top:10px}
  .dti-signature img{width:42px;height:46px}
  .left-footer .photo-credit{margin-left:56px}

  .access{padding-top:20px;padding-bottom:40px}
  .mini-brand{width:42px;height:42px;margin-bottom:12px}
  .login h2{font-size:29px;margin-bottom:8px}
  .login-intro{margin-bottom:22px}
  .input-wrap{height:50px;margin-bottom:18px}
  fieldset>label{margin-bottom:7px}
  .form-options{margin-bottom:16px}
  .enter{height:52px}
  .form-message{margin-top:8px}
  .help{margin-top:8px;padding-top:14px}
  .access-footer{bottom:14px}
}

/* Até 620px de altura: sai o parágrafo de introdução e o selo do Nexus
   (o título já diz o mesmo). Substitui a regra antiga que forçava 620px de
   altura mínima e fazia a página rolar. */
@media(min-width:761px) and (max-height:620px){
  .layout{height:100svh;min-height:500px}
  .presentation,.access{height:100%;min-height:0}
  .institution .crest{width:46px;height:46px}
  .brand{font-size:40px}
  .brand svg{width:44px;height:44px}
  h1{font-size:27px;margin:12px 0 12px}
  .intro{display:none}
  .system-card{min-height:128px;padding:12px 16px}
  .system-category{margin-bottom:3px}
  .system-dots{padding-top:0}

  .access{padding-top:14px;padding-bottom:34px}
  .mini-brand{display:none}
  .login h2{font-size:27px}
  .login-intro{margin-bottom:16px;font-size:13.5px}
  .input-wrap{height:46px;margin-bottom:14px}
  .form-options{margin:-4px 0 12px}
  .enter{height:48px}
  .form-message{min-height:16px}
  .help{margin-top:4px;padding-top:10px}
  .access-footer{bottom:10px}
}

/* Celular: assinatura do DTI um pouco maior também */
@media(max-width:760px){
  .dti-signature img{width:40px;height:44px}
  .left-footer .photo-credit{margin-left:52px}
}

/* Full HD com barra do navegador (~970px úteis): as regras de tela larga
   aumentam marca, título e cards além do que cabe — o rodapé ficava cortado */
@media(min-width:1600px) and (max-height:1000px){
  .presentation{padding-top:34px;padding-bottom:24px}
  .hero{padding:16px 0}
  .brand{font-size:76px}
  .brand svg{width:80px;height:80px}
  h1{font-size:52px;margin:28px 0 14px}
  .intro{font-size:17px;margin-bottom:22px}
  .system-card{min-height:196px}
}

/* ==========================================================================
   Assinatura do DTI em duas colunas: o brasão ocupa a altura inteira e as
   3 linhas (DTI · PMRR · créditos da foto) ficam alinhadas ao lado.
   --dti é o lado do brasão; cada linha mede exatamente 1/3 dele.
   ========================================================================== */
.left-footer{gap:0}
.dti-signature{--dti:58px;display:flex;align-items:center;gap:14px}
.dti-signature img{width:var(--dti);height:var(--dti);object-fit:contain;flex:none}
.dti-texto{display:flex;flex-direction:column;min-width:0}
.dti-signature .dti-texto>*{display:block;margin:0;line-height:calc(var(--dti) / 3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dti-texto span{font-size:12.5px;font-weight:500;color:#d3e1e6}
.dti-texto small{font-size:11.5px;color:#9fbac5}
.dti-texto .photo-credit,.left-footer .photo-credit{margin:0;font-size:10.5px;color:#89a4b0}

@media(min-width:761px) and (max-height:800px){
  .dti-signature{--dti:52px}
  .dti-texto span{font-size:12px}
  .dti-texto small{font-size:11px}
}
@media(min-width:761px) and (max-height:700px){
  .dti-signature{--dti:48px;gap:12px}
  .dti-texto span{font-size:11.5px}
  .dti-texto small{font-size:10.5px}
  .dti-texto .photo-credit{font-size:10px}
}
@media(max-width:760px){
  .dti-signature{--dti:48px;gap:12px}
  .dti-texto span{font-size:11.5px}
  .dti-texto small{font-size:10.5px}
  .dti-texto .photo-credit{font-size:10px}
}

/* ==========================================================================
   Logo oficial do sistema (arquivos em /assets/nexus/). A altura acompanha o
   font-size de .brand, então todos os degraus de tela acima continuam valendo.
   ========================================================================== */
.brand{line-height:0}
.brand .brand-logo{height:1.55em;width:auto;display:block;max-width:100%}
.mini-brand img{width:100%;height:100%;object-fit:contain;display:block}

/* ==========================================================================
   Efeito do botão Entrar ao enviar — suave, sem nada piscando
   1) "Entrar" dá lugar a "Entrando…" numa transição curta
   2) o botão se preenche da esquerda para a direita, como uma barra de
      progresso: rápido no começo, desacelerando, sem nunca chegar ao fim
   3) o indicador gira devagar
   Só transform e opacity (não recalcula layout).
   ========================================================================== */
.enter{position:relative;overflow:hidden;isolation:isolate;transition:filter .2s,transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .4s ease-out}
.enter:active{transform:scale(.99)}

/* Os dois textos na mesma célula: a troca não muda a largura nem a altura */
.enter-conteudo{display:grid;place-items:center;position:relative;z-index:1}
.enter-conteudo>*{grid-area:1/1;display:flex;align-items:center;gap:10px;white-space:nowrap}
.enter-label{transition:transform .3s ease,opacity .25s ease}
.enter-carregando{opacity:0;transform:translateY(6px);transition:transform .45s cubic-bezier(.16,1,.3,1) .12s,opacity .4s ease-out .12s}
.enter.is-loading .enter-label{opacity:0;transform:translateY(-6px)}
.enter.is-loading .enter-carregando{opacity:1;transform:translateY(0)}

/* Indicador: anel fino, giro lento e constante */
.enter-spinner{display:block;width:17px;height:17px;border-width:2px;border-color:#ffffff40;border-top-color:#fff;animation-duration:1.1s}
.enter.is-loading .enter-spinner{display:block}

/* Estado de envio: o botão escurece um tom e a camada clara avança por cima */
.enter.is-loading{cursor:progress;filter:none;transform:none;background:linear-gradient(110deg,#064a5b,#066b79);box-shadow:0 8px 22px #046c7d2e}
/* A camada é 56px mais larga que o botão e termina num esfumado: a frente do
   preenchimento avança como uma luz suave, sem borda dura. */
.enter::after{content:'';position:absolute;top:0;bottom:0;left:0;width:calc(100% + 56px);z-index:0;pointer-events:none;
  background:linear-gradient(90deg,#2cc3d04d 0,#2cc3d066 calc(100% - 56px),#2cc3d000 100%);transform:translateX(-100%);opacity:0}
.enter.is-loading::after{opacity:1;animation:enter-progresso 8s cubic-bezier(.08,.72,.18,1) forwards}
@keyframes enter-progresso{from{transform:translateX(-100%)}to{transform:translateX(-12%)}}

/* Recusa (campo vazio): um aceno curto e discreto */
.enter.is-recusado{animation:enter-recusa .36s ease-out}
@keyframes enter-recusa{0%,100%{transform:translateX(0)}30%{transform:translateX(-3px)}65%{transform:translateX(2px)}}

/* Enquanto envia, os campos recuam um pouco e não aceitam edição */
fieldset .input-wrap,fieldset .form-options{transition:opacity .45s ease-out}
fieldset.is-enviando .input-wrap,fieldset.is-enviando .form-options{opacity:.7;pointer-events:none}

/* Quem pediu menos movimento: sem barra avançando e sem deslocamento — só a troca de texto */
@media(prefers-reduced-motion:reduce){
  .enter.is-loading::after{animation:none!important;transform:translateX(-12%)}
  .enter-label,.enter-carregando{transform:none!important}
  .enter.is-recusado{animation:none!important}
}

/* ==========================================================================
   Paleta do app SouPMRR (15/10/2026) — a mesma de toda a intranet
   (REGRAS_DESIGN_2.0.md § 4). Esta camada sobrepõe o verde-água das regras
   acima: lado da apresentação em marinho → quase preto com luz azul e um toque
   dourado; cartões de vidro; lado do acesso no gelo do app com manchas de luz;
   botão Entrar no azul de ação (#0565B5, 5,94:1 com branco).
   ========================================================================== */
:root{color:#1A1A2E}
body,.layout{background:#F0F4F8}
button:focus-visible,a:focus-visible,input:focus-visible{outline-color:#42A5F5}

/* ── Apresentação (lado escuro) ─────────────────────────────────────────── */
.presentation{background:#000C24}
.ambient{background:
  radial-gradient(ellipse at 100% 0,#1565c066,transparent 62%),
  radial-gradient(ellipse at 0% 100%,#42a5f526,transparent 60%),
  radial-gradient(ellipse at 70% 60%,#ffb30012,transparent 55%),
  linear-gradient(160deg,#002154 0%,#00173f 45%,#000c24 100%)}
.network{color:#42A5F5}
.presentation:before{background:linear-gradient(180deg,#000c24 0%,#000c2411 35%,#000c2444 65%,#000c24d9 100%),url('monte-roraima.jpg') center bottom/cover no-repeat;background-color:#002154}
.brand small{color:#8CC8F8}
.intro{color:#D3DEEC}
.institution span{color:#B4C4D8}
.showcase-heading{color:#9CC4EC}
.drag-hint{color:#9DB3CC}
.system-card{border-color:#ffffff1f;background:linear-gradient(135deg,#ffffff14,#ffffff05);box-shadow:inset 0 1px 0 #ffffff14,0 10px 30px #00000033}
.system-card:after{background:#42a5f540}
.system-card.is-active{border-color:#42a5f566;background:linear-gradient(135deg,#42a5f526,#0565b50f)}
.card-index{color:#9DB3CC}
.system-icon{background:#42a5f51a;color:#BFE0FB;border-color:#42a5f533}
.system-category{color:#8CC8F8}
.system-card p,.slide p{color:#C9D6E6}
.system-dots button{background:#9db3cc66}
.system-dots button[aria-current=true],.dots button[aria-current=true]{background:#42A5F5}
.progress span{background:#42A5F5}
.footer-line{background:#42A5F5}
.carousel{border-color:#42a5f533}
.carousel-top>span{color:#9CC4EC}
.carousel-controls button{color:#BFE0FB}
.left-footer{color:#C3D0E0}
.left-footer small,.dti-signature small{color:#9DB3CC}
.dti-signature span{color:#C9D6E6}
.photo-credit{color:#9DB3CC}

/* ── Acesso (lado claro): o gelo e as manchas de luz do app ──────────────── */
.access{background:
  radial-gradient(ellipse at 100% 0,#42a5f529,transparent 55%),
  radial-gradient(ellipse at 0% 100%,#0021541a,transparent 55%),
  radial-gradient(ellipse at 90% 85%,#ffb30014,transparent 45%),
  linear-gradient(180deg,#E8EFF8,#F0F4F8)}
.mini-brand{color:#0565B5}
.login h2{color:#1A1A2E}
.login-intro{color:#4F5B6E}
.input-wrap{background:#ffffffd9;border-color:#8A97A8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.input-wrap:hover{border-color:#6B7A8E}
.input-wrap:focus-within{border-color:#0565B5;box-shadow:0 0 0 3px #0565b524}
.input-wrap input{color:#1A1A2E}
.input-wrap input::placeholder{color:#5F6B7D}
.input-wrap input:-webkit-autofill{-webkit-text-fill-color:#1A1A2E;caret-color:#1A1A2E}
.access button:focus-visible,.access a:focus-visible,.enter:focus-visible{outline-color:#0565B5}
.remember input{accent-color:#0565B5}
.text-button{color:#0565B5}
.eye:hover{background:#E6EEF6;color:#1A1A2E}
.enter{background:linear-gradient(180deg,#1f7ccc,#0565B5);box-shadow:inset 0 1px 0 #ffffff33,0 10px 24px -10px #0565B5}
.enter:hover{background:linear-gradient(180deg,#2a86d4,#0A57A0);filter:none}
.help{border-top:0;background:linear-gradient(90deg,transparent,#D9E2EC 20%,#D9E2EC 80%,transparent) top/100% 1px no-repeat;color:#4F5B6E}
.form-message,.access-footer{color:#4F5B6E}
.preview-badge{color:#4F5B6E;border-color:#D9E2EC}
/* "Entrando…": o estado de envio também no azul (antes voltava ao verde-água) */
.enter.is-loading{background:linear-gradient(180deg,#0f5fa8,#044e8f);box-shadow:inset 0 1px 0 #ffffff26,0 8px 22px -10px #0565B5}
.enter::after{background:linear-gradient(90deg,#42a5f54d 0,#8cc8f866 calc(100% - 56px),#8cc8f800 100%)}
/* Fonte do padrão (Geist; Inter de reserva) — REGRAS_DESIGN_2.0.md § 5 */
:root{font-family:Geist,Inter,system-ui,-apple-system,sans-serif;font-feature-settings:"ss01","cv11"}
h1,.login h2{text-wrap:balance}
