/* ============================================================================
   Auth Screens (Login / Forgot Password / OTP / Reset)
   ============================================================================ */

body.zw-auth-body {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0d3b8c 0%, #071f4d 100%);
  padding: 2rem 1rem;
}

.zw-auth-wrapper {
  width: 100%;
  max-width: 960px;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  display: flex;
  min-height: 560px;
}

.zw-auth-side {
  flex: 1;
  background: radial-gradient(circle at 30% 20%, #1b56c4, #071f4d 75%);
  color: #fff;
  padding: 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.zw-auth-side h2 { font-weight: 700; }
.zw-auth-side .material-icons { font-size: 46px; margin-bottom: 1rem; }

.zw-auth-form {
  flex: 1;
  padding: 3rem 2.75rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.zw-role-tabs .nav-link {
  border-radius: 8px;
  font-weight: 600;
  color: #495057;
  padding: .55rem 1rem;
}
.zw-role-tabs .nav-link.active {
  background: var(--zw-primary, #0d3b8c);
  color: #fff;
}

.zw-otp-inputs input {
  width: 3rem; height: 3.25rem;
  text-align: center;
  font-size: 1.4rem;
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .zw-auth-side { display: none; }
  .zw-auth-wrapper { min-height: auto; }
}
