.custom-edit-inline-form {
    position: relative;
    display: block;
    margin: 15px 0px;
}

.custom-wrap-border {
    position: relative;
    display: flex;
    border: 1px solid #dddddd;

    justify-content: center;
    align-items: center;
}
.custom-product-wrap {
    position: relative;
    display: block;
}
.custom-product-wrap.hid {
    opacity: 0;
    pointer-events: none;
    height: 0px !important;
    overflow: hidden;
}

.layout {
    position: relative;
    display: block;
    width: 100%;
    border: 1px solid #999999;
    background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFzMzMqqqqZTf1RwAAABRJREFUeJxjYGD4/5+BigR1TWMAAO29P8Hcj+G3AAAAAElFTkSuQmCC');
    z-index: 1;

    /* transition: 0.2s all; */

    overflow: hidden;
}

.fc-element {
    position: absolute;
    display: block;

    width: 0px;
    height: 0px;
    z-index: auto;

    cursor: pointer;
}
.fc-element-inner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate( -50%, -50% );
}

.fc-element-canvas {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate( -50%, -50% );
    width: 100%;
    height: 100%;
}
.fc-element-rotate {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    transform-origin: center center;
}
.fc-element canvas {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}
.fc-element-rotate.clickable:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    pointer-events: none;
    border: 3px solid #ff0000;
    -webkit-box-shadow: 0px 0px 5px 0px rgba(255,15,115,1);
    -moz-box-shadow: 0px 0px 5px 0px rgba(255,15,115,1);
    box-shadow: 0px 0px 5px 0px rgba(255,15,115,1);
    opacity: 0;
    transition: 0.2s opacity;
}
.fc-element-rotate.clickable:hover:after {
    opacity: 1;
}
.hover-layout {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;

    overflow: hidden;
}
.hc-hover {
    position: absolute;

    transform: translate( -50%, -50% );
}


.hc-hover-inner {
    position: relative;
    width: 100%;
    height: 100%;

    border: 3px solid #ff9500;

    opacity: 0.0;
    transition: 0.2s opacity;
    transform-origin: center center;

    cursor: pointer;
}

.hc-hover:hover .hc-hover-inner {
    opacity: 1;

    border: 3px solid #ff0000;
    -webkit-box-shadow: 0px 0px 5px 0px rgba(255,15,115,1);
    -moz-box-shadow: 0px 0px 5px 0px rgba(255,15,115,1);
    box-shadow: 0px 0px 5px 0px rgba(255,15,115,1);
}

input.fc-colorpicker {
    cursor: pointer;
    transition: 0s all;
}
.colorpicker {
    z-index: 120001;
}

.fc-form-group {
    position: relative;
    display: block;
    padding: 15px 15px;
    border: 1px solid #dddddd;
    border-radius: 4px;
}
.fc-form-group + .fc-form-group {
    margin-top: 10px;
}

.fc-image-form-preview {
    position: relative;
    display: block;
    border: 1px solid #dddddd;
    overflow: hidden;
}
.fc-image-form-preview-base {
    position: relative;
    width: 100%;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFzMzMqqqqZTf1RwAAABRJREFUeJxjYGD4/5+BigR1TWMAAO29P8Hcj+G3AAAAAElFTkSuQmCC);
}

.fc-image-form-tracker {
    position: absolute;
    display: block;
    max-width: 100%;
    max-height: 100%;

    cursor: grab;
}
.fc-image-form-tracker span {
    position: absolute;
    display: block;
    backdrop-filter: brightness(0.5) blur(2px);
    pointer-events: none;
}
.fc-image-form-tracker .t {
    bottom: 100%;
    left: 0;
    right: 0;
    height: 1000%;
    }
.fc-image-form-tracker .b {
    top: 100%;
    left: 0;
    right: 0;
    height: 1000%;
}
.fc-image-form-tracker .l {
    top: 0;
    right: 100%;
    bottom: 0;
    width: 1000%;
}
.fc-image-form-tracker .r {
    top: 0;
    left: 100%;
    bottom: 0;
    width: 1000%;
}

.fc-image-form-tracker .tl {
    bottom: 100%;
    right: 100%;
    width: 1000%;
    height: 1000%;
}
.fc-image-form-tracker .tr {
    bottom: 100%;
    left: 100%;
    width: 1000%;
    height: 1000%;
}

.fc-image-form-tracker .bl {
    top: 100%;
    right: 100%;
    width: 1000%;
    height: 1000%;
}

.fc-image-form-tracker .br {
    top: 100%;
    left: 100%;
    width: 1000%;
    height: 1000%;
}


.fc-image-form-tracker.grab {
    cursor: grabbing;
}

.fc-image-form-upload {
    position: relative;
    display: block;
    height: 100px;
    margin-top: 20px;
    border: 1px solid #767676;
    background: rgba(129, 129, 129, 0.102);
    transition: 0.5s all;
}
.fc-image-form-upload input {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    opacity: 0;
    cursor: pointer;
}
.fc-image-form-upload svg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 75px;
    transform: translate( -50%, -50% );
}

@keyframes fcImageFormUploadSvgAnimation {
    0% {
        stroke-dashoffset: 0px;
    }
    100% {
        stroke-dashoffset: 40px;
    }
}

.fc-image-form-upload svg path {
    stroke: #767676;
    stroke-width: 1;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 20px;
    transition: 0.5s all;
}

.fc-image-form-upload.uploading {
    border-color: #07ADEC;
    background: rgba(7, 172, 237, 0.1);
}
.fc-image-form-upload.uploading input {
    pointer-events: none;
}
.fc-image-form-upload.uploading svg path {
    stroke: #07ADEC;
    animation-name: fcImageFormUploadSvgAnimation;
    animation-duration: 2s;
    animation-fill-mode: forwards;
    animation-direction: normal;
    animation-iteration-count: infinite;
}

.fc-image-form-upload.error {
    border-color: #ff0000;
    background: rgba(255, 0, 0, 0.1);
}
.fc-image-form-upload.error svg path {
    stroke: #ff0000;
}

.fc-image-form-upload.success {
    border-color: #00ff00;
    background: rgba(0, 255, 0, 0.1);
}
.fc-image-form-upload.success svg path {
    stroke: #00ff00;
}

.custom-controls {
    position: relative;
    display: flex;
    margin-top: 10px;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;
}
.custom-control {
    position: relative;
    display: block;
    flex: 0 0 auto;
}
.custom-alert {
    position: relative;
    display: block;
}
.custom-alert .alert {
    display: inline-block;
    padding: 3px 5px;
    margin-top: 3px;
    margin-bottom: 0px;
}

.icon-radio {
    display: none;
}
.icon-radio + label {
    position: relative;
    display: block;
    border: 2px solid #eeeeee;

    transition: 0.2s all;
}
.icon-radio + label:hover {
    border-color: #ff9500;
}
.icon-radio:checked + label {
    border-color: #ff0000;
}
.icon-radio + label img {
    width: auto;
    height: 70px;
}

.input-group-text.input-group-custom-select {
    position: relative;
    text-align: left;
    padding: 0;
    height: 100%;
    background: #ffffff;
    cursor: pointer;
}
.input-group-custom-selected {
    padding: 0.375rem 0.75rem;
    color: #000000;
    transition: 0.2s color;
}
.input-group-custom-selected:hover {
    color: #441269;
}
.input-group-custom-mover {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: block;
    transform: translateY( 0px );
    background: #ffffff;
    border: 1px solid #dddddd;
    z-index: 2;

    pointer-events: none;
    opacity: 0;

    transition: 0.2s all;
}
.input-group-text.input-group-custom-select:hover .input-group-custom-mover {
    opacity: 1;
    pointer-events: all;
}
.input-group-custom-option {
    position: relative;
    display: block;
    padding: 0.375rem 0.75rem;
    cursor: pointer;
}
.input-group-custom-option:after {
    content: "";
    position: absolute;
    top: -3px;
    left: -3px;
    right: -3px;
    bottom: -3px;
    pointer-events: none;
    border: 4px solid #ff0000;
    opacity: 0;
    transition: 0.2s opacity;
    z-index: 3;
}
.input-group-custom-option::before {
    content: "";
    position: absolute;
    top: -3px;
    left: -3px;
    right: -3px;
    bottom: -3px;
    pointer-events: none;
    border: 4px solid #FFC745;
    opacity: 0;
    transition: 0.2s opacity;
    z-index: 2;
}
.input-group-custom-option:hover:after {
    opacity: 1;
}
.input-group-custom-option.selected:before {
    opacity: 1;
}
.input-group-custom-option + .input-group-custom-option {
    border-top: 1px solid #dddddd;
}

.input-group-custom-option input {
    display: none;
}
.input-group-custom-option-text {
    position: relative;
    display: block;
    overflow: hidden;
}



.fc-form-group.selected .btn-choose-image {
    border-color: #00ff00;
    background: #00ff00;
    color: #441269;
}

.btn-toggle-element {
    position: relative;
    display: inline-block;
    background: none;
    border: 1px solid #dddddd;
    padding: 2px 5px;
    font-size: 13px;
    line-height: 13px;
    color: #000000;
    vertical-align: 1px;
}

.btn-toggle-element .is-on {
    position: relative;
    display: block;
}
.btn-toggle-element .is-on i {
    color :#ff0000;
}

.btn-toggle-element .is-off {
    position: relative;
    display: none;
}
.btn-toggle-element .is-off i {
    color :#00c545;
}

.fc-form-group.off .btn-toggle-element .is-on {
    display: none;
}
.fc-form-group.off .btn-toggle-element .is-off {
    display: block;
}
.btn-toggle-element:hover {
    color: #07ADEC;
}

.fc-form-group-content {
    position: relative;
    display: block;
    margin-top: 5px;
}
.fc-form-group.off > .fc-form-group-content {
    display: none;
}


.fc-group-position-icons {
    position: relative;
    margin-bottom: 5px;
    flex-wrap: nowrap;
}
.fc-group-position-icon {
    position: relative;
    display: block;
}
.fc-group-position-icon input {
    display: none;
}
.fc-group-position-icon input + label {
    position: relative;
    display: block;
    border: 2px solid #dddddd;
    padding: 2px;
    background: #ffffff;

    cursor: pointer;
    transition: 0.2s all;
}
.fc-group-position-icon input + label img {
    height: 32px;
}
.fc-group-position-icon input + label:hover {
    border-color: #07ADEC;
}
.fc-group-position-icon input:checked + label {
    border-color: #ff0000;
}