            :root {
                --oe-navy: #0E1A2E;
                --oe-navy-deep: #060D1A;
                --oe-navy-soft: #1F2D47;
                --oe-slate: #4A5C7A;
                --oe-pearl: #F8FAFB;
                --oe-pearl-2: #F0F3F6;
                --oe-pearl-3: #E2E8EE;
                --oe-white: #FFFFFF;
                --oe-line: #E2E8EE;
                --oe-line-soft: #EDF1F5;
                --oe-ink: #0E1A2E;
                --oe-ink-soft: #4A5568;
                --oe-ink-muted: #94A3B8;
                --oe-success: #2F7D5C;
                --oe-danger: #B23A3A;
                --oe-danger-bg: #FCE9E9;
                --shadow-sm: 0 1px 2px rgba(14, 26, 46, 0.04);
                --shadow-md: 0 1px 3px rgba(14, 26, 46, 0.04), 0 8px 24px rgba(14, 26, 46, 0.05);
                --shadow-lg: 0 12px 32px rgba(14, 26, 46, 0.06), 0 32px 80px rgba(14, 26, 46, 0.08);
                --radius-sm: 8px;
                --radius: 10px;
                --radius-lg: 14px;
                --radius-xl: 18px;
            }

            * {
                box-sizing: border-box;
                margin: 0;
                padding: 0;
                -webkit-font-smoothing: antialiased;
                -moz-osx-font-smoothing: grayscale;
            }

            html, body {
                height: 100%;
            }

            body {
                font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
                background: var(--oe-pearl);
                color: var(--oe-ink);
                font-size: 14px;
                line-height: 1.5;
                letter-spacing: -0.005em;
                min-height: 100vh;
                min-height: 100dvh;
                display: flex;
                flex-direction: column;
                position: relative;
                overflow-x: hidden;
            }

            /* ─────────── ambient backdrop ─────────── */
            .bg-grid {
                position: fixed;
                inset: 0;
                pointer-events: none;
                background-image: radial-gradient(ellipse 80% 50% at 50% -10%, rgba(14, 26, 46, 0.05), transparent 60%), radial-gradient(ellipse 60% 40% at 50% 110%, rgba(14, 26, 46, 0.04), transparent 60%);
                z-index: 0;
            }

            .bg-dots {
                position: fixed;
                inset: 0;
                pointer-events: none;
                background-image: radial-gradient(circle, rgba(14,26,46,0.06) 1px, transparent 1px);
                background-size: 28px 28px;
                mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, rgba(0,0,0,0.6), transparent 75%);
                -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, rgba(0,0,0,0.6), transparent 75%);
                z-index: 0;
            }

            .mono {
                font-family: 'JetBrains Mono', monospace;
                font-variant-numeric: tabular-nums;
            }

            .tight {
                font-family: 'Inter Tight', sans-serif;
                letter-spacing: -0.025em;
            }

            /* ─────────── shell ─────────── */
            .shell {
                position: relative;
                z-index: 1;
                flex: 1;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                padding: 32px 20px;
            }

            .brand-lockup {
                display: inline-flex;
                align-items: center;
                text-decoration: none;
                margin-bottom: 18px;
            }

            .brand-svg {
                display: block;
                height: 40px;
                width: auto;
            }

            /* tenant / account context above the card */
            .account-context {
                display: inline-flex;
                align-items: center;
                gap: 10px;
                padding: 7px 14px 7px 10px;
                background: var(--oe-white);
                border: 1px solid var(--oe-line);
                border-radius: 100px;
                box-shadow: var(--shadow-sm);
                margin-bottom: 22px;
                max-width: 100%;
            }

                .account-context .ac-mark {
                    width: 20px;
                    height: 20px;
                    border-radius: 50%;
                    background: var(--oe-navy);
                    color: var(--oe-pearl);
                    display: grid;
                    place-items: center;
                    font-family: 'Inter Tight', sans-serif;
                    font-weight: 700;
                    font-size: 10px;
                    letter-spacing: -0.02em;
                    flex-shrink: 0;
                }

                .account-context .ac-label {
                    font-size: 10px;
                    font-weight: 600;
                    letter-spacing: 0.12em;
                    text-transform: uppercase;
                    color: var(--oe-ink-muted);
                }

                .account-context .ac-name {
                    font-family: 'Inter Tight', sans-serif;
                    font-size: 13px;
                    font-weight: 600;
                    letter-spacing: -0.02em;
                    color: var(--oe-navy);
                    max-width: 22ch;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                }

                .account-context .ac-divider {
                    width: 1px;
                    height: 12px;
                    background: var(--oe-line);
                }

            /* ─────────── card ─────────── */
            .card {
                width: 100%;
                max-width: 420px;
                background: var(--oe-white);
                border: 1px solid var(--oe-line);
                border-radius: var(--radius-xl);
                box-shadow: var(--shadow-lg);
                padding: 36px 36px 32px;
            }

            .eyebrow {
                display: inline-flex;
                align-items: center;
                gap: 8px;
                background: var(--oe-pearl-2);
                border: 1px solid var(--oe-line);
                padding: 5px 11px;
                border-radius: 100px;
                font-size: 10px;
                font-weight: 600;
                letter-spacing: 0.14em;
                text-transform: uppercase;
                color: var(--oe-slate);
                margin-bottom: 18px;
            }

            .eyebrow-dot {
                width: 5px;
                height: 5px;
                background: var(--oe-navy);
                border-radius: 50%;
            }

            .card h1 {
                font-family: 'Inter Tight', sans-serif;
                font-size: 28px;
                font-weight: 600;
                letter-spacing: -0.035em;
                color: var(--oe-navy);
                line-height: 1.1;
                margin-bottom: 8px;
            }

            .card .sub {
                font-size: 14px;
                color: var(--oe-ink-soft);
                margin-bottom: 26px;
            }

            /* ─────────── form ─────────── */
            .field {
                margin-bottom: 16px;
            }

            .field-head {
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 8px;
            }

            .field-label {
                font-size: 11px;
                font-weight: 600;
                letter-spacing: 0.1em;
                text-transform: uppercase;
                color: var(--oe-slate);
            }

            .field-link {
                font-size: 12px;
                font-weight: 500;
                color: var(--oe-navy);
                text-decoration: none;
                letter-spacing: -0.005em;
            }

                .field-link:hover {
                    text-decoration: underline;
                }

            .input-wrap {
                position: relative;
                display: flex;
                align-items: center;
            }

                .input-wrap > i {
                    position: absolute;
                    left: 14px;
                    color: var(--oe-ink-muted);
                    font-size: 15px;
                    pointer-events: none;
                    transition: color 0.18s;
                }

            .form-control {
                width: 100%;
                background: var(--oe-white);
                border: 1px solid var(--oe-line);
                border-radius: var(--radius);
                padding: 13px 14px 13px 42px;
                font-size: 14px;
                font-family: inherit;
                color: var(--oe-ink);
                transition: all 0.18s;
                letter-spacing: -0.005em;
            }

                .form-control::placeholder {
                    color: var(--oe-ink-muted);
                }

                .form-control:hover {
                    border-color: var(--oe-pearl-3);
                }

                .form-control:focus {
                    outline: none;
                    border-color: var(--oe-navy);
                    box-shadow: 0 0 0 4px rgba(14, 26, 46, 0.08);
                }

            .input-wrap:focus-within > i {
                color: var(--oe-navy);
            }

            .toggle-pw {
                position: absolute;
                right: 6px;
                top: 50%;
                transform: translateY(-50%);
                background: transparent;
                border: none;
                color: var(--oe-ink-muted);
                cursor: pointer;
                padding: 8px 10px;
                border-radius: 8px;
                font-size: 15px;
                line-height: 1;
                transition: color 0.18s, background 0.18s;
            }

                .toggle-pw:hover {
                    color: var(--oe-navy);
                    background: var(--oe-pearl-2);
                }

            /* validation */
            .field-validation-error,
            .text-danger {
                display: block;
                margin-top: 6px;
                font-size: 12px;
                font-weight: 500;
                color: var(--oe-danger);
                letter-spacing: -0.005em;
            }

            .input-validation-error {
                border-color: var(--oe-danger) !important;
                background: var(--oe-danger-bg);
            }

                .input-validation-error:focus {
                    box-shadow: 0 0 0 4px rgba(178, 58, 58, 0.12) !important;
                }

            /* summary */
            .validation-summary-errors {
                background: var(--oe-danger-bg);
                border: 1px solid rgba(178, 58, 58, 0.25);
                color: var(--oe-danger);
                border-radius: var(--radius);
                padding: 12px 14px;
                font-size: 13px;
                margin-bottom: 18px;
            }

                .validation-summary-errors ul {
                    list-style: none;
                    padding: 0;
                    margin: 0;
                }

                .validation-summary-errors li + li {
                    margin-top: 4px;
                }

            .validation-summary-valid {
                display: none;
            }

            /* remember row */
            .row-between {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 12px;
                margin: 4px 0 22px;
            }

            .check {
                display: inline-flex;
                align-items: center;
                gap: 10px;
                cursor: pointer;
                user-select: none;
                font-size: 13px;
                color: var(--oe-ink-soft);
            }

                .check input {
                    position: absolute;
                    opacity: 0;
                    pointer-events: none;
                }

                .check .box {
                    width: 18px;
                    height: 18px;
                    border-radius: 6px;
                    border: 1px solid var(--oe-line);
                    background: var(--oe-white);
                    display: grid;
                    place-items: center;
                    transition: all 0.18s;
                    flex-shrink: 0;
                }

                    .check .box i {
                        font-size: 12px;
                        color: var(--oe-pearl);
                        transform: scale(0);
                        transition: transform 0.15s cubic-bezier(.2,.6,.2,1);
                    }

                .check input:checked + .box {
                    background: var(--oe-navy);
                    border-color: var(--oe-navy);
                }

                    .check input:checked + .box i {
                        transform: scale(1);
                    }

                .check input:focus-visible + .box {
                    box-shadow: 0 0 0 4px rgba(14, 26, 46, 0.08);
                }

                .check:hover .box {
                    border-color: var(--oe-slate);
                }

            /* button */
            .btn {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 8px;
                width: 100%;
                padding: 13px 18px;
                font-size: 14px;
                font-weight: 600;
                font-family: inherit;
                border-radius: var(--radius);
                cursor: pointer;
                letter-spacing: -0.01em;
                border: 1px solid var(--oe-navy);
                background: var(--oe-navy);
                color: var(--oe-pearl);
                transition: all 0.18s;
                text-decoration: none;
            }

                .btn:hover {
                    background: var(--oe-navy-soft);
                    border-color: var(--oe-navy-soft);
                    transform: translateY(-1px);
                    box-shadow: 0 6px 16px rgba(14, 26, 46, 0.18);
                }

                .btn:active {
                    transform: translateY(0);
                    box-shadow: 0 2px 6px rgba(14, 26, 46, 0.12);
                }

                .btn i {
                    font-size: 16px;
                }

            /* divider + footer in card */
            .card-foot {
                margin-top: 22px;
                padding-top: 20px;
                border-top: 1px solid var(--oe-line-soft);
                font-size: 13px;
                color: var(--oe-ink-soft);
                text-align: center;
            }

                .card-foot a {
                    color: var(--oe-navy);
                    font-weight: 600;
                    text-decoration: none;
                }

                    .card-foot a:hover {
                        text-decoration: underline;
                    }

            /* page foot */
            .page-foot {
                position: relative;
                z-index: 1;
                padding: 20px;
                text-align: center;
                font-size: 11px;
                color: var(--oe-ink-muted);
                letter-spacing: 0.02em;
            }

                .page-foot .mono {
                    font-size: 10px;
                }

            /* ─────────── responsive ─────────── */
            @media (max-width: 480px) {
                .shell {
                    padding: 24px 16px;
                    justify-content: flex-start;
                    padding-top: 48px;
                }

                .card {
                    padding: 28px 22px 24px;
                    border-radius: 16px;
                }

                    .card h1 {
                        font-size: 24px;
                    }

                .brand-svg {
                    height: 36px;
                }

                .form-control {
                    padding: 12px 14px 12px 40px;
                    font-size: 16px;
                }
                /* 16px prevents iOS zoom */
            }

            @media (max-height: 720px) and (min-width: 481px) {
                .shell {
                    padding-top: 40px;
                    padding-bottom: 40px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                * {
                    transition: none !important;
                    animation: none !important;
                }
            }
