body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 20% 20%, rgba(31, 99, 145, 0.18), transparent 45%),
        radial-gradient(circle at 80% 80%, rgba(190, 58, 50, 0.10), transparent 40%),
        var(--cg-body-bg);
    padding: 16px;
}
.login-container {
    background: var(--cg-surface);
    border: 1px solid var(--cg-border);
    border-radius: var(--bs-border-radius-lg);
    box-shadow: var(--cg-shadow-2);
    padding: 36px 32px;
    width: 100%;
    max-width: 400px;
}
.login-header { text-align: center; margin-bottom: 24px; }
.login-logo {
    width: 56px; height: 56px; margin: 0 auto 10px; border-radius: 12px; overflow: hidden;
}
.login-logo img { display: block; width: 100%; height: 100%; }
.login-header h1 { font-size: 1.4rem; font-weight: 700; margin-bottom: 4px; }
.login-header p { color: var(--cg-text-muted); margin: 0; }
.btn-login { background: var(--primary-accent); border: none; padding: 12px; font-weight: 600; }
.btn-login .loading { display: none; }
.btn-login.is-loading .login-text { display: none; }
.btn-login.is-loading .loading { display: inline; }
.login-footnote { color: var(--cg-text-muted); font-size: 0.78rem; text-align: center; margin: 0; }
.login-theme-toggle {
    position: fixed; top: 14px; right: 14px; border: 1px solid var(--cg-border);
    background: var(--cg-surface); color: var(--cg-text-muted); border-radius: 999px;
    width: 38px; height: 38px;
}

/* Phones: the sign-in is the app's first screen, not a box on a page. */
@media (max-width: 575.98px) {
    body { align-items: stretch; padding: 0; }
    .login-container {
        border: 0; box-shadow: none; background: transparent; max-width: none;
        display: flex; flex-direction: column; justify-content: center;
        padding: calc(48px + env(safe-area-inset-top, 0px)) 24px calc(32px + env(safe-area-inset-bottom, 0px));
        animation: app-rise 0.5s var(--app-ease) both;
    }
    .login-header { margin-bottom: 32px; }
    .login-logo {
        width: 76px; height: 76px; border-radius: 18px;
        box-shadow: 0 12px 28px rgba(31, 99, 145, 0.35);
    }
    .login-header h1 { font-size: 1.8rem; }
    .login-container .form-control, .login-container .input-group-text, .login-container .input-group .btn {
        min-height: 54px; font-size: 16px; background: var(--cg-surface);
    }
    .login-container .input-group > :first-child { border-radius: 14px 0 0 14px; }
    .login-container .input-group > :last-child { border-radius: 0 14px 14px 0; }
    .btn-login { min-height: 56px; border-radius: 16px; font-size: 1.05rem; box-shadow: 0 8px 20px rgba(31, 99, 145, 0.25); }
    .btn-login:active { transform: scale(0.97); }
    .login-theme-toggle { top: calc(14px + env(safe-area-inset-top, 0px)); width: 42px; height: 42px; }
}
