.login-bg{
  min-height:100vh;
  display:flex;
  justify-content:center;
  align-items:center;
  background:radial-gradient(circle at 50% 20%, #e7eeff 0%, #dbe8ff 35%, #f5f8ff 100%);
}
.login-card{
  width:100%;
  max-width:420px;
  background:#fff;
  border-radius:12px;
  box-shadow:0 12px 40px rgba(30,64,175,0.08);
  padding:2rem 2.25rem 1.75rem;
  text-align:left;
}
.logo{
  display:block;
  margin:0 auto 1.25rem;
  max-width:180px;
}
.card-title{
  margin:0 0 1.5rem;
  font-size:1.6rem;
  text-align:center;
  color:#1e40af;
}
.subtitle{
  font-size:.95rem;
  color:#555;
  margin-bottom:1rem;
  line-height:1.45;
}
.alert{
  padding:.65rem 1rem;
  border-radius:6px;
  margin-bottom:1rem;
  font-size:.9rem;
}
.alert-danger{
  background:#f8d7da;
  color:#721c24;
}
.login-card form input[type="text"],
.login-card form input[type="password"],
.login-card form input[type="text"][id="code"],
.login-card form button.btn-block {
  width:100%;
  box-sizing:border-box;
}
label{
  display:block;
  margin-bottom:.35rem;
  font-weight:600;
  font-size:.9rem;
  color:#374151;
}
input[type="text"],
input[type="password"]{
  padding:.55rem .75rem;
  border:1px solid #cbd5e1;
  border-radius:6px;
  font-size:.95rem;
  margin-bottom:1.1rem;
  transition:border-color .15s;
}
input:focus{
  border-color:#2563eb;
  outline:none;
  box-shadow:0 0 0 3px rgba(37,99,235,0.15);
}
.btn-block{width:100%;}
.btn-primary{
  background:#2563eb;
  border-color:#2563eb;
  color:#fff;
}
.btn-primary:hover{background:#1e40af;}
.btn{
  display:inline-block;
  padding:.55rem 1.1rem;
  font-size:1rem;
  border:1px solid transparent;
  border-radius:6px;
  cursor:pointer;
  font-weight:600;
  text-align:center;
  transition:background .15s, box-shadow .15s;
}
.login-footer{
  margin-top:1.4rem;
  font-size:.8rem;
  text-align:center;
  color:#8b95a7;
}
