/* ============================================================
   Registration form — visual redesign only (no logic changes).
   Everything is scoped under .reg-redesign so the shared
   .login-block markup on login/reset/forgot pages is untouched.
   ============================================================ */

/* ---- Page backdrop & centering ---- */
.reg-redesign{
  min-height:100vh;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 16px;
  background:linear-gradient(135deg,#1b1f6b 0%,#2E3192 42%,#1f7a8c 100%);
  position:relative;
  overflow:hidden;
}
.reg-redesign:before,
.reg-redesign:after{
  content:"";
  position:absolute;
  border-radius:50%;
  filter:blur(2px);
  opacity:.35;
  pointer-events:none;
}
.reg-redesign:before{ width:460px; height:460px; top:-160px; right:-120px;
  background:radial-gradient(circle at 30% 30%,#4c7ef7,transparent 70%); }
.reg-redesign:after{ width:420px; height:420px; bottom:-180px; left:-120px;
  background:radial-gradient(circle at 70% 70%,#22d3a6,transparent 70%); }
.reg-redesign .container-fluid,
.reg-redesign .row,
.reg-redesign .col-sm-12{ position:relative; z-index:2; }
.reg-redesign .col-sm-12{ display:flex; justify-content:center; padding:0; }

/* ---- Card ---- */
.reg-redesign .auth-box.card{
  width:100%;
  max-width:560px;
  margin:0 auto;
  border:none;
  border-radius:20px;
  background:#ffffff;
  box-shadow:0 30px 70px -20px rgba(9,12,60,.55),
             0 8px 24px -10px rgba(9,12,60,.35);
  overflow:hidden;
}
.reg-redesign .auth-box.card:before{
  content:"";
  display:block;
  height:6px;
  background:linear-gradient(90deg,#2E3192,#4c7ef7 45%,#1EA97C);
}
.reg-redesign .card-block{ padding:38px 40px 32px; }

/* ---- Heading ---- */
.reg-redesign h3.txt-primary{
  font-weight:700;
  font-size:26px;
  letter-spacing:.2px;
  color:#20235f !important;
  margin:0 0 4px;
}
.reg-redesign h3.txt-primary + *{ }
.reg-redesign .m-b-20 .col-md-12{ text-align:center; }
.reg-redesign h3.txt-primary:after{
  content:"Create your NRIMS account";
  display:block;
  font-size:13px;
  font-weight:400;
  letter-spacing:.3px;
  color:#8a8fb5;
  margin-top:6px;
}

/* ---- Field groups: label on top, input below, tidy spacing ---- */
.reg-redesign .form-group.form-primary{
  display:flex;
  flex-flow:row wrap;
  align-items:center;
  gap:8px 12px;
  margin-bottom:20px;
  position:relative;
}
.reg-redesign .form-group.form-primary br{ display:none; }

/* labels (First Name, Email, Gender, ...) sit as a top caption */
.reg-redesign .form-group.form-primary > .float-labels{
  order:-1;
  flex:0 0 100%;
  margin:0;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.4px;
  text-transform:uppercase;
  color:#5b6079;
}

/* the animated underline spans are not needed in the filled style */
.reg-redesign .form-group.form-primary > .form-bar:empty{
  order:9; flex:0 0 100%; height:0; margin:0; padding:0; border:0;
}

/* inputs */
.reg-redesign .form-control{
  flex:1 1 100%;
  height:48px;
  border:1.5px solid #e2e5f1;
  border-radius:11px;
  background:#f7f8fc;
  padding:0 15px;
  font-size:15px;
  font-weight:500;
  color:#1f2340;
  box-shadow:none;
  transition:border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.reg-redesign .form-control::placeholder{ color:#aab; }
.reg-redesign .form-control:focus{
  outline:none;
  border-color:#2E3192;
  background:#fff;
  box-shadow:0 0 0 4px rgba(46,49,146,.12);
}

/* ---- Gender chips ---- */
.reg-redesign .form-group.form-primary > label:not(.float-labels):not(.float-label){
  order:0;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:10px 18px;
  border:1.5px solid #e2e5f1;
  border-radius:11px;
  background:#f7f8fc;
  font-weight:600;
  font-size:14px;
  color:#3a3f63;
  cursor:pointer;
  transition:all .16s ease;
}
.reg-redesign .form-group.form-primary > label:not(.float-labels):not(.float-label):hover{
  border-color:#c3c8e8;
  background:#eef0fb;
}
.reg-redesign .form-group.form-primary > label:not(.float-labels):not(.float-label):has(input:checked){
  border-color:#2E3192;
  background:#eaecfb;
  color:#20235f;
  box-shadow:0 0 0 3px rgba(46,49,146,.12);
}
.reg-redesign .form-group.form-primary > label input[type="radio"]{
  width:16px; height:16px; accent-color:#2E3192; margin:0;
}

/* ---- Password two-column row ---- */
.reg-redesign .card-block > .form-group + .row,
.reg-redesign .row .col-sm-6{ margin-bottom:0; }
.reg-redesign .row .col-sm-6 .form-group.form-primary{ margin-bottom:14px; }
.reg-redesign input[onclick="myFunction()"]{
  width:16px; height:16px; vertical-align:-2px; accent-color:#2E3192; margin-right:6px;
}
.reg-redesign .col-sm-6 > input[type="checkbox"]{ }
.reg-redesign .col-sm-6{ font-size:13px; color:#6b7092; }

/* ---- Captcha ---- */
.reg-redesign .form-group.form-primary > label.float-label{
  display:none;
}
.reg-redesign .form-group.form-primary > .form-bar:not(:empty){
  order:-2;
  flex:0 0 auto !important;
  display:inline-block;
  background:#111634 !important;
  color:#ffd35b !important;
  font-family:"Courier New",monospace !important;
  font-weight:800 !important;
  font-size:22px !important;
  letter-spacing:8px !important;
  padding:10px 20px !important;
  border-radius:10px !important;
  border:1px dashed rgba(255,255,255,.25) !important;
  user-select:none;
}
.reg-redesign input[name="captcha_code"]{ order:0; }

/* ---- Submit button ---- */
.reg-redesign #login.btn{
  height:52px;
  border:none;
  border-radius:12px;
  background:linear-gradient(135deg,#2E3192,#4c7ef7);
  font-size:15px;
  font-weight:700;
  letter-spacing:.6px;
  text-transform:uppercase;
  box-shadow:0 14px 26px -10px rgba(46,49,146,.7);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.reg-redesign #login.btn:hover{
  transform:translateY(-2px);
  filter:brightness(1.05);
  box-shadow:0 18px 32px -10px rgba(46,49,146,.8);
}
.reg-redesign #login.btn:active{ transform:translateY(0); }
.reg-redesign .m-t-30{ margin-top:24px !important; }

/* ---- Footer row ---- */
.reg-redesign hr{ border-top:1px solid #edeef6; margin:22px 0 16px; }
.reg-redesign .text-inverse a{ color:#2E3192; font-weight:600; }
.reg-redesign .text-inverse a:hover{ color:#4c7ef7; text-decoration:none; }
.reg-redesign .row:last-child img{ max-height:34px; width:auto; opacity:.9; }

/* ---- Server-side messages spacing ---- */
.reg-redesign .m-b-20 .col-md-12 > *:not(h3){ margin:8px 0 0; }

/* ============================================================
   Password requirements popover (ids/classes used by page JS —
   keep #message / #letter / .valid / .invalid intact)
   ============================================================ */
#message{
  display:none;
  width:100%;
  background:#f7f8fc;
  border:1.5px solid #e2e5f1;
  border-radius:12px;
  color:#3a3f63;
  position:relative;
  padding:16px 18px;
  margin:0 0 14px;
  box-shadow:0 10px 24px -14px rgba(9,12,60,.4);
}
#message h6{
  font-size:12.5px; font-weight:700; letter-spacing:.3px;
  text-transform:uppercase; color:#5b6079; margin:0 0 10px;
}
#message p{
  padding:4px 4px 4px 30px;
  font-size:13.5px;
  margin:0;
  position:relative;
  line-height:1.5;
}
.valid{ color:#1EA97C; }
.valid:before{
  position:absolute; left:6px; top:4px; content:"\2714"; font-weight:700;
}
.invalid{ color:#c0392b; }
.invalid:before{
  position:absolute; left:6px; top:4px; content:"\2716"; font-weight:700;
}

/* ---- Small screens ---- */
@media (max-width:575px){
  .reg-redesign .card-block{ padding:28px 22px 24px; }
  .reg-redesign .form-group.form-primary > .form-bar:not(:empty){
    font-size:19px !important; letter-spacing:6px !important;
  }
}
