/* ================= RESET ================= */

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

/* ================= BODY ================= */

body{
  font-family:'Inter','Segoe UI',sans-serif;
  background:linear-gradient(135deg,#eef2f7,#e6ecff);
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}

/* ================= CARD ================= */

.auth-box{
  width:100%;
  max-width:720px;
  background:#ffffff;
  padding:34px;
  border-radius:18px;
  box-shadow:
    0 10px 25px rgba(0,0,0,0.06),
    0 20px 60px rgba(79,70,229,0.08);
  animation:fadeUp .5s ease;
}

/* ================= ANIMATION ================= */

@keyframes fadeUp{

  from{
    opacity:0;
    transform:translateY(20px) scale(.97);
  }

  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }

}

/* ================= LOGO ================= */

.logo{
  width:58px;
  height:58px;
  margin:auto;
  margin-bottom:18px;
  border-radius:16px;
  background:linear-gradient(135deg,#6366f1,#4f46e5);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:24px;
  box-shadow:0 8px 20px rgba(79,70,229,0.25);
}

/* ================= TITLE ================= */

.auth-box h2{
  text-align:center;
  color:#111827;
  margin-bottom:4px;
  font-size:28px;
  font-weight:700;
}

.subtitle{
  text-align:center;
  font-size:14px;
  color:#6b7280;
  margin-bottom:24px;
}

/* ================= ALERT ================= */

.alert{
  padding:13px;
  border-radius:12px;
  margin-bottom:20px;
  text-align:center;
  font-size:14px;
  font-weight:500;
}

.success{
  background:#ecfdf5;
  color:#065f46;
}

.error{
  background:#fef2f2;
  color:#b91c1c;
}

/* ================= FORM GRID ================= */

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

/* ================= INPUT GROUP ================= */

.input-group{
  display:flex;
  flex-direction:column;
}

.input-group.full{
  grid-column:1/-1;
}

/* ================= LABEL ================= */

.input-group label{
  font-size:13px;
  color:#374151;
  margin-bottom:7px;
  font-weight:600;
}

/* ================= INPUT ================= */

.input-group input,
.input-group select{
  width:100%;
  padding:13px;
  border-radius:12px;
  border:1px solid #e5e7eb;
  background:#f9fafb;
  outline:none;
  transition:all .25s ease;
  font-size:14px;
}

/* ================= INPUT INTERACTION ================= */

.input-group input:hover,
.input-group select:hover{
  border-color:#c7d2fe;
}

.input-group input:focus,
.input-group select:focus{
  border-color:#6366f1;
  background:#fff;
  box-shadow:0 0 0 3px rgba(99,102,241,0.15);
}

/* ================= PASSWORD ================= */

.password-wrap{
  position:relative;
}

.password-wrap span{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  cursor:pointer;
  color:#6b7280;
}

/* ================= ROW ================= */

.row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:12px;
  margin-top:6px;
  margin-bottom:16px;
}

.row a{
  color:#6366f1;
  text-decoration:none;
  font-weight:500;
}

/* ================= BUTTON ================= */

.btn{
  width:100%;
  padding:14px;
  border:none;
  border-radius:12px;
  background:linear-gradient(135deg,#6366f1,#4f46e5);
  color:#fff;
  font-weight:600;
  font-size:15px;
  cursor:pointer;
  transition:all .25s ease;
  box-shadow:0 6px 18px rgba(79,70,229,0.25);
  margin-top:24px;
}

/* ================= BUTTON HOVER ================= */

.btn:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 30px rgba(79,70,229,0.35);
}

/* ================= BUTTON CLICK ================= */

.btn:active{
  transform:scale(.98);
}

/* ================= SECURE BOX ================= */

.secure{
  margin-top:14px;
  padding:11px;
  border-radius:12px;
  background:#ecfdf5;
  color:#065f46;
  font-size:12px;
  text-align:center;
}

/* ================= FOOTER ================= */

.footer{
  text-align:center;
  font-size:14px;
  margin-top:20px;
  color:#6b7280;
}

.footer a{
  color:#6366f1;
  text-decoration:none;
  font-weight:600;
}

/* ================= OTP ================= */

.otp-box{
  display:flex;
  justify-content:center;
  gap:10px;
}

.otp-box input{
  width:52px;
  height:56px;
  text-align:center;
  font-size:20px;
  border-radius:12px;
  border:1px solid #e5e7eb;
  background:#f9fafb;
}

.otp-box input:focus{
  border-color:#6366f1;
  background:#fff;
  box-shadow:0 0 0 2px rgba(99,102,241,0.15);
}

/* ================= RESPONSIVE ================= */

@media(max-width:768px){

  .auth-box{
    max-width:100%;
    padding:28px;
  }

  .form-grid{
    grid-template-columns:1fr;
  }

}

@media(max-width:420px){

  body{
    padding:15px;
  }

  .auth-box{
    padding:22px;
    border-radius:16px;
  }

  .auth-box h2{
    font-size:24px;
  }

}