﻿@keyframes spinner-border {
    to {
        transform: rotate(360deg) /* rtl:ignore */;
    }
}

.spinner-border {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: -0.125em;
    border: 0.25em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: 0.75s linear infinite spinner-border;
}

.spinner-border-sm {
    width: 1rem;
    height: 1rem;
    border-width: 0.2em;
}

@keyframes spinner-grow {
    0% {
        transform: scale(0);
    }

    50% {
        opacity: 1;
        transform: none;
    }
}

.spinner-grow {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: -0.125em;
    background-color: currentColor;
    border-radius: 50%;
    opacity: 0;
    animation: 0.75s linear infinite spinner-grow;
}

.spinner-grow-sm {
    width: 1rem;
    height: 1rem;
}

@media (prefers-reduced-motion: reduce) {
    .spinner-border,
    .spinner-grow {
        animation-duration: 1.5s;
    }
}

.is-loading {
    position: relative;
}

    .is-loading > .form-control,
    .is-loading > .form-control-plaintext,
    .is-loading > .form-select,
    .is-loading > .form-select[size] {
        padding-right: calc(1.5em + 0.75rem);
    }

        .is-loading > .form-control ~ .spinner-border,
        .is-loading > .form-control ~ .spinner-grow,
        .is-loading > .form-control-plaintext ~ .spinner-border,
        .is-loading > .form-control-plaintext ~ .spinner-grow,
        .is-loading > .form-select ~ .spinner-border,
        .is-loading > .form-select ~ .spinner-grow,
        .is-loading > .form-select[size] ~ .spinner-border,
        .is-loading > .form-select[size] ~ .spinner-grow {
            position: absolute;
            top: 3px;
            right: calc(0.375em + 0.1875rem);
            z-index: 4;
        }

            .is-loading > .form-control ~ .spinner-border.spinner-border-sm, .is-loading > .form-control ~ .spinner-border.spinner-grow-sm,
            .is-loading > .form-control ~ .spinner-grow.spinner-border-sm,
            .is-loading > .form-control ~ .spinner-grow.spinner-grow-sm,
            .is-loading > .form-control-plaintext ~ .spinner-border.spinner-border-sm,
            .is-loading > .form-control-plaintext ~ .spinner-border.spinner-grow-sm,
            .is-loading > .form-control-plaintext ~ .spinner-grow.spinner-border-sm,
            .is-loading > .form-control-plaintext ~ .spinner-grow.spinner-grow-sm,
            .is-loading > .form-select ~ .spinner-border.spinner-border-sm,
            .is-loading > .form-select ~ .spinner-border.spinner-grow-sm,
            .is-loading > .form-select ~ .spinner-grow.spinner-border-sm,
            .is-loading > .form-select ~ .spinner-grow.spinner-grow-sm,
            .is-loading > .form-select[size] ~ .spinner-border.spinner-border-sm,
            .is-loading > .form-select[size] ~ .spinner-border.spinner-grow-sm,
            .is-loading > .form-select[size] ~ .spinner-grow.spinner-border-sm,
            .is-loading > .form-select[size] ~ .spinner-grow.spinner-grow-sm {
                top: calc( (0.375em + 0.1875rem) + 2px );
            }

        .is-loading > .form-select:not([multiple]):not([size]),
        .is-loading > .form-select:not([multiple])[size="1"] {
            padding-right: 4.125rem;
        }

            .is-loading > .form-select:not([multiple]):not([size]) ~ .spinner-border,
            .is-loading > .form-select:not([multiple]):not([size]) ~ .spinner-grow,
            .is-loading > .form-select:not([multiple])[size="1"] ~ .spinner-border,
            .is-loading > .form-select:not([multiple])[size="1"] ~ .spinner-grow {
                top: 3px;
                right: calc(2.25rem + 2px);
            }

                .is-loading > .form-select:not([multiple]):not([size]) ~ .spinner-border.spinner-border-sm, .is-loading > .form-select:not([multiple]):not([size]) ~ .spinner-border.spinner-grow-sm,
                .is-loading > .form-select:not([multiple]):not([size]) ~ .spinner-grow.spinner-border-sm,
                .is-loading > .form-select:not([multiple]):not([size]) ~ .spinner-grow.spinner-grow-sm,
                .is-loading > .form-select:not([multiple])[size="1"] ~ .spinner-border.spinner-border-sm,
                .is-loading > .form-select:not([multiple])[size="1"] ~ .spinner-border.spinner-grow-sm,
                .is-loading > .form-select:not([multiple])[size="1"] ~ .spinner-grow.spinner-border-sm,
                .is-loading > .form-select:not([multiple])[size="1"] ~ .spinner-grow.spinner-grow-sm {
                    top: calc( (0.375em + 0.1875rem) + 2px );
                }

        .is-loading > .form-select[multiple] ~ .spinner-border,
        .is-loading > .form-select[multiple] ~ .spinner-grow,
        .is-loading > .form-select[size] ~ .spinner-border,
        .is-loading > .form-select[size] ~ .spinner-grow {
            top: calc( (0.375em + 0.1875rem) + 2px );
            right: calc(2.25rem - 10px);
        }

        .is-loading > .form-select[multiple][size="1"] ~ .spinner-border,
        .is-loading > .form-select[multiple][size="1"] ~ .spinner-grow {
            top: 3px;
        }

            .is-loading > .form-select[multiple][size="1"] ~ .spinner-border.spinner-border-sm, .is-loading > .form-select[multiple][size="1"] ~ .spinner-border.spinner-grow-sm,
            .is-loading > .form-select[multiple][size="1"] ~ .spinner-grow.spinner-border-sm,
            .is-loading > .form-select[multiple][size="1"] ~ .spinner-grow.spinner-grow-sm {
                top: calc( (0.375em + 0.1875rem) + 2px );
            }

    .is-loading > .form-control-sm ~ .spinner-border,
    .is-loading > .form-control-sm ~ .spinner-grow, .is-loading.input-group-sm > .form-control ~ .spinner-border,
    .is-loading.input-group-sm > .form-control ~ .spinner-grow {
        top: -0.5px;
    }

        .is-loading > .form-control-sm ~ .spinner-border.spinner-border-sm, .is-loading > .form-control-sm ~ .spinner-border.spinner-grow-sm,
        .is-loading > .form-control-sm ~ .spinner-grow.spinner-border-sm,
        .is-loading > .form-control-sm ~ .spinner-grow.spinner-grow-sm, .is-loading.input-group-sm > .form-control ~ .spinner-border.spinner-border-sm, .is-loading.input-group-sm > .form-control ~ .spinner-border.spinner-grow-sm,
        .is-loading.input-group-sm > .form-control ~ .spinner-grow.spinner-border-sm,
        .is-loading.input-group-sm > .form-control ~ .spinner-grow.spinner-grow-sm {
            top: 8px;
        }

    .is-loading > .form-control-lg ~ .spinner-border,
    .is-loading > .form-control-lg ~ .spinner-grow, .is-loading.input-group-lg > .form-control ~ .spinner-border,
    .is-loading.input-group-lg > .form-control ~ .spinner-grow {
        top: 8px;
    }

        .is-loading > .form-control-lg ~ .spinner-border.spinner-border-sm, .is-loading > .form-control-lg ~ .spinner-border.spinner-grow-sm,
        .is-loading > .form-control-lg ~ .spinner-grow.spinner-border-sm,
        .is-loading > .form-control-lg ~ .spinner-grow.spinner-grow-sm, .is-loading.input-group-lg > .form-control ~ .spinner-border.spinner-border-sm, .is-loading.input-group-lg > .form-control ~ .spinner-border.spinner-grow-sm,
        .is-loading.input-group-lg > .form-control ~ .spinner-grow.spinner-border-sm,
        .is-loading.input-group-lg > .form-control ~ .spinner-grow.spinner-grow-sm {
            top: 16px;
        }

    .was-validated .is-loading > .form-control:valid, .is-loading > .form-control.is-valid {
        padding-right: calc( (1.5em + 0.75rem) + 31px );
    }

        .was-validated .is-loading > .form-control:valid ~ .spinner-border,
        .was-validated .is-loading > .form-control:valid ~ .spinner-grow, .is-loading > .form-control.is-valid ~ .spinner-border,
        .is-loading > .form-control.is-valid ~ .spinner-grow {
            right: calc(2.25rem + 2px);
        }

    .was-validated .is-loading > .form-select:not([multiple]):not([size]):valid, .is-loading > .form-select:not([multiple]):not([size]).is-valid,
    .was-validated .is-loading > .form-select:not([multiple])[size="1"]:valid,
    .is-loading > .form-select:not([multiple])[size="1"].is-valid {
        padding-right: calc(4.125rem + 31px);
    }

        .was-validated .is-loading > .form-select:not([multiple]):not([size]):valid ~ .spinner-border,
        .was-validated .is-loading > .form-select:not([multiple]):not([size]):valid ~ .spinner-grow, .is-loading > .form-select:not([multiple]):not([size]).is-valid ~ .spinner-border,
        .is-loading > .form-select:not([multiple]):not([size]).is-valid ~ .spinner-grow,
        .was-validated .is-loading > .form-select:not([multiple])[size="1"]:valid ~ .spinner-border,
        .was-validated .is-loading > .form-select:not([multiple])[size="1"]:valid ~ .spinner-grow,
        .is-loading > .form-select:not([multiple])[size="1"].is-valid ~ .spinner-border,
        .is-loading > .form-select:not([multiple])[size="1"].is-valid ~ .spinner-grow {
            right: calc( (2.25rem + 2px) + 31px );
        }

    .was-validated .is-loading > .form-control-lg:valid ~ .spinner-border,
    .was-validated .is-loading > .form-control-lg:valid ~ .spinner-grow, .is-loading > .form-control-lg.is-valid ~ .spinner-border,
    .is-loading > .form-control-lg.is-valid ~ .spinner-grow, .was-validated .is-loading.input-group-lg > .form-control:valid ~ .spinner-border,
    .was-validated .is-loading.input-group-lg > .form-control:valid ~ .spinner-grow, .is-loading.input-group-lg > .form-control.is-valid ~ .spinner-border,
    .is-loading.input-group-lg > .form-control.is-valid ~ .spinner-grow {
        right: 38px;
    }

    .was-validated .is-loading > .form-control:invalid, .is-loading > .form-control.is-invalid {
        padding-right: calc( (1.5em + 0.75rem) + 31px );
    }

        .was-validated .is-loading > .form-control:invalid ~ .spinner-border,
        .was-validated .is-loading > .form-control:invalid ~ .spinner-grow, .is-loading > .form-control.is-invalid ~ .spinner-border,
        .is-loading > .form-control.is-invalid ~ .spinner-grow {
            right: calc(2.25rem + 2px);
        }

    .was-validated .is-loading > .form-select:not([multiple]):not([size]):invalid, .is-loading > .form-select:not([multiple]):not([size]).is-invalid,
    .was-validated .is-loading > .form-select:not([multiple])[size="1"]:invalid,
    .is-loading > .form-select:not([multiple])[size="1"].is-invalid {
        padding-right: calc(4.125rem + 31px);
    }

        .was-validated .is-loading > .form-select:not([multiple]):not([size]):invalid ~ .spinner-border,
        .was-validated .is-loading > .form-select:not([multiple]):not([size]):invalid ~ .spinner-grow, .is-loading > .form-select:not([multiple]):not([size]).is-invalid ~ .spinner-border,
        .is-loading > .form-select:not([multiple]):not([size]).is-invalid ~ .spinner-grow,
        .was-validated .is-loading > .form-select:not([multiple])[size="1"]:invalid ~ .spinner-border,
        .was-validated .is-loading > .form-select:not([multiple])[size="1"]:invalid ~ .spinner-grow,
        .is-loading > .form-select:not([multiple])[size="1"].is-invalid ~ .spinner-border,
        .is-loading > .form-select:not([multiple])[size="1"].is-invalid ~ .spinner-grow {
            right: calc( (2.25rem + 2px) + 31px );
        }

    .was-validated .is-loading > .form-control-lg:invalid ~ .spinner-border,
    .was-validated .is-loading > .form-control-lg:invalid ~ .spinner-grow, .is-loading > .form-control-lg.is-invalid ~ .spinner-border,
    .is-loading > .form-control-lg.is-invalid ~ .spinner-grow, .was-validated .is-loading.input-group-lg > .form-control:invalid ~ .spinner-border,
    .was-validated .is-loading.input-group-lg > .form-control:invalid ~ .spinner-grow, .is-loading.input-group-lg > .form-control.is-invalid ~ .spinner-border,
    .is-loading.input-group-lg > .form-control.is-invalid ~ .spinner-grow {
        right: 38px;
    }

.form-control:disabled ~ .spinner-border,
.form-control[readonly] ~ .spinner-border,
.form-select:disabled ~ .spinner-border {
    opacity: 0.65;
}

.form-control:disabled ~ .spinner-grow,
.form-control[readonly] ~ .spinner-grow,
.form-select:disabled ~ .spinner-grow {
    animation-name: spinner-grow-disabled;
}

@keyframes spinner-grow-disabled {
    0% {
        transform: scale(0);
    }

    50% {
        opacity: 0.65;
        transform: none;
    }
}

.spinner-border {
    border-top-left-radius: 50% !important;
    border-bottom-left-radius: 50% !important;
}

.input-group > .is-loading {
    flex: 1;
}

    .input-group > .is-loading > .form-control,
    .input-group > .is-loading > .form-select {
        position: relative;
    }

        .input-group > .is-loading > .form-control:focus,
        .input-group > .is-loading > .form-select:focus {
            z-index: 3;
        }

    .input-group > .is-loading:not(:first-child) > .form-control,
    .input-group > .is-loading:not(:first-child) > .form-select {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }

    .input-group > .is-loading:not(:last-child) > .form-control,
    .input-group > .is-loading:not(:last-child) > .form-select {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
