:root{
  --cims-login-navy:#082f49;
  --cims-login-blue:#0f5fa8;
  --cims-login-cyan:#38bdf8;
  --cims-login-text:#10233d;
  --cims-login-muted:#64748b;
  --cims-login-border:#dbe5ef;
}
html,body.login{min-height:100%;}
body.login.cims-login-page{
  display:grid;
  place-items:center;
  margin:0;
  padding:32px 18px;
  background:
    radial-gradient(circle at 16% 15%,rgba(56,189,248,.22),transparent 28%),
    radial-gradient(circle at 88% 82%,rgba(59,130,246,.18),transparent 30%),
    linear-gradient(135deg,#061f36 0%,#0a3f67 48%,#0f5fa8 100%);
  color:var(--cims-login-text);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
body.login.cims-login-page:before{
  position:fixed;inset:0;pointer-events:none;content:"";
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:42px 42px;
}
#login{
  position:relative;
  width:min(430px,100%);
  padding:0;
  z-index:2;
}
#login:before{
  display:block;
  margin:0 auto 20px;
  color:#fff;
  content:"Check-In Management System";
  font-size:15px;
  font-weight:700;
  letter-spacing:.04em;
  text-align:center;
}
.login h1 a{
  display:grid;
  width:76px;
  height:76px;
  margin:0 auto 20px;
  place-items:center;
  border:1px solid rgba(255,255,255,.28);
  border-radius:20px;
  background:rgba(255,255,255,.96);
  background-image:none!important;
  box-shadow:0 18px 40px rgba(0,0,0,.22);
  color:var(--cims-login-blue);
  text-indent:0;
  font-size:0;
}
.login h1 a:after{content:"C";font-size:34px;font-weight:850;line-height:1;}
.login form{
  margin:0;
  padding:34px 34px 30px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:18px;
  background:rgba(255,255,255,.97);
  box-shadow:0 28px 70px rgba(2,20,38,.34);
}
.login form:before{
  display:block;
  margin-bottom:23px;
  color:var(--cims-login-text);
  content:"Welcome back";
  font-size:25px;
  font-weight:780;
  letter-spacing:-.02em;
}
.login label{color:#334155;font-size:12px;font-weight:700;letter-spacing:.01em;}
.login form .input,.login input[type=text],.login input[type=password]{
  min-height:48px;
  margin-top:7px;
  padding:10px 13px;
  border:1px solid var(--cims-login-border);
  border-radius:8px;
  background:#f8fafc;
  color:var(--cims-login-text);
  font-size:15px;
  box-shadow:none;
}
.login form .input:focus,.login input[type=text]:focus,.login input[type=password]:focus{
  border-color:var(--cims-login-blue);
  background:#fff;
  box-shadow:0 0 0 3px rgba(15,95,168,.12);
}
.wp-pwd{margin-top:0;}
.login .button.wp-hide-pw{top:8px;color:var(--cims-login-blue);}
.login .forgetmenot{margin-top:5px;}
.login .forgetmenot label{font-weight:600;color:var(--cims-login-muted);}
.login .submit{margin-top:20px!important;}
.login .button-primary{
  width:100%;
  min-height:48px;
  border:0;
  border-radius:8px;
  background:linear-gradient(135deg,var(--cims-login-blue),#1479c9);
  color:#fff;
  font-size:14px;
  font-weight:760;
  text-shadow:none;
  box-shadow:0 10px 22px rgba(15,95,168,.25);
  transition:transform .16s ease,box-shadow .16s ease;
}
.login .button-primary:hover,.login .button-primary:focus{
  background:linear-gradient(135deg,#0d528f,#126db5);
  transform:translateY(-1px);
  box-shadow:0 13px 28px rgba(15,95,168,.32);
}
.login #nav,.login #backtoblog{margin:14px 0 0;padding:0;text-align:center;}
.login #nav a,.login #backtoblog a{color:#e6f3ff!important;font-size:12px;font-weight:650;text-decoration:none;}
.login #nav a:hover,.login #backtoblog a:hover{color:#fff!important;}
.login .message,.login .notice,.login #login_error{
  margin:0 0 16px;
  padding:13px 15px;
  border:0;
  border-radius:8px;
  box-shadow:none;
}
.login .message{background:#ecfeff;color:#155e75;}
.login #login_error{background:#fff1f2;color:#9f1239;}
.language-switcher,.privacy-policy-page-link{display:none!important;}
@media(max-width:520px){
  body.login.cims-login-page{padding:24px 14px;align-items:center;}
  .login form{padding:28px 22px 25px;border-radius:14px;}
  .login form:before{font-size:22px;}
  .login h1 a{width:68px;height:68px;border-radius:17px;}
}

/* Portal 2.0.1 branded authentication polish */
.login h1 a{
  background:#fff url('../images/rep-secure-360-mark.png') center/58px 58px no-repeat!important;
}
.login h1 a:after{display:none!important}
#login:before{content:"REP SECURE 360";font-size:18px;letter-spacing:.08em}
body.login.cims-login-page.login-error #login form,
body.login.cims-login-page .cims-login-shake{animation:cimsLoginShake .36s ease both}
@keyframes cimsLoginShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}50%{transform:translateX(7px)}75%{transform:translateX(-4px)}}

/* REP Secure 360 branding — preserve existing layout dimensions */
.cims-brand img,.cims-sa-brand img{max-width:210px;max-height:64px;width:auto;height:auto;object-fit:contain}.login h1 a{background:#fff url('../images/rep-secure-360-mark.png') center/58px 58px no-repeat!important}
