Files
html/products/ispmonitor.html
2026-04-12 22:57:03 +02:00

75 lines
25 KiB
HTML

<!DOCTYPE html><html lang="fr"><head>
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>Network Monitor — Monitoring ISP Temps Réel | WEVAL</title><meta name="description" content="Network Monitor — Monitoring ISP Temps Réel"><link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Outfit:wght@300;400;500;600;700;800&display=swap" rel="stylesheet"><style>@media all{.in-iframe nav{display:none!important}.in-iframe .hero{padding-top:3rem!important;min-height:auto!important}.in-iframe footer{display:none!important}.in-iframe .cta{display:none!important}.in-iframe .wv-links{display:none!important}.wv-links{display:none!important}}.dm-box{background:linear-gradient(135deg,#111827,#0f172a);border:1px solid #1e293b;border-radius:16px;padding:28px 24px;margin:24px auto;max-width:700px}.dm-box h3{font-size:16px;font-weight:700;color:#f1f5f9;margin-bottom:14px}.dm-row{display:flex;gap:10px;margin-bottom:12px}.dm-row input{flex:1;padding:12px 16px;background:#0b0d14;border:1px solid #1e293b;border-radius:10px;color:#e2e8f0;font-size:14px;font-family:inherit}.dm-row input:focus{outline:none;border-color:#d4a843}.dm-row input::placeholder{color:#475569}.dm-row button{padding:12px 24px;background:linear-gradient(135deg,#d4a843,#b8942e);color:#0a0d13;border:none;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;white-space:nowrap}.dm-out{padding:16px;background:rgba(255,255,255,.02);border:1px solid #1e293b;border-radius:10px;color:#94a3b8;font-size:13px;line-height:1.6;min-height:60px;white-space:pre-wrap}.dm-out b,.dm-out strong{color:#e2e8f0}.dm-ld{display:inline-block;width:8px;height:8px;background:#d4a843;border-radius:50%;margin-right:4px;animation:dmP 1.2s ease-in-out infinite}.dm-ld:nth-child(2){animation-delay:.2s}.dm-ld:nth-child(3){animation-delay:.4s}@keyframes dmP{0%,100%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}
input,select,textarea{background:#0b0d14!important;color:#e2e8f0!important;border:1px solid #1e293b!important;border-radius:8px!important}input::placeholder{color:#475569!important}</style><script>if(window!==window.top)document.documentElement.classList.add('in-iframe');</script><style>:root{--bg:#05080f;--s:#0c1222;--s2:#111a2e;--a:#8b5cf6;--a15:rgba(139,92,246,0.15);--a08:rgba(139,92,246,0.08);--a30:rgba(139,92,246,0.3);--sv:#7a8ba5;--w:#edf2f7;--d:#1a2340}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--w);overflow-x:hidden}body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:1000}nav{position:fixed;top:0;width:100%;padding:1rem 4%;display:flex;justify-content:space-between;align-items:center;z-index:100;backdrop-filter:blur(20px);background:rgba(5,8,15,0.85);border-bottom:1px solid var(--a08)}.logo{font-weight:800;font-size:1.4rem;text-decoration:none;color:var(--w)}.logo span{color:var(--a)}.nav-links{display:flex;gap:1.5rem;align-items:center}.nav-links a{color:var(--sv);text-decoration:none;font-size:.85rem;font-weight:500}.nav-links a:hover{color:var(--a)}.btn-n{background:var(--a);color:var(--bg);padding:.55rem 1.3rem;border-radius:7px;font-weight:700;font-size:.82rem;text-decoration:none}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:7rem 4% 4rem;position:relative}.hero::after{content:'';position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(139,92,246,0.06) 0%,transparent 70%);top:10%;left:50%;transform:translateX(-50%);pointer-events:none}.badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--a15);border:1px solid rgba(139,92,246,0.2);border-radius:100px;padding:.35rem 1rem;font-size:.75rem;font-weight:600;color:var(--a);margin-bottom:2rem}h1{font-size:3.2rem;font-weight:800;line-height:1.08;letter-spacing:-.04em;margin-bottom:1.2rem;max-width:700px}h1 em{font-style:normal;color:var(--a)}.sub{font-size:1.05rem;color:var(--sv);max-width:520px;line-height:1.7;margin-bottom:2rem}.btns{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.btn-p{background:var(--a);color:var(--bg);padding:.85rem 2rem;border-radius:8px;font-weight:700;text-decoration:none;transition:all .3s;font-family:'Outfit';border:none;cursor:pointer;font-size:1rem}.btn-p:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(139,92,246,0.25)}.btn-o{background:transparent;color:var(--w);padding:.85rem 2rem;border-radius:8px;text-decoration:none;border:1px solid rgba(255,255,255,.12);font-weight:600}.stats{display:flex;gap:3rem;margin-top:3rem}.stat{text-align:center}.stat-v{font-family:'Space Mono',monospace;font-size:1.8rem;font-weight:700;color:var(--a)}.stat-l{font-size:.78rem;color:var(--sv);margin-top:.2rem}.sec{padding:5rem 4%;max-width:1200px;margin:0 auto}.stag{font-family:'Space Mono',monospace;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--a);margin-bottom:1rem}h2{font-size:2.2rem;font-weight:800;letter-spacing:-.03em;margin-bottom:.8rem}.sd{color:var(--sv);font-size:.95rem;line-height:1.7;max-width:500px;margin-bottom:2.5rem}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}.cd{background:var(--s);border:1px solid var(--a08);border-radius:14px;padding:1.6rem;transition:all .3s}.cd:hover{border-color:var(--a30);transform:translateY(-3px)}.cd-i{font-size:1.8rem;margin-bottom:.6rem}.cd h3{font-size:1rem;font-weight:600;margin-bottom:.35rem}.cd p{font-size:.82rem;color:var(--sv);line-height:1.55}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center;margin:3rem 0}.step-n{width:44px;height:44px;border-radius:50%;background:var(--a15);display:flex;align-items:center;justify-content:center;margin:0 auto .8rem;font-family:'Space Mono',monospace;font-weight:700;color:var(--a)}.step h3{font-size:.95rem;font-weight:600;margin-bottom:.3rem}.step p{font-size:.8rem;color:var(--sv);line-height:1.5}.pg{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}.pr{background:var(--s);border:1px solid var(--a08);border-radius:16px;padding:1.8rem;transition:all .3s}.pr.pop{border-color:var(--a);position:relative}.pr.pop::before{content:'Populaire';position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--a);color:var(--bg);padding:.2rem .8rem;border-radius:100px;font-size:.65rem;font-weight:700;text-transform:uppercase}.pr:hover{transform:translateY(-3px)}.pr-name{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--sv);margin-bottom:.6rem}.pr-amt{font-family:'Space Mono',monospace;font-size:2.5rem;font-weight:700;margin-bottom:.8rem}.pr-amt sub{font-size:.8rem;color:var(--sv);font-family:'Outfit'}.pr-list{list-style:none;margin-bottom:1.2rem}.pr-list li{font-size:.8rem;color:var(--sv);padding:.3rem 0}.pr-list li::before{content:'\2713';color:var(--a);font-weight:700;margin-right:.4rem}.btn-f{display:block;padding:.7rem;border-radius:8px;font-weight:600;font-size:.85rem;text-decoration:none;text-align:center;background:var(--a);color:var(--bg)}.btn-l{display:block;padding:.7rem;border-radius:8px;font-weight:600;font-size:.85rem;text-decoration:none;text-align:center;border:1px solid rgba(255,255,255,.12);color:var(--w)}.cta{text-align:center;padding:4rem 2rem;margin:2rem 4%;background:linear-gradient(135deg,var(--s),rgba(139,92,246,.04));border:1px solid var(--a08);border-radius:20px}.cta p{color:var(--sv);max-width:450px;margin:.5rem auto 1.5rem}.chat-sec{padding:3rem 4%;max-width:900px;margin:0 auto}.chat-box{background:var(--s);border:1px solid var(--a08);border-radius:16px;overflow:hidden}.chat-hd{padding:1rem 1.5rem;border-bottom:1px solid var(--a08);display:flex;align-items:center;gap:.8rem}.chat-hd-i{width:32px;height:32px;background:var(--a15);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--a)}.chat-hd-i svg{width:16px;height:16px}.chat-hd h3{font-size:.95rem;font-weight:600}.chat-hd small{font-size:.72rem;color:var(--sv)}.chat-msgs{min-height:300px;max-height:450px;overflow-y:auto;padding:1.2rem 1.5rem}.chat-empty{text-align:center;padding:3rem 1rem;color:var(--sv)}.chat-empty h4{margin-bottom:.5rem;color:var(--w)}.chat-empty p{font-size:.82rem;margin-bottom:1.2rem}.chat-sug{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.chat-sug button{padding:.45rem .9rem;background:var(--a15);border:1px solid rgba(139,92,246,.2);border-radius:20px;color:var(--a);font-family:'Outfit';font-size:.75rem;font-weight:600;cursor:pointer}.msg-u{background:var(--a15);border:1px solid rgba(139,92,246,.2);border-radius:10px 10px 4px 10px;padding:.7rem 1rem;margin:8px 0;max-width:75%;margin-left:auto;font-size:.85rem;color:var(--w);animation:fi .2s}.msg-a{background:var(--s2);border:1px solid rgba(255,255,255,.06);border-radius:4px 10px 10px 10px;padding:.8rem 1.1rem;margin:8px 0;max-width:90%;font-size:.85rem;color:var(--w);line-height:1.7;animation:fi .2s}.msg-a pre{background:var(--bg);padding:.8rem;border-radius:8px;font-family:'Space Mono',monospace;font-size:.78rem;margin:.5rem 0;overflow-x:auto}.msg-a strong{color:var(--w)}.msg-a code{font-family:'Space Mono',monospace;font-size:.78rem;background:var(--bg);padding:.1rem .3rem;border-radius:4px}.chat-input{padding:1rem 1.5rem;border-top:1px solid var(--a08);display:flex;gap:.6rem}.chat-input textarea{flex:1;resize:none;min-height:40px;max-height:120px;font-family:'Outfit';font-size:.85rem;background:var(--bg);border:1px solid rgba(255,255,255,.08);color:var(--w);border-radius:8px;padding:.6rem .8rem;outline:none}.chat-input textarea:focus{border-color:var(--a)}.chat-input button{padding:.6rem 1.2rem;background:var(--a);color:var(--bg);border:none;border-radius:8px;font-family:'Outfit';font-size:.85rem;font-weight:700;cursor:pointer}@keyframes fi{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes p2{0%,100%{opacity:1}50%{opacity:.4}}.ld{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--a);margin:0 3px;animation:p2 .8s infinite}.ld:nth-child(2){animation-delay:.2s}.ld:nth-child(3){animation-delay:.4s}footer{padding:2rem 4%;max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.04);font-size:.75rem;color:var(--sv)}footer a{color:var(--a);text-decoration:none}@media(max-width:900px){h1{font-size:2.2rem}.g3,.pg{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.stats{gap:1.5rem}.nav-links{display:none}footer{flex-direction:column;gap:.5rem;text-align:center}.hero::after{display:none}}</style><link rel="canonical" href="https://weval-consulting.com/products/ispmonitor.html">
<meta property="og:title" content="Network Monitor — Monitoring ISP Temps Réel | WEVAL">
<meta property="og:description" content="Network Monitor — Monitoring ISP Temps Réel">
<meta property="og:url" content="https://weval-consulting.com/products/ispmonitor.html">
<meta property="og:type" content="website">
<meta property="og:site_name" content="WEVAL Consulting">
<meta property="og:image" content="https://weval-consulting.com/assets/logo-weval-png-DChrMGao.png">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Network Monitor — Monitoring ISP Temps Réel | WEVAL">
<meta name="twitter:description" content="Network Monitor — Monitoring ISP Temps Réel">
<link rel="alternate" hreflang="fr" href="https://weval-consulting.com/products/ispmonitor.html">
<link rel="alternate" hreflang="x-default" href="https://weval-consulting.com/products/ispmonitor.html">
<style>
.wevia-progress{width:100%;background:rgba(99,102,241,.15);border-radius:8px;overflow:hidden;height:6px;margin:8px 0}
.wevia-progress-bar{height:100%;background:linear-gradient(90deg,#6366f1,#a78bfa,#6366f1);background-size:200%;animation:weviaShimmer 1.5s infinite;border-radius:8px;transition:width .3s}
.wevia-progress-text{font-size:11px;color:#a0a0b0;margin-top:4px;text-align:center}
@keyframes weviaShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
</style>
<link rel="stylesheet" href="/assets/dark-iframe.css"></head><body>
<nav><a href="/products/" class="logo">WE<span>VAL</span></a><div class="nav-links"><a href="#features">Fonctionnalités</a><a href="#pricing">Tarifs</a><a href="#cta">Essayer</a><a href="/products/workspace.html" class="btn-n">Workspace</a></div></nav>
<section class="hero"><div class="badge">Network Monitoring — Alertes temps réel</div><h1>Network Monitor — <em>Monitoring ISP Temps Réel</em></h1><p class="sub">Surveillez les changements de politique des FAI en temps réel. Filtres, rate limits, blocages — soyez le premier informe.</p><div class="btns"><a href="#cta" class="btn-p">Essayer gratuitement</a><a href="#features" class="btn-o">Découvrir</a></div><div class="stats"><div class="stat"><div class="stat-v">30+</div><div class="stat-l">ISPs surveilles</div></div><div class="stat"><div class="stat-v">24/7</div><div class="stat-l">Monitoring</div></div><div class="stat"><div class="stat-v">< 5 min</div><div class="stat-l">Alerte delai</div></div></div></section><section class="sec" id="features"><div class="stag">Fonctionnalités</div><h2>Tout ce dont vous avez besoin</h2><div class="sd">Network Monitor combiné IA et expertise pour automatiser vos taches.</div><div class="g3"><div class="cd"><div class="cd-i">📡</div><h3>Monitoring ISP</h3><p>Surveillance continue des politiques email de 30+ FAI majeurs.</p></div><div class="cd"><div class="cd-i">🔔</div><h3>Alertes Changements</h3><p>Notification instantanée lors de changements de filtres ou rate limits.</p></div><div class="cd"><div class="cd-i">📊</div><h3>Dashboard ISP</h3><p>Vue temps réel des politiques par FAI : Gmail, Outlook, Yahoo, Orange.</p></div><div class="cd"><div class="cd-i">📈</div><h3>Tendances</h3><p>Analyse des tendances de délivrabilité par ISP sur 12 mois.</p></div><div class="cd"><div class="cd-i">🛡️</div><h3>Blocage Detection</h3><p>Détection automatique des blocages IP et recommandations de remediation.</p></div><div class="cd"><div class="cd-i">📋</div><h3>Rate Limits</h3><p>Suivi des rate limits par ISP avec alertes de depassement.</p></div><div class="cd"><div class="cd-i">🔍</div><h3>TLS Monitoring</h3><p>Surveillance des exigences TLS et certificats par FAI.</p></div><div class="cd"><div class="cd-i">🌍</div><h3>International</h3><p>ISPs France · Maroc · États-Unis · International et 30+ pays couverts.</p></div><div class="cd"><div class="cd-i"></div><h3>API Webhook</h3><p>Webhooks temps réel pour intégrér les alertes dans vos outils.</p></div></div></section><section class="sec"><div class="stag">Comment ca marche</div><h2>Simple comme 1-2-3-4</h2><div class="steps"><div class="step"><div class="step-n">1</div><h3>Configurez</h3><p>Sélectionnez les ISPs et IPs a surveiller.</p></div><div class="step"><div class="step-n">2</div><h3>Monitoring</h3><p>Surveillance 24/7 des politiques et filtres.</p></div><div class="step"><div class="step-n">3</div><h3>Alertes</h3><p>Notification instantanée à chaque changement détecte.</p></div><div class="step"><div class="step-n">4</div><h3>Adaptez</h3><p>Ajustez votre stratégie d'envoi selon les alertes.</p></div></div></section><section class="sec" id="pricing"><div class="stag">Tarifs</div><h2>Un plan pour chaque besoin</h2><div class="pg"><div class="pr"><div class="pr-name">Starter</div><div class="pr-amt">39EUR<sub>/mois</sub></div><ul class="pr-list"><li>10 ISPs</li><li>Alertes email</li><li>Dashboard</li><li>Monitoring quotidien</li></ul><a href="#cta" class="btn-l">Commencer</a></div><div class="pr pop"><div class="pr-name">Pro</div><div class="pr-amt">129EUR<sub>/mois</sub></div><ul class="pr-list"><li>30+ ISPs</li><li>Alertes temps réel</li><li>Historique 12 mois</li><li>API webhooks</li><li>Rapports PDF</li><li>Support prioritaire</li></ul><a href="#cta" class="btn-f">Commencer</a></div><div class="pr"><div class="pr-name">Enterprise</div><div class="pr-amt">Sur mesure</div><ul class="pr-list"><li>ISPs custom</li><li>Multi-comptes</li><li>API complete</li><li>Account manager</li><li>SLA</li><li>White-label</li></ul><a href="#cta" class="btn-l">Nous contacter</a></div></div></section>
<div class="dm-box" id="demo"><h3>⚡ Network Monitor — Demo Live</h3>
<div class="dm-row"><input id="dm-ispmonitor" placeholder="Domaine expediteur" onkeydown="if(event.key==='Enter')dm_ispmonitor()"><button onclick="dm_ispmonitor()">Tester</button></div>
<div class="dm-out" id="dmo-ispmonitor">Entrez votre demande et testez Network Monitor en direct. Aucune inscription requise.</div></div>
<script>
async function dm_ispmonitor(){
var q=document.getElementById("dm-ispmonitor").value.trim();
if(!q)return;
var o=document.getElementById("dmo-ispmonitor");
o.innerHTML='<span class="dm-ld"></span><span class="dm-ld"></span><span class="dm-ld"></span> Génération en cours...';
try{
var r=await fetch("/api/weval-ia-fast.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:"[INSTRUCTION SYSTEME: Reponds de facon structurée et professionnelle avec des sections claires.]\n\nDemande utilisateur: Analyse la reputation ISP pour: "+q,mode:"full"})});
var j=await r.json();
o.innerHTML=(j.response||"Erreur").replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\n\n/g,"<br><br>").replace(/`(.*?)`/g,"<code>$1</code>");
}catch(e){o.innerHTML="Erreur: "+e.message}
}
</script>
<section class="cta"><h2>Prêt à essayer Network Monitor ?</h2><p>Testez gratuitement.</p><a href="#cta" class="btn-p">Essayer maintenant</a></section><section class="chat-sec" id="chat"><div class="stag">Essayer</div><h2>Testez Network Monitor</h2><div class="sd">Posez votre question.</div><div class="chat-box"><div class="chat-hd"><div class="chat-hd-i"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/></svg></div><div><h3>Network Monitor</h3><small>Monitoring ISP Temps Réel</small></div></div><div class="chat-msgs" id="chat-msgs"><div class="chat-empty" id="chat-empty"><h4>Bienvenue sur Network Monitor</h4><p>Surveillez les changements de politique des FAI en temps réel. Filtres, rate limits, blocages — soyez le premier informe.</p><div class="chat-sug"><button onclick="sg('Quels sont les derniers changements de politique Gmail en 2026')">Gmail politique</button><button onclick="sg('Quels sont les rate limits actuels chez Outlook/Hotmail')">Rate limit Outlook</button><button onclick="sg('Mon IP est bloquee chez Orange, comment proceder')">Blocage IP</button></div></div></div><div class="chat-input"><textarea id="chat-i" rows="1" placeholder="Posez votre question..." onkeydown="if(event.key==='Enter'&&!event.shiftKey){event.preventDefault();send()}" oninput="this.style.height='40px';this.style.height=Math.min(this.scrollHeight,120)+'px'"></textarea><button onclick="send()">Envoyer</button></div></div></section>
<footer><div>&copy; 2026 <a href="/products/">WEVAL Consulting</a></div><div><a href="/products/workspace.html">Workspace</a></div></footer>
<script>const CTX="Tu es Network Monitor, expert en monitoring des FAI et politiques email. Aide a comprendre les changements de filtres ISP et adapter la stratégie d\'envoi.";let hist=[];function esc(s){const d=document.createElement('div');d.textContent=s;return d.innerHTML}function md(m){return m.replace(/```[\w]*\n([\s\S]*?)```/g,'<pre>$1</pre>').replace(/\*\*(.*?)\*\*/g,'<strong>$1</strong>').replace(/`(.*?)`/g,'<code>$1</code>').replace(/\n\n/g,'<br><br>')}function sg(q){document.getElementById('chat-i').value=q;send()}async function send(){const i=document.getElementById('chat-i'),m=i.value.trim();if(!m)return;const a=document.getElementById('chat-msgs'),es=document.getElementById('chat-empty');if(es)es.remove();a.innerHTML+='<div class="msg-u">'+esc(m)+'</div>';i.value='';i.style.height='40px';a.scrollTop=a.scrollHeight;const lid='l'+Date.now();a.innerHTML+='<div class="msg-a" id="'+lid+'"><span class="ld"></span><span class="ld"></span><span class="ld"></span></div>';a.scrollTop=a.scrollHeight;var _pb=weviaProgress(document.getElementById(lid),Date.now());try{hist.push({role:'user',content:m});const r=await fetch('/api/weval-ia-fast.php',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({message:'[INSTRUCTION SYSTEME: '+CTX+']\n\nDemande utilisateur: '+m,mode:'full',history:hist.slice(-6)})});const j=await r.json();const rp=j.response||j.error||'Erreur';hist.push({role:'assistant',content:rp});const el=document.getElementById(lid);if(el)el.outerHTML='<div class="msg-a">'+md(rp)+'</div>';}catch(ex){const el=document.getElementById(lid);if(el)el.outerHTML='<div class="msg-a" style="border-color:rgba(248,113,113,.3);color:#f87171">Erreur: '+ex.message+'</div>';}a.scrollTop=a.scrollHeight;}</script><div style="display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;padding:1.5rem 4%;background:rgba(255,255,255,.02);border-top:1px solid rgba(255,255,255,.04);margin:2rem 0"><div style="display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#7a8ba5"><strong style="color:#edf2f7">44</strong> produits SaaS</div><div style="display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#7a8ba5"><strong style="color:#edf2f7">Cloud</strong> souverain</div><div style="display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#7a8ba5"><strong style="color:#edf2f7">API</strong> REST</div><div style="display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#7a8ba5"><strong style="color:#edf2f7">RGPD</strong> conforme</div><div style="display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#7a8ba5"><strong style="color:#edf2f7">France</strong> · Maroc · États-Unis · International</div></div>
<div id="cta" style="max-width:600px;margin:2rem auto;padding:0 4%">
<div style="background:#0c1222;border:1px solid rgba(99,102,241,.15);border-radius:14px;padding:1.5rem">
<h3 style="font-size:1rem;font-weight:700;margin-bottom:.8rem;color:#818cf8">Demander un accès</h3>
<input id="ct-name" type="text" placeholder="Votre nom" style="width:100%;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.6rem;font-size:.85rem;color:#edf2f7;font-family:inherit;margin-bottom:.6rem;outline:none">
<input id="ct-email" type="email" placeholder="Email professionnel" style="width:100%;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.6rem;font-size:.85rem;color:#edf2f7;font-family:inherit;margin-bottom:.6rem;outline:none">
<button onclick="ctS()" id="ct-btn" style="width:100%;background:#6366f1;color:#fff;border:none;border-radius:8px;padding:.7rem;font-weight:700;cursor:pointer;font-size:.9rem">Envoyer</button>
<div id="ct-ok" style="display:none;text-align:center;padding:1rem;color:#10b981;font-weight:600">Demande envoyee !</div>
</div></div>
<script>async function ctS(){var n=document.getElementById("ct-name").value.trim(),e=document.getElementById("ct-email").value.trim();if(!n||!e){alert("Nom et email requis");return;}document.getElementById("ct-btn").disabled=true;try{await fetch("/api/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:n,email:e,source:location.pathname,ts:new Date().toISOString()})})}catch(x){}document.getElementById("ct-btn").style.display="none";document.getElementById("ct-ok").style.display="block";}</script>
<script>
function weviaProgress(container,startMs){
if(!container)return;
var el=document.createElement('div');
el.className='wevia-pb-wrap';
el.innerHTML='<div class="wevia-progress"><div class="wevia-progress-bar" style="width:5%"></div></div><div class="wevia-progress-text">Analyse en cours...</div>';
container.appendChild(el);
var bar=el.querySelector('.wevia-progress-bar'),txt=el.querySelector('.wevia-progress-text');
var steps=['Connexion au moteur IA...','Analyse de votre demande...','Génération de la réponse...','Finalisation...'];
var iv=setInterval(function(){
var elapsed=(Date.now()-startMs)/1000;
var pct=Math.min(95,5+elapsed*3);
bar.style.width=pct+'%';
var si=Math.min(3,Math.floor(elapsed/3));
txt.textContent=steps[si]+' ('+Math.round(elapsed)+'s)';
if(elapsed>25)txt.textContent='Presque termine... ('+Math.round(elapsed)+'s)';
},300);
return {el:el,stop:function(){clearInterval(iv);bar.style.width='100%';txt.textContent='Termine!';}};
}
</script>
<script defer src=/assets/dm-enhance.js></script></body></html>