:root {
  --ifx-font-family: "Source Sans 3", 'Arial, sans-serif';
}

:host {
  display: flex;
}

.textInput__container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0px;
  width: 100%;
  flex: none;
  order: 0;
  align-self: stretch;
  flex-grow: 0;
  font-family: var(--ifx-font-family);
}
.textInput__container .delete-icon {
  position: absolute;
  right: 16px;
}
.textInput__container:not(.readonly, .disabled) .delete-icon:hover {
  cursor: pointer;
}
.textInput__container.disabled:not(.readonly) #text-field {
  color: #FFFFFF;
}
.textInput__container.disabled:not(.readonly) .delete-icon {
  color: #FFFFFF;
}
.textInput__container.disabled:not(.readonly) .textInput__top-wrapper label {
  color: #BFBBBB;
}
.textInput__container.disabled:not(.readonly) .textInput__top-wrapper .required {
  color: #BFBBBB;
}
.textInput__container.disabled:not(.readonly) .textInput__bottom-wrapper input {
  border: 1px solid #BFBBBB;
  background-color: #BFBBBB;
}
.textInput__container.disabled:not(.readonly) .textInput__bottom-wrapper input::placeholder {
  font-size: 1rem;
  color: #FFFFFF;
}
.textInput__container .textInput__top-wrapper {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  padding: 0px;
  gap: 4px;
  flex: none;
  order: 0;
  align-self: stretch;
  flex-grow: 0;
}
.textInput__container .textInput__top-wrapper label {
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5rem;
  display: flex;
  align-items: center;
  color: #1D1D1D;
  flex: none;
  order: 0;
  flex-grow: 0;
}
.textInput__container .textInput__top-wrapper label .optional-required {
  margin-left: 4px;
}
.textInput__container .textInput__top-wrapper label .optional {
  margin-left: 4px;
}
.textInput__container .textInput__top-wrapper label .required {
  color: #575352;
  margin-left: 4px;
}
.textInput__container .textInput__top-wrapper label .required.error {
  color: #CD002F;
}
.textInput__container .input-container {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}
.textInput__container .textInput__bottom-wrapper {
  flex-grow: 1;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0px;
  gap: 4px;
  flex: none;
  order: 1;
  align-self: stretch;
  flex-grow: 0;
}
.textInput__container .textInput__bottom-wrapper input {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 8px 16px;
  gap: 8px;
  height: 40px;
  background-color: #FFFFFF;
  color: #1D1D1D;
  font-family: var(--ifx-font-family);
  font-size: 1rem;
  line-height: 1.5rem;
  border: 1px solid #8D8786;
  border-radius: 1px;
  flex: none;
  order: 0;
  align-self: stretch;
  flex-grow: 0;
  text-overflow: ellipsis;
}
.textInput__container .textInput__bottom-wrapper input.input-s {
  height: 36px;
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.textInput__container .textInput__bottom-wrapper input.input-s::placeholder {
  font-size: 1rem;
  line-height: 1.25rem;
}
.textInput__container .textInput__bottom-wrapper input.icon {
  padding-left: 40px;
}
.textInput__container .textInput__bottom-wrapper input.error {
  border: 1px solid #CD002F;
}
.textInput__container .textInput__bottom-wrapper input.error:focus {
  outline: none;
}
.textInput__container .textInput__bottom-wrapper input.readonly {
  border: none;
  border-radius: var(--borderRadius-12, 1px);
  border-bottom: 1px solid var(--color-engineering-300, #bfbbbb);
  background: var(--color-base-white, #fff);
  padding-left: 0;
}
.textInput__container .textInput__bottom-wrapper input.readonly::placeholder {
  color: #1D1D1D;
}
.textInput__container .textInput__bottom-wrapper input.success {
  border: 1px solid #4CA460;
}
.textInput__container .textInput__bottom-wrapper input.success:focus {
  outline: none;
}
.textInput__container .textInput__bottom-wrapper input:focus:not(.error, .success):not(.readonly) {
  outline: none;
  border: 1px solid #0A8276;
}
.textInput__container .textInput__bottom-wrapper input.readonly:focus, .textInput__container .textInput__bottom-wrapper input[readonly]:focus {
  outline: none;
  box-shadow: none;
  border: none;
  border-bottom: 1px solid var(--color-engineering-300, #bfbbbb);
}
.textInput__container .textInput__bottom-wrapper input:hover:not(:disabled, :focus, .error, .success):not(.readonly) {
  border: 1px solid #575352;
}
.textInput__container .textInput__bottom-wrapper .input-icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 16px;
  /* Adjust this value to control the icon's left offset */
  transition: 0.3s;
  color: #8D8786;
}
.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption {
  font-style: normal;
  font-weight: 400;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #1D1D1D;
  flex: none;
  order: 1;
  align-self: stretch;
  flex-grow: 0;
}
.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption.error {
  color: #CD002F;
}
.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption.disabled {
  color: #BFBBBB;
}