/* PREVENEXT authentication — extends the established pharmacy console.
   Operate: recognize the service, complete the form, return to the application.
   Navy frame, cool-paper ground, white form, teal focus, one lime primary action.
   Built-in Keycloak templates retain semantics, validation and authentication behavior. */
@font-face {
  font-family: 'Archivo Narrow Variable';
  src: url('../fonts/archivo-narrow-latin-wght-normal.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

:root {
  --pn-navy: #06172b;
  --pn-ink: #082d5b;
  --pn-focus: #48d8d2;
  --pn-lime: #c7ee36;
  --pn-muted: #58708a;
  --pn-line: #d7e3ee;
  --pn-paper: #f4f8f8;
  --pf-global--FontFamily--sans-serif: 'Archivo Narrow Variable', 'Arial Narrow', sans-serif;
  --pf-global--FontFamily--heading--sans-serif: var(--pf-global--FontFamily--sans-serif);
  --pf-global--primary-color--100: #082d5b;
  --pf-global--primary-color--200: #06172b;
  color-scheme: light;
}

html.login-pf,
.login-pf body {
  min-height: 100%;
  background: var(--pn-paper);
  color: var(--pn-ink);
  font-family: var(--pf-global--FontFamily--sans-serif);
  font-size: 18px;
  line-height: 1.5;
}

.login-pf-page {
  padding: 0 0 48px;
}
.login-pf-page #kc-header {
  margin: 0 0 56px;
  padding: 30px 36px;
  background: var(--pn-navy);
  color: white;
  border-bottom: 1px solid var(--pn-focus);
}
#kc-header-wrapper {
  color: white;
  padding: 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0.075em;
  text-align: left;
  white-space: nowrap;
}
#kc-header-wrapper span {
  color: var(--pn-focus);
}
.login-pf-page .card-pf {
  width: min(500px, calc(100% - 40px));
  max-width: 620px;
  margin: 0 auto;
  padding: 40px;
  background: white;
  border: 1px solid var(--pn-line);
  border-radius: 0;
  box-shadow: none;
}
.login-pf-page .login-pf-header {
  margin-bottom: 32px;
  text-align: left;
}
h1#kc-page-title {
  margin: 0;
  color: var(--pn-ink);
  font-family: inherit;
  font-size: 38px;
  font-weight: 700;
  line-height: 1.12;
  text-align: left;
  text-wrap: balance;
}
#kc-content {
  margin-top: 0;
}
.login-pf-page .form-group {
  margin-bottom: 24px;
}
.login-pf-page label,
.login-pf-page .pf-c-form__label {
  color: var(--pn-ink);
  font-size: 17px;
  font-weight: 600;
}
.login-pf-page .pf-c-form-control {
  min-height: 48px;
  padding: 10px 12px;
  color: var(--pn-ink);
  background: white;
  border: 1px solid var(--pn-muted);
  border-radius: 0;
  font-family: inherit;
  font-size: 18px;
  caret-color: var(--pn-ink);
  box-shadow: none;
}
.login-pf-page .pf-c-form-control[aria-invalid='true'] {
  border-color: #a30000;
}
.login-pf-page input::placeholder {
  color: var(--pn-muted);
  opacity: 1;
}
.login-pf-page .pf-c-button {
  min-height: 48px;
  border-radius: 0;
  font-family: inherit;
  font-size: 18px;
  font-weight: 700;
  box-shadow: none;
}
.login-pf-page .pf-c-button::after {
  border-radius: 0;
}
.login-pf-page .pf-c-button.pf-m-primary {
  color: var(--pn-navy);
  background: var(--pn-lime);
  border: 1px solid transparent;
  text-shadow: none;
}
.login-pf-page .pf-c-button.pf-m-primary:hover {
  background: var(--pn-focus);
  color: var(--pn-navy);
}
.login-pf-page .pf-c-button.pf-m-control {
  min-width: 48px;
  color: var(--pn-ink);
  background: var(--pn-paper);
  border: 1px solid var(--pn-muted);
}
.login-pf-page .pf-c-button:disabled,
.login-pf-page .pf-c-button.pf-m-disabled {
  color: var(--pn-muted);
  background: var(--pn-line);
  cursor: not-allowed;
}
.login-pf a {
  color: var(--pn-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.login-pf a:hover {
  color: var(--pn-navy);
  text-decoration-thickness: 2px;
}
.login-pf-page :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--pn-focus);
  outline-offset: 3px;
  box-shadow: none;
}
.login-pf-page .login-pf-settings {
  margin-top: 4px;
  margin-bottom: 24px;
  gap: 16px;
}
#kc-form-buttons {
  margin-top: 24px;
}
#kc-info-wrapper {
  color: var(--pn-muted);
  padding: 20px;
  background: var(--pn-paper);
  font-size: 17px;
}
#kc-info {
  margin: 24px -40px -16px;
}
.login-pf-page .pf-c-alert__title,
.login-pf-page .kc-feedback-text {
  font-size: 16px;
  line-height: 1.5;
}
.login-pf-page .pf-c-alert {
  margin-bottom: 24px;
}
.prevenext-footer {
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid var(--pn-line);
  color: var(--pn-muted);
  font-size: 15px;
}
#kc-locale {
  position: relative;
  top: auto;
  right: auto;
  text-align: right;
  margin-bottom: 24px;
}
#kc-locale-dropdown button {
  min-height: 44px;
  color: var(--pn-ink);
  font: inherit;
}
#kc-locale-dropdown a {
  color: var(--pn-ink);
  font-size: 17px;
}
#kc-locale-dropdown ul {
  z-index: 10;
  top: 100%;
  border: 1px solid var(--pn-line);
}
.login-pf-page .subtitle {
  color: var(--pn-muted);
  font-size: 15px;
}
.login-pf-page .card-pf p.instruction {
  color: var(--pn-muted);
  line-height: 1.5;
}
.login-pf-page input[type='checkbox'] {
  accent-color: var(--pn-ink);
}
::selection {
  color: var(--pn-navy);
  background: var(--pn-focus);
}
html {
  scrollbar-color: #58708a #f4f8f8;
}
@media (max-width: 600px) {
  .login-pf-page #kc-header {
    margin-bottom: 24px;
    padding: 24px;
  }
  #kc-header-wrapper {
    font-size: 26px;
  }
  .login-pf-page .card-pf {
    width: calc(100% - 32px);
    padding: 28px 24px;
  }
  h1#kc-page-title {
    font-size: 32px;
  }
  #kc-info {
    margin-inline: -24px;
  }
  .login-pf-page .login-pf-settings {
    flex-wrap: wrap;
  }
}
