body {
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 20px;
            min-height: 100vh;
        }

        .login-container {
            width: 100%;
            max-width: 420px;
            position: relative;
            z-index: 2;
        }

        .logo {
            text-align: center;
            margin-bottom: 32px;
        }


        .logo h1 {
            margin-bottom: 8px;
            font-size: var(--fs-panel);
            line-height: var(--lh-panel);
        }

        .logo .subtitle {
            color: var(--text-tertiary);
            font-size: 14px;
        }

        .login-card {
            padding: 40px;
        }

        .demo-info {
            background: rgba(62, 99, 221, 0.08);
            padding: 16px;
            border-radius: var(--radius-xs);
            margin-bottom: 24px;
            font-size: 13px;
            color: var(--text-secondary);
            border: 1px solid rgba(62, 99, 221, 0.15);
        }

        .demo-info strong {
            color: var(--text-primary);
            display: block;
            margin-bottom: 8px;
        }

        .error-message {
            background: rgba(220, 38, 38, 0.1);
            color: var(--coral);
            padding: 12px;
            border-radius: var(--radius-xs);
            margin-bottom: 20px;
            text-align: center;
            font-size: 14px;
            display: none;
            border: 1px solid rgba(220, 38, 38, 0.2);
        }

        .success-message {
            background: rgba(22, 163, 74, 0.1);
            color: var(--green);
            padding: 12px;
            border-radius: var(--radius-xs);
            margin-bottom: 20px;
            text-align: center;
            font-size: 14px;
            display: none;
            border: 1px solid rgba(22, 163, 74, 0.2);
        }

        .form-group {
            position: relative;
            margin-bottom: 18px;
        }

        .form-icon {
            position: absolute;
            left: 14px;
            top: 50%;
            transform: translateY(-50%);
            font-size: 16px;
            z-index: 1;
            opacity: 0.6;
        }

        .form-control {
            padding-left: 44px;
        }

        .back-link {
            text-align: center;
            margin-top: 24px;
        }

        .back-link a {
            color: var(--accent);
            text-decoration: none;
            font-size: 14px;
            font-weight: 500;
            transition: color 0.2s ease;
        }

        .back-link a:hover {
            color: var(--accent-hover);
        }

        .loading {
            display: none;
            text-align: center;
            margin-top: 16px;
        }

        .spinner {
            border: 3px solid rgba(0, 0, 0, 0.06);
            border-top: 3px solid var(--accent);
            border-radius: 50%;
            width: 32px;
            height: 32px;
            animation: spin 0.8s linear infinite;
            margin: 0 auto 12px;
        }

        .loading p {
            font-size: 14px;
            color: var(--text-tertiary);
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        /* Single sign-in form (Phase 6) */
        .signin-form {
            display: grid;
            gap: 14px;
        }

        .signin-field {
            display: grid;
            gap: 6px;
        }

        .signin-field[hidden] {
            display: none;
        }

        .signin-field > span {
            font-size: 12px;
            font-weight: 600;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            color: var(--text-tertiary);
        }

        .signin-field .glass-input {
            width: 100%;
        }

        .signin-hint {
            font-size: 12px;
            color: var(--text-tertiary);
            margin: 0;
        }

        .signin-submit {
            width: 100%;
        }

        .signin-error {
            background: rgba(220, 38, 38, 0.1);
            color: var(--coral);
            padding: 12px;
            border-radius: var(--radius-xs);
            text-align: center;
            font-size: 14px;
            border: 1px solid rgba(220, 38, 38, 0.2);
        }

        .signin-guest-links {
            display: flex;
            justify-content: center;
            gap: 14px;
            margin-top: 24px;
            padding-top: 18px;
            border-top: 1px solid rgba(0, 0, 0, 0.06);
            font-size: 14px;
        }

        .signin-guest-links span {
            color: var(--text-tertiary);
        }

        .signin-guest-links a {
            color: var(--accent);
            text-decoration: none;
            font-weight: 500;
        }

        .signin-guest-links a:hover {
            color: var(--accent-hover);
        }

        @media (max-width: 768px) {
            .login-card {
                padding: 32px 24px;
            }

            .logo h1 {
                font-size: 24px;
            }

            .logo-icon {
                font-size: 48px;
            }
        }

        @media (max-width: 480px) {
            .login-card {
                padding: 28px 18px;
            }

            .login-card .btn,
            .login-card .btn-primary {
                min-height: 44px;
            }
        }


/* ============================================================
   Blue glass world (matches admin + home): immersive scene,
   heavy-frost card, intense blue primary.
   ============================================================ */

body {
    background: linear-gradient(165deg, #C7D8F8 0%, #A8C2F3 45%, #8FACEE 100%);
}

.mesh-1 {
    background: radial-gradient(circle, rgba(255, 255, 255, 0.60) 0%, rgba(190, 212, 255, 0.25) 50%, transparent 72%);
    top: -16%; right: -10%; left: auto;
}

.mesh-2 {
    background: radial-gradient(circle, rgba(47, 107, 255, 0.55) 0%, rgba(47, 107, 255, 0.22) 52%, transparent 74%);
    top: 14%; left: -16%; right: auto;
}

.mesh-3 {
    background: radial-gradient(circle, rgba(249, 115, 22, 0.50) 0%, rgba(249, 115, 22, 0.20) 52%, transparent 72%);
    bottom: -12%; left: 14%;
}

.mesh-4 {
    background: radial-gradient(circle, rgba(30, 64, 175, 0.42) 0%, transparent 72%);
    bottom: 8%; right: -8%; top: auto;
}

.mesh-5 {
    background: radial-gradient(circle, rgba(147, 183, 255, 0.38) 0%, transparent 68%);
    top: 50%; left: 44%;
}

.logo h1 {
    color: #FFFFFF;
    text-shadow: 0 2px 14px rgba(30, 50, 120, 0.45);
}

.logo .subtitle {
    color: rgba(255, 255, 255, 0.88);
    text-shadow: 0 1px 10px rgba(30, 50, 120, 0.40);
}

.login-card.glass-card {
    background: rgba(255, 255, 255, 0.45);
    backdrop-filter: blur(30px) saturate(1.6);
    -webkit-backdrop-filter: blur(30px) saturate(1.6);
    border: 1.5px solid rgba(255, 255, 255, 0.85);
    border-top-color: rgba(255, 255, 255, 1);
    box-shadow:
        0 24px 60px rgba(42, 74, 165, 0.30),
        0 6px 18px rgba(42, 74, 165, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

.login-card .glass-input {
    background: rgba(255, 255, 255, 0.78);
    border-color: rgba(255, 255, 255, 0.95);
}

.login-card .glass-input:focus {
    background: rgba(255, 255, 255, 0.92);
}
