* {
    box-sizing: border-box;
}

a, a:visited, a:hover, a:active {
    text-decoration: none;
    color: #C1FF66;
    transition: color var(--transition);
}

a:hover {
    color: white;
}

html, body {
    margin: 0;
    padding: 0;
    color: white;
    font-family: Roboto, Arial, sans-serif;
    font-size: 1em;
    width: 100%;
    height: 100%;
    user-select: none;
    word-break: keep-all;
}

html {
    background: #86B146;
    --transition: 0.25s;
}

body {
    padding: 2em;
    overflow-x: hidden;
    overflow-y: auto;
}

#background {
    background: radial-gradient(circle, transparent 20%, #00000080 100%), linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.5) 100%), #86B146;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
}

/********/

#content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 4em;
    min-width: 100%;
    min-height: 100%;
}

header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0.5em;
}

#bonus-headline {
    width: 100%;
    font-size: 100%;
    opacity: 0.5;
    color: black;
    font-weight: normal;
    font-style: italic;
    margin-bottom: 0.25em;
    letter-spacing: 0.15em;
    cursor: pointer;
    transition: opacity var(--transition);
}

#bonus-headline:hover {
    opacity: 1;
}

#headline {
    display: flex;
    flex-wrap: wrap;
    text-align: center;
    justify-content: center;
    align-items: center;
    gap: 0 1.5em;
    font-weight: bold;
}

#headline .to {
    font-size: 300%;
}

#counter {
    font-size: 200%;
    font-weight: bold;
    opacity: 0;
}

#counter.show {
    opacity: 1;
}

#counter::before {
    content: "Converted Setlists: ";
}

#external-links {
    font-weight: initial;
    font-size: 150%;
}

/********/

#main {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1em;
    min-width: 65%;
    max-width: 65%;
}

#input {
    font-size: 200%;
    padding: 0.5em;
    width: 100%;
}

#input.hide {
    display: none;
}

#options {
    text-align: center;
    width: fit-content;
    display: flex;
    gap: 0.5em 1.5em;
    flex-wrap: wrap;
    font-size: 150%;
    justify-content: center;
    flex-direction: row;
}

#detailed-options {
    width: 100%;
    opacity: 0.5;
    font-size: 75%;
    cursor: pointer;
    transition: opacity var(--transition);
}

#detailed-options:hover {
    opacity: 1;
}

#detailed-options.hide {
    display: none;
}

#options.detailed {
    text-align: left;
    justify-content: space-around;
    flex-direction: column;
    max-width: 65%;
}

#options.hide {
    display: none;
}

#options input {
    width: 2em;
    height: 2em;
}

#options.detailed > div[title]:not([title=""])::after {
    content: attr(title);
    display: block;
    font-size: 50%;
}

#submit {
    font-size: 200%;
    padding: 0.5em;
    width: fit-content;
}
#submit.hide {
    display: none;
}

#format-info {
    font-size: 100%;
    display: none;
}
#format-info.show {
    display: initial;
}
#format-info-example {
    font-family: Consolas, monospace;
}
#format-info-avg {
    display: none;
    color: red;
    background: black;
    padding: 0.5em;
    margin-bottom: 1em;
}
#format-info-avg.show {
    display: block;
}

#spinner {
    display: none;
}
#spinner.show {
    display: inline-block;
    border: 0.2em solid white;
    border-top-color: transparent;
    border-radius: 50%;
    animation: rotating 1s linear infinite;
    width: 2em;
    height: 2em;
}

#progress-info {
    display: none;
}
#progress-info.show {
    display: initial;
}

#playlist-embed {
    width: 100%;
}

#strict-search-wrapper {
    /* Hide strict search container, no longer needed */
    /*display: none !important;*/
}

/********/

#results {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 1em;
    padding: 1em;
    border-radius: 1em;
    background: #0002;
    font-size: 125%;
}

#results.show {
    display: flex;
}

#direct-link {
    font-size: 125%;
    font-weight: bold;
}

#direct-link::before {
    content: "\01F517\FE0E\00A0";
    opacity: 0.5;
}

#search-results {
    width: fit-content;
    border-collapse: collapse;
    opacity: 0.5;
    transition: opacity var(--transition);
    cursor: pointer;
}

#search-results:hover, #search-results.no-collapse {
    opacity: 1;
}

#search-results tr {
    transition: background-color var(--transition);
}

#search-results tr:hover {
    background-color: #fff2;
}

#search-results:not(.no-collapse) tr.match {
    display: none;
}

#search-results.no-collapse tr:not(.match) {
    opacity: 0.5;
}

#search-results td {
    padding: 0 0.25em;
}

#search-results .search-result-index {
    font-weight: bold;
    text-align: right;
}

#search-results .search-result-index::after {
    content: ".";
}

#search-results .search-result-name {
    text-align: left;
    user-select: text;
}

#search-results .search-result-type {
    opacity: 0.5;
    text-align: right;
}

/********/

footer {
    font-size: 100%;
}

footer > div {
    margin: 0.25em 0;
}

#kofi-button {
    margin-top: 1em;
}


/********/

@keyframes rotating {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/********/

@media only screen and (max-aspect-ratio: 3/2), (min-aspect-ratio: 5/2) {
    body {
        overflow: auto;
        font-size: 0.75em;
        padding: 1em;
    }

    #content {
        justify-content: start;
        gap: 3em;
    }

    #main {
        width: 100%;
        max-width: 100%;
    }

    #input {
        font-size: 150%;
    }

    #options {
        flex-direction: column;
        justify-content: start;
        align-items: start;
    }

    #options.detailed > div[title]:not([title=""])::after {
        font-size: 65%;
    }

    wbr {
        display: block;
    }

    #kofi-button {
        padding-bottom: 3em;
    }
}