:root {
    /* Color Dictionary */
    --color-text-primary: white;
    --color-text-secondary: #888;
    /* Link Colors */
    --color-link: #4CB7FF;
    --color-link-hover: #66C1FF;
    /* Discord Brand Colors */
    --color-discord: #5865F2DD;
    --color-discord-hover: #6373EDDD;
    /* Ko-fi Brand Colors */
    --color-kofi: #FF4F19DD;
    --color-kofi-hover: #FF6433DD;
    --color-kofi-open: #FF8966DD;
    /* Blue Button Variant Colors */
    --color-blue: #1E72CCDD;
    --color-blue-hover: #2B7FD4DD;
    --color-blue-active: #3A8CDDDD;
    /* Yellow Button Variant Colors */
    --color-yellow: #FFCC11AA;
    --color-yellow-hover: #FFD633BB;
    --color-yellow-active: #FFE055BB;
    /* Button Colors */
    --color-button-bg: #2228;
    --color-button-bg-hover: #333A;
    --color-button-bg-active: #333C;
    --color-button-bg-disabled: #3334;
    --color-button-border: #FFF3;
    /* Input Colors */
    --color-input-border: #333;
    --color-input-border-hover: #444;
    --color-input-bg: #1A1A1A;
    --color-input-bg-hover: #222;
    /* Modal Colors */
    --color-modal-bg: #111C;
}

@import url('PTMono-Regular.ttf');

@font-face {
    font-family: 'Rubik';
    src: url('Rubik-VariableFont_wght.ttf');
}

html, body {
    font-family: "Rubik";
    font-optical-sizing: auto;
    font-style: normal;
    margin: 0;
    padding: 0;
    font-size: 18px;
    color: var(--color-text-primary);
}

body {
    overflow-x: hidden;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

button, input[type=submit], input[type=button] {
    all: unset;
}

a {
    color: var(--color-link);
    text-decoration: none;
}

    a:hover {
        color: var(--color-link-hover);
        text-decoration: underline;
    }

.reu-container {
    padding: 1rem;
    width: 75%;
    margin-right: auto;
    margin-left: auto;
    transition: width 0.2s ease, padding 0.2s ease;
}

main.reu-main {
    flex: 1;
}

@media (max-width: 850px) {
    .reu-container {
        width: calc(100% - 3rem);
    }
}

.reu-discord {
    background-color: var(--color-discord) !important;
}

    .reu-discord:hover {
        background-color: var(--color-discord-hover) !important;
    }

.reu-kofi {
    background-color: var(--color-kofi) !important;
    cursor: pointer;
}

    .reu-kofi:hover {
        background-color: var(--color-kofi-hover) !important;
    }

    .reu-kofi.open {
        background-color: var(--color-kofi-open) !important;
    }



.reu-button, input[type=submit], input[type=button] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-primary);
    background: var(--color-button-bg);
    border-bottom: 2px solid var(--color-button-border);
    border-radius: 4px;
    text-decoration: none;
    transition: background-color 0.05s ease;
    padding: 10px 5px;
    cursor: pointer;
}

    .reu-button:hover, input[type=submit]:hover, input[type=button]:hover {
        background-color: var(--color-button-bg-hover);
        color: var(--color-text-primary);
        text-decoration: none;
    }

    .reu-button.active {
        background-color: var(--color-button-bg-active);
    }

    .reu-button.disabled, .reu-button:disabled, input[type=submit]:disabled, input[type=button]:disabled {
        background-color: var(--color-button-bg-disabled);
        color: var(--color-text-secondary);
        cursor: not-allowed;
    }

.reu-button-blue {
    background-color: var(--color-blue);
}

    .reu-button-blue:hover:enabled, .reu-button-blue:hover:not(.disabled) {
        background-color: var(--color-blue-hover);
    }

    .reu-button-blue.active {
        background-color: var(--color-blue-active);
    }

.reu-button-yellow {
    background-color: var(--color-yellow);
}

    .reu-button-yellow:hover:enabled, .reu-button-yellow:hover:not(.disabled) {
        background-color: var(--color-yellow-hover);
    }

    .reu-button-yellow.active {
        background-color: var(--color-yellow-active);
    }

.reu-center {
    display: flex;
    flex-direction: column;
    align-items: center;
}

input[type=text],
input.text,
select,
input[type=date],
input[type=color],
input[type=datetime-local],
input[type=time],
input[type=month],
input[type=password],
input[type=search],
input[type=week],
input[type=url],
input[type=tel],
input[type=email],
input[type=number] {
    border: 1px solid var(--color-input-border);
    border-radius: 5px;
    font-family: inherit;
    color: inherit;
    padding: 2px 10px;
    background-color: var(--color-input-bg);
    font-size: inherit;
    color-scheme: dark;
}

    input[type=text]:hover,
    input.text:hover,
    select:hover,
    input[type=date]:hover,
    input[type=datetime-local]:hover,
    input[type=color]:hover,
    input[type=time]:hover,
    input[type=month]:hover,
    input[type=password]:hover,
    input[type=search]:hover,
    input[type=week]:hover,
    input[type=url]:hover,
    input[type=tel]:hover,
    input[type=email]:hover,
    input[type=number]:hover {
        border-color: var(--color-input-border-hover);
        background-color: var(--color-input-bg-hover);
    }

progress {
    border: 1px solid var(--color-input-border);
    border-radius: 5px;
}
    progress::-webkit-progress-bar {
        border-radius: 5px;
        background-color: var(--color-input-bg);
    }

    progress::-webkit-progress-value {
        border-radius: 5px;
        background-color: var(--color-blue);
    }

    progress::-moz-progress-bar {
        border-radius: 0px !important;
        background-color: var(--color-blue);
    }

footer.reu-footer {
    background: var(--color-input-bg);
}

    footer.reu-footer small {
        color: var(--color-text-secondary);
    }

.footer-discover-more {
    margin-top: 1rem;
    display: flex;
    gap: 0.5rem 1rem;
    flex-wrap: wrap;
    font-size: 75%;
}

#components-reconnect-modal {
    display: none;
    background-color: var(--color-modal-bg);
    text-align: center;
    position: fixed;
    top: 0;
    z-index: 10001;
    width: calc(100% - 4rem);
    height: calc(100vh - 4rem);
    align-items: center;
    justify-content: center;
    animation: fadeIn 0.5s;
    flex-direction: column;
    gap: 20px;
    padding: 2rem;
}

    #components-reconnect-modal.components-reconnect-show,
    #components-reconnect-modal.components-reconnect-failed,
    #components-reconnect-modal.components-reconnect-rejected {
        display: flex;
    }

    #components-reconnect-modal .reu-connection-lost {
        font-size: 200%
    }

    #components-reconnect-modal .reu-connection-lost-detail {
        font-size: 75%;
        color: var(--color-text-secondary);
    }

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}