:root {
  --suri-login-bg: #0f2742;
  --suri-login-surface: var(--color-bg-surface);
  --suri-login-border: var(--color-border-default);
  --suri-login-fg: var(--color-fg-primary);
  --suri-login-secondary: var(--color-fg-secondary);
  --suri-login-muted: var(--color-fg-muted);
  --suri-login-primary: #2b537c;
  --suri-login-primary-hi: #4f7198;
  --suri-login-danger: #d63a3a;
}

html,
body,
.login-pf {
  width: 100%;
  min-height: 100%;
  background: var(--suri-login-bg) !important;
}

body {
  color: var(--suri-login-fg);
}

.pf-v5-c-login,
.login-pf-page {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 24px;
  overflow: auto;
  color: var(--suri-login-fg);
  background: var(--suri-login-bg) !important;
}

.pf-v5-c-login__container {
  display: block;
  width: 440px;
  max-width: 100%;
  padding: 48px 40px;
  border: 1px solid var(--suri-login-border);
  border-radius: 24px;
  background: var(--suri-login-surface);
  box-shadow:
    0 22px 54px rgb(2 12 27 / 26%),
    0 6px 18px rgb(2 12 27 / 14%);
  transform: translateY(-32px);
}

#kc-header {
  margin: 0 0 8px;
  padding: 0;
}

#kc-header-wrapper {
  display: grid;
  justify-items: center;
  margin: 0;
  padding: 0;
  color: transparent;
  font-size: 0;
  line-height: 0;
  text-align: center;
  text-transform: none;
}

#kc-header-wrapper::before {
  display: block;
  width: clamp(147px, 41vw, 187px);
  height: clamp(147px, 41vw, 187px);
  background: url("../img/surimap-logo-login.svg") center / contain no-repeat;
  content: "";
  filter: blur(0.35px);
}

#kc-header-wrapper > svg,
#kc-header-wrapper img {
  display: none;
}

.pf-v5-c-login__main,
.card-pf {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.pf-v5-c-login__main-header {
  display: block !important;
  margin: 0 0 32px;
  padding: 0 !important;
  text-align: center;
}

.pf-v5-c-login__main-body,
#kc-content {
  padding: 0 !important;
  margin: 0 !important;
}

#kc-page-title {
  position: static !important;
  display: grid;
  justify-items: center;
  gap: 6px;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  border: 0;
  white-space: normal;
}

.suri-login-brand-subtitle,
.suri-login-brand-title,
.suri-login-account-title {
  display: block;
}

.suri-login-brand-subtitle {
  color: var(--suri-login-secondary);
  font-size: 18px;
  font-weight: 800;
  line-height: 1.35;
}

.suri-login-brand-title {
  color: var(--suri-login-fg);
  font-size: 36px;
  font-weight: 900;
  line-height: 1.1;
}

.suri-login-account-title {
  margin-top: 8px;
  color: var(--suri-login-secondary);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
}

#kc-form {
  margin: 0;
}

.pf-c-form,
.pf-v5-c-form {
  display: block;
}

.pf-c-form__group,
.pf-v5-c-form__group {
  margin-bottom: 16px;
}

.pf-c-form__group-label,
.pf-v5-c-form__group-label {
  padding-bottom: 0 !important;
}

.pf-c-form__label,
.pf-v5-c-form__label {
  display: block;
  margin-bottom: 6px;
  color: var(--suri-login-secondary);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.25;
}

.pf-c-form__label-text,
.pf-v5-c-form__label-text {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.pf-c-input-group,
.pf-v5-c-input-group {
  display: flex;
  align-items: stretch;
}

.pf-c-input-group__item.pf-m-fill,
.pf-v5-c-input-group__item.pf-m-fill {
  flex: 1 1 auto;
  min-width: 0;
}

.pf-c-form-control,
.pf-v5-c-form-control {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid #717171;
  border-radius: 8px;
  color: var(--suri-login-fg);
  background: var(--suri-login-surface);
  box-shadow: none;
}

.pf-c-form-control input,
.pf-v5-c-form-control input,
#username,
#password {
  width: 100%;
  height: 42px;
  padding: 0;
  border: 0;
  color: var(--suri-login-fg);
  background: transparent;
  font-size: 16px;
  font-weight: 550;
  outline: none;
  box-shadow: none;
}

.pf-c-form-control:focus-within,
.pf-v5-c-form-control:focus-within,
#username:focus,
#password:focus {
  border-color: var(--suri-login-primary-hi);
  box-shadow: 0 0 0 2px rgb(79 113 152 / 24%);
}

.pf-c-form__actions,
.pf-v5-c-form__actions,
#kc-form-buttons {
  display: block;
  margin-top: 8px;
  margin-right: 0 !important;
  margin-left: 0 !important;
  padding-top: 0 !important;
}

#kc-login,
.pf-c-button.pf-m-primary,
.pf-v5-c-button.pf-m-primary {
  box-sizing: border-box;
  width: 100%;
  min-height: 52px;
  margin: 0;
  border: 1px solid var(--suri-login-primary-hi);
  border-radius: 8px;
  color: var(--suri-board-fg-primary);
  background: linear-gradient(180deg, #37628e 0%, #2b537c 56%, #21466d 100%);
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 18%),
    0 2px 7px rgb(21 47 76 / 22%);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.2;
}

#kc-login:hover,
.pf-c-button.pf-m-primary:hover,
.pf-v5-c-button.pf-m-primary:hover {
  border-color: #6687ad;
  color: #ffffff;
  background: linear-gradient(180deg, #426f9d 0%, #335f8b 56%, #28517b 100%);
}

#kc-login:focus-visible,
.pf-c-button.pf-m-primary:focus-visible,
.pf-v5-c-button.pf-m-primary:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--suri-login-primary-hi) 64%, transparent);
  outline-offset: 3px;
}

.pf-c-input-group__item.pf-m-fill .pf-c-form-control,
.pf-v5-c-input-group__item.pf-m-fill .pf-v5-c-form-control {
  border-radius: 8px;
}

#password-show-password,
#reset-login,
.pf-c-input-group__item:not(.pf-m-fill),
.pf-v5-c-input-group__item:not(.pf-m-fill),
.kc-tooltip-text {
  display: none;
}

#input-error,
.pf-c-alert.pf-m-danger,
.pf-v5-c-alert.pf-m-danger,
.pf-v5-c-alert.pf-m-info,
.kc-feedback-text {
  color: var(--suri-login-danger);
  font-size: 14px;
  font-weight: 700;
}

.pf-v5-c-login__main-footer,
#kc-info {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
}

.pf-v5-c-login__main-footer + .pf-v5-c-login__main-footer {
  display: none;
}

.pf-v5-c-login__main > .pf-v5-c-login__main-footer {
  display: none;
}

#kc-info-wrapper {
  display: block;
  box-sizing: border-box;
  width: 100%;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #eeeeee;
  flex: none;
}

.suri-login-help {
  margin: 0;
  color: var(--suri-login-muted);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
}

#kc-info-wrapper > * {
  display: block;
}

@media (max-width: 520px) {
  .pf-v5-c-login,
  .login-pf-page {
    align-items: flex-start;
    padding: max(40px, calc(env(safe-area-inset-top) + 32px)) 16px 16px;
  }

  .pf-v5-c-login__container {
    padding: 36px 24px;
    transform: none;
  }

  #kc-header-wrapper::before {
    width: min(155px, 51vw);
    height: min(155px, 51vw);
  }

  .suri-login-brand-title {
    font-size: 32px;
  }

  .suri-login-brand-subtitle {
    font-size: 16px;
  }
}
