/* =========================================================
   Login Page
   ========================================================= */

/* Center the card vertically in the available viewport */
.login-wrapper {
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  justify-content: center;
  min-height:      calc(100vh - 6rem);
  padding:         2rem 0;
}

/* Brand lockup above the card */
.login-brand {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            0.625rem;
  margin-bottom:  1.75rem;
  text-align:     center;
}

.login-brand-icon {
  width:           3.25rem;
  height:          3.25rem;
  border-radius:   1rem;
  background:      rgba(var(--primary-500-rgb), 0.1);
  display:         flex;
  align-items:     center;
  justify-content: center;
  font-size:       1.5rem;
  color:           var(--primary-500);
  margin-bottom:   0.25rem;
}

.login-eyebrow {
  font-size:      0.7rem;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--primary-600);
}

.login-title {
  font-size:      1.375rem;
  font-weight:    700;
  color:          var(--neutral-900);
  margin:         0;
  letter-spacing: -0.01em;
  line-height:    1.2;
}

/* Card */
.login-card {
  width:         100%;
  max-width:     420px;
  border-radius: var(--card-radius);
  box-shadow:    0 4px 20px rgba(0, 0, 0, 0.07), 0 1px 3px rgba(0, 0, 0, 0.05);
  border:        1px solid var(--card-border);
  overflow:      hidden;
}

.login-card .card-body {
  padding: 2rem 2rem 2.25rem;
}

/* Form */
.login-form .form-label {
  font-size:      0.78rem;
  font-weight:    600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color:          var(--neutral-600);
  margin-bottom:  0.4rem;
}

.login-form .input-group {
  border-radius: 0.5rem;
  overflow:      hidden;
  box-shadow:    0 1px 2px rgba(0, 0, 0, 0.04);
}

.login-form .input-group-text {
  background:    var(--neutral-50);
  border:        1px solid var(--neutral-300);
  border-right:  none;
  padding:       0.5rem 0.75rem;
  color:         var(--primary-500);
  font-size:     0.9375rem;
}

.login-form .form-control {
  border-left: none;
  padding:     0.5rem 0.875rem;
  font-size:   0.9375rem;
}

.login-form .form-check-label {
  font-size:  0.875rem;
  color:      var(--neutral-600);
  margin-top: 0.075rem;
}

.login-form .btn-primary {
  padding:    0.625rem 1.25rem;
  font-size:  0.9375rem;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(var(--primary-500-rgb), 0.22);
}

.login-form .btn-primary:hover {
  box-shadow: 0 4px 14px rgba(var(--primary-500-rgb), 0.32);
}

/* Helper text */
.login-helper-text {
  text-align: center;
  margin-top: 1.25rem;
  color:      var(--neutral-400);
  font-size:  0.8125rem;
}
