/* KEI r051 · Corporate login page
   Scope: body.kei-corporate-login only. Authentication logic remains unchanged. */

body.kei-corporate-login{
  --kh-green:#006b54;
  --kh-green-dark:#003f35;
  --kh-lime:#a8c900;
  --kh-bg:#f5f7f2;
  --kh-surface:#ffffff;
  --kh-border:#dce6d4;
  --kh-text:#1e2d25;
  --kh-muted:#607064;

  --bg:var(--kh-bg);
  --card:var(--kh-surface);
  --input:#ffffff;
  --txt:var(--kh-text);
  --muted:var(--kh-muted);
  --acc:var(--kh-green);
  --acc-2:#00836a;
  --acc-line:rgba(0,107,84,.26);
  --acc-bg:#e6f0eb;
  --line:var(--kh-border);

  background:
    radial-gradient(circle at 12% 0%, rgba(168,201,0,.16), transparent 30%),
    linear-gradient(180deg,#ffffff 0,var(--kh-bg) 280px,var(--kh-bg) 100%);
  color:var(--kh-text);
}

body.kei-corporate-login .topbar{
  min-height:74px;
  padding:0 36px;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--kh-border);
  box-shadow:0 8px 24px rgba(0,63,53,.06);
  backdrop-filter:saturate(145%) blur(14px);
}
body.kei-corporate-login .brand-logo img{
  height:42px;
  max-width:220px;
  object-fit:contain;
}
body.kei-corporate-login .brand-title{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding-left:14px;
  border-left:1px solid var(--kh-border);
  color:var(--kh-green-dark);
}
body.kei-corporate-login .brand-title strong{
  font-size:15px;
  line-height:1.1;
}
body.kei-corporate-login .brand-title small{
  color:var(--kh-muted);
  font-size:12px;
}
body.kei-corporate-login .nav .btn{
  background:#fff;
  color:var(--kh-green-dark);
  border-color:rgba(0,107,84,.34);
  white-space:nowrap;
}
body.kei-corporate-login .nav .btn:hover{
  background:#e6f0eb;
}

body.kei-corporate-login .container{
  max-width:1280px;
  margin:34px auto 48px;
  padding:0 28px;
  background:transparent;
  border:0;
  border-radius:0;
}

.login-corporate-shell{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,460px);
  gap:34px;
  align-items:center;
  min-height:calc(100vh - 190px);
  padding:44px;
  border-radius:24px;
  overflow:hidden;
  position:relative;
  background:
    linear-gradient(135deg, rgba(0,107,84,.96), rgba(0,63,53,.96)),
    var(--kh-green);
  box-shadow:0 24px 60px rgba(0,63,53,.10);
}
.login-corporate-shell:after{
  content:"";
  position:absolute;
  right:-110px;
  top:-120px;
  width:360px;
  height:360px;
  border-radius:50%;
  background:rgba(168,201,0,.24);
}
.login-corporate-shell:before{
  content:"";
  position:absolute;
  left:-140px;
  bottom:-160px;
  width:360px;
  height:360px;
  border-radius:50%;
  background:rgba(255,255,255,.06);
}
.login-corporate-copy,
.login-card{
  position:relative;
  z-index:1;
}
.login-corporate-copy{
  max-width:640px;
  color:#fff;
}
.login-eyebrow{
  margin:0 0 12px;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:12px;
  font-weight:850;
  color:rgba(255,255,255,.72);
}
.login-corporate-copy h1{
  margin:0 0 16px;
  color:#fff;
  font-size:clamp(34px,5vw,58px);
  line-height:1.02;
  letter-spacing:-.045em;
}
.login-corporate-copy p:not(.login-eyebrow){
  max-width:560px;
  margin:0;
  color:rgba(255,255,255,.86);
  font-size:18px;
  line-height:1.58;
}

.login-card{
  margin:0;
  padding:28px;
  border:1px solid rgba(255,255,255,.32);
  background:rgba(255,255,255,.96);
  color:var(--kh-text);
  border-radius:22px;
  box-shadow:0 22px 50px rgba(0,42,34,.20);
  overflow-wrap:normal;
  word-break:normal;
}
.login-card-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:22px;
}
.login-card-kicker{
  margin:0 0 4px;
  color:var(--kh-muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:850;
}
.login-card h2{
  margin:0;
  color:var(--kh-green-dark);
  font-size:26px;
  letter-spacing:-.025em;
}
.login-secure-badge{
  flex:0 0 auto;
  padding:5px 11px;
  border:1px solid rgba(168,201,0,.72);
  background:#edf5c8;
  color:var(--kh-green-dark);
  border-radius:999px;
  font-size:12px;
  font-weight:850;
  white-space:nowrap;
}
.login-error{
  margin-bottom:18px;
}
.login-form label{
  margin:14px 0 7px;
  color:var(--kh-green-dark);
  font-weight:750;
}
.login-form input:not([type="checkbox"]):not([type="radio"]){
  min-height:48px;
  border-radius:14px;
  border:1px solid #cad9c4;
  background:#fff;
  color:var(--kh-text);
  box-shadow:0 1px 0 rgba(0,63,53,.03);
}
.login-form input:focus{
  outline:3px solid rgba(168,201,0,.22);
  border-color:var(--kh-green);
}
.login-submit{
  width:100%;
  justify-content:center;
  margin-top:20px;
  min-height:48px;
  border:0;
  border-radius:14px;
  background:var(--kh-green);
  color:#fff;
  font-weight:850;
}
.login-submit:hover{
  background:#005744;
  color:#fff;
}

body.kei-corporate-login .footer{
  color:var(--kh-muted);
  background:transparent;
  border-top:1px solid var(--kh-border);
}

@media (max-width:900px){
  body.kei-corporate-login .topbar{
    min-height:58px;
    padding:8px 12px;
  }
  body.kei-corporate-login .brand-logo img{
    height:32px;
    max-width:150px;
  }
  body.kei-corporate-login .brand-title{
    display:none;
  }
  body.kei-corporate-login .container{
    margin:16px auto 28px;
    padding:0 12px;
  }
  .login-corporate-shell{
    grid-template-columns:1fr;
    gap:22px;
    min-height:0;
    padding:24px;
    border-radius:20px;
  }
  .login-corporate-copy h1{
    font-size:32px;
  }
  .login-corporate-copy p:not(.login-eyebrow){
    font-size:15px;
  }
  .login-card{
    padding:20px;
  }
  .login-card-head{
    flex-direction:column;
  }
}

@media (max-width:520px){
  .login-corporate-shell{
    padding:18px;
    border-radius:18px;
  }
  .login-corporate-copy h1{
    font-size:28px;
  }
  .login-card h2{
    font-size:22px;
  }
}

/* r052 · Mobile correction: keep login readable on small screens. */
@media (max-width:1100px){
  body.kei-corporate-login .container{
    margin:16px auto 28px;
    padding:0 12px;
  }
  .login-corporate-shell{
    grid-template-columns:1fr !important;
    gap:20px;
    min-height:0;
    padding:22px;
    border-radius:20px;
  }
  .login-eyebrow{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    line-height:1.35;
  }
  .login-corporate-copy h1{
    font-size:32px;
  }
  .login-corporate-copy p:not(.login-eyebrow){
    font-size:15px;
  }
}
@media (max-width:520px){
  .login-corporate-shell{
    padding:16px;
  }
  .login-corporate-copy h1{
    font-size:28px;
  }
  .login-card{
    padding:18px;
  }
}
