/* GranHub 2.2 — logins */
.login-body-v22{margin:0;min-height:100dvh;background:#f7faff;color:#15345f;overflow:hidden}
.login-shell-v22{height:100dvh;min-height:620px;display:grid;grid-template-columns:minmax(430px,.82fr) minmax(0,1.18fr);background:#fff}
.login-form-side{position:relative;display:flex;flex-direction:column;padding:clamp(24px,3vw,48px) clamp(28px,5vw,78px) 22px;overflow:auto;background:#fff;z-index:2}
.login-form-side:before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;left:-150px;bottom:-120px;background:radial-gradient(circle,rgba(9,114,255,.10),rgba(9,114,255,0) 72%);pointer-events:none}
.login-top-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px}
.login-brand-v22 img{width:158px!important;max-height:48px!important;height:auto!important;object-fit:contain!important;object-position:left center!important}
.login-clock{background:#f8fbff!important}
.login-form-center{width:min(430px,100%);margin:auto 0;position:relative;z-index:1}
.login-eyebrow{display:inline-flex;align-items:center;gap:7px;color:#0a6ce3;font-size:.7rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;margin-bottom:11px}.login-eyebrow:before{content:"";width:18px;height:2px;background:#0972ff;border-radius:99px}
.login-form-center h1{font-size:clamp(2rem,3.2vw,3.05rem);line-height:1.02;letter-spacing:-.045em;margin:0;color:#0c2f5f;max-width:420px}
.login-form-center>p{margin:12px 0 22px;color:#7288a4;font-size:.88rem;line-height:1.6;max-width:420px}
.login-form-v22{display:grid;gap:13px}.login-form-v22 .field{gap:6px}.login-form-v22 .field label{font-size:.74rem;color:#496683}.login-input-wrap{position:relative}.login-input-wrap>svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:#8298b3}.login-input-wrap input{height:48px;padding:0 42px;border-radius:11px;background:#fbfdff}.login-password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;border-radius:8px;color:#6f88a7;display:grid;place-items:center}.login-password-toggle:hover{background:#eef5ff;color:#0a67d3}
.login-options-v22{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.69rem}.login-options-v22 a{color:#2263af;font-weight:700}.login-options-v22 .checkbox{font-size:.67rem}
.login-submit-v22{width:100%;height:49px;border-radius:11px;position:relative;overflow:hidden}.login-submit-v22:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.24) 45%,transparent 70%);transform:translateX(-130%);transition:.5s}.login-submit-v22:hover:before{transform:translateX(130%)}
.login-help-links{display:flex;gap:13px;flex-wrap:wrap;margin-top:18px;font-size:.66rem;color:#7890aa}.login-help-links button,.login-help-links a{border:0;background:transparent;padding:0;color:inherit}.login-help-links button:hover,.login-help-links a:hover{color:#0b67d5}
.login-bottom-v22{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px;color:#8a9cb1;font-size:.62rem}.login-bottom-v22 a{color:#607b9d}

.login-visual-side{position:relative;overflow:hidden;background:linear-gradient(145deg,#0872ff,#3f9bff);isolation:isolate}
.login-visual-bg{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);object-fit:cover;object-position:76% center;filter:saturate(.85) contrast(1.02)}
.login-visual-side:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(9,114,255,.78),rgba(9,114,255,.42) 42%,rgba(0,64,161,.62));z-index:1}
.login-visual-side:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 22%,rgba(255,255,255,.18),transparent 28%),linear-gradient(90deg,rgba(9,114,255,.35),transparent 38%);z-index:1;backdrop-filter:blur(1.4px)}
.login-visual-brand{position:absolute;left:clamp(28px,4vw,64px);top:clamp(30px,5vh,60px);z-index:3}.login-visual-brand img{width:146px;height:auto;filter:brightness(0) invert(1);opacity:.98}
.login-visual-copy-v22{position:absolute;left:clamp(28px,5vw,78px);bottom:clamp(36px,7vh,76px);z-index:4;max-width:520px;color:#fff;padding-right:22px}.login-visual-copy-v22 .visual-tag{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);backdrop-filter:blur(9px);font-size:.67rem;font-weight:750}.login-visual-copy-v22 h2{margin:13px 0 8px;font-size:clamp(2rem,4vw,4rem);line-height:.96;letter-spacing:-.05em}.login-visual-copy-v22 p{margin:0;color:rgba(255,255,255,.83);font-size:.84rem;line-height:1.6;max-width:470px}
.login-mockup{position:absolute;z-index:3;width:min(38vw,480px);right:clamp(-60px,0vw,24px);bottom:-22px;filter:drop-shadow(0 28px 34px rgba(0,27,75,.28));transform:rotate(-1.5deg);animation:mockupFloat 6s ease-in-out infinite}
.login-visual-shape{position:absolute;z-index:2;border:1px solid rgba(255,255,255,.15);border-radius:50%;animation:shapeFloat 8s ease-in-out infinite}.login-visual-shape.one{width:210px;height:210px;right:8%;top:8%}.login-visual-shape.two{width:115px;height:115px;right:28%;top:22%;animation-delay:-3s}
@keyframes mockupFloat{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-10px) rotate(-.5deg)}}
@keyframes shapeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(12px)}}

.login-message{min-height:18px;font-size:.71rem;color:#657d9a}.login-message.error{color:#bd3542}.login-message.show{animation:loginMessage .25s ease}@keyframes loginMessage{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.login-submit-v22 .spinner,.admin-login-submit .spinner{width:17px;height:17px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:ghSpin .7s linear infinite}

/* Admin login */
.admin-login-body-v22{min-height:100dvh;margin:0;background:linear-gradient(135deg,#eef5ff 0%,#f8fbff 48%,#edf4ff 100%);display:grid;place-items:center;padding:22px;overflow:auto}
.admin-login-shell{width:min(1040px,100%);min-height:620px;display:grid;grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);border:1px solid #dce8f7;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 28px 70px rgba(14,57,111,.14)}
.admin-login-aside{position:relative;padding:42px;display:flex;flex-direction:column;color:#fff;background:linear-gradient(145deg,#075bc8,#0972ff 55%,#3d94ff);overflow:hidden}.admin-login-aside:before,.admin-login-aside:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.16)}.admin-login-aside:before{width:330px;height:330px;right:-170px;top:-90px}.admin-login-aside:after{width:210px;height:210px;left:-100px;bottom:-90px}.admin-login-aside img{width:138px;filter:brightness(0) invert(1);position:relative;z-index:2}.admin-login-aside-copy{margin:auto 0;position:relative;z-index:2}.admin-login-aside-copy span{display:inline-flex;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-size:.65rem;font-weight:800}.admin-login-aside-copy h2{margin:13px 0 9px;font-size:2.25rem;line-height:1.04;letter-spacing:-.04em}.admin-login-aside-copy p{margin:0;color:rgba(255,255,255,.82);font-size:.8rem;line-height:1.6;max-width:390px}.admin-login-aside-foot{position:relative;z-index:2;font-size:.62rem;color:rgba(255,255,255,.7)}
.admin-login-form-panel{padding:clamp(34px,5vw,64px);display:flex;flex-direction:column;justify-content:center}.admin-login-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:28px}.admin-login-head h1{margin:5px 0 4px;font-size:1.7rem;color:#0b2d59}.admin-login-head p{margin:0;color:#7a8fa9;font-size:.76rem}.admin-login-badge{width:44px;height:44px;border-radius:12px;background:#eef6ff;color:#096dde;display:grid;place-items:center}.admin-login-form{display:grid;gap:14px}.admin-login-form .field input{height:49px}.admin-login-submit{width:100%;height:49px}.admin-login-footer{display:flex;justify-content:space-between;gap:10px;margin-top:18px;font-size:.64rem;color:#8194aa}

/* Tela de boas-vindas */
.access-loader{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:rgba(247,250,255,.96);backdrop-filter:blur(10px);animation:accessFadeIn .2s ease}.access-loader-box{width:min(420px,calc(100vw - 32px));text-align:center;padding:30px}.access-loader-logo img{width:154px;height:auto;margin:0 auto 26px}.access-loader-icon{width:52px;height:52px;margin:0 auto 17px;border-radius:15px;background:#eef6ff;position:relative}.access-loader-icon:before{content:"";position:absolute;inset:10px;border:2px solid #cfe3fb;border-top-color:#0972ff;border-radius:50%;animation:ghSpin .78s linear infinite}.access-loader-box h3{margin:0;color:#7d8fa5;font-size:1rem;font-weight:550}.access-loader-box h3 strong{display:block;color:#0d315e;font-size:1.25rem;margin-top:4px}.access-loader-box p{margin:8px 0 0;color:#8ca0b7;font-size:.72rem;transition:opacity .14s}.loader-track{width:160px;height:4px;border-radius:99px;background:#e2ecf7;margin:17px auto 0;overflow:hidden}.loader-track span{display:block;width:42%;height:100%;background:linear-gradient(90deg,#0972ff,#65adff);animation:ghLoadLine 1.15s ease-in-out infinite}
@keyframes accessFadeIn{from{opacity:0}to{opacity:1}}

@media(max-width:980px){
  .login-shell-v22{grid-template-columns:minmax(380px,.9fr) minmax(0,1.1fr)}.login-form-side{padding-left:32px;padding-right:32px}.login-mockup{width:min(44vw,410px);right:-90px}.login-visual-copy-v22{left:34px;bottom:40px;max-width:410px}.login-visual-copy-v22 h2{font-size:2.45rem}
  .admin-login-shell{grid-template-columns:1fr 1.15fr}.admin-login-aside{padding:34px}
}
@media(max-width:760px){
  .login-body-v22{overflow:auto;background:#fff}.login-shell-v22{min-height:100dvh;height:auto;display:flex;flex-direction:column}.login-visual-side{order:0;height:250px;min-height:250px}.login-form-side{order:1;padding:22px 20px 24px;overflow:visible;min-height:calc(100dvh - 250px)}.login-top-row{position:absolute;top:16px;left:18px;right:18px;z-index:10}.login-brand-v22 img{width:138px!important;filter:brightness(0) invert(1)}.login-clock{background:rgba(255,255,255,.88)!important;border-color:rgba(255,255,255,.35)!important}.login-visual-brand{display:none}.login-mockup{width:215px;right:-20px;bottom:-22px}.login-visual-copy-v22{left:20px;right:170px;bottom:25px;padding:0}.login-visual-copy-v22 .visual-tag{display:none}.login-visual-copy-v22 h2{font-size:1.5rem;margin:0 0 5px}.login-visual-copy-v22 p{font-size:.65rem;line-height:1.42}.login-form-center{margin:8px auto 0;width:min(440px,100%)}.login-form-center h1{font-size:1.78rem}.login-form-center>p{font-size:.78rem;margin:8px 0 18px}.login-bottom-v22{margin-top:22px}.login-options-v22{align-items:flex-start}.login-help-links{margin-top:15px}
  .admin-login-body-v22{padding:0;background:#fff}.admin-login-shell{min-height:100dvh;border:0;border-radius:0;display:flex;flex-direction:column;box-shadow:none}.admin-login-aside{min-height:230px;padding:24px}.admin-login-aside img{width:128px}.admin-login-aside-copy{margin-top:auto}.admin-login-aside-copy span{display:none}.admin-login-aside-copy h2{font-size:1.5rem;margin:10px 0 5px}.admin-login-aside-copy p{font-size:.68rem;max-width:310px}.admin-login-aside-foot{display:none}.admin-login-form-panel{padding:26px 20px 30px;flex:1}.admin-login-head{margin-bottom:20px}.admin-login-head h1{font-size:1.4rem}
}
@media(max-width:420px){
  .login-visual-side{height:220px;min-height:220px}.login-form-side{min-height:calc(100dvh - 220px);padding:19px 16px 22px}.login-mockup{width:185px;right:-26px}.login-visual-copy-v22{right:135px}.login-visual-copy-v22 h2{font-size:1.3rem}.login-visual-copy-v22 p{display:none}.login-top-row{left:14px;right:14px}.login-brand-v22 img{width:126px!important}.brasilia-clock{padding:6px 8px}.brasilia-clock small{display:none}.login-form-center h1{font-size:1.56rem}.login-options-v22{font-size:.64rem}.login-bottom-v22{flex-direction:column;align-items:flex-start}
}
@media(max-height:700px) and (min-width:761px){
  .login-shell-v22{min-height:100dvh}.login-form-side{padding-top:22px;padding-bottom:14px}.login-form-center h1{font-size:2rem}.login-form-center>p{margin:8px 0 14px}.login-form-v22{gap:9px}.login-input-wrap input{height:44px}.login-submit-v22{height:45px}.login-help-links{margin-top:12px}.login-bottom-v22{padding-top:10px}.login-mockup{width:min(34vw,400px)}.login-visual-copy-v22{bottom:28px}.login-visual-copy-v22 h2{font-size:2.2rem}
}

/* Ajuste final da marca e encaixe de telas baixas */
.login-brand-v22 img{width:150px!important;max-height:42px!important}
.login-visual-brand img{width:138px!important}
.admin-login-aside img{width:134px!important}
@media(max-height:760px) and (min-width:761px){
  .admin-login-body-v22{padding:12px}.admin-login-shell{min-height:min(610px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}
  .admin-login-form-panel{padding:28px 42px}.admin-login-aside{padding:30px}.admin-login-head{margin-bottom:18px}
}
@media(max-width:420px){.login-brand-v22 img{width:126px!important}.admin-login-aside img{width:122px!important}}
.admin-login-head-tools{display:flex;align-items:center;gap:8px}.admin-login-head-tools .brasilia-clock{background:#f8fbff}
@media(max-width:520px){.admin-login-head-tools .brasilia-clock{display:none}}
