@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap");

:root {
  /********************************************************
    * COMPANY LOGO
    *********************************************************/
  --company-logo-img-url: url("https://uploads.pingone.com/environments/465bd734-9540-4dc4-9b26-cf2f59427efe/images/0577a748-b322-4ee7-8bda-6c566efb551f_f12c4731-3f70-42c6-a7bf-75ffab53ca33_original.png");
  --company-logo-max-height: 100px;
  --company-logo-max-width: 75%;

  /********************************************************
    * CARD BODY
    *********************************************************/
  --card-background-color: rgb(255, 255, 255);

  /********************************************************
    * BODY
    *********************************************************/
  /* --body-font-family: Montserrat;
  --body-font-size: 0.85rem; */

  /********************************************************
    * TEXT FONT COLORS
    *********************************************************/

  /*  PRIMARY FONT COLOR (RGB) */
  --text-color-primary: 17, 17, 17;

  /*  MUTED TEXT ALPHA  */
  --text-color-muted-apha: 0.75;

  /*  ERROR FONT COLOR  */
  --text-color-error: rgb(223, 28, 37);

  /********************************************************
    * BUTTON ATTRIBUTES
    *********************************************************/

  /*  BUTTON FONT COLOR  */
  --button-primary-text-color: rgb(255, 255, 255);

  /*  BUTTON BACKGROUND COLOR & LINK BUTTON FONT COLOR (RGB)  */
  /*--button-primary-background-color: 22, 155, 211;*/
  --button-primary-background-color: 67, 0, 152;
  --button-primary-background-color-hover: 33, 27, 87;
  /*  BUTTON HOVER ALPHA  */
  --button-hover-alpha: 0.7;

  /*  BUTTON ACTIVE ALPHA  */
  --button-active-alpha: 0.8;

  /*  BUTTON DISABLED ALPHA  */
  --button-disabled-alpha: 0.65;

  /********************************************************
    * ACTIVITY INDICATOR & BUTTON SPINNER COLOR
    *********************************************************/

  --activity-indicator-color: rgb(255, 194, 33);

  /********************************************************
    * APPLYING TEXT COLOR - DO NOT CHANGE
    *********************************************************/
  /* H1,H2, H3, Body text color */
  --bs-body-color: rgb(var(--text-color-main)) !important;
  --bs-danger-rgb: var(--text-color-error);

  --primary-color: #277ba5;
  --error-color: #a31300;
  --text-color: #3d454d;
  --link-color: #430098;

  --bs-border-radius: 0.25rem;
  --bs-border-radius-sm: 0.25rem;
  --bs-border-radius-lg: 0.5rem;
  --bs-border-radius-xl: 1rem;
  --bs-border-radius-2xl: 2rem;
  --bs-border-radius-pill: 50rem;
}

/* Poppins font weight and style utility classes */
.poppins-light {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.poppins-regular {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.poppins-medium {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.poppins-semibold {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.poppins-bold {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.poppins-regular-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: italic;
}

.poppins-medium-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: italic;
}

.poppins-semibold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: italic;
}

.poppins-bold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: italic;
}

/* Apply Poppins font universally to most text elements */
body,
input,
button,
select,
textarea,
label,
a,
p,
h1,
h2,
h3,
h4,
h5,
h6,
span,
div {
  font-family: "Poppins", sans-serif !important;
  -webkit-font-smoothing: antialiased;
}

/* Ensure Poppins font is applied to form-related elements with specific classes or data attributes */
[class*="form"],
[class*="input"],
[class*="button"],
[class*="label"],
[class*="field"],
[class*="link"],
[data-id*="form"],
[data-id*="input"],
[data-id*="button"],
[data-id*="label"] {
  font-family: "Poppins", sans-serif !important;
}

.link-color {
  color: var(--link-color) !important;
}

/* Reset default html and body margins, padding, and overflow */
html,
body {
  margin: 0 !important;
  padding: 0 !important;
  height: 100% !important;
  overflow: hidden !important;
}

/* Create a gradient background for the body */
body {
  background: linear-gradient(200deg, #430097 50%, #201b56 50%) !important;
}

/* Center main content containers vertically and horizontally */
#widgetContainer,
[class*="bodyContainer"],
[class*="main_generic"],
[data-id="page-container"],
[data-id="page-content"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 100vh !important;
  width: 100% !important;
}

/* Main element specific styling */
main {
  padding: 30px 30px !important;
  width: 100% !important;
  display: flex !important;
}

/* Style buttons with rounded corners, padding, and consistent font */
button,
[role="button"] {
  border-radius: 4px !important;
  padding: 10px 25px !important;
  font-family: "Poppins", sans-serif;
  font-weight: 500;
}

/* Hide default spacer elements */
[data-id="top-spacer"],
[data-id="bottom-spacer"] {
  display: none !important;
}

/* Style card containers with auto width, rounded corners, and padding */
[data-id="card"] {
  width: auto !important;
  margin: 0 !important;
  border-radius: 4px !important;
  padding: 2rem !important;
}

/* Style labels with black color, Poppins font, and semibold weight */
label,
.is-default,
[id^="react-aria"] {
  font-family: "Poppins", sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  color: #000 !important;
}

label.is-default[id^="react-aria"] {
  font-family: "Poppins", sans-serif !important;
  font-weight: 600 !important;
  color: #000 !important;
}

/* Add margin to specific react-aria label in set password form */
#react-aria9980946246-4 {
  margin-bottom: 1.5rem !important;
}

/* Hide the default "Required" text */
[data-id="required-text"] {
  display: none !important;
}

/* Make labels with IDs flexible for alignment */
label.is-default[id][for] {
  display: flex !important;
  align-items: center !important;
}

/* Add a red asterisk to labels of required input and select fields */
div.field-container:has(input[aria-required="true"]) > label::after,
div.field-container:has(select[aria-required="true"]) > label::after {
  content: " *" !important;
  color: #9e1c64 !important;
  margin-left: 2px !important;
}

/* Style inputs with rounded corners, consistent border, and placeholder color */
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea,
.form-control {
  display: block !important;
  width: 100% !important;
  padding: 0 10px !important;
  height: 48px !important;
  font-size: 0.9375rem !important;
  font-weight: 400 !important;
  line-height: 48px !important;
  color: #3d454d !important;
  background-color: #fff !important;
  background-clip: padding-box !important;
  border: 1px solid #8b9197 !important;
  appearance: none !important;
  border-radius: 4px !important;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out !important;
}

/* Style focus state */
input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus,
.form-control:focus {
  border-color: #430098 !important;
  outline: 0 !important;
  box-shadow: 0 0 0 0.25rem rgba(67, 0, 152, 0.25) !important;
}

/* Style placeholder text color */
input::placeholder,
select::placeholder,
textarea::placeholder {
  color: #cccccc !important;
}

/* Style form flow link with 0.75rem text size (equivalent to 12px) */
[data-id="form-flow-link"] {
  font-size: 0.75rem !important;
  padding: 0 !important;
}

/* Style visibility toggle button */
[data-id="visibility-icon-button"] {
  padding: 0 !important;
  background: transparent !important;
}

/* Target the SVG and its path specifically */
[data-id="visibility-icon-button"] svg,
[data-id="visibility-icon-button"]:hover svg,
[data-id="visibility-icon-button"]:focus svg,
[data-id="visibility-icon-button"]:active svg,
[data-id="visibility-icon-button"] svg path,
[data-id="visibility-icon-button"]:hover svg path,
[data-id="visibility-icon-button"]:focus svg path,
[data-id="visibility-icon-button"]:active svg path {
  color: #cccccc !important;
  fill: #cccccc !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Alternative approach targeting the wrapper div */
div[class*="css-1styvfp"]:has(.form-group.field.field-string):first-of-type {
  margin-top: 1.5rem !important;
}

/* Add margin to submit button container */
div[data-id="button-container"] {
  margin-top: 1.5rem !important;
}

/* Username login form subheading */
.css-1q20cuh
  .css-1styvfp
  .css-uliqdc
  .css-27n9md
  .css-jractb
  .css-10wbjvq
  p:not(.ql-align-right) {
  font-size: 15px !important;
  font-weight: 400 !important;
  color: #111111 !important;
  margin: 0 0 15px !important;
  line-height: 1.25 !important;
}

/* Target right-aligned text containers with higher specificity */
.css-1q20cuh
  .css-1styvfp
  .css-uliqdc
  .css-27n9md
  .css-jractb
  .css-10wbjvq
  p.ql-align-right,
div[class*="css-1q20cuh"] .ql-align-right,
.ql-editor p.ql-align-right,
[data-id="html-box"] .ql-align-right,
.ql-align-right {
  margin-top: -0.25rem !important;
  font-size: 13.125px !important;
  line-height: 1.25 !important;
  margin-bottom: 0 !important;
  font-weight: 400 !important;
}

.form-label {
  text-transform: none !important;
}

/* Override any floating label transformations */
.form-floating input:not(:placeholder-shown) + label {
  text-transform: none !important;
}

@media (max-width: 576px) {
  .form-control {
    font-size: 16px; /* Prevents iOS zoom on input focus */
  }
}

/* Remove left margin and padding from the main container */
.css-jvs63b.e146bxl90, /* Main page container */
.css-12irz0q.e146bxl90, /* Content container */
.css-19ssqoi.e146bxl90, /* Card container */
.css-1e1jhcj.e146bxl90 {
  /* Top spacer */
  margin-left: 0; /* Remove any left margin */
  padding-left: 0; /* Remove any left padding */
  width: 100%; /* Ensure full width to avoid extra spacing */
}

.rounded-1 {
  border-radius: var(--bs-border-radius-sm) !important;
}

/* Add spacing for set password form */
.css-1q20cuh.e146bxl90
  > .css-1styvfp.e146bxl90
  > .css-uliqdc.e146bxl90:nth-child(2)
  .form-group.field-string {
  margin-top: 1rem;
}

/* Edit logo size for forms */
img[data-id="logo"],
.css-90zl41 {
  display: block !important;
  max-height: var(--company-logo-max-height) !important;
  max-width: var(--company-logo-max-width) !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  object-fit: contain !important;
}

/* Add margin to submit button */
[data-id="form-submit-button"] {
  margin-bottom: 1rem !important;
}

/* Form footer links */
[data-id="html-box"] p:not(.ql-align-right),
[data-id="html-box"] .ql-size-12px:not(.ql-align-right) {
  font-weight: 400 !important;
  font-size: 0.8125rem !important;
}

[data-id="html-box"] p {
  margin-bottom: 0.5rem !important;
}

/* Custom CSS For select-auth-method form */
/* Tile selector */
.tile-selector {
  display: flex;
  border: none;
  border-radius: 0 !important;
  overflow: visible;
  border-top: 1px solid #e0e0e0 !important;
}

.tile-selector--stacked {
  display: block;
}

.tile-selector--stacked > * {
  margin-bottom: 0;
}

/* Tile button */
.tile-selector .tile-button,
.tile-button.tile-button {
  background: transparent;
  border: none !important;
  border-bottom: 1px solid #e0e0e0 !important;
  border-radius: 0 !important;
  color: #333;
  padding: 1.5rem 0 !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  min-height: 60px;
  height: auto;
  margin-bottom: 0;
}

.tile-selector .tile-button:hover,
.tile-button.tile-button:hover {
  background-color: #f8f8f8;
  border-color: #e0e0e0;
  box-shadow: none;
}

/* Icon styles */
.tile-selector .tile-button__icon-container,
.tile-button .tile-button__icon-container {
  height: 32px;
  width: 32px;
  margin: 0 1rem 0 0 !important;
  flex: 0 0 32px;
}

.tile-selector .tile-button__icon-container svg path,
.tile-button .tile-button__icon-container svg path {
  fill: #430098 !important;
}

/* Content styles */
.tile-selector .tile-button__content,
.tile-button .tile-button__content {
  font-size: 0.875rem;
  line-height: 1.4;
  color: #000;
  text-align: left;
  font-weight: 400 !important;
  padding: 0.25rem 0 !important;
}

/* Title overrides */
.tile-selector .tile-button__title,
.tile-button .tile-button__title {
  color: #430098 !important;
  font-size: 1rem;
  margin: 0 0 0.25rem;
  text-transform: none;
}

/* Side icon variant */
.tile-button--side-icon {
  display: flex !important;
  align-items: center !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.tile-button--side-icon > div {
  display: flex;
  align-items: center;
  width: 100%;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* Styling for flow link buttons with data-skbuttonvalue attributes 
   Resets default button styles to look like links and provides hover effects */
.passcode-input {
  font-size: 24px;
  text-align: center;
  font-weight: 400;
  padding: 11px 0px 10px !important;
}

/* Reset styles for link-styled buttons */
button[data-skbuttonvalue="helplink"],
button[data-skbuttonvalue="forgotPassword"],
button[data-skbuttonvalue="resend"],
button[data-skbuttonvalue="cancel"],
button[data-skbuttonvalue="CANCEL"] {
  padding: 0 !important;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  margin: 0;
  text-align: left;
  font-size: 0.875em !important; /* Match .small class size */
}

/* Target the div inside the button */
button[data-skbuttonvalue="helplink"] > div,
button[data-skbuttonvalue="forgotPassword"] > div,
button[data-skbuttonvalue="resend"] > div,
button[data-skbuttonvalue="cancel"] > div,
button[data-skbuttonvalue="CANCEL"] > div {
  font-size: inherit !important;
}

/* Restore the link styling you want */
button[data-skbuttonvalue="helplink"].link-color,
button[data-skbuttonvalue="forgotPassword"].link-color,
button[data-skbuttonvalue="resend"].link-color,
button[data-skbuttonvalue="cancel"].link-color,
button[data-skbuttonvalue="CANCEL"].link-color {
  text-decoration: none;
}

/* Optional: Add underline on hover like normal links */
button[data-skbuttonvalue="helplink"]:hover,
button[data-skbuttonvalue="forgotPassword"]:hover,
button[data-skbuttonvalue="resend"]:hover,
button[data-skbuttonvalue="CANCEL"]:hover,
button[data-skbuttonvalue="cancel"]:hover {
  text-decoration: underline;
}

.error-message {
  background-color: rgb(237, 218, 217);
  color: rgb(163, 19, 0);
  font-size: 0.875rem;
  margin-bottom: 0.5rem;
  padding: 1rem;
  margin-top: 0.25rem;
  border-radius: 4px;
}

.countdown-bar-container {
  position: relative;
  width: 100%;
  height: 8px;
  background-color: #eaeaea;
  border-radius: 4px;
  overflow: hidden;
  margin-top: 2rem;
}

.countdown-bar {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  background-color: #9e1c64;
  width: 100%;
  transition: width linear;
  border-radius: 0;
  transform-origin: left;
  will-change: width;
}

#timer {
  font-family: monospace;
  min-width: 5ch;
  text-align: center;
  display: inline-block;
}

.text-danger.mdi::before {
  margin-right: 0.5rem;
}

/* Responsive */
@media (max-width: 480px) {
  .card {
    height: 100%;
    max-width: 100%;
    margin: 0;
  }

  .card-body {
    padding: 1.5rem;
  }
}

/********************************************************
  * CLASSES BELOW ARE DERIVED FROM VALUES ABOVE
  * DO NOT CHANGE UNLESS YOU HAVE CSS 'SKILLZ' :)
  *********************************************************/

/*  COMPANY LOGO  */
.companyLogo {
  content: var(--company-logo-img-url);
  max-height: var(--company-logo-max-height);
  max-width: var(--company-logo-max-width);
}

/*  BACKGROUND IMAGE  */
div.bg-light {
  background-image: var(--background-image-url);
  background-size: cover;
  background-repeat: no-repeat;
}

/*  BODY FONT & COLOR  */
.card-body {
  /*  font family */
  font-family: var(--body-font-family) !important;
  /*  font size */
  font-size: var(--body-font-size) !important;
  /*  font color */
  color: rgb(var(--text-color-primary)) !important;
  /*  background color */
  background-color: var(--card-background-color) !important;
}

/*  MUTED PARAGRAPH  */
p.text-muted {
  color: rgba(
    var(--text-color-primary),
    var(--text-color-muted-apha)
  ) !important;
}

/*  ERROR MESSAGE PARAGRAPH  */
.card .text-danger {
  color: var(--text-color-error) !important;
}

/*  FORM CONTROL FONT COLOR  */
.form-control,
.form-control:focus {
  color: var(--text-color-primary) !important;
}

/*  FORM CONTROL PLACEHOLDER FONT COLOR  */
.form-floating input + label {
  color: rgba(
    var(--text-color-primary),
    var(--text-color-muted-apha)
  ) !important;
}

/*  FORM CONTROL HIGHLIGHT  */
.form-control:focus {
  border-color: rgba(var(--button-primary-background-color), 0.5) !important;
  box-shadow: 0 0 0 0.25rem rgba(var(--button-primary-background-color), 0.25) !important;
}

/*  PRIMARY BUTTON  */
.btn-primary {
  /*  font color  */
  --bs-btn-color: var(--button-primary-text-color) !important;
  /*  font color when hovering  */
  --bs-btn-hover-color: var(--button-primary-text-color) !important;
  /*  border color  */
  --bs-btn-border-color: var(--button-primary-background-color) !important;
  /*  background color  */
  --bs-btn-bg: rgb(var(--button-primary-background-color)) !important;
  /*  background color when hovering  */
  --bs-btn-hover-bg: rgba(
    var(--button-primary-background-color),
    var(--button-hover-alpha)
  ) !important;
  /*  background color when active  */
  --bs-btn-active-bg: rgba(
    var(--button-primary-background-color),
    var(--button-active-alpha)
  ) !important;
  /*  background color when disabled  */
  --bs-btn-disabled-bg: rgba(
    var(--button-primary-background-color),
    var(--button-disabled-alpha)
  ) !important;
  background-color: rgb(var(--button-primary-background-color)) !important;
  border-color: rgb(var(--button-primary-background-color)) !important;
  color: var(--button-primary-text-color) !important;
}

.btn-primary:hover {
  background-color: rgb(
    var(--button-primary-background-color-hover)
  ) !important;
  border-color: rgb(var(--button-primary-background-color-hover)) !important;
  color: var(--button-primary-text-color) !important;
}

/*  LINK BUTTON  */
.btn-link {
  /*  button font color  */
  --bs-btn-color: rgb(var(--button-primary-background-color)) !important;
  /*  button font color when active  */
  --bs-btn-active-color: rgba(
    var(--button-primary-background-color),
    var(--button-active-alpha)
  ) !important;
  /*  button font color when hovering  */
  --bs-btn-hover-color: rgba(
    var(--button-primary-background-color),
    var(--button-hover-alpha)
  ) !important;
  /*  button font color when disabled  */
  --bs-btn-disabled-color: rgba(
    var(--button-primary-background-color),
    var(--button-disabled-alpha)
  ) !important;
  color: rgb(var(--button-primary-background-color)) !important;
}

/*  POLLING INDICATORS  */
.css-11k6vsm,
.css-17zi2ag,
.css-139roxj {
  width: 20px;
  height: 20px;
  animation-duration: 0.75s;
  /*  circle background color  */
  background-color: var(--activity-indicator-color) !important;
}

/*  BUTTON ACTIVITY INDICATOR  */
.css-sw2ho0 {
  /*  spinning circle color  */
  --primary-color: var(--activity-indicator-color) !important;
}
