@import url("shared-tokens.css");

:root {
  --c2-bg: var(--surface);
  --c2-surface: var(--surface);
  --c2-text: var(--text);
  --c2-muted: var(--muted);
  --c2-line: var(--line);
  --c2-accent: var(--accent);
  --c2-accent-soft: var(--accent-soft);
  --c2-secondary: var(--secondary);
}

html,
body {
  background: var(--c2-surface) !important;
  background-image: none !important;
  color: var(--c2-text);
  font-family: var(--font-family-sans);
}

button,
input,
select,
textarea {
  font: inherit;
}

body.login-pf,
body.kcBodyClass {
  background: var(--c2-surface) !important;
  background-image: none !important;
}

#kc-page-title {
  color: var(--c2-text);
  text-align: center;
}

#kc-page-title,
.pf-v5-c-login__main-header,
.pf-c-login__main-header {
  display: none !important;
}

#kc-header,
#kc-header-wrapper {
  display: block !important;
}

#kc-header {
  width: 100%;
  display: flex !important;
  justify-content: center;
  align-items: center;
  margin: 0 0 18px 0 !important;
  padding: 0 !important;
}

#kc-header-wrapper {
  position: relative;
  height: 78px;
  width: min(360px, calc(100vw - 48px));
  margin: 0 auto !important;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

#kc-header-wrapper::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/logo-asiatravelplan.svg") center center / contain no-repeat;
}

#kc-header-wrapper img,
#kc-header img,
.kc-logo-text,
.kc-logo-image {
  opacity: 0 !important;
}

.card-pf,
.pf-c-login__main,
.pf-c-card {
  background: var(--c2-surface) !important;
  border: 1px solid var(--c2-line) !important;
  border-radius: 14px !important;
  box-shadow: var(--shadow) !important;
}

.pf-c-button.pf-m-primary,
#kc-login,
input[type="submit"] {
  background: var(--c2-accent) !important;
  border-color: var(--c2-accent) !important;
  color: var(--surface) !important;
  border-radius: 10px !important;
}

.pf-c-button.pf-m-primary:hover,
#kc-login:hover {
  filter: brightness(0.95);
}

.pf-c-form-control {
  border: 1px solid var(--c2-line) !important;
  border-radius: 10px !important;
}

.pf-c-form-control:focus {
  outline: 2px solid var(--c2-secondary) !important;
  outline-offset: 0 !important;
}

a {
  color: var(--c2-secondary) !important;
}

/* Keycloak legacy login layout */
.login-pf-page {
  background: var(--c2-surface) !important;
  background-image: none !important;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow-y: auto;
  padding: 24px 16px;
}

.login-pf-page .card-pf {
  width: min(420px, calc(100vw - 32px));
  max-width: min(420px, calc(100vw - 32px));
  margin: 0 auto !important;
}

#kc-content-wrapper,
#kc-form,
#kc-form-wrapper {
  max-width: min(360px, calc(100vw - 48px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Keycloak modern (PatternFly) login layout */
.pf-c-login,
.pf-c-login__container,
.pf-c-login__main,
.pf-v5-c-login,
.pf-v5-c-login__container,
.pf-v5-c-login__main,
.pf-v5-c-page,
.pf-v5-c-page__main,
.pf-v5-c-page__main-section {
  background: var(--c2-surface) !important;
  background-image: none !important;
  min-height: 100vh;
}

.pf-c-login__container,
.pf-c-login__main,
.pf-v5-c-login__container,
.pf-v5-c-login__main {
  max-width: min(420px, calc(100vw - 32px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.pf-c-login__main-body,
.pf-c-form,
.pf-c-form__group,
.pf-v5-c-login__main-body,
.pf-v5-c-form,
.pf-v5-c-form__group,
#kc-form,
#kc-form-wrapper {
  max-width: min(360px, calc(100vw - 48px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.pf-v5-c-form-control,
.pf-c-form-control,
#username,
#password {
  width: 100% !important;
  max-width: min(360px, calc(100vw - 48px)) !important;
}

.login-pf-page .login-pf-page-header,
.login-pf-page .login-pf-signup,
.pf-v5-c-login__main-footer,
.pf-c-login__main-footer {
  margin: 0 !important;
  padding: 0 !important;
}

#kc-form-buttons {
  max-width: min(360px, calc(100vw - 48px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#kc-content,
#kc-content-wrapper,
#kc-form,
#kc-form-wrapper,
#kc-form-login {
  width: 100% !important;
}

.pf-c-input-group,
.pf-c-input-group .pf-c-form-control,
.pf-c-input-group__main,
.pf-c-input-group__item {
  width: 100%;
}

@media (max-width: 900px), (hover: none) and (pointer: coarse) {
  html,
  body,
  body.login-pf,
  body.kcBodyClass {
    min-height: auto !important;
    height: auto !important;
  }

  body.login-pf,
  body.kcBodyClass,
  .login-pf-page,
  .pf-v5-c-login,
  .pf-c-login,
  .pf-v5-c-login__container,
  .pf-c-login__container,
  .pf-v5-c-page,
  .pf-v5-c-page__main,
  .pf-v5-c-page__main-section {
    display: block !important;
    min-height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--c2-surface) !important;
    background-image: none !important;
  }

  #kc-header,
  #kc-header-wrapper,
  .login-pf-page .login-pf-page-header,
  .login-pf-page .login-pf-signup,
  .pf-v5-c-login__main-footer,
  .pf-c-login__main-footer {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    overflow: hidden !important;
  }

  .card-pf,
  .pf-v5-c-login__main,
  .pf-c-login__main,
  .pf-c-card {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 8px 10px 10px 10px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: var(--c2-surface) !important;
    transform: none !important;
  }

  .card-pf .card-pf-body,
  .pf-v5-c-login__main-body,
  .pf-c-login__main-body,
  .pf-c-card__body,
  #kc-content,
  #kc-content-wrapper,
  #kc-form,
  #kc-form-wrapper,
  .pf-v5-c-form,
  .pf-c-form {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #kc-content-wrapper,
  #kc-form-wrapper,
  #kc-form {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .pf-v5-c-form__group,
  .pf-c-form__group,
  #kc-form .form-group {
    margin-top: 0 !important;
    margin-bottom: 2px !important;
    padding-top: 0 !important;
  }

  .pf-v5-c-form__group:first-child,
  .pf-c-form__group:first-child,
  #kc-form .form-group:first-child,
  #kc-form .form-group:first-of-type {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  label,
  .pf-v5-c-form__label,
  .pf-c-form__label {
    font-size: var(--font-size-body-sm) !important;
    line-height: 1.15 !important;
    margin-bottom: 3px !important;
    margin-top: 0 !important;
  }

  .pf-v5-c-form-control,
  .pf-c-form-control,
  #username,
  #password,
  #kc-login,
  input[type="submit"] {
    min-height: 38px !important;
    font-size: var(--font-size-body) !important;
  }

  #password + button,
  .pf-v5-c-input-group__item button,
  .pf-c-input-group__item button {
    min-height: 38px !important;
  }

  #kc-form-buttons {
    margin-top: 6px !important;
  }

  #kc-login,
  input[type="submit"] {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
