/* Veridian Health — strict login + approval UI */
:root {
  --vh-ink: #163b2a;
  --vh-forest: #1d4a33;
  --vh-olive: #6f7b45;
  --vh-olive-bg: #667044;
  --vh-olive-deep: #4f5b35;
  --vh-olive-soft: #8c9867;
  --vh-sage: #a8bc7d;
  --vh-cream: #f8f6ed;
  --vh-line: rgba(31, 69, 49, 0.14);
  --vh-card: rgba(255, 255, 252, 0.92);
  --vh-shadow: 0 28px 80px rgba(20, 48, 34, 0.18);
}

body#authentication,
body#registration,
body#password {
  min-height: 100vh;
  background: var(--vh-olive-bg) url('../img/login-bg.webp') right center / cover no-repeat fixed;
  background-blend-mode: soft-light;
  color: var(--vh-ink);
  font-family: 'Jost', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

body#authentication main,
body#registration main,
body#password main {
  min-height: 100vh;
}

body#authentication #header,
body#registration #header,
body#password #header,
body#authentication #footer,
body#registration #footer,
body#password #footer,
body#authentication #wrapper > .notifications-container,
body#registration #wrapper > .notifications-container,
body#password #wrapper > .notifications-container {
  display: none !important;
}

/* Hide every theme/widget region outside the authentication container. This is
   intentionally strict so guide bars, wrapper banners, headers and footers do
   not leak through on guest-facing account pages. */
body#authentication main > *:not(#wrapper),
body#registration main > *:not(#wrapper),
body#password main > *:not(#wrapper),
body#authentication #wrapper > *:not(.container),
body#registration #wrapper > *:not(.container),
body#password #wrapper > *:not(.container) {
  display: none !important;
}

body#authentication #wrapper,
body#registration #wrapper,
body#password #wrapper {
  position: relative;
  min-height: 100vh;
  margin: 0 !important;
  padding: clamp(24px, 5vw, 72px) !important;
  background:
    linear-gradient(90deg, rgba(79, 91, 53, 0.98) 0%, rgba(102, 112, 68, 0.94) 31%, rgba(117, 127, 79, 0.76) 53%, rgba(90, 101, 57, 0.42) 78%);
  display: flex;
  align-items: center;
}

body#authentication #wrapper > .container,
body#registration #wrapper > .container,
body#password #wrapper > .container {
  width: min(100%, 610px) !important;
  max-width: 610px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body#authentication #wrapper .breadcrumb,
body#registration #wrapper .breadcrumb,
body#password #wrapper .breadcrumb,
body#authentication .page-header,
body#registration .page-header,
body#password .page-header,
body#authentication .page-footer,
body#registration .page-footer,
body#password .page-footer {
  display: none !important;
}

body#authentication #wrapper .row,
body#registration #wrapper .row,
body#password #wrapper .row {
  margin: 0 !important;
}

body#authentication #content-wrapper,
body#registration #content-wrapper,
body#password #content-wrapper {
  width: 100% !important;
  max-width: none !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
}

body#authentication #main,
body#registration #main,
body#password #main {
  width: 100%;
}

body#authentication #content.page-content,
body#registration #content.page-content,
body#password #content.page-content {
  width: 100%;
  margin: 0 !important;
  padding: clamp(28px, 4.5vw, 48px) !important;
  border: 1px solid rgba(255, 255, 255, 0.7) !important;
  border-radius: 28px !important;
  background: var(--vh-card) !important;
  box-shadow: var(--vh-shadow) !important;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

body#registration #content.page-content {
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  scrollbar-width: thin;
}

body#authentication #content.page-content {
  display: flex;
  flex-direction: column;
}

body#authentication #content.page-content > .vh-auth-intro {
  order: -10;
}

body#authentication #content.page-content > hr {
  display: none;
}

.vh-auth-intro {
  margin: 0 0 28px;
}

.vh-auth-brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 26px;
  color: var(--vh-forest);
}


.vh-auth-brand-copy {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.18em;
}

.vh-auth-kicker {
  display: block;
  margin-bottom: 10px;
  color: var(--vh-olive);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.17em;
}

.vh-auth-intro h1,
.vh-pending-card h1 {
  margin: 0 0 14px;
  color: var(--vh-ink);
  font-size: clamp(31px, 4vw, 46px);
  line-height: 1.06;
  letter-spacing: -0.035em;
  font-weight: 650;
}

.vh-auth-intro p,
.vh-pending-card p {
  max-width: 50ch;
  margin: 0;
  color: #52665a;
  font-size: 15px;
  line-height: 1.65;
}

.vh-auth-approval-note,
.vh-pending-status {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 18px;
  padding: 9px 12px;
  border: 1px solid var(--vh-line);
  border-radius: 999px;
  background: rgba(238, 244, 227, 0.78);
  color: #45613f;
  font-size: 12px;
  font-weight: 600;
}

.vh-auth-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #78984c;
  box-shadow: 0 0 0 4px rgba(120, 152, 76, 0.13);
}

body#authentication .login-form,
body#registration .register-form,
body#password .forgotten-password {
  margin: 0;
}

body#authentication .login-form .form-group,
body#registration .register-form .form-group,
body#password .form-group {
  margin-bottom: 17px;
}

body#authentication label,
body#registration label,
body#password label,
body#authentication .form-control-label,
body#registration .form-control-label,
body#password .form-control-label {
  color: #294936 !important;
  font-size: 12px !important;
  font-weight: 650 !important;
  letter-spacing: 0.02em;
}

body#authentication .form-control,
body#registration .form-control,
body#password .form-control,
body#authentication input[type='email'],
body#authentication input[type='password'],
body#registration input,
body#registration select,
body#password input {
  min-height: 50px;
  border: 1px solid rgba(41, 73, 54, 0.17) !important;
  border-radius: 13px !important;
  background: rgba(255, 255, 255, 0.9) !important;
  color: #173927 !important;
  box-shadow: none !important;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

body#authentication .form-control:focus,
body#registration .form-control:focus,
body#password .form-control:focus,
body#authentication input:focus,
body#registration input:focus,
body#registration select:focus,
body#password input:focus {
  border-color: rgba(80, 116, 67, 0.72) !important;
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(106, 139, 75, 0.1) !important;
}

body#authentication .input-group .input-group-btn > .btn,
body#registration .input-group .input-group-btn > .btn,
body#password .input-group .input-group-btn > .btn {
  min-height: 50px;
  border: 1px solid rgba(41, 73, 54, 0.17) !important;
  border-left: 0 !important;
  border-radius: 0 13px 13px 0 !important;
  background: #f5f7f0 !important;
  color: var(--vh-forest) !important;
}

body#authentication .forgot-password,
body#registration .register-form > p,
body#authentication .no-account {
  margin-top: 13px;
  color: #607166;
  font-size: 13px;
}

body#authentication a,
body#registration a,
body#password a {
  color: #3f6b3e !important;
  font-weight: 600;
}

body#authentication a:hover,
body#registration a:hover,
body#password a:hover {
  color: #244f34 !important;
  text-decoration: none;
}

body#authentication .form-footer,
body#registration .form-footer,
body#password .form-footer {
  margin-top: 22px;
  text-align: left !important;
}

body#authentication .btn-primary,
body#registration .btn-primary,
body#password .btn-primary,
.vh-pending-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  border: 0 !important;
  border-radius: 13px !important;
  background: linear-gradient(135deg, #1d4a33, #496f40) !important;
  color: #fff !important;
  font-size: 14px;
  font-weight: 650;
  box-shadow: 0 12px 25px rgba(29, 74, 51, 0.2) !important;
  transition: transform 150ms ease, box-shadow 150ms ease, filter 150ms ease;
}

body#authentication .btn-primary:hover,
body#registration .btn-primary:hover,
body#password .btn-primary:hover,
.vh-pending-button:hover {
  transform: translateY(-1px);
  filter: brightness(1.04);
  box-shadow: 0 15px 30px rgba(29, 74, 51, 0.24) !important;
  color: #fff !important;
  text-decoration: none;
}

body#authentication .alert,
body#registration .alert,
body#password .alert {
  border: 0;
  border-radius: 13px;
  font-size: 13px;
}

body#registration .custom-checkbox,
body#registration .custom-radio {
  color: #52665a;
  font-size: 13px;
}

body#registration .form-control-comment {
  color: #849087;
  font-size: 11px;
}

/* Pending page is self-contained so it also works with themes other than Veridian. */
.vh-pending-shell {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  padding: clamp(24px, 5vw, 72px);
  background:
    linear-gradient(90deg, rgba(79, 91, 53, 0.98) 0%, rgba(102, 112, 68, 0.94) 34%, rgba(117, 127, 79, 0.72) 62%, rgba(90, 101, 57, 0.38) 82%),
    var(--vh-olive-bg) url('../img/login-bg.webp') right center / cover no-repeat;
  background-blend-mode: normal, soft-light;
  font-family: 'Jost', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.vh-pending-card {
  width: min(100%, 570px);
  padding: clamp(30px, 5vw, 52px);
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 28px;
  background: rgba(255, 255, 252, 0.93);
  box-shadow: var(--vh-shadow);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.vh-pending-button {
  margin-top: 26px;
}

@media (max-width: 767px) {
  body#authentication,
  body#registration,
  body#password {
    background-position: 68% center;
  }

  body#authentication #wrapper,
  body#registration #wrapper,
  body#password #wrapper {
    padding: 18px !important;
    background: linear-gradient(180deg, rgba(79, 91, 53, 0.96), rgba(102, 112, 68, 0.92));
  }

  body#authentication #content.page-content,
  body#registration #content.page-content,
  body#password #content.page-content,
  .vh-pending-card {
    padding: 28px 22px !important;
    border-radius: 22px !important;
  }

  body#registration #content.page-content {
    max-height: calc(100vh - 36px);
  }

  .vh-pending-shell {
    padding: 18px;
    background:
      linear-gradient(180deg, rgba(79, 91, 53, 0.94), rgba(102, 112, 68, 0.90)),
      var(--vh-olive-bg) url('../img/login-bg.webp') 68% center / cover no-repeat;
    background-blend-mode: normal, soft-light;
  }
}

@media (prefers-reduced-motion: reduce) {
  body#authentication *,
  body#registration *,
  body#password *,
  .vh-pending-shell * {
    transition: none !important;
  }
}
