/* PotatoPro login — Material Design system (Source Sans 3) */
/* CSS_REVISION: 2026-07-31-r58 */
/* Cache-bust filename: potatopro-r58.css */

:root {
  --pp-page-bg: #ffffff;
  --pp-yellow: #ffe9a0;
  --pp-blue: #3299d9;
  --pp-blue-border: #5dade2;
  --pp-blue-hover: #2a84bc;
  --pp-red: #d93025;
  --pp-text: #1a1a1a;
  --pp-text-muted: #5f6368;
  --pp-bar-bg: #e8eaed;
  --pp-input-border: #dadce0;
  --pp-radius-panel: 16px;
  --pp-radius-input: 12px;
  --pp-radius-pill: 12px;
  --pp-input-height: 48px;
  --pp-input-shadow: none;
  --pp-radius-social: 12px;
  --pp-max-form: 26rem;
  --pp-register-card-head: #fff8dc;
  --pp-register-card-body: #ffffff;
  --pp-register-card-border: #e8eaed;
  --pp-register-section-radius: 16px;
  --pp-register-input-radius: 12px;
  --pp-register-input-border: #dadce0;
  --pp-register-input-inset: 0 0 0 0 transparent;
  --pp-register-max: 600px;
  --pp-register-page-bg: #ffffff;
  --pp-focus-ring: 0 0 0 3px rgba(50, 153, 217, 0.28);
  --pp-choice-pad-x: 1.25rem;
  --pp-choice-control-size: 1.1rem;
  --pp-choice-radio-size: 1.125rem;
  --pp-choice-checkbox-size: 1.125rem;
  --pp-choice-gap: 0.65rem;
  --pp-font: "Source Sans 3", "Source Sans Pro", system-ui, -apple-system, "Segoe UI", sans-serif;
  --pp-card-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 2px 6px 2px rgba(60, 64, 67, 0.15);
}

/* Force PatternFly vars on update-profile + register */
#kc-update-profile-form,
#kc-register-form,
.pp-user-profile-form {
  --pf-c-form-control--BorderRadius: 12px !important;
  --pf-c-form-control--BorderWidth: 1px;
  --pf-c-form-control--BorderTopColor: #dadce0;
  --pf-c-form-control--BorderRightColor: #dadce0;
  --pf-c-form-control--BorderBottomColor: #dadce0;
  --pf-c-form-control--BorderLeftColor: #dadce0;
  --pf-c-form-control--BackgroundColor: #fff;
  --pf-c-form-control--Height: 48px;
  --pf-c-button--m-primary--BackgroundColor: #3299d9;
  --pf-c-button--m-primary--Color: #fff;
}

/* Hard guarantee: cream cards + yellow headers + pill fields on Update Account */
#kc-update-profile-form .pp-register-card {
  display: flex !important;
  flex-direction: column !important;
  background: #fff !important;
  border: 1px solid #e8eaed !important;
  border-radius: 16px !important;
  box-shadow: var(--pp-card-shadow) !important;
  margin-bottom: 1.35rem !important;
  padding-top: 0.25rem !important;
  padding-bottom: 1.5rem !important;
  overflow: visible !important;
}

#kc-update-profile-form .pp-register-card__header {
  margin: 0.75rem 1.25rem 0.75rem !important;
  width: auto !important;
  align-self: stretch !important;
  padding: 0.65rem 1rem !important;
  background: #fff8dc !important;
  border: none !important;
  border-radius: 12px !important;
  text-align: left !important;
  box-shadow: none !important;
  float: none !important;
}

#kc-update-profile-form .pp-register-card__title {
  margin: 0 !important;
  font-size: 1.0625rem !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
}

#kc-update-profile-form input.pf-c-form-control,
#kc-update-profile-form select.pf-c-form-control,
#kc-update-profile-form textarea.pf-c-form-control {
  border-radius: 12px !important;
  border: 1px solid #dadce0 !important;
  background: #fff !important;
  min-height: 48px !important;
  height: 48px !important;
  padding: 0 1rem !important;
  box-shadow: none !important;
  width: 100% !important;
  font-family: var(--pp-font) !important;
}

#kc-update-profile-form select.pf-c-form-control[multiple] {
  height: auto !important;
  min-height: 6rem !important;
  border-radius: 12px !important;
}

#kc-update-profile-form input.pp-register-submit,
#kc-update-profile-form input[type="submit"].pf-c-button {
  border-radius: 20px !important;
  background: #3299d9 !important;
  border: none !important;
  color: #fff !important;
  font-weight: 700 !important;
  min-height: 48px !important;
  width: 100% !important;
  box-shadow: 0 1px 3px rgba(50, 153, 217, 0.35) !important;
  font-family: var(--pp-font) !important;
}

.login-pf body {
  background: var(--pp-page-bg) !important;
  font-family: var(--pp-font) !important;
  color: var(--pp-text) !important;
}

.login-pf-page {
  position: relative;
  background: var(--pp-page-bg) !important;
  padding-top: 2.25rem;
  padding-bottom: 3rem;
}

/* Logo — official PotatoPro mark */
#kc-header {
  text-align: center;
  margin-bottom: 0.35rem;
}

#kc-header-wrapper {
  font-size: 0 !important;
  color: transparent !important;
  min-height: 5.25rem;
  max-width: 13rem;
  margin: 0 auto;
  background: url("../img/logo.png") center center / contain no-repeat;
}

#kc-header-wrapper * {
  display: none !important;
}

.login-pf-page .card-pf {
  max-width: calc(var(--pp-max-form) + 2rem);
  margin: 0 auto;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 1.25rem;
}

.login-pf-page .login-pf-header {
  margin-bottom: 0;
  padding-bottom: 0;
  border: none;
}

/* Title */
#kc-page-title {
  text-align: center;
  font-weight: 700;
  font-size: 1.35rem;
  line-height: 1.3;
  margin: 1.35rem 0 0;
  padding: 0;
  border-bottom: none;
  color: var(--pp-text);
}

/* Login lead under title + divider */
.pp-login-lead {
  text-align: center;
  max-width: var(--pp-max-form);
  margin: 0.55rem auto 0;
  padding: 0 0.75rem 0.95rem;
  border-bottom: 1px solid #d0d0d0;
  font-size: 0.9375rem;
  line-height: 1.45;
  font-weight: 500;
  color: var(--pp-text-muted);
  box-sizing: border-box;
}

.pp-login-footer {
  text-align: center;
  max-width: var(--pp-max-form);
  margin: 1.15rem auto 0;
  padding: 0 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #8a8a8a;
}

/* When no lead (other pages), keep title divider */
body:not(:has(.pp-login-lead)) #kc-page-title {
  padding-bottom: 0.85rem;
  border-bottom: 1px solid #d0d0d0;
}

/* “Don’t have an account? Register” — flat (no grey bar) */
#kc-info.kc-potatopro-info-top {
  text-align: center;
  margin: 0 auto 1.1rem;
  padding: 0;
  width: 100%;
  max-width: var(--pp-max-form);
  background: none;
  border-radius: 0;
  box-sizing: border-box;
}

#kc-info.kc-potatopro-info-top #kc-info-wrapper {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}

#kc-info.kc-potatopro-info-top #kc-registration,
#kc-info.kc-potatopro-info-top span {
  font-size: 0.9375rem;
  color: var(--pp-text-muted);
  font-weight: 400;
}

#kc-info.kc-potatopro-info-top a {
  color: var(--pp-red) !important;
  font-weight: 700;
  text-decoration: none;
}

#kc-info.kc-potatopro-info-top a:hover {
  text-decoration: underline;
}

/* Register page — “Already have an account? Log In” */
.pp-user-profile-form .kc-potatopro-register-back {
  color: var(--pp-text-muted);
  font-size: 0.9375rem;
}

.pp-user-profile-form .kc-potatopro-register-back a {
  color: var(--pp-red) !important;
  font-weight: 700;
}

/* Material card panel (login / reset / update password) */
#kc-form,
#kc-reset-password-form,
.pp-update-password-card,
.pp-login-card,
.pp-reset-card {
  background: #fff !important;
  border: 1px solid #e8eaed !important;
  border-radius: var(--pp-radius-panel) !important;
  box-shadow: var(--pp-card-shadow) !important;
  padding: 1.75rem 1.5rem 1.5rem !important;
  margin: 0 auto;
  max-width: var(--pp-max-form);
  box-sizing: border-box;
}

#kc-form-wrapper {
  margin: 0;
}

#kc-form-login .form-group,
#kc-form-login .pf-c-form__group,
#kc-reset-password-form .form-group,
#kc-reset-password-form .pf-c-form__group {
  margin-bottom: 1.15rem;
}

#kc-form-login label.pf-c-form__label,
#kc-form-login label.pf-c-form__label-text,
#kc-form-login .pf-c-form__label,
#kc-reset-password-form label,
.pp-update-password-form .pp-field__label {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--pp-text);
  margin-bottom: 0.4rem;
  display: block;
  font-family: var(--pp-font);
  text-align: left;
}

label[for="username"]::after,
label[for="password"]::after {
  content: " *";
  color: var(--pp-red);
  font-weight: 700;
}

#kc-form-login .pf-c-form-control,
#kc-form-login input.pf-c-form-control {
  border-radius: var(--pp-radius-pill) !important;
  border: 1px solid var(--pp-input-border) !important;
  min-height: var(--pp-input-height);
  padding: 0 1.15rem !important;
  font-size: 1rem;
  line-height: 1.25;
  background: #fff !important;
  box-shadow: var(--pp-input-shadow) !important;
  box-sizing: border-box;
}

#kc-form-login .pf-c-input-group {
  border-radius: var(--pp-radius-pill);
  overflow: hidden;
  display: flex;
  align-items: stretch;
  min-height: var(--pp-input-height);
  border: 1px solid var(--pp-input-border);
  background: #fff;
  box-shadow: var(--pp-input-shadow);
  box-sizing: border-box;
}

#kc-form-login .pf-c-input-group .pf-c-form-control {
  border: none !important;
  border-radius: var(--pp-radius-pill) 0 0 var(--pp-radius-pill) !important;
  box-shadow: none !important;
  flex: 1 1 auto;
  min-width: 0;
  min-height: var(--pp-input-height);
}

#kc-form-login .pf-c-input-group .pf-c-button.pf-m-control {
  border-radius: 0 var(--pp-radius-pill) var(--pp-radius-pill) 0 !important;
  align-self: stretch;
  min-height: var(--pp-input-height);
  border: none !important;
  box-shadow: none !important;
}

#kc-form-login .pf-c-form-control::placeholder {
  color: #9ca3af;
}

#kc-form-login .pf-c-form-control:focus {
  border-color: var(--pp-blue) !important;
  box-shadow: var(--pp-focus-ring), var(--pp-input-shadow) !important;
}

#kc-form-login .pf-c-input-group:focus-within {
  border-color: var(--pp-blue);
  box-shadow: var(--pp-focus-ring);
}

/* Forgot password — right aligned, brand blue */
#kc-form-login .login-pf-settings {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  margin-top: -0.15rem;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
}

#kc-form-login .login-pf-settings #kc-form-options:empty {
  display: none;
}

#kc-form-login .login-pf-settings a {
  color: var(--pp-blue) !important;
  font-weight: 500;
  text-decoration: none;
}

#kc-form-login .login-pf-settings a:hover {
  text-decoration: underline;
}

/* Primary Sign In — pill */
#kc-form-login #kc-login,
#kc-form-login input[type="submit"].pf-c-button.pf-m-primary,
#kc-form-login button.pf-c-button.pf-m-primary {
  border-radius: var(--pp-radius-pill) !important;
  width: 100%;
  min-height: var(--pp-input-height);
  padding: 0 1.25rem !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  letter-spacing: 0.02em;
  line-height: 1.2;
  background: var(--pp-blue) !important;
  border: none !important;
  color: #fff !important;
  margin-top: 0.35rem;
  box-shadow: 0 2px 8px rgba(50, 153, 217, 0.35);
}

#kc-form-login #kc-login:hover,
#kc-form-login input[type="submit"].pf-c-button.pf-m-primary:hover {
  background: var(--pp-blue-hover) !important;
}

#kc-form-login #kc-login:focus-visible,
#kc-form-login input[type="submit"].pf-c-button.pf-m-primary:focus-visible,
#kc-form-login button.pf-c-button.pf-m-primary:focus-visible {
  outline: 3px solid rgba(50, 153, 217, 0.55);
  outline-offset: 2px;
}

/* Social — “Or Sign In with”, horizontal squares with border */
#kc-social-providers {
  margin-top: 1.75rem;
  text-align: center;
  background: transparent !important;
  max-width: var(--pp-max-form);
  margin-left: auto;
  margin-right: auto;
}

#kc-social-providers hr {
  display: none;
}

#kc-social-providers h2 {
  font-size: 1rem !important;
  font-weight: 700 !important;
  margin: 0 0 1rem !important;
  color: var(--pp-text);
  text-transform: none !important;
}

#kc-social-providers .kc-social-links,
#kc-social-providers ul.pf-c-login__main-footer-links {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.85rem;
  list-style: none;
  padding: 0 !important;
  margin: 0 !important;
}

/* Keycloak / PatternFly default: full-width list items stack the “block” social buttons */
#kc-social-providers .kc-social-links > li,
#kc-social-providers ul.pf-c-login__main-footer-links > li {
  margin: 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
  flex-basis: auto !important;
}

/* Social — inline icons; PatternFly default button chrome (no fixed square box) */
#kc-social-providers a.pf-c-button,
#kc-social-providers a.pf-c-button.pf-m-block {
  position: relative;
}

#kc-social-providers a.pf-c-button::after,
#kc-social-providers a.pf-c-button.pf-m-block::after {
  content: none !important;
  border: none !important;
  display: none !important;
}

#kc-social-providers a.pf-c-button:hover {
  opacity: 0.92;
}

#kc-social-providers .kc-social-icon-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

#kc-social-providers .kc-social-provider-logo {
  font-size: 2.5rem;
  margin: 0 !important;
}

/* Multicolor Google “G” (brand colors) — replaces monochrome Font Awesome */
#kc-social-providers #social-google .fa-google,
#kc-social-providers a[href*="/broker/google/"] .fa-google {
  display: inline-block;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  width: 1.875rem;
  height: 1.875rem;
  vertical-align: middle;
  background: url("../img/google-g.svg") center / contain no-repeat;
}

#kc-social-providers .fa-apple,
#kc-social-providers .fa-windows {
  color: #111;
}

#kc-content-wrapper .pf-c-alert {
  border-radius: 0.75rem;
  margin-bottom: 1rem;
}

#kc-locale {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
}

@media (min-width: 768px) {
  .login-pf-page .card-pf {
    padding: 0 1.5rem;
  }
}

/* -------------------------------------------------------------------------- */
/* Registration — Figma-aligned (yellow headers, cream body, pill fields)    */
/* -------------------------------------------------------------------------- */

body:has(.pp-user-profile-form):not(:has(.pp-register-wizard)) {
  background: var(--pp-register-page-bg) !important;
}

body:has(.pp-user-profile-form):not(:has(.pp-register-wizard)) .login-pf-page {
  background: var(--pp-register-page-bg) !important;
}

body:has(.pp-register-wizard).login-pf,
.login-pf:has(.pp-register-wizard),
.login-pf:has(.pp-register-wizard) body {
  background: #fff !important;
  background-image: none !important;
}

body:has(.pp-user-profile-form) .login-pf-page .card-pf {
  max-width: calc(var(--pp-register-max) + 2rem);
}

body:has(.pp-user-profile-form) .login-pf-header .subtitle {
  text-align: center;
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
  color: var(--pp-text-muted);
}

body:has(.pp-user-profile-form) .login-pf-header .col-md-10 {
  width: 100%;
  max-width: 100%;
  float: none;
  text-align: center;
  padding: 0;
}

.pp-user-profile-form.form-horizontal .form-group {
  margin-left: 0;
  margin-right: 0;
}

.pp-user-profile-form .pp-register-card[data-pp-group="app"],
.pp-user-profile-form .pp-register-card[data-pp-group="consent"],
.pp-user-profile-form .pp-register-field[data-pp-attr="app_device_id"],
.pp-user-profile-form .pp-register-field:has(input[type="hidden"]) {
  display: none !important;
}

.pp-user-profile-form .pp-register-card[data-pp-group="location"] .pp-register-card__description,
.pp-user-profile-form .pp-register-card[data-pp-group="interest"] .pp-register-card__description,
.pp-user-profile-form .pp-register-card[data-pp-group="news"] .pp-register-card__description {
  display: none;
}

.pp-user-profile-form {
  max-width: var(--pp-register-max);
  margin: 0 auto;
}

.pp-user-profile-form .pp-register-card {
  display: flex;
  flex-direction: column;
  background: var(--pp-register-card-body);
  border: 1px solid var(--pp-register-card-border);
  border-radius: var(--pp-register-section-radius);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.07);
  margin-bottom: 1.35rem;
  overflow: visible;
  padding-top: 0.25rem;
  padding-bottom: 1.5rem;
}

/* Pill-shaped yellow section title (Figma “Profile” bar), inset in cream card */
.pp-user-profile-form .pp-register-card__header {
  margin: -3px 1.25rem 0.6rem !important;
  width: calc(109% - 2.5rem);
  align-self: center;
  box-sizing: border-box;
  min-height: 0;
  padding: 0.55rem 1.35rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  background: var(--pp-register-card-head);
  border: none;
  border-radius: 999px;
  text-align: center;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.pp-user-profile-form .pp-register-card__title {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--pp-text);
  text-wrap: balance;
  line-height: 1.25;
}

.pp-user-profile-form .pp-register-card__description {
  margin: 0;
  padding: 0 0.25rem;
  font-size: 0.75rem;
  color: var(--pp-text-muted);
  font-weight: 500;
  line-height: 1.3;
  max-width: 100%;
}

.pp-user-profile-form .pp-register-field {
  margin: 0 !important;
  padding: 0.75rem 0.5rem 0.2rem;
  border: none;
}

/* Shared horizontal rhythm for radios, checkboxes, and text fields */
.pp-user-profile-form .pp-register-field > [class*="col-"],
.pp-user-profile-form .pp-register-field--single-checkbox > [class*="col-"],
.pp-user-profile-form .pp-register-field--choice-group > [class*="col-"] {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-left: var(--pp-choice-pad-x) !important;
  padding-right: var(--pp-choice-pad-x) !important;
  box-sizing: border-box;
}

.pp-user-profile-form .pp-register-field .pf-c-form__label,
.pp-user-profile-form .pp-register-field label.pf-c-form__label-text {
  font-weight: 700;
  font-size: 0.8125rem;
  color: var(--pp-text);
  margin-bottom: 0.35rem;
  margin-left: 0.7rem;
}

/* Radio/checkbox groups: legend only (not option labels) */
.pp-user-profile-form .pp-register-field--choice-group > [class*="col-"]:first-child label,
.pp-user-profile-form .pp-register-field--choice-group > [class*="col-"]:first-child .pf-c-form__label {
  display: block;
  margin: 0 0 0.2rem !important;
  font-weight: 700;
  font-size: 0.9375rem;
  line-height: 1.35;
}

.pp-user-profile-form .pp-register-field--choice-group > [class*="col-"]:last-child {
  padding-top: 0 !important;
}

.pp-user-profile-form .pf-c-form-control,
.pp-user-profile-form input.pf-c-form-control,
.pp-user-profile-form select.pf-c-form-control {
  border-radius: var(--pp-register-input-radius) !important;
  border: 0.3px solid #b4b4b4 !important;
  min-height: var(--pp-input-height);
  padding: 0 1.15rem !important;
  font-size: 1rem;
  line-height: 1.25;
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), inset var(--pp-register-input-inset) !important;
  box-sizing: border-box;
}

.pp-user-profile-form textarea.pf-c-form-control {
  border-radius: 20px !important;
  min-height: 6rem;
  padding: 0.75rem 1.15rem !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), inset var(--pp-register-input-inset) !important;
}

.pp-user-profile-form .pf-c-input-group {
  border-radius: var(--pp-register-input-radius);
  overflow: hidden;
  display: flex;
  align-items: stretch;
  min-height: var(--pp-input-height);
  border: 0.3px solid #b4b4b4;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), inset var(--pp-register-input-inset);
  box-sizing: border-box;
}

.pp-user-profile-form .pf-c-input-group .pf-c-form-control {
  border: none !important;
  border-radius: var(--pp-register-input-radius) 0 0 var(--pp-register-input-radius) !important;
  box-shadow: none !important;
  flex: 1 1 auto;
  min-width: 0;
  min-height: var(--pp-input-height);
}

.pp-user-profile-form .pf-c-input-group .pf-c-button.pf-m-control {
  border-radius: 0 var(--pp-register-input-radius) var(--pp-register-input-radius) 0 !important;
  align-self: stretch;
  min-height: var(--pp-input-height);
  border: none !important;
  box-shadow: none !important;
}

.pp-user-profile-form .pf-c-form-control::placeholder {
  color: #9ca3af;
}

.pp-user-profile-form .pf-c-form-control:focus,
.pp-user-profile-form input.pf-c-form-control:focus,
.pp-user-profile-form select.pf-c-form-control:focus,
.pp-user-profile-form textarea.pf-c-form-control:focus {
  border-color: var(--pp-blue) !important;
  outline: none;
  box-shadow: var(--pp-focus-ring), 0 1px 3px rgba(0, 0, 0, 0.05), inset var(--pp-register-input-inset) !important;
}

.pp-user-profile-form .pf-c-input-group:focus-within {
  border-color: var(--pp-blue);
  box-shadow: var(--pp-focus-ring);
}

.pp-user-profile-form .pp-register-email-hint {
  margin: 0;
  padding: 0.5rem 2rem 0.65rem;
  font-size: 0.8125rem;
  color: var(--pp-text);
  line-height: 1.45;
}

.pp-user-profile-form .pp-register-card[data-pp-group="profile"] {
  display: flex;
  flex-direction: column;
}

.pp-user-profile-form .pp-register-card[data-pp-group="profile"] .pp-register-card__header {
  order: 0;
}

.pp-user-profile-form .pp-register-card[data-pp-group="profile"] .pp-register-field[data-pp-attr="firstName"] {
  order: 10;
}

.pp-user-profile-form .pp-register-card[data-pp-group="profile"] .pp-register-field[data-pp-attr="lastName"] {
  order: 20;
}

.pp-user-profile-form .pp-register-card[data-pp-group="profile"] .pp-register-field[data-pp-attr="email"] {
  order: 30;
}

.pp-user-profile-form .pp-register-card[data-pp-group="profile"] .pp-register-email-hint {
  order: 35;
}

.pp-user-profile-form .pp-register-card[data-pp-group="profile"] .pp-register-password-wrap {
  order: 40;
}

.pp-user-profile-form .pp-register-password-wrap {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 0.35rem 0.5rem 1.15rem;
  border-top: 1px dashed rgba(0, 0, 0, 0.1);
  margin-top: 0.35rem;
}

/* Same pill bar as .pp-register-card__header + .pp-register-card__title (single h3 node) */
.pp-user-profile-form .pp-register-password-wrap .pp-register-subheading {
  margin: -3px 1.25rem 0.75rem !important;
  width: calc(109% - 2.5rem);
  align-self: center;
  box-sizing: border-box;
  padding: 0.55rem 1.35rem;
  border: none;
  border-radius: 999px;
  text-align: center;
  background: var(--pp-register-card-head);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--pp-text);
  text-wrap: balance;
  line-height: 1.25;
}

.pp-user-profile-form .pp-register-password-wrap .pf-c-form__label,
.pp-user-profile-form .pp-register-password-wrap label.pf-c-form__label-text {
  margin-left: 0.7rem;
}

.pp-user-profile-form .pp-register-password-wrap .form-group {
  margin-bottom: 0.85rem !important;
}

.pp-user-profile-form .pp-register-password-hints {
  margin: 0.5rem 0 0;
  padding-left: 0.15rem;
  font-size: 0.8125rem;
  color: var(--pp-text-muted);
  line-height: 1.55;
}

.pp-user-profile-form .pp-password-meter {
  height: 5px;
  border-radius: 999px;
  background: #e0e0e0;
  margin-top: 0.45rem;
  overflow: hidden;
}

.pp-user-profile-form .pp-password-meter__title {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--pp-text-muted);
  letter-spacing: 0.02em;
}

.pp-user-profile-form .pp-password-meter__fill {
  height: 100%;
  width: 0;
  border-radius: 999px;
  background: #ccc;
  transition: width 0.2s ease, background 0.2s ease;
}

.pp-user-profile-form .pp-password-meter__fill--1 {
  background: #e57373;
}

.pp-user-profile-form .pp-password-meter__fill--2 {
  background: #ffb74d;
}

.pp-user-profile-form .pp-password-meter__fill--3 {
  background: #81c784;
}

.pp-user-profile-form .pp-password-meter__fill--4 {
  background: #2e7d32;
}

.pp-user-profile-form .pp-password-meter__label {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  color: var(--pp-text-muted);
  min-height: 1.1em;
}

.pp-user-profile-form .pp-register-select {
  appearance: auto;
}

.pp-user-profile-form .pp-register-choices {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin: 0;
  padding: 0;
}

/* Radios/checkboxes: shared grid — control column + label column */
.pp-user-profile-form .pp-register-choice,
.pp-user-profile-form .pp-register-single-checkbox {
  display: grid;
  grid-template-columns: var(--pp-choice-control-size) minmax(0, 1fr);
  column-gap: var(--pp-choice-gap);
  align-items: center;
  padding: 0.35rem 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.pp-user-profile-form .pp-register-choice input[type="radio"] {
  width: var(--pp-choice-radio-size) !important;
  height: var(--pp-choice-radio-size) !important;
  min-width: var(--pp-choice-radio-size) !important;
  min-height: var(--pp-choice-radio-size) !important;
  margin: 0 !important;
  flex-shrink: 0;
  accent-color: var(--pp-blue);
  cursor: pointer;
}

.pp-user-profile-form .pp-register-choice input[type="checkbox"],
.pp-user-profile-form .pp-register-single-checkbox input[type="checkbox"] {
  width: var(--pp-choice-checkbox-size) !important;
  height: var(--pp-choice-checkbox-size) !important;
  min-width: var(--pp-choice-checkbox-size) !important;
  min-height: var(--pp-choice-checkbox-size) !important;
  margin: 0 !important;
  flex-shrink: 0;
  accent-color: var(--pp-blue);
  cursor: pointer;
}

.pp-user-profile-form .pp-register-choice label,
.pp-user-profile-form .pp-register-single-checkbox__label,
.pp-user-profile-form .pp-register-field--single-checkbox label.pf-c-form__label,
.pp-user-profile-form .pp-register-field--single-checkbox label.pf-c-form__label-text,
.pp-user-profile-form .pp-register-single-checkbox label {
  font-weight: 500 !important;
  font-size: 0.9375rem !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer;
  color: var(--pp-text) !important;
  line-height: 1.35 !important;
}

/* Single boolean checkbox rows */
.pp-user-profile-form .pp-register-field--single-checkbox {
  padding-top: 0.15rem !important;
  padding-bottom: 0.15rem !important;
}

.pp-user-profile-form .pp-register-field--single-checkbox > [class*="col-"] {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.pp-user-profile-form .pp-register-single-checkbox {
  padding: 0.28rem 0 !important;
}

.pp-user-profile-form .pp-register-card--terms {
  padding: 0;
  background: var(--pp-register-card-body);
}

.pp-user-profile-form .pp-register-card--terms .form-group {
  padding: 0.85rem 1.35rem;
  margin-bottom: 0 !important;
}

.pp-user-profile-form .pp-register-card--terms #kc-registration-terms-text {
  font-size: 0.875rem;
  max-height: 10rem;
  overflow: auto;
  margin-bottom: 0.75rem;
}

.pp-user-profile-form .pp-register-footer-actions {
  margin-top: 0.5rem;
  text-align: center;
}

.pp-user-profile-form .pp-register-privacy-link {
  margin: 0.85rem 0 1rem;
  font-size: 0.9375rem;
}

.pp-user-profile-form .pp-register-privacy-link a {
  color: var(--pp-blue) !important;
  font-weight: 600;
  text-decoration: none;
}

.pp-user-profile-form .pp-register-privacy-link a:hover {
  text-decoration: underline;
}

.pp-user-profile-form .pp-register-submit,
.pp-user-profile-form button.pp-register-submit {
  border-radius: var(--pp-register-input-radius) !important;
  min-height: var(--pp-input-height);
  padding: 0 1.25rem !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  line-height: 1.25;
  white-space: normal;
  background: var(--pp-blue) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 2px 10px rgba(50, 153, 217, 0.35);
}

.pp-user-profile-form .pp-register-submit:hover {
  background: var(--pp-blue-hover) !important;
}

.pp-user-profile-form .pp-register-submit:focus-visible,
.pp-user-profile-form button.pp-register-submit:focus-visible {
  outline: 3px solid rgba(50, 153, 217, 0.55);
  outline-offset: 2px;
}

.pp-user-profile-form .pp-register-choice:has(input:focus-visible) {
  border: none !important;
  box-shadow: none !important;
}

.pp-user-profile-form .pp-register-choice input:focus-visible,
.pp-user-profile-form .pp-register-single-checkbox input:focus-visible {
  outline: 2px solid var(--pp-blue);
  outline-offset: 2px;
}

.pp-user-profile-form .pp-register-field--single-checkbox .kc-feedback-text,
.pp-user-profile-form .pp-register-field--single-checkbox .pf-c-form__helper-text {
  margin-left: calc(var(--pp-choice-pad-x) + var(--pp-choice-control-size) + var(--pp-choice-gap));
  padding-right: var(--pp-choice-pad-x);
}

@media (prefers-reduced-motion: reduce) {
  .pp-user-profile-form .pp-password-meter__fill {
    transition: none;
  }
}

@media (max-width: 480px) {
  .pp-user-profile-form .pp-register-field {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }

  .pp-user-profile-form .pp-register-password-wrap {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
}

#kc-content-wrapper .pp-alert-dismissible {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.85rem 2.5rem 0.85rem 0.85rem !important;
  border-radius: var(--pp-radius-panel) !important;
  border: none !important;
  background: var(--pp-blue) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(50, 153, 217, 0.35);
}

#kc-content-wrapper .pp-alert-dismissible .pf-c-alert__icon,
#kc-content-wrapper .pp-alert-dismissible .pf-c-alert__icon span {
  color: #fff !important;
}

#kc-content-wrapper .pp-alert-dismissible .pp-alert-dismissible__text {
  flex: 1;
  color: #fff !important;
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1.35;
}

#kc-content-wrapper .pp-alert-dismiss {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

#kc-content-wrapper .pp-alert-dismiss:hover {
  background: rgba(255, 255, 255, 0.35);
}

#kc-content-wrapper .pp-alert-dismiss:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* -------------------------------------------------------------------------- */
/* Update Account (VERIFY_PROFILE) — force registration look                  */
/* -------------------------------------------------------------------------- */

/* CSS_REVISION: 2026-07-21-r19 (update-profile block) */

#kc-update-profile-form.pp-user-profile-form {
  max-width: var(--pp-register-max);
  margin: 0 auto;
}

#kc-update-profile-form .pp-register-card[data-pp-group="app"],
#kc-update-profile-form .pp-register-card[data-pp-group="consent"],
#kc-register-form .pp-register-card[data-pp-group="app"],
#kc-register-form .pp-register-card[data-pp-group="consent"] {
  display: none !important;
}

#kc-update-profile-form .pp-register-card[data-pp-group="company"] .pp-register-card__description,
#kc-update-profile-form .pp-register-card[data-pp-group="interest"] .pp-register-card__description,
#kc-update-profile-form .pp-register-card[data-pp-group="news"] .pp-register-card__description {
  display: none !important;
}

#kc-update-profile-form .pp-register-field {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

#kc-update-profile-form .pp-register-field > [class*="col-"] {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-left: var(--pp-choice-pad-x) !important;
  padding-right: var(--pp-choice-pad-x) !important;
  box-sizing: border-box;
}

#kc-update-profile-form .pf-c-form-control,
#kc-update-profile-form input.pf-c-form-control,
#kc-update-profile-form select.pf-c-form-control,
#kc-update-profile-form textarea.pf-c-form-control {
  --pf-c-form-control--BorderRadius: var(--pp-register-input-radius);
  --pf-c-form-control--BorderColor: #b4b4b4;
  --pf-c-form-control--BackgroundColor: #fff;
  --pf-c-form-control--Height: var(--pp-input-height);
  --pf-c-form-control--PaddingLeft: 1.15rem;
  --pf-c-form-control--PaddingRight: 1.15rem;
  width: 100% !important;
  max-width: 100% !important;
  height: var(--pp-input-height) !important;
  min-height: var(--pp-input-height) !important;
  border-radius: var(--pp-register-input-radius) !important;
  border: 0.3px solid #b4b4b4 !important;
  background-color: #fff !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), inset var(--pp-register-input-inset) !important;
  padding: 0 1.15rem !important;
  font-size: 1rem !important;
  line-height: 1.25 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  box-sizing: border-box !important;
}

#kc-update-profile-form select.pf-c-form-control {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234a4a4a' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1.1rem center !important;
  background-size: 12px 8px !important;
  padding-right: 2.5rem !important;
  cursor: pointer;
}

#kc-update-profile-form select.pf-c-form-control[multiple] {
  height: auto !important;
  min-height: 6rem !important;
  border-radius: 20px !important;
  background-image: none !important;
  padding: 0.75rem 1.15rem !important;
}

#kc-update-profile-form .pf-c-form-control:focus,
#kc-update-profile-form input.pf-c-form-control:focus,
#kc-update-profile-form select.pf-c-form-control:focus {
  border-color: var(--pp-blue) !important;
  outline: none !important;
  box-shadow: var(--pp-focus-ring), 0 1px 3px rgba(0, 0, 0, 0.05), inset var(--pp-register-input-inset) !important;
}

#kc-update-profile-form .pp-register-submit,
#kc-update-profile-form input.pp-register-submit,
#kc-update-profile-form button.pp-register-submit,
#kc-update-profile-form input[type="submit"].pf-c-button.pf-m-primary {
  width: 100% !important;
  max-width: 100% !important;
  border-radius: var(--pp-register-input-radius) !important;
  min-height: var(--pp-input-height) !important;
  height: auto !important;
  padding: 0.65rem 1.25rem !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  line-height: 1.25 !important;
  background: var(--pp-blue) !important;
  background-image: none !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 2px 10px rgba(50, 153, 217, 0.35) !important;
  margin-top: 0.35rem;
  cursor: pointer;
}

#kc-update-profile-form .pp-register-submit:hover,
#kc-update-profile-form input[type="submit"].pf-c-button.pf-m-primary:hover {
  background: var(--pp-blue-hover) !important;
}

#kc-update-profile-form .pp-register-footer-actions,
#kc-update-profile-form #kc-form-buttons {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0.75rem !important;
  padding-right: 0.75rem !important;
  text-align: center;
}

#kc-update-profile-form .pf-c-form__helper-text.pf-m-error,
#kc-update-profile-form .kc-feedback-text {
  display: block;
  margin-top: 0.35rem;
  margin-left: 0.7rem;
  color: var(--pp-red) !important;
  font-size: 0.8125rem;
  font-weight: 600;
}

/* -------------------------------------------------------------------------- */
/* VERIFY_PROFILE — show only Drupal create_profile fields                    */
/* -------------------------------------------------------------------------- */

#kc-update-profile-form .pp-register-field {
  display: none !important;
}

#kc-update-profile-form .pp-register-field[data-pp-attr="email"],
#kc-update-profile-form .pp-register-field[data-pp-attr="firstName"],
#kc-update-profile-form .pp-register-field[data-pp-attr="lastName"],
#kc-update-profile-form .pp-register-field[data-pp-attr="location_address_line_1"],
#kc-update-profile-form .pp-register-field[data-pp-attr="location_address_line_2"],
#kc-update-profile-form .pp-register-field[data-pp-attr="location_address_locality"],
#kc-update-profile-form .pp-register-field[data-pp-attr="location_address_administrative_area"],
#kc-update-profile-form .pp-register-field[data-pp-attr="location_address_postal_coe"],
#kc-update-profile-form .pp-register-field[data-pp-attr="location_country_code"],
#kc-update-profile-form .pp-register-field[data-pp-attr="interest_primary_alt"],
#kc-update-profile-form .pp-register-field[data-pp-attr="interest_consultant"],
#kc-update-profile-form .pp-register-field[data-pp-attr="interest_farmer"],
#kc-update-profile-form .pp-register-field[data-pp-attr="news_en_weekly"],
#kc-update-profile-form .pp-register-field[data-pp-attr="news_en_daily"],
#kc-update-profile-form .pp-register-field[data-pp-attr="news_es_daily"] {
  display: block !important;
}

#kc-update-profile-form .pp-register-card[data-pp-group="company"] {
  display: none !important;
}

/* -------------------------------------------------------------------------- */
/* Registration — hide create_profile-only fields                             */
/* -------------------------------------------------------------------------- */

/* interest_farmer + interest_primary_alt shown on registration Interests step */
#kc-register-form .pp-register-field[data-pp-attr="interest_growing_flag"],
#kc-register-form .pp-register-field[data-pp-attr^="interest_foi_"],
#kc-register-form .pp-register-field[data-pp-attr="profile_phone_primary"],
#kc-register-form .pp-register-field[data-pp-attr="profile_phone_mobile"],
#kc-register-form .pp-register-field[data-pp-attr="profile_position_title"],
#kc-register-form .pp-register-field[data-pp-attr="profile_linkedin_url"],
#kc-register-form .pp-register-field[data-pp-attr="profile_communication_language"],
#kc-register-form .pp-register-field[data-pp-attr="news_cn_weekly"],
#kc-register-form .pp-register-field[data-pp-attr="news_nl_weekly"],
#kc-register-form .pp-register-field[data-pp-attr="news_sector_opt_in"],
#kc-register-form .pp-register-card[data-pp-group="company"] {
  display: none !important;
}


/* -------------------------------------------------------------------------
   First-broker-login review profile (#kc-idp-review-profile-form)
   Same hard guarantees as #kc-update-profile-form. Form also gets
   .pp-user-profile-form from idp-review-user-profile.ftl.
   ------------------------------------------------------------------------- */
#kc-idp-review-profile-form {
  --pf-c-form-control--BorderRadius: 33px !important;
  --pf-c-form-control--BackgroundColor: #fff;
  --pf-c-button--m-primary--BackgroundColor: #3299d9;
  --pf-c-button--m-primary--Color: #fff;
}

#kc-idp-review-profile-form .pp-register-card {
  display: flex !important;
  flex-direction: column !important;
  background: #fffae8 !important;
  border: 1px solid #e8c878 !important;
  border-radius: 30px !important;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.07) !important;
  margin-bottom: 1.35rem !important;
  padding-top: 0.25rem !important;
  padding-bottom: 1.5rem !important;
  overflow: visible !important;
}

#kc-idp-review-profile-form .pp-register-card__header {
  margin: -3px 1.25rem 0.6rem !important;
  width: calc(109% - 2.5rem) !important;
  align-self: center !important;
  padding: 0.55rem 1.35rem !important;
  background: #ffe786 !important;
  border: none !important;
  border-radius: 999px !important;
  text-align: center !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
  float: none !important;
}

#kc-idp-review-profile-form .pp-register-card__title {
  margin: 0 !important;
  font-size: 1.0625rem !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
}

#kc-idp-review-profile-form input.pf-c-form-control,
#kc-idp-review-profile-form select.pf-c-form-control,
#kc-idp-review-profile-form textarea.pf-c-form-control {
  border-radius: 33px !important;
  border: 0.3px solid #b4b4b4 !important;
  background: #fff !important;
  min-height: 45px !important;
  height: 45px !important;
  padding: 0 1.15rem !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), inset 0 0 0 0.5px rgba(0, 0, 0, 0.45) !important;
  width: 100% !important;
}

#kc-idp-review-profile-form input.pp-register-submit,
#kc-idp-review-profile-form input[type="submit"].pf-c-button {
  border-radius: 33px !important;
  background: #3299d9 !important;
  border: none !important;
  color: #fff !important;
  font-weight: 700 !important;
  min-height: 45px !important;
  width: 100% !important;
  box-shadow: 0 2px 10px rgba(50, 153, 217, 0.35) !important;
}

/* -------------------------------------------------------------------------- */
/* Update password (UPDATE_PASSWORD required action)                         */
/* -------------------------------------------------------------------------- */

body:has(#kc-passwd-update-form) .login-pf-page .card-pf {
  max-width: calc(var(--pp-max-form) + 2rem) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
}

body:has(#kc-passwd-update-form) #kc-content-wrapper,
body:has(#kc-passwd-update-form) #kc-content-wrapper > .pf-c-alert,
body:has(#kc-passwd-update-form) #kc-content-wrapper > .alert,
body:has(#kc-passwd-update-form) #kc-form.pp-update-password-card {
  max-width: var(--pp-max-form) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

body:has(#kc-passwd-update-form) #kc-content-wrapper .pf-c-alert,
body:has(#kc-passwd-update-form) #kc-content-wrapper .alert,
body:has(#kc-passwd-update-form) .pf-c-alert.pf-m-warning,
body:has(#kc-passwd-update-form) .alert-warning {
  border-radius: 0.85rem !important;
  background: #fff4e5 !important;
  border: 1px solid #f0b35a !important;
  color: #8a4b08 !important;
  box-shadow: none !important;
  margin-bottom: 1rem !important;
}

body:has(#kc-passwd-update-form) .pf-c-alert__title,
body:has(#kc-passwd-update-form) .alert-warning {
  color: #8a4b08 !important;
  font-weight: 700;
}

#kc-form.pp-update-password-card {
  background: var(--pp-yellow) !important;
  border: 0 !important;
  border-radius: var(--pp-radius-panel) !important;
  box-shadow: 0 6px 22px rgba(50, 153, 217, 0.14) !important;
  padding: 1.5rem 1.35rem 1.35rem !important;
}

#kc-form.pp-update-password-card #kc-form-wrapper {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

form.pp-update-password-form,
#kc-passwd-update-form.pp-update-password-form {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

/* Kill Bootstrap form-horizontal leftovers if any still apply */
#kc-passwd-update-form.pp-update-password-form::before,
#kc-passwd-update-form.pp-update-password-form::after,
#kc-passwd-update-form .pp-field::before,
#kc-passwd-update-form .pp-field::after {
  display: none !important;
  content: none !important;
}

#kc-passwd-update-form .pp-field {
  display: block !important;
  width: 100% !important;
  margin: 0 0 1rem 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: both !important;
  text-align: left !important;
}

#kc-passwd-update-form .pp-field--sessions {
  margin-bottom: 1.15rem !important;
}

#kc-passwd-update-form .pp-field--actions {
  margin-bottom: 0 !important;
}

#kc-passwd-update-form .pp-field__label {
  display: block !important;
  width: 100% !important;
  margin: 0 0 0.4rem 0 !important;
  padding: 0 !important;
  font-weight: 700 !important;
  font-size: 0.8125rem !important;
  line-height: 1.3 !important;
  color: var(--pp-text) !important;
  text-align: left !important;
  float: none !important;
}

#kc-passwd-update-form .pp-req {
  color: var(--pp-red) !important;
  font-weight: 700 !important;
}

#kc-passwd-update-form .pp-input-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: var(--pp-input-height) !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  border: 1px solid var(--pp-input-border) !important;
  border-radius: var(--pp-radius-pill) !important;
  background: #fff !important;
  box-shadow: var(--pp-input-shadow) !important;
  overflow: hidden !important;
}

#kc-passwd-update-form .pp-input-row:focus-within {
  border-color: var(--pp-blue) !important;
  box-shadow: var(--pp-focus-ring) !important;
}

#kc-passwd-update-form .pp-input,
#kc-passwd-update-form input.pp-input {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: var(--pp-input-height) !important;
  margin: 0 !important;
  padding: 0 1.1rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: 1rem !important;
  line-height: 1.25 !important;
  color: var(--pp-text) !important;
  outline: none !important;
}

#kc-passwd-update-form .pp-input::placeholder {
  color: #9ca3af !important;
}

#kc-passwd-update-form .pp-eye,
#kc-passwd-update-form button.pp-eye {
  flex: 0 0 2.75rem !important;
  width: 2.75rem !important;
  min-width: 2.75rem !important;
  min-height: var(--pp-input-height) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-left: 1px solid rgba(0, 0, 0, 0.1) !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  color: #6b7280 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#kc-passwd-update-form .pp-hint {
  margin: 0.45rem 0 0 !important;
  padding: 0 !important;
  font-size: 0.75rem !important;
  line-height: 1.35 !important;
  color: #6b7280 !important;
  text-align: left !important;
}

#kc-passwd-update-form .pp-error {
  display: block !important;
  margin-top: 0.35rem !important;
  color: var(--pp-red) !important;
  font-size: 0.8125rem !important;
  text-align: left !important;
}

#kc-passwd-update-form .pp-logout-sessions,
#kc-passwd-update-form #kc-form-options.pp-logout-sessions {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

#kc-passwd-update-form .pp-logout-sessions__label {
  display: flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 500 !important;
  font-size: 0.875rem !important;
  line-height: 1.3 !important;
  color: var(--pp-text) !important;
  cursor: pointer !important;
  text-align: left !important;
}

#kc-passwd-update-form .pp-logout-sessions__label::before,
#kc-passwd-update-form .pp-logout-sessions__label::after {
  content: none !important;
  display: none !important;
}

#kc-passwd-update-form #logout-sessions {
  position: static !important;
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  opacity: 1 !important;
  width: 1.05rem !important;
  height: 1.05rem !important;
  min-width: 1.05rem !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 1.05rem !important;
  accent-color: var(--pp-blue) !important;
}

#kc-passwd-update-form .pp-logout-sessions__label span {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

#kc-passwd-update-form .pp-submit,
#kc-passwd-update-form input.pp-submit {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: var(--pp-input-height) !important;
  margin: 0 !important;
  padding: 0 1rem !important;
  border: 0 !important;
  border-radius: var(--pp-radius-pill) !important;
  background: var(--pp-blue) !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  line-height: var(--pp-input-height) !important;
  text-align: center !important;
  box-shadow: 0 2px 10px rgba(50, 153, 217, 0.35) !important;
  cursor: pointer !important;
}

#kc-passwd-update-form .pp-submit:hover {
  background: var(--pp-blue-hover) !important;
}

#kc-passwd-update-form .pp-cancel {
  display: block !important;
  width: 100% !important;
  min-height: var(--pp-input-height) !important;
  margin-top: 0.65rem !important;
  border-radius: var(--pp-radius-pill) !important;
  font-weight: 600 !important;
}

body:has(#kc-passwd-update-form) #kc-page-title {
  max-width: var(--pp-max-form);
  margin-left: auto;
  margin-right: auto;
}


/* -------------------------------------------------------------------------- */
/* Login mockup refinements (r23)                                             */
/* -------------------------------------------------------------------------- */

/* r23 yellow login card neutralized — Material white wins */
body:has(#kc-form-login) #kc-form {
  background: #ffffff !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 2px 6px 2px rgba(60, 64, 67, 0.15) !important;
  padding: 1.75rem 1.5rem 1.5rem !important;
}

#kc-info.kc-potatopro-info-top {
  margin-top: 0.95rem !important;
  margin-bottom: 1rem !important;
}

/* Circular social buttons */
#kc-social-providers a.pf-c-button,
#kc-social-providers a.pf-c-button.pf-m-block,
#kc-social-providers a.pf-c-button.pf-m-control {
  width: 3.25rem !important;
  height: 3.25rem !important;
  min-width: 3.25rem !important;
  min-height: 3.25rem !important;
  max-width: 3.25rem !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 50% !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#kc-social-providers .kc-social-provider-name:not(.kc-social-icon-text) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
}

#kc-social-providers .fa-apple {
  font-size: 1.45rem !important;
  color: #111 !important;
}

#kc-social-providers #social-google .fa-google,
#kc-social-providers a[href*="/broker/google/"] .fa-google {
  width: 1.35rem !important;
  height: 1.35rem !important;
}


/* -------------------------------------------------------------------------- */
/* Multi-step registration wizard (r24)                                       */
/* -------------------------------------------------------------------------- */

body:has(.pp-register-wizard),
body:has(.pp-register-wizard).login-pf,
html:has(.pp-register-wizard) {
  background: #fff !important;
  background-image: none !important;
}
body:has(.pp-register-wizard) .login-pf-page,
body:has(.pp-register-wizard) .login-pf-page .card-pf,
body:has(.pp-register-wizard) #kc-content,
body:has(.pp-register-wizard) #kc-content-wrapper {
  background: #fff !important;
  background-image: none !important;
  max-width: 42rem !important;
  margin-left: auto;
  margin-right: auto;
}
/* Kill PatternFly dark footer / leftover bar */
body:has(.pp-register-wizard)::after,
body:has(.pp-register-wizard) .login-pf-page::after,
body:has(.pp-register-wizard) #kc-content::after,
body:has(.pp-register-wizard) footer,
body:has(.pp-register-wizard) .footer,
body:has(.pp-register-wizard) .login-pf-page-footer,
body:has(.pp-register-wizard) .pf-c-login__footer,
body:has(.pp-register-wizard) #footer {
  display: none !important;
  background: transparent !important;
  height: 0 !important;
  min-height: 0 !important;
  border: 0 !important;
  content: none !important;
}
body:has(.pp-register-wizard) {
  min-height: 100vh !important;
  background-color: #fff !important;
}

body:has(.pp-register-wizard) #kc-page-title {
  font-size: 1.6rem;
  margin-top: 1rem;
  border: none;
  padding-bottom: 0;
}
body:has(.pp-register-wizard) .pp-register-lead {
  border-bottom: none;
  padding-bottom: 0.35rem;
  color: #6b7280;
}

.pp-stepper {
  max-width: 40rem;
  margin: 0.75rem auto 1.25rem;
  padding: 0 0.5rem;
}
.pp-stepper__list {
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  position: relative;
}
.pp-stepper__list::before {
  content: "";
  position: absolute;
  top: 0.9rem;
  left: 8%;
  right: 8%;
  height: 2px;
  background: #e5e7eb;
  z-index: 0;
}
.pp-stepper__item {
  position: relative;
  z-index: 1;
  flex: 1 1 0;
  text-align: center;
}
.pp-stepper__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 999px;
  border: 2px solid #d1d5db;
  background: #fff;
  color: #9ca3af;
  font-weight: 700;
  font-size: 0.85rem;
}
.pp-stepper__label {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.72rem;
  color: #9ca3af;
  font-weight: 500;
}
.pp-stepper__item.is-active .pp-stepper__num,
.pp-stepper__item.is-done .pp-stepper__num {
  background: #ffe149;
  border-color: #ffe149;
  color: #111;
}
.pp-stepper__item.is-active .pp-stepper__label {
  color: #111;
  font-weight: 700;
}

.pp-register-panel {
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 8px 28px rgba(0,0,0,0.08);
  padding: 1.35rem 1.35rem 1.2rem;
  max-width: 40rem;
  margin: 0 auto;
}
.pp-register-panel__head {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  margin-bottom: 1.15rem;
}
.pp-register-panel__icon {
  flex: 0 0 2.6rem;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 999px;
  background: #ffe786;
  color: #111;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pp-register-panel__kicker {
  margin: 0;
  color: #d4a017;
  font-size: 0.8rem;
  font-weight: 700;
}
.pp-register-panel__title {
  margin: 0.15rem 0 0.2rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: #111;
}
.pp-register-panel__desc {
  margin: 0;
  color: #6b7280;
  font-size: 0.9rem;
}

/* Override old yellow section cards inside wizard */
body:has(.pp-register-wizard) .pp-register-card {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body:has(.pp-register-wizard) .pp-register-card__header,
body:has(.pp-register-wizard) .pp-register-card__title {
  display: none !important;
}

body:has(.pp-register-wizard) .pp-register-field,
body:has(.pp-register-wizard) .pp-register-password-wrap .form-group {
  margin-bottom: 0.95rem !important;
}
body:has(.pp-register-wizard) label,
body:has(.pp-register-wizard) .pf-c-form__label {
  font-weight: 700 !important;
  color: #111 !important;
}
body:has(.pp-register-wizard) input.pf-c-form-control,
body:has(.pp-register-wizard) select.pf-c-form-control,
body:has(.pp-register-wizard) .pf-c-input-group {
  border-radius: 0.85rem !important;
  min-height: 46px !important;
  border: 1px solid #d1d5db !important;
  box-shadow: none !important;
  background: #fff !important;
}
body:has(.pp-register-wizard) .pp-register-email-hint,
body:has(.pp-register-wizard) .pp-register-password-hints {
  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  color: #6b7280;
  line-height: 1.35;
}
body:has(.pp-register-wizard) .pp-register-subheading {
  margin: 0.35rem 0 0.75rem;
  font-size: 1rem;
  font-weight: 700;
}

.pp-register-panel__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 1.25rem;
  flex-wrap: wrap;
}
.pp-register-back {
  border: 0;
  background: transparent;
  color: #6b7280;
  font-weight: 600;
  cursor: pointer;
  padding: 0.5rem 0.25rem;
}
.pp-register-continue-wrap {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
}
.pp-register-continue,
body:has(.pp-register-wizard) button.pp-register-continue {
  appearance: none;
  border: 0;
  background: #3299d9 !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  border-radius: 0.9rem !important;
  min-height: 46px;
  padding: 0 1.35rem !important;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(50,153,217,0.3);
}
.pp-register-continue:hover { background: #2a84bc !important; }
.pp-register-enter-hint {
  color: #9ca3af;
  font-size: 0.78rem;
  white-space: nowrap;
}
.pp-wizard-invalid {
  border-color: #d93025 !important;
  box-shadow: 0 0 0 3px rgba(217,48,37,0.15) !important;
}

.pp-register-review__list {
  display: grid;
  gap: 0.75rem;
}
.pp-register-review__item {
  display: grid;
  grid-template-columns: 9rem 1fr;
  gap: 0.5rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid #eee;
}
.pp-register-review__item dt {
  margin: 0;
  font-weight: 700;
  color: #374151;
  font-size: 0.85rem;
}
.pp-register-review__item dd {
  margin: 0;
  color: #111;
  font-size: 0.9rem;
}
.pp-register-review__empty { color: #6b7280; }

.pp-register-below {
  max-width: 40rem;
  margin: 1.15rem auto 0;
  text-align: center;
  padding: 0 0.5rem 1.5rem;
}
.pp-register-login-link {
  margin: 0 0 0.55rem;
  color: #4b5563;
}
.pp-register-login-link a {
  color: #3299d9 !important;
  font-weight: 700;
  text-decoration: none;
}
.pp-register-privacy-link a {
  color: #3299d9 !important;
  font-weight: 600;
  text-decoration: none;
  font-size: 0.9rem;
}
.pp-register-privacy-lock { margin-right: 0.2rem; }

.pp-register-why {
  margin-top: 1.1rem;
  text-align: left;
  background: #eef7fc;
  border: 1px solid #cfe8f6;
  border-radius: 1rem;
  padding: 1rem 1.1rem 1.1rem;
}
.pp-register-why__title {
  margin: 0 0 0.7rem;
  color: #1d7eb3;
  font-size: 1rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.pp-register-why__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.45rem;
}
@media (min-width: 640px) {
  .pp-register-why__list { grid-template-columns: 1fr 1fr; }
}
.pp-register-why__list li {
  position: relative;
  padding-left: 1.35rem;
  color: #374151;
  font-size: 0.88rem;
  line-height: 1.35;
}
.pp-register-why__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #3299d9;
  font-weight: 700;
}

/* Hide default register footer leftovers if any */
body:has(.pp-register-wizard) .pp-register-footer-actions { display: none !important; }


/* r25: hard hide inactive wizard nodes + password only on profile */
.pp-register-wizard .pp-wizard-hide,
.pp-register-wizard [hidden],
.pp-register-wizard [data-pp-wizard-hidden="1"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.pp-register-wizard .pp-wizard-show {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  overflow: visible !important;
}

/* Password block: never show yellow strip when hidden; only profile step */
.pp-register-wizard .pp-register-password-wrap.pp-wizard-hide,
.pp-register-wizard .pp-register-password-wrap[hidden] {
  display: none !important;
}
.pp-register-wizard .pp-register-password-wrap.pp-wizard-show {
  display: block !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0.25rem 0 0 !important;
}
.pp-register-wizard .pp-register-password-wrap .pp-register-subheading {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  margin: 0.5rem 0 0.75rem !important;
  padding: 0 !important;
  width: auto !important;
  text-align: left !important;
}

/* White page canvas — kill dark PF container bleed */
html:has(.pp-register-wizard),
body:has(.pp-register-wizard),
.login-pf:has(.pp-register-wizard) {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
}


/* Mandatory privacy acceptance (Review step) */
.pp-privacy-accept {
  margin-top: 1.1rem;
  padding-top: 0.85rem;
  border-top: 1px solid #eee;
}
.pp-privacy-accept__label {
  display: flex !important;
  align-items: flex-start;
  gap: 0.65rem;
  cursor: pointer;
  margin: 0 !important;
  font-weight: 500 !important;
  color: #111 !important;
  line-height: 1.4;
}
.pp-privacy-accept__label input[type="checkbox"] {
  flex: 0 0 1.1rem;
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.15rem;
  accent-color: #3299d9;
}
.pp-privacy-accept__text {
  font-size: 0.92rem;
  color: #222;
}
.pp-privacy-accept__link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: #3299d9 !important;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.pp-privacy-accept__link:hover {
  text-decoration: underline;
}
.pp-privacy-accept__lock {
  display: inline-block;
  vertical-align: -2px;
}
.pp-privacy-accept__error {
  margin: 0.45rem 0 0 1.75rem;
  color: #d93025;
  font-size: 0.82rem;
  font-weight: 600;
}
.pp-privacy-accept input.pp-wizard-invalid {
  outline: 2px solid #d93025;
  outline-offset: 1px;
}


/* r27: remove password eye-button shadow / dark bottom edge */
.pp-register-wizard .pp-register-password-wrap .pf-c-input-group,
.pp-user-profile-form .pp-register-password-wrap .pf-c-input-group,
#kc-register-form .pf-c-input-group {
  box-shadow: none !important;
  overflow: hidden !important;
  border: 1px solid #d1d5db !important;
  background: #fff !important;
}

.pp-register-wizard .pp-register-password-wrap .pf-c-input-group .pf-c-form-control,
.pp-register-wizard .pp-register-password-wrap .pf-c-input-group input,
#kc-register-form .pp-register-password-wrap input.pf-c-form-control {
  box-shadow: none !important;
  border: 0 !important;
  background: #fff !important;
}

.pp-register-wizard .pp-register-password-wrap .pf-c-input-group .pf-c-button,
.pp-register-wizard .pp-register-password-wrap .pf-c-input-group .pf-c-button.pf-m-control,
.pp-register-wizard .pp-register-password-wrap button[data-password-toggle],
#kc-register-form .pp-register-password-wrap .pf-c-button.pf-m-control,
#kc-register-form .pp-register-password-wrap button[data-password-toggle] {
  box-shadow: none !important;
  text-shadow: none !important;
  border: 0 !important;
  border-left: 1px solid #e5e7eb !important;
  border-radius: 0 !important;
  background: #fff !important;
  background-image: none !important;
  min-height: 100% !important;
  outline: none !important;
  filter: none !important;
}

.pp-register-wizard .pp-register-password-wrap .pf-c-input-group .pf-c-button::before,
.pp-register-wizard .pp-register-password-wrap .pf-c-input-group .pf-c-button::after,
#kc-register-form .pp-register-password-wrap .pf-c-button::before,
#kc-register-form .pp-register-password-wrap .pf-c-button::after {
  display: none !important;
  content: none !important;
  box-shadow: none !important;
  border: 0 !important;
}

.pp-register-wizard .pp-register-password-wrap .pf-c-input-group:focus-within,
#kc-register-form .pp-register-password-wrap .pf-c-input-group:focus-within {
  box-shadow: 0 0 0 3px rgba(50, 153, 217, 0.18) !important;
  border-color: #3299d9 !important;
}

/* Fix double asterisk on Password label (FTL already prints *) */
.pp-register-password-wrap label[for="password"]::after,
.pp-register-password-wrap label[for="password-confirm"]::after,
#kc-register-form .pp-register-password-wrap label::after {
  content: none !important;
}


/* Privacy checkbox: lives inside Review step; parent [hidden]/pp-wizard-hide controls visibility.
   Do NOT force-hide #pp-privacy-accept-wrap here — that broke last-step display when JS was cached. */
#pp-privacy-accept-wrap {
  width: 100%;
  margin: 1rem 0 0.25rem;
  padding: 0.85rem 0 0;
  border-top: 1px solid #eee;
  text-align: left;
}
#pp-privacy-accept-wrap.pp-wizard-show,
#pp-privacy-accept-wrap.is-review-visible,
#kc-register-form[data-current-step="review"] #pp-privacy-accept-wrap {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  overflow: visible !important;
  margin-top: 1rem !important;
  padding-top: 0.85rem !important;
  border-top: 1px solid #eee !important;
}

/* Hide newsletter consent timestamp fields (filled by newsletterConsent.js). */
.pp-user-profile-form .pp-register-field[data-pp-attr$="_at"],
#kc-register-form .pp-register-field[data-pp-attr="news_en_daily_at"],
#kc-register-form .pp-register-field[data-pp-attr="news_en_weekly_at"],
#kc-register-form .pp-register-field[data-pp-attr="news_es_daily_at"],
#kc-register-form .pp-register-field[data-pp-attr="news_es_weekly_at"],
#kc-update-profile-form .pp-register-field[data-pp-attr="news_en_daily_at"],
#kc-update-profile-form .pp-register-field[data-pp-attr="news_en_weekly_at"],
#kc-update-profile-form .pp-register-field[data-pp-attr="news_es_daily_at"],
#kc-update-profile-form .pp-register-field[data-pp-attr="news_es_weekly_at"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.pp-register-panel__actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
}
.pp-register-panel__actions-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  width: 100%;
}

/* Client-side wizard field errors — beat PatternFly .login-pf-page .card-pf p */
.login-pf-page .card-pf p.pp-field-error,
.login-pf-page .card-pf .pp-field-error,
#kc-register-form .pp-field-error,
.pp-register-wizard .pp-field-error,
.pp-user-profile-form .pp-field-error {
  display: block !important;
  margin: 0.45rem 0 0 !important;
  padding: 0 !important;
  color: #d93025 !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
}
.login-pf-page .card-pf .pp-register-wizard input.pp-wizard-invalid,
.login-pf-page .card-pf .pp-register-wizard select.pp-wizard-invalid,
.login-pf-page .card-pf .pp-register-wizard textarea.pp-wizard-invalid,
#kc-register-form input.pp-wizard-invalid,
#kc-register-form select.pp-wizard-invalid,
#kc-register-form textarea.pp-wizard-invalid,
.pp-register-wizard .pp-wizard-invalid {
  border-color: #d93025 !important;
  box-shadow: 0 0 0 3px rgba(217, 48, 37, 0.18) !important;
  background-color: #fff5f5 !important;
}
.pp-register-wizard .pp-register-continue[disabled] {
  opacity: 0.7;
  cursor: wait;
}

/* ========================================================================== */
/* Material Design r37 — shared auth surfaces (login / register / reset / etc) */
/* ========================================================================== */

html,
body,
.login-pf,
.login-pf body,
.login-pf-page,
button,
input,
select,
textarea,
label,
.pf-c-button,
.pf-c-form-control {
  font-family: var(--pp-font) !important;
}

.login-pf,
.login-pf body,
body.login-pf,
.login-pf-page,
body:has(.pp-register-wizard),
body:has(.pp-user-profile-form),
body:has(.pp-update-password-card),
body:has(#kc-reset-password-form) {
  background: #ffffff !important;
  background-image: none !important;
}

#kc-page-title {
  font-family: var(--pp-font) !important;
  font-weight: 700 !important;
  font-size: 1.75rem !important;
  letter-spacing: -0.02em;
  border-bottom: none !important;
  padding-bottom: 0 !important;
  margin-top: 1rem !important;
}

.pp-login-lead,
.pp-reset-lead,
.pp-update-password-lead {
  border-bottom: none !important;
  color: var(--pp-text-muted) !important;
  font-weight: 400 !important;
  margin-bottom: 1.25rem !important;
}

/* White elevated cards everywhere */
#kc-form,
#kc-form.pp-login-card,
.pp-login-card,
.pp-reset-card,
.pp-update-password-card,
#kc-reset-password-form,
.pp-register-wizard .pp-wizard-panel,
.pp-register-wizard .pp-register-section,
.pp-user-profile-form .pp-register-card,
#kc-update-profile-form .pp-register-card {
  background: #ffffff !important;
  border: 1px solid #e8eaed !important;
  border-radius: 16px !important;
  box-shadow: var(--pp-card-shadow) !important;
}

.pp-user-profile-form .pp-register-card__header,
#kc-update-profile-form .pp-register-card__header,
.pp-register-wizard .pp-register-card__header,
.pp-wizard-step-head {
  background: #fff8dc !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  text-align: left !important;
  width: auto !important;
}

/* Outlined Material inputs (not pills) */
#kc-form-login .pf-c-form-control,
#kc-form-login input.pf-c-form-control,
#kc-form-login .pf-c-input-group,
#kc-reset-password-form .pf-c-form-control,
#kc-reset-password-form input.pf-c-form-control,
.pp-update-password-form .pp-input,
.pp-update-password-form .pp-input-row,
.pp-register-wizard input.pf-c-form-control,
.pp-register-wizard select.pf-c-form-control,
.pp-register-wizard textarea.pf-c-form-control,
.pp-register-wizard .pf-c-input-group,
.pp-user-profile-form input.pf-c-form-control,
.pp-user-profile-form select.pf-c-form-control,
.pp-user-profile-form textarea.pf-c-form-control,
.pp-user-profile-form .pf-c-input-group,
#kc-update-profile-form input.pf-c-form-control,
#kc-update-profile-form select.pf-c-form-control {
  border-radius: 12px !important;
  border: 1px solid #dadce0 !important;
  background: #fff !important;
  min-height: 48px !important;
  box-shadow: none !important;
  font-family: var(--pp-font) !important;
}

#kc-form-login .pf-c-input-group .pf-c-form-control,
.pp-register-wizard .pf-c-input-group .pf-c-form-control,
.pp-user-profile-form .pf-c-input-group .pf-c-form-control {
  border: none !important;
  border-radius: 12px 0 0 12px !important;
  box-shadow: none !important;
}

#kc-form-login .pf-c-input-group .pf-c-button.pf-m-control,
.pp-register-wizard .pf-c-input-group .pf-c-button.pf-m-control,
.pp-user-profile-form .pf-c-input-group .pf-c-button.pf-m-control,
.pp-update-password-form .pp-eye {
  border-radius: 0 12px 12px 0 !important;
  border: none !important;
  background: transparent !important;
}

#kc-form-login .pf-c-form-control:focus,
#kc-reset-password-form .pf-c-form-control:focus,
.pp-update-password-form .pp-input:focus,
.pp-register-wizard input.pf-c-form-control:focus,
.pp-user-profile-form input.pf-c-form-control:focus {
  border-color: var(--pp-blue) !important;
  box-shadow: var(--pp-focus-ring) !important;
  outline: none !important;
}

/* Full-width primary CTAs */
#kc-form-login #kc-login,
#kc-form-login input[type="submit"].pf-c-button.pf-m-primary,
#kc-reset-password-form input[type="submit"],
.pp-update-password-form .pp-submit,
.pp-register-wizard .pp-register-continue,
.pp-user-profile-form input.pp-register-submit,
#kc-update-profile-form input[type="submit"].pf-c-button {
  border-radius: 20px !important;
  width: 100% !important;
  min-height: 48px !important;
  font-family: var(--pp-font) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  background: var(--pp-blue) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 1px 3px rgba(50, 153, 217, 0.35) !important;
}

#kc-form-login #kc-login:hover,
#kc-reset-password-form input[type="submit"]:hover,
.pp-update-password-form .pp-submit:hover,
.pp-register-wizard .pp-register-continue:hover {
  background: var(--pp-blue-hover) !important;
}

/* Links — brand blue (Material), keep errors red */
#kc-info.kc-potatopro-info-top a,
.pp-user-profile-form .kc-potatopro-register-back a,
#kc-registration a,
.pp-reset-back a,
#kc-form-login .login-pf-settings a {
  color: var(--pp-blue) !important;
  font-weight: 600 !important;
}

/* Update password form specifics */
.pp-update-password-form .pp-field {
  margin-bottom: 1.15rem;
  text-align: left;
}

.pp-update-password-form .pp-input-row {
  display: flex;
  align-items: stretch;
  overflow: hidden;
}

.pp-update-password-form .pp-input {
  flex: 1;
  width: 100%;
  padding: 0 1rem;
  font-size: 1rem;
}

.pp-update-password-form .pp-error,
#kc-reset-password-form .pf-c-form__helper-text.pf-m-error,
#kc-form-login .pf-c-form__helper-text.pf-m-error,
#input-error,
#input-error-username {
  color: var(--pp-red) !important;
  font-weight: 700 !important;
  font-size: 0.875rem !important;
}

.pp-update-password-form .pp-hint,
.pp-reset-instruction {
  color: var(--pp-text-muted) !important;
  font-size: 0.8125rem !important;
  margin-top: 0.4rem;
}

.pp-update-password-form .pp-field--actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.pp-update-password-form .pp-cancel {
  border-radius: 20px !important;
  min-height: 44px;
  background: #fff !important;
  border: 1px solid #dadce0 !important;
  color: var(--pp-text) !important;
  font-weight: 600 !important;
  font-family: var(--pp-font) !important;
}

/* Forgot / reset password layout */
#kc-reset-password-form .login-pf-settings,
.pp-reset-card .login-pf-settings {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 0.25rem;
}

#kc-reset-password-form #kc-form-buttons {
  width: 100%;
}

.pp-reset-instruction-box {
  max-width: var(--pp-max-form);
  margin: 0 auto 1rem;
  text-align: center;
  color: var(--pp-text-muted);
  font-size: 0.9375rem;
  line-height: 1.45;
}

/* Register wizard alignment polish */
.pp-register-wizard .pp-wizard-actions,
.pp-register-wizard .pp-register-footer-actions {
  width: 100%;
}

.pp-register-wizard label,
.pp-register-wizard .pf-c-form__label {
  text-align: left !important;
}

body:has(.pp-register-wizard) .login-pf-page .card-pf,
body:has(.pp-user-profile-form) .login-pf-page .card-pf,
body:has(.pp-update-password-card) .login-pf-page .card-pf,
body:has(#kc-reset-password-form) .login-pf-page .card-pf,
body:has(.pp-login-card) .login-pf-page .card-pf {
  max-width: calc(var(--pp-register-max) + 2rem);
}

/* Nested form inside Material card should not get a second card chrome */
#kc-form #kc-reset-password-form,
#kc-form.pp-reset-card #kc-reset-password-form,
#kc-form .pp-update-password-form {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
}

/* Avoid double asterisk from CSS ::after when label already has .required */
#kc-form-login label[for="username"] .required,
#kc-form-login label[for="password"] .required,
#kc-reset-password-form label .required {
  color: var(--pp-red);
  font-weight: 700;
}

#kc-form-login label[for="username"]:has(.required)::after,
#kc-form-login label[for="password"]:has(.required)::after {
  content: none !important;
}

/* Final Material card colors — beat legacy yellow !important selectors */
body:has(#kc-form-login) #kc-form,
body:has(#kc-form-login) #kc-form.pp-login-card,
#kc-form.pp-login-card,
body:has(#kc-reset-password-form) #kc-form,
body:has(#kc-reset-password-form) #kc-form.pp-reset-card,
#kc-form.pp-reset-card,
body:has(#kc-passwd-update-form) #kc-form,
body:has(#kc-passwd-update-form) #kc-form.pp-update-password-card,
#kc-form.pp-update-password-card {
  background: #ffffff !important;
  border: 1px solid #e8eaed !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 2px 6px 2px rgba(60, 64, 67, 0.15) !important;
}

/* Register wizard panels: white Material cards over cream legacy */
body:has(.pp-register-wizard) .pp-register-wizard .pp-wizard-panel,
body:has(.pp-register-wizard) .pp-register-section,
body:has(.pp-register-wizard) .pp-register-card,
body:has(.pp-user-profile-form) .pp-register-card {
  background: #ffffff !important;
  border: 1px solid #e8eaed !important;
  border-radius: 16px !important;
}

/* ========================================================================== */
/* r37 — Registration / Update profile Material mockup alignment               */
/* ========================================================================== */

body:has(.pp-register-wizard),
body:has(.pp-register-wizard) .login-pf-page,
body:has(#kc-update-profile-form),
body:has(#kc-update-profile-form) .login-pf-page,
body:has(.pp-user-profile-form):not(:has(.pp-register-wizard)) {
  background: #ffffff !important;
}

/* Stepper — Material blue active (match mockup) */
.pp-stepper__item.is-active .pp-stepper__num,
.pp-stepper__item.is-done .pp-stepper__num {
  background: #3299d9 !important;
  border-color: #3299d9 !important;
  color: #fff !important;
}
.pp-stepper__item.is-active .pp-stepper__label {
  color: #3299d9 !important;
  font-weight: 700 !important;
}
.pp-stepper__item.is-done .pp-stepper__label {
  color: #3299d9 !important;
}

/* Panel kicker blue */
.pp-register-panel__kicker {
  color: #3299d9 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.75rem !important;
}

/* Clean Material panel */
body:has(.pp-register-wizard) .pp-register-panel {
  background: #fff !important;
  border: 1px solid #e8eaed !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15) !important;
  max-width: 32rem !important;
  padding: 1.5rem 1.5rem 1.35rem !important;
}

/* Field order: email → password row → first/last name */
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  column-gap: 0.85rem !important;
  row-gap: 0 !important;
  align-items: start !important;
}
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] .pp-register-card__header {
  display: none !important;
}
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] .pp-register-field[data-pp-attr="email"],
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] .pp-register-email-hint,
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] .pp-register-password-wrap {
  grid-column: 1 / -1 !important;
}
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] .pp-register-field[data-pp-attr="email"] { order: 10 !important; }
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] .pp-register-email-hint { order: 15 !important; padding: 0.35rem 0 0.75rem !important; }
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] .pp-register-password-wrap { order: 20 !important; }
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] .pp-register-field[data-pp-attr="firstName"] { order: 30 !important; }
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] .pp-register-field[data-pp-attr="lastName"] { order: 40 !important; }

/* Password + confirm side-by-side */
body:has(.pp-register-wizard) .pp-register-password-wrap {
  border-top: none !important;
  padding: 0 0 0.35rem !important;
  margin: 0 !important;
}
body:has(.pp-register-wizard) .pp-register-field-row--password {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0.85rem !important;
}
body:has(.pp-register-wizard) .pp-register-password-hints {
  grid-column: 1 / -1;
  margin: 0.35rem 0 0.75rem !important;
  padding: 0 !important;
  color: #5f6368 !important;
  font-size: 0.78rem !important;
}
body:has(.pp-register-wizard) .pp-register-subheading {
  display: none !important;
}

/* Full-width Continue */
body:has(.pp-register-wizard) .pp-register-panel__actions {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
  margin-top: 1.35rem !important;
}
body:has(.pp-register-wizard) .pp-register-continue-wrap {
  margin-left: 0 !important;
  width: 100% !important;
}
body:has(.pp-register-wizard) .pp-register-continue,
body:has(.pp-register-wizard) button.pp-register-continue {
  width: 100% !important;
  border-radius: 20px !important;
  min-height: 48px !important;
  background: #3299d9 !important;
}
body:has(.pp-register-wizard) .pp-register-enter-hint {
  display: none !important;
}

/* Outlined inputs */
body:has(.pp-register-wizard) input.pf-c-form-control,
body:has(.pp-register-wizard) select.pf-c-form-control,
body:has(.pp-register-wizard) .pf-c-input-group,
body:has(#kc-update-profile-form) input.pf-c-form-control,
body:has(#kc-update-profile-form) select.pf-c-form-control,
body:has(#kc-update-profile-form) .pf-c-input-group {
  border-radius: 12px !important;
  border: 1px solid #dadce0 !important;
  min-height: 48px !important;
  box-shadow: none !important;
  background: #fff !important;
}

/* Update profile — Material cards */
body:has(#kc-update-profile-form) .pp-register-card,
#kc-update-profile-form .pp-register-card {
  background: #fff !important;
  border: 1px solid #e8eaed !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15) !important;
  padding: 1.25rem 1.35rem 1.35rem !important;
  margin-bottom: 1.25rem !important;
}
body:has(#kc-update-profile-form) .pp-register-card__header,
#kc-update-profile-form .pp-register-card__header {
  background: #fff8dc !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  text-align: left !important;
  width: auto !important;
  margin: 0 0 1rem !important;
  padding: 0.65rem 1rem !important;
}
body:has(#kc-update-profile-form) input.pp-register-submit,
#kc-update-profile-form input[type="submit"] {
  width: 100% !important;
  border-radius: 20px !important;
  min-height: 48px !important;
  background: #3299d9 !important;
}

@media (max-width: 640px) {
  body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"],
  body:has(.pp-register-wizard) .pp-register-field-row--password {
    grid-template-columns: 1fr !important;
  }
}

/* ========================================================================== */
/* r37 — First/Last name boxes same size as Password row (full grid cells)   */
/* ========================================================================== */

body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Bootstrap cols inside register fields: no float, full cell width */
body:has(.pp-register-wizard) .pp-register-field > [class*="col-"],
body:has(.pp-register-wizard) .pp-register-field-row__item > [class*="col-"],
body:has(.pp-register-wizard) .pp-register-password-wrap [class*="col-"] {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* All inputs fill their column — same visual weight as Password / Confirm */
body:has(.pp-register-wizard) .pp-register-field input.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-field select.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-field textarea.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-field-row__item input.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-password-wrap input.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-field .pf-c-input-group,
body:has(.pp-register-wizard) .pp-register-field-row__item .pf-c-input-group,
body:has(.pp-register-wizard) .pp-register-password-wrap .pf-c-input-group {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body:has(.pp-register-wizard) .pp-register-field input.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-field-row__item input.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-password-wrap input.pf-c-form-control {
  display: block !important;
}

body:has(.pp-register-wizard) .pp-register-field .pf-c-input-group,
body:has(.pp-register-wizard) .pp-register-field-row__item .pf-c-input-group,
body:has(.pp-register-wizard) .pp-register-password-wrap .pf-c-input-group {
  display: flex !important;
}

/* Name row: equal two columns matching password row exactly */
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="firstName"],
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="lastName"] {
  width: auto !important;
  min-width: 0 !important;
  margin-bottom: 0.95rem !important;
}

body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="firstName"] input,
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="lastName"] input {
  width: 100% !important;
}

/* Password row items also fill 100% */
body:has(.pp-register-wizard) .pp-register-field-row--password {
  width: 100% !important;
}
body:has(.pp-register-wizard) .pp-register-field-row__item {
  min-width: 0 !important;
  width: auto !important;
}

/* ========================================================================== */
/* r38 — Name fields same box size as Password; remove nested card chrome      */
/* ========================================================================== */

/* Single white panel — no inner bordered box squeezing fields */
body:has(.pp-register-wizard) .pp-register-panel .pp-register-card,
body:has(.pp-register-wizard) .pp-register-panel__body > .pp-register-card {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

body:has(.pp-register-wizard) .pp-register-field.form-group,
body:has(.pp-register-wizard) .pp-register-field-row__item.form-group,
body:has(.pp-register-wizard) .pp-register-password-wrap .form-group {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* First / Last name: identical footprint to Password / Confirm */
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="firstName"],
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="lastName"] {
  padding: 0 !important;
}

body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="firstName"] > [class*="col-"],
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="lastName"] > [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="firstName"] input.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="lastName"] input.pf-c-form-control {
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  box-sizing: border-box !important;
}

/* Password row groups also flush full cell */
body:has(.pp-register-wizard) .pp-register-field-row--password .pp-register-field-row__item,
body:has(.pp-register-wizard) .pp-register-field-row--password .pf-c-input-group {
  width: 100% !important;
}

/* ========================================================================== */
/* r39 — Exact mockup match: logo, labels, fields, spacing                     */
/* ========================================================================== */

body:has(.pp-register-wizard),
body:has(.pp-register-wizard) .login-pf-page {
  background: #ffffff !important;
  font-family: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif !important;
}

/* Official logo sizing */
body:has(.pp-register-wizard) #kc-header-wrapper {
  background-image: url("../img/logo.png") !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  min-height: 4.5rem !important;
  max-width: 11.5rem !important;
  margin: 0 auto 0.35rem !important;
}

body:has(.pp-register-wizard) #kc-page-title {
  font-size: 1.75rem !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  margin: 0.5rem 0 0.35rem !important;
  padding: 0 !important;
  border: none !important;
  letter-spacing: -0.02em;
}

body:has(.pp-register-wizard) .pp-register-lead {
  margin: 0 auto 1.15rem !important;
  padding: 0 !important;
  border: none !important;
  font-size: 0.9375rem !important;
  font-weight: 400 !important;
  color: #5f6368 !important;
  line-height: 1.45 !important;
}

/* Stepper — mockup: blue active circle, black active label */
body:has(.pp-register-wizard) .pp-stepper {
  max-width: 28rem !important;
  margin: 0 auto 1.35rem !important;
  padding: 0 0.25rem !important;
}
body:has(.pp-register-wizard) .pp-stepper__item.is-active .pp-stepper__num {
  background: #3299d9 !important;
  border-color: #3299d9 !important;
  color: #fff !important;
}
body:has(.pp-register-wizard) .pp-stepper__item.is-active .pp-stepper__label {
  color: #1a1a1a !important;
  font-weight: 700 !important;
}
body:has(.pp-register-wizard) .pp-stepper__label {
  font-size: 0.7rem !important;
  margin-top: 0.45rem !important;
}

/* Single white card */
body:has(.pp-register-wizard) .pp-register-panel {
  max-width: 28rem !important;
  margin: 0 auto !important;
  padding: 1.5rem !important;
  background: #fff !important;
  border: 1px solid #e8eaed !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15) !important;
}
body:has(.pp-register-wizard) .pp-register-panel .pp-register-card {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Card header */
body:has(.pp-register-wizard) .pp-register-panel__head {
  display: flex !important;
  gap: 0.85rem !important;
  align-items: flex-start !important;
  margin-bottom: 1.35rem !important;
}
body:has(.pp-register-wizard) .pp-register-panel__icon {
  width: 2.5rem !important;
  height: 2.5rem !important;
  flex: 0 0 2.5rem !important;
  border-radius: 999px !important;
  background: #ffe9a0 !important;
  color: #1a1a1a !important;
}
body:has(.pp-register-wizard) .pp-register-panel__kicker {
  margin: 0 0 0.2rem !important;
  color: #3299d9 !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
body:has(.pp-register-wizard) .pp-register-panel__title {
  margin: 0 0 0.2rem !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  line-height: 1.25 !important;
}
body:has(.pp-register-wizard) .pp-register-panel__desc {
  margin: 0 !important;
  font-size: 0.875rem !important;
  color: #5f6368 !important;
  line-height: 1.4 !important;
}

/* Labels — exactly above fields */
body:has(.pp-register-wizard) .pp-register-field > [class*="col-"]:first-child,
body:has(.pp-register-wizard) .pp-register-field-row__item > [class*="col-"]:first-child,
body:has(.pp-register-wizard) label.pf-c-form__label,
body:has(.pp-register-wizard) label.pf-c-form__label-text,
body:has(.pp-register-wizard) .pp-register-field label,
body:has(.pp-register-wizard) .pp-register-field-row__item label {
  display: block !important;
  float: none !important;
  width: 100% !important;
  margin: 0 0 0.4rem !important;
  padding: 0 !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  line-height: 1.3 !important;
  text-align: left !important;
}
body:has(.pp-register-wizard) .pp-register-field .required,
body:has(.pp-register-wizard) .pp-register-field-row__item .required,
body:has(.pp-register-wizard) .pp-register-field > [class*="col-"]:first-child {
  color: inherit;
}
/* Asterisk color — text nodes after label often render as sibling "*" */
body:has(.pp-register-wizard) .pp-register-field > [class*="col-"]:first-child {
  color: #1a1a1a !important;
  font-weight: 700 !important;
  font-size: 0.875rem !important;
}

/* Inputs — shared style */
body:has(.pp-register-wizard) input.pf-c-form-control,
body:has(.pp-register-wizard) select.pf-c-form-control,
body:has(.pp-register-wizard) textarea.pf-c-form-control,
body:has(.pp-register-wizard) .pf-c-input-group {
  width: 100% !important;
  min-height: 48px !important;
  height: 48px !important;
  border: 1px solid #dadce0 !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: none !important;
  padding-left: 0.875rem !important;
  padding-right: 0.875rem !important;
  font-size: 1rem !important;
  font-family: inherit !important;
  color: #1a1a1a !important;
  box-sizing: border-box !important;
}
body:has(.pp-register-wizard) .pf-c-input-group {
  display: flex !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: hidden !important;
}
body:has(.pp-register-wizard) .pf-c-input-group .pf-c-form-control {
  border: none !important;
  border-radius: 8px 0 0 8px !important;
  height: 46px !important;
  min-height: 46px !important;
}
body:has(.pp-register-wizard) .pf-c-input-group .pf-c-button {
  border: none !important;
  background: transparent !important;
  border-radius: 0 8px 8px 0 !important;
  color: #5f6368 !important;
}

/* Vertical rhythm between field groups */
body:has(.pp-register-wizard) .pp-register-field,
body:has(.pp-register-wizard) .pp-register-password-wrap,
body:has(.pp-register-wizard) .pp-register-field-row {
  margin: 0 0 1.15rem !important;
}
body:has(.pp-register-wizard) .pp-register-email-hint,
body:has(.pp-register-wizard) .pp-register-password-hints {
  margin: 0.4rem 0 0 !important;
  padding: 0 !important;
  font-size: 0.75rem !important;
  line-height: 1.4 !important;
  color: #5f6368 !important;
  font-weight: 400 !important;
}

/* Profile grid: email full, password row, name row */
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  column-gap: 0.75rem !important;
  row-gap: 0 !important;
  width: 100% !important;
}
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="email"],
body:has(.pp-register-wizard) .pp-register-email-hint,
body:has(.pp-register-wizard) .pp-register-password-wrap {
  grid-column: 1 / -1 !important;
}
body:has(.pp-register-wizard) .pp-register-field-row--password {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0.75rem !important;
  width: 100% !important;
  margin: 0 !important;
}
body:has(.pp-register-wizard) .pp-register-password-wrap {
  margin-bottom: 1.15rem !important;
  padding: 0 !important;
  border: none !important;
}
body:has(.pp-register-wizard) .pp-register-password-wrap .pp-register-field-row__item {
  margin: 0 !important;
  padding: 0 !important;
}
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="firstName"],
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="lastName"] {
  margin-bottom: 0.25rem !important;
  padding: 0 !important;
  min-width: 0 !important;
}
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="firstName"] input,
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="lastName"] input,
body:has(.pp-register-wizard) .pp-register-field-row__item input,
body:has(.pp-register-wizard) .pp-register-field-row__item .pf-c-input-group {
  width: 100% !important;
}

/* Actions */
body:has(.pp-register-wizard) .pp-register-panel__actions {
  margin-top: 1.5rem !important;
  padding-top: 0.15rem !important;
}
body:has(.pp-register-wizard) .pp-register-continue-wrap {
  width: 100% !important;
  margin: 0 !important;
}
body:has(.pp-register-wizard) .pp-register-continue,
body:has(.pp-register-wizard) button.pp-register-continue {
  width: 100% !important;
  min-height: 48px !important;
  border-radius: 24px !important;
  background: #3299d9 !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  border: none !important;
  box-shadow: none !important;
}
body:has(.pp-register-wizard) .pp-register-enter-hint {
  display: none !important;
}

/* Below card */
body:has(.pp-register-wizard) .pp-register-below {
  max-width: 28rem !important;
  margin: 1.15rem auto 0 !important;
  padding: 0 !important;
}
body:has(.pp-register-wizard) .pp-register-login-link {
  text-align: center !important;
  margin: 0 0 1.15rem !important;
  font-size: 0.9375rem !important;
  color: #5f6368 !important;
}
body:has(.pp-register-wizard) .pp-register-login-link a {
  color: #3299d9 !important;
  font-weight: 700 !important;
}

/* Why box — mockup */
body:has(.pp-register-wizard) .pp-register-why {
  background: #e8f4fb !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 1.1rem 1.15rem 1.15rem !important;
  margin: 0 !important;
}
body:has(.pp-register-wizard) .pp-register-why__title {
  color: #1a1a1a !important;
  font-size: 0.95rem !important;
  margin: 0 0 0.85rem !important;
  gap: 0.5rem !important;
}
body:has(.pp-register-wizard) .pp-register-why__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.6rem !important;
  height: 1.6rem !important;
  border-radius: 999px !important;
  background: #3299d9 !important;
  color: #fff !important;
  flex: 0 0 auto !important;
}
body:has(.pp-register-wizard) .pp-register-why__list {
  grid-template-columns: 1fr 1fr !important;
  gap: 0.65rem 1rem !important;
}
body:has(.pp-register-wizard) .pp-register-why__list li {
  font-size: 0.8125rem !important;
  color: #5f6368 !important;
  padding-left: 1.25rem !important;
}
body:has(.pp-register-wizard) .pp-register-why__list li::before {
  content: "✓" !important;
  color: #3299d9 !important;
}

@media (max-width: 640px) {
  body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"],
  body:has(.pp-register-wizard) .pp-register-field-row--password,
  body:has(.pp-register-wizard) .pp-register-why__list {
    grid-template-columns: 1fr !important;
  }
}

/* Asterisk stays on same line as label */
body:has(.pp-register-wizard) .pp-register-field label .required,
body:has(.pp-register-wizard) .pp-register-field-row__item label .required,
body:has(#kc-update-profile-form) label .required {
  color: #d93025 !important;
  font-weight: 700 !important;
}
body:has(.pp-register-wizard) .pp-register-field > [class*="col-"]:first-child label,
body:has(.pp-register-wizard) .pp-register-field-row__item > [class*="col-"]:first-child label {
  display: inline-block !important;
  width: auto !important;
  margin-bottom: 0.4rem !important;
}

/* ========================================================================== */
/* r41 — Inset-label fieldset inputs (entire theme)                            */
/* Label sits inside the bordered box, value below — like reference fieldset   */
/* ========================================================================== */

:root {
  --pp-fs-border: #dadce0;
  --pp-fs-radius: 10px;
  --pp-fs-pad-x: 0.9rem;
  --pp-fs-pad-y: 0.55rem;
  --pp-fs-label: #3c4043;
  --pp-fs-gap: 0.75rem;
}

/* ---- Shared fieldset shell ---- */
#kc-form-login .form-group:not(.login-pf-settings):not(#kc-form-buttons),
#kc-form-login .pf-c-form__group:not(.login-pf-settings),
#kc-reset-password-form .form-group:not(.login-pf-settings):not(#kc-form-buttons),
#kc-reset-password-form .pf-c-form__group,
.pp-update-password-form .pp-field:not(.pp-field--actions):not(.pp-field--sessions),
.pp-register-wizard .pp-register-field,
.pp-register-wizard .pp-fieldset-field,
.pp-user-profile-form .pp-register-field,
#kc-update-profile-form .pp-register-field {
  border: 1px solid var(--pp-fs-border) !important;
  border-radius: var(--pp-fs-radius) !important;
  background: #fff !important;
  padding: var(--pp-fs-pad-y) var(--pp-fs-pad-x) 0.65rem !important;
  margin: 0 0 var(--pp-fs-gap) !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  position: relative;
}

/* Focus ring on the fieldset box */
#kc-form-login .form-group:focus-within,
#kc-reset-password-form .form-group:focus-within,
.pp-update-password-form .pp-field:focus-within,
.pp-register-wizard .pp-register-field:focus-within,
.pp-register-wizard .pp-fieldset-field:focus-within,
.pp-user-profile-form .pp-register-field:focus-within,
#kc-update-profile-form .pp-register-field:focus-within {
  border-color: #3299d9 !important;
  box-shadow: 0 0 0 3px rgba(50, 153, 217, 0.2) !important;
}

/* Error state on fieldset */
.pp-register-wizard .pp-register-field:has(.pp-wizard-invalid),
.pp-register-wizard .pp-fieldset-field:has(.pp-wizard-invalid),
.pp-register-wizard .pp-register-field:has([aria-invalid="true"]),
#kc-form-login .form-group:has([aria-invalid="true"]),
.pp-update-password-form .pp-field:has([aria-invalid="true"]) {
  border-color: #d93025 !important;
  box-shadow: 0 0 0 3px rgba(217, 48, 37, 0.15) !important;
}

/* Columns inside fieldset: stack label then control, no bootstrap gutter */
#kc-form-login .form-group > [class*="col-"],
#kc-reset-password-form .form-group > [class*="col-"],
.pp-register-wizard .pp-register-field > [class*="col-"],
.pp-register-wizard .pp-fieldset-field > [class*="col-"],
.pp-user-profile-form .pp-register-field > [class*="col-"],
#kc-update-profile-form .pp-register-field > [class*="col-"] {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
}

/* Label — top inside box */
#kc-form-login label.pf-c-form__label,
#kc-form-login label.pf-c-form__label-text,
#kc-form-login .form-group label,
#kc-reset-password-form label,
.pp-update-password-form .pp-field__label,
.pp-register-wizard .pp-register-field label,
.pp-register-wizard .pp-fieldset-field label,
.pp-user-profile-form .pp-register-field label,
#kc-update-profile-form .pp-register-field label {
  display: block !important;
  float: none !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 0 0.2rem !important;
  padding: 0 !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  color: var(--pp-fs-label) !important;
  letter-spacing: 0 !important;
  text-align: left !important;
}
#kc-form-login label .required,
#kc-reset-password-form label .required,
.pp-update-password-form .pp-req,
.pp-register-wizard label .required,
.pp-user-profile-form label .required,
#kc-update-profile-form label .required {
  color: #1a1a1a !important;
  font-weight: 600 !important;
}

/* Kill old “label above + bordered input” look */
#kc-form-login input.pf-c-form-control,
#kc-form-login .pf-c-input-group,
#kc-reset-password-form input.pf-c-form-control,
.pp-update-password-form .pp-input,
.pp-update-password-form .pp-input-row,
.pp-register-wizard input.pf-c-form-control,
.pp-register-wizard select.pf-c-form-control,
.pp-register-wizard textarea.pf-c-form-control,
.pp-register-wizard .pf-c-input-group,
.pp-user-profile-form input.pf-c-form-control,
.pp-user-profile-form select.pf-c-form-control,
.pp-user-profile-form textarea.pf-c-form-control,
.pp-user-profile-form .pf-c-input-group,
#kc-update-profile-form input.pf-c-form-control,
#kc-update-profile-form select.pf-c-form-control,
#kc-update-profile-form .pf-c-input-group {
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  outline: none !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  color: #1a1a1a !important;
  display: block !important;
}

/* Password row: input + eye inside fieldset */
#kc-form-login .pf-c-input-group,
.pp-update-password-form .pp-input-row,
.pp-register-wizard .pf-c-input-group,
.pp-user-profile-form .pf-c-input-group,
#kc-update-profile-form .pf-c-input-group {
  display: flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  width: 100% !important;
}
#kc-form-login .pf-c-input-group .pf-c-form-control,
.pp-update-password-form .pp-input-row .pp-input,
.pp-register-wizard .pf-c-input-group .pf-c-form-control,
.pp-user-profile-form .pf-c-input-group .pf-c-form-control {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  height: auto !important;
  min-height: 1.5rem !important;
}
#kc-form-login .pf-c-input-group .pf-c-button,
.pp-update-password-form .pp-eye,
.pp-register-wizard .pf-c-input-group .pf-c-button,
.pp-user-profile-form .pf-c-input-group .pf-c-button {
  flex: 0 0 auto !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #5f6368 !important;
  padding: 0.15rem 0.1rem !important;
  min-width: 2rem !important;
  min-height: 2rem !important;
  border-radius: 0 !important;
}

/* Placeholders softer under inset label */
#kc-form-login ::placeholder,
#kc-reset-password-form ::placeholder,
.pp-update-password-form ::placeholder,
.pp-register-wizard ::placeholder,
.pp-user-profile-form ::placeholder {
  color: #9aa0a6 !important;
  font-weight: 400 !important;
  opacity: 1 !important;
}

/* Helper / errors sit outside the fieldset box */
.pp-register-wizard .pp-register-email-hint,
.pp-register-wizard .pp-register-password-hints {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: -0.35rem 0 0.75rem !important;
  font-size: 0.75rem !important;
  color: #5f6368 !important;
}
.pp-register-wizard .pp-field-error,
.pp-register-wizard .pp-register-field .pp-field-error,
#kc-form-login #input-error,
.pp-update-password-form .pp-error {
  display: block !important;
  margin: 0.35rem 0 0 !important;
  color: #d93025 !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}

/* Registration: password stacked full width; names side-by-side */
body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  column-gap: 0.75rem !important;
  row-gap: 0 !important;
}
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="email"],
body:has(.pp-register-wizard) .pp-register-email-hint,
body:has(.pp-register-wizard) .pp-register-password-wrap {
  grid-column: 1 / -1 !important;
}
body:has(.pp-register-wizard) .pp-register-password-wrap {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}
body:has(.pp-register-wizard) .pp-register-password-wrap .pp-fieldset-field {
  margin-bottom: var(--pp-fs-gap) !important;
}
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="firstName"],
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="lastName"] {
  margin-bottom: var(--pp-fs-gap) !important;
}

/* Choice groups / checkboxes should NOT look like fieldset text inputs */
.pp-register-wizard .pp-register-field--choice-group,
.pp-register-wizard .pp-register-field--single-checkbox,
.pp-user-profile-form .pp-register-field--choice-group,
.pp-user-profile-form .pp-register-field--single-checkbox,
#kc-update-profile-form .pp-register-field--choice-group,
#kc-update-profile-form .pp-register-field--single-checkbox {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0.25rem 0 !important;
}

/* Login settings row (remember / forgot) not a fieldset */
#kc-form-login .login-pf-settings,
#kc-form-login #kc-form-buttons,
#kc-reset-password-form .login-pf-settings,
#kc-reset-password-form #kc-form-buttons {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0.5rem 0 0 !important;
}

/* Select multiple / tall selects keep min height inside fieldset */
.pp-register-wizard select.pf-c-form-control[multiple],
.pp-user-profile-form select.pf-c-form-control[multiple],
#kc-update-profile-form select.pf-c-form-control[multiple] {
  min-height: 5.5rem !important;
  height: auto !important;
  margin-top: 0.15rem !important;
}

/* Textarea */
.pp-register-wizard textarea.pf-c-form-control,
.pp-user-profile-form textarea.pf-c-form-control,
#kc-update-profile-form textarea.pf-c-form-control {
  min-height: 4.5rem !important;
  height: auto !important;
  resize: vertical;
  margin-top: 0.1rem !important;
}

@media (max-width: 640px) {
  body:has(.pp-register-wizard) .pp-register-card[data-pp-group="profile"] {
    grid-template-columns: 1fr !important;
  }
}

/* ========================================================================== */
/* r42 — Force inset fieldset (beat older !important spacing/border rules)     */
/* ========================================================================== */

body:has(.pp-register-wizard) .pp-register-field.form-group,
body:has(.pp-register-wizard) .pp-fieldset-field.form-group,
body:has(.pp-register-wizard) .pp-register-field,
body:has(.pp-register-wizard) .pp-fieldset-field,
body:has(#kc-form-login) #kc-form-login .form-group:not(.login-pf-settings):not(#kc-form-buttons),
body:has(#kc-reset-password-form) #kc-reset-password-form .form-group:not(.login-pf-settings):not(#kc-form-buttons),
body:has(.pp-update-password-card) .pp-update-password-form .pp-field:not(.pp-field--actions):not(.pp-field--sessions),
body:has(#kc-update-profile-form) #kc-update-profile-form .pp-register-field {
  border: 1px solid #dadce0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  padding: 0.5rem 0.9rem 0.6rem !important;
  margin: 0 0 0.75rem !important;
  box-shadow: none !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

body:has(.pp-register-wizard) .pp-register-field.form-group:focus-within,
body:has(.pp-register-wizard) .pp-fieldset-field.form-group:focus-within,
body:has(#kc-form-login) #kc-form-login .form-group:focus-within,
body:has(.pp-update-password-card) .pp-field:focus-within,
body:has(#kc-update-profile-form) .pp-register-field:focus-within {
  border-color: #3299d9 !important;
  box-shadow: 0 0 0 3px rgba(50, 153, 217, 0.22) !important;
}

/* Label inside top of box — not bold external label */
body:has(.pp-register-wizard) .pp-register-field label,
body:has(.pp-register-wizard) .pp-fieldset-field label,
body:has(.pp-register-wizard) .pp-register-field .pf-c-form__label,
body:has(.pp-register-wizard) .pp-register-field .pf-c-form__label-text,
body:has(#kc-form-login) #kc-form-login label,
body:has(#kc-reset-password-form) #kc-reset-password-form label,
body:has(.pp-update-password-card) .pp-field__label,
body:has(#kc-update-profile-form) .pp-register-field label {
  display: block !important;
  margin: 0 0 0.15rem !important;
  padding: 0 !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: #3c4043 !important;
}

/* Remove inner input chrome completely */
body:has(.pp-register-wizard) .pp-register-field input.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-field select.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-field textarea.pf-c-form-control,
body:has(.pp-register-wizard) .pp-register-field .pf-c-input-group,
body:has(.pp-register-wizard) .pp-fieldset-field input.pf-c-form-control,
body:has(.pp-register-wizard) .pp-fieldset-field .pf-c-input-group,
body:has(#kc-form-login) #kc-form-login input.pf-c-form-control,
body:has(#kc-form-login) #kc-form-login .pf-c-input-group,
body:has(#kc-reset-password-form) input.pf-c-form-control,
body:has(.pp-update-password-card) .pp-input,
body:has(.pp-update-password-card) .pp-input-row,
body:has(#kc-update-profile-form) input.pf-c-form-control,
body:has(#kc-update-profile-form) select.pf-c-form-control,
body:has(#kc-update-profile-form) .pf-c-input-group {
  border: 0 none transparent !important;
  border-width: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  min-height: 1.45rem !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}

body:has(.pp-register-wizard) .pp-register-field .pf-c-input-group,
body:has(.pp-register-wizard) .pp-fieldset-field .pf-c-input-group,
body:has(#kc-form-login) #kc-form-login .pf-c-input-group,
body:has(.pp-update-password-card) .pp-input-row {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 1.45rem !important;
}

body:has(.pp-register-wizard) .pp-register-field .pf-c-input-group .pf-c-form-control,
body:has(.pp-register-wizard) .pp-fieldset-field .pf-c-input-group .pf-c-form-control,
body:has(#kc-form-login) .pf-c-input-group .pf-c-form-control {
  border: 0 none transparent !important;
  box-shadow: none !important;
  background: transparent !important;
  min-height: 1.45rem !important;
  height: auto !important;
  padding: 0 !important;
  flex: 1 1 auto !important;
}

body:has(.pp-register-wizard) .pp-register-field .pf-c-input-group .pf-c-button,
body:has(.pp-register-wizard) .pp-fieldset-field .pf-c-input-group .pf-c-button,
body:has(#kc-form-login) .pf-c-input-group .pf-c-button,
body:has(.pp-update-password-card) .pp-eye {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #5f6368 !important;
  min-height: 1.75rem !important;
  padding: 0 0.1rem !important;
}

/* Keep horizontal padding on fieldset (override old pad 0 rules) */
body:has(.pp-register-wizard) .pp-register-field.form-group,
body:has(.pp-register-wizard) .pp-fieldset-field.form-group {
  padding-left: 0.9rem !important;
  padding-right: 0.9rem !important;
  padding-top: 0.5rem !important;
  padding-bottom: 0.6rem !important;
}

/* Helper text outside boxes */
body:has(.pp-register-wizard) .pp-register-email-hint,
body:has(.pp-register-wizard) .pp-register-password-hints {
  margin: -0.25rem 0 0.75rem !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Kill PatternFly input-group border inside fieldset (password eye row) */
body:has(.pp-register-wizard) .pp-fieldset-field .pf-c-input-group,
body:has(.pp-register-wizard) .pp-register-field .pf-c-input-group,
body:has(.pp-register-wizard) .pp-fieldset-field .pf-c-input-group.pf-m-plain,
body:has(#kc-form-login) #kc-form-login .pf-c-input-group,
body:has(.pp-update-password-card) .pp-input-row,
body:has(#kc-update-profile-form) .pf-c-input-group {
  border: 0 none transparent !important;
  border-color: transparent !important;
  border-width: 0 !important;
  box-shadow: none !important;
  background-color: transparent !important;
  background-image: none !important;
  outline: none !important;
}
body:has(.pp-register-wizard) .pp-fieldset-field .pf-c-input-group::before,
body:has(.pp-register-wizard) .pp-fieldset-field .pf-c-input-group::after,
body:has(#kc-form-login) .pf-c-input-group::before,
body:has(#kc-form-login) .pf-c-input-group::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
}

/* Custom password row — no PatternFly input-group chrome */
.pp-fieldset-input-row,
.pp-update-password-form .pp-input-row {
  display: flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  width: 100% !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 1.45rem !important;
}
.pp-fieldset-input-row input,
.pp-fieldset-input-row .pf-c-form-control,
.pp-update-password-form .pp-input-row .pp-input {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  border: 0 none transparent !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 1.45rem !important;
  height: auto !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
}
.pp-fieldset-eye,
.pp-update-password-form .pp-eye {
  flex: 0 0 auto !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #5f6368 !important;
  padding: 0.1rem !important;
  min-width: 1.75rem !important;
  min-height: 1.75rem !important;
  cursor: pointer !important;
}

/* ========================================================================== */
/* r48 — Registration card width 600px                                         */
/* ========================================================================== */

body:has(.pp-register-wizard) .login-pf-page .card-pf,
body:has(.pp-register-wizard) .pp-register-panel,
body:has(.pp-register-wizard) .pp-stepper,
body:has(.pp-register-wizard) .pp-register-below,
body:has(.pp-register-wizard) .pp-register-lead {
  max-width: 600px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

body:has(.pp-register-wizard) .pp-register-panel {
  margin-left: auto !important;
  margin-right: auto !important;
}

body:has(.pp-register-wizard) .pp-stepper,
body:has(.pp-register-wizard) .pp-register-below {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Keep form usable on smaller screens */
@media (max-width: 660px) {
  body:has(.pp-register-wizard) .login-pf-page .card-pf,
  body:has(.pp-register-wizard) .pp-register-panel,
  body:has(.pp-register-wizard) .pp-stepper,
  body:has(.pp-register-wizard) .pp-register-below {
    max-width: calc(100% - 1.5rem) !important;
  }
}

/* Raise parent wrappers so 600px panel can actually render */
body:has(.pp-register-wizard) .login-pf-page,
body:has(.pp-register-wizard) .login-pf-page .card-pf,
body:has(.pp-register-wizard) #kc-content,
body:has(.pp-register-wizard) #kc-content-wrapper,
body:has(.pp-register-wizard) #kc-form,
body:has(.pp-register-wizard) #kc-register-form {
  max-width: 600px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

body:has(.pp-register-wizard) .pp-register-panel,
body:has(.pp-register-wizard) .pp-stepper,
body:has(.pp-register-wizard) .pp-register-below {
  max-width: 600px !important;
  width: 100% !important;
}

/* True 600px white card — remove parent padding that was shrinking it */
body:has(.pp-register-wizard) .login-pf-page {
  max-width: none !important;
  width: 100% !important;
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}
body:has(.pp-register-wizard) .login-pf-page .card-pf,
body:has(.pp-register-wizard) #kc-content,
body:has(.pp-register-wizard) #kc-content-wrapper,
body:has(.pp-register-wizard) #kc-register-form {
  max-width: 600px !important;
  width: 600px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body:has(.pp-register-wizard) .pp-register-panel,
body:has(.pp-register-wizard) .pp-stepper,
body:has(.pp-register-wizard) .pp-register-below {
  max-width: 600px !important;
  width: 600px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media (max-width: 660px) {
  body:has(.pp-register-wizard) .login-pf-page .card-pf,
  body:has(.pp-register-wizard) #kc-content,
  body:has(.pp-register-wizard) #kc-content-wrapper,
  body:has(.pp-register-wizard) #kc-register-form,
  body:has(.pp-register-wizard) .pp-register-panel,
  body:has(.pp-register-wizard) .pp-stepper,
  body:has(.pp-register-wizard) .pp-register-below {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ========================================================================== */
/* r49 — White page background (remove #f5f5f5)                                */
/* ========================================================================== */

html,
html body,
.login-pf,
.login-pf body,
body.login-pf,
.login-pf-page,
body:has(.pp-register-wizard),
body:has(.pp-register-wizard) .login-pf-page,
body:has(.pp-register-wizard) .login-pf-page .card-pf,
body:has(.pp-user-profile-form),
body:has(.pp-user-profile-form) .login-pf-page,
body:has(.pp-update-password-card),
body:has(#kc-reset-password-form),
body:has(#kc-update-profile-form),
body:has(#kc-update-profile-form) .login-pf-page {
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
}

/* ========================================================================== */
/* r50 — Checkbox rows: remove fieldset parent border                          */
/* ========================================================================== */

body:has(.pp-register-wizard) .pp-register-field--single-checkbox,
body:has(.pp-register-wizard) .pp-register-field--single-checkbox.form-group,
body:has(.pp-register-wizard) .pp-register-field--choice-group,
body:has(.pp-register-wizard) .pp-register-field--choice-group.form-group,
body:has(.pp-register-wizard) .pp-register-field:has(input[type="checkbox"]),
body:has(.pp-register-wizard) .pp-register-field:has(input[type="radio"]),
body:has(#kc-update-profile-form) .pp-register-field--single-checkbox,
body:has(#kc-update-profile-form) .pp-register-field--choice-group,
body:has(.pp-user-profile-form) .pp-register-field--single-checkbox,
body:has(.pp-user-profile-form) .pp-register-field--choice-group {
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0.35rem 0 !important;
  margin: 0 0 0.35rem !important;
}

body:has(.pp-register-wizard) .pp-register-field--single-checkbox:focus-within,
body:has(.pp-register-wizard) .pp-register-field--choice-group:focus-within,
body:has(.pp-register-wizard) .pp-register-field:has(input[type="checkbox"]):focus-within,
body:has(.pp-register-wizard) .pp-register-field:has(input[type="radio"]):focus-within,
body:has(#kc-update-profile-form) .pp-register-field--single-checkbox:focus-within,
body:has(#kc-update-profile-form) .pp-register-field--choice-group:focus-within {
  border: none !important;
  box-shadow: none !important;
}

/* Checkbox / radio labels: normal text, not tiny fieldset caption */
body:has(.pp-register-wizard) .pp-register-field--single-checkbox label,
body:has(.pp-register-wizard) .pp-register-field--choice-group .pp-register-choice label,
body:has(.pp-register-wizard) .pp-register-single-checkbox__label,
body:has(.pp-register-wizard) .pp-register-field:has(input[type="checkbox"]) .pp-register-single-checkbox label,
body:has(.pp-register-wizard) .pp-register-field:has(input[type="checkbox"]) label.pp-register-single-checkbox__label {
  display: inline !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  color: #1a1a1a !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Keep choice rows as simple inline checkbox + label */
body:has(.pp-register-wizard) .pp-register-single-checkbox,
body:has(.pp-register-wizard) .pp-register-choice {
  display: flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
  padding: 0.2rem 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

body:has(.pp-register-wizard) .pp-register-single-checkbox input[type="checkbox"],
body:has(.pp-register-wizard) .pp-register-choice input[type="checkbox"],
body:has(.pp-register-wizard) .pp-register-choice input[type="radio"] {
  width: 1.125rem !important;
  height: 1.125rem !important;
  min-width: 1.125rem !important;
  min-height: 1.125rem !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
  accent-color: #3299d9 !important;
  cursor: pointer !important;
}

/* ========================================================================== */
/* r51 — Checkbox align: left indent, gap, vertical center                     */
/* ========================================================================== */

/* Indent checkbox rows to line up with panel title text (icon 2.5rem + gap) */
body:has(.pp-register-wizard) .pp-register-field--single-checkbox,
body:has(.pp-register-wizard) .pp-register-field--single-checkbox.form-group,
body:has(.pp-register-wizard) .pp-register-field--choice-group,
body:has(.pp-register-wizard) .pp-register-field--choice-group.form-group,
body:has(.pp-register-wizard) .pp-register-field:has(input[type="checkbox"]),
body:has(.pp-register-wizard) .pp-register-field:has(input[type="radio"]) {
  margin: 0 0 0.55rem 0 !important;
  padding: 0.3rem 0 0.3rem 3.35rem !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Flatten bootstrap columns inside checkbox rows */
body:has(.pp-register-wizard) .pp-register-field--single-checkbox > [class*="col-"],
body:has(.pp-register-wizard) .pp-register-field--choice-group > [class*="col-"],
body:has(.pp-register-wizard) .pp-register-field:has(input[type="checkbox"]) > [class*="col-"] {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Hide empty/duplicate legend labels that push layout off */
body:has(.pp-register-wizard) .pp-register-field--single-checkbox > [class*="col-"]:first-child:not(:has(input)):not(.pp-register-single-checkbox) {
  display: none !important;
}

/* Checkbox + label row */
body:has(.pp-register-wizard) .pp-register-single-checkbox,
body:has(.pp-register-wizard) .pp-register-choice,
body:has(.pp-register-wizard) .pp-register-field--choice-group .pf-c-check,
body:has(.pp-register-wizard) .pp-register-field--choice-group .checkbox,
body:has(.pp-register-wizard) .pp-register-field--choice-group .radio {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.85rem !important;
  column-gap: 0.85rem !important;
  padding: 0.25rem 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  min-height: 1.5rem !important;
}

body:has(.pp-register-wizard) .pp-register-single-checkbox input[type="checkbox"],
body:has(.pp-register-wizard) .pp-register-choice input[type="checkbox"],
body:has(.pp-register-wizard) .pp-register-choice input[type="radio"],
body:has(.pp-register-wizard) .pp-register-field:has(input[type="checkbox"]) input[type="checkbox"] {
  width: 1.15rem !important;
  height: 1.15rem !important;
  min-width: 1.15rem !important;
  min-height: 1.15rem !important;
  margin: 0 0.85rem 0 0 !important;
  padding: 0 !important;
  flex: 0 0 1.15rem !important;
  align-self: center !important;
  position: static !important;
  float: none !important;
  vertical-align: middle !important;
  accent-color: #3299d9 !important;
  cursor: pointer !important;
}

body:has(.pp-register-wizard) .pp-register-single-checkbox__label,
body:has(.pp-register-wizard) .pp-register-single-checkbox label,
body:has(.pp-register-wizard) .pp-register-choice label,
body:has(.pp-register-wizard) .pp-register-field--single-checkbox label,
body:has(.pp-register-wizard) .pp-register-field:has(input[type="checkbox"]) label {
  display: inline-flex !important;
  align-items: center !important;
  float: none !important;
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0.975rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  color: #1a1a1a !important;
  vertical-align: middle !important;
  cursor: pointer !important;
}

/* ========================================================================== */
/* r52 — Broker / update-profile: same wizard layout as registration           */
/* ========================================================================== */

body:has(#kc-idp-review-profile-form.pp-register-wizard),
body:has(#kc-update-profile-form.pp-register-wizard),
body:has(#kc-idp-review-profile-form.pp-register-wizard) .login-pf-page,
body:has(#kc-update-profile-form.pp-register-wizard) .login-pf-page {
  background: #ffffff !important;
  background-image: none !important;
}

/* Kill legacy yellow section chrome on broker/update when wizard is active */
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-card,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-card,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-panel .pp-register-card,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-panel .pp-register-card {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-card__header,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-card__header,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-card__title,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-card__title,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-card__description,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-card__description {
  display: none !important;
}

/* Match registration panel width for broker + update-profile wizards */
body:has(#kc-idp-review-profile-form.pp-register-wizard) .pp-stepper,
body:has(#kc-idp-review-profile-form.pp-register-wizard) .pp-register-panel,
body:has(#kc-idp-review-profile-form.pp-register-wizard) .pp-register-below,
body:has(#kc-idp-review-profile-form.pp-register-wizard) #kc-content,
body:has(#kc-idp-review-profile-form.pp-register-wizard) #kc-content-wrapper,
body:has(#kc-idp-review-profile-form.pp-register-wizard) .login-pf-page .card-pf,
body:has(#kc-update-profile-form.pp-register-wizard) .pp-stepper,
body:has(#kc-update-profile-form.pp-register-wizard) .pp-register-panel,
body:has(#kc-update-profile-form.pp-register-wizard) #kc-content,
body:has(#kc-update-profile-form.pp-register-wizard) #kc-content-wrapper,
body:has(#kc-update-profile-form.pp-register-wizard) .login-pf-page .card-pf {
  max-width: 600px !important;
  width: 600px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

@media (max-width: 660px) {
  body:has(#kc-idp-review-profile-form.pp-register-wizard) .pp-stepper,
  body:has(#kc-idp-review-profile-form.pp-register-wizard) .pp-register-panel,
  body:has(#kc-idp-review-profile-form.pp-register-wizard) .pp-register-below,
  body:has(#kc-idp-review-profile-form.pp-register-wizard) #kc-content,
  body:has(#kc-idp-review-profile-form.pp-register-wizard) #kc-content-wrapper,
  body:has(#kc-idp-review-profile-form.pp-register-wizard) .login-pf-page .card-pf,
  body:has(#kc-update-profile-form.pp-register-wizard) .pp-stepper,
  body:has(#kc-update-profile-form.pp-register-wizard) .pp-register-panel,
  body:has(#kc-update-profile-form.pp-register-wizard) #kc-content,
  body:has(#kc-update-profile-form.pp-register-wizard) #kc-content-wrapper,
  body:has(#kc-update-profile-form.pp-register-wizard) .login-pf-page .card-pf {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Hide old single-page footer submit chrome — wizard actions replace it */
body:has(.pp-register-wizard) .pp-register-footer-actions {
  display: none !important;
}

/* Beat legacy #kc-idp-review-profile-form / update-profile pill input rules */
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field.form-group,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field.form-group,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field {
  border: 1px solid #dadce0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  padding: 0.5rem 0.9rem 0.6rem !important;
  margin: 0 0 0.75rem !important;
  box-shadow: none !important;
}

body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field--single-checkbox,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field--choice-group,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field:has(input[type="checkbox"]),
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field:has(input[type="radio"]),
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field--single-checkbox,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field--choice-group,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field:has(input[type="checkbox"]),
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field:has(input[type="radio"]) {
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0.3rem 0 0.3rem 3.35rem !important;
  margin: 0 0 0.55rem 0 !important;
}

body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field input.pf-c-form-control,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field select.pf-c-form-control,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field textarea.pf-c-form-control,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field input.pf-c-form-control,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field select.pf-c-form-control,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field textarea.pf-c-form-control {
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  min-height: 1.5rem !important;
  height: auto !important;
  padding: 0.1rem 0 0.15rem !important;
  margin: 0 !important;
}

body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-field label,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-field label {
  display: block !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  color: #3c4043 !important;
  margin: 0 0 0.15rem !important;
}

body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-single-checkbox,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-choice,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-single-checkbox,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-choice {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.85rem !important;
}

body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-single-checkbox input[type="checkbox"],
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-choice input[type="checkbox"],
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-choice input[type="radio"],
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-single-checkbox input[type="checkbox"],
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-choice input[type="checkbox"],
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-choice input[type="radio"] {
  width: 1.15rem !important;
  height: 1.15rem !important;
  margin: 0 0.85rem 0 0 !important;
  flex-shrink: 0 !important;
  accent-color: #3299d9 !important;
}

body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-single-checkbox label,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-choice label,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-single-checkbox label,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-choice label {
  display: inline-flex !important;
  align-items: center !important;
  font-size: 0.975rem !important;
  font-weight: 500 !important;
  color: #1a1a1a !important;
  margin: 0 !important;
}

body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-submit,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-submit,
body:has(.pp-register-wizard) #kc-idp-review-profile-form .pp-register-continue,
body:has(.pp-register-wizard) #kc-update-profile-form .pp-register-continue {
  border-radius: 999px !important;
}

/* ========================================================================== */
/* r53 — Show farmer + Primary Interest on registration Interests step         */
/* ========================================================================== */

#kc-register-form .pp-register-field[data-pp-attr="interest_farmer"],
#kc-register-form .pp-register-field[data-pp-attr="interest_primary_alt"],
#kc-idp-review-profile-form .pp-register-field[data-pp-attr="interest_farmer"],
#kc-idp-review-profile-form .pp-register-field[data-pp-attr="interest_primary_alt"],
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="interest_farmer"],
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="interest_primary_alt"] {
  display: block !important;
}

/* Keep Primary Interest legend readable (not tiny fieldset caption) */
body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="interest_primary_alt"] > [class*="col-"]:first-child label,
body:has(.pp-register-wizard) .pp-register-field--choice-group > [class*="col-"]:first-child label {
  display: block !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: #5f6368 !important;
  margin: 0.35rem 0 0.55rem !important;
  padding: 0 !important;
}

/* ========================================================================== */
/* r54 — Country dropdown (ISO code value, country name label)                 */
/* ========================================================================== */

body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="location_country_code"] select.pp-country-select,
body:has(.pp-register-wizard) select.pp-country-select.pf-c-form-control,
#kc-idp-review-profile-form select.pp-country-select,
#kc-update-profile-form select.pp-country-select,
#kc-register-form select.pp-country-select {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  background-color: transparent !important;
  min-height: 1.75rem !important;
  height: auto !important;
  padding: 0.15rem 1.5rem 0.2rem 0 !important;
  margin: 0 !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  color: #1a1a1a !important;
  appearance: auto !important;
  -webkit-appearance: menulist !important;
  cursor: pointer !important;
}

body:has(.pp-register-wizard) .pp-register-field[data-pp-attr="location_country_code"] select.pp-country-select:invalid,
body:has(.pp-register-wizard) select.pp-country-select option[value=""] {
  color: #80868b !important;
}

/* ========================================================================== */
/* r55 — Update password: single fieldset border (no nested input borders)     */
/* ========================================================================== */

body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-field:not(.pp-field--actions):not(.pp-field--sessions),
#kc-passwd-update-form .pp-field:not(.pp-field--actions):not(.pp-field--sessions) {
  border: 1px solid #dadce0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  padding: 0.5rem 0.9rem 0.55rem !important;
  margin: 0 0 0.75rem !important;
  box-shadow: none !important;
}

body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-field:not(.pp-field--actions):not(.pp-field--sessions):focus-within {
  border-color: #3299d9 !important;
  box-shadow: 0 0 0 3px rgba(50, 153, 217, 0.22) !important;
}

/* Kill inner borders that were stacking on top of the fieldset shell */
body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-input-row,
body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-input,
body:has(#kc-passwd-update-form) #kc-passwd-update-form input.pp-input,
body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-eye,
body:has(#kc-passwd-update-form) #kc-passwd-update-form button.pp-eye,
#kc-passwd-update-form .pp-input-row,
#kc-passwd-update-form .pp-input,
#kc-passwd-update-form input.pp-input,
#kc-passwd-update-form .pp-eye,
#kc-passwd-update-form button.pp-eye {
  border: 0 none transparent !important;
  border-width: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border-radius: 0 !important;
}

body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-input-row,
#kc-passwd-update-form .pp-input-row {
  display: flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  min-height: 1.5rem !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}

body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-input,
#kc-passwd-update-form input.pp-input {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  min-height: 1.5rem !important;
  height: auto !important;
  padding: 0.1rem 0 !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  color: #1a1a1a !important;
}

body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-field__label,
#kc-passwd-update-form .pp-field__label {
  display: block !important;
  margin: 0 0 0.15rem !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  color: #3c4043 !important;
}

/* Helper / errors sit outside the bordered field */
body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-hint,
#kc-passwd-update-form .pp-hint {
  margin: -0.35rem 0 0.85rem !important;
  padding: 0 0.15rem !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0.8125rem !important;
  color: #5f6368 !important;
}

body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-error,
#kc-passwd-update-form .pp-error {
  display: block !important;
  margin: 0.35rem 0 0 !important;
  border: none !important;
  background: transparent !important;
  color: #d93025 !important;
  font-size: 0.8125rem !important;
}

/* Sessions + actions: no fieldset chrome */
body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-field--sessions,
body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-field--actions,
#kc-passwd-update-form .pp-field--sessions,
#kc-passwd-update-form .pp-field--actions {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Soften outer card so it does not look like another nested box */
body:has(#kc-passwd-update-form) #kc-form.pp-update-password-card,
body:has(#kc-passwd-update-form) .pp-update-password-card {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
}

/* ========================================================================== */
/* r56 — Flat password eye icon (no border, no shadow)                         */
/* ========================================================================== */

body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-eye,
body:has(#kc-passwd-update-form) #kc-passwd-update-form button.pp-eye,
body:has(#kc-passwd-update-form) #kc-passwd-update-form button[data-password-toggle],
#kc-passwd-update-form .pp-eye,
#kc-passwd-update-form button.pp-eye,
#kc-passwd-update-form button[data-password-toggle],
.pp-update-password-form .pp-eye,
.pp-update-password-form button.pp-eye,
.pp-fieldset-eye,
button.pp-fieldset-eye,
#kc-form-login .pp-fieldset-eye,
#kc-form-login button[data-password-toggle],
#kc-register-form .pp-fieldset-eye,
#kc-register-form button[data-password-toggle],
#kc-register-form .pp-register-password-wrap .pf-c-button,
#kc-register-form .pp-register-password-wrap .pf-c-button.pf-m-control,
.pp-register-wizard .pp-register-password-wrap .pf-c-button,
.pp-register-wizard .pp-register-password-wrap button[data-password-toggle],
.pp-user-profile-form button[data-password-toggle],
.pp-user-profile-form .pf-c-input-group .pf-c-button {
  border: 0 none transparent !important;
  border-width: 0 !important;
  border-left: 0 none transparent !important;
  border-right: 0 none transparent !important;
  border-top: 0 none transparent !important;
  border-bottom: 0 none transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
  outline: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: #5f6368 !important;
  padding: 0.1rem !important;
  min-width: 1.75rem !important;
  min-height: 1.75rem !important;
  width: auto !important;
  height: auto !important;
  flex: 0 0 auto !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-eye::before,
body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-eye::after,
body:has(#kc-passwd-update-form) #kc-passwd-update-form button.pp-eye::before,
body:has(#kc-passwd-update-form) #kc-passwd-update-form button.pp-eye::after,
#kc-passwd-update-form .pp-eye::before,
#kc-passwd-update-form .pp-eye::after,
#kc-passwd-update-form button.pp-eye::before,
#kc-passwd-update-form button.pp-eye::after,
.pp-fieldset-eye::before,
.pp-fieldset-eye::after,
button.pp-fieldset-eye::before,
button.pp-fieldset-eye::after,
#kc-form-login button[data-password-toggle]::before,
#kc-form-login button[data-password-toggle]::after,
#kc-register-form button[data-password-toggle]::before,
#kc-register-form button[data-password-toggle]::after,
#kc-register-form .pf-c-button.pf-m-control::before,
#kc-register-form .pf-c-button.pf-m-control::after,
.pp-register-wizard .pf-c-button.pf-m-control::before,
.pp-register-wizard .pf-c-button.pf-m-control::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  box-shadow: none !important;
  background: none !important;
}

body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-eye:hover,
body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-eye:focus,
body:has(#kc-passwd-update-form) #kc-passwd-update-form .pp-eye:active,
#kc-passwd-update-form .pp-eye:hover,
#kc-passwd-update-form .pp-eye:focus,
#kc-passwd-update-form button.pp-eye:hover,
.pp-fieldset-eye:hover,
button.pp-fieldset-eye:hover,
button[data-password-toggle]:hover {
  border: 0 none transparent !important;
  box-shadow: none !important;
  background: transparent !important;
  color: #3299d9 !important;
}

/* -------------------------------------------------------------------------- */
/* Email OTP verify page (r58) — match Sign In white Material card            */
/* -------------------------------------------------------------------------- */

body:has(#kc-otp-login-form),
body:has(#kc-otp-login-form).login-pf,
html:has(#kc-otp-login-form) {
  background: #ffffff !important;
}

body:has(#kc-otp-login-form) .login-pf-page,
body:has(#kc-otp-login-form) .login-pf-page .card-pf,
body:has(#kc-otp-login-form) #kc-content,
body:has(#kc-otp-login-form) #kc-content-wrapper {
  background: #ffffff !important;
  max-width: calc(var(--pp-max-form) + 2rem) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Username + restart — same hierarchy as Sign In header block */
body:has(#kc-otp-login-form) #kc-username {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.35rem !important;
  max-width: var(--pp-max-form) !important;
  margin: 1.15rem auto 0.85rem !important;
  padding: 0 0.75rem !important;
  text-align: center !important;
  float: none !important;
}

body:has(#kc-otp-login-form) #kc-attempted-username {
  display: block !important;
  margin: 0 !important;
  font-family: var(--pp-font) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--pp-text) !important;
}

body:has(#kc-otp-login-form) #reset-login {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  color: #3299d9 !important;
  text-decoration: none !important;
  font-family: var(--pp-font) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
}

body:has(#kc-otp-login-form) #reset-login:hover {
  color: var(--pp-blue-hover) !important;
  text-decoration: underline !important;
}

body:has(#kc-otp-login-form) #reset-login .kc-login-tooltip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  position: static !important;
}

body:has(#kc-otp-login-form) #reset-login .kc-tooltip-text {
  display: inline !important;
  position: static !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: transparent !important;
  color: inherit !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  white-space: nowrap !important;
}

body:has(#kc-otp-login-form) #reset-login .kc-login-tooltip i,
body:has(#kc-otp-login-form) #reset-login .pficon,
body:has(#kc-otp-login-form) #reset-login [class*="fa-"] {
  color: #3299d9 !important;
  font-size: 0.9rem !important;
}

/* White Material card — identical to Sign In */
body:has(#kc-otp-login-form) #kc-form,
body:has(#kc-otp-login-form) #kc-form.pp-login-card,
body:has(#kc-otp-login-form) #kc-form.pp-email-otp-card,
#kc-form.pp-email-otp-card,
#kc-form.pp-email-otp-card.pp-login-card {
  background: #ffffff !important;
  border: 1px solid #e8eaed !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 2px 6px 2px rgba(60, 64, 67, 0.15) !important;
  padding: 1.75rem 1.5rem 1.5rem !important;
  max-width: var(--pp-max-form) !important;
  margin: 0 auto !important;
}

.pp-email-otp-form {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.pp-email-otp-lead {
  margin: 0 0 1.1rem !important;
  padding: 0 !important;
  text-align: left !important;
  font-family: var(--pp-font) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  color: var(--pp-text-muted) !important;
}

/* Material inset field — same as Email/Password on Sign In */
.pp-email-otp-field,
#kc-otp-login-form .pp-email-otp-field.form-group {
  display: block !important;
  width: 100% !important;
  margin: 0 0 1.15rem !important;
  padding: 0.55rem 0.95rem 0.55rem !important;
  border: 1px solid #dadce0 !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  float: none !important;
}

.pp-email-otp-field:focus-within {
  border-color: #3299d9 !important;
  box-shadow: 0 0 0 3px rgba(50, 153, 217, 0.28) !important;
}

.pp-email-otp-label,
#kc-otp-login-form .pp-email-otp-label {
  display: block !important;
  margin: 0 0 0.2rem !important;
  padding: 0 !important;
  font-family: var(--pp-font) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  color: #5f6368 !important;
  text-align: left !important;
}

.pp-email-otp-label .required {
  color: #1a1a1a !important;
  font-weight: 600 !important;
}

.pp-email-otp-input,
#kc-otp-login-form input.pp-email-otp-input {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  font-family: var(--pp-font) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-align: left !important;
  color: #1a1a1a !important;
  min-height: 1.5rem !important;
  height: auto !important;
}

.pp-email-otp-input::placeholder {
  color: #9ca3af !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
}

.pp-email-otp-error {
  display: block !important;
  margin: -0.55rem 0 1rem !important;
  font-family: var(--pp-font) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: #d93025 !important;
  text-align: left !important;
}

.pp-email-otp-actions {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
  margin-top: 0.25rem !important;
}

/* Primary — same as Sign In button */
.pp-email-otp-submit,
input.pp-email-otp-submit {
  display: block !important;
  width: 100% !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 1rem !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: #3299d9 !important;
  color: #fff !important;
  font-family: var(--pp-font) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 48px !important;
  text-align: center !important;
  box-shadow: 0 1px 3px rgba(50, 153, 217, 0.35) !important;
  cursor: pointer !important;
}

.pp-email-otp-submit:hover {
  background: #2a84bc !important;
}

/* Secondary outlined */
.pp-email-otp-secondary,
input.pp-email-otp-secondary {
  display: block !important;
  width: 100% !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 1rem !important;
  border: 1px solid #dadce0 !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: #1a1a1a !important;
  font-family: var(--pp-font) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 48px !important;
  text-align: center !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.pp-email-otp-secondary:hover {
  background: #f8f9fa !important;
}

.pp-email-otp-secondary--primary,
input.pp-email-otp-secondary--primary {
  background: #3299d9 !important;
  border-color: #3299d9 !important;
  color: #fff !important;
}

.pp-email-otp-cancel,
button.pp-email-otp-cancel {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0.35rem 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #5f6368 !important;
  font-family: var(--pp-font) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  cursor: pointer !important;
  box-shadow: none !important;
}

.pp-email-otp-cancel:hover {
  color: #1a1a1a !important;
  text-decoration: underline !important;
}

/* FORCE OTP white card — beat any leftover yellow */
body:has(#kc-otp-login-form) #kc-form,
body:has(#kc-otp-login-form) #kc-form.pp-login-card,
body:has(#kc-otp-login-form) #kc-form.pp-email-otp-card,
body:has(#kc-otp-login-form) .pp-login-card,
body:has(#kc-otp-login-form) .pp-email-otp-card,
html body:has(#kc-otp-login-form) #kc-form.pp-login-card.pp-email-otp-card {
  background: #ffffff !important;
  background-color: #ffffff !important;
  border: 1px solid #e8eaed !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 2px 6px 2px rgba(60, 64, 67, 0.15) !important;
}
body:has(#kc-otp-login-form) .pp-email-otp-heading { display: none !important; }


/* OTP Cancel is an <a>, keep same look as former button */
a.pp-email-otp-cancel {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0.35rem 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #5f6368 !important;
  font-family: var(--pp-font) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: none !important;
}
a.pp-email-otp-cancel:hover {
  color: #1a1a1a !important;
  text-decoration: underline !important;
}

/* r60 — Additional Features heading matches Primary Interest label */
body:has(.pp-register-wizard) .pp-register-heading--additional-features,
#kc-register-form .pp-register-heading--additional-features,
#kc-update-profile-form .pp-register-heading--additional-features,
#kc-idp-review-profile-form .pp-register-heading--additional-features {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  /* Same left indent as Primary Interest / choice-group rows (r51) */
  margin: 1rem 0 0.55rem 0 !important;
  padding: 0.35rem 0 0.55rem 3.35rem !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  color: #5f6368 !important;
  letter-spacing: normal !important;
  text-align: left !important;
}

/* r61 — Never show the native wizard submit next to Continue/Create account.
   Older JS (pre-r38) set submitBtn.hidden=false on final step → double CTA. */
body:has(.pp-register-wizard) input[data-pp-wizard-submit],
body:has(.pp-register-wizard) input.pp-register-submit[type="submit"][data-pp-wizard-submit],
#kc-register-form input[data-pp-wizard-submit],
#kc-idp-review-profile-form input[data-pp-wizard-submit],
#kc-update-profile-form input[data-pp-wizard-submit] {
  display: none !important;
  visibility: hidden !important;
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
  pointer-events: none !important;
}


/* FAQ link styling — Login, Register, and Reset Password */
.pp-faq-link-row,
p.pp-faq-link-row,
#kc-content-wrapper .pp-faq-link-row {
  display: block !important;
  text-align: center !important;
  width: 100% !important;
  max-width: var(--pp-max-form) !important;
  margin: 1.25rem auto 0.25rem !important;
  padding: 0 0.75rem !important;
  font-size: 0.875rem !important;
  color: #5f6368 !important;
  line-height: 1.45 !important;
  box-sizing: border-box !important;
}

.pp-faq-link-row--login {
  margin-top: 1.35rem !important;
  margin-bottom: 0.25rem !important;
}

.pp-faq-link-row--reset {
  margin-top: 1rem !important;
  margin-bottom: 0.5rem !important;
}

.pp-faq-help-text {
  color: #6b7280 !important;
  margin-right: 0.3rem !important;
  display: inline !important;
}

.pp-faq-link {
  color: #0084cc !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.2rem !important;
  transition: color 0.15s ease !important;
  vertical-align: baseline !important;
}

.pp-faq-link:hover {
  color: #005f99 !important;
  text-decoration: underline !important;
}

.pp-faq-link .pp-faq-arrow {
  font-size: 0.95em !important;
  line-height: 1 !important;
  display: inline-block !important;
  transition: transform 0.15s ease !important;
}

.pp-faq-link:hover .pp-faq-arrow {
  transform: translate(1px, -1px) !important;
}

.pp-register-why__faq {
  margin-top: 0.85rem !important;
  padding-top: 0.75rem !important;
  border-top: 1px solid #d4e8f5 !important;
  text-align: center !important;
  font-size: 0.875rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
}


/* Register: social IdPs below form card — same centering as login */
body:has(#kc-register-form) #kc-social-providers,
body:has(.pp-register-wizard) #kc-social-providers {
  margin-top: 1.75rem !important;
  margin-bottom: 0.5rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--pp-register-max, var(--pp-max-form, 26rem)) !important;
  text-align: center !important;
  width: 100%;
}

body:has(#kc-register-form) #kc-social-providers .kc-social-links,
body:has(.pp-register-wizard) #kc-social-providers .kc-social-links,
body:has(#kc-register-form) #kc-social-providers ul.pf-c-login__main-footer-links,
body:has(.pp-register-wizard) #kc-social-providers ul.pf-c-login__main-footer-links {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.85rem !important;
}
