html,
body {
  min-height: 100%;
}

body {
  background:
    linear-gradient(rgba(248, 251, 254, 0.32), rgba(248, 251, 254, 0.32)),
    url("/afbeeldingen/index-background.png?v=20260313a") !important;
  background-position: center top !important;
  background-size: min(1410px, 100vw) min(819px, 100vh) !important;
  background-repeat: no-repeat !important;
  background-attachment: scroll !important;
  background-color: #dbe5ef !important;
  overflow-x: hidden;
}

.auth-shell,
.auth-shell-top {
  width: min(1410px, 100vw);
  min-height: 100dvh;
  padding: 1.5rem;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}

.auth-shell-top {
  align-items: flex-start !important;
  padding-top: 200px !important;
}

.card {
  background-color: rgba(255, 255, 255, 0.985) !important;
  border: 1px solid rgba(255, 255, 255, 0.9) !important;
  border-radius: 0.5rem;
  padding: 1.5rem;
  box-shadow:
    0 34px 78px rgba(23, 37, 61, 0.34),
    0 14px 30px rgba(23, 37, 61, 0.22),
    0 0 0 1px rgba(140, 166, 196, 0.22) !important;
  color: #27190f;
  width: min(100%, 420px);
  max-height: calc(100dvh - 3rem);
  text-align: left;
  transform: translateY(-4px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.card .card-body,
.card form {
  width: 100%;
}

.card .card-body > * + *,
.card form > * + * {
  margin-top: 1rem;
}

.card .fs-1,
.card .fs-2,
.card .fs-3,
.card h1 {
  margin-bottom: 1rem;
  font-weight: 600;
  color: #27190f;
  line-height: 1.2;
}

.card .form-label,
.card .form-text,
.card p,
.card li,
.card code,
.card .alert,
.card .form-control,
.card .form-select,
.card .btn,
.card a,
.card span,
.card div {
  font-size: 14px;
}

.card .form-control,
.card input,
.card select,
.card textarea {
  width: 100%;
  box-sizing: border-box;
  border: 2px solid #f0f0f0;
  border-radius: 0.25rem;
  padding: 0.625rem;
}

.card .form-label {
  margin-bottom: 0.4rem;
  font-weight: 500;
}

.card .input-control {
  margin-bottom: 0;
}

.card .form-text {
  color: #6c757d;
  margin-top: 0.35rem;
}

.card .form-control:focus,
.card input:focus,
.card select:focus,
.card textarea:focus {
  border-color: #4959c5;
  box-shadow: none;
  outline: 0;
}

.card button,
.card .btn,
.card a.btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.75rem;
  border-radius: 0.375rem;
  font-weight: 500;
  margin-top: 1.3125rem;
}

.card .btn:not(.w-auto),
.card button[type="submit"] {
  width: 100%;
}

.card .btn-link {
  width: auto;
  padding: 0;
}

.auth-card-compact {
  width: min(100%, 420px) !important;
  padding-top: 0.625rem;
  padding-right: 1rem;
  padding-bottom: 0.75rem;
  padding-left: 1rem;
}

.card .alert {
  border-radius: 0.375rem;
  padding: 0.75rem 1rem;
  margin-bottom: 0;
}

.input-control .error,
.invalid-feedback {
  font-size: 0.75rem;
}

@media (max-height: 860px) {
  .auth-shell,
  .auth-shell-top {
    align-items: flex-start;
    padding-top: 1rem;
    padding-right: 1rem;
    padding-bottom: 1rem;
    padding-left: 1rem;
    min-height: auto;
  }

  .card {
    transform: none;
  }
}

@media (max-width: 1100px), (max-height: 760px) {
  .auth-shell,
  .auth-shell-top {
    padding: 1rem;
  }

  .card {
    width: min(100%, 380px);
    max-height: calc(100dvh - 2rem);
    padding: 1rem;
  }

  .card .fs-1,
  .card .fs-2,
  .card .fs-3,
  .card h1 {
    margin-bottom: 0.85rem;
    font-size: 1.8rem !important;
  }

  .card .form-label,
  .card .form-text,
  .card p,
  .card li,
  .card code,
  .card .alert,
  .card .form-control,
  .card .form-select,
  .card .btn,
  .card a,
  .card span,
  .card div {
    font-size: 0.95rem;
  }

  .card .form-control,
  .card input,
  .card select,
  .card textarea {
    padding: 0.5rem 0.625rem;
  }

  .card .alert {
    padding: 0.625rem 0.75rem;
  }

  .card button,
  .card .btn.btn-primary,
  .card a.btn.btn-primary {
    padding: 0.625rem;
  }
}

@media (max-height: 700px) {
  .auth-shell,
  .auth-shell-top {
    padding: 0.75rem;
  }

  .card {
    width: min(100%, 368px);
    max-height: calc(100dvh - 1.5rem);
    padding: 0.875rem;
  }

  .card .fs-1,
  .card .fs-2,
  .card .fs-3,
  .card h1 {
    font-size: 1.6rem !important;
    margin-bottom: 0.75rem;
  }

  .card .alert {
    padding: 0.5rem 0.625rem;
    margin-bottom: 0.75rem;
  }

  .card .form-control,
  .card input,
  .card select,
  .card textarea {
    padding: 0.4375rem 0.5625rem;
  }

  .card button,
  .card .btn.btn-primary,
  .card a.btn.btn-primary {
    padding: 0.5625rem;
  }
}
