/*
 * Dra. Stefânia Pediatra — Login do aplicativo v0.63.2
 * Base funcional inspirada no login do Waléria Personal:
 * marca + login/senha + lembrar + entrar + erro, com redirecionamento por perfil.
 */

html:has(body.stefania-login-page){
  width:100%;
  min-height:100%;
  overflow-x:hidden;
}

body.stefania-login-page{
  margin:0!important;
  min-width:320px;
  min-height:100vh;
  overflow-x:hidden!important;
  background:#F0EDE6!important;
  font-family:"Lato",Arial,sans-serif!important;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  touch-action:pan-x pan-y;
  overscroll-behavior:none;
}

/* Login é uma tela do app, não uma página institucional do site. */
body.stefania-login-page #site-header,
body.stefania-login-page #site-footer,
body.stefania-login-page .site-header,
body.stefania-login-page .site-footer,
body.stefania-login-page .elementor-location-header,
body.stefania-login-page .elementor-location-footer{
  display:none!important;
}

body.stefania-login-page .site-main,
body.stefania-login-page main.site-main,
body.stefania-login-page .page-content,
body.stefania-login-page .entry-content,
body.stefania-login-page .elementor,
body.stefania-login-page .elementor-section,
body.stefania-login-page .elementor-container,
body.stefania-login-page .elementor-widget-wrap,
body.stefania-login-page .elementor-widget,
body.stefania-login-page .elementor-widget-container{
  max-width:none!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}

body.stefania-login-page .entry-title,
body.stefania-login-page .page-header{
  display:none!important;
}

.stef-auth,
.stef-auth *{
  box-sizing:border-box;
}

.stef-auth{
  --green:#4A8C84;
  --green-dark:#7A5230;
  --green-soft:rgba(74,140,132,.12);
  --nude:#E8BFB3;
  --cream:#F0EDE6;
  --paper:#F0EDE6;
  --ink:#2C2C2C;
  --muted:#66615D;
  --line:rgba(122,82,48,.16);
  width:100%;
  min-height:100vh;
  padding:clamp(20px,3vw,42px);
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 8%,rgba(28,83,63,.055),transparent 31%),
    var(--cream);
  color:var(--ink);
}

.stef-auth__shell{
  width:min(1160px,100%);
  min-height:min(720px,calc(100vh - 84px));
  display:grid;
  grid-template-columns:minmax(390px,.92fr) minmax(430px,1.08fr);
  overflow:hidden;
  border:1px solid rgba(28,83,63,.12);
  border-radius:28px;
  background:var(--paper);
  box-shadow:0 30px 80px rgba(25,55,42,.11);
}

.stef-auth__brand-panel{
  position:relative;
  min-width:0;
  padding:clamp(38px,5vw,66px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--green-dark);
  color:#fff;
}

.stef-auth__brand{
  position:relative;
  z-index:2;
  width:max-content;
  display:flex;
  align-items:baseline;
  gap:9px;
  color:#F0EDE6!important;
  text-decoration:none!important;
}

.stef-auth__brand strong{
  font-family:"Nunito",Arial,sans-serif;
  font-size:38px;
  line-height:.9;
  font-weight:600;
  letter-spacing:-.025em;
}

.stef-auth__brand span{
  font-size:9px;
  line-height:1;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.stef-auth__brand-copy{
  position:relative;
  z-index:2;
  margin:auto 0;
  padding:54px 0;
}

.stef-auth__eyebrow{
  margin:0 0 18px;
  color:#9dbca9;
  font-size:10px;
  line-height:1;
  font-weight:700;
  letter-spacing:.18em;
}

.stef-auth__brand-copy h1{
  max-width:470px;
  margin:0;
  color:#F0EDE6;
  font-family:"Nunito",Arial,sans-serif;
  font-size:clamp(48px,4.4vw,66px);
  line-height:.94;
  font-weight:600;
  letter-spacing:-.035em;
}

.stef-auth__brand-copy>p:last-child{
  max-width:430px;
  margin:24px 0 0;
  color:rgba(255,250,243,.72);
  font-size:13px;
  line-height:1.72;
}

.stef-auth__brand-note{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:13px;
  align-items:start;
}

.stef-auth__brand-note>span{
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.20);
  border-radius:50%;
  background:rgba(255,255,255,.07);
  color:#fff;
  font-size:12px;
  font-weight:700;
}

.stef-auth__brand-note p{
  margin:0;
  color:rgba(255,250,243,.66);
  font-size:10px;
  line-height:1.55;
}

.stef-auth__brand-note strong{
  color:#F0EDE6;
  font-size:11px;
}

.stef-auth__ornament{
  position:absolute;
  border:1px solid rgba(255,255,255,.075);
  border-radius:50%;
  pointer-events:none;
}

.stef-auth__ornament--one{
  width:420px;
  height:420px;
  right:-250px;
  top:-185px;
}

.stef-auth__ornament--two{
  width:260px;
  height:260px;
  left:-165px;
  bottom:-120px;
}

.stef-auth__form-panel{
  min-width:0;
  padding:clamp(38px,5vw,68px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:var(--paper);
}

.stef-auth__form-inner{
  width:min(470px,100%);
  margin:auto;
}

.stef-auth__form-head h2{
  margin:0;
  color:var(--green);
  font-family:"Nunito",Arial,sans-serif;
  font-size:46px;
  line-height:.98;
  font-weight:600;
  letter-spacing:-.03em;
}

.stef-auth__form-head>p:last-child{
  margin:13px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}

.stef-auth__error{
  margin-top:24px;
  padding:13px 14px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:11px;
  align-items:center;
  border:1px solid rgba(148,70,58,.16);
  border-radius:11px;
  background:#f7ece8;
}

.stef-auth__error>span{
  width:27px;
  height:27px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#955047;
  color:#fff;
  font-size:11px;
  font-weight:700;
}

.stef-auth__error p{
  margin:0;
  color:#74453e;
  font-size:11px;
  line-height:1.5;
  font-weight:600;
}

.stef-auth__form{
  margin-top:30px;
  display:grid;
  gap:19px;
}

.stef-auth__field{
  display:block;
}

.stef-auth__field>span{
  display:block;
  margin-bottom:8px;
  color:#34463d;
  font-size:11px;
  line-height:1;
  font-weight:700;
}

.stef-auth__field input{
  width:100%;
  min-height:52px;
  padding:12px 14px;
  border:1px solid rgba(28,83,63,.17);
  border-radius:10px;
  outline:none;
  background:#F7F4EF;
  color:var(--ink);
  font-size:16px; /* evita zoom automático de foco no iOS */
  line-height:1.25;
  box-shadow:none;
  -webkit-appearance:none;
  appearance:none;
}

.stef-auth__field input:focus{
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(28,83,63,.08);
}

.stef-auth__password{
  position:relative;
}

.stef-auth__password input{
  padding-right:82px;
}

.stef-auth__password-toggle{
  position:absolute;
  top:50%;
  right:7px;
  min-width:68px;
  min-height:38px;
  padding:7px 8px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--green);
  font-size:10px;
  line-height:1;
  font-weight:700;
  cursor:pointer;
}

.stef-auth__password-toggle:hover,
.stef-auth__password-toggle:focus{
  background:var(--green-soft);
  color:var(--green-dark);
  outline:none;
}

.stef-auth__remember{
  width:max-content;
  max-width:100%;
  display:flex;
  align-items:center;
  gap:9px;
  color:#65736c;
  font-size:11px;
  line-height:1.4;
  cursor:pointer;
}

.stef-auth__remember input{
  width:17px;
  height:17px;
  margin:0;
  accent-color:var(--green);
}

.stef-auth__submit{
  width:100%;
  min-height:54px;
  margin-top:2px;
  padding:13px 17px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:1px solid var(--green);
  border-radius:10px;
  background:var(--green);
  color:#fff;
  font-size:13px;
  line-height:1;
  font-weight:700;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}

.stef-auth__submit:hover,
.stef-auth__submit:focus{
  background:var(--green-dark);
  border-color:var(--green-dark);
  transform:translateY(-1px);
  outline:none;
}

.stef-auth__support{
  max-width:420px;
  margin:24px 0 0;
  color:#87928c;
  font-size:9px;
  line-height:1.55;
  text-align:center;
}

.stef-auth__footer{
  width:min(470px,100%);
  margin:46px auto 0;
  padding-top:17px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--line);
  color:#9aa39e;
  font-size:8px;
  line-height:1.4;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
}

/* Notebook e tablet em landscape mantêm a composição de duas colunas. */
@media(max-width:920px){
  .stef-auth{
    padding:22px;
  }

  .stef-auth__shell{
    grid-template-columns:minmax(310px,.88fr) minmax(390px,1.12fr);
    min-height:650px;
  }

  .stef-auth__brand-panel,
  .stef-auth__form-panel{
    padding:38px;
  }

  .stef-auth__brand-copy h1{
    font-size:49px;
  }

  .stef-auth__form-head h2{
    font-size:41px;
  }
}

/* Tablet estreito e celular: formulário vira foco principal. */
@media(max-width:740px){
  body.stefania-login-page{
    min-height:100%;
  }

  .stef-auth{
    min-height:100vh;
    padding:0;
    display:block;
    background:var(--paper);
  }

  .stef-auth__shell{
    width:100%;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    border:0;
    border-radius:0;
    box-shadow:none;
  }

  .stef-auth__brand-panel{
    min-height:215px;
    padding:28px 22px 30px;
  }

  .stef-auth__brand-copy{
    margin:34px 0 0;
    padding:0;
  }

  .stef-auth__brand-copy h1{
    max-width:390px;
    font-size:40px;
  }

  .stef-auth__brand-copy>p:last-child{
    display:none;
  }

  .stef-auth__brand-note{
    display:none;
  }

  .stef-auth__brand strong{
    font-size:32px;
  }

  .stef-auth__form-panel{
    flex:1 1 auto;
    padding:34px 22px 24px;
  }

  .stef-auth__form-inner{
    width:100%;
    max-width:480px;
  }

  .stef-auth__form-head h2{
    font-size:39px;
  }

  .stef-auth__form{
    margin-top:26px;
  }

  .stef-auth__footer{
    margin-top:34px;
    padding-bottom:4px;
    font-size:7px;
  }
}

@media(max-width:430px){
  .stef-auth__brand-panel{
    min-height:195px;
  }

  .stef-auth__brand-copy{
    margin-top:28px;
  }

  .stef-auth__brand-copy h1{
    font-size:36px;
  }

  .stef-auth__form-panel{
    padding-top:30px;
  }

  .stef-auth__form-head h2{
    font-size:36px;
  }

  .stef-auth__footer{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
}

@media(prefers-reduced-motion:reduce){
  .stef-auth__submit{
    transition:none!important;
  }
}


/* v0.63.3 — CTA em destaque para conhecer o site */
.stef-auth__site-link{
  width:100%;
  min-height:64px;
  margin-top:14px;
  padding:12px 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:1px solid rgba(28,83,63,.19);
  border-radius:11px;
  background:#e9f0eb;
  color:#4A8C84!important;
  text-decoration:none!important;
  transition:
    background .18s ease,
    border-color .18s ease,
    transform .18s ease;
}

.stef-auth__site-link>span:first-child{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.stef-auth__site-link small{
  color:#789086;
  font-size:7px;
  line-height:1;
  font-weight:700;
  letter-spacing:.15em;
}

.stef-auth__site-link strong{
  color:#4A8C84;
  font-size:13px;
  line-height:1.2;
  font-weight:700;
}

.stef-auth__site-link>span:last-child{
  width:34px;
  height:34px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#4A8C84;
  color:#fff;
  font-size:13px;
}

.stef-auth__site-link:hover,
.stef-auth__site-link:focus{
  background:#dce8e0;
  border-color:rgba(28,83,63,.30);
  color:#4A8C84!important;
  transform:translateY(-1px);
  outline:none;
}

@media(prefers-reduced-motion:reduce){
  .stef-auth__site-link{
    transition:none!important;
  }
}


/* v0.64.0 — Login com identidade oficial */
body.stefania-login-page{
  background:#F0EDE6!important;
  font-family:"Lato",Arial,sans-serif!important;
}

.stef-auth{
  --green:#4A8C84!important;
  --green-dark:#7A5230!important;
  --nude:#E8BFB3!important;
  --cream:#F0EDE6!important;
  --paper:#F0EDE6!important;
  --ink:#2C2C2C!important;
  background:#F0EDE6!important;
  color:#2C2C2C!important;
  font-family:"Lato",Arial,sans-serif!important;
}

.stef-auth__shell{
  background:#F0EDE6!important;
  border-color:rgba(122,82,48,.15)!important;
}

.stef-auth__brand-panel{
  background:#4A8C84!important;
}

.stef-auth__brand{
  align-items:flex-start!important;
  flex-direction:column!important;
  gap:7px!important;
}

.stef-auth__brand strong{
  max-width:380px;
  color:#F0EDE6!important;
  font-family:"Nunito",Arial,sans-serif!important;
  font-size:28px!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
}

.stef-auth__brand span{
  max-width:360px;
  color:rgba(240,237,230,.82)!important;
  font-family:"Lato",Arial,sans-serif!important;
  font-size:7px!important;
  line-height:1.45!important;
  font-weight:700!important;
  letter-spacing:.16em!important;
}

.stef-auth__brand-copy h1,
.stef-auth__form-head h2{
  font-family:"Nunito",Arial,sans-serif!important;
  font-weight:800!important;
}

.stef-auth__eyebrow{
  color:#F0EDE6!important;
  font-family:"Lato",Arial,sans-serif!important;
  font-weight:700!important;
  letter-spacing:.16em!important;
}

.stef-auth__form-panel{
  background:#F0EDE6!important;
}

.stef-auth__field input{
  background:#F7F4EF!important;
  color:#2C2C2C!important;
}

.stef-auth__submit{
  background:#4A8C84!important;
  border-color:#4A8C84!important;
}

.stef-auth__submit:hover,
.stef-auth__submit:focus{
  background:#7A5230!important;
  border-color:#7A5230!important;
}

.stef-auth__site-link{
  background:rgba(232,191,179,.34)!important;
  border-color:rgba(122,82,48,.18)!important;
  color:#2C2C2C!important;
}

.stef-auth__site-link strong{
  color:#7A5230!important;
}

.stef-auth__site-link>span:last-child{
  background:#7A5230!important;
}

.stef-auth__brand-arc{
  position:absolute;
  right:0;
  bottom:0;
  width:150px;
  height:112px;
  opacity:.98;
}


/* v0.64.1 — detalhes de identidade no login */
.stef-auth__brand-panel::after{
  content:"";
  position:absolute;
  width:310px;
  height:310px;
  left:-92px;
  bottom:-118px;
  opacity:.065;
  background:url("../img/brand/monogram-sr-cream-fallback.svg") center/contain no-repeat;
  pointer-events:none;
}

.stef-auth__brand-arc{
  z-index:2;
}

.stef-auth__form-head h2{
  color:#4A8C84!important;
}

.stef-auth__form-head .stef-auth__eyebrow{
  color:#7A5230!important;
}

.stef-auth__remember input{
  accent-color:#4A8C84!important;
}

.stef-auth__password-toggle{
  color:#4A8C84!important;
}

.stef-auth__password-toggle:hover{
  background:rgba(74,140,132,.10)!important;
}


/* v0.64.2 — escala mais singela no login */
.stef-auth__brand-copy h1{
  max-width:520px!important;
  font-size:clamp(40px,3.45vw,54px)!important;
  line-height:1.02!important;
  letter-spacing:-.028em!important;
}

.stef-auth__form-head h2{
  font-size:38px!important;
  line-height:1.03!important;
}

@media(max-width:740px){
  .stef-auth__brand-copy h1{
    font-size:36px!important;
  }

  .stef-auth__form-head h2{
    font-size:34px!important;
  }
}


/* v0.78.2 — Login: textos auxiliares legíveis */
.stef-auth p,.stef-auth label,.stef-auth__remember{font-size:13px!important;line-height:1.5!important}
.stef-auth small,.stef-auth__brand span,.stef-auth__footer{font-size:11px!important;line-height:1.4!important}
.stef-auth__password-toggle{font-size:12px!important}
@media(max-width:740px){
 .stef-auth p,.stef-auth label,.stef-auth__remember{font-size:14px!important}
 .stef-auth small,.stef-auth__brand span,.stef-auth__footer{font-size:12px!important}
 .stef-auth__field input{font-size:16px!important;min-height:48px!important}
 .stef-auth__submit{font-size:14px!important;min-height:52px!important}
}

/* v0.79.1 — Login mobile centralizado */
@media(max-width:740px){
  .stef-auth,
  .stef-auth__brand,
  .stef-auth__panel,
  .stef-auth__intro{
    text-align:center!important;
  }
  .stef-auth h1,
  .stef-auth h2,
  .stef-auth p,
  .stef-auth small{
    margin-left:auto!important;
    margin-right:auto!important;
    text-align:center!important;
  }
  .stef-auth label,
  .stef-auth__remember{
    text-align:center!important;
  }
  .stef-auth input{
    text-align:left!important;
  }
}


/* ==========================================================
   v0.79.4 — botão Mostrar dentro do campo de senha
   ========================================================== */
.stef-auth__password{
  position:relative!important;
}
.stef-auth__password input{
  padding-right:88px!important;
}
.stef-auth__password-toggle{
  position:absolute!important;
  right:14px!important;
  top:50%!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  min-width:auto!important;
  min-height:34px!important;
  padding:4px 7px!important;
  border:0!important;
  background:transparent!important;
  color:#4A8C84!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1!important;
  z-index:2;
}
.stef-auth__password-toggle:hover,
.stef-auth__password-toggle:focus{
  background:rgba(74,140,132,.08)!important;
  border-radius:7px!important;
}

/* v0.81.0 — recuperação de senha visível na área de login */
.stef-auth__login-options{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:2px}
.stef-auth__login-options .stef-auth__remember{margin:0}
.stef-auth__forgot{color:#4A8C84!important;font-size:12px;font-weight:700;text-decoration:none!important;white-space:nowrap}
.stef-auth__forgot:hover,.stef-auth__forgot:focus{text-decoration:underline!important;color:#7A5230!important}
@media(max-width:520px){.stef-auth__login-options{align-items:flex-start;flex-direction:column;gap:10px}.stef-auth__forgot{align-self:center}}
