.custom-login-wrapper {
  display        : flex;
  justify-content: center;
  align-items    : center;
  min-height     : 100vh;
  background     : linear-gradient(135deg, #3b0a77, #46278a);
  padding        : 20px;
}

.register-form-card {
  background   : #fff;
  border-radius: 12px;
  padding      : 40px;
  max-width    : 50vw;
  width        : 100%;
  box-shadow   : 0 6px 20px rgba(0, 0, 0, 0.15);
}

.register-form-card h1 {
  font-size    : 1.8rem;
  font-weight  : bold;
  margin-bottom: 25px;
  color        : #3b0a77;
  text-align   : left;
}

.form-group-row {
  display  : flex;
  gap      : 20px;
  flex-wrap: wrap;
}

.form-group {
  flex          : 1;
  min-width     : 200px;
  display       : flex;
  flex-direction: column;
}

.form-group label {
  margin-bottom: 6px;
  font-weight  : 500;
  font-size    : 14px;
}

.form-group .form-control {
  width           : 100%;
  padding         : 10px 14px;
  font-size       : 16px;
  border          : 1px solid #ccc;
  border-radius   : 6px;
  background-color: #fff;
  box-sizing      : border-box;
  line-height     : 1.4em;
  height          : 41px;
  white-space     : normal;
  box-shadow      : none;
}

.select2-container .select2-selection--single {
  height       : 41px !important;
  border-radius: 6px !important;
}

.select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 1.4em !important;
  padding    : 10px 14px !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 41px !important;
}

.form-group select option {
  white-space: normal;
  word-wrap  : break-word;
}


.form-group select#specialty option {
  width      : 250px;
  white-space: normal;
  word-wrap  : break-word;
}

.form-group .form-control:focus-within {
  border-color: var(--purpleColor);
  box-shadow  : 0 0 0 .2rem rgba(85, 51, 255, .25);
}

.form-group .form-control input:focus-visible {
  outline   : none;
  box-shadow: none;
}

.form-group .form-control input[type="password"] {
  appearance        : none !important;
  -webkit-appearance: none !important;
}

.form-group .form-control .toggle-password {
  cursor: pointer;
}

.form-group #passwordMatchError,
.form-group #villeError {
  color     : red;
  font-size : 13px;
  margin-top: 5px;
  display   : none;
}


.form-options {
  margin: 20px 0;
}

.custom-checkbox {
  display    : flex;
  align-items: center;
  font-size  : 14px;
}

.custom-checkbox input {
  margin-right: 10px;
}

.custom-checkbox .terms-text a,
.custom-checkbox .terms-text strong {
  color          : var(--purpleColor);
  text-decoration: none;
  font-weight    : bold;
}

.custom-checkbox .terms-text a:hover {
  color          : var(--orangeColor);
  text-decoration: underline;
}

.btn-login {
  background   : var(--orangeColor);
  border       : none;
  padding      : 12px 25px;
  border-radius: 25px;
  font-size    : 15px;
  font-weight  : bold;
  cursor       : pointer;
  transition   : background 0.3s ease;
  color        : #fff;
}

.btn-login:hover {
  background: #d97c15;
}

.register-link {
  margin-top: 20px;
  font-size : 14px;
}

.register-link a {
  color          : var(--purpleColor);
  font-weight    : bold;
  text-decoration: none;
}

.register-link a:hover {
  text-decoration: underline;
}

.login-disclaimer {
  margin-top : 25px;
  font-size  : 13px;
  color      : #555;
  line-height: 1.6;
}

.loader {
  border        : 4px solid #f3f3f3;
  border-top    : 4px solid #fff;
  border-radius : 50%;
  width         : 16px;
  height        : 16px;
  display       : inline-block;
  animation     : spin 0.8s linear infinite;
  margin-right  : 6px;
  vertical-align: middle;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}


@media (max-width: 576px) {
  .form-group-row {
    gap: 0;
  }

  .register-form-card {
    max-width: 100vw;
    padding  : 1rem;
  }

}