:root {
    --red: rgb(202, 113, 113);
    --green: rgb(89, 166, 102);
    --text-dark: rgb(21, 21, 23);
    --text: #D8D8F6;
    --background: #2C2C34;
    --purple: #B18FCF;
    --purple-dark: #655276;
    --purple-darker: #2d173f;
    --gray: #363636;
}

body {
    margin: 0;
    background-color: var(--background);
    font-family: "Open Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 800;
    font-style: normal;
    font-variation-settings:
        "wdth"200;
    color: var(--text);
}

button {
    font-family: "Open Sans", sans-serif;
    font-weight: 800;
    font-size: 40px;
    background-color: var(--purple);
    color: var(--background);
    border: none;
    border-radius: 15px;
    padding-left: 20px;
    padding-right: 20px;
    padding-top: 10px;
    padding-bottom: 10px;
    filter: drop-shadow(0 0 30px var(--purple));
}

button:active {
    filter: brightness(.8);
}

button:hover {
    cursor: pointer;
}

button:disabled {
    background-color: var(--background);
    color: var(--gray);
}


input[type=password] {
    background-color: var(--purple);
    color: var(--text);
    font-size: 30px;
    border: none;
    padding: 3px;
    border-radius: 10px;
    filter: drop-shadow(0 0 20px --purple-dark);
}

input[type=password]:focus {
    outline: none;
    background-color: var(--purple-dark);
}

h1 {
    font-size: 25px;
    margin: 0;
    filter: drop-shadow(0 0 20px var(--text));
    text-align: center;
}

h2 {
    margin: 0;
    filter: drop-shadow(0 0 20px var(--text));
    text-align: center;
}

.page {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    display: none;
}

#app {
    box-sizing: border-box;
    width: 100vw;
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    padding: 10px;
    gap: 20px;
}

.topButtons {
    box-sizing: border-box;
    padding-left: 30px;
    padding-right: 30px;
    width: 100vw;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 30px;
}

.topButtons button {
    filter: unset;
}

.topButtons button img {
    width: 100px;
    height: 100px;
}

.errorHolder {
    width: 100vw;
    position: fixed;
    bottom: 10px;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

#error {
    font-size: 12px;
    color: var(--red);
}

#appContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
}

.app {
    box-sizing: content-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    padding: 20px;
    border-radius: 10px;
    max-width: 80vw;
    overflow-x: scroll;
}

.appRow {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: stretch;
    gap: 20px;
    overflow-x: scroll;
}

.appButton {
    font-size: 12px;
    filter: unset;
}

.label {
    font-size: 12px;
    margin: 0;
}

.hiddenInput {
    background-color: transparent;
    color: var(--text);
    outline: none;
    border: none;
    padding: 0;
    font-family: 'Courier New', Courier, monospace;
    font-size: 14px;
    margin: 0;
}

.labelHolder {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

@media (orientation: portrait) {
    .appRow {
        flex-direction: column;
        gap: 5px;
    }
    .hiddenInput {
        width: 80vw;
    }
    .app {
    max-width: 90vw;
    width: 90vw;
    }
    .appButton {
        width: 80vw;
    }
}