/* Foundry IAM palette sampled from the approved platform reference. */
:root {
  color-scheme: dark;
  --foundry-background: #091426;
  --foundry-surface: #121f36;
  --foundry-border: #37476f;
  --foundry-text: #fafafa;
  --foundry-muted: #93aac4;
  --foundry-accent: #b8cce4;
}

html.login-pf {
  min-height: 100%;
  background: var(--foundry-background);
}

.login-pf body {
  min-height: 100vh;
  color: var(--foundry-text);
  font-family: Roboto, "Segoe UI", Arial, sans-serif;
  background: var(--foundry-background);
}

.login-pf-page {
  min-height: 100vh;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 32px 16px;
}
.login-pf body { margin: 0; }
.login-pf-page .login-pf-page-header { width: 100%; margin-bottom: 0; }

#kc-header { color: var(--foundry-text); }
#kc-header-wrapper {
  padding: 0 0 28px;
  font-size: 0;
  line-height: 0;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: none;
}
#kc-header-wrapper::before {
  content: "";
  display: block;
  width: min(280px, 80vw);
  height: 50px;
  margin: 0 auto;
  /* Original WMF Leonardo vector, embedded to avoid additional runtime mounts. */
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTQuMDY1IDQ0LjgxOCIgY2xhc3M9ImgtZnVsbCB3LWF1dG8iPgoJCQkJCTxkZWZzPgoJCQkJCQk8c3R5bGU+CgkJCQkJCQkuYSB7ZmlsbDojZmZmZmZmO30KCQkJCQkJPC9zdHlsZT4KCQkJCQk8L2RlZnM+CgkJCQkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE0Ljk1MSAtMjcwLjE4MikiPgoJCQkJCQk8cGF0aCBjbGFzcz0iYSIgZD0iTTE1Mi4xMzYsMzE5Ljk0OUgxMzQuMzExbDYtMjMuMDQ4aDMuOGwtNSwxOS4yMjFoMTQuMDJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzAuNzMyIC0xNS44MzMpIiAvPgoJCQkJCQk8cGF0aCBjbGFzcz0iYSIgZD0iTTIwNS4zMzYsMzE5Ljk0OWgtMTguMjlMMTkzLjA0LDI5Ni45aDE4LjI5MWwtMSwzLjgyN0gxOTUuODI0bC0xLjMzNyw1LjE0M2gxMy43NzVsLTEsMy44MjhIMTkzLjQ5MWwtMS42NzMsNi40MjNoMTQuNTE0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMS45ODMgLTE1LjgzMykiIC8+CgkJCQkJCTxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0Ljk1MSAyNzAuMTgyKSI+CgkJCQkJCQk8cGF0aCBjbGFzcz0iYSIgZD0iTTI2MC43NDUsMzE5Ljk0OUgyNDkuMzI3Yy0xLjgzMiwwLTMuMTMtLjQ3OC0zLjg1Ny0xLjQyLS43NTUtLjk3Ni0uODg3LTIuNDM1LS4zOTMtNC4zMzhsMy4wMzQtMTEuNjZjLjk1OC0zLjY4NCwzLjQwNy01LjYzMiw3LjA4My01LjYzMmgxMS40MTdjMS44MzIsMCwzLjEzLjQ3NywzLjg1OSwxLjQxOC43NTUuOTc4Ljg4NywyLjQzNy4zOTIsNC4zMzhsLTMuMDMzLDExLjY2MWMtLjk1OCwzLjY4NC0zLjQwNyw1LjYzMi03LjA4NCw1LjYzMm0tNi40MTctMTkuMjIyYTIuMzIsMi4zMiwwLDAsMC0yLjQ2MywxLjlsLTMuMDQ5LDExLjcyNWExLjU0OSwxLjU0OSwwLDAsMCwuMDkxLDEuMzQzLDEuNTY3LDEuNTY3LDAsMCwwLDEuMjg4LjQyOWgxMS40MTdhMi4zMiwyLjMyLDAsMCwwLDIuNDYzLTEuOWwzLjA0OS0xMS43MjRhMS4yMTMsMS4yMTMsMCwwLDAtMS4zNzktMS43NzJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTUxLjE1IC0yODYuMDE0KSIgLz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJhIiBkPSJNMzMyLjA2MiwzMTkuOTQ5aC0xLjkwOUwzMTYuNTE1LDMwMi42OWwtNC40ODksMTcuMjU5aC0zLjM2MWw2LTIzLjA0OEgzMTcuOGwuMTQxLjE4NSwxMi40NzksMTYuMjYzTDMzNC43LDI5Ni45aDMuMzYyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE4OS4wMDUgLTI4Ni4wMTUpIiAvPgoJCQkJCQkJPHBhdGggY2xhc3M9ImEiIGQ9Ik00NjQuNTQ1LDMxOS45NDlINDYwLjU2bC0xLjQzNy0xMC4wNTloLTguN0w0NDcuOCwzMTkuOTQ5aC0zLjc3OGw1Ljk5NC0yMy4wNUg0NjQuOWMxLjgzMywwLDMuMTMyLjQ3NywzLjg1OSwxLjQxOC43NTUuOTc3Ljg4NywyLjQzNy4zOTEsNC4zMzhsLS40MTQsMS42Yy0uODQyLDMuMjM0LTIuNzM0LDUuMDk0LTUuNjMyLDUuNTM0Wm0tMTMuMTI4LTEzLjg4OGgxMS4xYTIuMzE3LDIuMzE3LDAsMCwwLDIuNDYyLTEuOWwuNDM1LTEuNjY1YTEuMjE0LDEuMjE0LDAsMCwwLTEuMzgtMS43NzJINDUyLjhaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjY5LjIyIC0yODYuMDE0KSIgLz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJhIiBkPSJNNTIwLjYzNCwzMTkuOTQ4aC0xNi4xNmw2LTIzLjA1SDUyNi41YzIuMzE5LDAsMy44MzYuNTA1LDQuNjM3LDEuNTQyLjg1LDEuMS45MzIsMi44MjYuMjU0LDUuNDMybC0yLjQ1OSw5LjQ1Yy0xLjIyNCw0LjcwNi0zLjYyNyw2LjYyNS04LjMsNi42MjVtLTExLjM4Ni0zLjgyOEg1MjEuNWMyLjMsMCwzLjA5Mi0uNjM0LDMuNjk0LTIuOTUzbDIuNDUtOS40MTljLjM0Ni0xLjMyOS4zNTktMi4wNzIuMDQyLTIuNDgzLS4yODctLjM3Mi0uOTIyLS41MzgtMi4wNTMtLjUzOEg1MTMuMjUyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMwNS4wNDEgLTI4Ni4wMTQpIiAvPgoJCQkJCQkJPHBhdGggY2xhc3M9ImEiIGQ9Ik01ODkuODA2LDMxOS45NDhINTc4LjM4N2MtMS44MzEsMC0zLjEyOC0uNDc3LTMuODU3LTEuNDE5LS43NTUtLjk3Ny0uODg3LTIuNDM2LS4zOTItNC4zMzhsMy4wMzItMTEuNjZjLjk2LTMuNjg1LDMuNDA4LTUuNjMzLDcuMDgzLTUuNjMzaDExLjQxOWMxLjgzMiwwLDMuMTMuNDc5LDMuODU4LDEuNDE5Ljc1NS45NzcuODg3LDIuNDM1LjM5Myw0LjMzOGwtMy4wMzQsMTEuNjYxYy0uOTU5LDMuNjg0LTMuNDA4LDUuNjMyLTcuMDg0LDUuNjMybS02LjQxOC0xOS4yMjJhMi4zMTQsMi4zMTQsMCwwLDAtMi40NjEsMS45bC0zLjA1LDExLjcyNGExLjU1LDEuNTUsMCwwLDAsLjA5LDEuMzQ1LDEuNTY3LDEuNTY3LDAsMCwwLDEuMjg3LjQyOGgxMS40MTlhMi4zMiwyLjMyLDAsMCwwLDIuNDYzLTEuOWwzLjA0OS0xMS43MjRhMS41NDcsMS41NDcsMCwwLDAtLjA5LTEuMzQ0LDEuNTY2LDEuNTY2LDAsMCwwLTEuMjg5LS40MjhaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ2LjE1MSAtMjg2LjAxMykiIC8+CgkJCQkJCQk8cGF0aCBjbGFzcz0iYSIgZD0iTTM5OS44NzcsMzE5Ljc4NWgtNC4wMWwyLjYyMS0xMC4xMzlIMzgzLjVsLTIuNjE1LDEwLjEzOWgtNC4wMDlsNC41LTE3LjQ0NWMuOTg2LTMuNzk0LDMuNDA2LTUuNzE2LDcuMTkxLTUuNzE2aDExLjQxN2MxLjg2NywwLDMuMi40OTEsMy45NDcsMS40NjFoMGMuNzc5LDEuMDA3LjkxNSwyLjUuNDExLDQuNDM0Wk0zODQuNTQsMzA1LjU5NGgxNC45OTRsLjg0OS0zLjI4NmExLjUzNywxLjUzNywwLDAsMC0uMDczLTEuMjQ1LDEuNTU4LDEuNTU4LDAsMCwwLTEuMi0uMzg1SDM4Ny42OTVhMi4xNjgsMi4xNjgsMCwwLDAtMi4zNTMsMS44MTNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI5LjQyNSAtMjg1Ljg1MikiIC8+CgkJCQkJCQk8cGF0aCBjbGFzcz0iYSIgZD0iTTY4LjI3NiwzMzguNzgzYy0xMy43NTktMy42NzgtMTkuNzM4LTkuMzY3LTE5LjczOC05LjM2N3M1Ljg5NSw5Ljk1MiwxNS4xNSwxMy44NzdsLjUxOS4yMTcuMTUxLjA1M3YwYy4xNzMuMDY2LjM0Ni4xMzIuNTIuMTkyYS42NzQuNjc0LDAsMCwwLC43NTktLjJsMy4wMjktMy42NjdhLjY4My42ODMsMCwwLDAtLjM5LTEuMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTM0Ljg1NSAtMzA1LjI4NCkiIC8+CgkJCQkJCQk8cGF0aCBjbGFzcz0iYSIgZD0iTTcyLjk3MiwzMTYuNTc5YTE5LjE0MSwxOS4xNDEsMCwwLDAtMi4yNDgtLjE1N2MtNS41NywwLTIwLjMyOCwyLjY2NS0yMC4zMjgsMi42NjVsMjIuNDg3LDMuMTg3LjAzMiwwLC4wMzEtLjAxM2EuMzY5LjM2OSwwLDAsMCwuMS0uMDYyLjY0NS42NDUsMCwwLDAsLjI1My0uNTA1Yy4wNjktLjY3MS4yODQtMi45ODYuMzctNC4yMzlhLjgzOS44MzksMCwwLDAtLjctLjg4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzUuOTU1IC0yOTcuNTg0KSIgLz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJhIiBkPSJNNTAuMzk0LDI5NC4yYzcuMDExLTYuNDI1LDE5LjA4Mi04LjcsMjAuMzE2LTguOTU2YS42ODEuNjgxLDAsMCwwLC40NDktMS4wMzdjLS40NDItLjcwNi0yLjEyNS0zLTIuNzc0LTMuODA2YS43LjcsMCwwLDAtLjc1OS0uMjIybC0uMDk0LjAzMy0uMDUyLjAxOXYtLjAxNWwtLjcxNi4yN0M1OC4wMzgsMjgzLjgxLDUyLjcsMjkwLjksNTAuMzk0LDI5NC4yIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzUuOTU1IC0yNzYuMDg2KSIgLz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJhIiBkPSJNNDEuNTc0LDI4OC4zYTI0LjQ4MiwyNC40ODIsMCwwLDEsLjY4OS0zLjE2NGMyLjMzNC02LjgwOCw3LjQ0LTExLjg4Niw5LjUyNi0xMy43NTFhLjY4OS42ODksMCwwLDAsLjE4LS43OS42NzkuNjc5LDAsMCwwLS42ODktLjRsLTQuNDE2LjM2NGExLjQxNiwxLjQxNiwwLDAsMC0uNDUyLjA5NC40LjQsMCwwLDAtLjE5NC4xNDFsLS43MzIuOTQ0Yy0uMjEzLjI3NS0uNDI1LjU3NC0uNjA4Ljg2YS45NjcuOTY3LDAsMCwwLS4wODIuMTI3bC0uMzcuNjA4QTI3LjQ2NywyNy40NjcsMCwwLDAsNDEuNTc0LDI4OC4zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzAuNjY5IC0yNzAuMTgyKSIgLz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJhIiBkPSJNMjcuODEsMjk5Ljc4N2EyNC4zMTMsMjQuMzEzLDAsMCwxLTIuNTIxLTkuNDg3bC0uMDE3LS41NDlhLjc1OS43NTksMCwwLDAtLjUzMi0uNzA3Ljc1MS43NTEsMCwwLDAtLjgzMy4zLDIzLjY4MSwyMy42ODEsMCwwLDAtMS44NDcsMy45ODUuNzQ0Ljc0NCwwLDAsMCwuMDEyLjU3NmMxLjEwOSwyLjYsNS43MzcsNS44OCw1LjczNyw1Ljg4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTkuMTMzIC0yODEuMzQxKSIgLz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJhIiBkPSJNMjAuNDM4LDMzNC4zYS43Mi43MiwwLDAsMC0uMTMyLjU0MSwyMi45NDYsMjIuOTQ2LDAsMCwwLDEuMDI1LDQuMy43MjUuNzI1LDAsMCwwLC43NzEuNDUyYy40NC0uMDA5LjYxMy0uNjY3Ljc2OS0xLjExNmE1My41ODIsNTMuNTgyLDAsMCwxLDMuODE0LTkuMDY3cy00LjM3NCwyLjM1Ni02LjI0Nyw0Ljg4NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE4LjExOCAtMzA1LjI4NSkiIC8+CgkJCQkJCQk8cGF0aCBjbGFzcz0iYSIgZD0iTTUwLjgzNCwzNDcuMjFsLS4zMjMtLjM0My0uMDMxLS4wMzRBMzAuMTQ0LDMwLjE0NCwwLDAsMSw0MS42MjIsMzMwLjNzLTEuNzUzLDEyLjc2Nyw0Ljg5NSwyMC4xNzdhLjU4My41ODMsMCwwLDAsLjIxMS4xMDdoMGwuMjA1LjA0LDUuMDI3LS44MDkuMTE2LS4wMzRhLjY1Ni42NTYsMCwwLDAsLjM0Mi0uMzQ1LjY4My42ODMsMCwwLDAtLjE0OC0uNzdjLS4zMTYtLjMwNi0uODExLS43ODgtMS40MzQtMS40NiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMwLjYzMiAtMzA1LjgxKSIgLz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJhIiBkPSJNMjMuMDQ3LDMxOC4wMDhsLTIuMjctLjQ5YTExLjA1OCwxMS4wNTgsMCwwLDEtMy45OTMtMS42MzQsMi40NTksMi40NTksMCwwLDEtLjItLjE4Ny43MzMuNzMzLDAsMCwwLS43MTEtLjIxNmwtLjAzMSwwYS43NTguNzU4LDAsMCwwLS41MjcuNTQ4LDIxLjA0NywyMS4wNDcsMCwwLDAtLjM1MiwzLjU2NS42NDUuNjQ1LDAsMCwwLC4zMzMuNDE4bC4yMjMuMDY2LjEzNC0uMDE4YzEuMDY3LS4xNTQsNC4wNDktMS4wNzQsNS4yODMtMS40NjNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTQuOTUxIC0yOTcuMDEzKSIgLz4KCQkJCQkJPC9nPgoJCQkJCTwvZz4KCQkJCTwvc3ZnPgo=) center / contain no-repeat;
}

.login-pf-page .card-pf {
  width: 100%;
  box-sizing: border-box;
  max-width: 480px;
  padding: 32px;
  border: 1px solid var(--foundry-border);
  border-radius: 18px;
  background: var(--foundry-surface);
  box-shadow: 0 20px 60px rgb(0 0 0 / 35%);
}

#kc-page-title, .control-label, .pf-c-form__label,
#kc-attempted-username, .login-pf-page .card-pf p,
.login-pf-page .login-pf-settings, #kc-info-wrapper {
  color: var(--foundry-text);
}
#kc-content-wrapper { margin-top: 24px; }
#kc-info-wrapper { background: transparent; }
.subtitle, .instruction, .pf-c-form__helper-text { color: var(--foundry-muted); }

.login-pf-page #username,
.login-pf-page #password,
.login-pf-page input.pf-c-form-control,
.login-pf-page select.pf-c-form-control,
.login-pf-page textarea.pf-c-form-control {
  min-height: 44px;
  height: 44px;
  padding: 10px 12px;
  box-sizing: border-box;
  font: inherit;
  color: var(--foundry-text);
  background: var(--foundry-background);
  border: 1px solid var(--foundry-border);
  border-radius: 8px;
}
.login-pf-page input::placeholder { color: var(--foundry-muted); }
.login-pf-page input { accent-color: var(--foundry-accent); }
.login-pf-page a { color: var(--foundry-accent); }
.login-pf-page a:hover { color: #fff; }
.login-pf-page :focus-visible {
  outline: 2px solid var(--foundry-muted);
  outline-offset: 3px;
}
.login-pf-page .pf-c-button.pf-m-primary {
  min-height: 44px;
  color: var(--foundry-text);
  background: #122445;
  border: 1px solid var(--foundry-border);
  border-radius: 8px;
  font-weight: 600;
}
.login-pf-page .pf-c-button.pf-m-primary:hover { background: #17375e; }
.login-pf-page .pf-c-button.pf-m-primary::after { border: 0; }
.login-pf-page .pf-c-button.pf-m-control,
.login-pf-page .kc-social-item {
  color: var(--foundry-text);
  background: #122445;
  border-color: var(--foundry-border);
}
.login-pf-page .kc-social-section { border-color: var(--foundry-border); }
.login-pf-page .kc-social-section h2 { color: var(--foundry-muted); }
.login-pf-page .kc-social-links { padding-left: 0; list-style: none; }
.login-pf-page .kc-social-item {
  min-height: 44px;
  border: 1px solid var(--foundry-border);
  border-radius: 8px;
}
.login-pf-page .kc-social-item::after { border: 0; }
.login-pf-page .kc-social-section hr { border-color: var(--foundry-border); }
.login-pf-page .pf-c-dropdown__menu {
  background: var(--foundry-surface);
  border: 1px solid var(--foundry-border);
}
.login-pf-page .pf-c-dropdown__menu-item { color: var(--foundry-text); }
.login-pf-page .pf-c-dropdown__menu-item:hover { background: #122445; }
.login-pf-page .pf-c-alert.pf-m-danger {
  background: #450a0a;
  color: #fecaca;
}
.login-pf-page .pf-c-alert.pf-m-warning {
  background: #422006;
  color: #fef3c7;
}
.login-pf-page .pf-c-alert.pf-m-success {
  background: #052e16;
  color: #bbf7d0;
}
.login-pf-page .pf-c-alert.pf-m-info {
  background: #172554;
  color: #dbeafe;
}
.login-pf-page .pf-c-alert__title { color: inherit; }
.login-pf-page .pf-c-form__helper-text.pf-m-error { color: #fca5a5; }
.login-pf-page #kc-totp-settings { color: var(--foundry-text); }
.login-pf-page #kc-totp-secret-qr-code {
  padding: 8px;
  background: #fff;
}

@media (max-width: 480px) {
  .login-pf-page { padding: 24px 12px; }
  .login-pf-page .card-pf { padding: 24px 20px; }
  #kc-header-wrapper { font-size: 0; }
}

/* Keep the password and reveal control a single, consistently sized field. */
.login-pf-page .pf-c-input-group {
  display: flex;
  align-items: stretch;
  width: 100%;
  border: 1px solid var(--foundry-border);
  border-radius: 8px;
  background: var(--foundry-background);
}
.login-pf-page .pf-c-input-group #password {
  flex: 1 1 0;
  width: 0;
  min-width: 0;
  height: 42px;
  min-height: 42px;
  border: 0;
  border-radius: 7px 0 0 7px;
}
.login-pf-page .pf-c-input-group .pf-c-button {
  flex: 0 0 48px;
  min-height: 42px;
  margin: 0;
  padding: 0;
  color: var(--foundry-text);
  background: var(--foundry-background);
  border: 0;
  border-left: 1px solid var(--foundry-border);
  border-radius: 0 7px 7px 0;
}
.login-pf-page .pf-c-input-group .pf-c-button::after { border: 0; }
.login-pf-page .pf-c-input-group .pf-c-button:hover { background: #122445; }
.login-pf-page .pf-c-input-group:focus-within {
  outline: 2px solid var(--foundry-muted);
  outline-offset: 3px;
}
.login-pf-page input:-webkit-autofill,
.login-pf-page input:-webkit-autofill:hover,
.login-pf-page input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--foundry-text);
  -webkit-box-shadow: 0 0 0 1000px var(--foundry-background) inset;
  caret-color: var(--foundry-text);
}
.login-pf-page input:autofill {
  color: var(--foundry-text);
  background: var(--foundry-background);
  box-shadow: 0 0 0 1000px var(--foundry-background) inset;
}
