:root {
  color-scheme: light;
  --pl-ink: #182b33;
  --pl-muted: #667579;
  --pl-accent: #49684e;
  --pl-paper: #f6f5ef;
  --pf-v5-global--primary-color--100: #49684e;
  --pf-v5-global--primary-color--200: #314e36;
  --pf-v5-global--link--Color: #365c3e;
  --pf-v5-global--link--Color--hover: #213b27;
  --pf-v5-global--FontFamily--text: "Segoe UI", Arial, sans-serif;
  --pf-v5-global--FontFamily--heading: "Segoe UI", Arial, sans-serif;
}
html, body { min-height: 100%; background: var(--pl-paper); color: var(--pl-ink); }
body#keycloak-bg { margin: 0; background: var(--pl-paper); font-family: "Segoe UI", Arial, sans-serif; }
body * { box-sizing: border-box; }
.pf-v5-c-login { min-height: 100svh; padding: 48px 7vw 24px; background: transparent; }
.pf-v5-c-login__container { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 480px); grid-template-areas: "brand brand" "story main" "footer footer"; align-items: center; gap: 44px 8vw; max-width: 1220px; margin: 0 auto; }
#kc-header.pl-brand { grid-area: brand; display: flex; align-items: center; gap: 12px; color: var(--pl-ink); font-size: 24px; font-weight: 700; letter-spacing: -.9px; padding: 0; margin: 0; }
.pl-brand-light { font-weight: 400; }
.pl-mark { display: flex; gap: 3px; transform: rotate(-14deg); }
.pl-mark span { display: block; width: 12px; height: 28px; border-radius: 3px; background: var(--pl-accent); }
.pl-mark span:last-child { margin-top: 8px; background: #c0cfaa; }
.pl-story { grid-area: story; align-self: center; padding: 20px 0; }
.pl-eyebrow { display: block; font-size: 10px; line-height: 1.6; font-weight: 700; letter-spacing: 2px; color: var(--pl-accent); }
.pl-story h2 { margin: 20px 0 22px; font-size: clamp(38px, 4.5vw, 58px); line-height: 1.13; letter-spacing: -2.7px; font-weight: 500; }
.pl-story h2 em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; color: var(--pl-accent); }
.pl-story > p { max-width: 370px; margin: 0; color: var(--pl-muted); font-size: 16px; line-height: 1.8; }
.pl-art { position: relative; width: 272px; height: 172px; margin: 32px 0 8px; }
.pl-orbit { position: absolute; width: 248px; height: 125px; left: 0; top: 18px; border: 1px solid #c9d2bf; border-radius: 50%; }
.pl-orbit-one { transform: rotate(-22deg); }
.pl-orbit-two { transform: rotate(22deg); }
.pl-art-center { position: absolute; left: 91px; top: 42px; width: 70px; height: 70px; display: grid; place-content: center; grid-auto-flow: column; border-radius: 20px; background: var(--pl-accent); color: #fff; font: italic 48px Georgia, serif; box-shadow: 0 12px 28px #49684e1c; transform: rotate(-8deg); }
.pl-art-center span { color: #d4dfc0; }
.pl-orbit-dot { position: absolute; height: 12px; width: 12px; background: #b8c7a2; border: 3px solid var(--pl-paper); border-radius: 50%; top: 17px; left: 211px; }
.pl-story-note { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--pl-muted); }
.pl-note-dot { width: 5px; height: 5px; flex: 0 0 5px; border-radius: 50%; background: #94a681; }
.pf-v5-c-login__main { grid-area: main; width: 100%; max-width: 480px; border: 1px solid #e2e5dc; border-radius: 22px; background: #fff; box-shadow: 0 18px 60px #25302b08; overflow: hidden; color: var(--pl-ink); }
.pf-v5-c-login__main-header { padding: 38px 38px 24px; }
#kc-page-title { margin: 10px 0; font-size: 30px; line-height: 1.2; font-weight: 600; letter-spacing: -1px; color: var(--pl-ink); }
.pl-form-description { font-size: 14px; line-height: 1.6; color: var(--pl-muted); }
.pl-app-context { font-size: 12px; line-height: 1.6; margin-top: 12px; padding: 6px 11px; width: fit-content; border: 1px solid #e5eadf; border-radius: 7px; background: #f7f9f4; color: #49634c; }
.pf-v5-c-login__main-body { padding: 0 38px 30px; }
.pf-v5-c-form { gap: 21px; }
.pf-v5-c-form__label-text { font-size: 13px; font-weight: 600; color: var(--pl-ink); }
.pf-v5-c-form-control { border: 1px solid #dce1d9; border-radius: 9px; --pf-v5-c-form-control--after--BorderBottomWidth: 0; --pf-v5-c-form-control--before--BorderWidth: 0; }
.pf-v5-c-form-control::before, .pf-v5-c-form-control::after { border: 0; }
.pf-v5-c-form-control:focus-within { outline: 2px solid #718f64; outline-offset: 2px; }
.pf-v5-c-form-control > input { min-height: 46px; font-size: 16px; padding: 10px 13px; color: var(--pl-ink); background: transparent; border-radius: 9px; }
.pf-v5-c-button.pf-m-control { color: var(--pl-muted); background: transparent; border-radius: 8px; }
.pf-v5-c-button.pf-m-primary { min-height: 47px; padding: 12px 16px; border-radius: 9px; background: var(--pl-accent); color: #fff; font-size: 14px; font-weight: 600; box-shadow: 0 4px 8px #49684e12; }
.pf-v5-c-button.pf-m-primary:hover { background: #314e36; }
a { color: #365c3e; text-underline-offset: 3px; }
a:hover { color: #213b27; text-decoration: underline; }
a:focus-visible, button:focus-visible, input[type=submit]:focus-visible { outline: 2px solid #718f64; outline-offset: 3px; }
.pf-v5-c-login__main-footer { padding: 0; }
.pf-v5-c-login__main-footer-band { background: transparent; margin-top: 22px; padding: 20px 0 0; border-top: 1px solid #edf0e8; font-size: 13px; text-align: center; }
.pf-v5-c-login__main-footer-band-item { margin: 0; }
.pf-v5-c-alert { border-radius: 8px; font-size: 14px; }
.pf-m-error, .kc-feedback-text { overflow-wrap: anywhere; }
.pl-footer { grid-area: footer; padding-top: 12px; border-top: 1px solid #dfe3d7; color: #7b857c; font-size: 11px; line-height: 1.6; }
@media (min-width: 901px) { .pf-v5-c-login__container { min-height: calc(100svh - 72px); } }
@media (max-width: 900px) {
  .pf-v5-c-login { padding: 28px 24px 20px; }
  .pf-v5-c-login__container { grid-template-columns: minmax(0, 480px); grid-template-areas: "brand" "main" "footer"; justify-content: center; gap: 28px; }
  .pl-story { display: none; }
  #kc-header.pl-brand { font-size: 23px; }
  .pl-footer { text-align: center; padding-top: 18px; }
}
@media (max-width: 440px) {
  .pf-v5-c-login { padding: 22px 16px 18px; }
  .pf-v5-c-login__main { border-radius: 17px; }
  .pf-v5-c-login__main-header { padding: 28px 24px 22px; }
  .pf-v5-c-login__main-body { padding: 0 24px 26px; }
  #kc-page-title { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }

.pl-app-link { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:22px; border:1px solid #dce4d5; border-radius:12px; background:#f7f9f4; text-decoration:none; color:#182b33; }
.pl-app-link strong { display:block; font-size:19px; margin-bottom:6px; }
.pl-app-link span span { font-size:13px; line-height:1.6; color:#667579; }
.pl-app-link:hover { border-color:#718f64; text-decoration:none; }
.pl-welcome-register { margin:24px 0 0; font-size:13px; text-align:center; color:#667579; }

.pf-v5-c-login__main::before { border:0; background:transparent; }
.pf-v5-c-form-control > input:focus { outline:none; }
.pf-v5-c-input-group__item .pf-v5-c-button.pf-m-control { min-height:46px; border:1px solid #dce1d9; border-radius:0 9px 9px 0; }
.pf-v5-c-button.pf-m-control::after { border:0; }

/* Keep the inherited, accessible password toggle without relying on icon fonts. */
.pf-v5-c-login__main-header { border-top:0; }
button[id^="password-show-"] i { display:none; }
button[id^="password-show-"]::before { content:""; display:block; width:18px; height:18px; background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667579' stroke-width='1.7'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
button[id^="password-show-"]:has(.fa-eye-slash)::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667579' stroke-width='1.7'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z M3 3l18 18'/%3E%3C/svg%3E"); }
