/* DM2 INTEGRA 1.0.002 — entrada empresarial exclusiva.
   Layout responsivo à janela útil; Android nativo já recebe systemBars/cutout
   em MainActivity. O teclado usa visualViewport e estado próprio. */
:root{
  --dm2-login-navy:#0d1c2d;
  --dm2-login-navy-2:#14283d;
  --dm2-login-teal:#61d3bf;
  --dm2-login-blue:#76aef2;
  --dm2-login-amber:#f2b052;
  --dm2-login-paper:#f8fafc;
  --dm2-login-ink:#132238;
  --dm2-login-muted:#6f7f92;
}
#view-login.dm2-login-corporate{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto;
  padding:0!important;
  margin:0!important;
  background:var(--dm2-login-paper)!important;
  color:var(--dm2-login-ink)!important;
  overflow:hidden!important;
}
#view-login.dm2-login-corporate.hidden{display:none!important;}
.dm2-login-hero{
  position:relative;
  min-height:0;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 76% 34%,rgba(249,196,126,.19),transparent 27%),
    linear-gradient(145deg,#071421 0%,#102237 50%,#0b1725 100%);
}
.dm2-login-architecture{
  position:absolute;
  inset:0;
  z-index:-2;
  overflow:hidden;
}
.dm2-login-architecture::before{
  content:"";
  position:absolute;
  inset:-8% -8% -10% 34%;
  clip-path:polygon(27% 0,100% 0,100% 100%,0 100%);
  background:
    repeating-linear-gradient(90deg,rgba(195,220,231,.10) 0 1px,transparent 1px 56px),
    repeating-linear-gradient(0deg,rgba(195,220,231,.08) 0 1px,transparent 1px 62px),
    linear-gradient(108deg,rgba(14,29,44,.86),rgba(23,43,62,.72) 54%,rgba(8,19,31,.93));
  transform:skewX(-8deg);
  box-shadow:-28px 0 80px rgba(0,0,0,.32);
}

.dm2-login-architecture::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(118deg,transparent 0 58%,rgba(255,202,132,.11) 58.3% 59%,transparent 59.3%),
    linear-gradient(118deg,transparent 0 69%,rgba(255,209,147,.13) 69.3% 70.2%,transparent 70.5%),
    radial-gradient(ellipse at 83% 64%,rgba(255,195,117,.18),transparent 20%),
    linear-gradient(to top,rgba(3,12,21,.48),transparent 42%);
}
.dm2-login-hero-content{
  position:relative;
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
  padding:clamp(22px,3.2vh,38px) clamp(22px,6vw,34px) clamp(18px,2.8vh,30px);
}
.dm2-login-brand-block{
  flex:0 0 auto;
  color:white;
  text-align:left!important;
  margin:0!important;
}
.dm2-login-symbol{
  position:relative;
  width:42px;
  height:32px;
  margin-bottom:12px;
}
.dm2-login-symbol span{
  position:absolute;
  width:7px;
  height:34px;
  border-radius:8px;
  transform:rotate(39deg);
  top:-2px;
}
.dm2-login-symbol span:first-child{left:9px;background:var(--dm2-login-teal);}
.dm2-login-symbol span:last-child{left:23px;background:linear-gradient(#aab6c3,#697889);}
.dm2-login-wordmark{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin:0;
  color:#fff!important;
  letter-spacing:-.035em;
  white-space:nowrap;
}
.dm2-login-wordmark strong{
  font-size:clamp(32px,8.7vw,48px);
  line-height:.95;
  font-weight:850;
}
.dm2-login-wordmark span{
  font-size:clamp(29px,7.6vw,44px);
  line-height:.95;
  font-weight:300;
  letter-spacing:.01em;
}
.dm2-login-accent-line{
  display:block;
  width:34px;
  height:3px;
  border-radius:3px;
  background:var(--dm2-login-teal);
  margin:14px 0 11px;
}
.dm2-login-brand-block>p{
  margin:0!important;
  color:rgba(244,248,251,.88)!important;
  font-size:clamp(13px,3.5vw,17px)!important;
  line-height:1.35!important;
  font-weight:450!important;
  letter-spacing:0!important;
}

.dm2-login-cards{
  flex:1 1 auto;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:12px;
  align-items:end;
  margin-top:clamp(14px,2.8vh,28px);
}
.dm2-login-card{
  min-width:0;
  color:#eef5fb;
  border:1px solid rgba(206,224,235,.40);
  border-radius:16px;
  background:linear-gradient(140deg,rgba(25,43,60,.78),rgba(17,31,47,.60));
  box-shadow:0 14px 32px rgba(0,0,0,.18);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
}
.dm2-login-card-title{
  display:grid;
  grid-template-columns:28px 1fr auto;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:11px 12px 9px;
}
.dm2-login-card-title svg{
  width:24px;
  height:24px;
  stroke-width:1.8;
  color:var(--dm2-login-teal);
}
.dm2-login-card-title strong{
  min-width:0;
  font-size:clamp(12px,3.2vw,15px);
  line-height:1.15;
  font-weight:720;
}
.dm2-login-card-title>span{
  font-size:20px;
  line-height:1;
  color:rgba(255,255,255,.78);
}
.dm2-login-card-modules{
  align-self:stretch;
  display:flex;
  flex-direction:column;
}
.dm2-login-card-modules ul{
  list-style:none;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  justify-content:space-evenly;
  margin:0 12px 12px;
  padding:3px 0 0;
  border-top:1px solid rgba(212,228,237,.28);
}
.dm2-login-card-modules li{
  display:grid;
  grid-template-columns:28px 1fr;
  align-items:center;
  gap:9px;
  min-height:39px;
  border-bottom:1px solid rgba(212,228,237,.20);
  font-size:clamp(11px,2.9vw,14px);
  color:rgba(242,247,250,.90);
}
.dm2-login-card-modules li:last-child{border-bottom:0;}
.dm2-login-card-modules li svg{
  width:19px;
  height:19px;
  color:#c8d6e5;
  stroke-width:1.7;
}
.dm2-login-card-stack{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-self:stretch;
  justify-content:flex-end;
}

.dm2-login-card-small{
  flex:1 1 0;
  display:flex;
  min-height:0;
  flex-direction:column;
  justify-content:center;
}
.dm2-login-card-small p{
  margin:0 12px 12px;
  padding-top:9px;
  border-top:1px solid rgba(212,228,237,.28);
  color:rgba(231,239,245,.78);
  font-size:clamp(10px,2.55vw,12px);
  line-height:1.35;
}
.dm2-login-card-small .dm2-login-card-title{grid-template-columns:24px 1fr auto;gap:7px;padding-left:10px;padding-right:10px;}
.dm2-login-card-small .dm2-login-card-title strong{font-size:clamp(11px,2.85vw,13px);white-space:nowrap;}
.dm2-login-card-small .dm2-login-card-title svg{width:21px;height:21px;}
.dm2-login-card-small:first-child .dm2-login-card-title svg{color:var(--dm2-login-blue);}
.dm2-login-card-small:last-child .dm2-login-card-title svg{color:var(--dm2-login-amber);}

#view-login>#login-access-panel.dm2-login-access-panel{
  box-sizing:border-box!important;
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  min-height:clamp(286px,36dvh,365px);
  margin:0!important;
  padding:clamp(24px,3.5vh,36px) 24px 52px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
  flex:0 0 auto!important;
  background:linear-gradient(#fbfcfd,#f7f9fb)!important;
  z-index:20!important;
}
.dm2-login-email-field{
  box-sizing:border-box;
  width:100%;
  max-width:360px;
  min-height:56px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 17px;
  border:1px solid #aebbc8;
  border-radius:17px;
  background:#fff;
  color:#2b4056;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.dm2-login-email-field:focus-within{
  border-color:#456b78;
  box-shadow:0 0 0 3px rgba(66,109,104,.12);
}
.dm2-login-email-field>svg{
  width:20px;
  height:20px;
  flex:0 0 auto;
  stroke-width:1.8;
}
.dm2-login-email-field>input{
  min-width:0;
  flex:1;
  height:54px;
  padding:0!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
  color:#24364a!important;
  font-size:16px!important;
  font-weight:500;
}
.dm2-login-email-field>input::placeholder{color:#a1acb8;opacity:1;}

#view-login>#login-access-panel .dm2-login-primary{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:360px!important;
  min-height:56px!important;
  display:grid!important;
  grid-template-columns:1fr auto;
  align-items:center!important;
  gap:12px;
  margin:0!important;
  padding:0 20px!important;
  border:0!important;
  border-radius:999px!important;
  background:linear-gradient(105deg,#0d1b2c,#152c43)!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:650!important;
  letter-spacing:.005em;
  box-shadow:0 8px 18px rgba(12,30,48,.12);
}
#view-login>#login-access-panel .dm2-login-primary>span{text-align:center;padding-left:22px;}
#view-login>#login-access-panel .dm2-login-primary>svg{width:20px;height:20px;stroke-width:1.8;}
#view-login>#login-access-panel .dm2-login-primary:disabled{
  opacity:.42!important;
  box-shadow:none!important;
}
#view-login>#login-access-panel .dm2-login-alternative{
  box-sizing:border-box!important;
  width:auto!important;
  max-width:none!important;
  min-height:44px!important;
  margin:-1px 0 0!important;
  padding:7px 8px!important;
  color:#17283c!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  font-size:13px!important;
  font-weight:570!important;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:6px;
}
.dm2-login-timer{
  min-height:0!important;
  margin:0!important;
  color:#31534f!important;
  font-size:11px!important;
  line-height:1.2;
  text-align:center;
}
.dm2-login-timer:empty{display:none!important;}
#view-login>.dm2-login-footer-brand{
  box-sizing:border-box!important;
  position:absolute!important;
  left:24px!important;
  right:24px!important;
  bottom:8px!important;
  z-index:25!important;
  height:22px!important;
  min-height:22px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  gap:14px;
  color:#65758a!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:600!important;
  letter-spacing:.16em!important;
  text-align:center!important;
}
#view-login>.dm2-login-footer-brand::before,
#view-login>.dm2-login-footer-brand::after{
  content:"";
  flex:1 1 auto;
  height:1px;
  background:#d3dae2;
}
#view-login>.dm2-login-footer-brand>span{white-space:nowrap;}
.dm2-login-keyboard-brand{display:none;}

/* Alturas menores: preserva informação essencial sem esmagar controles. */
@media (max-height:720px) and (orientation:portrait){
  #view-login>#login-access-panel.dm2-login-access-panel{
    min-height:270px;
    padding-top:20px!important;
    gap:9px!important;
  }
  .dm2-login-hero-content{padding-top:18px;padding-bottom:16px;}
  .dm2-login-symbol{transform:scale(.82);transform-origin:left center;margin-bottom:6px;}
  .dm2-login-wordmark strong{font-size:30px;}
  .dm2-login-wordmark span{font-size:27px;}
  .dm2-login-accent-line{margin:9px 0 7px;}
  .dm2-login-brand-block>p{font-size:12px!important;}
  .dm2-login-cards{gap:8px;margin-top:10px;}
  .dm2-login-card{border-radius:13px;}
  .dm2-login-card-title{padding:8px 9px 6px;min-height:34px;grid-template-columns:22px 1fr auto;gap:6px;}
  .dm2-login-card-title svg{width:19px;height:19px;}
  .dm2-login-card-modules ul{margin:0 9px 8px;}
  .dm2-login-card-modules li{min-height:31px;grid-template-columns:22px 1fr;gap:6px;font-size:10px;}
  .dm2-login-card-modules li svg{width:16px;height:16px;}
  .dm2-login-card-small p{margin:0 9px 8px;padding-top:6px;font-size:9px;}
  .dm2-login-card-stack{gap:7px;}
}

/* IME aberto: é uma composição diferente, orientada à tarefa de digitar. */
html.dm2-native-android body.dm2-keyboard-open #view-login.dm2-login-corporate{
  display:flex!important;
  flex-direction:column!important;
  height:var(--dm2-visual-viewport-height,100dvh)!important;
  max-height:var(--dm2-visual-viewport-height,100dvh)!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  background:#f8fafc!important;
}
html.dm2-native-android body.dm2-keyboard-open #view-login .dm2-login-hero{
  display:none!important;
}
html.dm2-native-android body.dm2-keyboard-open #login-keyboard-brand{
  box-sizing:border-box;
  display:flex!important;
  flex:0 0 auto;
  align-items:center;
  gap:12px;
  min-height:78px;
  padding:12px 24px 8px;
  color:var(--dm2-login-navy);
}
html.dm2-native-android body.dm2-keyboard-open #login-keyboard-brand .dm2-login-symbol{
  width:34px;
  height:28px;
  margin:0;
  transform:scale(.72);
  transform-origin:center;
}
html.dm2-native-android body.dm2-keyboard-open #login-keyboard-brand>div:last-child{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:baseline;
  column-gap:5px;
}
html.dm2-native-android body.dm2-keyboard-open #login-keyboard-brand strong{
  font-size:22px;
  line-height:1;
  font-weight:850;
}
html.dm2-native-android body.dm2-keyboard-open #login-keyboard-brand span{
  font-size:20px;
  line-height:1;
  font-weight:300;
}
html.dm2-native-android body.dm2-keyboard-open #login-keyboard-brand small{
  grid-column:1/-1;
  margin-top:4px;
  color:#738194;
  font-size:11px;
  font-weight:500;
}

html.dm2-native-android body.dm2-keyboard-open #view-login>#login-access-panel.dm2-login-access-panel{
  position:relative!important;
  inset:auto!important;
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  padding:8px 24px 14px!important;
  margin:0!important;
  display:flex!important;
  justify-content:flex-start!important;
  gap:9px!important;
  overflow-y:auto!important;
  scroll-padding:10px;
  background:#f8fafc!important;
}
html.dm2-native-android body.dm2-keyboard-open #view-login .dm2-login-email-field{
  flex:0 0 54px;
  min-height:54px;
}
html.dm2-native-android body.dm2-keyboard-open #view-login .dm2-login-primary{
  flex:0 0 52px!important;
  min-height:52px!important;
}
html.dm2-native-android body.dm2-keyboard-open #view-login .dm2-login-alternative{
  flex:0 0 44px!important;
}
html.dm2-native-android body.dm2-keyboard-open #view-login>.dm2-login-footer-brand{
  display:none!important;
}
html.dm2-native-android body.dm2-keyboard-compact #login-keyboard-brand{
  min-height:58px;
  padding-top:7px;
  padding-bottom:4px;
}
html.dm2-native-android body.dm2-keyboard-compact #login-keyboard-brand small{
  display:none;
}
html.dm2-native-android body.dm2-keyboard-compact #view-login>#login-access-panel.dm2-login-access-panel{
  padding-top:4px!important;
  padding-bottom:6px!important;
  gap:5px!important;
}
html.dm2-native-android body.dm2-keyboard-compact #view-login .dm2-login-email-field{
  flex-basis:50px;
  min-height:50px;
}
html.dm2-native-android body.dm2-keyboard-compact #view-login .dm2-login-email-field>input{height:48px;}
html.dm2-native-android body.dm2-keyboard-compact #view-login .dm2-login-primary{
  flex-basis:48px!important;
  min-height:48px!important;
}
html.dm2-native-android body.dm2-keyboard-compact #view-login .dm2-login-alternative{
  flex-basis:40px!important;
  min-height:40px!important;
}

/* Ações continuam com alvo recomendado mesmo quando o visual é compacto. */
#view-login button:focus-visible{
  outline:2px solid #4f7f78!important;
  outline-offset:3px!important;
}
#view-login .dm2-login-email-field>input:focus-visible{
  outline:0!important;
  outline-offset:0!important;
}
@media (prefers-reduced-motion:reduce){
  #view-login *,
  #view-login *::before,
  #view-login *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important;}
}


/* Restrições finais de largura/ordem: nenhum conteúdo pode ampliar a janela útil. */
#view-login.dm2-login-corporate,
#view-login .dm2-login-hero,
#view-login .dm2-login-hero-content,
#view-login .dm2-login-cards,
#view-login .dm2-login-card-stack,
#view-login>#login-access-panel.dm2-login-access-panel{
  width:100%;
  max-width:100%;
  min-width:0;
}
#view-login .dm2-login-cards,
#view-login .dm2-login-card-stack,
#view-login .dm2-login-card{overflow:hidden;}
#view-login .dm2-login-card-stack{min-width:0;}
#view-login .dm2-login-card-title strong{
  min-width:0;
  overflow-wrap:anywhere;
}
#view-login>#login-access-panel .dm2-login-email-field{order:1;}
#view-login>#login-access-panel .dm2-login-primary{order:2;}
#view-login>#login-access-panel .dm2-login-alternative{order:3;}
#view-login>#login-access-panel .dm2-login-timer{order:4;}
@media (max-width:390px){
  #view-login .dm2-login-card-title{
    grid-template-columns:22px minmax(0,1fr) 14px;
    gap:6px;
    padding-left:9px;
    padding-right:9px;
  }
  #view-login .dm2-login-card-title svg{width:19px;height:19px;}
  #view-login .dm2-login-card-small .dm2-login-card-title strong{font-size:11px;}
  #view-login .dm2-login-card-title>span{font-size:16px;}
}

/* O shell nativo já exclui as barras do sistema: teclado não ganha margem extra. */
html.dm2-native-android body.dm2-keyboard-open #view-login.dm2-login-corporate{
  padding:0!important;
}

/* Continuidade visual do fluxo de acesso, sem alterar regras ou navegação. */
:is(#view-email-signup,#view-otp,#view-onboarding,#view-pin,#view-biometric-signup){
  background:#f8fafc!important;
  color:var(--dm2-login-ink)!important;
}
:is(#view-email-signup,#view-otp,#view-onboarding,#view-pin,#view-biometric-signup)>h1{
  color:var(--dm2-login-navy)!important;
  -webkit-text-fill-color:currentColor!important;
  background:none!important;
  letter-spacing:.04em!important;
}
:is(#view-email-signup,#view-otp,#view-onboarding,#view-pin,#view-biometric-signup) .dm2-auth-heading h2,
#view-pin #pin-title{
  color:var(--dm2-login-navy)!important;
  -webkit-text-fill-color:currentColor!important;
  background:none!important;
}
:is(#view-email-signup,#view-otp,#view-onboarding,#view-biometric-signup) .dm2-auth-heading-icon{
  background:#e8f2f1!important;
  color:#356d67!important;
  border:1px solid #d0e3df!important;
}
:is(#view-email-signup,#view-otp,#view-onboarding,#view-biometric-signup) .dm2-auth-heading-icon svg,
#view-pin .text-brand-light{
  color:#356d67!important;
}
:is(#view-email-signup,#view-otp,#view-onboarding,#view-biometric-signup)>.dm2-auth-footer .dm2-auth-primary,
#view-pin button:not([aria-label]):not(#btn-forgot-pin):not(#btn-cancel-forgot-pin){
  background:linear-gradient(105deg,#0d1b2c,#152c43)!important;
  color:#fff!important;
  border-color:#152c43!important;
}
:is(#view-email-signup,#view-otp,#view-onboarding,#view-biometric-signup)>button[aria-label],
#view-pin>button[aria-label]{
  background:#eaf2f2!important;
  border-color:#cbdedb!important;
  color:#315b57!important;
}
:is(#view-email-signup,#view-otp,#view-onboarding,#view-biometric-signup,#view-pin) input{
  background:#fff!important;
  border-color:#b8c4cf!important;
  color:#203247!important;
}
:is(#view-email-signup,#view-otp,#view-onboarding,#view-biometric-signup,#view-pin) input:focus{
  border-color:#4d7773!important;
  box-shadow:0 0 0 3px rgba(66,109,104,.12)!important;
}

/* 1.0.003 — refinamento baseado em aparelho Android real. */
#view-login .dm2-login-cards{
  flex:0 0 auto;
  height:clamp(190px,25dvh,230px);
  min-height:190px;
  align-items:stretch;
  margin-top:auto;
  padding-top:clamp(12px,2.2vh,20px);
}
#view-login .dm2-login-card-modules,
#view-login .dm2-login-card-stack{height:100%;}
#view-login .dm2-login-card-modules ul{justify-content:space-around;}
#view-login .dm2-login-card-modules li{min-height:36px;}
#view-login .dm2-login-card-small p{margin-bottom:10px;}

html.dm2-native-android body.dm2-keyboard-open #view-login>#login-access-panel.dm2-login-access-panel{
  padding-top:14px!important;
  gap:14px!important;
}
html.dm2-native-android body.dm2-keyboard-open #login-keyboard-brand{
  min-height:84px;
  padding-top:14px;
  padding-bottom:10px;
}

/* PIN: teclado claro e calmo; o fundo escuro fica apenas no CTA principal do login. */
#view-pin .pin-btn{
  background:#eaf2f2!important;
  color:#315b57!important;
  border:1px solid #d0e3df!important;
  box-shadow:none!important;
}
#view-pin .pin-btn:active{
  background:#dbeae8!important;
  transform:scale(.96);
}
#view-pin .pin-btn[onclick*="removePinNumber"]{
  background:transparent!important;
  border-color:transparent!important;
  color:#64748b!important;
}
#view-pin .pin-dot{border-color:#76aaa3!important;background:transparent!important;}
#view-pin .pin-dot.filled{background:#9fc9c3!important;border-color:#9fc9c3!important;}
#view-pin #btn-forgot-pin{color:#60716f!important;}
