/* ============================================
   DESIGN TOKENS & DEFAULTS
   ============================================ */
:root {
  /* Colors */
  --sty-primary-color: #012169;
  --sty-primary-action: #0458ad;
  --sty-panel-bg: #ffffff;
  --sty-text-primary: #333;
  --sty-text-secondary: #666;
  --sty-text-tertiary: #374151;
  /* --sty-link-color: #0076b4; */
  --sty-link-color: #0458ad;
  --sty-error-color: #c41c1c;
  --sty-border-color: #666;
  --sty-shadow-color: rgba(0, 0, 0, 0.25);
  --sty-disabled-color: #999;
  --sty-bg-light: #e8ebf1;
  --sty-radio-checked-bg: #0458ad;

  /* Typography */
  --sty-font-family: 'Lato', sans-serif;
  --sty-font-size-base: 16px;
  --sty-font-size-sm: 14px;
  --sty-font-size-xs: 12px;
  /* use --sty-font-size-xs variable if you want 12px and use --sty-font-size-xxs variable if you want 10px*/
  --sty-font-size-xxs: 10px;
  --sty-font-size-lg: 28px;
  --sty-font-size-xl: 32px;
  --sty-line-height-base: 1.2;
  --sty-line-height-relaxed: 1.4;
  --sty-line-height-loose: 16px;

  /* Spacing */
  --sty-spacing-xs: 6px;
  --sty-spacing-sm: 8px;
  --sty-spacing-md: 12px;
  --sty-spacing-lg: 16px;
  --sty-spacing-xl: 24px;
  --sty-spacing-2xl: 32px;

  /* Layout */
  --sty-panel-max-width: minmax(360px, 500px);
  --sty-button-height: 40px;
  --sty-input-height: 44px;
  --sty-border-radius: 4px;
  --sty-button-border-radius: 4px;

  background: transparent;
}

sty-login {
  max-width: 100% !important;
}

.temp-passkey-loader {
  margin-top: 2rem;
}

/* ============================================
   MIXINS (via shared classes)
   ============================================ */

/* Shared typography styles */
.sty-text-base {
  font-family: var(--sty-font-family);
  line-height: var(--sty-line-height-base);
}

.sty-text-bold {
  font-weight: 700;
}

.sty-text-normal {
  font-weight: 400;
}

/* Shared layout styles */
.sty-flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Shared input styles */
.sty-input-base {
  padding-left: 16px !important;
  border: 1px solid var(--sty-border-color) !important;
  border-radius: var(--sty-border-radius) !important;
  padding-block-start: var(--sty-spacing-md) !important;
  padding-block-end: var(--sty-spacing-md);
  font-size: var(--sty-font-size-base);
  font-family: var(--sty-font-family);
  color: var(--sty-text-primary);
}

.sty-label-base {
  text-align: left;
  color: var(--sty-text-secondary);
  font-size: var(--sty-font-size-sm);
  line-height: var(--sty-line-height-base) !important;
  font-weight: 700;
  font-family: var(--sty-font-family);
  margin-bottom: var(--sty-spacing-xs);
  display: block;
  position: relative;
  transform: none;
  padding: 0;
}

.sty-container-reset {
  display: block;
  border: none;
  box-shadow: none;
}

.sty-error-icon-hidden::part(error-icon) {
  display: none !important;
}

/* ============================================
   UTILITY CLASSES
   ============================================ */

.sty-btn-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100px;
  height: var(--sty-button-height);
  border: 1px solid var(--sty-primary-action);
  border-radius: var(--sty-border-radius);
  color: var(--sty-primary-action);
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-base);
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}

.ciam--create-account-content .sty-btn-link,
.ciam-complete-profile-container .sty-btn-link {
  visibility: hidden;
}

.sty-btn-link:hover {
  text-decoration: none;
}

.sty-btn-link .back-arrow-icon {
  height: 8px;
  width: 8px;
  border-top: 2px solid;
  border-left: 2px solid;
  transform: rotate(-45deg);
  margin-right: 4px;
}

/* ============================================
   BASE LOGIN CONTAINER
   ============================================ */
sty-login {
  max-width: 100%;
  margin-bottom: 0 !important;
  box-shadow: none !important;
  min-width: 300px;
  border: none !important;
}

sty-login .registraion {
  box-shadow: none;
  border: none;
  margin-bottom: 0;
}

sty-login [data-section="panelHeader"] {
  display: none;
}

sty-login [data-section="panelHeader"]+[data-section="panelContainer"] {
  padding: var(--sty-spacing-2xl) var(--sty-spacing-2xl);
  padding-top: var(--sty-spacing-xl);
}

sty-login [part="wrapper"] {
  padding-inline: 0;
}

sty-login [data-separator] {
  margin-block: var(--sty-spacing-xl) 0;
}

.sign-in-content--secured-login sty-login [data-separator] .user-login__footer {
  display: none;
}

sty-login [data-separator]:before {
  display: none;
}

sty-login [data-separator-text] {
  font-size: var(--sty-font-size-xs);
  margin-block: var(--sty-spacing-xl);

  &:not(:empty):before {
    margin-inline-end: 43px;
    border: 1px solid #979797
  }

  &:not(:empty):after {
    margin-inline-start: 43px;
    border: 1px solid #979797;
  }
}

sty-login sty-button {
  margin-block-start: 0;
}

sty-login [data-block] {
  position: relative;
}

/* ============================================
   TYPOGRAPHY - HEADINGS & TITLES
   ============================================ */

/* Shared title styles */
sty-login [data-block-title],
sty-block-registration [data-block-title] {
  text-align: var(--sty-panel-text-alignment, left) !important;
  color: var(--sty-primary-color) !important;
  font-family: var(--sty-font-family) !important;
  font-size: var(--sty-font-size-lg) !important;
  line-height: var(--sty-line-height-base) !important;
  font-weight: 700 !important;
  margin-bottom: var(--sty-spacing-xl) !important;
  text-transform: capitalize !important;
}

.ciam-complete-profile-container sty-block-registration [data-block-title] {
  margin-bottom: 2px !important;
}

sty-block-password-enroll [data-block-title] {
  margin-bottom: var(--sty-spacing-md) !important;
}

sty-block-registration [data-block-title] {
  margin-bottom: 9px;
}

.login-section__signin--content-secured-login sty-login [data-block-title],
.login-form--secured-login sty-login [data-block-title],
.sign-in-content--secured-login sty-login [data-block-title],
.login-form--secured-login sty-login sty-i18n,
.login-section__signin--content-secured-login sty-login sty-i18n[keypath="blocks.mfaPasscode.text.email.passcode"],
.login-section__signin--content-secured-login sty-login sty-i18n[keypath="blocks.identifier.registration"] {
  display: none;
}

.password-section-title {
  margin-bottom: var(--sty-spacing-md);
}

.section-title-user {
  font-size: var(--sty-font-size-xl);
  line-height: var(--sty-line-height-base);
  font-family: var(--sty-font-family);
  color: var(--sty-primary-color);
  font-weight: 700;
  text-align: left;
  margin-bottom: var(--sty-spacing-xl);
}

sty-login h1.user-login__footer__title {
  color: var(--sty-primary-color);
  font-size: var(--sty-font-size-lg);
  font-weight: 700;
  font-family: var(--sty-font-family);
  line-height: var(--sty-line-height-base);
  text-align: left;
}

sty-login div.user-login__footer__content {
  color: var(--sty-primary-color);
  font-size: var(--sty-font-size-sm);
  text-align: left;
  font-family: var(--sty-font-family);
  font-weight: 700;
  line-height: var(--sty-line-height-base);
  margin-block-start: var(--sty-spacing-xs);
  margin-block-end: var(--sty-spacing-xl);
}

sty-login sty-i18n {
  background: var(--sty-bg-light);
  border-radius: var(--sty-border-radius);
  padding: var(--sty-spacing-xl);
  padding-block-start: var(--sty-spacing-xl) !important;
}

.sign-in-content--secured-login sty-login sty-i18n {
  background: transparent;
  padding: 0;
  padding-block-start: 0 !important;
}

.registration-subtitle {
  color: var(--sty-primary-color);
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-sm);
  font-weight: 400;
  margin-bottom: var(--sty-spacing-xl);
  text-align: left;
}

/* ============================================
   INPUT FIELDS - SHARED STYLES
   ============================================ */

/* Text inputs */
sty-input-text div {
  border-color: var(--sty-border-color) !important;
}

sty-input-text div[part="container"] div[part="wrapper"] {
  padding-block: 0;
}

sty-login sty-input-text input,
sty-login sty-input-phone input,
sty-login sty-input-password input,
sty-login sty-input-passcode input {
  padding-left: 16px !important;
  border: 1px solid var(--sty-border-color) !important;
  border-radius: var(--sty-border-radius) !important;
  padding-block-start: var(--sty-spacing-md) !important;
  padding-block-end: var(--sty-spacing-md) !important;
  font-size: var(--sty-font-size-base) !important;
  font-family: var(--sty-font-family);
  color: var(--sty-text-primary) !important;
  max-height: 40px;
}

vshoppe-registration-upgrade sty-input-text input,
vshoppe-registration-upgrade sty-input-phone input,
vshoppe-registration-upgrade sty-input-password input,
vshoppe-registration-upgrade sty-input-passcode input {
  font-size: var(--sty-font-size-base) !important;
  color: var(--sty-text-primary) !important;
}

sty-input-text::part(input),
sty-input-phone::part(input),
sty-input-password::part(input),
sty-input-passcode::part(input) {
  padding-block-start: 12px !important;
}

.ciam-complete-profile-container sty-block-registration sty-input-text[name="email"] input:disabled {
  opacity: 1;
}

/* Error state for inputs */
sty-login sty-input-text input[aria-invalid="true"],
sty-login sty-input-phone input[aria-invalid="true"],
sty-login sty-input-password input[aria-invalid="true"] {
  border-color: var(--sty-error-color) !important;
}

/* Labels - shared styles */
sty-login sty-input-text label,
sty-login sty-input-password label,
sty-login sty-input-phone label,
sty-login sty-input-passcode label {
  text-align: left;
  color: var(--sty-text-secondary);
  font-size: var(--sty-font-size-sm);
  line-height: var(--sty-line-height-base) !important;
  font-weight: 700;
  font-family: var(--sty-font-family);
  margin-bottom: calc(var(--sty-spacing-xs) - 2px);
  display: block;
  position: relative;
  transform: none;
  padding: 0;
}

sty-login sty-block-identifier sty-input-text label {
  margin-bottom: var(--sty-spacing-xs);
}

sty-login sty-block-identifier sty-input-text input::placeholder {
  font-size: var(--sty-font-size-sm);
  font-weight: normal;
  color: #a6a6a6;
  font-family: var(--sty-font-family);
}

sty-block-password-enroll sty-input-password label {
  color: var(--sty-text-primary);
}

sty-input-text label .asterik {
  color: var(--sty-error-color);
}

sty-block-registration sty-input-text label::after,
sty-block-registration sty-input-password label::after,
sty-block-registration sty-input-phone label::after,
sty-block-registration sty-input-passcode label::after {
  background-color: var(--sty-error-color);
}

sty-block-registration sty-input-text label .asterik {
  display: none;
}

/* Container reset for all inputs */
sty-input-text::part(container),
sty-input-password::part(container),
sty-input-phone::part(container),
sty-input-passcode::part(container) {
  display: block;
  border: none;
  box-shadow: none;
}

/* Hide prefixes and error icons for all inputs */
sty-input-phone::part(prefix),
sty-input-passcode::part(prefix) {
  display: none;
}

sty-input-text::part(error-icon),
sty-input-phone::part(error-icon),
sty-input-password::part(error-icon),
sty-input-passcode::part(error-icon),
div[part="error-icon"],
div::part(error-icron) {
  display: none !important;
}

/* Hide input mask for phhone */
sty-input-phone::part(input-mask) {
  display: none;
}


sty-input-password::part(suffix) {
  position: absolute;
  right: 10px;
  top: 55%;
}

[data-block="identifier"] [data-text="identifierTop"] {
  margin-block-end: var(--sty-spacing-xs) !important;
}

sty-login:host([variant="inner"]) ::slotted(label) {
  display: none;
}

sty-input-text::part(suffix) {
  display: none !important;
}

sty-input-phone::part(suffix) {
  display: none !important;
}

sty-block-registration sty-input-text[data-field="attribute-attributes.checkoutHiddenAttribute"],
sty-block-registration sty-input-text[data-field="attribute-attributes.isCompletProfileFlow"] {
  height: 0;
  visibility: hidden;
}

/* ============================================
   FEEDBACK & ERROR MESSAGES
   ============================================ */
sty-feedback {
  width: 100%;
  color: var(--sty-error-color);
  font-size: var(--sty-font-size-xs);
  line-height: var(--sty-line-height-base);
  font-family: var(--sty-font-family);
  margin-top: var(--sty-spacing-xs);
  margin-bottom: var(--sty-spacing-xl);
}

sty-block-identifier sty-feedback,
sty-block-registration sty-feedback {
  margin-bottom: var(--sty-spacing-xs);
  margin-top: var(--sty-spacing-xs);
}

/* Registration screen custom global error */
sty-block-identifier sty-alert.custom-global-error,
sty-block-registration sty-alert.custom-global-error {
  position: relative;
  display: flex;
  gap: var(--sty-spacing-sm);
  margin-bottom: var(--sty-spacing-lg);
  padding: 12px 20px 12px 20px;
  box-shadow: 0 0 0 1px rgba(204, 204, 204, 1), 1px 2px 3px 0 rgba(0, 0, 0, 0.08);
  border-radius: calc(var(--sty-spacing-xs) - 1px);
}

sty-block-identifier sty-alert.custom-global-error::before,
sty-block-registration sty-alert.custom-global-error::before {
  content: '';
  position: absolute;
  left: -1px;
  top: -1px;
  bottom: -1px;
  width: 10px;
  background-color: var(--sty-error-color);
  border-top-left-radius: calc(var(--sty-spacing-xs) - 1px);
  border-bottom-left-radius: calc(var(--sty-spacing-xs) - 1px);
}

sty-block-identifier sty-alert.custom-global-error span.custom-global-error-message,
sty-block-registration sty-alert.custom-global-error span.custom-global-error-message {
  color: var(--sty-error-color);
  text-align: left;
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-sm);
  font-weight: 700;
  line-height: normal;
}

/* NG8 screen specific stylings */
vshoppe-registration-upgrade sty-block-identifier sty-alert.custom-global-error,
vshoppe-registration-upgrade sty-block-registration sty-alert.custom-global-error {
  position: relative;
  display: flex;
  gap: var(--sty-spacing-sm);
  margin-bottom: var(--sty-spacing-lg);
  padding: 12px 20px 12px 20px;
  box-shadow: 0 0 0 1px rgba(204, 204, 204, 1), 1px 2px 3px 0 rgba(0, 0, 0, 0.08);
  border-radius: calc(var(--sty-spacing-xs) - 1px);
}

vshoppe-registration-upgrade sty-block-identifier sty-alert.custom-global-error::before,
vshoppe-registration-upgrade sty-block-registration sty-alert.custom-global-error::before {
  content: '';
  position: absolute;
  left: -1px;
  top: -1px;
  bottom: -1px;
  width: 10px;
  background-color: var(--sty-error-color);
  border-top-left-radius: calc(var(--sty-spacing-xs) - 1px);
  border-bottom-left-radius: calc(var(--sty-spacing-xs) - 1px);
}

vshoppe-registration-upgrade sty-block-identifier sty-alert.custom-global-error span.custom-global-error-message,
vshoppe-registration-upgrade sty-block-registration sty-alert.custom-global-error span.custom-global-error-message {
  color: var(--sty-error-color);
  text-align: left;
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-sm);
  font-weight: 700;
  line-height: normal;
}

/* vshoppe-registration-upgrade sty-block-registration sty-alert.custom-global-error span.custom-global-error-message {
  color: var(--sty-error-color);
  text-align: left;
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-sm);
  font-weight: 700;
  line-height: normal;
} */


/* ============================================
   BUTTONS
   ============================================ */

/* Primary submit buttons */
sty-login sty-button[data-button="submit"],
sty-login [data-button="registration"],
sty-login [data-button="passkeyLogin"] {
  height: var(--sty-button-height);
  background: var(--sty-primary-action);
  color: #fff !important;
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-base);
  line-height: var(--sty-line-height-base);
  font-weight: 700;
  border-radius: var(--sty-border-radius);
  border: none;
  margin: 0;
}

.sign-in-content--create-account-secured-login sty-login sty-block-identifier [data-button="registration"] {
  border: 1px solid #0458AD;
  background: transparent;
  color: #0458AD !important;
}

.sign-in-content--secured-login sty-login [data-button="registration"] {
  display: none;
}

.sign-in-content--secured-login.sign-in-content--create-account-secured-login sty-login [data-button="registration"] {
  display: flex;
}

sty-login [data-button="passkeyLogin"] {
  font-size: var(--sty-font-size-sm);
}

sty-login sty-button[data-button="submit"] {
  max-height: var(--sty-button-height);
}

sty-login [data-button="registration"] {
  cursor: pointer;
  text-align: center;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}


sty-login [data-button="passkeyLogin"] {
  color: #000 !important;
  background: #fff;
  box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.25);
  margin-block-end: 12px;

  sty-icon {
    svg.icon {
      margin-inline-end: 16px;
      width: 18px;
      height: 18px;
    }
  }

}

/* Focus states */
sty-login sty-button[data-button="submit"]:focus,
sty-login [data-button="registration"]:focus {
  box-shadow: 0 0 14px var(--sty-primary-action);
  border: none;
  outline: none;
}

/* Disabled state */
sty-login sty-button[data-button="submit"][disabled],
sty-login [data-button="registration"][disabled] {
  background: var(--sty-disabled-color);
  cursor: not-allowed;
}


sty-login [data-button="registration"]:hover {
  color: #fff;
  text-decoration: none;
}

[data-block="identifier"] sty-button[type="submit"] {
  margin-block-start: 0;
  margin-block-end: var(--sty-spacing-xl);
}

sty-login sty-block-identifier sty-button[data-button="loginProvider-Google"] {
  margin-top: var(--sty-spacing-md) !important;
}

/* Positioned submit buttons */
sty-block-registration sty-button[type="submit"],
sty-block-mfa-passcode sty-button[type="submit"],
sty-block-mfa-enroll-challenge sty-button[type="submit"],
sty-block-passcode sty-button[type="submit"] {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 1;
  margin-block-end: 0;
  font-weight: 700;
  margin: 0 !important;
}

sty-login sty-block-passkey-enroll[data-block='passkeyEnroll'] {
  a[data-button="skip"] {
    text-decoration: underline;

    &.hide-skip-now {
      display: none;
    }
  }
}

sty-block-registration sty-button[type="submit"] {
  width: 190px;
}

.ciam-complete-profile-container sty-block-registration sty-button[type="submit"] {
  width: 100%;
}

sty-block-mfa-passcode sty-button[type="submit"],
sty-block-mfa-enroll-challenge sty-button[type="submit"],
sty-block-passcode sty-button[type="submit"] {
  width: 134px;
}

/* ============================================
   ACCOUNT INFO & LINKS
   ============================================ */
sty-account-info[data-section="accountInfo"] {
  justify-content: space-between;
  text-align: left;
}

[data-section="accountInfo"] [data-item] {
  color: var(--sty-text-primary);
  font-size: var(--sty-font-size-base);
  line-height: var(--sty-line-height-base);
  font-weight: 700;
}

sty-login span+a[data-button="reset"] {
  color: var(--sty-link-color);
  font-size: var(--sty-font-size-sm);
  line-height: var(--sty-line-height-base);
  font-weight: 400;
}

sty-login div.user-login__footer__action--guest {
  margin-block-start: 18px;
}

.sign-in-content--secured-login sty-login div.user-login__footer__action--guest {
  display: none;
}

.sign-in-content--secured-login.sign-in-content--guest-checkout-secured-login sty-login div.user-login__footer__action--guest {
  display: block;
}

sty-login div.user-login__footer__action--guest a {
  color: var(--sty-primary-action);
  font-weight: 700;
  font-size: var(--sty-font-size-base);
  line-height: var(--sty-line-height-base);
  text-decoration: underline;
}

.sign-in-content--secured-login sty-login div.user-login__footer__action--guest a {
  display: none;
}

.sign-in-content--secured-login.sign-in-content--guest-checkout-secured-login sty-login div.user-login__footer__action--guest a {
  display: block;
}

sty-login div.user-login__footer__action--guest a:focus {
  outline: var(--sty-primary-action) dotted 1px;
  outline-offset: 2px;
}

sty-login [data-separator="registration"]:before {
  display: none;
}

sty-login sty-block-identifier .checkout-social-login-content,
sty-login sty-block-identifier .checkout-no-guest-checkout-content {
  margin: var(--sty-spacing-xl) 0;
  color: #666666;
  font-size: var(--sty-font-size-sm);
  line-height: 1.2;
  font-weight: bold;
  font-family: var(--sty-font-family);
}

sty-login sty-block-identifier .create-account-separator {
  border: 1px solid #979797;
  margin: var(--sty-spacing-xl) 0;
}

sty-login sty-block-identifier .create-account-benefits {
  background: linear-gradient(130deg, rgba(202, 231, 255, 1) 0%, rgba(232, 246, 254, 1) 35%, rgba(196, 232, 249, 1) 72%, rgba(199, 234, 249, 1) 100%);
  border-radius: 3px;
  padding: 11px 8px 21px;

  h3 {
    text-align: left;
    font-size: var(--sty-font-size-xxs);
    color: #012169;
    font-weight: bold;
  }

  p {
    text-align: left;
    font-size: var(--sty-font-size-xxs);
    color: #012169;
  }
}

/* ============================================
   PASSWORD BLOCK
   ============================================ */

sty-login sty-block-password {
  margin-bottom: 32px;

  sty-input-password input::placeholder {
    font-size: var(--sty-font-size-sm);
    font-weight: normal;
    color: #a6a6a6;
    font-family: var(--sty-font-family);
  }
}

sty-login sty-block-password p.sign-in-password-text {
  color: var(--sty-text-primary);
  text-align: left;
  font-size: var(--sty-font-size-sm);
  line-height: var(--sty-line-height-base);
  font-family: var(--sty-font-family);
  opacity: .7;
  margin-bottom: calc(var(--sty-spacing-md) - 2px);
}

.turn-to-upgrade-modal sty-login sty-block-password p.sign-in-password-text {
  margin-bottom: 10px;
}

sty-login sty-block-password [data-separator="login"] {
  display: none;
}

sty-block-password::part(button-toggle) {
  padding: 0;
}

sty-block-password::part(button-toggle) svg.icon {
  width: 30px !important;
  height: 20px !important;
}

sty-block-password a[data-button="forgottenPassword"],
sty-block-password [data-button="forgottenPassword"],
sty-block-password a.tvs--forgotten-password {
  color: var(--sty-primary-action);
  font-size: var(--sty-font-size-base);
  line-height: var(--sty-line-height-base);
  font-weight: 400;
  font-family: var(--sty-font-family);
}

sty-block-password a[data-button="forgottenPassword"],
sty-block-password a.tvs--forgotten-password {
  margin-block-start: var(--sty-spacing-xs);
}

sty-login sty-block-password sty-checkbox[data-field="keepMeLoggedIn"] {
  position: absolute;
  top: 90%;
}

sty-login sty-checkbox::part(input) {
  inset-block-start: 1px;
}

sty-block-password sty-checkbox[data-field="keepMeLoggedIn"] {
  margin-top: var(--sty-spacing-2xl);
  color: var(--sty-text-primary);
  font-size: var(--sty-font-size-sm);
  line-height: var(--sty-line-height-base);
  font-family: var(--sty-font-family);
}

sty-block-password sty-input-password::part(suffix),
sty-block-password-enroll sty-input-password::part(suffix) {
  top: 50%;
}

sty-block-password sty-input-password[data-field="password"]::part(button-toggle),
sty-block-password-enroll sty-input-password[data-field="password"]::part(button-toggle) {
  padding-block: 0;
  padding-inline: 0;
}

sty-block-password sty-checkbox[data-field="keepMeLoggedIn"]::part(label) {
  margin-inline-start: 13px;
}

sty-block-password sty-checkbox[data-field="keepMeLoggedIn"]::part(input)::before {
  border: 1.5px solid #333;
}

sty-block-password sty-checkbox[data-field="keepMeLoggedIn"]::part(button-toggle) svg.icon {
  width: 30px !important;
  height: 20px !important;
}

/* Keep Me Logged In Tooltip Styles */

sty-checkbox[data-field="keepMeLoggedIn"]::part(tooltip-wrapper) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

sty-checkbox[data-field="keepMeLoggedIn"]::part(keep-logged-in-label-text) {
  white-space: nowrap;
}

sty-checkbox[data-field="keepMeLoggedIn"]::part(keep-logged-in-tooltip-icon) {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;

  svg {
    display: block;
    transition: opacity 0.2s ease;
  }

  &:hover svg,
  &:focus svg {
    opacity: 0.7;
  }

  &:focus {
    outline: 2px solid var(--sty-primary-action);
    outline-offset: 2px;
    border-radius: 50%;
  }
}

sty-checkbox[data-field="keepMeLoggedIn"]::part(keep-logged-in-tooltip-message) {
  position: absolute;
  bottom: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%);
  width: 260px;
  padding: 9px 14px;
  background-color: #fff;
  background-clip: padding-box;
  color: #444;
  font-family: Lato, sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 6px;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  z-index: 1000;
  pointer-events: none;
  text-align: left;

  /* Arrow pointing down - TVS standard white arrow */
  &::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    width: 15px;
    height: 15px;
    background: #fff;
    border-right: 1px solid rgba(0, 0, 0, 0.2);
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
    transform: translateX(-50%) rotate(45deg);
    margin-top: -8px;
  }
}

sty-checkbox[data-field="keepMeLoggedIn"]::part(tooltip-arrow) {
  position: absolute;
}

sty-checkbox[data-field="keepMeLoggedIn"]::part(tooltip-arrow)::after {
  bottom: 1px;
  margin-left: -10px;
  content: " ";
  border-top-color: #fff;
  border-bottom-width: 0;
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  /* bottom: 0; */
  top: 7px;
  margin-left: -10px;
  content: " ";
  border-top-color: #fff;
  border-bottom-width: 0;
  content: "";
  border-width: 10px;
}

sty-checkbox[data-field="keepMeLoggedIn"][tooltip-visible]::part(keep-logged-in-tooltip-message) {
  opacity: 1;
  visibility: visible;
}

/* Mobile adjustments - position tooltip to the left to prevent overflow */
@media (max-width: 480px) {
  sty-checkbox[data-field="keepMeLoggedIn"]::part(keep-logged-in-tooltip-message) {
    right: 0;
    width: 220px;
    left: 5px;

    &::after {
      left: auto;
      right: 16px;
      transform: rotate(45deg);
    }
  }
}

/* ============================================
   REGISTRATION BLOCK
   ============================================ */

/* Attributes Grid Layout */
sty-block-registration [data-section="attributes"] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--sty-spacing-xl);
  align-items: start;
}

sty-block-registration [data-section="attributes"]>sty-attribute-renderer {
  display: contents !important;
}

sty-block-registration [data-section="attributes"] sty-input-text,
sty-block-registration [data-section="attributes"] sty-input-phone,
sty-block-registration [data-section="attributes"] sty-input-password {
  min-width: 0;
}

sty-block-registration [data-section="attributes"] sty-input-text[data-field="attribute-email"],
sty-block-registration [data-section="attributes"] sty-radio-group[data-field="attribute-attributes.preferredauthmethod"],
sty-block-registration [data-section="attributes"] sty-radio-group[name="attributes.preferredauthmethod"] {
  grid-column: 1 / -1;
}

.email-verified-text {
  align-items: center;
  align-self: center;
  text-align: right;
  color: #31B630;
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-sm);
  line-height: var(--sty-line-height-base);
}

.ciam-complete-profile-container sty-block-registration [data-section="attributes"] sty-input-text[data-field="attribute-email"].complete-profile-email {
  &::part(container) {
    background: transparent;
  }

  input {
    border: none !important;
    color: #333 !important;
    padding-inline-start: 0 !important;
    font-weight: 700;

  }
}

.ciam-complete-profile-container sty-block-registration [data-section="attributes"] sty-input-text.complete-profile-input-bg input,
.ciam-complete-profile-container sty-block-registration [data-section="attributes"] sty-input-phone.complete-profile-input-bg input {
  background: #E8F0FE;
}

.ciam-complete-profile-container sty-block-registration [data-section="attributes"] sty-input-text.complete-profile-input-bg input:disabled,
.ciam-complete-profile-container sty-block-registration [data-section="attributes"] sty-input-phone.complete-profile-input-bg input:disabled {
  opacity: 0.8;
  cursor: not-allowed;
}

sty-block-registration [data-separator="login"] {
  margin-top: var(--sty-spacing-xl);
  padding-top: 0;
}

/* ============================================
   REGISTRATION BLOCK
   ============================================ */

sty-login sty-block-passkey-enroll [data-block-title] {
  margin-bottom: var(--sty-spacing-sm) !important;
}

sty-login sty-block-passkey-enroll .passkey-enroll-subtitle {
  color: var(--sty-primary-color);
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-base);
  text-align: left;
}

sty-login sty-block-passkey-enroll .passkey-image-placeholder {
  width: 100%;
  /* height: 242px; */
  margin: var(--sty-spacing-xl) 0;
}

sty-login sty-block-passkey-enroll .passkey-custom-content p.passkey-custom-explanation {
  color: var(--sty-primary-color);
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-sm);
  margin: 0;
  margin-top: var(--sty-spacing-md);
  text-align: left;
}

sty-login sty-block-passkey-enroll sty-form {
  text-align: left;
  margin-top: var(--sty-spacing-lg);
}

sty-login sty-block-passkey-enroll sty-form strong {
  color: var(--sty-primary-color);
}

sty-login sty-block-passkey-enroll sty-form sty-input-text sty-feedback {
  margin-bottom: var(--sty-spacing-xs);
}

sty-login sty-block-passkey-enroll sty-button[variant="primary"][data-t-id="blocks.passkeyEnroll.submit"] {
  height: 40px;
  background-color: var(--sty-primary-action);
  font-family: var(--sty-font-family);
  font-weight: 700;
  font-size: var(--sty-font-size-base);
  margin-top: var(--sty-spacing-xl);
}

sty-login sty-block-passkey-enroll a[role="button"][data-t-id="blocks.mfaEnrollStart.skip"] {
  color: var(--sty-primary-action);
  font-family: var(--sty-font-family);
  font-weight: 700;
  font-size: var(--sty-font-size-base);
}


/* ============================================
   RADIO BUTTONS
   ============================================ */
sty-radio-group label {
  /* width: 100%; */
  text-align: left;
  color: var(--sty-text-primary);
  font-size: var(--sty-font-size-base);
  line-height: var(--sty-line-height-base) !important;
  font-weight: 400;
  font-family: var(--sty-font-family);
  inset-block-start: 0;
  margin-bottom: var(--sty-spacing-sm);
  position: relative;
  transform: none;
  padding: 0;
}

sty-radio {
  color: #000;
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-sm);
  font-weight: 700;
  box-shadow: 0 0 6px 0 var(--sty-shadow-color);
  border-radius: var(--sty-border-radius);
}

sty-radio-group sty-radio[value="password"] {
  margin-top: var(--sty-spacing-md);
}

sty-radio-group sty-radio::part(input) {
  border-color: var(--sty-disabled-color);
  border-width: 2px;
}

sty-radio-group sty-radio[checked]::part(input) {
  border-color: var(--sty-primary-action);
}

sty-radio-group sty-radio[checked]::part(input)::before {
  background: unset !important;
}

sty-radio-group sty-radio[checked]::part(input)::after {
  transform: translate(-50%, -50%) scale(1.8) !important;
  border-color: var(--sty-primary-action) !important;
}

sty-attribute-renderer sty-radio {
  padding: 13px var(--sty-spacing-md);
  display: flex;
}

sty-login sty-radio::part(container) {
  align-items: center;
}

sty-login sty-radio::part(label) {
  margin-left: var(--sty-spacing-md);
}

.radio-subtitle {
  color: var(--sty-text-secondary);
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-xs);
  font-weight: 400;
  display: block;
  line-height: var(--sty-line-height-relaxed);
}

/* ============================================
   EXTERNAL LOGIN PROVIDERS
   ============================================ */
sty-login sty-block-registration [data-separator-text] {
  margin-top: 0px;
  margin-bottom: var(--sty-spacing-md);
  font-size: var(--sty-font-size-xs);
}

sty-login sty-block-registration [data-separator-text]::before,
sty-login sty-block-registration [data-separator-text]::after {
  border-color: rgb(151 151 151 / 50%);
  border-width: 0.1px;
  border-style: solid;
}

sty-block-registration sty-block-external-login-provider {
  display: flex !important;
  justify-content: space-between;
  gap: var(--sty-spacing-xl);
  /* flex-direction: row-reverse; */
}

sty-block-registration sty-block-external-login-provider sty-button {
  width: 100%;
  padding-left: var(--sty-spacing-md) !important;
  font-weight: 700;
}

sty-button[data-button="loginProvider-Google"] {
  margin-block-start: 0 !important;
  color: black !important;
}

sty-block-registration sty-button[data-button="loginProvider-Google"]>span,
sty-block-registration sty-button[data-button="loginProvider-Apple"]>span {
  justify-content: flex-start !important;
  margin-left: var(--sty-spacing-lg);
}

.passkey-recommended {
  color: #008935;
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-xs);
  font-weight: 400;
}

sty-block-registration .provider-subtitle {
  position: absolute;
  font-family: 'Lato';
  font-size: var(--sty-font-size-xs);
  font-weight: 400;
  text-align: left;
  line-height: var(--sty-line-height-relaxed);
  top: 60%;
  left: 14%;
}

sty-block-registration sty-button[data-button="loginProvider-Google"] .provider-subtitle {
  color: var(--sty-text-secondary);
}

sty-block-registration sty-button[data-button="loginProvider-Apple"] .provider-subtitle {
  color: var(--sty-panel-bg);
}

/* ============================================
   LEGAL DISCLAIMER
   ============================================ */
sty-block-registration sty-block-external-login-provider+.registration-legal-disclaimer {
  color: var(--sty-text-primary);
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-xs);
  font-weight: 700;
  text-align: center;
  line-height: var(--sty-line-height-loose);
  margin-top: var(--sty-spacing-2xl);
}

sty-block-registration sty-block-external-login-provider+.registration-legal-disclaimer a {
  color: var(--sty-primary-action);
}

/* =======================================================
   PASSWORD ENROLL (PASSWORD CREATION DURING REGISTRATION)
   ======================================================= */

sty-block-password-enroll sty-account-info[data-section=accountInfo] {
  margin-bottom: var(--sty-spacing-2xl);
}

sty-block-password-enroll sty-account-info span[data-item='identifier'] {
  color: var(--sty-primary-color) !important;
}

sty-block-password-enroll sty-account-info span[data-item='identifier'] .email-text {
  font-weight: 400;
}

sty-input-text::part(wrapper),
sty-input-phone::part(wrapper),
sty-input-passcode::part(wrapper),
sty-input-password::part(wrapper) {
  padding: 0;
}

sty-input-password::part(validators) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

sty-block-password-enroll sty-input-password sty-feedback {
  margin-bottom: 0px !important;
}

.custom-password-wrapper {
  font-family: inherit;
  margin-bottom: 18px;
}

.strength-bars {
  display: flex;
  gap: 4px;
  margin-bottom: 16px;
}

.strength-bars .bar {
  height: 6px;
  flex: 1;
  background: var(--sty-bg-light);
  border-radius: 4px;
  transition: all 0.3s ease;
}

/* Active = RED */
.strength-bars .bar.active {
  background: var(--sty-error-color);
}

/* Strong = GREEN */
.strength-bars .bar.strong {
  background: #008000;
}

.strength-text {
  font-size: var(--sty-font-size-xs);
  text-align: right;
  margin-bottom: 4px;
  color: var(--sty-text-secondary);
}

.requirements-title {
  text-align: left;
  font-weight: 600;
  margin-bottom: 8px;
  font-size: var(--sty-font-size-base)
}

.requirements-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.requirements-list li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--sty-font-size-sm);
  color: var(--sty-text-secondary);
  margin-bottom: 6px;
}

/* MET = GREEN */
.requirements-list li.met {
  color: #008000;
}

/* Icons */
.icon {
  display: inline-flex;
}

sty-block-password-enroll sty-checkbox {
  margin-top: 4px;
  margin-bottom: 32px;
  margin-left: 2px;
}

sty-block-password-enroll sty-checkbox::part(label) {
  margin-left: 12px;
}

/* hiding not you link for completeprofile page */

.ciam-complete-profile-container sty-block-password-enroll sty-form sty-account-info a {
  display: none;
  visibility: hidden;
}

/* ============================================
   PASSCODE BLOCK (EMAIL VERIFICATION)
   ============================================ */

sty-block-mfa-passcode [data-block-title],
sty-block-mfa-enroll-challenge [data-block-title],
sty-block-passcode [data-block-title] {
  margin-bottom: var(--sty-spacing-sm);
}

sty-block-mfa-enroll-challenge sty-i18n,
sty-block-mfa-passcode sty-i18n {
  background-color: var(--sty-panel-bg);
  padding: 0 !important;
}

sty-block-mfa-enroll-challenge sty-i18n,
sty-block-mfa-passcode sty-i18n,
sty-block-mfa-enroll-challenge[data-block=passcode] [data-text],
sty-block-passcode[data-block=passcode] [data-text] {
  text-align: left;
  color: var(--sty-primary-color);
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-base);
  margin-bottom: var(--sty-spacing-xl) !important;
}

sty-block-mfa-passcode [data-section="resend"],
sty-block-mfa-enroll-challenge [data-section="resend"],
sty-block-passcode [data-section="resend"] {
  display: block;
  background-color: #fff;
  text-align: left;
  padding: 0 !important;
  margin-top: var(--sty-spacing-2xl) !important;
  color: var(--sty-text-primary);
  font-family: var(--sty-font-family);
  font-size: var(--sty-font-size-sm);
  font-weight: 400;
}

sty-block-mfa-passcode [data-section="resend"] a,
sty-block-mfa-enroll-challenge [data-section="resend"] a,
sty-block-passcode [data-section="resend"] a {
  margin-left: 4px;
  color: var(--sty-primary-action);
}

/* === PASSCODE 6-BOX UI === */
sty-input-passcode label[slot="label"] {
  font-size: var(--sty-font-size-xs);
  font-weight: 700;
  color: var(--sty-input-label-color);
  margin-bottom: var(--sty-spacing-sm);
  display: block;
}

.passcode-boxes-wrapper {
  display: flex;
  flex-direction: column;
}

.passcode-boxes {
  display: flex;
  justify-content: space-between;
}

.login-section__signin--content-secured-login .passcode-boxes {
  gap: 8px;
}

sty-input-passcode .passcode-boxes .passcode-box {
  width: 70px;
  height: 68px !important;
  max-height: 68px;
  padding: var(--sty-spacing-md) !important;
  border: 1px solid var(--sty-border-color);
  border-radius: var(--sty-border-radius);
  font-size: calc(var(--sty-font-size-lg) - 4px) !important;
  font-weight: 700;
  text-align: center;
  color: var(--sty-text-primary);
  font-family: var(--sty-font-family);
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.login-section__signin--content-secured-login sty-input-passcode .passcode-boxes .passcode-box {
  width: 60px;
  height: 58px !important;
}

.login-section__signin--content-secured-login sty-feedback {
  max-width: 65%;
}

sty-input-passcode .passcode-box:focus {
  border-color: var(--sty-primary-action);
  box-shadow: 0 0 14px var(--sty-primary-action);
}

sty-input-passcode .passcode-box.filled {
  border-color: var(--sty-primary-action);
}

sty-input-passcode .passcode-box.error {
  border-color: var(--sty-error-color) !important;
  box-shadow: none !important;
}

sty-input-passcode .passcode-box.error:focus {
  box-shadow: 0 0 14px var(--sty-error-color) !important;
}

.passcode-timer {
  position: absolute;
  right: 0;
  top: 100%;
  text-align: right;
  font-size: var(--sty-font-size-sm);
  font-weight: 400;
  font-family: var(--sty-font-family);
  color: var(--sty-text-primary);
  margin-top: var(--sty-spacing-sm);
  line-height: 1;
}

.passcode-timer.expiring {
  color: var(--sty-error-color);
}

/* Hide Strivacity's error text (inside sty-feedback's shadow DOM) until first real validation error */
sty-input-passcode.suppress-feedback sty-feedback::part(error) {
  display: none;
}

/* SVGs */

.svg-mobile {
  display: none;
}

.svg-desktop {
  display: block;
}

/* ============================================
   REMEMBERED ACCOUNT SCREEN
   ============================================ */

sty-block-remembered-account[data-block=rememberedAccount] ul[data-accounts] li[data-account=container] [data-account="wrapper"] sty-avatar {
  transform: scale(1.5);
  margin-right: var(--sty-spacing-lg);
}

sty-block-remembered-account[data-block=rememberedAccount] ul[data-accounts] li[data-account=container] [data-account="wrapper"] [data-account="data"] {
  padding-bottom: var(--sty-spacing-xs);
}

sty-block-remembered-account[data-block=rememberedAccount] ul[data-accounts] li[data-account=container] [data-account="wrapper"] [data-account="data"] [data-name] {
  font-size: var(--sty-font-size-base);
  color: var(--sty-primary-color);
  font-weight: 700;
}

sty-block-remembered-account[data-block=rememberedAccount] ul[data-accounts] li[data-account=container] [data-account="wrapper"] [data-account="data"] [data-item] {
  font-size: calc(var(--sty-font-size-base) - 1px);
  color: var(--sty-text-secondary);
}

sty-block-remembered-account[data-block=rememberedAccount] ul[data-accounts] li[data-account=container] button sty-icon {
  display: block;
  transform: scale(1.5);
  opacity: 0.8;
}

sty-block-remembered-account[data-block=rememberedAccount] ul[data-accounts] li[data-account=container] button sty-icon svg {
  position: static;
}

.modal-body .close {
  opacity: 0.8;
}

/* ============================================
   RESPONSIVE - MOBILE (max-width: 768px)
   ============================================ */
@media screen and (max-width: 768px) {
  .sty-btn-link {
    font-size: var(--sty-font-size-sm);
  }

  sty-login [data-separator-text] {
    &:not(:empty):before {
      margin-inline-end: 15px;
    }

    &:not(:empty):after {
      margin-inline-start: 15px;
    }
  }

  sty-login [data-section="panelHeader"]+[data-section="panelContainer"] {
    padding-block: var(--sty-spacing-lg);
    padding-inline: var(--sty-spacing-lg);
  }

  sty-login [data-block-title],
  sty-block-registration [data-block-title] {
    font-size: calc(var(--sty-font-size-lg) - 4px) !important;
    margin-bottom: 19px !important;
  }

  sty-block-registration [data-block-title],
  sty-login sty-block-mfa-passcode [data-block-title],
  sty-login sty-block-mfa-enroll-challenge [data-block-title],
  sty-login sty-block-passcode [data-block-title],
  sty-login sty-block-password-enroll [data-block-title] {
    margin-bottom: calc(var(--sty-spacing-xs) - 3px) !important;
  }


  .registration-subtitle {
    font-size: var(--sty-font-size-xs);
  }

  sty-block-registration sty-feedback {
    margin-top: calc(var(--sty-spacing-xs) - 2px);
  }

  sty-login label {
    font-size: var(--sty-font-size-xs) !important;
  }

  sty-login sty-block-registration label {
    font-size: var(--sty-font-size-base);
  }

  sty-login sty-block-registration sty-radio-group label {
    font-size: var(--sty-font-size-base) !important;
  }

  sty-login h1.user-login__footer__title {
    font-size: 24px;
  }

  sty-login div.user-login__footer__content {
    font-size: var(--sty-font-size-xs);
    margin-block-start: var(--sty-spacing-sm);
    margin-block-end: var(--sty-spacing-lg);
  }

  sty-login sty-i18n {
    padding: var(--sty-spacing-lg);
    padding-block-start: var(--sty-spacing-lg);
    margin-block-start: 28px !important;
  }

  [data-block="externalLoginProvider"] sty-button {
    margin-block-start: var(--sty-spacing-sm) !important;
    padding-left: var(--sty-spacing-lg) !important;
  }

  sty-block-registration [data-block="externalLoginProvider"] sty-button {
    margin-block-start: 0 !important;
  }

  sty-block-registration [data-section="attributes"] {
    grid-template-columns: 1fr !important;
    /* gap: var(--sty-spacing-lg); */
  }

  sty-block-registration sty-block-external-login-provider {
    flex-direction: column;
    gap: var(--sty-spacing-sm);
  }

  sty-block-registration .provider-subtitle {
    top: 40%;
    left: 9%;
  }

  sty-block-registration sty-button[data-button="loginProvider-Google"]>span,
  sty-block-registration sty-button[data-button="loginProvider-Apple"]>span {
    margin-left: 0;
    justify-content: center !important;
  }

  sty-block-registration sty-block-external-login-provider+.registration-legal-disclaimer {
    text-align: left;
    margin: 0;
    margin-top: var(--sty-spacing-xl);
  }

  sty-block-registration [data-separator="login"] {
    margin-bottom: calc(var(--sty-spacing-xl) - 4px);
  }

  sty-block-registration sty-radio-group sty-radio[value="password"] {
    margin-top: var(--sty-spacing-sm);
  }

  sty-block-registration [data-field="attribute-email"],
  sty-block-registration [data-field="attribute-attributes.name.givenName"],
  sty-block-registration [data-field="attribute-attributes.name.familyName"],
  sty-block-registration [data-field="attribute-phone"],
  sty-block-registration [data-field="attribute-attributes.addresses.primary.postalCode"] {
    grid-column: 1 / -1;
  }

  sty-block-registration sty-input-text input,
  sty-block-registration sty-input-phone input {
    height: var(--sty-input-height);
    font-size: var(--sty-font-size-base);
  }

  sty-login sty-block-passkey-enroll .passkey-custom-content p.passkey-custom-explanation {
    font-size: var(--sty-font-size-xs);
  }

  sty-block-mfa-enroll-challenge sty-i18n,
  sty-block-mfa-passcode sty-i18n,
  sty-block-mfa-enroll-challenge[data-block=passcode] [data-text],
  sty-block-passcode[data-block=passcode] [data-text] {
    font-size: var(--sty-font-size-sm);
  }

  sty-block-mfa-enroll-challenge sty-i18n,
  sty-block-mfa-passcode sty-i18n {
    font-size: var(--sty-font-size-sm);
    margin-block-start: 0 !important;
  }

  sty-block-mfa-passcode [data-section="resend"],
  sty-block-mfa-enroll-challenge [data-section="resend"],
  sty-block-passcode [data-section="resend"] {
    font-size: var(--sty-font-size-xs);
    margin-top: var(--sty-spacing-md) !important;
  }

  sty-block-registration sty-button[type="submit"],
  sty-block-mfa-passcode sty-button[type="submit"],
  sty-block-mfa-enroll-challenge sty-button[type="submit"],
  sty-block-passcode sty-button[type="submit"] {
    font-size: var(--sty-font-size-sm);
  }

  sty-login sty-block-mfa-enroll-challenge sty-checkbox::part(container) {
    align-items: flex-end;
    font-size: var(--sty-font-size-xs);
  }

  sty-login sty-block-mfa-enroll-challenge sty-checkbox::part(label) {
    margin-inline-start: 1rem;
  }


  vshoppe-registration-upgrade sty-block-registration sty-button[type="submit"],
  thank-you-create-account sty-block-registration sty-button[type="submit"] {
    bottom: -7% !important;
    width: 100% !important;
  }

  sty-input-passcode .passcode-boxes .passcode-box {
    width: 48px;
    height: 62px !important;
  }

  .login-section__signin--content-secured-login sty-input-passcode .passcode-boxes .passcode-box {
    width: 38px;
    height: 48px !important;
    padding: var(--sty-spacing-sm) !important;
  }

  .passcode-timer {
    font-size: var(--sty-font-size-xs);
  }

  sign-in-content sty-block-passcode sty-input-passcode .passcode-boxes-wrapper .passcode-timer {
    top: 127%;
    white-space: nowrap;
  }

  sty-block-password-enroll sty-account-info[data-section="accountInfo"] {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: var(--sty-spacing-xl)
  }

  sty-block-password-enroll [data-section="accountInfo"] [data-item] {
    text-align: left;
    font-size: var(--sty-font-size-sm);
  }

  sty-block-password sty-account-info[data-section="accountInfo"] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
  }

  sty-login sty-block-password-enroll span+a[data-button="reset"],
  sty-login sty-block-password span+a[data-button="reset"] {
    margin: 0 !important;
    margin-top: 4px !important;
    font-size: var(--sty-font-size-sm);
  }

  .requirements-title {
    font-size: var(--sty-font-size-sm)
  }

  .requirements-list li {
    font-size: var(--sty-font-size-xs)
  }

  sty-block-password a[data-button="forgottenPassword"],
  sty-block-password [data-button="forgottenPassword"],
  sty-block-password a.tvs--forgotten-password {
    font-size: var(--sty-font-size-xs);
    line-height: var(--sty-line-height-base);
  }

  sty-login sty-block-identifier [data-button="passkeyLogin"] {
    margin-bottom: 8px;
  }

  sty-login sty-block-identifier div.user-login__footer__action--guest {
    margin-block-start: var(--sty-spacing-lg);
  }

  sty-login sty-block-identifier sty-input-text label {
    margin-bottom: var(--sty-spacing-xs);
  }

  sty-login sty-block-identifier sty-button[data-button="loginProvider-Google"] {
    margin-top: var(--sty-spacing-sm) !important;
  }

  sty-login sty-block-identifier sty-feedback {
    margin-bottom: var(--sty-spacing-lg);
  }

  /* SVGs */

  .svg-mobile {
    display: block;
  }

  .svg-desktop {
    display: none;
  }

  .ciam-complete-profile-container .ciam-complete-profile-email {
    display: flex !important;
    flex-direction: column;
  }

  .ciam-complete-profile-container sty-block-registration [data-section="attributes"] sty-input-text[data-field="attribute-email"].complete-profile-email {
    flex: 1;
  }

  sty-login sty-block-identifier .checkout-social-login-content,
  sty-login sty-block-identifier .checkout-no-guest-checkout-content {
    margin: var(--sty-spacing-lg) 0;
    font-size: var(--sty-font-size-xs);
  }

  sty-login sty-block-identifier .create-account-separator {
    margin: var(--sty-spacing-lg) 0;
  }
}

/* ============================================
   SOCIAL LOGIN WARNING MESSAGE
   ============================================ */
.ciam-complete-profile-container {
  .social-login-warning-message {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: var(--sty-spacing-sm);
    margin-bottom: var(--sty-spacing-lg);
    padding: 12px 20px 12px 20px;
    background-color: #fcf8e3;
    border: 1px solid #f0ad4e;
    border-radius: calc(var(--sty-spacing-xs) - 1px);
    box-shadow: 0 0 0 1px rgba(240, 173, 78, 0.3), 1px 2px 3px 0 rgba(0, 0, 0, 0.08);

    &::before {
      content: '';
      position: absolute;
      left: -1px;
      top: -1px;
      bottom: -1px;
      width: 6px;
      background-color: #f0ad4e;
      border-top-left-radius: calc(var(--sty-spacing-xs) - 1px);
      border-bottom-left-radius: calc(var(--sty-spacing-xs) - 1px);
    }

    .warning-icon {
      flex-shrink: 0;
      margin-top: 2px;
    }

    .warning-text {
      color: #8a6d3b;
      text-align: left;
      font-family: var(--sty-font-family);
      font-size: var(--sty-font-size-sm);
      font-weight: 500;
      line-height: 1.4;

      @media screen and (max-width: 768px) {
        font-size: var(--sty-font-size-xs);
      }
    }
  }
}

p.retry-bold-message {
  font-weight: 700;
}

/* ============================================
   RESPONSIVE - TABLET (min-width: 500px) and (max-width: 768px)
   ============================================ */
@media screen and (min-width: 500px) and (max-width: 768px) {
  sty-input-passcode .passcode-boxes .passcode-box {
    width: 70px;
    height: 68px !important;
  }
}

/* ============================================
   RESPONSIVE - TABLET/DESKTOP (> 768px)
   ============================================ */
@media screen and (min-width: 769px) {
  .ciam-complete-profile-container sty-block-registration [data-section="attributes"] sty-input-text[data-field="attribute-email"].complete-profile-email {
    width: 375px;
  }
}