<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="robots" content="noindex, nofollow">
    
    <meta name="csrf-token" content="3GTvEQqdYpuHzvwGhpneQff2fV5iENZvFgfZsOcA">
    <title>Two-step verification — BITMED</title>
    <script>
        // Resolve the theme before first paint so there is no flash of the
        // wrong palette. An explicit choice is remembered; otherwise the
        // operating-system preference is honoured.
        (function () {
            try {
                var saved = window.localStorage.getItem('bitmed-theme');
                if (saved !== 'light' && saved !== 'dark') {
                    saved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
                }
                document.documentElement.setAttribute('data-theme', saved);
            } catch (error) {
                document.documentElement.setAttribute('data-theme', 'light');
            }
        })();
    </script>
    <link rel="preload" href="/assets/fonts/InterVariable.woff2" as="font" type="font/woff2" crossorigin>
    <link rel="stylesheet" href="/assets/css/bitmed.css">
</head>
<body>
<a class="skip-link" href="#main-content">Skip to main content</a>

<div class="app" data-nav="closed" id="app-shell">
    <aside class="app__sidebar" aria-label="Primary navigation">
        <a class="app__brand" href="http://127.0.0.1:8010/dashboard">
            <span class="app__brand-mark" aria-hidden="true">B</span>
            <span class="app__brand-text">
                BITMED
                <span class="app__brand-sub">
                    Lagos Family Clinic
                </span>
            </span>
        </a>

        <nav class="app__nav">
                            <div class="app__nav-group">
                    <div class="app__nav-heading">
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#home"></use></svg>
                                                Overview
                    </div>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/dashboard"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#layout-dashboard"></use></svg>
                                                        <span>Dashboard</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/patients"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#users"></use></svg>
                                                        <span>Patients</span>
                                                    </a>
                                    </div>
                            <div class="app__nav-group">
                    <div class="app__nav-heading">
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#heart-pulse"></use></svg>
                                                Care
                    </div>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/appointments"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#calendar"></use></svg>
                                                        <span>Appointments</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/queue"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#list-check"></use></svg>
                                                        <span>Queue</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/calendar"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#calendar-days"></use></svg>
                                                        <span>Calendar</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/encounters"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#clipboard-list"></use></svg>
                                                        <span>Encounters</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/patients//record"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#file-medical"></use></svg>
                                                        <span>Clinical records</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/results"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#flask-conical"></use></svg>
                                                        <span>Results review</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/referrals"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#arrow-right-circle"></use></svg>
                                                        <span>Referrals</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/cds"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#brain"></use></svg>
                                                        <span>Decision support</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/results/deliveries"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#send"></use></svg>
                                                        <span>Result deliveries</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/specimens"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#test-tube"></use></svg>
                                                        <span>Specimens</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/specimens/process"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#microscope"></use></svg>
                                                        <span>Processing &amp; QC</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/drug-administrations"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#pill"></use></svg>
                                                        <span>Drug administration</span>
                                                    </a>
                                    </div>
                            <div class="app__nav-group">
                    <div class="app__nav-heading">
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bed"></use></svg>
                                                Admission
                    </div>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/beds"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bed"></use></svg>
                                                        <span>Bed management</span>
                                                    </a>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/wards"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#building"></use></svg>
                                                        <span>Wards</span>
                                                    </a>
                                    </div>
                            <div class="app__nav-group">
                    <div class="app__nav-heading">
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#help-circle"></use></svg>
                                                Assistance
                    </div>
                                            <a class="app__nav-link"
                           href="http://127.0.0.1:8010/ask"
                           >
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bot"></use></svg>
                                                        <span>Ask BITMED AI</span>
                                                    </a>
                                    </div>
                    </nav>

        <div class="app__sidebar-foot">
            <button class="theme-toggle" type="button" aria-pressed="false">
                <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#moon"></use></svg>
                <span class="theme-toggle__label">Dark mode</span>
            </button>
        </div>
    </aside>

    <div class="app__main">
        <header class="app__topbar">
            <button class="app__nav-toggle" type="button" aria-expanded="false" aria-controls="app-shell">
                <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#menu"></use></svg>
                <span>Menu</span>
            </button>

                            <form class="topbar-search" role="search" method="get" action="http://127.0.0.1:8010/patients">
                    <svg class="topbar-search__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#search"></use></svg>
                    <label class="visually-hidden" for="topbar-search-input">Search patients</label>
                    <input id="topbar-search-input" type="search" name="q" value=""
                           placeholder="Search patients by name or MRN" autocomplete="off">
                </form>
            
            <div class="app__topbar-spacer"></div>

                            <div class="topbar-actions">
                                            <details class="menu add-menu">
                            <summary class="btn btn--dark">
                                <svg class="btn-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#plus"></use></svg>
                                <span>Add</span>
                            </summary>
                            <div class="menu__panel">
                                                                    <a class="menu__item" href="http://127.0.0.1:8010/patients/new">
                                        <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#user-plus"></use></svg>
                                        <span>Register patient</span>
                                    </a>
                                                                    <a class="menu__item" href="http://127.0.0.1:8010/patients">
                                        <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#search"></use></svg>
                                        <span>Find a patient</span>
                                    </a>
                                                                    <a class="menu__item" href="http://127.0.0.1:8010/patients//record">
                                        <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#heart-pulse"></use></svg>
                                        <span>Record vitals</span>
                                    </a>
                                                            </div>
                        </details>
                    
                    <button class="icon-btn" type="button" aria-disabled="true"
                            title="Direct messaging is not part of this build yet.">
                        <svg class="icon-btn__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#message"></use></svg>
                        <span class="visually-hidden">Messages — not available in this build</span>
                    </button>

                    <button class="icon-btn" type="button" aria-disabled="true"
                            title="Notification centre is not part of this build yet.">
                        <svg class="icon-btn__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bell"></use></svg>
                        <span class="visually-hidden">Notifications — not available in this build</span>
                    </button>

                    <a class="icon-btn" href="http://127.0.0.1:8010/settings/two-step" title="Account settings">
                        <svg class="icon-btn__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#settings"></use></svg>
                        <span class="visually-hidden">Account settings</span>
                    </a>

                                        <details class="menu user-menu">
                        <summary class="user-chip">
                            <span class="user-avatar" aria-hidden="true">HY</span>
                            <span class="user-chip__meta">
                                <strong>Halima Yusuf</strong>
                                <span>Nurse</span>
                            </span>
                            <svg class="user-chip__caret" aria-hidden="true"><use href="/assets/icons/sprite.svg#chevron-down"></use></svg>
                        </summary>
                        <div class="menu__panel menu__panel--right">
                            <div class="menu__header">
                                <strong>Halima Yusuf</strong>
                                <span>nurse@lagosfamilyclinic.bitmed.test</span>
                                <span class="menu__role">Nurse</span>
                            </div>
                            <a class="menu__item" href="http://127.0.0.1:8010/settings/two-step">
                                <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#shield"></use></svg>
                                <span>Two-step verification</span>
                            </a>
                            <a class="menu__item" href="http://127.0.0.1:8010/dashboard">
                                <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#home"></use></svg>
                                <span>Dashboard</span>
                            </a>
                            <form method="POST" action="http://127.0.0.1:8010/logout">
                                <input type="hidden" name="_token" value="3GTvEQqdYpuHzvwGhpneQff2fV5iENZvFgfZsOcA" autocomplete="off">                                <button class="menu__item menu__item--button" type="submit">
                                    <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#log-out"></use></svg>
                                    <span>Sign out</span>
                                </button>
                            </form>
                        </div>
                    </details>
                </div>
                    </header>

        <main class="app__content" id="main-content">
            
            
                <div class="stack" style="max-width: 34rem;">
        <div class="page-head">
            <div class="page-head__text">
                <h1>Enter your verification code</h1>
                <p class="lede">
                    Your password was verified. To finish signing in, enter the current
                    six-digit code from your authenticator app.
                </p>
            </div>
        </div>

        
        
        <form method="POST" action="http://127.0.0.1:8010/mfa/verify" class="card" autocomplete="off">
            <input type="hidden" name="_token" value="3GTvEQqdYpuHzvwGhpneQff2fV5iENZvFgfZsOcA" autocomplete="off">
            <div class="card__body stack">
                <div class="field">
                    <label for="code">Verification code</label>
                    <input id="code" name="code" type="text" inputmode="numeric"
                           autocomplete="one-time-code" maxlength="12" placeholder="000000"
                           required autofocus autocomplete="off"
                           >
                    <span class="field__hint">
                        Six digits from your authenticator app, or one of your
                        8 remaining recovery codes.
                    </span>
                                    </div>

                <button class="btn btn--primary" type="submit">Verify and sign in</button>
            </div>

            <div class="card__foot">
                Every attempt is audited. After five failed attempts this form is locked
                for fifteen minutes.
            </div>
        </form>

        <section class="card">
            <div class="card__body">
                <p class="small muted">
                    Lost your device? Sign out and use a recovery code when you return, or
                    contact your administrator to reset two-step verification — a reset is
                    audited and notifies you.
                </p>
                <form method="POST" action="http://127.0.0.1:8010/logout">
                    <input type="hidden" name="_token" value="3GTvEQqdYpuHzvwGhpneQff2fV5iENZvFgfZsOcA" autocomplete="off">                    <button class="btn btn--outline btn--sm" type="submit">Sign out</button>
                </form>
            </div>
        </section>
    </div>
        </main>

        <footer class="app__footer">
            Synthetic demonstration data only. No real patient records, and no real
            payments or notifications are generated by this build.
        </footer>
    </div>
</div>

<script>
    (function () {
        var shell = document.getElementById('app-shell');
        var toggle = document.querySelector('.app__nav-toggle');
        if (shell && toggle) {
            toggle.addEventListener('click', function () {
                var open = shell.getAttribute('data-nav') === 'open';
                shell.setAttribute('data-nav', open ? 'closed' : 'open');
                toggle.setAttribute('aria-expanded', open ? 'false' : 'true');
            });
        }

        // Only one top-bar menu is open at a time.
        var menus = Array.prototype.slice.call(document.querySelectorAll('details.menu'));
        menus.forEach(function (menu) {
            menu.addEventListener('toggle', function () {
                if (!menu.open) return;
                menus.forEach(function (other) {
                    if (other !== menu) other.open = false;
                });
            });
        });

        document.addEventListener('click', function (event) {
            menus.forEach(function (menu) {
                if (menu.open && !menu.contains(event.target)) menu.open = false;
            });
        });

        document.addEventListener('keydown', function (event) {
            if (event.key !== 'Escape') return;
            if (shell && toggle) {
                shell.setAttribute('data-nav', 'closed');
                toggle.setAttribute('aria-expanded', 'false');
            }
            menus.forEach(function (menu) { menu.open = false; });
        });

        var themeButton = document.querySelector('.theme-toggle');

        function syncThemeButton() {
            if (!themeButton) return;
            var dark = document.documentElement.getAttribute('data-theme') === 'dark';
            themeButton.setAttribute('aria-pressed', dark ? 'true' : 'false');
            var label = themeButton.querySelector('.theme-toggle__label');
            if (label) label.textContent = dark ? 'Light mode' : 'Dark mode';
        }

        if (themeButton) {
            syncThemeButton();
            themeButton.addEventListener('click', function () {
                var dark = document.documentElement.getAttribute('data-theme') === 'dark';
                var next = dark ? 'light' : 'dark';
                document.documentElement.setAttribute('data-theme', next);
                try {
                    window.localStorage.setItem('bitmed-theme', next);
                } catch (error) {
                    /* Storage may be unavailable; the choice simply does not persist. */
                }
                syncThemeButton();
            });
        }
    })();
</script>
</body>
</html>
