/* ==========================================
   Lumixa Academy Authentication CSS
   ========================================== */

@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap");

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
}

body {
  min-height: 100vh;

  background: linear-gradient(-45deg, #2563eb, #4f46e5, #06b6d4, #1d4ed8);

  background-size: 400% 400%;

  animation: bgAnimation 12s ease infinite;

  overflow-x: hidden;
}

@keyframes bgAnimation {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}

/* Floating Circles */

.circle {
  position: absolute;

  border-radius: 50%;

  background: rgba(255, 255, 255, 0.08);

  animation: float 10s linear infinite;
}

.circle1 {
  width: 220px;
  height: 220px;
  left: -70px;
  top: 40px;
}

.circle2 {
  width: 160px;
  height: 160px;
  right: 60px;
  top: 90px;
}

.circle3 {
  width: 280px;
  height: 280px;
  bottom: -100px;
  left: 25%;
}

.circle4 {
  width: 180px;
  height: 180px;
  bottom: 40px;
  right: -60px;
}

@keyframes float {
  0% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-25px);
  }

  100% {
    transform: translateY(0px);
  }
}

/* Main Container */

.auth-container {
  min-height: 100vh;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 40px;
}

/* Card */

.auth-card {
  width: 100%;

  max-width: 1180px;

  border-radius: 25px;

  overflow: hidden;

  background: rgba(255, 255, 255, 0.15);

  backdrop-filter: blur(20px);

  -webkit-backdrop-filter: blur(20px);

  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}

/* Left Side */

.left-panel {
  background: linear-gradient(160deg, #1d4ed8, #4f46e5);

  color: #fff;

  padding: 70px 60px;

  min-height: 680px;

  position: relative;
}

.left-panel h1 {
  font-size: 42px;

  font-weight: 700;

  margin-bottom: 15px;
}

.left-panel h2 {
  font-size: 20px;

  margin-bottom: 40px;

  font-weight: 400;
}

.feature {
  display: flex;

  align-items: center;

  margin-bottom: 18px;

  font-size: 17px;
}

.feature i {
  font-size: 22px;

  margin-right: 15px;

  color: #ffd43b;
}

/* Stats */

.stats {
  margin-top: 70px;
}

.stat-box {
  background: rgba(255, 255, 255, 0.12);

  border-radius: 15px;

  padding: 18px;

  text-align: center;
}

.stat-box h3 {
  font-size: 28px;

  font-weight: 700;

  margin-bottom: 5px;
}

.stat-box p {
  margin: 0;

  font-size: 14px;
}

/* Right Panel */

.right-panel {
  background: #ffffff;

  padding: 70px;
}

.logo {
  width: 220px;
}

.form-title {
  font-size: 34px;

  font-weight: 700;

  color: #1e293b;
}

.form-subtitle {
  color: #64748b;

  margin-bottom: 35px;
}

/* Input */

.form-control {
  height: 56px;

  border-radius: 12px;

  border: 2px solid #e5e7eb;

  font-size: 15px;

  padding-left: 48px;

  transition: 0.3s;
}

.form-control:focus {
  border-color: #2563eb;

  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.15);
}

.input-group-text {
  background: #fff;

  border: 2px solid #e5e7eb;

  border-right: none;

  border-radius: 12px 0 0 12px;
}

.password-toggle {
  cursor: pointer;
}

/* Login Button */

.btn-auth {
  height: 56px;

  border: none;

  border-radius: 12px;

  background: linear-gradient(90deg, #2563eb, #4f46e5);

  color: #fff;

  font-size: 17px;

  font-weight: 600;

  transition: 0.35s;
}

.btn-auth:hover {
  transform: translateY(-2px);

  box-shadow: 0 10px 25px rgba(37, 99, 235, 0.35);
}

/* Links */

.auth-link {
  color: #2563eb;

  text-decoration: none;

  font-weight: 600;
}

.auth-link:hover {
  color: #4f46e5;
}

/* Divider */

.divider {
  text-align: center;

  margin: 25px 0;

  color: #999;

  position: relative;
}

.divider::before {
  content: "";

  position: absolute;

  left: 0;

  top: 50%;

  width: 42%;

  height: 1px;

  background: #ddd;
}

.divider::after {
  content: "";

  position: absolute;

  right: 0;

  top: 50%;

  width: 42%;

  height: 1px;

  background: #ddd;
}

/* Footer */

.auth-footer {
  margin-top: 30px;

  text-align: center;

  color: #777;

  font-size: 14px;
}

/* Responsive */

@media (max-width: 991px) {
  .left-panel {
    display: none;
  }

  .right-panel {
    padding: 40px;
  }

  .auth-card {
    max-width: 550px;
  }
}

@media (max-width: 576px) {
  .auth-container {
    padding: 15px;
  }

  .right-panel {
    padding: 25px;
  }

  .form-title {
    font-size: 28px;
  }
}


/* Password Toggle */

.password-toggle{

    cursor:pointer;

    border-left:none !important;

    border-radius:0 12px 12px 0 !important;

    background:#fff;

    width:55px;

    display:flex;

    align-items:center;

    justify-content:center;

}

/* Make both icons exactly same height */

.input-group>.input-group-text{

    height:56px;

}

/* Remove double border */

.input-group>.form-control{

    border-left:none;

    border-right:none;

}

.input-group>.form-control:focus{

    z-index:3;

}
/* OTP Modal */

#otpModal{

    z-index:1065;

}

#otpModal .modal-dialog{

    z-index:1070;

}

#otpModal .modal-content{

    background:#fff;

    border-radius:20px;

}

.modal-backdrop{

    z-index:1055;

}


/* OTP Input */

.otp-box{

    width:55px !important;
    height:60px !important;

    background:#ffffff !important;

    color:#000000 !important;

    font-size:30px !important;

    font-weight:700 !important;

    text-align:center !important;

    border:2px solid #d1d5db !important;

    border-radius:12px !important;

    caret-color:#000000 !important;

    -webkit-text-fill-color:#000000 !important;

    opacity:1 !important;

}

.otp-box:focus{

    border-color:#2563eb !important;

    box-shadow:0 0 0 .2rem rgba(37,99,235,.25);

    color:#000 !important;

    background:#fff !important;

}

.otp-box{

    padding:0 !important;

    padding-left:0 !important;

    text-align:center !important;

    text-indent:0 !important;

    font-size:30px !important;

    line-height:56px !important;

}

.otp-box.form-control{

    padding-left:0 !important;

    padding-right:0 !important;

    text-align:center !important;

}


.modal.show{

    display:block;

    z-index:99999;

}

.modal-backdrop.show{

    z-index:99998;

}


.auth-container,
.auth-card,
.left-panel,
.right-panel{
    position: relative;
    z-index: 1;
}

.modal{
    z-index: 1060 !important;
}

.modal-backdrop{
    z-index: 1055 !important;
}