/**
 * Fileuploader
 * Copyright (c) 2019 Innostudio.de
 * Website: https://innostudio.de/fileuploader/
 * Version: 2.2 (23-Nov-2019)
 * Requires: jQuery v1.7.1 or later
 * License: https://innostudio.de/fileuploader/documentation/#license
 */

// Variables
$fileuploader-distance: 16px;
$fileuploader-background: #fafbfd;
$fileuploader-theme-color-1: #3A8FFE;
$fileuploader-theme-color-2: #9658FE;
$fileuploader-color-active: #789BEC;
$fileuploader-color-error: #FE7676;
$fileuploader-color-success: #43D084;
$fileuploader-color-action: #c0c6d2;
$fileuploader-borderRadius: 6px;

$fileuploader-button-background: #e6ebf4;
$fileuploader-button-color: #90a0bc;

$fileuploader-input-caption-color: $fileuploader-color-active;
$fileuploader-input-caption-background: #fff;
$fileuploader-input-caption-border: 1px solid #ebeef1;

$fileuploader-item-borderBottom: $fileuploader-input-caption-border;
$fileuploader-item-color: #74809D;
$fileuploader-item-mutedColor: #979fb8;
$fileuploader-item-actionSize: 20px;
$fileuploader-item-thumbnailSize: 36px;

$fileuploader-popup-zIndex: 1090;
$fileuploader-popup-padding: 16px;
$fileuploader-popup-headerHeight: 64px;
$fileuploader-popup-footerHeight: 56px;
$fileuploader-popup-content-color: #fdfdfd;
$fileuploader-popup-content-muted: #80868b;
$fileuploader-popup-move-width: 56px;
$fileuploader-cropper-pointWidth: 24px;
$fileuploader-popup-moveSmall-width: 30px;

// SVG Images
$icon-loader: "PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJsb2FkZXItMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI0MHB4IiBoZWlnaHQ9IjQwcHgiIHZpZXdCb3g9IjAgMCA1MCA1MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTAgNTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjZGRlNGY2IiBkPSJNNDMuOTM1LDI1LjE0NWMwLTEwLjMxOC04LjM2NC0xOC42ODMtMTguNjgzLTE4LjY4M2MtMTAuMzE4LDAtMTguNjgzLDguMzY1LTE4LjY4MywxOC42ODNoNC4wNjhjMC04LjA3MSw2LjU0My0xNC42MTUsMTQuNjE1LTE0LjYxNWM4LjA3MiwwLDE0LjYxNSw2LjU0MywxNC42MTUsMTQuNjE1SDQzLjkzNXoiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZVR5cGU9InhtbCIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjAgMjUgMjUiIHRvPSIzNjAgMjUgMjUiIGR1cj0iMC42cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4gPC9wYXRoPiA8L3N2Zz4=";
$icon-file: "PHN2ZyB3aWR0aD0iNDkiIGhlaWdodD0iNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiA8Zz4gIDx0aXRsZT5iYWNrZ3JvdW5kPC90aXRsZT4gIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSI0MDIiIHdpZHRoPSI1ODIiIHk9Ii0xIiB4PSItMSIvPiA8L2c+IDxnPiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSIjYmJjYWNmIiBpZD0ic3ZnXzIiIGQ9Im00OSwxNi44NDJsMCw0Mi4xMDVjMCwyLjc5MSAtMi4yNyw1LjA1MyAtNS4wNjksNS4wNTNsLTM4Ljg2MiwwYy0yLjgsMCAtNS4wNjksLTIuMjYyIC01LjA2OSwtNS4wNTNsMCwtNTMuODk0YzAsLTIuNzkxIDIuMjY5LC01LjA1MyA1LjA2OSwtNS4wNTNsMjcuMDM0LDBsMTYuODk3LDE2Ljg0MnoiIGNsYXNzPSJjbHMtMSIvPiAgPHBhdGggZmlsbD0iI2RmZWFlZSIgZmlsbC1ydWxlPSJldmVub2RkIiBpZD0ic3ZnXzQiIGQ9Im00OSwxNS44OTlsMCwyLjA5NmwtMTMuODEzLDBjLTIuODYsMCAtNC4xNzksLTIuMzIgLTQuMTc5LC01LjE4MWwwLC0xMi44MTRsMi4wOTIsMGwxNS45LDE1Ljg5OXoiIGNsYXNzPSJjbHMtMyIvPiA8L2c+PC9zdmc+";

// Mixins
@mixin gradient-background($from, $to, $degrees: -45deg) {
    background: $to;
	background: -moz-linear-gradient($degrees, $from 0%, $to 100%);
	background: -webkit-linear-gradient($degrees, $from 0%, $to 100%);
	background: linear-gradient(180deg + $degrees, $from 0%, $to 100%);
}
@mixin fileuploader-range-track() {
    width: 100%;
    height: 4px;
    cursor: pointer;
    animate: 0.2s;
    box-shadow: none;
    background: $fileuploader-color-active;
    border-radius: 6px;
}
@mixin fileuploader-range-thumb() {
    height: 14px;
    width: 14px;
    border-radius: 50%;
    border: 0;
    background: #fff;
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -5px;
    box-shadow: 2px 2px 8px rgba(0,0,0,0.8);
}

// Extends
%fileuploader-transition-soft {
    -webkit-transition: 700ms cubic-bezier(0.17, 0.67, 0, 1.01);
         -o-transition: 700ms cubic-bezier(0.17, 0.67, 0, 1.01);
            transition: 700ms cubic-bezier(0.17, 0.67, 0, 1.01);
}
%fileuploader-animation {
    -webkit-animation: fileuploaderFadeIn 0.2s ease;
    		animation: fileuploaderFadeIn 0.2s ease;
}
%fileuploader-button {
    display: inline-block;
    margin: 0;
    padding: 14px 22px;
    border: none;
    border-radius: 30px;
    outline: 0;
    font-weight: bold;
    cursor: pointer;
    vertical-align: middle;
    text-decoration: none;
    @extend %fileuploader-transition-soft;
    @extend %user-select-none;
}
%fileuploader-button-default {
    @extend %fileuploader-button;
    background: $fileuploader-button-background;
    color: $fileuploader-button-color;

    &:hover {
        background: lighten($fileuploader-button-background, 2%);
        transform: translateY(-1px);
    }
    &:active {
        background: darken($fileuploader-button-background, 2%);
        transform: translateY(1px);
    }
}
%fileuploader-button-theme {
    @extend %fileuploader-button;
    @include gradient-background($fileuploader-theme-color-1, $fileuploader-theme-color-2);
    background-size: 140% auto;
    background-position: center;
    color: #fff;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .04);

    &:hover {
        background-position: left;
        box-shadow: 0 8px 25px rgba(0, 0, 0, .15);
        transform: translateY(-2px);
    }
    &:active {
        background-position: right;
        box-shadow: 0 4px 25px rgba(0, 0, 0, .15);
        transform: translateY(2px);
    }
}
%fileuploader-loader {
    content: '';
    position: absolute;
    min-width: 24px;
    min-height: 24px;
    max-width: 48px;
    max-height: 48px;
    background: url('data:image/svg+xml;base64,#{$icon-loader}') no-repeat center;
    background-size: contain;
}
%transform-to-center {
    left: 50%;
    top: 50%;
    -webkit-transform: translateX(-50%) translateY(-50%);
            transform: translateX(-50%) translateY(-50%);
}
%transform-to-vertical-center {
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
}
%user-select-none {
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

/* configuration */
.fileuploader,
.fileuploader *,
.fileuploader :before,
.fileuploader :after,
.fileuploader-popup,
.fileuploader-popup *,
.fileuploader-popup :before,
.fileuploader-popup :after {
    box-sizing: border-box;
}

.fileuploader button,
.fileuploader-popup button {
    display: inline-block;
    padding: 0;
    margin: 0;
	border: 0;
	font: inherit;
    background: none;
	box-shadow: none;
}
.fileuploader button:focus,
.fileuploader-popup button:focus {
	outline: 0;
}

/* main */
.fileuploader {
    display: block;
    width: 100%;
    padding: $fileuploader-distance;
    margin: $fileuploader-distance 0;
    background: $fileuploader-background;
    border-radius: $fileuploader-borderRadius;
    line-height: normal;
}

.fileuploader-icon-main {
	display: inline-block;
	font-size: 18px;
	color: $fileuploader-color-active;
}

/* input */
.fileuploader-input {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border: 1px solid transparent;
    border-radius: 30px;
    cursor: pointer;

    .fileuploader-input-caption {
        position: relative;
        display: inline-block;
        -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        -ms-flex-item-align: start;
            align-self: flex-start;

        padding: 13px $fileuploader-distance;
        margin-right: $fileuploader-distance;
        background: $fileuploader-input-caption-background;
        border: $fileuploader-input-caption-border;
        border-radius: 30px;
        color: $fileuploader-input-caption-color;
        box-shadow: 0 4px 18px rgba(0, 0, 0, .01);
        font-weight: bold;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
        @extend %fileuploader-transition-soft;

        .fileuploader-focused & {
            border-color: $fileuploader-input-caption-color;
        }

        /*
        .fileuploader.fileuploader-is-uploading & {
            padding-left: 40px;

            &:after {
                @extend %fileuploader-loader;
                left: 10px;
                top: 50%;
                margin-top: -12px;
            }
        }
        */

        .fileuploader-pending-loader {
            @extend %fileuploader-loader;
            position: relative;
            display: inline-block;
            vertical-align: middle;
            min-height: 22px;
            margin-right: 6px;
        }
    }

    .fileuploader-input-button {
        @extend %fileuploader-button-theme;
    }

    &.fileuploader-dragging {
        background: #fff;
        border: $fileuploader-input-caption-border;
        border-style: dashed;

        .fileuploader-input-caption {
            border-color: transparent;
        }
        .fileuploader-input-button {
            -webkit-transform: translateX(100%);
                    transform: translateX(100%);
            opacity: 0;
        }
    }

    .fileuploader-disabled & {
        opacity: 0.7;
        cursor: default;
        pointer-events: none !important;
    }
}

/* items */
.fileuploader-items {
    .fileuploader-items-list {
        display: block;
        margin: 0 $fileuploader-distance*-1;
        padding: 0;
        list-style: none;
    }

    .fileuploader-item {
        position: relative;
        margin: 0;
        padding: 20px $fileuploader-distance 20px $fileuploader-distance + 6px;
        border-bottom: $fileuploader-item-borderBottom;
        @extend %fileuploader-animation;
        animation-duration: 0.6s;

        &:last-child {
            border-bottom: 0;
            margin-bottom: $fileuploader-distance*-1;
        }

        &.upload-failed {
            background: rgba(254, 84, 111, 0.06);
        }

        &.upload-pending .fileuploader-action-remove:after {
            @extend %fileuploader-loader;
            position: absolute;
            left: -8px;
            top: -8px;
            width: 36px;
            height: 36px;
        }

        .columns {
            position: relative;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            z-index: 2;
        }

        .column-thumbnail {
            position: relative;
            width: $fileuploader-item-thumbnailSize;
            height: $fileuploader-item-thumbnailSize;
        }

        .column-title {
            -webkit-box-flex: 1;
                    -ms-flex: 1;
                        flex: 1;
            padding-left: $fileuploader-distance;
            padding-right: $fileuploader-distance;
            color: $fileuploader-item-color;
            overflow: hidden;

            a {
                display: inline-block;
                width: 100%;
                height: 100%;
                color: $fileuploader-item-color;
                text-decoration: none;
            }

            div {
                width: 100%;
                font-weight: bold;
                text-overflow: ellipsis;
                white-space: nowrap;
                overflow: hidden;
            }

            span {
                font-size: 12px;
                color: $fileuploader-item-mutedColor;
            }
        }

        .column-actions {
            margin: 0 $fileuploader-distance;
        }

        .fileuploader-item-image {
            position: relative;
            width: 100%;
            height: 100%;
            border-radius: $fileuploader-borderRadius;
            background: #fff;
            overflow: hidden;

            &.fileuploader-loading {
                &:after {
                    content: '';
                    @extend %fileuploader-loader;
                    @extend %transform-to-center;

                    width: 50%;
                    height: 50%;
                }
            }

            img,
            canvas {
                position: absolute;
                max-width: none;
                max-height: 100%;

                @extend %transform-to-center;
                @extend %fileuploader-animation;
            }
        }

        .fileuploader-item-icon {
            position: relative;
            width: 100%;
            height: 100%;
            text-align: center;
            color: #fff;
            font-size: 11px;
            background: #ddd;
            border-radius: 4px;
            cursor: default;
            @extend %user-select-none;
            @extend %fileuploader-animation;

            &.is-bright-color {
                color: #888;
            }

            i {
                position: absolute;
                display: block;
                width: 90%;
                font-style: normal;
                font-weight: bold;
                overflow: hidden;
                white-space: nowrap;
                @extend %transform-to-center;
            }
        }

        span.fileuploader-action-popup {
            display: none;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(43, 56, 71, 0.2);
            border-radius: $fileuploader-borderRadius;
            cursor: pointer;
            opacity: 0;

            @extend %fileuploader-transition-soft;

            &:hover {
                opacity: 1;
            }

            &:active {
                background: rgba(43, 56, 71, 0.4);
            }
        }

        .fileuploader-action {
            position: relative;
            display: inline-block;
            width: $fileuploader-item-actionSize;
            height: $fileuploader-item-actionSize;
            color: $fileuploader-color-action;
            cursor: pointer;
            vertical-align: top;
			text-align: center;

            @extend %transform-to-vertical-center;
			@extend %fileuploader-transition-soft;
            @extend %fileuploader-animation;

            & + .fileuploader-action {
                margin-left: $fileuploader-distance;
            }

            &:hover {
                color: $fileuploader-color-active;
            }

            &:active {
                color: darken($fileuploader-color-active, 4%);
            }

            i {
                width: 100%;
                height: 100%;
                font-size: $fileuploader-item-actionSize;
                line-height: $fileuploader-item-actionSize;
            }

            &.fileuploader-action-remove {
                color: #fff;
                background: $fileuploader-color-error;
				border-radius: 50%;
                box-shadow: -1px 1px 6px rgba($fileuploader-color-error, 0.8);

				i {
					font-size: 14px;
					text-shadow: none;
				}

                &:hover {
                    background-color: lighten($fileuploader-color-error, 4%);
                }
                &:active {
                    background-color: darken($fileuploader-color-error, 4%);
                }
            }
            &.fileuploader-action-success {
                color: #fff;
                background: $fileuploader-color-success;
				border-radius: 50%;
                box-shadow: -1px 1px 6px rgba($fileuploader-color-success, 0.8);

				i {
					font-size: 14px;
					text-shadow: none;
				}

                &:hover {
                    background-color: lighten($fileuploader-color-success, 4%);
                }
                &:active {
                    background-color: darken($fileuploader-color-success, 4%);
                }
            }

			&.fileuploader-action-remove.fileuploader-action-success {
				i:before {
					content: "\e904";
				}
				&:hover,
				&:active {
                    background: $fileuploader-color-error;
                    box-shadow: -1px 1px 6px rgba($fileuploader-color-error, 0.8);

					i:before {
						content: "\e923";
					}
                }
                &:active {
                    background-color: darken($fileuploader-color-error, 4%);
                }
			}
        }

        &.file-has-popup span.fileuploader-action-popup {
            display: block;
        }

        .fileuploader-progressbar {
            position: absolute;
            left: 0;
            bottom: 0;
            width: 100%;
            height: 4px;
            border-radius: $fileuploader-borderRadius;

            .bar {
                position: absolute;
                left: 0;
                top: 0;
                width: 0%;
                height: 100%;
                border-radius: $fileuploader-borderRadius;
                background: $fileuploader-color-active;
				box-shadow: 0 4px 8px -1px rgba($fileuploader-color-active, 0.6);
                @extend %fileuploader-transition-soft;
            }
        }

        .progress-bar2 {
            .fileuploader-progressbar {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
				overflow: hidden;
                z-index: 1;
                @extend %user-select-none;

                .bar {
                    position: absolute;
                    left: 0;
                    top: 0;
                    width: 0%;
                    height: 100%;
                    border-radius: 0;
                    background: rgba(104, 125, 219, 0.08);
					box-shadow: none;
                    @extend %fileuploader-transition-soft;
                }
            }

            span {
                position: absolute;
                @extend %transform-to-vertical-center;
                right: $fileuploader-distance;
                color: rgba(151, 159, 184, 0.16);
                font-size: 48px;
            }
        }

        &.sorting {
            background: $fileuploader-background;
            border-radius: $fileuploader-borderRadius;
            opacity: 0.8;
            box-shadow: 0 1px 4px rgba(0,0,0,0.2);
            z-index: 799;
        }

        &.sorting,
        &.sorting .fileuploader-item-image img,
        &.sorting .fileuploader-item-image canvas,
        &.sorting .fileuploader-item-icon,
        &.sorting .fileuploader-action {
            -webkit-animation: none;
                    animation: none;
        }
    }

    .fileuploader-sorter-placeholder {
        background: rgba(0, 0, 0, 0.03);
        margin: 0;
        padding: 0;
        -webkit-animation: none;
                animation: none;
    }
}

/* popup */
.fileuploader-popup {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #191d1e;
	z-index: $fileuploader-popup-zIndex;
    @extend %fileuploader-animation;
    animation-duration: 0.4s;

    &.loading:after {
        @extend %fileuploader-loader;
        @extend %transform-to-center;
        width: 48px;
        height: 48px;
        z-index: 8;
    }

    .fileuploader-popup-preview {
        position: relative;
        width: 100%;
        height: 100%;
        overflow: auto;
        z-index: 2;
    }

    .fileuploader-popup-node {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        max-width: 100%;
        height: 100%;
        min-width: 20px;
        min-height: 20px;
        padding: $fileuploader-popup-headerHeight + $fileuploader-popup-padding $fileuploader-popup-move-width $fileuploader-popup-footerHeight + $fileuploader-popup-padding/2;
        overflow: hidden;
        @extend %fileuploader-animation;

		&.is-zoomed {
			display: block;
		}

        .reader-node {
            position: relative;
            max-width: 100%;
            max-height: 100%;
            text-align: center;
            -webkit-transform: translateZ(0);
                    transform: translateZ(0);

            &.is-movable {
                cursor: grab;
            }

            &.is-moving,
            &.is-amoving:hover {
                cursor: grabbing;

                .area-move,
                .point {
                    cursor: grabbing !important;
                }
            }
        }

        &.image .reader-node > img,
        &.video .reader-node > video,
        &.audio .reader-node > audio,
        &.astext .reader-node > div {
            width: auto;
            max-width: 100%;
            max-height: 100%;
            margin: 0;
            padding: 0;
            color: #47525d;
            background: #fafafa;
            box-shadow: 0 0 18px rgba(0,0,0,0.4);
            -webkit-transform: translateZ(0);
                    transform: translateZ(0);
            border-radius: 0;
        }

        &.audio .reader-node audio {
            width: 450px;
        }

		&.application .reader-node iframe {
            width: 100%;
            height: 100%;
			border: 0;
			border-radius: 3px;
        }

        &.astext .reader-node div {
            max-width: 992px;
            padding: 20px;
            margin: 0 auto;
            font-size: 14px;
            line-height: 16px;
            text-align: left;
            overflow-y: auto;
            white-space: pre-wrap;
        }

        &.has-node-centered {
            display: block;

            .reader-node {
                flex: 1;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                width: 100%;
                height: 100%;
            }
        }

        .fileuploader-popup-file-icon {
            position: relative;
            display: inline-block;
            width: 80px;
            height: 80px;
            background: url("data:image/svg+xml;base64,#{$icon-file}") no-repeat center;
            background-size: contain;
            @extend %user-select-none;

            div {
                position: absolute;
                bottom: 14px;
                left: 0;
                padding: 4px 6px;
                border-radius: 4px;
                color: #fff;
                max-width: 100%;
                word-wrap: break-word;

                &.is-bright-color {
                    color: #888;
                }

                i {
                    text-transform: uppercase;
                    font-style: normal;
                    font-weight: bold;
                    white-space: nowrap;
                }
            }
        }
    }

    .fileuploader-popup-content {
        color: $fileuploader-popup-content-color;
        text-shadow: 1px 1px 1px rgba(0,0,0,0.4);

         ul {
            list-style: none;
            margin: 0;
            padding: 0;

            li {
                display: inline-block;
                padding: 0;
                margin: 0;

                & + li {
                    margin-left: $fileuploader-popup-padding;
                }
            }
        }
    }

    .fileuploader-popup-header {
        position: absolute;
        top: 0;
        left: 0;
        display: flex;
        flex-direction: row;
        align-items: center;
        width: 100%;
        padding: $fileuploader-popup-padding;
        @include gradient-background(rgba(#000, 0), rgba(#000, 0.8), 180deg);
        z-index: 2;

        .fileuploader-popup-meta {
            display: flex;
            flex: 1;
            white-space: nowrap;
            overflow: hidden;

            li:first-child {
                overflow: hidden;
            }

            span {
                display: block;
                color: $fileuploader-popup-content-muted;
                font-size: 14px;
            }

            h5 {
                max-width: 100%;
                margin: 4px 0 0;
                font-size: 14px;
                font-weight: bold;
                text-overflow: ellipsis;
                overflow: hidden;
            }
        }

        .fileuploader-popup-info:not(:empty) {
            flex: 1;
            margin-left: $fileuploader-popup-padding;
        }

        .fileuploader-popup-buttons {
            margin-left: $fileuploader-popup-padding;
        }

        .fileuploader-popup-button {
            @extend %fileuploader-button-default;
            padding: 14px 24px;
            text-shadow: none;

            &.button-success {
                @extend %fileuploader-button-theme;
            }
        }
    }

    .fileuploader-popup-footer {
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        text-align: center;
        @include gradient-background(rgba(#000, 0), rgba(#000, 0.8), 0deg);
        z-index: 2;

        .fileuploader-popup-tools {
            li {
                [data-action] {
                    display: inline-block;
                    padding: $fileuploader-popup-padding;
                    padding-bottom: $fileuploader-popup-padding - 3px;
                    cursor: pointer;
                    text-decoration: none;
                    color: $fileuploader-popup-content-color;
                    border-bottom: 3px solid transparent;
                    @extend %fileuploader-transition-soft;
                    @extend %user-select-none;

                    i {
                        display: inline-block;
                        font-size: 18px;
						margin-top: -4px;
                        margin-right: 6px;
                        vertical-align: middle;
                    }

                    &:hover {
                        border-bottom-color: $fileuploader-color-active;
                        color: #fff;
                    }
                }
            }
        }

        .fileuploader-popup-zoomer {
            font-size: 14px;

            button[data-action] {
                width: 24px;
                height: 24px;
                line-height: 24px;
                font-size: 16px;
                border: none;
                border-radius: 50%;
                padding: 0;
                vertical-align: middle;
                color: $fileuploader-popup-content-color;
                background: rgba(#fff, 0.1);
                text-shadow: none;
                @extend %fileuploader-transition-soft;

                &:hover {
                    background: rgba(#fff, 0.3);
                }
            }

            input {
                display: inline-block;
                -webkit-appearance: none;
                width: 130px;
                padding: 0;
                margin: 0 16px;
                vertical-align: middle;
                background: transparent;

                &:focus {
                    outline: none;
                }

                &::-webkit-slider-runnable-track {
                    @include fileuploader-range-track();
                }

                &::-webkit-slider-thumb {
                    @include fileuploader-range-thumb();
                }

                &::-moz-range-track {
                    @include fileuploader-range-track();
                }

                &::-moz-range-thumb {
                    @include fileuploader-range-thumb();
                }
            }

            span {
                display: inline-block;
                min-width: 40px;
                text-align: center;
                margin-left: 6px;
                color: #fff;
                vertical-align: middle;
            }
        }
    }

    .fileuploader-popup-move {
        position: absolute;
        display: none;
        width: $fileuploader-popup-move-width;
        height: 100%;
        font-size: 24px;
        bottom: 0;
        left: 0;
        color: #fff;
        opacity: 0.4;
        cursor: pointer;
        z-index: 1;
        @extend %user-select-none;

        &:hover {
            opacity: 1;
        }

        &:after {
            position: absolute;
            @extend %transform-to-center;
        }

        &[data-action="next"] {
            left: auto;
            right: 0;
        }

    }

    .fileuploader-popup-has-arrows .fileuploader-popup-move {
        display: inline-block;
    }

    .fileuploader-cropper,
    .fileuploader-cropper * {
        @extend %user-select-none;
    }

    .fileuploader-cropper {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(17,20,27,.65);
        z-index: 9;

        .fileuploader-cropper-area {
            position: absolute;
            left: 0;
            top: 0;
            width: 0;
            height: 0;
            z-index: 2;
            -webkit-transform: translateZ(0);
               -moz-transform: translateZ(0);
                -ms-transform: translateZ(0);
                 -o-transform: translateZ(0);
                    transform: translateZ(0);

            &.has-grid:before,
            &.has-grid:after {
                content: '';
                position: absolute;
                border: 1px solid rgba(250, 250, 250, 0.8);
                opacity: 0;
                -webkit-transition: all 0.4s ease;
                        transition: all 0.4s ease;
                z-index: 1;
            }

            &.has-grid:before {
                top: 0;
                left: 50%;
                height: 100%;
                width: 34%;
                border-top: 0;
                border-bottom: 0;
                -webkit-transform: translateX(-50%);
                        transform: translateX(-50%);
            }

            &.has-grid:after {
                top: 50%;
                left: 0;
                height: 34%;
                width: 100%;
                border-left: 0;
                border-right: 0;
                -webkit-transform: translateY(-50%);
                        transform: translateY(-50%);
            }

            &.has-grid.moving:before,
            &.has-grid.moving:after {
                opacity: 1;
            }

            .point {
                position: absolute;
                width: $fileuploader-cropper-pointWidth;
                height: $fileuploader-cropper-pointWidth;
                z-index: 3;

                &:after {
                    content: '';
                    width: $fileuploader-cropper-pointWidth/2;
                    height: $fileuploader-cropper-pointWidth/2;
                    position: absolute;
                    background: #fff;
                    box-shadow: 0 0 6px rgba(0,0,0,0.4);
                    border-radius: 50%;
                    @extend %transform-to-center;
                }

                &.point-a {
                    top: $fileuploader-cropper-pointWidth/2 * -1;
                    left: $fileuploader-cropper-pointWidth/2 * -1;
                    cursor: nw-resize;
                }
                &.point-b {
                    top: $fileuploader-cropper-pointWidth/2 * -1;
                    left: 50%;
                    margin-left: $fileuploader-cropper-pointWidth/2 * -1;
                    cursor: n-resize;
                }
                &.point-c {
                    top: $fileuploader-cropper-pointWidth/2 * -1;
                    right: $fileuploader-cropper-pointWidth/2 * -1;
                    cursor: ne-resize;
                }
                &.point-d {
                    top: 50%;
                    right: $fileuploader-cropper-pointWidth/2 * -1;
                    margin-top: $fileuploader-cropper-pointWidth/2 * -1;
                    cursor: w-resize;
                }
                &.point-e {
                    bottom: $fileuploader-cropper-pointWidth/2 * -1;
                    right: $fileuploader-cropper-pointWidth/2 * -1;
                    cursor: nw-resize;
                }
                &.point-f {
                    bottom: $fileuploader-cropper-pointWidth/2 * -1;
                    left: 50%;
                    margin-left: $fileuploader-cropper-pointWidth/2 * -1;
                    cursor: s-resize;
                }
                &.point-g {
                    bottom: $fileuploader-cropper-pointWidth/2 * -1;
                    left: $fileuploader-cropper-pointWidth/2 * -1;
                    cursor: sw-resize;
                }
                &.point-h {
                    left: $fileuploader-cropper-pointWidth/2 * -1;
                    top: 50%;
                    margin-top: $fileuploader-cropper-pointWidth/2 * -1;
                    cursor: w-resize;
                }
            }

            .area-move {
                position: absolute;
                width: 100%;
                height: 100%;
                z-index: 2;
                cursor: move;

                &:after {
                    content: '';
                    position: absolute;
                    top: 0;
                    left: 0;
                    width: 100%;
                    height: 100%;
                    border: 1px solid rgba(#fff, 0.8);
                }
            }

            .area-image {
                position: relative;
                overflow: hidden;
                width: 100%;
                height: 100%;

                img {
                    width: auto;
                    height: auto;
                    max-width: none;
                    max-height: none;
                    position: absolute;
                    left: 0;
                    top: 0;
                    background: #fff;
                    -webkit-transform-origin: top left;
                            transform-origin: top left;
                }
            }

            .area-info {
                position: absolute;
                bottom: -12px;
                left: 50%;
                color: #fff;
                font-family: sans-serif;
                line-height: 1;
                font-size: 12px;
                text-align: center;
                padding: 4px 8px;
                background: rgba(#000, 0.6);
                border-radius: 14px;
                white-space: nowrap;
                opacity: 0;
                -webkit-transform: translateX(-50%) translateY(100%);
                        transform: translateX(-50%) translateY(100%);
                -webkit-transition: all 0.4s ease;
                        transition: all 0.4s ease;
                z-index: 2;
            }

            &.show-info .area-info {
                opacity: 0;
            }
        }
    }
}

/* responsive */
@media all and (max-width: 768px) {
    .fileuploader-popup {
        .fileuploader-popup-header {
            display: block;
            padding: 0;

            .fileuploader-popup-meta {
                padding: $fileuploader-popup-padding;
            }

            .fileuploader-popup-buttons {
                position: fixed;
                left: 0;
                bottom: $fileuploader-popup-padding;
                width: 100%;
                margin: 0;
                text-align: center;
            }
        }

        .fileuploader-popup-node {
            padding-left: $fileuploader-popup-padding;
            padding-right: $fileuploader-popup-padding;
            padding-bottom: 117px;
        }

        .fileuploader-popup-footer {
            bottom: 61px;
            background: none;

            .fileuploader-popup-zoomer {
                display: none;
            }

            .fileuploader-popup-tools li a:hover {
                border-color: transparent;
            }
        }

        .fileuploader-popup-move {
            width: $fileuploader-popup-moveSmall-width;
        }

        .fileuploader-popup-has-arrows .fileuploader-popup-node {
            padding-left: $fileuploader-popup-moveSmall-width;
            padding-right: $fileuploader-popup-moveSmall-width;
        }
    }
}

/* animation */
@-webkit-keyframes fileuploaderFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
@keyframes fileuploaderFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
