/* NEXUS · Login ----------------------------------------------------------- */
.nexus-login-page{
  --login-navy:#082746;
  --login-navy-deep:#061c34;
  --login-blue:#1f2937;
  --login-cyan:#28b9f5;
  --login-ink:#10233d;
  --login-muted:#74849a;
  min-height:100vh;
  margin:0;
  color:var(--login-ink);
  background:linear-gradient(145deg,#f3f4f6 0%,#f8fafc 48%,#eef2f7 100%)!important;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow-x:hidden;
}
.nexus-login-page *{box-sizing:border-box}
.login-stage{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:clamp(24px,4vw,58px);
  position:relative;
  isolation:isolate;
}
.login-card{
  width:min(1180px,100%);
  min-height:min(720px,calc(100vh - 80px));
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(420px,.94fr);
  overflow:hidden;
  border:1px solid rgba(193,216,237,.84);
  border-radius:28px;
  background:#fff;
  box-shadow:0 34px 90px rgba(8,48,83,.17),0 8px 28px rgba(8,48,83,.08);
}
.login-visual{
  min-height:100%;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:50px 58px 42px;
  color:#fff;
  background:linear-gradient(145deg,#1f2937 0%,#17202c 48%,#111827 100%);
}
.login-brand,.login-presentation,.login-benefits,.login-signature{position:relative;z-index:2}
.login-brand{display:flex;align-items:center;gap:14px}
.login-brand-mark{
  width:47px;
  height:47px;
  flex:0 0 47px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(145deg,#2bc7ff,#0a81ef);
  color:#fff;
  box-shadow:0 10px 27px rgba(5,129,231,.34),inset 0 1px 0 rgba(255,255,255,.26);
  font-size:25px;
  font-weight:900;
  letter-spacing:-.08em;
}
.login-brand-text{display:grid;gap:3px}
.login-brand-text strong{font-size:25px;line-height:1;letter-spacing:.18em;font-weight:800}
.login-brand-text small{color:#8bd7ff;font-size:8px;font-weight:800;letter-spacing:.30em}
.login-presentation{max-width:520px;margin:auto 0 0;padding-top:72px}
.login-eyebrow{display:block;margin-bottom:13px;color:#54c7fb;font-size:10px;font-weight:900;letter-spacing:.22em}
.login-presentation h1{margin:0;font-size:clamp(48px,5vw,72px);line-height:.99;letter-spacing:-.055em;font-weight:780}
.login-presentation p{max-width:465px;margin:24px 0 0;color:#b9d5e7;font-size:16px;line-height:1.72}
.login-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:auto;padding-top:72px;max-width:510px}
.login-benefits>div{display:flex;align-items:flex-start;gap:11px}
.login-benefits span{width:37px;height:37px;display:grid;place-items:center;flex:0 0 37px;border:1px solid rgba(255,255,255,.10);border-radius:11px;background:rgba(255,255,255,.08);color:#66ceff;backdrop-filter:blur(6px)}
.login-benefits p{margin:2px 0 0;color:#a9c8dd;font-size:11px;line-height:1.45}
.login-signature{margin:34px 0 0;color:#6397ba;font-size:8px;font-weight:800;letter-spacing:.25em}
.login-form-panel{display:grid;place-items:center;padding:54px 64px;background:#fff}
.login-form{width:min(410px,100%)}
.login-mobile-brand{display:none}
.login-form-header{margin-bottom:31px}
.login-form-kicker{display:block;margin-bottom:10px;color:var(--login-blue);font-size:9px;font-weight:900;letter-spacing:.19em}
.login-form-header h2{margin:0;color:#10233d;font-size:40px;line-height:1.08;letter-spacing:-.045em;font-weight:780}
.login-form-header p{margin:11px 0 0;color:#7a899d;font-size:14px;line-height:1.6}
.login-alert{display:flex;gap:10px;align-items:flex-start;margin:-9px 0 17px;padding:12px 13px;border:1px solid #f1d1d1;border-radius:12px;background:#fff7f7;color:#a94242;font-size:11px;line-height:1.5}
.login-alert i{margin-top:2px}
.login-field{
  height:54px;
  position:relative;
  display:flex;
  align-items:center;
  margin-bottom:13px;
  border:1px solid #d5e2ed;
  border-radius:14px;
  background:#fff;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.login-field:focus-within{border-color:#9ca3af;box-shadow:0 0 0 4px rgba(31,41,55,.08);transform:translateY(-1px)}
.login-field.has-error{border-color:#e49393}
.login-field>i{width:50px;text-align:center;color:#8ba0b4;font-size:14px;pointer-events:none}
.login-field input{
  width:100%!important;
  height:100%;
  min-width:0;
  padding:0 47px 0 0!important;
  border:0!important;
  border-radius:14px!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#17304d;
  font:inherit;
  font-size:13px;
}
.login-field input::placeholder{color:#9aa9b8;opacity:1}
.login-password-toggle{position:absolute;right:7px;top:7px;width:40px!important;height:40px!important;display:grid;place-items:center;margin:0!important;padding:0!important;border:0!important;border-radius:10px!important;background:transparent!important;box-shadow:none!important;color:#91a2b4!important;cursor:pointer}
.login-password-toggle:hover{background:#f1f7fc!important;color:#3d79a9!important}
.login-options{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 1px 23px}
.login-remember{display:inline-flex;align-items:center;gap:9px;color:#65768a;font-size:11px;cursor:pointer;user-select:none}
.login-remember input{position:absolute;opacity:0;pointer-events:none}
.login-remember>span{width:19px;height:19px;display:grid;place-items:center;border:1px solid #c8d7e5;border-radius:6px;background:#fff;color:transparent;font-size:9px;transition:.18s}
.login-remember input:checked+span{border-color:#1f2937;background:#1f2937;color:#fff;box-shadow:0 4px 12px rgba(17,24,39,.18)}
.login-remember input:focus-visible+span{outline:3px solid rgba(31,41,55,.12)}
.login-remember b{font-weight:650}
.login-help{display:inline-flex;align-items:center;gap:5px;color:#92a1b0;font-size:10px}
.login-help i{color:#6b7280}
.login-submit{
  width:100%;
  min-height:53px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:15px;
  margin:0!important;
  padding:0 22px!important;
  border:0!important;
  border-radius:14px!important;
  background:linear-gradient(135deg,#374151,#1f2937)!important;
  box-shadow:0 12px 25px rgba(17,24,39,.18)!important;
  color:#fff!important;
  font:inherit;
  font-size:13px;
  font-weight:800!important;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.login-submit:hover{transform:translateY(-1px);filter:brightness(1.025);box-shadow:0 15px 31px rgba(17,24,39,.22)!important}
.login-submit i{font-size:12px;transition:transform .18s ease}.login-submit:hover i{transform:translateX(3px)}
.login-divider{display:flex;align-items:center;gap:12px;margin:26px 0 20px;color:#a6b2bd;font-size:10px}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:#e4ebf1}.login-divider span{padding:0 2px}
.login-admin-note{margin:0;text-align:center;color:#8997a6;font-size:10px;line-height:1.55}.login-admin-note strong{color:#1f2937;font-weight:750}

@media(max-width:980px){
  .login-stage{padding:24px}
  .login-card{grid-template-columns:minmax(320px,.88fr) minmax(380px,1.12fr);min-height:650px}
  .login-visual{padding:38px 36px 34px}.login-presentation{padding-top:50px}.login-presentation h1{font-size:48px}.login-benefits{grid-template-columns:1fr;gap:10px;padding-top:42px}.login-benefits>div{align-items:center}.login-benefits p br{display:none}.login-signature{display:none}
  .login-form-panel{padding:45px 40px}
}
@media(max-width:760px){
  .login-stage{padding:18px;align-items:center}
  .login-card{display:block;min-height:0;border-radius:22px}
  .login-visual{display:none}
  .login-form-panel{min-height:min(640px,calc(100vh - 36px));display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:34px 28px}
  .login-mobile-brand{display:flex;align-items:center;gap:11px;margin-bottom:42px;color:#0c3155}.login-mobile-brand .login-brand-mark{width:40px;height:40px;flex-basis:40px;border-radius:12px;font-size:21px}.login-mobile-brand strong{font-size:19px;letter-spacing:.14em}
  .login-form{width:100%;max-width:430px;margin:0 auto}.login-form-header h2{font-size:34px}.login-form-header{margin-bottom:26px}
}
@media(max-width:430px){
  .login-stage{padding:0;background:#fff}.login-card{border:0;border-radius:0;box-shadow:none}.login-form-panel{min-height:100vh;padding:30px 22px}.login-mobile-brand{margin-bottom:36px}.login-options{align-items:flex-start}.login-help{display:none}
}
@media (max-height:720px) and (min-width:761px){
  .login-stage{padding:18px}.login-card{min-height:0;height:min(650px,calc(100vh - 36px))}.login-visual{padding-top:32px;padding-bottom:28px}.login-presentation{padding-top:28px}.login-presentation h1{font-size:42px}.login-benefits{padding-top:28px}.login-form-panel{padding-top:28px;padding-bottom:28px}.login-form-header{margin-bottom:20px}.login-divider{margin:20px 0 16px}
}

/* Official NEXUS wordmark */
.login-brand{display:block}
.login-brand-logo{display:block;width:min(250px,72%);height:auto}
.login-mobile-brand{align-items:flex-start!important}
.login-mobile-brand img{display:block;width:164px;height:auto}
@media(max-width:760px){.login-mobile-brand{display:flex!important}.login-mobile-brand img{width:154px}}
@media(max-width:430px){.login-mobile-brand img{width:145px}}

/* Recuperacao de senha ---------------------------------------------------- */
.login-forgot{color:#4b5563;font-size:11px;font-weight:700;text-decoration:none;transition:color .18s ease}
.login-forgot:hover{color:#111827;text-decoration:underline}
.login-back-link{display:inline-flex;align-items:center;gap:7px;margin-top:22px;color:#4b5563;font-size:11px;font-weight:700;text-decoration:none}
.login-back-link:hover{color:#111827}
.login-message{margin:0 0 22px;padding:14px 15px;border:1px solid #d8e1ea;border-radius:12px;background:#f8fafc;color:#526174;font-size:12px;line-height:1.6}
.login-message.is-success{border-color:#cce5d5;background:#f4fbf6;color:#356344}
.login-field-errors{margin:-4px 0 13px;padding:0;color:#a94242;font-size:10px;line-height:1.45}
.login-form .errorlist{margin:0;padding:0;list-style:none}
.login-reset-actions{margin-top:18px;text-align:center}
