#loader {
    display: inherit;
    position: relative;
    width: 50px;
    height: 50px;
    transform: rotate(165deg);
    --loader-clr-1: rgba(108, 95, 246, .886);
    --loader-clr-2: #9f97f0
}

#loader span {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 5px;
    transform: translate(-50%,-50%)
}

#loader span:nth-child(1) {
    animation: 2s ease 0s infinite normal none running loader-anim-1
}

#loader span:nth-child(2) {
    animation: 2s ease 0s infinite normal none running loader-anim-2
}

@keyframes loader-anim-1 {
    0% {
        width: 10px;
        box-shadow: var(--loader-clr-1) 20px -10px,var(--loader-clr-1) -20px 10px
    }

    35% {
        width: 50px;
        box-shadow: var(--loader-clr-1) 0 -10px,var(--loader-clr-1) 0 10px
    }

    70% {
        width: 10px;
        box-shadow: var(--loader-clr-1) -20px -10px,var(--loader-clr-1) 20px 10px
    }

    to {
        box-shadow: var(--loader-clr-1) 20px -10px,var(--loader-clr-1) -20px 10px
    }
}

@keyframes loader-anim-2 {
    0% {
        height: 10px;
        box-shadow: var(--loader-clr-2) 10px 20px,var(--loader-clr-2) -10px -20px
    }

    35% {
        height: 50px;
        box-shadow: var(--loader-clr-2) 10px 0,var(--loader-clr-2) -10px 0
    }

    70% {
        height: 10px;
        box-shadow: var(--loader-clr-2) 10px -20px,var(--loader-clr-2) -10px 20px
    }

    to {
        box-shadow: var(--loader-clr-2) 10px 20px,var(--loader-clr-1) -10px -20px
    }
}

.invalid-field {
    border: 2px solid red !important;
    /* два inset-теневых слоя, сверху и снизу */
    box-shadow:
        inset 0 4px 4px rgba(255, 0, 0, 0.6),
        inset 0 -4px 4px rgba(255, 0, 0, 0.6) !important;
}

/* Если нужно красить контейнер загрузки лого */
.img-input-wrapper.invalid-field {
    border: 1px solid red !important;
}
#validationMessage {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    /* плавный переход по высоте и прозрачности */
    transition: max-height 0.2s ease, opacity 0.2s ease;
    color: red;
}

/* Как только класс visible появляется — раскрываем блок */
#validationMessage.visible {
    max-height: 100px;  /* запас под строку текста */
    opacity: 1;
}

.field-input,
.img-input-wrapper {
  transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}

.checkbox-marker {
    cursor: pointer;
}

.form-img {
    cursor: pointer;
}

.img-input-wrapper {
    max-width: 295.1px;
    height: 295.1px !important;
}

.img-input-wrapper img {
    object-fit: contain;
    width: 100%;
}