/* Variables */
:root {
    --bg: #323434;
    --fg: #feffff;
    --correct-color: #8fde9c;
    --wrong-color: #df616a;
    --panel-bg: #151616;
    --panel-fg: var(--fg);
    --options-fg: var(--panel-bg);
    --options-bg: #fbdb8f;
    --question-bg: #81a1f1;
    --question-fg: var(--panel-bg);
    --start-fg: var(--bg);
    --start-bg: var(--correct-color);
    --reset-fg: var(--bg);
    --reset-bg: var(--wrong-color);
    --next-bg: #abdcdb;
    --next-fg: var(--panel-bg);
    --next-disabled-bg: #202020;
    --next-disabled-fg: var(--bg);
    --timer-fg: var(--next-bg);
    --nav-btn-bg: var(--timer-fg);
    --choose-file-bg: var(--bg);
    --choose-file-fg: var(--next-bg);
    --question-font: 1.8rem;
    --option-font: 1.6rem;
    --status-font: 1rem;
    --next-font: 1.6rem;
    --font-family: 'Mononoki Nerd Font', monospace;
    --panels-width: 30%;
    --mcq-width: 75%;
    --border-radius-m: 12px;
    --shadow-for-all: 0 0 1.2rem rgba(0, 0, 0, 0.8);
    --transition-time: 0.4s;
    --timer-font: calc(var(--status-font) * 5);
}

/* tHe DeSiGn (this was really painful) */
html {
    height: 100%;
    font-size: 16px;
}

.default-light {
    --bg: #dedede;
    --fg: #121212;
    --correct-color: #83ffa4;
    --wrong-color: #df616a;
    --panel-bg: #fdfdff;
    --panel-fg: var(--fg);
    --options-fg: var(--panel-fg);
    --options-bg: #faddbf;
    --question-bg: #cdddff;
    --question-fg: var(--panel-fg);
    --start-fg: var(--fg);
    --start-bg: var(--correct-color);
    --reset-fg: var(--fg);
    --reset-bg: var(--wrong-color);
    --next-bg: #afdffb;
    --next-fg: var(--panel-fg);
    --next-disabled-bg: #202020;
    --next-disabled-fg: var(--panel-fg);
    --timer-fg: #233223;
    --nav-btn-bg: var(--next-bg);
    --choose-file-bg: var(--next-bg);
    --choose-file-fg: var(--fg);
}

.dracula {
    --bg: #282A36;
    --fg: #F8F8F2;
    --correct-color: #50FA7B;
    --wrong-color: #FF5555;
    --panel-bg: #44475A;
    --panel-fg: var(--fg);
    --options-fg: var(--panel-bg);
    --options-bg: #8BE9FD;
    --question-bg: #BD93F9;
    --question-fg: var(--panel-bg);
    --start-fg: var(--panel-bg);
    --start-bg: #FFB86C;
    --reset-fg: var(--panel-bg);
    --reset-bg: var(--wrong-color);
    --next-bg: #F1FA8C;
    --next-fg: var(--bg);
    --next-disabled-bg: #202020;
    --next-disabled-fg: var(--panel-bg);
    --timer-fg: var(--next-bg);
    --nav-btn-bg: var(--next-bg);
    --choose-file-bg: var(--next-bg);
    --choose-file-fg: var(--panel-bg);
}

.nord {
    --bg: #2e3440;
    --fg: #eceff4;
    --correct-color: #a3be8c;
    --wrong-color: #bf616a;
    --panel-bg: #4c566a;
    --panel-fg: var(--fg);
    --options-fg: var(--bg);
    --options-bg: #ebcb8b;
    --question-bg: #81a1c1;
    --question-fg: var(--bg);
    --start-fg: var(--bg);
    --start-bg: #d08770;
    --reset-fg: var(--bg);
    --reset-bg: var(--wrong-color);
    --next-bg: #88c0d0;
    --next-fg: var(--bg);
    --next-disabled-bg: #202020;
    --next-disabled-fg: var(--bg);
    --timer-fg: var(--next-bg);
    --nav-btn-bg: var(--next-bg);
    --choose-file-bg: var(--next-bg);
    --choose-file-fg: var(--bg);
}

.gruvbox-dark {
    --bg: #282828;
    --fg: #fbf1c7;
    --correct-color: #b8bb26;
    --wrong-color: #fb4934;
    --panel-bg: #3c3836;
    --panel-fg: var(--fg);
    --options-fg: var(--bg);
    --options-bg: #d79921;
    --question-bg: #458588;
    --question-fg: var(--bg);
    --start-fg: var(--bg);
    --start-bg: #fe8019;
    --reset-fg: var(--bg);
    --reset-bg: var(--wrong-color);
    --next-bg: #689d6a;
    --next-fg: var(--bg);
    --next-disabled-bg: #202020;
    --next-disabled-fg: var(--bg);
    --timer-fg: var(--next-bg);
    --nav-btn-bg: var(--next-bg);
    --choose-file-bg: var(--next-bg);
    --choose-file-fg: var(--bg);
}

.gruvbox-light {
    --bg: #ebdbb2;
    --fg: #282828;
    --correct-color: #b8bb26;
    --wrong-color: #fb4934;
    --panel-bg: #fbf1c7;
    --panel-fg: var(--fg);
    --options-fg: var(--fg);
    --options-bg: #fabd2f;
    --question-bg: #83a598;
    --question-fg: var(--fg);
    --start-fg: var(--fg);
    --start-bg: #fe8019;
    --reset-fg: var(--fg);
    --reset-bg: var(--wrong-color);
    --next-bg: #689d6a;
    --next-fg: var(--fg);
    --next-disabled-bg: #202020;
    --next-disabled-fg: var(--fg);
    --timer-fg: var(--next-bg);
    --nav-btn-bg: var(--next-bg);
    --choose-file-bg: var(--next-bg);
    --choose-file-fg: var(--fg);
}

.onedark {
    --bg: #282C34;
    --fg: #ABB2BF;
    --correct-color: #98C379;
    --wrong-color: #E06C75;
    --panel-bg: #3e4452;
    --panel-fg: var(--fg);
    --options-fg: var(--bg);
    --options-bg: #E5C07B;
    --question-bg: #61AFEF;
    --question-fg: var(--bg);
    --start-fg: var(--bg);
    --start-bg: #C678DD;
    --reset-fg: var(--bg);
    --reset-bg: var(--wrong-color);
    --next-bg: #56B6C2;
    --next-fg: var(--bg);
    --next-disabled-bg: #202020;
    --next-disabled-fg: var(--bg);
    --timer-fg: var(--next-bg);
    --nav-btn-bg: var(--next-bg);
    --choose-file-bg: var(--next-bg);
    --choose-file-fg: var(--bg);
}

body {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    background-color: var(--bg);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
}

.main {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    background-color: var(--bg);
    display: flex;
    justify-content: center;
    align-items: center;
}

.mcq {
    height: 100%;
    width: var(--mcq-width);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.nav-bar {
    width: 100%;
    height: 6%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: var(--panel-bg);
    color: var(--panel-fg);
    /* border-radius: var(--border-radius-m); */
    box-shadow: var(--shadow-for-all);
    /* margin: 1%; */
    /* padding: 0.5%; */
}

.nav-btn {
    height: 80%;
    width: 5%;
    margin: 0.5rem;
    /* padding: 1rem; */
    background-color: var(--nav-btn-bg);
    color: var(--fg);
    border: none;
    border-radius: var(--border-radius-m);
    font-size: calc(var(--status-font) * 1);
    font-family: var(--font-family);
    cursor: pointer;
    box-shadow: var(--shadow-for-all);
    transition: var(--transition-time);
}

.panel {
    height: 96%;
    width: var(--panels-width);
    background-color: var(--panel-bg);
    color: var(--panel-fg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-family: var(--font-family);
    font-size: var(--status-font);
    border-radius: var(--border-radius-m);
    margin: 1%;
    box-shadow: var(--shadow-for-all);
    transition: 0.2s;
}

.panel>.fileUpload {
    padding: 0.3334rem;
    border: none;
    font-family: var(--font-family);
}

.inactive {
    /* display: none; */
    /* transition: var(--transition-time); */
    opacity: 0;
    pointer-events: none;
    transform: translate(-25%);
    /* transform: scale(0.7); */
}

.options {
    width: 100%;
    height: 90%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    align-content: flex-end;
    gap: 0.56rem;
}

#option {
    width: 43.5%;
    height: 14%;
    padding: 0.56rem;
    margin-top: 1.12rem;
    border: none;
    background-color: var(--options-bg);
    color: var(--options-fg);
    font-size: var(--option-font);
    font-family: var(--font-family);
    cursor: pointer;
    border-radius: var(--border-radius-m);
    box-shadow: var(--shadow-for-all);
    transition: var(--transition-time);
}

#option:hover {
    background-color: var(--options-fg);
    color: var(--options-bg);
}

.enabled {
    background-color: var(--next-bg);
    color: var(--next-fg);
}

.enabled:hover {
    background-color: var(--next-fg);
    color: var(--next-bg);
}

.disabled {
    color: var(--next-disabled-fg);
    background-color: var(--next-disabled-bg);
}

.next {
    width: 92%;
    height: 8%;
    margin: 1.12rem;
    padding: 0.56rem;
    border: none;
    cursor: pointer;
    font-family: var(--font-family);
    font-size: var(--next-font);
    border-radius: var(--border-radius-m);
    box-shadow: var(--shadow-for-all);
    transition: var(--transition-time);
}

.maxq {
    width: 30%;
    margin: 0.3334rem;
    padding: 0.56rem;
    border: none;
    border-radius: calc(var(--border-radius-m)/2);
    font-family: var(--font-family);
    font-size: var(--status-font);
    color: var(--fg);
    background-color: var(--bg);
}

input[type="file"]::file-selector-button {
    color: var(--choose-file-fg);
    background-color: var(--choose-file-bg) !important;
    border: none;
    padding: 0.56rem;
    border-radius: var(--border-radius-m);
    font-family: var(--font-family);
    font-size: 0.75rem !important;
    font-weight: bold;
    transition: var(--transition-time);
}

input[type="file"]::file-selector-button:hover {
    color: var(--bg);
    background-color: var(--next-bg) !important;
    cursor: pointer;
}

input[type="file"] {
    color: var(--panel-fg);
    font-family: var(--font-family);
    font-size: var(--status-font);
}

input[type="checkbox"] {
    width: 1.2rem;
    height: 1.2rem;
    cursor: pointer;
}

.question {
    display: flex;
    width: 85%;
    /* height: 10%; */
    padding: 2.5rem;
    margin: 0.56rem;
    margin-top: 1.12rem;
    align-items: center;
    justify-content: center;
    font-size: var(--question-font);
    font-family: var(--font-family);
    background-color: var(--question-bg);
    color: var(--question-fg);
    border-radius: var(--border-radius-m);
    box-shadow: var(--shadow-for-all);
}

.start {
    color: var(--start-fg);
    background-color: var(--start-bg);
    padding: 0.875rem;
    margin: 0.3334rem;
    width: 35%;
    border: none;
    cursor: pointer;
    border-radius: var(--border-radius-m);
    box-shadow: var(--shadow-for-all);
    transition: var(--transition-time);
    font-family: var(--font-family);
    font-size: var(--status-font);
    font-weight: bold;
}

.start:hover {
    background-color: var(--start-fg);
    color: var(--start-bg);
}

.reset {
    color: var(--reset-fg);
    background-color: var(--reset-bg);
    padding: 0.875rem;
    margin: 0.3334rem;
    width: 35%;
    border: none;
    cursor: pointer;
    border-radius: var(--border-radius-m);
    box-shadow: var(--shadow-for-all);
    transition: var(--transition-time);
    font-family: var(--font-family);
    font-size: var(--status-font);
    font-weight: bold;
}

.reset:hover {
    background-color: var(--reset-fg);
    color: var(--reset-bg);
}

.score {
    font-weight: bold;
}

.qcount {
    font-weight: bold;
}

.stats {
    margin: 0.56rem;
    padding: 0.56rem;
    font-family: var(--font-family);
    font-size: var(--status-font);
    font-weight: bold;
}

.timer {
    height: 100%;
    /* width: 2%; */
    color: var(--timer-fg);
    display: flex;
    align-items: center;
    justify-content: center;
    justify-self: flex-end;
    align-self: flex-end;
    font-family: var(--font-family);
    font-size: calc(var(--status-font) * 2.5);
    margin-right: 1%;
    padding-left: 1%;
    padding-right: 1%;
    border-right: 4px solid var(--timer-fg);
    border-left: 4px solid var(--timer-fg);
}

.timer-input {
    margin: 0.56rem;
    width: 50%;
    font-size: var(--status-font);
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

p {
    text-align: center;
    margin: 0.12rem;
}

.timer-seconds,
.timer-minutes {
    width: 20%;
    margin: 0.3334rem;
    padding: 0.56rem;
    border: none;
    border-radius: calc(var(--border-radius-m)/2);
    font-family: var(--font-family);
    font-size: var(--status-font);
    color: var(--fg);
    background-color: var(--bg);
}

#quizDropdown {
    margin-top: 0.5rem;
    padding: 0.5rem;
    border: none;
    border-radius: calc(var(--border-radius-m) / 2);
    font-family: var(--font-family);
    font-size: var(--status-font);
    color: var(--fg);
    background-color: var(--bg);
}

#themeSelector {
    margin-top: 0.5rem;
    padding: 0.4rem;
    border: none;
    border-radius: calc(var(--border-radius-m) / 2);
    font-family: var(--font-family);
    font-size: var(--status-font);
    color: var(--fg);
    background-color: var(--bg);
}

.linkToSource {
    text-decoration: none;
    margin: 2rem;
}

@media (max-width: 1140px) {
    html {
        font-size: 14px;
    }
}

@media (max-width: 768px) {
    html {
        font-size: 12px;
    }

    .mcq {
        width: 100%;
    }

    .main {
        flex-direction: column;
    }

    .stats {
        margin: 0;
        font-size: 1rem;
        text-align: center;
    }

    .timer {
        font-size: calc(var(--status-font) * 2);
        margin-right: 2%;
    }

    .nav-btn {
        width: 10%;
    }

    .panel {
        width: 90%;
        height: 70%;
        background-color: var(--panel-bg);
        backdrop-filter: blur(12px);
        color: var(--panel-fg);
        display: flex;
        flex-direction: column;
        align-items: center;
        /* justify-content: center; */
        font-family: var(--font-family);
        font-size: var(--status-font);
        border-radius: var(--border-radius-m);
        box-shadow: var(--shadow-for-all);
        position: absolute;
        translate: 0 -10%;
        transition: 0.2s;
    }

    .inactive {
        opacity: 0;
        transform: scale(0.8);
        pointer-events: none;
    }

    input[type="checkbox"] {
        width: 1.4rem;
        height: 1.4rem;
        margin: .4rem;
        cursor: pointer;
    }

    #quizDropdown {
        margin-top: 0.5rem;
        padding: 0.8rem;
        border: none;
        border-radius: calc(var(--border-radius-m) / 2);
        font-family: var(--font-family);
        font-size: var(--status-font);
        color: var(--fg);
        background-color: var(--bg);
    }

    :root {
        --question-font: 2rem;
        --option-font: 1.4rem;
        --status-font: 1.2rem;
        --next-font: 1.4rem;
    }

    .question {
        padding: 1.5rem;
    }

    #option {
        padding: 0.3334rem;
    }
}

@media (max-width: 425px) {
    html {
        font-size: 10px;
    }

    .question {
        padding: 1.5rem;
    }

    #option {
        padding: 0.2rem;
    }
}