/* MAIN TEMPLATE */

.login-pf {
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

body {
  padding: 0 !important;
  margin: 0 !important;
}

#kc-content {
  height: 100% !important;
}

main {
  height: 100% !important;
  display: flex;
  flex-direction: column;
}

#kc-form {
  margin-bottom: 16px;
}

/* Maintenance Info */
/* Iframe */
.iframe-wrapper {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

iframe {
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
  height: 100% !important;
  border: none;
}

/* blue footer*/
.hamburg-footer {
  background-color: #003063;
  height: 76px !important;
  min-height: 76px !important;
  z-index: 3;
  bottom: 0;
  position: relative;
}

/* red footer ship*/
.hamburg-footer-ship {
  z-index: 4;
  width: 91px;
  bottom: 61px;
  left: 0 !important;
  position: absolute;
}

.hamburg-footer-logo {
  z-index: 4;
  right: 16px;
  bottom: 16px;
  position: absolute;
}

/* white login card */
.login-pf-page {
  height: 100% !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
}

/* Update password template */
ul {
  list-style: disc;
  padding-left: 16px;
}

#kc-reset-password-form {
  margin-bottom: 16px !important;
}

/* ------------- FOR ALL SCHULDOCK TEMPLATES INCLUDING LOGO AND TEXT (LOGIN, ...)  -------------  */
.bsb-card-header-wrapper {
  margin-bottom: 48px;
  font-size: 14px;
}

/* formats content of template */
div.card-pf {
  box-shadow: 0 0px 0px 0px;
  border-top: 0px solid;
  margin: 0;
  max-width: 360px;
  flex-grow: 1;
  padding: 24px !important;
  padding-bottom: 36px !important;
  z-index: 2;
  overflow-y: auto;
  background-color: #ffffff;
}

/* Text of template */
.bsb-text-headline {
  font-weight: 600 !important;
  line-height: normal !important;
  color: #212121 !important;
  font-size: 24px !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

.bsb-text-param {
  font-weight: normal !important;
  line-height: normal !important;
  color: #212121 !important;
  font-size: 14px !important;
  margin-bottom: 16px !important;
}

.bsb-list-items {
  font-weight: normal !important;
  line-height: normal !important;
  color: #212121 !important;
  font-size: 14px !important;
}

.bsb-otp-credential-list-item {
  font-weight: normal !important;
  line-height: normal !important;
  color: #212121 !important;
  font-size: 14px !important;
  list-style-type: none !important;
}

/* BSB logo */
.bsb-header-logo {
  background-image: url("../img/schuldock-logo.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left;
  height: 48px;
  width: 135px;
}

/* Prevent mobile browsers to zoom in on input fields */
input,
select,
textarea {
  font-size: 12px !important;
}

/* input fields */
input[type="text"],
input[type="password"],
input[type="email"] {
  background-color: #f3f4f6;
  border: 1px solid #6B7280;
  width: 100% !important;
  height: 38px;
  padding: 0;
  padding-left: 10px;
  box-sizing: border-box;
}

/* ------------- LOGIN AND PASSWORD UPDATE ------------- */

.login-username-name {
  font-weight: 600 !important;
  line-height: 21px !important;
  color: #212121 !important;
  font-size: 14px !important;
}

.login-username-email {
  font-weight: 400 !important;
  line-height: 17px !important;
  color: #212121 !important;
  font-size: 14px !important;
}

.login-password {
  font-weight: 600 !important;
  line-height: 17px !important;
  color: #212121 !important;
  font-size: 14px !important;
}

.otp-label {
  font-weight: 600 !important;
  line-height: 21px !important;
  color: #212121 !important;
  font-size: 14px !important;
}

.button-text {
  font-weight: 600 !important;
  line-height: 17px !important;
  color: #ffffff !important;
  font-size: 14px !important;
}

.link-text {
  font-weight: 700 !important;
  line-height: 17px !important;
  color: #003063 !important;
  font-size: 14px !important;
}

/* Error styling */
.pf-m-error {
  color: #e10019 !important;
}

/* wrong username or password*/
#input-error {
  color: #e10019 !important;
}

/* wrong username or password*/
#input-error2 {
  color: #e10019 !important;
}

/* Error Color for empty email field*/
.error-username-empty {
  color: #e10019 !important;
  display: none;
}

/* Error Message after failed login */
.error-login-keycloak {
  display: none;
}

/* Error color for input fields after failed login */
/* prevent extra big red border on the bottom */
.pf-c-form-control[aria-invalid="true"] {
  border-color: red;
  background-image: none;
  border-bottom-width: 1px;
}

/* Error Message for wrong email field*/
.error-username-not-empty-noemail {
  color: #e10019 !important;
  display: none;
}

/* Show error message "no username" if empty emailinput field */
input[type="email"]:placeholder-shown + .error-username-empty {
  display: block;
}

/* Show error message of failed login after emailinput */
input[type="email"]:not(:placeholder-shown) ~ .error-login-keycloak {
  display: block;
}

/* Show error message of failed login after passwordinput */
input[type="password"]:placeholder-shown ~ .error-login-keycloak {
  display: block;
}

/* Forgot Password text*/
.forgot-password {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
  font-weight: bold;
}

/* Login Button*/
.btn-lg {
  border-radius: 5px !important;
  border-style: none !important;
  background-color: #003063 !important;
  height: 40px !important;
  width: 100% !important;
  color: #ffffff !important;
}

/* Cancel button looks like a link */
.btn-cancel {
  margin-top: 8px !important;
  width: 100%;
  background: none !important;
  border: none;
  padding: 0 !important;
  font-family: arial, sans-serif;
  color: #069 !important;
  text-decoration: underline;
  cursor: pointer;
  margin-bottom: 40px;
}

/* Alerts */
.alert-info {
  background-color: #dbeafeb2 !important;
  border-color: #3b82f6 !important;
  color: #3b82f6 !important;
}

.alert-info-text {
  color: #3b82f6 !important;
}

.alert-success {
  background-color: #e4f8f0b2 !important;
  border-color: #1ea97c !important;
  color: #136c34 !important;
}

.success-icon {
  color: #1ea97c;
}

.alert-warning {
  background-color: #fff8f3 !important;
  border-color: #d46213 !important;
  color: #d46213 !important;
}

.alert-error {
  background-color: #ffe7e6b2 !important;
  border-color: #ff5757 !important;
  color: #ff5757 !important;
}

.alert-error-text {
  color: #ff5757 !important;
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    display: none;
  }
}

.pf-c-alert {
  margin-top: 16px !important;
  border-top-width: 0 !important;
  border-left-style: solid !important;
  border-left-width: 6px !important;
  border-radius: 6px !important;
  box-shadow: none;
  padding: 17px !important;
  display: flex;
  flex-direction: row;
  --pf-c-alert__icon--Color: none;
  --pf-c-alert__title--Color: none;
  animation: fadeOut 1s ease-out forwards;
  animation-delay: 7s;
  position: relative;
}

.pf-c-alert__icon {
  width: 40px !important;
}

.pf-c-alert__title {
  font-weight: normal !important;
}

.pf-c-alert.pf-m-warning {
  --pf-c-alert--BorderTopColor: none;
  --pf-c-alert__icon--Color: none;
  --pf-c-alert__title--Color: none;
}

/* Login Button */
#kc-form-buttons {
  margin-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}

/* Input fields */
.form-group {
  margin-bottom: 16px !important;
}

/* prevents text from moving up */
.pf-c-form-control:focus {
  padding-bottom: 0 !important;
}

/* Round Inputs*/
.pf-c-form-control {
  border-radius: 5px;
}

/* password-input field div */
.pf-c-input-group {
  display: flex;
  flex-direction: column;
  position: relative;
}

.pf-c-input-group input:not([type="checkbox"]):not([type="radio"]),
.pf-c-input-group textarea {
  flex: none;
}

.show-password-button {
  position: absolute;
  right: 5px;
  border: 0;
  background-color: transparent;
  z-index: 10;
}

.pf-c-button.pf-m-control {
  background-color: transparent;
  --pf-c-button--after--BorderColor: transparent;
}

/* Gap between label and input */
.pf-c-form__label-text {
  margin-bottom: 8px !important;
}

/* ------------- DESKTOP MEDIA QUERRIES ------------- */

@media (min-width: 768px) {
  /* eliminate margin between header and card */
  .login-pf-page .login-pf-page-header {
    margin-bottom: 0px;
  }

  /* background picture */
  .login-pf body {
    background-image: url("../img/login-background.webp") !important;
    background-size: cover;
    background-color: #3390c2 !important;
    height: 100%;
  }

  .hamburg-footer-ship {
    z-index: 3;
    height: 56px;
    width: 156px;
    bottom: 48px;
    left: 0 !important;
    position: absolute;
  }
}

/* ------------- ADDITIONAL STYLING ------------- */

/* hide not needed header */
#kc-header {
  color: #ededed;
  overflow: hidden !important;
  white-space: nowrap;
  height: 0px;
  width: initial;
}

/* not needed header logo text*/
div.kc-logo-text {
  background-image: none;
}

/* hide not needed header */
.login-pf-header,
.login-pf-page-header,
#kc-header-wrapper {
  display: none !important;
  margin: 0px !important;
}

/* wrapper where site templates are nested in the main template */
#kc-content-wrapper {
  height: 100% !important;
  margin-top: 0 !important;
}

/* hide info */
#kc-info {
  display: none;
}

/* info wrapper where infos are nested in */
#kc-info-wrapper {
  font-size: 13px;
  padding: 15px 35px;
  background-color: #f0f0f0;
}

/* settings */
.login-pf-page .login-pf-settings {
  display: none !important;
}

.login-config-totp,
#kc-totp-secret-key {
  font-weight: 600 !important;
  background-color: #fff;
  color: #333333;
  font-size: 16px;
  padding: 0px !important;
}

.pf-c-tile {
  --pf-c-tile--before--BorderColor: transparent;
  --pf-c-tile--PaddingTop: 4px;
  --pf-c-tile--PaddingLeft: 4px;
  --pf-c-tile--PaddingRight: 4px;
  --pf-c-tile--PaddingBottom: 4px;
}

.pf-c-tile.pf-m-selected,
.pf-c-tile:hover {
  --pf-c-tile--after--BackgroundColor: transparent;
}
