html, body {
    height: 100vh;
    overflow: hidden;
    margin: 0; padding: 0;
    color: white;
    box-sizing: border-box;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.15;
}
*, *:before, *:after {
    box-sizing: inherit;
}

body {
    display: flex;
    flex-direction: column;
}

header {
    color: black;
    background-color: white;
    padding: 0 1em;
}

main {
    flex-grow: 10;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: center;
    align-content: flex-start;
    column-gap: 2em;
    background-color: #22282e;
    padding: 0 1em 1em 1em;
    overflow-y: scroll;
}

footer {
    width: 100vw;
    height: 15vh;
    padding: 0.1em 1em;
    border-top: 3px solid #222222;
    background-color: #22282e;
}

/**
 header
 **/
#top2000-logo {
    display: block;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 2em;
    font-weight: bold;
    transform: skewX(-5deg);
    width: 100rem;
    max-width: 90vw;
    margin-left: auto;
    margin-right: auto;
}
#top2000-logo > span:first-child {
    color: #d9151b;
    background-color: white;
}
#top2000-logo > span:nth-child(2) {
    color: white;
    background-color: #d9151b;
}

/**
 main
 **/

#input-container {
    width: 49rem;
    max-width: 90vw;
}
#tracks-container {
    width: 49rem;
    max-width: 90vw;
}

#lijsten-input {
    font-size: 1.2em;
    border-radius: 0.25rem;
    border: 2px solid #d9151b;
    margin-top: 0.75em;
    width: 53em;
    max-width: 90vw;
    min-height: 20ex;
    height: auto;
    outline: none;
    overflow: auto;
}

#spotify-authorize-ok {
    display: none;
    font-weight: bold;
    font-size: 32px;
    color: green;
}

main a,
main a:visited {
    color: cornflowerblue;
    text-decoration: none;
}
main a:hover {
    text-decoration: underline;
}

main button,
#spotify-playlist-url {
    display: block;
    background-color: #d9151b;
    margin: 1em 1em 1em 0;
    color: white;
    border-radius: 0.25rem;
    border: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: 15px;
    padding: 0.6em;
    cursor: pointer;
}

#spotify-playlist-url {
    display: inline-block;
    background-color: green;
    text-decoration: none;
}

#spotify-playlist-result {
    display: none;
}

main button:disabled {
    background-color: #86898e;
    cursor: not-allowed;
}

main #tracks {
    background-color: #ffffff;
    color: #111111;
    font-size: 15px;
    border-radius: 0.25rem;
    border: 2px solid #d9151b;
}

main #tracks > div {
    border-bottom: 2px solid #22282e;
}
main #tracks > div:last-of-type {
    border-bottom: none;
}

main #tracks > div:nth-child(2n) {
    background-color: #d8d8d8;
}

main #tracks .track-info {
    padding: 0.5em 1em;
}
main #tracks .track-votes {
    padding: 0 1em 0.5em 1em;
    font-style: italic;
}

main #tracks .track-artist {
    display: block;
    font-weight: bold;
}

main #tracks .track-title {
    display: block;
}

main p {
    margin-top: 0.75em;
    margin-bottom: 0;
}

/**
 spinner
 */

.spin {
    display: none;
    width: 35px;
    height: 35px;
    border: 11px solid rgba(217, 21, 27, .3);
    border-radius: 50%;
    border-top-color: rgb(217, 21, 27);
    background-color: white;
    animation: spin 1.33s linear infinite;
}
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.flex-row {
    display: flex;
    align-items: center;
}

/**
 footer
 **/
#events {
    display: flex;
    flex-direction: column-reverse;
    width: 100%;
    height: 100%;
    overflow: scroll;
    font-family: Courier, monospace;
    font-size: 12px;
}

#events > p {
    margin: 0;
}

#events > p.error {
    color: red;
    font-weight: bold;
}
