.input-control {
    border: 0;
    margin: 0;
    padding: 0;
    display: flex;
    flex: 1 1 auto;
    max-width: 100%;
    position: relative;
    flex-direction: column;
    vertical-align: top;
    margin-top: 6px;

    &.input-control-margin-normal {
        margin-top: 16px;
        margin-bottom: 8px;
    }

    &.input-control-margin-dense {
        margin-top: 3px;
        margin-bottom: 2px;
    }

    &.input-control-full-width {
        width: 100%;
    }

    &.input-control-boolean-input {
        flex: none;
        margin: 0;
    }

    & > .input-control-input-container {
        position: relative;
        display: flex;
        flex-direction: column;

        & > div {
            &.input.input-text {
                margin-top: 16px;
            }

            &.input.input-filled {
            }

            &.input.input-outlined {
            }
        }
    }

    & > .input-control-input-container > .input-label-outlined {
        &.input-label-inputcontrol {
            line-height: 18px;
        }
    }

    & > .input-control-input-container > .input-label-inputcontrol {
        color: var(--palette-text-secondary);
        padding: 0;
        font-size: 1rem;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.00938em;
        z-index: 0;
        pointer-events: none;

        &.disabled {
            color: var(--palette-text-disabled);
        }

        &.input-error {
            color: var(--palette-error) !important;
        }
    }

    &.input-required > .input-control-input-container > .input-label::after {
        content: "*";
    }

    &.input-number-control {
        & input::-webkit-outer-spin-button,
        & input::-webkit-inner-spin-button {
            -webkit-appearance: none;
            margin: 0;
        }

        & input[type=number] {
            -moz-appearance: textfield;
        }

        &.input-showspin .input:not(.input-adorned-end) {
            input {
                padding-right: 24px; //This must be the same width of the spinners
                padding-inline-end: 24px;

                &.input-root-margin-dense {
                    padding-right: 20px; //This must be the same width of the spinners
                    padding-inline-end: 20px;
                }
            }

            &.input-text input {
                padding-inline-start: 0;

                &.input-root-margin-dense {
                    padding-inline-start: 0;
                }
            }

            &.input-filled input {
                padding-inline-start: 12px;

                &.input-root-margin-dense {
                    padding-inline-start: 12px;
                }
            }

            &.input-outlined input {
                padding-inline-start: 14px;

                &.input-root-margin-dense {
                    padding-inline-start: 14px;
                }
            }
        }

        & .input-numeric-spin {
            display: inline-flex;
            flex-direction: column;
            justify-content: space-between;
            position: absolute;
            right: 0;
            top: 0;
            bottom: 0;

            & button {
                padding: 2px;
                min-width: unset;
                min-height: unset;
            }
        }

        .input-numeric-spin button {
            padding: 2px 0;
        }
    }
}

.input-control-helper-container {
    overflow: hidden;
    margin-top: 3px;
}

.input-helper-text {
    color: var(--palette-text-secondary);
    margin: 0;
    font-size: 0.75rem;
    text-align: start;
    font-weight: 400;
    line-height: 1.66;
    letter-spacing: 0.03333em;

    &.input-helper-onfocus {
        transform: translateY(-100%);
        transition: color 200ms cubic-bezier(0,0,.2,1) 0ms,transform 200ms cubic-bezier(0,0,.2,1) 0ms;
    }
}

.input-control {
    &:focus-within, &.input-error {
        .input-helper-text {
            &.input-helper-onfocus {
                transform: translateY(0);
            }
        }
    }
}

    .input-helper-text.disabled {
        color: var(--palette-text-disabled);
    }

    .input-helper-text.input-error {
        color: var(--palette-error) !important;
    }

    .input-helper-text-margin-dense {
        margin-top: 4px;
    }

    .input-helper-text-contained {
        margin-left: 14px;
        margin-right: 14px;
    }

    .application-layout-rtl {
        .input-control.input-number-control .input-numeric-spin {
            left: 0;
            right: unset;
        }
    }