/* Techlab custom login theme (matches public app look & feel) */

@font-face {
  font-family: "Roboto";
  src: url("../fonts/RobotoMono-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Roboto";
  src: url("../fonts/RobotoMono-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Public app tokens */
  --techlab-primary: #100f0e; /* bg */
  --techlab-secondary: #F09329; /* accent */

  --techlab-panel: #100F0E;
  --techlab-border: #363636;
  --techlab-text: #ffffff;
  --techlab-label: #BDBDBD;
  --techlab-muted: rgba(255, 255, 255, 0.7);
  --techlab-form-errors: #FF6E6E;
}

.pf-c-alert {
  --pf-c-alert--m-inline--m-success--BackgroundColor: rgba(255, 255, 255, 0.05);
  --pf-c-alert--m-inline--m-danger--BackgroundColor: rgba(255, 255, 255, 0.05);
  --pf-c-alert--m-inline--m-warning--BackgroundColor: rgba(255, 255, 255, 0.05);
  --pf-c-alert--m-inline--m-info--BackgroundColor: rgba(255, 255, 255, 0.05);
}

.login-pf {
  height: auto;
  background: none;
  background-image: none;
  background-color: var(--techlab-primary);
  color: var(--techlab-text);
  font-family: "Roboto", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.login-pf body {
  background: inherit;
  background-image: inherit;
  background-color: inherit;
  color: inherit;
  font-family: inherit;
  -webkit-font-smoothing: inherit;
}

.login-pf .login-pf-page {
  height: 100%;
  padding: 0;
  margin: 0;
  position: relative;
  overflow: hidden;
}

@media (width >= 1024px) {
  .login-pf .login-pf-page {
    min-height: 800px;
  }
}

/* ------------------------- Container */
.kc-container {
  margin-inline: auto;
  max-width: 100%;
  height: 100%;
  padding-inline: 12px;
  display: flex;
  gap: 40px;
  max-width: 580px;
}
@media (width >= 768px) {
  .kc-container {
    padding-inline: 20px;
  }
}
@media (width >= 1024px) {
  .kc-container {
    max-width: 1440px;
    min-height: 100dvh;
  }
}
@media (width >= 1440px) {
  .kc-container {
    padding-inline: 40px;
  }
}
@media (width >= 1920px) {
  .kc-container {
    align-items: center;
  }
}

/* ------------------------- Form card (left part) */
.kc-card-pf-wrapper {
  padding: 16px 0;
  width: 100%;
}
@media (width >= 768px) {
  .kc-card-pf-wrapper {
    padding: 40px 0;
  }
}
@media (width >= 1024px) {
  .kc-card-pf-wrapper {
    max-width: 600px;
  }
}

/* =================== header (logo + language switcher) */

.login-pf .login-pf-page-header {
  margin-bottom: 32px;
}
@media (width >= 768px) {
  .login-pf .login-pf-page-header {
    margin-bottom: 65px;
  }
}

.login-pf .kc-header-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

/* =================== Custom language switcher */

.login-pf .c-localizations #kc-current-locale-link {
  display: none !important;
}

.login-pf .c-localizations-custom {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.login-pf .c-localizations-custom__link {
  border: 1px solid white;
  text-align: center;
  color: white;
  background: #100F0E;
  font-size: 14px;
  font-weight: 500;
  line-height: 145%;
  transition: all 0.25s ease-in;
  padding: 6px 7px;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  text-underline-offset: 0px;
  border-radius: 0px;
  outline: none !important;
  box-shadow: none !important;
  text-decoration-color: transparent !important;
}

.login-pf .c-localizations-custom__link:hover {
  color: #F09329;
}

.login-pf .c-localizations-custom__link.is-active {
  color: #100F0E;
  background: white;
  pointer-events: none;
}

/* =================== Logo */

.login-pf .kc-logo-text,
.login-pf #kc-header-wrapper {
  display: block;
  width: 141px;
  height: 32px;
  margin: 0;
  background: url("../img/header-logo.svg") no-repeat left / contain;
  text-indent: -9999px;
  overflow: hidden;
}
@media (width >= 768px) {
  .login-pf .kc-logo-text,
  .login-pf #kc-header-wrapper {
    width: 159px;
    height: 36px;
  }
}

/* =================== Login "card" */
.login-pf .card-pf {
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0px;
  backdrop-filter: none;
  margin: 0;
  padding: 0;
}

.login-pf .card-pf .login-pf-header {
  margin-bottom: 0;
}

.login-pf .kc-page-back-btn {
  display: inline-block;
  background: transparent;
  color: var(--techlab-secondary);
  font-weight: 500;
  font-size: 16px;
  line-height: 150%;
  outline: none;
  box-shadow: none;
  border: none;
  width: fit-content;
  margin-bottom: 32px;
  transition: color 0.3s ease-in-out;
}
@media (width >= 768px) {
  .login-pf .kc-page-back-btn {
    padding: 0 16px;
  }
}

.login-pf .kc-page-back-btn:hover {
  color: white;
}

.login-pf #kc-page-title {
  text-align: left;
  margin: 0 0 24px 0;
  font-weight: 500;
  font-size: 30px;
  line-height: 105%;
}

.login-pf #kc-page-title span {
  color: var(--techlab-secondary);
  display: inline-block;
  /* margin-right: -22px; */
}

@media (width >= 768px) {
  .login-pf #kc-page-title {
    font-size: 38px;
    line-height: 110%;
  }
}

/* Headings / labels */

.login-pf h1,
.login-pf h2,
.login-pf h3,
.login-pf h4,
.login-pf h5 {
  color: var(--techlab-text);
}

.login-pf label,
.login-pf .control-label {
  color: var(--techlab-label);
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 500;
  padding: 0;
  text-align: left;
}

.login-pf .subtitle,
.login-pf .help-block,
.login-pf .kc-feedback-text {
  color: var(--techlab-muted);
}

.login-pf .pf-m-error {
  color: var(--techlab-form-errors);
}

/* ------------------------------------ Inputs */

/* checkbox */
.login-pf .checkbox {
  margin: 0;
  padding: 0;
  padding-left: 20px;
  min-height: 20px;
}

.login-pf .checkbox label {
  margin: 0;
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
}

.login-pf .checkbox input[type="checkbox"] {
  flex-shrink: 0;
  appearance: none;
  -webkit-appearance: none;
  width: 1.25rem;
  height: 1.25rem;
  border-width: 2px;
  border-style: solid;
  border-color: var(--techlab-secondary);
  border-radius: 0.125rem;
  background: transparent;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  margin-top: 0.25rem;
}

.login-pf .checkbox input[type="checkbox"]:checked {
  background: var(--techlab-secondary);
  border-color: var(--techlab-secondary);
}

.login-pf .checkbox input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 0.25rem;
  top: 0;
  width: 0.5rem;
  height: 0.75rem;
  border-right: 2px solid var(--techlab-text);
  border-bottom: 2px solid var(--techlab-text);
  transform: rotate(45deg);
}

.login-pf .checkbox input[type="checkbox"]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* form group */
.login-pf .form-group {
  margin-bottom: 24px;
}

.login-pf .form-group:has(.pf-m-error) input {
  border-bottom-color: var(--techlab-form-errors) !important;
}

.login-pf input {
  font-family: "Roboto", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

.login-pf input[type="text"],
.login-pf input[type="password"],
.login-pf input[type="email"],
.login-pf .form-control {
  background: var(--techlab-primary);
  border: 0px;
  border-radius: 0px;
  border-bottom: 1px solid var(--techlab-border);
  color: var(--techlab-text);
  height: auto;
  padding: 8.5px 8px;
  font-size: 16px;
  font-weight: 500;
}

@media (width >= 768px) {
  .login-pf input[type="text"],
  .login-pf input[type="password"],
  .login-pf input[type="email"],
  .login-pf .form-control {
    padding: 11.5px 8px;
  }
}

.login-pf input[type="submit"] {
  margin-top: 24px;
}

.login-pf input:-webkit-autofill,
.login-pf input:-webkit-autofill:hover,
.login-pf input:-webkit-autofill:focus,
.login-pf input:-webkit-autofill,
.login-pf input:-webkit-autofill {
  -webkit-text-fill-color: #fff !important;
  -webkit-box-shadow: 0 0 0 1000px #100F0E inset !important;
  /* transition: background-color 9999s ease-in-out 0s; */
}

.login-pf input::placeholder {
  color: rgba(255, 255, 255, 0.45);
  font-size: 16px;
  font-weight: 500;
}

.login-pf input:focus,
.login-pf input:focus-visible, 
.login-pf input:focus-within {
  border-radius: 0px !important;
  border-bottom-color: var(--techlab-secondary) !important;
  box-shadow: none !important;
  outline: none !important;
}

.form-group:has(.pf-c-button.pf-m-control) .pf-c-input-group {
  position: relative;
}

.form-group .pf-c-input-group:has(.feroot-injected-element) .pf-c-button.pf-m-control {
  background: var(--techlab-primary) !important;
  color: var(--techlab-text) !important;
  border: none !important;
  border-bottom: 1px solid var(--techlab-border) !important;
  border-radius: 0px !important;
  box-shadow: none !important;
  outline: none !important;
  padding-right: 2px !important;
}

.form-group .pf-c-input-group:has(.feroot-injected-element) .pf-c-button.pf-m-control::after {
  content: none !important;
}

.form-group .pf-c-input-group:has(.feroot-injected-element):has(input:focus) .pf-c-button.pf-m-control,
.form-group .pf-c-input-group:has(.feroot-injected-element):has(input:focus-visible) .pf-c-button.pf-m-control,
.form-group .pf-c-input-group:has(.feroot-injected-element):has(input:focus-within) .pf-c-button.pf-m-control {
  border-bottom-color: var(--techlab-secondary) !important;
}

.login-pf input+.pf-c-button.pf-m-control {
  background: var(--techlab-primary);
  border: none;
  border-radius: 0px;
  color: var(--techlab-text);
  box-shadow: none;
  outline: none;
  padding: 0;
  position: absolute;
  right: 0;
  top: 14px;
  z-index: 999;
}

.login-pf input+.pf-c-button.pf-m-control::after {
  content: none !important;
}

/* Buttons */
.login-pf .btn-default,
.login-pf .btn-primary,
.login-pf .pf-c-button.pf-m-primary,
.login-pf .pf-v5-c-button.pf-m-primary {
  text-decoration: none !important;
  background-color: var(--techlab-secondary);
  border: 1px solid var(--techlab-secondary);
  color: var(--techlab-primary);
  border-radius: 0;
  font-weight: 500;
  font-size: 16px;
  line-height: 150%;
  transition: all 0.2s ease-in-out;
  padding: 7px 11px;
  background-image: none !important;
}
@media (width >= 768px) {
  .login-pf .btn-default,
  .login-pf .btn-primary,
  .login-pf .pf-c-button.pf-m-primary,
  .login-pf .pf-v5-c-button.pf-m-primary {
    padding: 11px;
  }
}

.login-pf .btn-primary:hover,
.login-pf .btn-primary:focus,
.login-pf .pf-c-button.pf-m-primary:hover,
.login-pf .pf-c-button.pf-m-primary:focus,
.login-pf .pf-v5-c-button.pf-m-primary:hover,
.login-pf .pf-v5-c-button.pf-m-primary:focus {
  background-color: transparent;
  border-color: var(--techlab-secondary);
  color: var(--techlab-secondary);
}

.login-pf .btn-default {
  background: transparent;
  border: 1px solid var(--techlab-secondary);
  color: var(--techlab-secondary);
}

.login-pf .btn-default:hover,
.login-pf .btn-default:focus {
  background: var(--techlab-secondary);
  border: 1px solid var(--techlab-secondary);
  color: var(--techlab-primary);
}

/* Links */
.login-pf a {
  color: var(--techlab-secondary);
  text-decoration: underline;
  text-decoration-color: rgba(240, 147, 41, 0.65);
  text-underline-offset: 2px;
  transition: all 0.2s ease-in-out;
  outline: none !important;
}

.login-pf a:hover {
  color: #ffffff;
  text-decoration-color: #ffffff;
}

/* Error / warning areas still readable on dark background */
.login-pf .alert {
  border-radius: 10px;
}

/* ----------------------------- Lang switcher, Dropdowns */
/* 
.login-pf .pf-c-dropdown #kc-current-locale-link {
  background: transparent;
  box-shadow: none;
  border: 1px solid var(--techlab-border);
  outline: none;
  padding: 2px 12px;
}

.login-pf .pf-c-dropdown__toggle,
.login-pf .pf-v5-c-dropdown__toggle {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: var(--techlab-text);
  font-family: "Roboto", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

.login-pf .pf-c-dropdown__toggle:hover,
.login-pf .pf-c-dropdown__toggle:focus,
.login-pf .pf-v5-c-dropdown__toggle:hover,
.login-pf .pf-v5-c-dropdown__toggle:focus {
  border-color: var(--techlab-secondary);
  box-shadow: 0 0 0 3px rgba(240, 147, 41, 0.25);
}

.login-pf .pf-c-dropdown__toggle-icon,
.login-pf .pf-c-dropdown__toggle-text,
.login-pf .pf-v5-c-dropdown__toggle-icon,
.login-pf .pf-v5-c-dropdown__toggle-text {
  color: var(--techlab-text);
}

.login-pf .menu-button-links {
  width: fit-content;
}

.login-pf .menu-button-links:hover .pf-c-dropdown__menu {
  display: block;
  top: 100%;
}

.login-pf .pf-c-dropdown__menu {
  display: none;
  padding: 0;
  min-width: auto;
  left: 0;
  right: auto;
}

.login-pf .pf-c-dropdown__menu,
.login-pf .pf-v5-c-dropdown__menu {
  background: #0f0e0d;
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
}

.login-pf .pf-c-dropdown__menu-item,
.login-pf .pf-v5-c-dropdown__menu-item {
  color: var(--techlab-text);
  font-family: "Roboto", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  border: none;
  box-shadow: none;
  outline: none;
}

.login-pf .pf-c-dropdown__menu-item:hover,
.login-pf .pf-c-dropdown__menu-item:focus,
.login-pf .pf-v5-c-dropdown__menu-item:hover,
.login-pf .pf-v5-c-dropdown__menu-item:focus {
  background: rgba(240, 147, 41, 0.16);
  color: #ffffff;
}

.login-pf .pf-c-dropdown__menu-item.pf-m-selected,
.login-pf .pf-v5-c-dropdown__menu-item.pf-m-selected {
  background: rgba(240, 147, 41, 0.22);
}

.login-pf .pf-c-dropdown__separator,
.login-pf .pf-v5-c-dropdown__separator {
  background: rgba(255, 255, 255, 0.12);
} */

/* Techlab template overrides (template.ftl / login.ftl) */
.tl-login-shell {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  align-items: stretch;
  max-width: 1100px;
  margin: 0 auto;
  padding: 28px 16px;
}

.tl-login-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--techlab-border);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  overflow: hidden;
}

.tl-login-visual-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.95;
}

.tl-login-main {
  display: flex;
  align-items: center;
}

.tl-card-header {
  padding: 22px 22px 0;
}

.tl-card-body {
  padding: 8px 22px 22px;
}

.tl-card-footer {
  padding: 0 22px 22px;
  color: var(--techlab-muted);
}

.tl-title {
  margin: 0 0 6px;
}

.tl-subtitle {
  margin: 0 0 10px;
  color: var(--techlab-muted);
}

.tl-info-row {
  display: flex;
  gap: 8px;
  align-items: baseline;
}

@media (max-width: 860px) {
  .tl-login-shell {
    grid-template-columns: 1fr;
  }
  .tl-login-visual {
    display: none;
  }
}

/* ------------------------- Image (right part) */
.kc-main-image {
  display: none;
  width: 100%;
  align-items: center;
  justify-content: end;
  background: url("../img/kc-login-background.png") repeat left top;
}
  
.kc-main-image img {
  object-fit: cover;
  object-position: left;
  height: 608px;
}

@media (width >= 1024px) {
  .kc-main-image {
    display: flex;
    padding: 51px 0 51px 71px;
    margin-right: -20px;
  }
}

@media (width >= 1440px) {
  .kc-main-image {
    margin-right: -40px;
  }
}

@media (width >= 1445px) {
  .kc-main-image  {
    position: absolute;
    top: 0;
    right: 0;
    width: 50vw;
    height: 100%;
    align-items: baseline;
  }
}

@media (width >= 1920px) {
  .kc-main-image {
    align-items: center;
  }
}

/* ------------------------- Alerts */
.login-pf .pf-c-alert {
  margin-bottom: 24px;
  margin-top: 0;
  background-color: rgba(255, 255, 255, 0.05);
}

.login-pf .pf-c-alert .pf-c-alert__title {
  font-weight: 500;
}

.login-pf #kc-totp-settings {
  padding-left: 24px;
}

.login-pf #kc-totp-settings li {
  margin-bottom: 16px;
} 

.login-pf #kc-totp-settings ul {
  list-style: disc;
}