.FormInputWithButton {
    display: flex;
    align-items: center;

    --height: var(--button-height);

    --localBorderColor: var(--color-base-faintest);
    --localIconColor: var(--color-base-faintest);

    input {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
        height: calc(var(--height) + 2px);
        padding-top: 0;
        padding-bottom: 0;
        border-right: none;
        border-color: var(--localBorderColor);
    }

    .Button {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        border-left: none;
        height: var(--height);
        border-color: var(--localBorderColor);
        --fgColor: var(--localIconColor);
        --bgColor: var(--color-background);
        --hoverFgColor: var(--color-primary);
        --hoverBorderColor: var(--localIconColor);

        &:hover {
            box-shadow: none !important;
        }
    }

    &.centered {
        margin-left: auto;
        margin-right: auto;
        width: min-content;
    }

    & > .Badge.error {
        margin-left: var(--base-gap) !important;
    }

    &:hover {
        --localBorderColor: var(--color-base-fainter);
        --localIconColor: var(--color-base-fainter);

        & > .Button {
            box-shadow: none;
        }
    }

    &:has(input:focus) {
        --localBorderColor: var(--color-primary);
        --localIconColor: var(--color-primary);
    }

    &.loading {
        pointer-events: none;

        & > input {
            color: var(--color-base-fainter);
        }
    }
}
