@media (prefers-color-scheme: light) {
    :root {
        --primaryWaveColor: #220022ff;
        --secondaryWaveColor: #000066ff;
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --primaryWaveColor: #331e09;
        --secondaryWaveColor: #151516ff;
    }
}

@keyframes wave-animation {
    0% {
        background-position: 0 0, 0 0;
    }
    100% {
        background-position: 100vw 0, 0 0;
    }
}

html {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 460 55'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23fff' stroke-width='7' opacity='.1'%3E%3Cpath d='M-345 34.5s57.5-13.8 115-13.8 115 13.8 115 13.8S-57.5 48.3 0 48.3s115-13.8 115-13.8 57.5-13.8 115-13.8 115 13.8 115 13.8 57.5 13.8 115 13.8 115-13.8 115-13.8'/%3E%3Cpath d='M-345 20.7s57.5-13.8 115-13.8 115 13.8 115 13.8S-57.5 34.5 0 34.5s115-13.8 115-13.8S172.5 6.9 230 6.9s115 13.8 115 13.8 57.5 13.8 115 13.8 115-13.8 115-13.8m-920 27.6s57.5-13.8 115-13.8 115 13.8 115 13.8S-57.5 62.1 0 62.1s115-13.8 115-13.8 57.5-13.8 115-13.8 115 13.8 115 13.8 57.5 13.8 115 13.8 115-13.8 115-13.8'/%3E%3Cpath d='M-345 6.9s57.5-13.8 115-13.8S-115 6.9-115 6.9-57.5 20.7 0 20.7 115 6.9 115 6.9 172.5-6.9 230-6.9 345 6.9 345 6.9s57.5 13.8 115 13.8S575 6.9 575 6.9'/%3E%3Cpath d='M-345-6.9s57.5-13.8 115-13.8S-115-6.9-115-6.9-57.5 6.9 0 6.9 115-6.9 115-6.9s57.5-13.8 115-13.8S345-6.9 345-6.9 402.5 6.9 460 6.9 575-6.9 575-6.9m-920 69s57.5-13.8 115-13.8 115 13.8 115 13.8S-57.5 75.9 0 75.9s115-13.8 115-13.8 57.5-13.8 115-13.8 115 13.8 115 13.8 57.5 13.8 115 13.8 115-13.8 115-13.8'/%3E%3C/g%3E%3C/svg%3E%0A"),
    linear-gradient(80deg, var(--primaryWaveColor), var(--secondaryWaveColor));
    background-position: 50% 50%;
    background-size: 100vw auto, 100% 100%;
    animation: wave-animation 16s linear infinite;
}

body {
    background: none;
}

/* Viewport */
#Viewport {
    height: 100vh;
    width: 100vw;
    padding: 0;
}

#Logo {
    width: 12rem;
}

#SignInTitle {
    display: block;
    font: var(--accent-text-font);
    font-size: 1.8rem;
    text-align: center;
    color: var(--text-color);
}

.line {
    width: 100%;
    text-align: center;
    border: var(--border);
    border-radius: 2px;
    border-width: 1px;
}

#InputForm {
    background-color: var(--theme-color-level-1);
    width: 25rem;
    min-height: 25vh;
    border-radius: 0.6rem;
}

.text-field-label {
    font: var(--text-font);
    font-size: 0.9rem;
    color: var(--text-color);
}

.text-field {
    font: var(--accent-text-font);
    font-size: 1rem;
    background-color: var(--theme-color-level-2);
    color: var(--accent-text-color);
    border: var(--border);
    border-radius: 0.5rem !important;
    width: 100%;
    margin-top: 0.2rem;
    padding: 0.3rem 0.4rem 0.3rem 0.4rem;
}

.error-text-field {
    border-color: red;
}

#ForgotPasswordLink {
    font: var(--text-font);
    font-size: 0.9rem;
    color: var(--link-color);
}

#ForgotPasswordLink:hover {
    cursor: pointer;
    text-decoration: underline !important;
}

#ErrorBox {
    background-color: var(--theme-color-level-2);
    border: var(--border);
    border-radius: 0.6rem;
    border-color: red;
}

#ErrorLabel {
    position: absolute;
    font: var(--text-font);
    font-size: 0.9rem;
    color: var(--text-color);
    margin-top: calc(-0.45rem - 2px);
    padding: 0 0.45rem 0 0.45rem;
    background-color: var(--theme-color-level-2);
}

#ErrorText {
    font: var(--text-font);
    font-size: 0.85rem;
    color: var(--text-color);
    padding: calc(0.75rem + 2px) 0 0.75rem 0;
}

#SignInButton {
    font: var(--text-font);
    font-size: 1rem;
    color: white;
    background-color: var(--button-color);
    width: 100%;
    border: none;
    border-radius: 0.5rem;
    padding: calc(0.3rem + 4px) 0.3rem 0.3rem 0.3rem;
    transition: 0.25s;
}

#SignInButton:hover {
    background-color: var(--accent-button-color);
}

#OrText {
    position: absolute;
    font: var(--accent-text-font);
    font-size: 1rem;
    color: var(--accent-text-color);
    background-color: var(--theme-color-level-1);
    left: calc(50% - 0.5rem - 0.7rem);
    top: calc(-0.5rem - 2px);
    padding: 0 0.7rem 0 0.7rem;
}

#SignInText {
    font: var(--accent-text-font);
    font-size: 0.9rem;
    color: var(--accent-text-color);
    margin: 0;
}

#SignInLink {
    font: var(--text-font);
    font-size: 0.9rem;
    color: var(--link-color);
}

#SignInLink:hover {
    cursor: pointer;
    text-decoration: underline !important;
}