:root {
  --smile-bg: #3b73ff;
  --smile-color-text: #646464;
  --smile-color-link: var(--smile-bg);
  --smile-color-link-hover: #2a5ad9;
  --smile-color-card: #ffffff;
  --smile-color-header-bg: #ffc932;
  --smile-color-header-text: #ffffff;
  --smile-color-input-bg: #ebebeb;
  --smile-color-btn: #3b82f6;
  --smile-color-btn-hover: #2563eb;
  --smile-color-error: #a94442;
  --smile-color-error-bg: #fff5f5;
  --smile-color-error-border: #ebccd1;
  --smile-color-muted: #c4c4c4;
  --smile-font-base: Verdana, sans-serif;
  --smile-font-heading: Verdana, sans-serif;
  --smile-radius-card: 10px;
  --smile-radius-input: 5px;
  --smile-radius-btn: 30px;
  --smile-card-width: 440px;
  --smile-header-pattern: url("../img/bg-login.png");
}

/* Keycloak / PatternFly overrides */
.smile-theme #kc-header,
.smile-theme .pf-v5-c-login__header,
.smile-theme #kc-logo-wrapper,
.smile-theme .card-pf,
.smile-theme #kc-form-wrapper > .pf-c-login__main,
.smile-theme [data-kc-login-card] {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.smile-theme .login-pf-page {
  padding: 0;
  background-color: var(--smile-bg) !important;
}

html.login-pf.smile-theme,
.smile-body,
.login-pf.smile-theme body {
  margin: 0;
  min-height: 100vh;
  min-width: 320px;
  overflow: auto;
  font-family: var(--smile-font-base);
  font-size: 14px;
  color: var(--smile-color-text);
  background-color: var(--smile-bg) !important;
}

.smile-login-pf {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;
  padding: 20px 16px 40px;
  box-sizing: border-box;
  background-color: var(--smile-bg);
}

#smile-container {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}

.smile-site-header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 0 28px;
}

.smile-logo {
  display: block;
  width: 55%;
  max-width: 520px;
  line-height: 0;
}

.smile-logo img {
  display: block;
  width: 100%;
  max-height: 100px;
  object-fit: contain;
}

.smile-login-card {
  width: 100%;
  max-width: var(--smile-card-width);
  margin: 0 auto;
  overflow: visible;
  background: var(--smile-color-card);
  border-radius: var(--smile-radius-card);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.smile-login-header {
  padding: 20px;
  text-align: center;
  border-radius: var(--smile-radius-card) var(--smile-radius-card) 0 0;
  background-color: var(--smile-color-header-bg);
  background-image: var(--smile-header-pattern);
  background-repeat: repeat;
  background-position: center;
}

.smile-login-header h1,
.smile-login-header #kc-page-title {
  margin: 0;
  font-family: var(--smile-font-heading);
  font-size: 18pt;
  font-weight: 700;
  line-height: 1.2;
  color: var(--smile-color-header-text);
}

.smile-lock-icon {
  display: block;
  width: 56px;
  height: 56px;
  margin: 0 auto;
}

.smile-login-body {
  padding: 10px 30px 24px;
  overflow: visible;
}

#kc-content-wrapper {
  overflow: visible;
}

/* Username (OTP / step-up flows) */
.smile-user-session,
.smile-login-card > #kc-username,
#kc-username {
  padding: 16px 30px;
  text-align: center;
}

h2.smile-username-display,
.smile-username-display,
#kc-username #kc-attempted-username {
  display: block;
  margin: 0 0 12px;
  font-family: var(--smile-font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--smile-color-text);
}

.smile-btn-action,
#kc-form-login #kc-login,
#kc-otp-login-form #kc-login,
#kc-otp-login-form .pf-c-button#kc-login,
#registerWebAuthn,
#kc-webauthn-register-form #registerWebAuthn,
#kc-totp-settings-form #saveTOTPBtn,
#kc-totp-settings-form .pf-c-button#saveTOTPBtn,
#kc-passwd-update-form #savePasswordBtn,
#kc-passwd-update-form .pf-c-button#savePasswordBtn,
#kc-logout-confirm #kc-logout,
#kc-logout-confirm .pf-c-button#kc-logout,
#kc-password-expiry-warning #kc-continue,
body[data-page-id="login-password-expiry-warning"] #kc-form-buttons input[type="submit"] {
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding: 10px 25px;
  border: 0;
  border-radius: var(--smile-radius-btn);
  background-color: var(--smile-color-btn);
  font-family: var(--smile-font-base);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

#kc-logout-confirm .smile-logout-question {
  margin: 8px 0 24px;
  font-family: var(--smile-font-heading);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  color: var(--smile-color-text);
}

#kc-logout-confirm #kc-info-message {
  text-align: center;
}

.smile-btn-action:hover,
.smile-btn-action:focus,
.smile-btn-action:visited,
#kc-form-login #kc-login:hover,
#kc-otp-login-form #kc-login:hover,
#kc-otp-login-form .pf-c-button#kc-login:hover,
#registerWebAuthn:hover,
#registerWebAuthn:focus,
#registerWebAuthn:visited,
#kc-webauthn-register-form #registerWebAuthn:hover,
#kc-totp-settings-form #saveTOTPBtn:hover,
#kc-totp-settings-form .pf-c-button#saveTOTPBtn:hover,
#kc-passwd-update-form #savePasswordBtn:hover,
#kc-passwd-update-form .pf-c-button#savePasswordBtn:hover,
#kc-logout-confirm #kc-logout:hover,
#kc-logout-confirm .pf-c-button#kc-logout:hover,
#kc-password-expiry-warning #kc-continue:hover,
#kc-password-expiry-warning #kc-continue:focus,
#kc-password-expiry-warning #kc-continue:visited,
body[data-page-id="login-password-expiry-warning"] #kc-form-buttons input[type="submit"]:hover,
body[data-page-id="login-password-expiry-warning"] #kc-form-buttons input[type="submit"]:focus,
body[data-page-id="login-password-expiry-warning"] #kc-form-buttons input[type="submit"]:visited {
  background-color: var(--smile-color-btn-hover);
  color: #fff;
  text-decoration: none;
  outline: none;
}

.smile-login-footer a:focus-visible,
#mode-manual:focus-visible,
#mode-barcode:focus-visible {
  outline: 2px solid var(--smile-color-link);
  outline-offset: 2px;
}

.smile-login-footer a:focus:not(:focus-visible) {
  outline: none;
}

/* OTP form — Keycloak default markup (form-horizontal / PatternFly) on server */
#kc-otp-login-form.form-horizontal .form-group {
  margin: 0 0 20px;
}

.smile-theme #kc-otp-login-form [class*="col-"] {
  width: 100%;
  max-width: 100%;
  padding: 0;
  float: none;
}

#kc-otp-login-form.form-horizontal label,
#kc-otp-login-form .pf-c-form__label {
  display: block;
  margin-bottom: 4px;
  font-weight: 700;
  color: var(--smile-color-text);
}

#kc-otp-login-form.form-horizontal #kc-form-buttons {
  margin: 24px 0 8px;
  text-align: center;
}

/* Language switcher */
.smile-locale {
  margin-bottom: 10px;
  text-align: right;
}

/* Keycloak menu-button-links — keep our dropdown styles */
.smile-theme #kc-locale-dropdown.menu-button-links ul[role="menu"] {
  position: absolute;
  top: 100%;
  right: 0;
  left: auto;
  float: none;
}

#kc-locale-wrapper,
#kc-locale-dropdown {
  position: relative;
  display: inline-block;
}

#kc-locale-dropdown button#kc-current-locale-link {
  position: relative;
  padding: 0 18px 0 0;
  border: none;
  background: transparent;
  font-family: var(--smile-font-base);
  font-size: 14px;
  font-weight: normal;
  line-height: 1.5;
  color: var(--smile-color-text);
  cursor: pointer;
  appearance: none;
}

#kc-locale-dropdown button#kc-current-locale-link::after {
  content: "";
  position: absolute;
  right: 2px;
  top: 50%;
  border: 5px solid transparent;
  border-top: 6px solid var(--smile-color-muted);
  transform: translateY(-35%);
  pointer-events: none;
}

#kc-locale-dropdown button#kc-current-locale-link:hover,
#kc-locale-dropdown button#kc-current-locale-link[aria-expanded="true"] {
  color: #4a4a4a;
}

#kc-locale-dropdown button#kc-current-locale-link:focus {
  outline: none;
}

#kc-locale-dropdown button#kc-current-locale-link:focus-visible,
#kc-locale-dropdown button#kc-current-locale-link[aria-expanded="true"]:focus-visible {
  outline: 2px solid var(--smile-color-link);
  outline-offset: 2px;
  color: #4a4a4a;
}

#kc-locale-dropdown button#kc-current-locale-link[aria-expanded="true"]::after {
  border-top-color: #999;
}

#kc-locale-dropdown ul#language-switch1,
.smile-locale-list {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 20;
  min-width: 220px;
  margin: 8px 0 0;
  padding: 6px 0;
  list-style: none;
  text-align: left;
  background: var(--smile-color-card);
  border: 1px solid #e0e0e0;
  border-radius: 2px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

#kc-current-locale-link[aria-expanded="true"] + ul#language-switch1,
#kc-current-locale-link[aria-expanded="true"] + .smile-locale-list {
  display: block;
}

#kc-locale-dropdown .smile-locale-link,
.smile-locale-list a[role="menuitem"] {
  display: block;
  padding: 10px 16px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--smile-color-text);
  text-decoration: none;
  white-space: nowrap;
}

#kc-locale-dropdown .smile-locale-link:hover,
.smile-locale-list a[role="menuitem"]:hover {
  background: #f7f7f7;
  color: var(--smile-color-text);
  text-decoration: none;
}

#kc-locale-dropdown .smile-locale-link:focus,
.smile-locale-list a[role="menuitem"]:focus {
  outline: none;
}

#kc-locale-dropdown .smile-locale-link:focus-visible,
.smile-locale-list a[role="menuitem"]:focus-visible {
  background: #f7f7f7;
  color: var(--smile-color-text);
  text-decoration: none;
  outline: 2px solid var(--smile-color-link);
  outline-offset: -2px;
}

/* Form (login + OTP + configure TOTP) */
#kc-form-login .smile-form-row,
#kc-otp-login-form .smile-form-row,
#kc-totp-settings-form .smile-form-row,
#kc-passwd-update-form .smile-form-row {
  position: relative;
  margin: 0 0 20px;
  overflow: visible;
}

#kc-form-login label,
#kc-otp-login-form label,
#kc-totp-settings-form label,
#kc-passwd-update-form label {
  display: block;
  margin-bottom: 4px;
  font-weight: 700;
  color: var(--smile-color-text);
}

.smile-field-description {
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: #767676;
}

#kc-form-login input[type="text"],
#kc-form-login input[type="password"],
#kc-otp-login-form input[type="text"],
#kc-totp-settings-form input[type="text"],
#kc-passwd-update-form input[type="password"] {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 10px;
  border: none;
  border-radius: var(--smile-radius-input);
  background-color: var(--smile-color-input-bg);
  font-size: 1.1rem;
  color: var(--smile-color-text);
}

#kc-form-login input::placeholder,
#kc-otp-login-form input::placeholder,
#kc-totp-settings-form input::placeholder,
#kc-passwd-update-form input::placeholder {
  color: var(--smile-color-muted);
  opacity: 1;
}

#kc-form-login input:focus,
#kc-otp-login-form input:focus,
#kc-totp-settings-form input:focus,
#kc-passwd-update-form input:focus {
  outline: 2px solid var(--smile-color-link);
  outline-offset: 1px;
}

#kc-form-login input[aria-invalid="true"],
#kc-otp-login-form input[aria-invalid="true"],
#kc-totp-settings-form input[aria-invalid="true"],
#kc-passwd-update-form input[aria-invalid="true"] {
  border: 1px solid var(--smile-color-error-border);
  outline: none;
  background-color: var(--smile-color-error-bg);
}

#kc-form-login input[aria-invalid="true"]:focus,
#kc-otp-login-form input[aria-invalid="true"]:focus,
#kc-totp-settings-form input[aria-invalid="true"]:focus,
#kc-passwd-update-form input[aria-invalid="true"]:focus {
  border-color: var(--smile-color-error-border);
  outline: none;
}

#kc-form-login .smile-input-error,
#kc-otp-login-form .smile-input-error,
#kc-totp-settings-form .smile-input-error,
#kc-passwd-update-form .smile-input-error,
#kc-form-login .kc-feedback-text,
#kc-otp-login-form .kc-feedback-text,
#kc-totp-settings-form .kc-feedback-text,
#kc-passwd-update-form .kc-feedback-text,
#kc-form-login [class*="InputErrorMessage"],
#kc-otp-login-form [class*="InputErrorMessage"],
#kc-totp-settings-form [class*="InputErrorMessage"],
#kc-passwd-update-form [class*="InputErrorMessage"],
#kc-form-login [class*="helper-text"][class*="error"],
#kc-otp-login-form [class*="helper-text"][class*="error"],
#kc-totp-settings-form [class*="helper-text"][class*="error"],
#kc-passwd-update-form [class*="helper-text"][class*="error"],
#kc-form-login .pf-m-error,
#kc-otp-login-form .pf-m-error,
#kc-totp-settings-form .pf-m-error,
#kc-passwd-update-form .pf-m-error {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  font-weight: normal;
  color: var(--smile-color-error) !important;
}

#kc-form-login .smile-form-options {
  margin: 12px 0;
}

#kc-form-login .smile-form-options label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: normal;
}

#kc-form-login .smile-btn-row,
#kc-otp-login-form .smile-btn-row,
#kc-totp-settings-form .smile-btn-row,
#kc-passwd-update-form .smile-btn-row,
#kc-logout-confirm .smile-btn-row,
.smile-totp-actions {
  margin: 24px 0 8px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

/* Configure TOTP (Mobile Authenticator Setup) */
.smile-totp-steps {
  margin: 0 0 20px;
  padding-left: 1.25rem;
  color: var(--smile-color-text);
  line-height: 1.5;
}

.smile-totp-steps > li {
  margin-bottom: 12px;
}

#kc-totp-supported-apps {
  margin: 8px 0 0;
  padding-left: 1.25rem;
}

#kc-totp-secret-qr-code {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 8px 0;
}

#mode-manual,
#mode-barcode {
  color: var(--smile-color-link);
}

#mode-manual:hover,
#mode-barcode:hover {
  color: var(--smile-color-link-hover);
}

.smile-totp-policy {
  margin: 8px 0 0;
  padding-left: 1.25rem;
}

#kc-totp-settings-form #kc-form-options,
#kc-passwd-update-form #kc-form-options {
  display: block;
}

#kc-webauthn-register-form #kc-form-options {
  display: block;
  margin: 0 0 18px;
}

#kc-totp-settings-form #kc-form-options label,
#kc-passwd-update-form #kc-form-options label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: normal;
}

#kc-totp-settings-form #cancelTOTPBtn,
#kc-totp-settings-form .smile-btn-secondary,
#kc-totp-settings-form .pf-c-button.smile-btn-secondary,
#kc-webauthn-settings-form #cancelWebAuthnAIA,
#kc-webauthn-settings-form .pf-c-button#cancelWebAuthnAIA,
#kc-passwd-update-form #cancelPasswordBtn,
#kc-passwd-update-form .smile-btn-secondary,
#kc-passwd-update-form .pf-c-button.smile-btn-secondary,
#kc-form-passkey-button .smile-btn-secondary {
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin-top: 12px;
  padding: 10px 25px;
  border: 2px solid var(--smile-color-btn);
  border-radius: var(--smile-radius-btn);
  background-color: transparent;
  font-family: var(--smile-font-base);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  color: var(--smile-color-btn);
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

#kc-totp-settings-form #cancelTOTPBtn:hover,
#kc-totp-settings-form .smile-btn-secondary:hover,
#kc-totp-settings-form .pf-c-button.smile-btn-secondary:hover,
#kc-webauthn-settings-form #cancelWebAuthnAIA:hover,
#kc-webauthn-settings-form #cancelWebAuthnAIA:focus,
#kc-webauthn-settings-form .pf-c-button#cancelWebAuthnAIA:hover,
#kc-passwd-update-form #cancelPasswordBtn:hover,
#kc-passwd-update-form .smile-btn-secondary:hover,
#kc-passwd-update-form .pf-c-button.smile-btn-secondary:hover,
#kc-form-passkey-button .smile-btn-secondary:hover,
#kc-form-passkey-button .smile-btn-secondary:focus {
  background-color: var(--smile-color-btn);
  border-color: var(--smile-color-btn);
  color: #fff;
  text-decoration: none;
  outline: none;
}

#kc-form-passkey-button .smile-btn-secondary:visited {
  text-decoration: none;
}

/* Legacy configure-TOTP markup (form-horizontal) */
#kc-totp-settings-form.form-horizontal #saveTOTPBtn,
#kc-totp-settings-form.form-horizontal .pf-c-button#saveTOTPBtn,
#kc-totp-settings-form.form-horizontal #cancelTOTPBtn,
#kc-totp-settings-form.form-horizontal .pf-c-button#cancelTOTPBtn,
#kc-passwd-update-form.form-horizontal #savePasswordBtn,
#kc-passwd-update-form.form-horizontal .pf-c-button#savePasswordBtn,
#kc-passwd-update-form.form-horizontal #cancelPasswordBtn,
#kc-passwd-update-form.form-horizontal .pf-c-button#cancelPasswordBtn {
  width: 100%;
}

/* OTP credential picker (2+ authenticator apps) */
.smile-otp-credentials-row {
  margin-bottom: 16px;
}

.smile-otp-credentials {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.smile-otp-credentials legend {
  display: block;
  width: 100%;
  margin-bottom: 8px;
  padding: 0;
  font-weight: 700;
  color: var(--smile-color-text);
}

#kc-otp-login-form .smile-otp-option {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-weight: normal;
  color: var(--smile-color-text);
  cursor: pointer;
}

.smile-otp-option:last-child {
  margin-bottom: 0;
}

.smile-otp-option input[type="radio"] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
}

.smile-otp-option-label {
  font-size: 14px;
  line-height: 1.4;
}

#kc-form-login #kc-form-options {
  display: none;
}

.smile-theme [data-password-toggle],
.smile-theme button[aria-controls="password"] {
  display: none !important;
}

/* WebAuthn / Passkey list */
#kc-form-webauthn,
.smile-passkey-inline-form {
  margin-top: 8px;
}

#kc-webauthn-authenticator-item-0,
#kc-form-webauthn [id^="kc-webauthn-authenticator-item-"],
.smile-passkey-inline-form [id^="kc-webauthn-authenticator-item-"] {
  margin-bottom: 10px;
  padding: 10px 12px;
  border: 1px solid #e0e0e0;
  border-radius: var(--smile-radius-input);
  background: #fafafa;
}

#kc-form-webauthn [id^="kc-webauthn-authenticator-label-"] {
  font-weight: 700;
  color: var(--smile-color-text);
}

#kc-form-webauthn [id^="kc-webauthn-authenticator-transport-"],
#kc-form-webauthn [id^="kc-webauthn-authenticator-createdlabel-"],
#kc-form-webauthn [id^="kc-webauthn-authenticator-created-"] {
  font-size: 13px;
  color: var(--smile-color-text);
}

/* Alerts */
.smile-alert {
  margin-bottom: 16px;
  padding: 12px;
  border-radius: var(--smile-radius-input);
}

.smile-alert.pf-m-danger {
  font-weight: normal;
  color: var(--smile-color-error);
  background: var(--smile-color-error-bg);
  border: 1px solid var(--smile-color-error-border);
}

.smile-alert.pf-m-warning {
  font-weight: normal;
  color: #7a5b00;
  background: #fff8e6;
  border: 1px solid #f0d080;
  line-height: 24px;
}

.smile-password-expiry-alert {
  margin-bottom: 16px;
  line-height: 1.45;
}

.smile-password-expiry-alert--soon.pf-m-warning {
  color: #8a5a00;
  background: #fff5e9;
  border-color: #f0ab66;
}

.smile-password-expiry-alert--soon .smile-password-expiry-days,
.smile-password-expiry-alert--urgent .smile-password-expiry-days {
  font-weight: 700;
  font-size: 1.05em;
}

.smile-password-expiry-alert--soon .smile-password-expiry-days {
  color: #5c4500;
}

.smile-alert.pf-m-warning a {
  color: var(--smile-color-link);
  font-weight: 700;
  text-decoration: underline;
}

.smile-alert.pf-m-warning a:hover {
  color: var(--smile-color-link-hover);
}

/* Standalone error page (error.ftl) */
.smile-error-page {
  margin-top: 4px;
}

.smile-error-intro {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--smile-color-text);
}

.smile-error-alert {
  margin-bottom: 12px;
}

.smile-error-summary {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.45;
}

.smile-error-hint,
.smile-error-trace {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.5;
  color: #767676;
}

.smile-error-actions {
  margin-top: 16px;
}

.smile-error-back-link {
  font-size: 14px;
  font-weight: 700;
  color: var(--smile-color-link);
  text-decoration: underline;
}

.smile-error-back-link:hover {
  color: var(--smile-color-link-hover);
}

/* Footer */
.smile-login-footer {
  margin-top: 8px;
  padding-top: 8px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--smile-color-text);
}

.smile-forgot-password,
.smile-ssp-password {
  margin: 0 0 16px;
}

.smile-login-footer .smile-footer-link {
  margin: 0 0 16px;
  font-size: 13px;
  line-height: 1.5;
}

.smile-login-footer .smile-footer-link a {
  text-decoration: underline;
}

.smile-recovery-hint {
  font-size: 13px;
  line-height: 1.5;
  margin: 0 0 10px;
}

.smile-recovery-row {
  margin: 0 0 16px;
}

.smile-login-footer .smile-recovery-row .smile-btn-secondary {
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 10px 25px;
  border: 0;
  border-radius: var(--smile-radius-btn);
  background-color: transparent;
  box-shadow: inset 0 0 0 2px var(--smile-color-btn);
  font-family: var(--smile-font-base);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  color: var(--smile-color-btn);
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.smile-login-footer .smile-recovery-row .smile-btn-secondary:hover,
.smile-login-footer .smile-recovery-row .smile-btn-secondary:focus,
.smile-login-footer .smile-recovery-row .smile-btn-secondary:visited {
  background-color: var(--smile-color-btn);
  box-shadow: inset 0 0 0 2px var(--smile-color-btn);
  color: #fff;
  text-decoration: none;
  outline: none;
}

.smile-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.smile-login-footer a {
  color: var(--smile-color-link);
  text-decoration: none;
}

.smile-login-footer a:hover {
  color: var(--smile-color-link-hover);
  text-decoration: underline;
}

/* Social / registration */
#kc-social-providers {
  margin-top: 20px;
}

#kc-registration {
  margin-top: 16px;
  text-align: center;
}

/* Keycloak footer */
.smile-theme footer,
.smile-theme [class*="login-pf-footer"] {
  margin-top: 24px;
  font-size: 12px;
  text-align: center;
  color: #fff;
}

.smile-theme footer a {
  color: #fff;
}

@media only screen and (max-width: 855px) {
  .smile-site-header {
    padding: 16px 0 20px;
  }

  .smile-logo {
    width: 85%;
  }

  .smile-logo img {
    max-height: 70px;
  }

  .smile-login-body {
    padding: 10px 20px 20px;
  }

  #kc-form-login input[type="text"],
  #kc-form-login input[type="password"] {
    padding: 10px;
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .smile-login-pf {
    padding-left: 0;
    padding-right: 0;
  }

  .smile-login-card {
    width: calc(100% - 30px);
    max-width: none;
    margin-left: 15px;
    margin-right: 15px;
  }
}
