beige = #F9F2E7
dark-gray = #333
gray = #777
green = #8FBE00
light-blue = #40C0CB
light-gray = #EEE
light-green = #AEE239
light-red = #E23430
light-yellow = #FFE476
red = #AE1E1D

@keyframes rotate {
    from { transform: rotate(0deg) }
    to { transform: rotate(360deg) }
}

global-reset()
* { box-sizing: border-box }
html, body { height: 100% }

h1 {
    color: red;
    font: bold 56px/64px "Lobster Two", sans-serif;
    text-align: center;
    margin: 0 0 10px;
}

h1.with-subtitle {
  margin: 0;
}

a {
  color: gray;
}

p {
    color: gray;
    font: 16px/22px "Quicksand", sans-serif;
    text-align: center;
    margin: 0 0;
}

p.subtitle {
  font: 18px/24px "Quicksand", sans-serif;
  margin-bottom: 10px;
}

p.byline {
  position: absolute;
  bottom: 0;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 15px;
  left: 0;
  right: 0;
  font: 16px/22px "Quicksand", sans-serif;
}

.drop-zone {
    width: 100%
    height: 100%

    .drop-zone-overlay {
        position: fixed
        top: 0
        left: 0
        width: 100%
        height: 100%
        background: rgba(0, 0, 0, 0.5)
        text-align: center

        &:after {
            color: white
            content: 'DROP TO UPLOAD'
            display: block
            font: 24px/40px "Quicksand", sans-serif
            margin-top: -20px
            position: relative
            text-shadow: 0 1px dark-gray
            top: 50%
        }
    }
}

.spinner {
    position: relative
    z-index: -1
    width: 300px
    height: 300px
    margin: 0 auto 20px

    display: flex
    align-items: center
    justify-content: center

    .spinner-background {
        display: block
        width: 300px
        height: 300px
        position: absolute
        top: 0
        left: 0
        transition: transform 1s
        z-index: -1
    }

    &.spinner-animated .spinner-background {
        animation: rotate 5s infinite linear
    }

    .spinner-image {
        display: block
        width: 150px
        margin: 0 auto
    }

    .spinner-name {
        font: bold 18px/20px "Quicksand", sans-serif
        text-align: center
        color: white
        overflow: hidden
        text-overflow: ellipsis
        white-space: nowrap
        margin-top: 10px
        margin: 0 auto
        width: 220px
    }

    .spinner-size {
        font: italic 12px/20px "Quicksand", sans-serif
        text-align: center
        color: white
        overflow: hidden
        text-overflow: ellipsis
        white-space: nowrap
    }
}

.tempalink {
    background: beige
    color: dark-gray
    border: 0
    margin: 20px 0
    font: 18px/1 monospace
    height: 60px
    padding: 20px
    text-align: center
    width: 100%
}

.data {
    color: gray
    font: 14px/20px "Quicksand", sans-serif
    text-align: center
    overflow: hidden

    .datum {
        float: left
        width: 50%
    }
}

.download-button {
    display: block
    box-shadow: inset 0 1px 1px light-green
    padding: 20px
    background: green
    border: none
    color: white
    width: 100%
    font: bold 18px/20px "Quicksand", sans-serif
    transition: 0.25s
    cursor: pointer
    text-transform: uppercase

    &:hover, &:focus {
        box-shadow: inset 0 1px 1px green
        background: light-green
    }

    &:active {
        background: green
    }
}

.progress-bar {
    height: 60px
    overflow: hidden
    background: green
    transition: all 1s ease

    .progress-bar-inner {
        float: left
        height: 100%
        background: green
        box-shadow: inset 0 1px 1px light-green
        overflow: hidden
    }

    .progress-bar-text {
        font: 14px/60px "Quicksand", sans-serif
        color: white
        text-align: center
        text-transform: uppercase
    }

    &.progress-bar-failed {
        background: red
        box-shadow: inset 0 1px 1px light-red

        .progress-bar-text {
            text-align: center
        }
    }

    &.progress-bar-in-progress {
        background: beige
        .progress-bar-inner {
            background: #FFCC00
            box-shadow: inset 0 1px 1px light-yellow
        }

        .progress-bar-text {
            color: black
            float: right
            margin-right: 5px
        }
    }

    &.progress-bar-small {
        height: 30px
        width: 50%
        margin: 8px auto
        border-radius: 5px

        .progress-bar-text {
            line-height: 30px
        }
    }
}

label.select-file-label input[type="file"] {
    position: fixed
    top: -1000px
}

.select-file-label {
    border: 2px solid gray
    border-radius: 4px
    padding: 2px 5px
    margin-top: 5px
    background: light-gray
    display: inline-block
    cursor: pointer
    transition: all 0.25s ease

    &:hover, &:active {
        border-color: beige
        background: white
        color: red
    }
}
