body {
    min-height: 100vh;
    background: linear-gradient(195deg, #ff00c3, #d123ba, #a42dab, #7b2f97, #552b80, #342465, #181a48, #050b2b);
}

.app-wrapper {
    flex-direction: column;
}

.group-wrapper,
.app-wrapper {
    display: flex;
    max-width: 100%;
    /* flex-wrap: wrap; */
    align-items: center;
    justify-content: center;
}

section.cropper-tool {
    padding: 16px;
    margin: 10px;
    background: #ffffff;
    border-radius: 6px;
    /* max-width: 800px; */
    min-width: 550px;
    flex-shrink: 4;
}

section.cropper-tool.grabbing {
    cursor: grabbing !important;
}

section.cropper-tool.grabbing .cropper-tool__thumbnails {
    pointer-events: none;
}

.cropper-tool__header {
    display: flex;
    align-items: center;
    margin-bottom: 4px;
}

.cropper-tool__header h2{
    padding-left: 6px;
    padding-bottom: 6px;
    margin-right: 5px;
}

.cropper-tool__form {
    margin-left:auto;
    display:flex;
}

.cropper-tool__form input[name="video-url"] {
    padding: 6px 11px;
    border-radius: 6px 0px 0px 6px;
    height: 34px;
    outline: none;
    border: none;
    background: #e5e5e5;
}

.cropper-tool__form:focus-within input {
    border: 2px solid #78bafb;
    border-right: none;
}

.cropper-tool__form button[type="submit"] {
    padding: 6px;
    border-radius: 0px 6px 6px 0px;
    cursor: pointer;
    margin-left: -5px;
    border: none;
    height: 34px;
    background: rgb(49 134 157);
    color: white;
}

.cropper-tool__form button[type="submit"]:active {
    background: rgb(39 108 126);
}

.cropper-tool__thumbnails {
    padding: 12px;
    display: flex;
    max-width:800px;
    gap: 20px;
    margin-bottom:6px;
    user-select: none;
    overflow-x: auto;
    scrollbar-width: thin;
}

.cropper-tool__thumbnails[data-thumbnails="3"] {
    justify-content: space-around;
}

.cropper-tool__thumbnails img {
    width: fit-content;
    transform: translateX(-25%);
}

.cropper-tool__thumbnails span {
    overflow: hidden;
    width: 150px;
    cursor: pointer;
    filter: brightness(0.6);
    flex-shrink: 0;
}

.cropper-tool__thumbnails span.selected {
    outline: 5px solid #83838382;
    outline-offset: 3px;
    outline-style: dashed;
    filter: brightness(1);
}

.cropper-tool__thumbnails span, .cropper-tool__thumbnails img  {
    height: 150px;
    display: inline-block;
    background: #979797;
}

/* .cropper-tool__thumbnails span:nth-of-type(1) {
    background: #87836c;
} */

.cropper-tool canvas {
    max-width:100%;
    width:800px;
    display:block;
    background-color:#979797;
    touch-action: none;
    -webkit-user-drag: none;
    touch-action: none;
}

.quality-form {
    margin-bottom: 5px;
}
section.preview {
    /* min-width: 800px; */
    flex-shrink:0;
    max-width: fit-content;
    padding: 0 17px 17px 17px;
    background: #ffffff;
    margin: 5px;
    border-radius: 6px;
    color: #2e2b2b;
    user-select: none;
}

.preview img {
    max-width:100%;
    /* min-width:800px; */
}


section.preview.viewing-saved .preview__header .preview-text {
    visibility: visible;
    
}

.preview__header .preview-text {
    visibility: hidden;
    display: inline-block;
    font-size: 12px;
    font-weight: normal;
    padding: 5px;
    border-radius: 4px;
    background-color: rgb(240, 52, 247);
    color: white;
    margin-left: 4px;
}

.preview__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 4px 3px 6px 0;
    margin:5px;
    gap:5px;
}


.preview__header .quality-form input {
    vertical-align: bottom;
}

.preview__header .quality-form output {
    display: inline-block;
    width: 39px;
}

.preview__header .filesize-text span {
    display: inline-block;
    min-width: 67px;
}

.preview__wrapper {
    position: relative;
}

.preview__wrapper:hover .save-button,
.preview__wrapper:active .save-button {
    visibility: visible;
    opacity:0.87;
    transition: opacity 0.2s ease, visibility 0.2s;
}

.preview__wrapper .save-button {
    /* positioning */
    position: absolute;
    bottom: 20px;
    right: 20px;
    /* style */
    padding: 10px 20px;
    border-radius: 6px;
    color: white;
    border: none;
    background: rgb(0 0 0 / 65%);
    cursor: pointer;
    backdrop-filter: blur(4px);
    /* animation */
    visibility: hidden; 
    opacity:0;
    transition: opacity 0.4s ease-in, visibility 0.4s;
}

.preview__wrapper .save-button__icon svg {
    width:35px;
    fill:rgb(255 255 255 / 90%);
}

.preview__wrapper .save-button:hover  {
    opacity: 1;
    transition:none;
    background: rgb(0 0 0 / 79%);
}

.preview__wrapper .save-button:active {
    opacity: 0.9;
    /* filter: opacity(0.85); */
    /* background: rgb(0 0 0 / 65%); */
    /* transition:none;
     */
     /* transform:scale(0.95); */
        filter: brightness(0.9);
}


/* Saved images */
section.saved-images {
    max-width: 100%;
    width: 900px;
    padding: 12px;
    background: white;
    border-radius: 6px;
    margin:10px;
}

.saved-images__header {
    margin: 0 10px;
    display: flex;
}

.saved-images__header h2 {
    font-size: 18px;
}

.saved-images__thumbnails {
    display:flex;
    min-height:190px;
    /* background: #e3e3e3; */
    margin: 10px;
    margin: 10px 10px 0px 10px;
    overflow-x: auto;
    overflow-y: hidden;
}

.saved-images__thumbnails:empty {
    min-height: 180px;
    margin-bottom: 10px;
    box-shadow: inset 1px 2px 20px 8px #f3f3f3;
    animation: fade-out reverse 0.35s  -0.1s linear forwards;
}

.saved-images__thumbnails .img-wrapper {
    display: block;
    position: relative;
    width: 240px;
    height:180px;
    margin-right:15px;
    margin-bottom: 10px;
    flex-shrink: 0;
    border-radius: 5px;
    overflow: hidden;
    
}

.saved-images__thumbnails .img-wrapper img {
    width:100%;
    height:100%;
}

.saved-images__thumbnails .img-wrapper__controls {
    position: absolute;
    display: inline-flex;
    top: 6px;
    right: 6px;
   
}

.saved-images__upload-btn {
    display: flex;
    align-items: center;
    outline: none;
    border:none;
    background-color: rgb(137, 148, 151);
    color:white;
    border-radius: 6px;
    cursor: pointer;
    margin-left: 10px;
    padding: 7px 12px;
    opacity: 0.9;
    transition: opacity 0ms linear;
}

.saved-images__upload-btn:hover {
    opacity: 1;
    transition: opacity 10ms linear;
    background-color: rgb(49 134 157);
}

.saved-images__upload-btn.loading {
    background-color: rgb(49 134 157);
}

.saved-images__upload-btn:disabled {
    opacity: 0.3;
    cursor:default;
    transition: opacity 50ms linear;
}
.saved-images__upload-btn__icons {
    margin-left:5px;
    width:23px;
    height:23px;
}

.saved-images__upload-btn__icons svg {
    color:white;
}

/* Default state */
.saved-images__upload-btn__icon--loading {
    display:none;
}
.saved-images__upload-btn__icon--upload {
    fill:white;
    animation: fade-out forwards reverse 0.18s;
}


/* Loading state, hide upload show loading */
.saved-images__upload-btn.loading
.saved-images__upload-btn__icon--loading {
    display:block;
    transform-origin: center;
    animation: spin 1s linear infinite;
    
}

.saved-images__upload-btn.loading
.saved-images__upload-btn__icon--upload {
    display: none;
}

/* .saved-images__thumbnails .img-wrapper:hover {
    transform: scale(1.1);
    transition: transform 0.1s;
} */

.saved-images__thumbnails .img-wrapper:hover .img-wrapper__controls button,
.saved-images__thumbnails .img-wrapper.selected .img-wrapper__controls button{
    /* animation */
    visibility: visible;
    opacity: 1;
    transition: opacity 0.11s ease, visibility 0.11s;
}

.saved-images__thumbnails .img-wrapper.selected {
    /* border: 2px solid inset #6215dd82; */
    box-shadow: 1px 1px 4px #464646;
}

.saved-images__thumbnails .img-wrapper__controls button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: rgb(0 0 0 / 65%);
    width: 35px;
    height: 35px;
    border-radius: 3px;
    cursor: pointer;
    backdrop-filter: blur(4px);
    /* animation */
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.16s ease-in, visibility 0.16s;
}

.saved-images__thumbnails .img-wrapper__controls button:hover {
    background: rgb(0 0 0 / 79%);
}


.saved-images__thumbnails .img-wrapper__controls button:active {
    filter: saturate(0.7);
}

.saved-images__thumbnails .img-wrapper__controls button svg {
    pointer-events: none;
    width:14px;
    fill:rgb(240, 39, 39);
    fill:rgb(240 39 39 / 93%)
}
.saved-images__thumbnails .img-wrapper__controls button:hover svg {
    fill: rgb(243, 12, 12);
}

.saved-images .hidden-controls {
    display:none;
}

/* notrpod styles */
.not-prod .cropper-tool {
    max-width: 780px;
    flex-shrink:3;
}
.not-prod .preview {
    flex-shrink: 1;
}

.not-prod section.saved-images {
    margin:5px;
}

@media (max-width: 1240px) {
    .not-prod .cropper-tool {
        min-width:400px;
    }
    .not-prod .cropper-tool__thumbnails {
        justify-content: flex-start;
    }
}

@media (max-width: 940px) {
    .not-prod .group-wrapper {
        flex-wrap:wrap;
    }
}

@media (min-width: 1240px) {
    
}

/* helper classes and stuff */
[class*="header"] h2 {
    font-size: 20px;
    font-size: 14px;
    padding-left:10px;
    line-height:2.4;
    color: #2e2b2b;
}

.hidden {
    display: none !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    padding: 0;
}

.fade-out-shrink {
    animation: fade-out 0.5s forwards, shrink 0.25s  0.25s forwards;
}

.fade-in {
    animation: fade-out forwards reverse .18s;
}

/* keyframes */
@keyframes fade-out {
    0% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }

    100% {

        opacity: 0;
    }
}

@keyframes shrink {
    0% {
        width:120px;
    }

    100% {
        width:0%;
    }
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* media queries */
/* @media only screen and (max-width: 1410px) {
    .group-wrapper {
        flex-wrap: wrap;
    }
} */

@media only screen and (min-width: 688px) {
    .quality-form {
        margin-left: -77px;
    }
}