/* ==========================================================================
   INDUSCORE — LOGIN V1 — 2026-08-25
   Camada de apresentação. Não altera autenticação.
   Carregar depois de ui-kit.css e induscore-ui.css.
   ========================================================================== */

body.ic-login-page{
  min-height:100vh;
  margin:0;
  padding:var(--s-6);
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 8% 12%,var(--brand-100),transparent 26rem),
    radial-gradient(circle at 92% 88%,var(--accent-100),transparent 30rem),
    var(--bg);
  color:var(--text);
  overflow-x:hidden;
}

.ic-login-shell{
  width:min(1080px,100%);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--s-5);
  align-items:stretch;
}

.ic-login-panel{
  min-width:0;
  min-height:520px;
  border:1px solid var(--border);
  border-radius:var(--r-xl);
  box-shadow:var(--sh-2);
  box-sizing:border-box;
}

.ic-login-brand-panel{
  padding:clamp(var(--s-7),5vw,var(--s-10));
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:var(--s-8);
  background:
    linear-gradient(145deg,var(--brand-900),var(--brand-700));
  color:var(--text-inv);
  border-color:transparent;
  position:relative;
  overflow:hidden;
}

.ic-login-brand-panel::after{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  border-radius:var(--r-full);
  right:-90px;
  bottom:-90px;
  background:rgba(255,255,255,.07);
  pointer-events:none;
}

.ic-login-brand{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:var(--s-5);
  align-items:flex-start;
}

.ic-login-logo-wrap{
  width:112px;
  height:112px;
  border-radius:28px;
  background:rgba(255,255,255,.96);
  box-shadow:var(--sh-2);
  display:grid;
  place-items:center;
  overflow:hidden;
}

.ic-login-logo{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.ic-login-brand-panel .ic-login-tenant{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.22);
  color:var(--text-inv);
}

.ic-login-product{
  margin:var(--s-3) 0 0;
  font-size:clamp(2.15rem,5vw,3.25rem);
  line-height:1;
  color:var(--text-inv);
  letter-spacing:-.035em;
}

.ic-login-tagline{
  max-width:34rem;
  margin:var(--s-3) 0 0;
  font-size:var(--t-lg);
  line-height:var(--lh-lg);
  color:rgba(255,255,255,.82);
}

.ic-login-context{
  position:relative;
  z-index:1;
  padding-top:var(--s-5);
  border-top:1px solid rgba(255,255,255,.16);
}

.ic-login-context strong{
  display:block;
  font-size:var(--t-lg);
}

.ic-login-context p{
  margin:var(--s-2) 0 0;
  color:rgba(255,255,255,.72);
  line-height:var(--lh-md);
}

.ic-login-access-panel{
  background:var(--surface);
  padding:clamp(var(--s-7),5vw,var(--s-10));
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.ic-login-access-head{
  margin-bottom:var(--s-6);
}

.ic-login-kicker{
  display:inline-block;
  margin-bottom:var(--s-2);
  color:var(--brand-700);
  font-size:var(--t-xs);
  font-weight:var(--w-semibold);
  text-transform:uppercase;
  letter-spacing:.08em;
}

.ic-login-access-head h2{
  margin:0;
  font-size:clamp(1.7rem,3vw,2.25rem);
  line-height:1.15;
  color:var(--text);
}

.ic-login-access-head p{
  margin:var(--s-2) 0 0;
  color:var(--text-2);
}

.ic-login-message{
  margin-bottom:var(--s-5);
}

.ic-login-form{
  display:flex;
  flex-direction:column;
  gap:var(--s-4);
}

.ic-login-form .field{
  margin:0;
}

.ic-login-form .input{
  width:100%;
}

.ic-login-submit{
  width:100%;
  min-height:48px;
  margin-top:var(--s-2);
}

.ic-login-footnote{
  margin:var(--s-5) 0 0;
  color:var(--text-3);
  font-size:var(--t-xs);
  line-height:var(--lh-xs);
  text-align:center;
}

@media(max-width:820px){
  body.ic-login-page{
    place-items:start center;
    padding:var(--s-4);
  }

  .ic-login-shell{
    grid-template-columns:1fr;
    max-width:620px;
  }

  .ic-login-panel{
    min-height:0;
  }

  .ic-login-brand-panel{
    min-height:300px;
  }

  .ic-login-logo-wrap{
    width:88px;
    height:88px;
    border-radius:22px;
  }
}

@media(max-width:480px){
  body.ic-login-page{
    padding:var(--s-3);
  }

  .ic-login-brand-panel,
  .ic-login-access-panel{
    padding:var(--s-6);
    border-radius:var(--r-lg);
  }

  .ic-login-brand-panel{
    min-height:260px;
  }

  .ic-login-context{
    display:none;
  }

  .ic-login-submit{
    min-height:48px;
  }
}

/* ==========================================================================
   HOTFIX 2026-08-25C — LOGIN POLISH
   Escopo: somente apresentação do login publicado.
   ========================================================================== */

body.ic-login-page{
  padding:clamp(16px,3vw,28px)!important;
  place-items:center!important;
}
body.ic-login-page .ic-login-shell{
  width:min(1120px,100%)!important;
  gap:clamp(14px,2vw,22px)!important;
  align-items:stretch!important;
}
body.ic-login-page .ic-login-panel{
  min-height:460px!important;
}
body.ic-login-page .ic-login-brand-panel{
  padding:clamp(24px,3vw,38px)!important;
  gap:24px!important;
  justify-content:flex-start!important;
}
body.ic-login-page .ic-login-brand{
  gap:18px!important;
}
body.ic-login-page .ic-login-logo-wrap{
  width:104px!important;
  height:104px!important;
  border-radius:26px!important;
}
body.ic-login-page .ic-login-product{
  margin:10px 0 0!important;
  font-size:clamp(2.35rem,4.4vw,3.25rem)!important;
}
body.ic-login-page .ic-login-tagline{
  max-width:26rem!important;
  margin-top:10px!important;
  font-size:1rem!important;
  line-height:1.45!important;
}
body.ic-login-page .ic-login-context{
  margin-top:auto!important;
  padding-top:18px!important;
}
body.ic-login-page .ic-login-context strong{
  font-size:1.08rem!important;
}
body.ic-login-page .ic-login-context p{
  margin-top:8px!important;
}
body.ic-login-page .ic-login-access-panel{
  padding:clamp(24px,3vw,38px)!important;
}
body.ic-login-page .ic-login-access-head{
  margin-bottom:22px!important;
}
body.ic-login-page .ic-login-form{
  gap:14px!important;
}
body.ic-login-page .ic-login-form .input{
  min-height:54px!important;
}
body.ic-login-page .ic-login-submit{
  min-height:50px!important;
  margin-top:4px!important;
}
body.ic-login-page .ic-login-footnote{
  margin-top:18px!important;
}

@media(max-width:980px){
  body.ic-login-page .ic-login-shell{
    width:min(760px,100%)!important;
  }
}

@media(max-width:820px){
  body.ic-login-page .ic-login-panel{
    min-height:0!important;
  }
  body.ic-login-page .ic-login-brand-panel{
    min-height:280px!important;
  }
}

@media(max-height:760px){
  body.ic-login-page .ic-login-panel{
    min-height:420px!important;
  }
  body.ic-login-page .ic-login-brand-panel,
  body.ic-login-page .ic-login-access-panel{
    padding:22px!important;
  }
  body.ic-login-page .ic-login-product{
    font-size:clamp(2rem,4vw,2.8rem)!important;
  }
}


/* ==========================================================================
   M10B — LOGIN MOBILE + FEEDBACK DE CREDENCIAIS
   Ajuste incremental conforme UI Kit: mantém autenticação e rate limit.
   ========================================================================== */
.ic-login-form .field.is-error .input{
  border-color:var(--err-600);
}
.ic-login-form .error-msg{
  margin-top:var(--s-1);
}

@media(max-width:480px){
  body.ic-login-page .ic-login-brand-panel{
    min-height:0!important;
    gap:var(--s-5)!important;
  }
  body.ic-login-page .ic-login-context{
    display:block!important;
    margin-top:0!important;
    padding-top:var(--s-4)!important;
  }
  body.ic-login-page .ic-login-context strong{
    font-size:var(--t-md)!important;
    line-height:var(--lh-md)!important;
  }
  body.ic-login-page .ic-login-context p{
    margin-top:var(--s-1)!important;
    font-size:var(--t-sm)!important;
    line-height:var(--lh-sm)!important;
  }
}

/* ========================================================================== 
   M10D — LOGIN MOBILE COMPACTO
   Mantém desktop; no celular prioriza o formulário sem rolagem desnecessária.
   ========================================================================== */
@media(max-width:480px){
  body.ic-login-page{
    min-height:100dvh!important;
    padding:var(--s-2)!important;
    place-items:start center!important;
  }
  body.ic-login-page .ic-login-shell{
    gap:var(--s-2)!important;
    width:100%!important;
  }
  body.ic-login-page .ic-login-brand-panel,
  body.ic-login-page .ic-login-access-panel{
    padding:var(--s-4)!important;
    border-radius:var(--r-md)!important;
  }
  body.ic-login-page .ic-login-brand-panel{
    min-height:0!important;
    gap:var(--s-3)!important;
  }
  body.ic-login-page .ic-login-brand{
    gap:var(--s-3)!important;
  }
  body.ic-login-page .ic-login-logo-wrap{
    width:72px!important;
    height:72px!important;
    border-radius:var(--r-lg)!important;
  }
  body.ic-login-page .ic-login-product{
    margin-top:var(--s-2)!important;
    font-size:var(--t-2xl)!important;
    line-height:var(--lh-2xl)!important;
  }
  body.ic-login-page .ic-login-tagline{
    margin-top:var(--s-1)!important;
    font-size:var(--t-sm)!important;
    line-height:var(--lh-sm)!important;
  }
  body.ic-login-page .ic-login-context{
    display:none!important;
  }
  body.ic-login-page .ic-login-access-head{
    margin-bottom:var(--s-3)!important;
  }
  body.ic-login-page .ic-login-form{
    gap:var(--s-2)!important;
  }
  body.ic-login-page .ic-login-form .input{
    min-height:48px!important;
  }
  body.ic-login-page .ic-login-submit{
    min-height:46px!important;
    margin-top:0!important;
  }
  body.ic-login-page .ic-login-footnote{
    margin-top:var(--s-2)!important;
  }
}
