
:root{
  --emg-navy:#14213d;
  --emg-blue:#2657b8;
  --emg-teal:#178a87;
  --emg-green:#18b663;
  --emg-text:#0f1f3c;
  --emg-muted:#6b7891;
  --emg-line:#dfe5ef;
  --emg-bg:#eef3f8;
  --emg-danger:#c62828;
}

*{
  box-sizing:border-box;
}

html,
body{
  width:100%;
  min-height:100%;
  margin:0;
}

body{
  font-family:
    Inter,
    "Segoe UI",
    Arial,
    sans-serif;
}

button,
input{
  font:inherit;
}

.emg-login-body{
  min-height:100vh;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(
      circle at 85% 15%,
      rgba(24,182,99,.22),
      transparent 28%
    ),
    linear-gradient(
      120deg,
      #101a31 0%,
      #244b9c 56%,
      #14807e 100%
    );
}

.emg-login-shell{
  width:min(1040px,100%);
  min-height:590px;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  overflow:hidden;
  border-radius:28px;
  background:#fff;
  box-shadow:
    0 35px 90px rgba(7,18,44,.34);
}

.emg-login-hero{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  padding:64px;
  color:#fff;
  background:
    linear-gradient(
      145deg,
      rgba(17,33,75,.98),
      rgba(38,87,184,.94) 58%,
      rgba(23,138,135,.9)
    );
}

.emg-login-hero::before,
.emg-login-hero::after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.07);
}

.emg-login-hero::before{
  width:330px;
  height:330px;
  right:-130px;
  top:-120px;
}

.emg-login-hero::after{
  width:220px;
  height:220px;
  left:-80px;
  bottom:-95px;
}

.emg-login-hero-content{
  position:relative;
  z-index:2;
}

.emg-login-brand-icon{
  width:66px;
  height:66px;
  display:grid;
  place-items:center;
  border-radius:20px;
  font-size:36px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(10px);
}

.emg-login-eyebrow{
  display:inline-block;
  margin-top:28px;
  padding:7px 12px;
  border-radius:999px;
  color:#daf9e8;
  background:rgba(24,182,99,.2);
  font-size:12px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.emg-login-hero h1{
  margin:18px 0 10px;
  font-size:46px;
  line-height:1.05;
  letter-spacing:-.035em;
}

.emg-login-hero p{
  max-width:520px;
  margin:0;
  color:#dce7ff;
  font-size:18px;
  line-height:1.55;
}

.emg-login-line{
  width:82px;
  height:5px;
  margin:28px 0;
  border-radius:999px;
  background:#21d678;
}

.emg-login-features{
  display:grid;
  gap:10px;
  margin-bottom:38px;
}

.emg-login-features span{
  color:#f4f7ff;
  font-size:14px;
  font-weight:700;
}

.emg-login-hero small{
  color:#beccea;
  font-size:12px;
}

.emg-login-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:48px;
  background:#fff;
}

.emg-login-title{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:32px;
}

.emg-login-mini-logo{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:#fff;
  background:linear-gradient(
    135deg,
    #244fa8,
    #3473dc
  );
  font-weight:900;
  box-shadow:0 8px 18px rgba(38,87,184,.22);
}

.emg-login-title strong{
  display:block;
  color:var(--emg-text);
  font-size:20px;
}

.emg-login-title small{
  display:block;
  margin-top:3px;
  color:var(--emg-muted);
  font-size:12px;
}

.emg-login-welcome h2{
  margin:0;
  color:var(--emg-text);
  font-size:28px;
}

.emg-login-welcome p{
  margin:7px 0 25px;
  color:var(--emg-muted);
  font-size:14px;
}

.emg-login-alert{
  margin-bottom:18px;
  padding:13px 14px;
  border:1px solid #ffc9c9;
  border-radius:12px;
  color:var(--emg-danger);
  background:#fff1f1;
  font-size:13px;
  font-weight:700;
}

.emg-login-form label{
  display:block;
  margin:15px 0 7px;
  color:var(--emg-text);
  font-size:13px;
  font-weight:800;
}

.emg-login-input{
  display:flex;
  align-items:center;
  min-height:48px;
  overflow:hidden;
  border:1px solid var(--emg-line);
  border-radius:13px;
  background:#fbfcfe;
  transition:.18s ease;
}

.emg-login-input:focus-within{
  border-color:#3971d3;
  box-shadow:0 0 0 4px rgba(38,87,184,.11);
  background:#fff;
}

.emg-login-input > span{
  padding-left:14px;
  font-size:17px;
}

.emg-login-input input{
  width:100%;
  min-width:0;
  height:48px;
  border:0;
  outline:0;
  padding:0 13px;
  color:var(--emg-text);
  background:transparent;
}

.emg-password-toggle{
  width:48px;
  height:48px;
  border:0;
  cursor:pointer;
  background:transparent;
}

.emg-login-remember{
  display:flex!important;
  align-items:center;
  gap:9px;
  margin:15px 0!important;
  color:var(--emg-muted)!important;
  font-size:12px!important;
  font-weight:600!important;
  cursor:pointer;
}

.emg-login-remember input{
  width:16px;
  height:16px;
  accent-color:#285dc1;
}

.emg-login-button{
  width:100%;
  height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  border:0;
  border-radius:13px;
  cursor:pointer;
  color:#fff;
  background:linear-gradient(
    135deg,
    #244fa8,
    #2f68cf
  );
  font-weight:800;
  box-shadow:0 12px 23px rgba(38,87,184,.23);
  transition:.18s ease;
}

.emg-login-button:hover{
  transform:translateY(-1px);
  box-shadow:0 15px 28px rgba(38,87,184,.3);
}

.emg-login-status{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin-top:22px;
  color:#198754;
  font-size:12px;
  font-weight:800;
}

.emg-login-status i{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#24c96b;
  box-shadow:0 0 0 5px rgba(36,201,107,.12);
}

.emg-login-hint{
  margin:10px 0 0;
  text-align:center;
  color:#94a0b3;
  font-size:11px;
}

/* Notebook */
@media(max-width:1050px){
  .emg-login-shell{
    width:min(920px,100%);
  }

  .emg-login-hero{
    padding:50px;
  }

  .emg-login-card{
    padding:40px;
  }
}

/* Tablet */
@media(max-width:820px){
  .emg-login-body{
    padding:18px;
  }

  .emg-login-shell{
    width:min(560px,100%);
    min-height:auto;
    grid-template-columns:1fr;
  }

  .emg-login-hero{
    padding:30px 34px;
  }

  .emg-login-brand-icon{
    width:52px;
    height:52px;
    font-size:29px;
  }

  .emg-login-eyebrow{
    margin-top:18px;
  }

  .emg-login-hero h1{
    font-size:34px;
    margin-top:13px;
  }

  .emg-login-hero p{
    font-size:14px;
  }

  .emg-login-line{
    margin:18px 0;
  }

  .emg-login-features{
    display:none;
  }

  .emg-login-card{
    padding:34px;
  }
}

/* Celular */
@media(max-width:560px){
  .emg-login-body{
    display:block;
    padding:0;
    background:#fff;
  }

  .emg-login-shell{
    width:100%;
    min-height:100vh;
    min-height:100dvh;
    border-radius:0;
    box-shadow:none;
  }

  .emg-login-hero{
    min-height:220px;
    padding:
      max(28px,env(safe-area-inset-top))
      24px
      28px;
  }

  .emg-login-brand-icon{
    width:48px;
    height:48px;
    border-radius:15px;
    font-size:27px;
  }

  .emg-login-eyebrow{
    font-size:10px;
  }

  .emg-login-hero h1{
    font-size:30px;
  }

  .emg-login-hero p{
    font-size:13px;
    line-height:1.45;
  }

  .emg-login-line{
    width:62px;
    height:4px;
    margin:15px 0;
  }

  .emg-login-card{
    justify-content:flex-start;
    padding:28px 22px
      max(28px,env(safe-area-inset-bottom));
  }

  .emg-login-title{
    margin-bottom:24px;
  }

  .emg-login-mini-logo{
    width:46px;
    height:46px;
    border-radius:13px;
    font-size:14px;
  }

  .emg-login-title strong{
    font-size:17px;
  }

  .emg-login-welcome h2{
    font-size:25px;
  }
}

/* Celular baixo */
@media(max-height:700px) and (max-width:560px){
  .emg-login-hero{
    min-height:170px;
    padding-top:20px;
    padding-bottom:20px;
  }

  .emg-login-hero p,
  .emg-login-hero small{
    display:none;
  }

  .emg-login-line{
    margin-bottom:0;
  }

  .emg-login-card{
    padding-top:22px;
  }
}
