body.login-page {
    --login-accent: #4f8ef7;
    --login-accent-strong: #3c79db;
    --login-accent-soft: rgba(79, 142, 247, 0.2);
    --login-logo-wave: #e31937;
    --login-wordmark: #7a85a3;
    --login-bg-primary: #0f172a;
    --login-bg-secondary: #162033;
    --login-text-primary: #e9edf5;
    --login-text-secondary: #a7b2c5;
    --login-input-bg: rgba(255, 255, 255, 0.06);
    --login-input-border: rgba(79, 142, 247, 0.22);
    --login-autofill-bg: #282b30;
    --login-button-text: #ffffff;
    --vibrant-pink: var(--login-accent);
    --muted-pink: var(--login-accent-strong);
    --bg-primary: var(--login-bg-primary);
    --bg-secondary: var(--login-bg-secondary);
    --text-primary: var(--login-text-primary);
    --text-secondary: var(--login-text-secondary);
    --input-bg: var(--login-input-bg);
    --border-color: var(--login-input-border);
    background-color: var(--login-bg-primary);
    background-image:
        radial-gradient(circle at top, rgba(79, 142, 247, 0.14), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 30%);
}

body.login-page.light-mode {
    --login-accent: #3d7df0;
    --login-accent-strong: #295fc2;
    --login-accent-soft: rgba(61, 125, 240, 0.16);
    --login-wordmark: #71809c;
    --login-bg-primary: #f4f7fc;
    --login-bg-secondary: #ffffff;
    --login-text-primary: #101828;
    --login-text-secondary: #526071;
    --login-input-bg: #ffffff;
    --login-input-border: rgba(61, 125, 240, 0.2);
    --login-autofill-bg: #ffffff;
    --login-button-text: #ffffff;
    background-image:
        radial-gradient(circle at top, rgba(61, 125, 240, 0.1), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.65), transparent 30%);
}

.login-theme-toggle {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1030;
}

.login-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 40px 0;
}

.login-logo-lockup {
    display: inline-flex;
    align-items: center;
    gap: 0;
    position: relative;
}

.login-logo-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
}

.login-logo-word,
.login-logo-io {
    font-family: monospace;
    line-height: 1;
}

.login-logo-word {
    font-size: 52px;
    font-weight: 300;
    color: var(--login-wordmark);
    letter-spacing: 0.05em;
}

.login-logo-wave {
    display: block;
    margin-top: 4px;
}

.login-logo-wave path {
    stroke: var(--login-logo-wave);
}

.login-logo-divider {
    width: 1.5px;
    height: 110px;
    margin: 0 20px;
    flex-shrink: 0;
    background: var(--login-accent);
}

.login-logo-io {
    font-size: 88px;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--login-accent);
}

.form-signin {
    max-width: 330px;
    padding: 1rem;
}

.form-signin #clinic_code {
    margin-bottom: -1px;
    border-top-right-radius: 1rem;
    border-top-left-radius: 1rem;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
}

.form-signin #username {
    margin-top: -1px;
    margin-bottom: -1px;
    border-radius: 0;
}

.form-signin #password {
    margin-top: -1px;
    border-top-right-radius: 0;
    border-top-left-radius: 0;
    border-bottom-right-radius: 1rem;
    border-bottom-left-radius: 1rem;
}

body.login-page .form-signin .form-control {
    background-color: var(--login-input-bg);
    color: var(--login-text-primary);
    border-color: var(--login-input-border);
}

body.login-page .form-signin .form-control::placeholder {
    color: var(--login-text-secondary);
    opacity: 1;
}

body.login-page .form-signin .form-control:focus {
    border-color: var(--login-accent);
    box-shadow: 0 0 0 0.2rem var(--login-accent-soft);
}

body.login-page .form-signin input:-webkit-autofill,
body.login-page .form-signin input:-webkit-autofill:hover,
body.login-page .form-signin input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--login-text-primary) !important;
    -webkit-box-shadow: 0 0 0 1000px var(--login-autofill-bg) inset !important;
    border-color: var(--login-input-border) !important;
    caret-color: var(--login-text-primary);
}

body.login-page .login-btn {
    background-color: var(--login-accent);
    border-color: var(--login-accent);
    color: var(--login-button-text);
}

body.login-page .login-btn:hover,
body.login-page .login-btn:focus,
body.login-page .login-btn:active {
    background-color: var(--login-accent-strong);
    border-color: var(--login-accent-strong);
    color: var(--login-button-text);
}

@media (max-width: 575.98px) {
    .login-theme-toggle {
        top: 16px;
        right: 16px;
    }

    .login-logo-word {
        font-size: 40px;
    }

    .login-logo-wave {
        width: 152px;
        height: 28px;
    }

    .login-logo-divider {
        height: 84px;
        margin: 0 14px;
    }

    .login-logo-io {
        font-size: 66px;
    }
}
