
        :root {
            --ed-primary: #043033; --ed-navy: #031530; --ed-bg: #FFFFFF;
            --ed-light-bg: #ebf5ff; --ed-accent: #086afe; --ed-border: #e2e8f0;
            --ed-font: 'Outfit', 'Poppins', sans-serif;
        }
        /* Hide Astra site header */
        #ast-desktop-header, .ast-desktop-header-content,
        #masthead, .site-header, header.site-header,
        .ast-above-header-wrap, .ast-below-header-wrap,
        .ast-main-header-wrap { display: none !important; }
        #page { padding-top: 0 !important; margin-top: 0 !important; }

        .ed-login-wrap, .ed-login-wrap * { box-sizing: border-box; }
        .ed-login-wrap {
            display: flex; align-items: center; justify-content: center;
            min-height: 100vh; min-height: 100dvh; background: var(--ed-light-bg);
            font-family: var(--ed-font); margin: -20px -15px; padding: 40px 20px;
            max-width: calc(100% + 30px); overflow-x: clip;
        }
        .ed-login-card {
            background: var(--ed-bg); border: 1px solid var(--ed-border); border-radius: 16px;
            padding: 48px 40px; max-width: 420px !important; min-width: 0; width: 100%;
            box-shadow: 0 4px 24px rgba(0,0,0,0.06); text-align: center;
        }
        .ed-login-logo { width: 180px; margin-bottom: 24px; }
        .ed-login-title { font-size: 22px; font-weight: 600; color: var(--ed-primary); margin: 0 0 8px; }
        .ed-login-sub { font-size: 14px; color: #64748b; margin: 0 0 32px; }
        .ed-login-field {
            width: 100%; padding: 14px 16px; border: 1px solid var(--ed-border); border-radius: 10px;
            font-family: var(--ed-font); font-size: 14px; color: var(--ed-navy);
            outline: none; transition: border-color 0.2s; margin-bottom: 12px; box-sizing: border-box;
        }
        .ed-login-field:focus { border-color: var(--ed-accent); }
        .ed-login-btn {
            width: 100%; padding: 14px; background: var(--ed-primary); color: #fff;
            border: none; border-radius: 10px; font-family: var(--ed-font);
            font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.2s;
        }
        .ed-login-btn:hover { opacity: 0.9; }
        .ed-login-btn:disabled { opacity: 0.6; cursor: not-allowed; }
        .ed-login-back {
            display: inline-block; margin-top: 14px; font-size: 13px;
            color: #64748b; cursor: pointer; text-decoration: underline;
            background: none; border: none; font-family: var(--ed-font);
        }
        .ed-login-back:hover { color: var(--ed-primary); }
        .ed-login-msg {
            border-radius: 8px; padding: 10px 14px; font-size: 13px; margin-bottom: 16px; display: none;
        }
        .ed-login-msg.error { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; animation: edShake 0.5s ease-in-out; }
        .ed-login-msg.success { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }
        .ed-login-msg.show { display: block; }
        .ed-login-spinner {
            display: inline-block; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,0.3);
            border-top-color: #fff; border-radius: 50%; animation: edSpin 0.6s linear infinite;
            vertical-align: middle; margin-right: 6px;
        }
        .ed-code-boxes {
            display: flex; gap: 8px; justify-content: center; margin-bottom: 16px;
        }
        .ed-code-box {
            width: 48px; height: 56px; text-align: center; font-size: 22px;
            font-weight: 700; color: var(--ed-primary); border: 2px solid var(--ed-border);
            border-radius: 10px; outline: none; font-family: var(--ed-font);
            transition: border-color 0.15s;
        }
        .ed-code-box:focus { border-color: var(--ed-accent); }
        @media (max-width: 480px) {
            .ed-login-wrap {
                padding: max(24px, env(safe-area-inset-top)) 12px max(24px, env(safe-area-inset-bottom));
            }
            .ed-login-card { padding: 32px 18px; min-width: 0; }
            .ed-login-logo { width: min(170px, 70vw); }
            .ed-login-field { font-size: 16px; }
            .ed-login-btn, .ed-login-back { min-height: 44px; }
            .ed-code-boxes { width: 100%; gap: 6px; }
            .ed-code-box {
                flex: 1 1 0; width: auto; min-width: 0; max-width: 48px;
                height: 52px; padding: 0; font-size: 20px;
            }
        }
        @media (pointer: coarse) {
            .ed-login-field { font-size: 16px; }
            .ed-login-btn, .ed-login-back { min-height: 44px; touch-action: manipulation; }
        }
        @media (max-height: 500px) and (orientation: landscape) {
            .ed-login-wrap {
                align-items: flex-start;
                padding: max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right))
                    max(8px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
            }
            .ed-login-card { padding: 12px 20px; }
            .ed-login-logo { width: 90px; margin-bottom: 8px; }
            .ed-login-title, #edLoginSub { display: none; }
            .ed-login-sub { margin-bottom: 12px; }
            .ed-login-field {
                min-height: 44px; padding: 10px 12px; margin-bottom: 6px;
                font-size: 16px; line-height: 1.25;
            }
            .ed-code-boxes { margin-bottom: 8px; }
            .ed-code-box { height: 44px; }
            .ed-login-btn { padding: 10px; min-height: 44px; }
            .ed-login-back { margin-top: 4px; min-height: 44px; padding: 0 8px; }
        }
        @keyframes edSpin { to { transform: rotate(360deg); } }
        @keyframes edShake {
            0%, 100% { transform: translateX(0); }
            20% { transform: translateX(-8px); } 40% { transform: translateX(8px); }
            60% { transform: translateX(-6px); } 80% { transform: translateX(6px); }
        }
    