/** @jsx React.createElement */
const { useState, useEffect, useRef, useCallback, useMemo, memo } = React;
const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);

let SAAS_FEATURES = {
    bot_only: { extension: true, autocart: false, autobuy: false },
    bot_boutique: { extension: true, autocart: true, autobuy: true },
    white_label: { extension: true, autocart: true, autobuy: true } // L'admin a toujours tout
};
fetch('/api/saas-config').then(r=>r.json()).then(d=> { if (d.features) SAAS_FEATURES = d.features; }).catch(()=>{});

// ═══════════════════════════════════════════
// ADMIN CHECK — vérifié côté serveur uniquement
// Le frontend ne stocke JAMAIS de hash ni de secret.
// is_admin est renvoyé par /check_stored_licence si la clé a le flag is_admin=True en DB.
// ═══════════════════════════════════════════
function isAdmin(key) {
  // La valeur est mise en cache lors de check_stored_licence (voir App → licenseIsAdmin state)
  // Cette fonction est un simple accesseur — la vérité vient du serveur, jamais du client.
  return window.__zenAdminVerified === true;
}

// ═══════════════════════════════════════════
// EXTENSION CHROME — communication postMessage
// ═══════════════════════════════════════════
let _zenExtReady = false; // true une fois confirmée (jamais remis à false)

// ⚠️ bridge.js (content script MV3) poste vers PAGE_ORIGIN hardcodé ("https://www.pingted.online")
// mais la page peut être sur pingted.online (sans www) ou www.pingted.online.
// On ne filtre donc PAS sur event.origin — on filtre uniquement sur le type du message.
function isZenExtMessage(event) {
  return event.data && typeof event.data === "object";
}

// Écoute passive dès le chargement — capte ZEN_READY si bridge.js s'init avant le premier clic
(function listenForExtensionReady() {
  function onMessage(event) {
    if (!isZenExtMessage(event)) return;
    if (event.data.type === "ZEN_READY") {
      _zenExtReady = true;
      // Si la page est déjà unlockée, on renvoie la clé à l'extension qui vient de se (re)connecter
      const key = localStorage.getItem("pingted-licence-key");
      if (key) window.postMessage({ type: "ZEN_SET_LICENCE", licenseKey: key }, "*");
      window.removeEventListener("message", onMessage);
    }
  }
  window.addEventListener("message", onMessage);
})();

function detectZenExtension() {
  if (_zenExtReady) return Promise.resolve(true);

  return new Promise((resolve) => {
    const timer = setTimeout(() => {
      window.removeEventListener("message", onMsg);
      resolve(false); // pas de cache négatif — on réessaiera au prochain clic
    }, 3000);

    function onMsg(event) {
      if (!isZenExtMessage(event)) return;
      const t = event.data.type;
      if (t !== "ZEN_READY" && t !== "ZEN_PING_RESULT") return;
      clearTimeout(timer);
      window.removeEventListener("message", onMsg);
      _zenExtReady = true;
      resolve(true);
    }

    window.addEventListener("message", onMsg);
    // PING vers "*" pour couvrir www et sans-www
    window.postMessage({ type: "ZEN_PING" }, "*");
  });
}

let _reqCounter = 0;

function zenExtAddToCart(productUrl) {
  return new Promise((resolve, reject) => {
    const requestId = `atc_${++_reqCounter}_${Date.now()}`;
    const timeout = setTimeout(() => {
      window.removeEventListener("message", onResult);
      reject(new Error("Timeout : l'extension n'a pas répondu (10s)."));
    }, 25000);
    function onResult(event) {
      const msg = event.data;
      if (!msg || typeof msg !== "object") return;
      if (msg.type !== "ZEN_ADD_TO_CART_RESULT" || msg.requestId !== requestId) return;
      clearTimeout(timeout);
      window.removeEventListener("message", onResult);
      if (msg.ok) resolve({ cartCount: msg.cartCount != null ? msg.cartCount : null });
      else reject(new Error(msg.error || "Échec ajout au panier."));
    }
    window.addEventListener("message", onResult);
    window.postMessage({ type: "ZEN_ADD_TO_CART", requestId, productUrl }, "*");
  });
}

async function addToCartDirect(productUrl) {
  const extAvailable = await detectZenExtension();
  if (!extAvailable) {
    throw new Error("Extension PingTed non détectée. Installez-la et rechargez la page.");
  }
  const result = await zenExtAddToCart(productUrl);
  return { method: "extension", cartCount: result.cartCount };
}

// ── Paiement via extension ────────────────────────────────────────
// ── Paiement via extension ────────────────────────────────────────
function zenExtBuyItem(productUrl) { // <-- Prend l'URL !
  return new Promise((resolve, reject) => {
    const requestId = `buy_${++_reqCounter}_${Date.now()}`;
    const timeout = setTimeout(() => {
      window.removeEventListener("message", onResult);
      reject(new Error("⏱️ Timeout : l'extension n'a pas répondu."));
    }, 45000);

    function onResult(event) {
      const msg = event.data;
      if (!msg || typeof msg !== "object") return;
      if (msg.type !== "ZEN_BUY_ITEM_RESULT" || msg.requestId !== requestId) return;
      clearTimeout(timeout);
      window.removeEventListener("message", onResult);
      if (msg.ok) resolve({ paid: msg.paid, price: msg.price });
      else reject(new Error(msg.error || "Échec du paiement."));
    }

    window.addEventListener("message", onResult);
    window.postMessage({ type: "ZEN_BUY_ITEM", requestId, productUrl }, "*");
  });
}

async function buyItemDirect(item) {
  const extAvailable = await detectZenExtension();
  if (!extAvailable) {
    throw new Error("🔌 Extension PingTed non détectée. Installez-la depuis le popup.");
  }
  const url = buildZenMarketUrl(item); // <-- Calcule l'URL
  const result = await zenExtBuyItem(url);
  return { method: "extension", paid: result.paid, price: result.price };
}

function buildZenMarketUrl(item) {
  if (!item.url) return "#";
  const parts = item.url.replace(/\/$/, "").split("/");
  const itemId = parts[parts.length - 1];
  return item.source_name === "Rakuma"
    ? `https://zenmarket.jp/fr/rakumaproduct.aspx?itemCode=${itemId}`
    : `https://zenmarket.jp/fr/mercariproduct.aspx?itemCode=${itemId}`;
}

// ═══════════════════════════════════════════
// UTILITAIRES
// ═══════════════════════════════════════════
function escapeHtml(str = "") {
  return String(str).replace(/[&<>"']/g, (c) =>
    ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }[c])
  );
}
function parsePriceVal(str) {
  if (!str) return null;
  // On ne garde que les chiffres, les points et les virgules
  let s = String(str).replace(/[^\d.,]/g, "");
  
  // Gestion des formats 1,400.00 ou 1.400,00
  if (s.includes(".") && s.includes(",")) {
    if (s.indexOf(",") < s.indexOf(".")) {
      // Format US (1,400.00) -> on enlève la virgule
      s = s.replace(/,/g, "");
    } else {
      // Format FR (1.400,00) -> on enlève le point, on met un point à la place de la virgule
      s = s.replace(/\./g, "").replace(",", ".");
    }
  } else {
    // S'il n'y a qu'une virgule, on la change en point (format classique)
    s = s.replace(",", ".");
  }
  
  const n = parseFloat(s);
  return isNaN(n) ? null : n;
}
function calcProfit(item) {
  const sell = parsePriceVal(item.custom_price);
  const buy = parsePriceVal(item.price_eur);
  if (sell === null || buy === null || buy === 0) return { profit: null, mult: null };
  return { profit: sell - buy, mult: sell / buy };
}
function profitClass(mult) {
  if (mult === null) return "";
  if (mult >= 2.5) return "profit-good";
  if (mult >= 1.5) return "profit-mid";
  return "profit-low";
}
function generateIconDataUrl(size) {
  const canvas = document.createElement("canvas");
  canvas.width = canvas.height = size;
  const ctx = canvas.getContext("2d");
  ctx.fillStyle = "#0a0f1e";
  ctx.fillRect(0, 0, size, size);
  ctx.beginPath();
  ctx.arc(size / 2, size / 2, size * 0.42, 0, Math.PI * 2);
  ctx.fillStyle = "#0fa3ad";
  ctx.fill();
  ctx.fillStyle = "#ffffff";
  ctx.font = `bold ${size * 0.45}px Arial`;
  ctx.textAlign = "center";
  ctx.textBaseline = "middle";
  ctx.fillText("⚡", size / 2, size / 2 + size * 0.02);
  return canvas.toDataURL("image/png");
}
function authHeaders(key, extra = {}) {
  return { "Content-Type": "application/json", "X-License-Key": key, ...extra };
}

// ═══════════════════════════════════════════
// HOOK WebSocket avec reconnexion auto & Anti-Partage
// ═══════════════════════════════════════════
function useWebSocket(licenseKey, onMessage, onConflict) {
  const wsRef = useRef(null);
  const timerRef = useRef(null);
  const pingRef = useRef(null);
  const onMessageRef = useRef(onMessage);
  const onConflictRef = useRef(onConflict);
  const [connStatus, setConnStatus] = useState("connecting");

  useEffect(() => { onMessageRef.current = onMessage; }, [onMessage]);
  useEffect(() => { onConflictRef.current = onConflict; }, [onConflict]);

  const connect = useCallback(() => {
    if (!licenseKey) return;
    if (wsRef.current && (wsRef.current.readyState === WebSocket.OPEN || wsRef.current.readyState === WebSocket.CONNECTING)) return;

    const url = `${window.location.protocol === 'https:' ? 'wss:' : 'ws:'}//${window.location.host}/ws?key=${encodeURIComponent(licenseKey)}`;
    const ws = new WebSocket(url);
    wsRef.current = ws;
    setConnStatus("connecting");

    ws.onopen = () => {
      clearTimeout(timerRef.current);
      setConnStatus("open");
      clearInterval(pingRef.current);
      pingRef.current = setInterval(() => {
        if (wsRef.current && wsRef.current.readyState === WebSocket.OPEN) wsRef.current.send("ping");
      }, 20000);
    };
    
    ws.onmessage = (e) => {
      if (e.data === "pong" || e.data === "ping") return;

      try {
        const parsed = JSON.parse(e.data);
        if (parsed.type === "error") {
           if (parsed.code === "locked_abuse") {
               if (onConflictRef.current) onConflictRef.current("locked");
               ws.close(4000);
               return;
           }
           if (parsed.code === "session_conflict") {
               if (onConflictRef.current) onConflictRef.current("conflict");
               ws.close(4000);
               return;
           }
           if (parsed.code === "licence_expired") {
               if (onConflictRef.current) onConflictRef.current("expired");
               ws.close(4000);
               return;
           }
        }
      } catch(err) {}

      if (onMessageRef.current) onMessageRef.current(e);
    };
    
    ws.onclose = (e) => {
      clearInterval(pingRef.current);
      wsRef.current = null;
      if (e.code === 4000) return; // Si banni ou conflit, pas de reconnexion
      setConnStatus("closed");
      timerRef.current = setTimeout(() => connect(), 3000);
    };
  }, [licenseKey]);

  useEffect(() => {
    if (licenseKey) connect();
    return () => {
      clearTimeout(timerRef.current); clearInterval(pingRef.current);
      if (wsRef.current) { wsRef.current.onclose = null; wsRef.current.close(); wsRef.current = null; }
    };
  }, [licenseKey, connect]);

  return connStatus;
}
// ═══════════════════════════════════════════
// HOOK Notifications
// ═══════════════════════════════════════════
function useNotifications() {
  const [notifs, setNotifs] = useState([]);
  
  // 🔄 NOUVEAU : Initialisation via localStorage (true par défaut)
  const [enabled, setEnabled] = useState(() => {
    return localStorage.getItem("pingted-notifs") !== "false";
  });
  
  const idRef = useRef(0);

  // 🔄 NOUVEAU : Sauvegarde à chaque modification du bouton
  useEffect(() => {
    localStorage.setItem("pingted-notifs", enabled);
  }, [enabled]);

  const show = useCallback(
    (message, type = "default") => {
      if (!enabled) return;
      const id = ++idRef.current;
      setNotifs((prev) => {
        const next = [...prev, { id, message, type }];
        return next.slice(-3);
      });
      setTimeout(() => dismiss(id), 6000);
    },
    [enabled]
  );

  const dismiss = useCallback((id) => {
    setNotifs((prev) => prev.filter((n) => n.id !== id));
  }, []);

  const toggle = useCallback(() => {
    setEnabled((v) => !v);
    if (enabled) setNotifs([]);
  }, [enabled]);

  return { notifs, show, dismiss, toggle, enabled };
}

// ═══════════════════════════════════════════
// COMPOSANT : Toast Notification
// ─────────────────────────────────────────
// Le message peut être :
//   - une string simple  → affichée telle quelle (texte pur, pas de HTML)
//   - un objet { title, sub } → titre en gras + sous-titre grisé
// On n'utilise JAMAIS dangerouslySetInnerHTML pour éviter les injections XSS.
// ═══════════════════════════════════════════
const NotifToast = memo(({ notif, onDismiss }) => {
  const content = typeof notif.message === "object" && notif.message !== null
    ? (
        <span style={{ flex: 1, lineHeight: 1.4 }}>
          <strong>{notif.message.title}</strong>
          {notif.message.sub && (
            <><br /><span style={{ opacity: 0.7, fontSize: 10 }}>{notif.message.sub}</span></>
          )}
        </span>
      )
    : <span style={{ flex: 1, lineHeight: 1.4 }}>{String(notif.message)}</span>;

  return (
    <div
      className={`notif-toast notif-${notif.type}`}
      onClick={() => onDismiss(notif.id)}
      style={{ position: "relative", overflow: "hidden" }}
    >
      {content}
      <button
        onClick={(e) => { e.stopPropagation(); onDismiss(notif.id); }}
        style={{ background: "none", border: "none", color: "currentColor", opacity: 0.5, cursor: "pointer", fontSize: 14, flexShrink: 0 }}
      >✕</button>
      <div className="notif-bar" />
    </div>
  );
});

// ═══════════════════════════════════════════
// COMPOSANT : Card Article
// ═══════════════════════════════════════════
const ItemCard = memo(({ item, isSaved, isBoutique, isBoutiqueTab, onOpen, onToggleSave, onToggleBoutique, showNotification, licenseKey }) => {
  const [cartState, setCartState] = useState("idle"); // "idle" | "loading" | "ok" | "error"
  const [buyState,  setBuyState]  = useState("idle"); // "idle" | "loading" | "ok" | "error"
  const [buyMsg,    setBuyMsg]    = useState("");      // Message d'erreur détaillé
  const { profit } = calcProfit(item);
  const isDrop = item.previous_price || item.is_price_drop;
  
  const priceDropBadge = isDrop ? (
    <div style={{ 
      position: "absolute", top: 45, left: 10, zIndex: 30,
      background: "linear-gradient(90deg, #0fa3ad, #5ce1e6)", color: "white", 
      padding: "4px 10px", borderRadius: 8, fontSize: 9, fontWeight: 900,
      boxShadow: "0 4px 12px rgba(15, 163, 173,0.4)", animation: "pulse-badge 1.5s infinite"
    }}>
      📉 PRIX EN BAISSE
    </div>
  ) : null;
  
  const stars = parseFloat(item.seller_stars) || 0;
  const starsBadge = stars > 0 ? (
    <div style={{ position: "absolute", top: 10, left: 10, background: "rgba(0,0,0,0.7)", backdropFilter: "blur(8px)", border: "1px solid rgba(255,255,255,0.1)", borderRadius: 10, padding: "4px 10px", fontSize: 11, fontWeight: 900, color: "#facc15", zIndex: 30 }}>
      ⭐ {stars}
    </div>
  ) : null;

  const sourceBadge = item.source_name ? (
    <div style={{ position: "absolute", top: 10, right: 10, background: "rgba(15, 163, 173,0.15)", backdropFilter: "blur(6px)", border: "1px solid rgba(15, 163, 173,0.25)", borderRadius: 8, padding: "3px 8px", fontSize: 9, fontWeight: 900, color: "#5ce1e6", textTransform: "uppercase", letterSpacing: "0.08em", zIndex: 30 }}>
      {item.source_name}
    </div>
  ) : null;

  // URL ZenMarket générée via helper global
  const zenMarketUrl = buildZenMarketUrl(item);

  const priceDisplay = isDrop ? (
    <div className="flex flex-col">
      <span className="text-[10px] text-gray-500 line-through font-bold">
        {item.previous_price || item.old_price}
      </span>
      <div className="text-xl font-black text-[#0fa3ad]">{item.price_eur}</div>
    </div>
  ) : (
    <div className="text-xl font-black text-[#0fa3ad]">{item.price_eur}</div>
  );

  return (
    <div className="card-new p-5 flex flex-col group" onClick={() => onOpen(item, isBoutiqueTab)}>
      <div className="relative w-full h-60 bg-black/40 rounded-2xl overflow-hidden mb-4 border border-white/5 transition group-hover:border-[#0fa3ad]/50">
        {starsBadge}
        {sourceBadge}
        <img src={item.image} className="w-full h-full object-contain p-2 group-hover:scale-110 transition-transform duration-700" alt={item.title} loading="lazy" />
        
        {/* 👇 BOUTON PANIER — extension Chrome (Caché sur mobile) 👇 */}
        {!isBoutiqueTab && !isMobile && SAAS_FEATURES[window.__USER_PLAN__]?.autocart && (
          <button
            className={`absolute bottom-2 left-3 w-9 h-9 rounded-xl flex items-center justify-center transition-all z-40
              ${cartState === "ok"    ? "bg-green-600 text-white" :
                cartState === "error" ? "bg-red-700 text-white" :
                cartState === "loading" ? "bg-black/80 text-yellow-400 animate-pulse" :
                "bg-black/60 text-white/40 hover:text-green-500 hover:bg-black/80"}`}
            onClick={async (e) => {
              e.stopPropagation();
              if (cartState === "loading") return;
              setCartState("loading");
              const _t0cart = Date.now();
              try {
                const r = await fetch("/api/zenmarket/add-to-cart", {
                  method: "POST",
                  headers: authHeaders(licenseKey),
                  body: JSON.stringify({ url: zenMarketUrl }),
                });
                if (!r.ok) {
                  const d = await r.json().catch(() => ({}));
                  throw new Error(d.detail || `Erreur ${r.status}`);
                }
                const _elapsed = ((Date.now() - _t0cart) / 1000).toFixed(2);
                setCartState("ok");
                if (showNotification) showNotification({ title: `🛒 Ajouté au panier · ${_elapsed}s`, sub: item.title?.slice(0, 60) }, "success");
                setTimeout(() => setCartState("idle"), 2500);
              } catch (err) {
                console.error("[PingTed] addToCart:", err.message);
                setCartState("error");
                if (showNotification) showNotification({ title: "❌ Panier échoué", sub: err.message?.slice(0, 80) }, "warning");
                setTimeout(() => setCartState("idle"), 3000);
              }
            }}
            title={
              cartState === "ok"      ? "Ajouté au panier ✅" :
              cartState === "error"   ? "Erreur — voir console" :
              cartState === "loading" ? "Ajout en cours…" :
              "Ajouter au panier ZenMarket"
            }
          >
            {cartState === "loading" ? "⏳" : cartState === "ok" ? "✅" : cartState === "error" ? "❌" : "🛒"}
          </button>
        )}
        
        {/* 💳 BOUTON PAYER — extension Chrome (Caché sur mobile) */}
        {!isBoutiqueTab && !isMobile && SAAS_FEATURES[window.__USER_PLAN__]?.autobuy && (
          <button
            className={`absolute bottom-2 left-14 w-9 h-9 rounded-xl flex items-center justify-center transition-all z-40
              ${buyState === "ok"      ? "bg-green-600 text-white" :
                buyState === "error"   ? "bg-red-700 text-white" :
                buyState === "loading" ? "bg-black/80 text-yellow-400 animate-pulse" :
                "bg-black/60 text-white/40 hover:text-yellow-400 hover:bg-black/80"}`}
            onClick={async (e) => {
              e.stopPropagation();
              if (buyState === "loading") return;
              setBuyState("loading");
              setBuyMsg("");
              const _t0buy = Date.now();
              try {
                const r = await fetch("/api/zenmarket/autobuy", {
                  method: "POST",
                  headers: authHeaders(licenseKey),
                  body: JSON.stringify({ url: zenMarketUrl }),
                });
                if (!r.ok) {
                  const d = await r.json().catch(() => ({}));
                  throw new Error(d.detail || `Erreur ${r.status}`);
                }
                const data = await r.json();
                setBuyState("ok");
                const _elapsed = data.time != null ? `${data.time}s` : `${((Date.now() - _t0buy) / 1000).toFixed(2)}s`;
                const montant = data.amount ? ` · ${data.amount}` : "";
                if (showNotification) showNotification({ title: `✅ Acheté en ${_elapsed}${montant}`, sub: item.title?.slice(0, 60) }, "success");
                setTimeout(() => setBuyState("idle"), 4000);
              } catch (err) {
                console.error("[PingTed] buyItem:", err.message);
                setBuyState("error");
                setBuyMsg(err.message || "Erreur inconnue.");
                if (showNotification) showNotification({ title: "❌ Achat échoué", sub: err.message?.slice(0, 80) }, "warning");
                setTimeout(() => { setBuyState("idle"); setBuyMsg(""); }, 6000);
              }
            }}
            title={
              buyState === "ok"      ? "✅ Paiement effectué !" :
              buyState === "error"   ? (buyMsg || "Erreur — voir console") :
              buyState === "loading" ? "Paiement en cours…" :
              "Payer depuis le panier ZenMarket"
            }
          >
            {buyState === "loading" ? "⏳" : buyState === "ok" ? "✅" : buyState === "error" ? "❌" : "💳"}
          </button>
        )}
        
        {buyState === "error" && buyMsg && (
          <div style={{
            position: "absolute", bottom: 44, left: 4, right: 4, zIndex: 50,
            background: "rgba(127,29,29,0.97)", border: "1px solid rgba(239,68,68,0.4)",
            borderRadius: 10, padding: "8px 10px", fontSize: 10, fontWeight: 700,
            color: "#fca5a5", lineHeight: 1.4, backdropFilter: "blur(8px)"
          }}>
            {buyMsg}
          </div>
        )}
        
        {/* Heart */}
        <button
          className={`absolute bottom-2 right-14 w-9 h-9 rounded-xl flex items-center justify-center transition-all z-40 ${isSaved ? "bg-[#0fa3ad] text-white" : "bg-black/60 text-white/40 hover:text-[#0fa3ad]"}`}
          onClick={(e) => { e.stopPropagation(); onToggleSave(item); }}
        >
          <svg width="16" height="16" viewBox="0 0 24 24" fill={isSaved ? "currentColor" : "none"} stroke="currentColor" strokeWidth="2"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>
        </button>
        {/* Shop */}
        {false && (
        <button
          className={`absolute bottom-2 right-3 w-9 h-9 rounded-xl flex items-center justify-center transition-all z-40 ${isBoutique ? "bg-blue-600 text-white" : "bg-black/60 text-white/40 hover:text-blue-500"}`}
          onClick={(e) => { e.stopPropagation(); onToggleBoutique(item); }}
        >🏪</button>
        )}
      </div>
      <div className="px-1 flex-1 flex flex-col justify-between text-left">
        <h3 className="text-[13px] font-bold text-gray-200 line-clamp-2 italic mb-1 group-hover:text-white">{item.title}</h3>
        {item.filter_name && <div style={{ fontSize: 9, fontWeight: 900, color: "#555", textTransform: "uppercase", letterSpacing: "0.08em", marginBottom: 4 }}>{item.filter_name}</div>}
        <div className="flex justify-between items-end mt-2">
          {priceDisplay}
          {isBoutiqueTab && profit !== null
            ? <div className={`text-[10px] font-black ${profit >= 0 ? "text-green-500" : "text-red-400"}`}>{profit >= 0 ? "+" : ""}{profit.toFixed(2)} €</div>
            : null}
        </div>
      </div>
    </div>
  );
});

// ═══════════════════════════════════════════
// COMPOSANT : Modal Détail Article (OPTIMISÉ PC/MOBILE)
// ═══════════════════════════════════════════
const ItemModal = memo(({ item, isBoutiqueTab, isSaved, isBoutique, onClose, onToggleSave, onToggleBoutique, onSavePrice, licenseKey }) => {
  const [images, setImages] = useState([]);
  const [cartState, setCartState] = useState("idle"); // "idle"|"loading"|"ok"|"error"
  const [buyState,  setBuyState]  = useState("idle"); // "idle"|"loading"|"ok"|"error"
  const [buyMsg,    setBuyMsg]    = useState("");      // Message d'erreur détaillé paiement
  const [slideIdx, setSlideIdx] = useState(0);
  const [priceInput, setPriceInput] = useState("");
  const [priceSaved, setPriceSaved] = useState(false);
  const [tagInput, setTagInput] = useState("");

  useEffect(() => {
    if (!item) return;
    const imgs = (item.images && item.images.length) ? item.images : item.image ? [item.image] : [];
    setImages(imgs);
    setSlideIdx(0);
    setPriceInput(parsePriceVal(item.custom_price) || "");
    setPriceSaved(false);
    setTagInput("");
    // Enrichissement lazy
    if (!item._enriched && !isBoutiqueTab) {
      fetch("/fetch_item_details", {
        method: "POST",
        headers: authHeaders(licenseKey),
        body: JSON.stringify({ url: item.url }),
      })
        .then((r) => r.ok ? r.json() : null)
        .then((data) => {
          if (!data || data.status === "error") return;
          if ((data.images && data.images.length)) setImages(data.images);
          item._enriched = true;
        })
        .catch(() => {});
    }
  }, [item]);

  if (!item) return null;

  const { profit, mult } = calcProfit(item);
  const lensUrl = item.image ? `https://lens.google.com/uploadbyurl?url=${encodeURIComponent(item.image)}&q=vestiaire+collective` : null;

  const zenMarketUrl = buildZenMarketUrl(item);
  const handleSavePrice = async () => {
    const val = parseFloat(priceInput);
    if (isNaN(val) || val < 0) return;
    const newPrice = val.toFixed(2).replace(".", ",") + " €";
    await onSavePrice(item.url, newPrice);
    setPriceSaved(true);
    setTimeout(() => setPriceSaved(false), 1500);
  };

  return (
    <div className="modal-bg p-4 md:p-8" onClick={(e) => { if (e.target === e.currentTarget) onClose(); }} style={{ zIndex: 9999 }}>
      
      {/* CONTENEUR PRINCIPAL : Limite la hauteur et cache ce qui déborde */}
      <div className="bg-[#0a0f1e] border border-white/10 rounded-[28px] w-full max-w-5xl max-h-[90vh] flex flex-col relative shadow-2xl overflow-hidden animate-pop" onClick={(e) => e.stopPropagation()}>
        
        {/* BOUTON FERMER : Toujours visible, fixé en haut à droite du conteneur */}
        <button onClick={onClose} className="absolute top-4 right-4 z-[100] bg-black/60 hover:bg-white/10 border border-white/10 rounded-full w-10 h-10 flex items-center justify-center text-gray-400 hover:text-white transition backdrop-blur-md cursor-pointer">
          ✕
        </button>

        {/* ZONE SCROLLABLE : Divisée en 2 colonnes sur PC (md:flex-row) */}
        <div className="flex flex-col md:flex-row overflow-y-auto w-full h-full p-6 md:p-8 gap-8 md:gap-12">
          
          {/* COLONNE GAUCHE : Images */}
          <div className="w-full md:w-1/2 flex flex-col gap-4">
            <div className="relative w-full aspect-square bg-black/40 rounded-2xl overflow-hidden border border-white/5">
              {images.map((src, i) => (
                <img key={i} src={src} className={`absolute inset-0 w-full h-full object-contain transition-opacity duration-300 p-2 ${i === slideIdx ? "opacity-100 z-10" : "opacity-0 z-0"}`} alt="" />
              ))}
              {images.length > 1 && <>
                <button onClick={() => setSlideIdx((i) => (i - 1 + images.length) % images.length)} className="absolute left-3 top-1/2 -translate-y-1/2 bg-black/60 hover:bg-black/80 text-white rounded-xl w-10 h-10 flex items-center justify-center text-xl z-20 transition cursor-pointer">‹</button>
                <button onClick={() => setSlideIdx((i) => (i + 1) % images.length)} className="absolute right-3 top-1/2 -translate-y-1/2 bg-black/60 hover:bg-black/80 text-white rounded-xl w-10 h-10 flex items-center justify-center text-xl z-20 transition cursor-pointer">›</button>
                <div className="absolute bottom-3 right-3 bg-black/80 rounded-lg px-3 py-1 text-[11px] font-bold text-white z-20">{slideIdx + 1} / {images.length}</div>
              </>}
            </div>
            
            {/* Miniatures */}
            {images.length > 1 && (
              <div className="flex gap-2 flex-wrap">
                {images.map((src, i) => (
                  <img key={i} src={src} className={`w-14 h-14 rounded-xl cursor-pointer object-cover border-2 transition ${i === slideIdx ? "border-red-600 opacity-100" : "border-transparent opacity-40 hover:opacity-100"}`} onClick={() => setSlideIdx(i)} alt="" />
                ))}
              </div>
            )}
          </div>

          {/* COLONNE DROITE : Détails et Actions */}
          <div className="w-full md:w-1/2 flex flex-col">
            <h2 className="text-xl md:text-3xl font-black text-white italic mb-2 pr-10 leading-tight">{item.title}</h2>
            {!isBoutiqueTab && <p className="text-[12px] text-gray-400 mb-1 font-bold">🎯 {item.filter_name || "Filtre inconnu"} · {item.condition || "Occasion"}</p>}
            {!isBoutiqueTab && <p className="text-[12px] text-gray-500 mb-6">👤 {(item.seller_name || "Vendeur")} ⭐ ({item.seller_stars || 0}/5)</p>}

            <div className="text-[10px] font-black text-gray-600 uppercase tracking-[0.15em] mb-1">{isBoutiqueTab ? "PRIX DE VENTE" : "PRIX"}</div>
            <div className="text-3xl md:text-5xl font-black text-red-500 mb-8">{isBoutiqueTab ? (item.custom_price || "--- EUR") : item.price_eur}</div>

            {/* Edit prix (boutique) */}
            {isBoutiqueTab && (
              <div className="flex gap-3 mb-8">
                <input type="number" value={priceInput} onChange={(e) => setPriceInput(e.target.value)} placeholder="Prix de vente €" className="flex-1 bg-white/5 border border-white/10 px-4 py-3 rounded-xl text-white outline-none focus:border-red-500 transition font-bold" />
                <button onClick={handleSavePrice} className={`px-6 rounded-xl font-black text-[11px] uppercase tracking-wider transition cursor-pointer ${priceSaved ? "bg-green-600 text-white" : "bg-red-600 hover:bg-red-700 text-white"}`}>
                  {priceSaved ? "✓ Sauvegardé" : "✓ Enregistrer"}
                </button>
              </div>
            )}

            {/* Profit boutique */}
            {isBoutiqueTab && profit !== null && (
              <div className="grid grid-cols-3 gap-4 mb-8 bg-white/5 border border-white/10 rounded-2xl p-5">
                <div><div className="text-[9px] text-gray-500 font-black uppercase tracking-[0.1em]">ACHETÉ</div><div className="font-bold text-white mt-1">{parsePriceVal(item.price_eur) != null ? parsePriceVal(item.price_eur).toFixed(2) : ""} €</div></div>
                <div><div className="text-[9px] text-gray-500 font-black uppercase tracking-[0.1em]">BÉNÉFICE</div><div className={`font-bold mt-1 ${profit >= 0 ? "text-green-400" : "text-red-400"}`}>{profit >= 0 ? "+" : ""}{profit.toFixed(2)} €</div></div>
                <div><div className="text-[9px] text-gray-500 font-black uppercase tracking-[0.1em]">MULT.</div><div className={`font-bold mt-1 ${profitClass(mult)}`}>×{mult != null ? mult.toFixed(2) : ""}</div></div>
              </div>
            )}

            {/* Actions alignées en bas */}
            <div className="mt-auto flex flex-col gap-3 pt-6 md:pt-0">
              <button onClick={() => onToggleSave(item)} className={`w-full flex items-center justify-center gap-3 py-4 rounded-xl border transition font-black text-[11px] uppercase tracking-[0.1em] cursor-pointer ${isSaved ? "bg-red-600 border-red-600 text-white" : "bg-white/5 border-white/10 text-gray-300 hover:bg-white/10 hover:text-white"}`}>
                ❤️ {isSaved ? "Retirer des Favoris" : "Ajouter aux Favoris"}
              </button>
              {false && (
              <button onClick={() => onToggleBoutique(item)} className={`w-full flex items-center justify-center gap-3 py-4 rounded-xl border transition font-black text-[11px] uppercase tracking-[0.1em] cursor-pointer ${isBoutique ? "bg-blue-600 border-blue-600 text-white" : "bg-white/5 border-white/10 text-gray-300 hover:bg-white/10 hover:text-white"}`}>
                🏪 {isBoutique ? "Retirer de la Boutique" : "Ajouter à la Boutique"}
              </button>
              )}
             {lensUrl && !isBoutiqueTab && (
                <button 
                  onClick={(e) => {
                    e.preventDefault(); 
                    
                    const imagesToSave = images.length ? images : (item.image ? [item.image] : []);
                    if (!imagesToSave.length) return;

                    // 1. Mobile → direct Lens, pas d'extension
                    if (isMobile) {
                      window.open(lensUrl, "_blank");
                      return;
                    }

                    // 2. Extension déjà confirmée lors de cette session → bridge direct, sans async
                    if (_zenExtReady) {
                      function onLensResult(ev) {
                        if (!ev.data || ev.data.type === "ZEN_STORE_LENS_DATA_RESULT") {
                          window.removeEventListener("message", onLensResult);
                          onClose();
                        }
                      }
                      window.addEventListener("message", onLensResult);
                      window.postMessage({ type: "ZEN_STORE_LENS_DATA", images: imagesToSave, lensUrl, productUrl: item.url || null, price: item.price_eur || null }, "*");
                      return;
                    }

                    // 3. Extension inconnue (page chargée avant ZEN_READY) :
                    //    On ouvre about:blank immédiatement (évite le bloqueur de pop-ups)
                    //    puis on ping avec un timeout court (600ms).
                    //    - Extension répond → on ferme la fenêtre vide et on passe par le bridge
                    //    - Pas de réponse → on redirige la fenêtre vers Lens (comportement normal)
                    const win = window.open("about:blank", "_blank");

                    // PING court — on ne veut pas attendre 3s pour qqun sans extension
                    const fastPing = new Promise((resolve) => {
                      if (_zenExtReady) return resolve(true);
                      const t = setTimeout(() => {
                        window.removeEventListener("message", onPong);
                        resolve(false);
                      }, 200);
                      function onPong(ev) {
                        if (!ev.data || typeof ev.data !== "object") return;
                        if (ev.data.type !== "ZEN_READY" && ev.data.type !== "ZEN_PING_RESULT") return;
                        clearTimeout(t);
                        window.removeEventListener("message", onPong);
                        _zenExtReady = true;
                        resolve(true);
                      }
                      window.addEventListener("message", onPong);
                      window.postMessage({ type: "ZEN_PING" }, "*");
                    });

                    fastPing.then((extAvailable) => {
                      if (extAvailable) {
                        // 🟢 EXTENSION LÀ : ferme l'onglet vide, passe par le bridge
                        if (win && !win.closed) win.close();
                        function onLensResult(ev) {
                          if (!ev.data || ev.data.type === "ZEN_STORE_LENS_DATA_RESULT") {
                            window.removeEventListener("message", onLensResult);
                            onClose();
                          }
                        }
                        window.addEventListener("message", onLensResult);
                        window.postMessage({ type: "ZEN_STORE_LENS_DATA", images: imagesToSave, lensUrl, productUrl: item.url || null, price: item.price_eur || null }, "*");
                      } else {
                        // 🟠 PAS D'EXTENSION : redirige la fenêtre déjà ouverte vers Lens
                        if (win && !win.closed) win.location.href = lensUrl;
                        else window.open(lensUrl, "_blank");
                      }
                    });
                  }}
                  className="w-full flex items-center justify-center gap-3 py-4 rounded-xl border border-white/10 bg-white/5 text-gray-400 font-black text-[11px] uppercase tracking-[0.1em] hover:bg-indigo-600/20 hover:text-indigo-300 hover:border-indigo-500/30 transition text-decoration-none cursor-pointer"
                >
                  🔍 Rechercher sur Google Lens
                </button>
              )}
              
              {/* 👇 BOUTON PANIER CACHÉ 👇 */}
              {/* On utilise "false &&" pour désactiver le bouton proprement sans casser le code JSX */}
              {false && !isBoutiqueTab && !isMobile && (
                <button
                  disabled={cartState === "loading"}
                  onClick={async () => {
                    if (cartState === "loading") return;
                    setCartState("loading");
                    try {
                      await addToCartDirect(zenMarketUrl);
                      setCartState("ok");
                      setTimeout(() => setCartState("idle"), 2500);
                    } catch (err) {
                      console.error("[PingTed] addToCart modal:", err.message);
                      setCartState("error");
                      setTimeout(() => setCartState("idle"), 3000);
                    }
                  }}
                  className={`w-full flex items-center justify-center gap-3 py-4 rounded-xl border font-black text-[11px] uppercase tracking-[0.1em] transition cursor-pointer
                    ${cartState === "ok"      ? "border-green-500/40 bg-green-600/20 text-green-400" :
                      cartState === "error"   ? "border-red-500/40 bg-red-600/20 text-red-400" :
                      cartState === "loading" ? "border-white/10 bg-white/5 text-yellow-400 animate-pulse" :
                      "border-white/10 bg-white/5 text-gray-400 hover:bg-green-600/20 hover:text-green-400 hover:border-green-500/30"}`}
                >
                  {cartState === "loading" ? "⏳ Ajout en cours…" :
                   cartState === "ok"      ? "✅ Ajouté au panier !" :
                   cartState === "error"   ? "❌ Erreur (voir console)" :
                   "🛒 Ajouter au panier ZenMarket"}
                </button>
              )}
              {/* 💳 BOUTON PAYER (Caché sur mobile) */}
              {!isBoutiqueTab && !isMobile && (
                <div style={{ display: "flex", flexDirection: "column", gap: 8 }}>
                  <button
                    onClick={async () => {
                      if (buyState === "loading") return;
                      setBuyState("loading");
                      setBuyMsg("");
                      try {
                        const result = await buyItemDirect(item);
                        setBuyState("ok");
                        const priceLabel = result.price ? ` — ${result.price}` : "";
                        setTimeout(() => setBuyState("idle"), 6000);
                      } catch (err) {
                        console.error("[PingTed] buyItem modal:", err.message);
                        setBuyState("error");
                        setBuyMsg(err.message || "Erreur inconnue.");
                        setTimeout(() => { setBuyState("idle"); setBuyMsg(""); }, 8000);
                      }
                    }}
                    className={`w-full flex items-center justify-center gap-3 py-4 rounded-xl border font-black text-[11px] uppercase tracking-[0.1em] transition cursor-pointer
                      ${buyState === "ok"      ? "border-green-500/40 bg-green-600/20 text-green-400" :
                        buyState === "error"   ? "border-red-500/40 bg-red-900/30 text-red-400" :
                        buyState === "loading" ? "border-yellow-500/20 bg-yellow-600/10 text-yellow-400 animate-pulse" :
                        "border-yellow-500/20 bg-yellow-600/10 text-yellow-400 hover:bg-yellow-600/20 hover:border-yellow-500/40"}`}
                  >
                    {buyState === "loading" ? "⏳ Paiement en cours…" :
                     buyState === "ok"      ? "✅ Paiement effectué !" :
                     buyState === "error"   ? "❌ Paiement échoué" :
                     "💳 Payer depuis le panier"}
                  </button>
                  {/* Message d'erreur détaillé sous le bouton */}
                  {buyState === "error" && buyMsg && (
                    <div style={{
                      background: "rgba(127,29,29,0.5)", border: "1px solid rgba(239,68,68,0.3)",
                      borderRadius: 12, padding: "12px 16px", fontSize: 11, fontWeight: 600,
                      color: "#fca5a5", lineHeight: 1.6
                    }}>
                      {buyMsg}
                    </div>
                  )}
                  {buyState === "ok" && (
                    <div style={{
                      background: "rgba(22,101,52,0.4)", border: "1px solid rgba(34,197,94,0.3)",
                      borderRadius: 12, padding: "12px 16px", fontSize: 11, fontWeight: 600,
                      color: "#86efac", lineHeight: 1.6, textAlign: "center"
                    }}>
                      ✅ Paiement envoyé à ZenMarket. Vérifiez votre espace membre pour la confirmation.
                    </div>
                  )}
                </div>
              )}
              
              {!isBoutiqueTab && (
                <a href={zenMarketUrl} target="_blank" rel="noopener noreferrer" className="w-full flex items-center justify-center gap-3 py-4 rounded-xl border border-white/10 bg-white/5 text-gray-400 font-black text-[11px] uppercase tracking-[0.1em] hover:bg-white/10 hover:text-white transition text-decoration-none">
                  🔗 Voir l'annonce
                </a>
              )}
            </div>
          </div>
        </div>
      </div>
    </div>
  );
});

// ═══════════════════════════════════════════
// COMPOSANT : Licence Gate (Landing Page)
// ═══════════════════════════════════════════
const LicenceGate = ({ onUnlock }) => {
  const [key, setKey] = useState("");
  const [error, setError] = useState("");
  const [loading, setLoading] = useState(false);
  const [showLogin, setShowLogin] = useState(false);
  const [visibleSections, setVisibleSections] = useState({ hero: true });
  const observerRef = useRef(null);

  useEffect(() => {
    const setupObserver = () => {
      if (observerRef.current) observerRef.current.disconnect();
      observerRef.current = new IntersectionObserver(
        (entries) => {
          entries.forEach(e => {
            if (e.isIntersecting) {
              setVisibleSections(prev => ({ ...prev, [e.target.dataset.section]: true }));
            }
          });
        },
        { threshold: 0.08, rootMargin: "0px 0px -40px 0px" }
      );
      document.querySelectorAll("[data-section]").forEach(el => observerRef.current.observe(el));
    };
    setupObserver();
    const t = setTimeout(setupObserver, 120);
    return () => { clearTimeout(t); observerRef.current && observerRef.current.disconnect(); };
  }, []);

  const verify = async () => {
    if (!key.trim()) { setError("Entre ta clé de licence."); return; }
    setLoading(true); setError("");
    try {
      const r = await fetch("/verify_licence", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ license_key: key.trim() }) });
      const data = await r.json();
      if (data.valid) { window.__USER_PLAN__ = data.plan; localStorage.setItem("pingted-licence-key", key.trim()); onUnlock(data.plan, key.trim(), data.is_admin === true); }
      else setError(data.message || "Licence invalide ou expirée.");
    } catch { setError("Serveur injoignable. Assure-toi que server.py tourne."); }
    setLoading(false);
  };

  const features = [
    { icon: "📡", title: "Radar en Temps Réel", desc: "Surveillance permanente du marché japonais. Les meilleures pièces apparaissent dans ton feed avant tout le monde.", color: "#ef4444" },
    { icon: "🎯", title: "Filtres Ultra-Précis", desc: "Configure des cibles par marque, mots-clés et fourchette de prix. Zéro bruit, 100% signal sur ce qui compte.", color: "#f97316" },
    { icon: "🛒", title: "Panier Automatique", desc: "Extension Chrome intégrée. Ajoute au panier et paie en un clic sans jamais quitter ton dashboard.", color: "#eab308" },
    { icon: "🏪", title: "Boutique Intégrée", desc: "Publie tes articles sur ton site GitHub Pages en un clic. Prix personnalisés, calcul de marge automatique.", color: "#22c55e" },
    { icon: "❤️", title: "Sauvegardes & Favoris", desc: "Conserve les pièces qui t'intéressent. Tri par prix, vendeur, source. Retrouve tout instantanément.", color: "#ec4899" },
    { icon: "🔒", title: "Anti-Partage Avancé", desc: "Une licence = un accès. Protection de session en temps réel. Ton avantage concurrentiel reste le tien.", color: "#8b5cf6" },
  ];

  const testimonials = [
    { name: "Vincent L.", tag: "Revendeur de Luxe", text: "Franchement, puissant ! J'ai fait mon premier achat : un sac Louis Vuitton à 180 € avec une revente à 700 €. C'est incrr !", stars: 5, avatar: "T" },
    { name: "Ines K.", tag: "Streetwear Flipper", text: "Le filtre auto-save est une tuerie — mes pièces cibles vont direct dans mes favoris, je n'ai rien à faire.", stars: 5, avatar: "I" },
    { name: "Rayan L.", tag: "Collectionneur", text: "La boutique intégrée change tout pour présenter mes reventes. Setup complet en 10 minutes chrono.", stars: 5, avatar: "R" },
  ];

  const steps = [
    { n: "01", title: "Obtiens l'accès", desc: "Souscris sur la page Tarifs. Ta clé de licence arrive instantanément par email.", icon: "🔑" },
    { n: "02", title: "Configure tes filtres", desc: "Entre tes marques, mots-clés et fourchettes de prix dans le dashboard.", icon: "⚙️" },
    { n: "03", title: "Le bot chasse", desc: "Le radar scrape en continu. Tu reçois une alerte dès qu'un article matche tes critères.", icon: "📡" },
    { n: "04", title: "Tu snipers", desc: "Un clic pour ajouter au panier, un clic pour payer. C'est tout.", icon: "⚡" },
  ];

  return (
    <div style={{ minHeight: "100vh", background: "#060606", color: "#fff", fontFamily: "system-ui, sans-serif", overflowX: "hidden" }}>
      <style>{`
        @import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:ital,wght@0,400;0,500;0,700;1,700&display=swap');

        * { box-sizing: border-box; }

        /* Toggle switch — utilisé par TabSaas (permissions par plan) */
        .switch { position: relative; display: inline-block; width: 42px; height: 24px; flex-shrink: 0; }
        .switch input { opacity: 0; width: 0; height: 0; }
        .switch .slider { position: absolute; cursor: pointer; inset: 0; background-color: rgba(255,255,255,0.15); transition: 0.2s; border-radius: 999px; }
        .switch .slider::before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: #fff; transition: 0.2s; border-radius: 50%; }
        .switch input:checked + .slider { background-color: #16a34a; }
        .switch input:checked + .slider::before { transform: translateX(18px); }

        @keyframes zfadeUp { 
          from { opacity: 0; transform: translateY(40px); } 
          to { opacity: 1; transform: translateY(0); } 
        }
        @keyframes zfadeIn { 
          from { opacity: 0; } 
          to { opacity: 1; } 
        }
        @keyframes zspin { to { transform: rotate(360deg); } }
        @keyframes zfloat { 
          0%,100% { transform: translateY(0px) rotate(0deg); } 
          33% { transform: translateY(-10px) rotate(2deg); } 
          66% { transform: translateY(-5px) rotate(-1deg); } 
        }
        @keyframes zglowPulse { 
          0%,100% { opacity: 0.4; transform: scale(1); } 
          50% { opacity: 1; transform: scale(1.08); } 
        }
        @keyframes zlineGrow { 
          from { width: 0; } 
          to { width: 100%; } 
        }
        @keyframes znoise { 
          0%,100% { transform: translate(0,0); } 
          10% { transform: translate(-1%,-1%); } 
          20% { transform: translate(1%,0); } 
          30% { transform: translate(0,1%); } 
          40% { transform: translate(-1%,0); } 
          50% { transform: translate(0,-1%); }
          60% { transform: translate(1%,1%); } 
          70% { transform: translate(-1%,1%); } 
          80% { transform: translate(0,-1%); } 
          90% { transform: translate(1%,0); } 
        }
        @keyframes zCountUp {
          from { opacity: 0; transform: translateY(20px) scale(0.8); }
          to { opacity: 1; transform: translateY(0) scale(1); }
        }
        @keyframes zCardReveal {
          from { opacity: 0; transform: translateY(32px) scale(0.96); }
          to { opacity: 1; transform: translateY(0) scale(1); }
        }
        @keyframes zSlideRight {
          from { opacity: 0; transform: translateX(-30px); }
          to { opacity: 1; transform: translateX(0); }
        }
        @keyframes zLoginSlideUp {
          from { opacity: 0; transform: translateY(40px) scale(0.95); }
          to { opacity: 1; transform: translateY(0) scale(1); }
        }
        @keyframes zScanLine {
          from { transform: translateY(-100%); }
          to { transform: translateY(100%); }
        }
        @keyframes zBlink {
          0%, 100% { opacity: 1; }
          50% { opacity: 0; }
        }
        @keyframes zOrb {
          0%,100% { transform: translate(0px,0px) scale(1); }
          25% { transform: translate(30px,-20px) scale(1.05); }
          50% { transform: translate(-20px,30px) scale(0.95); }
          75% { transform: translate(20px,10px) scale(1.02); }
        }

        .zn { animation: none !important; opacity: 1 !important; transform: none !important; }

        .z-visible[data-anim="fadeUp"] { animation: zfadeUp 0.75s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="fadeUp"][data-delay="1"] { animation-delay: 0.1s; }
        .z-visible[data-anim="fadeUp"][data-delay="2"] { animation-delay: 0.2s; }
        .z-visible[data-anim="fadeUp"][data-delay="3"] { animation-delay: 0.3s; }
        .z-visible[data-anim="fadeUp"][data-delay="4"] { animation-delay: 0.4s; }
        .z-visible[data-anim="fadeUp"][data-delay="5"] { animation-delay: 0.5s; }
        .z-visible[data-anim="fadeUp"][data-delay="6"] { animation-delay: 0.6s; }
        .z-visible[data-anim="cardReveal"][data-delay="1"] { animation: zCardReveal 0.65s 0.05s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="cardReveal"][data-delay="2"] { animation: zCardReveal 0.65s 0.15s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="cardReveal"][data-delay="3"] { animation: zCardReveal 0.65s 0.25s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="cardReveal"][data-delay="4"] { animation: zCardReveal 0.65s 0.35s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="cardReveal"][data-delay="5"] { animation: zCardReveal 0.65s 0.45s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="cardReveal"][data-delay="6"] { animation: zCardReveal 0.65s 0.55s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="slideRight"][data-delay="1"] { animation: zSlideRight 0.6s 0.1s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="slideRight"][data-delay="2"] { animation: zSlideRight 0.6s 0.2s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="slideRight"][data-delay="3"] { animation: zSlideRight 0.6s 0.3s cubic-bezier(0.22,1,0.36,1) both; }
        .z-visible[data-anim="slideRight"][data-delay="4"] { animation: zSlideRight 0.6s 0.4s cubic-bezier(0.22,1,0.36,1) both; }

        [data-section] { opacity: 1; }
        [data-section].z-visible { opacity: 1; }

        /* NAV */
        .zNav {
          position: fixed; top: 0; left: 0; right: 0; z-index: 200;
          padding: 0 clamp(16px, 5vw, 48px);
          height: 64px;
          display: flex; align-items: center; justify-content: space-between;
          background: rgba(6,10,20,0.85); backdrop-filter: blur(24px) saturate(180%);
          border-bottom: 1px solid rgba(255,255,255,0.05);
        }
        .zNavLogo { 
          font-family: 'Bebas Neue', sans-serif; 
          font-size: clamp(20px, 4vw, 26px); 
          letter-spacing: 0.06em; 
          color: #fff; 
          display: flex; align-items: center; gap: 10px;
        }
        .zNavLogo span { color: #0fa3ad; }
        .zLogoIcon {
          width: 36px; height: 36px;
          background: rgba(15, 163, 173,0.12);
          border: 1px solid rgba(15, 163, 173,0.28);
          border-radius: 10px;
          display: flex; align-items: center; justify-content: center;
          font-size: 18px;
        }

        /* BUTTONS */
        .zBtnPrimary {
          background: #0fa3ad; color: #fff; border: none;
          padding: clamp(12px, 2vw, 16px) clamp(20px, 4vw, 36px);
          border-radius: 12px; font-weight: 700;
          font-size: clamp(11px, 1.5vw, 13px);
          text-transform: uppercase; letter-spacing: 0.1em;
          cursor: pointer; transition: all 0.22s; 
          font-family: 'DM Sans', sans-serif;
          position: relative; overflow: hidden;
          white-space: nowrap;
        }
        .zBtnPrimary::after {
          content: ''; position: absolute; inset: 0;
          background: linear-gradient(135deg, rgba(255,255,255,0.15), transparent);
          opacity: 0; transition: opacity 0.2s;
        }
        .zBtnPrimary:hover { background: #0c7d85; transform: translateY(-2px); box-shadow: 0 16px 48px rgba(15, 163, 173,0.4); }
        .zBtnPrimary:hover::after { opacity: 1; }
        .zBtnPrimary:active { transform: translateY(0); }

        .zBtnGhost {
          background: transparent; color: #888;
          border: 1px solid rgba(255,255,255,0.1);
          padding: clamp(11px, 2vw, 14px) clamp(18px, 3vw, 28px);
          border-radius: 12px; font-weight: 600;
          font-size: clamp(11px, 1.5vw, 12px);
          text-transform: uppercase; letter-spacing: 0.08em;
          cursor: pointer; transition: all 0.2s;
          text-decoration: none; display: inline-flex; align-items: center;
          font-family: 'DM Sans', sans-serif;
          white-space: nowrap;
        }
        .zBtnGhost:hover { border-color: rgba(255,255,255,0.25); color: #fff; background: rgba(255,255,255,0.04); transform: translateY(-1px); }

        /* HERO */
        .zHeroTitle {
          font-family: 'Bebas Neue', sans-serif;
          font-size: clamp(60px, 14vw, 140px);
          line-height: 0.92; letter-spacing: 0.02em;
          margin: 0; color: #fff;
        }
        .zHeroTitle .zRed { 
          color: #0fa3ad; 
          -webkit-text-stroke: 0px;
        }

        .zBadge {
          display: inline-flex; align-items: center; gap: 8px;
          background: rgba(15, 163, 173,0.1);
          border: 1px solid rgba(15, 163, 173,0.2);
          border-radius: 100px; padding: 6px 16px;
        }
        .zBadgeDot {
          width: 6px; height: 6px; border-radius: 50%;
          background: #0fa3ad;
          animation: zglowPulse 2s ease-in-out infinite;
        }
        .zBadgeText {
          font-size: clamp(9px, 1.5vw, 11px); font-weight: 700;
          text-transform: uppercase; letter-spacing: 0.14em; color: #5ce1e6;
        }

        /* FEATURE CARDS */
        .zFCard {
          background: rgba(255,255,255,0.025);
          border: 1px solid rgba(255,255,255,0.06);
          border-radius: 20px;
          padding: clamp(20px, 3vw, 28px);
          transition: transform 0.3s cubic-bezier(0.22,1,0.36,1), border-color 0.3s, background 0.3s;
          position: relative; overflow: hidden;
          cursor: default;
        }
        .zFCard::before {
          content: ''; position: absolute; inset: 0;
          background: radial-gradient(circle at 50% 0%, rgba(15, 163, 173,0.06), transparent 70%);
          opacity: 0; transition: opacity 0.3s;
        }
        .zFCard:hover { 
          transform: translateY(-6px) scale(1.01); 
          border-color: rgba(15, 163, 173,0.25); 
          background: rgba(15, 163, 173,0.04);
        }
        .zFCard:hover::before { opacity: 1; }
        .zFCardIcon {
          font-size: clamp(28px, 4vw, 36px);
          display: block; margin-bottom: 18px;
          animation: zfloat 3.5s ease-in-out infinite;
        }
        .zFCardTitle {
          font-family: 'Bebas Neue', sans-serif;
          font-size: clamp(18px, 2.5vw, 22px);
          letter-spacing: 0.04em; margin: 0 0 10px; color: #fff;
        }
        .zFCardDesc {
          font-size: clamp(12px, 1.5vw, 13px);
          color: #555; line-height: 1.75; margin: 0;
        }
        .zFCardGlow {
          position: absolute; top: -40px; right: -40px;
          width: 120px; height: 120px; border-radius: 50%;
          opacity: 0.06; filter: blur(30px);
          transition: opacity 0.3s;
        }
        .zFCard:hover .zFCardGlow { opacity: 0.15; }

        /* STEPS */
        .zStepCard {
          background: rgba(255,255,255,0.02);
          border: 1px solid rgba(255,255,255,0.05);
          border-radius: 20px;
          padding: clamp(20px, 3vw, 28px);
          position: relative; overflow: hidden;
          flex: 1; min-width: 180px;
          transition: transform 0.3s, border-color 0.3s;
        }
        .zStepCard:hover { transform: translateY(-4px); border-color: rgba(15, 163, 173,0.2); }
        .zStepNum {
          font-family: 'Bebas Neue', sans-serif;
          font-size: clamp(48px, 6vw, 64px);
          color: rgba(15, 163, 173,0.15); letter-spacing: -0.02em; line-height: 1;
          margin-bottom: 8px; transition: color 0.3s;
        }
        .zStepCard:hover .zStepNum { color: rgba(15, 163, 173,0.35); }

        /* TESTIMONIALS */
        .zTestiCard {
          background: rgba(255,255,255,0.025);
          border: 1px solid rgba(255,255,255,0.06);
          border-radius: 20px;
          padding: clamp(20px, 3vw, 28px);
          transition: transform 0.3s, border-color 0.3s;
        }
        .zTestiCard:hover { transform: translateY(-4px); border-color: rgba(255,255,255,0.12); }

        /* INPUT */
        .zInput {
          width: 100%; background: rgba(255,255,255,0.04);
          border: 1.5px solid rgba(255,255,255,0.1);
          padding: 16px 16px 16px 48px;
          border-radius: 8px; outline: none;
          color: #fff; font-size: clamp(13px, 2vw, 14px); font-weight: 600;
          letter-spacing: 0.06em; transition: border-color 0.2s, background 0.2s;
          font-family: 'DM Sans', sans-serif;
        }
        .zInput:focus { border-color: rgba(15, 163, 173,0.5); background: rgba(15, 163, 173,0.04); }
        .zInput.err { border-color: rgba(220,38,38,0.6); animation: zfadeIn 0.2s; }
        .zInput::placeholder { color: rgba(255,255,255,0.2); }

        /* SCAN LINE sur hero */
        .zScanLine {
          position: absolute; left: 0; right: 0; height: 2px;
          background: linear-gradient(90deg, transparent, rgba(15, 163, 173,0.4), transparent);
          animation: zScanLine 4s linear infinite;
          pointer-events: none;
        }

        /* MOBILE RESPONSIVE */
        @media (max-width: 768px) {
          .zHeroButtons { flex-direction: column !important; align-items: stretch !important; }
          .zHeroButtons .zBtnPrimary, .zHeroButtons .zBtnGhost { text-align: center; justify-content: center; }
          .zStepsRow { flex-direction: column !important; }
          .zStepsArrow { transform: rotate(90deg) !important; }
          .zTestiGrid { grid-template-columns: 1fr !important; }
          .zFeatGrid { grid-template-columns: 1fr !important; }
          .zStatsRow { gap: 24px !important; }
          .zCtaButtons { flex-direction: column !important; align-items: stretch !important; }
          .zCtaButtons .zBtnPrimary, .zCtaButtons .zBtnGhost { text-align: center; justify-content: center; }
          .zNavLinks { display: none !important; }
          .zFooterInner { flex-direction: column !important; align-items: center !important; text-align: center; gap: 8px !important; }
          .zSection { padding: clamp(48px, 8vw, 80px) clamp(16px, 5vw, 40px) !important; }
          .zHeroSection { padding: 100px clamp(16px, 5vw, 40px) 72px !important; }
        }
        @media (max-width: 480px) {
          .zFeatGrid { grid-template-columns: 1fr !important; }
        }
        @media (min-width: 769px) and (max-width: 1024px) {
          .zFeatGrid { grid-template-columns: repeat(2, 1fr) !important; }
          .zTestiGrid { grid-template-columns: repeat(2, 1fr) !important; }
        }

        /* LOGIN MODAL MOBILE */
        @media (max-width: 480px) {
          .zLoginBox { border-radius: 20px !important; padding: 24px !important; }
          .zLoginWrap { padding: 16px !important; align-items: center !important; }
          .zLoginInner { max-width: 100% !important; width: 100% !important; }
          .zLoginCloseBtn { top: -44px !important; right: 0 !important; }
        }
      `}</style>

      {/* ── ORBS BACKGROUND ── */}
      <div style={{ position: "fixed", inset: 0, pointerEvents: "none", zIndex: 0, overflow: "hidden" }}>
        <div style={{ position: "absolute", top: "10%", left: "5%", width: "clamp(300px,40vw,600px)", height: "clamp(300px,40vw,600px)", borderRadius: "50%", background: "radial-gradient(circle, rgba(15, 163, 173,0.06) 0%, transparent 70%)", animation: "zOrb 18s ease-in-out infinite" }} />
        <div style={{ position: "absolute", bottom: "20%", right: "8%", width: "clamp(200px,30vw,450px)", height: "clamp(200px,30vw,450px)", borderRadius: "50%", background: "radial-gradient(circle, rgba(15, 163, 173,0.04) 0%, transparent 70%)", animation: "zOrb 22s ease-in-out infinite reverse" }} />
        <div style={{ position: "absolute", top: "50%", left: "50%", transform: "translate(-50%,-50%)", width: "clamp(400px,60vw,900px)", height: "clamp(400px,60vw,900px)", borderRadius: "50%", background: "radial-gradient(circle, rgba(15, 163, 173,0.025) 0%, transparent 60%)", animation: "zOrb 30s ease-in-out infinite" }} />
      </div>

      {/* ── NAVBAR ── */}
      <nav className="zNav">
        <div className="zNavLogo">
          <img src="/logo.png" alt="Ping'ted" style={{ height: "84px", width: "auto", display: "block" }} />
        </div>
        <div className="zNavLinks" style={{ display: "flex", alignItems: "center", gap: 24 }}>
          <a href="/pricing" style={{ color: "#555", fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.1em", textDecoration: "none", transition: "color 0.2s" }}
            onMouseEnter={e => e.target.style.color="#fff"} onMouseLeave={e => e.target.style.color="#555"}>
            Tarifs
          </a>
          <button className="zBtnPrimary" onClick={() => setShowLogin(true)} style={{ padding: "10px 22px", fontSize: 11 }}>
            Connexion →
          </button>
        </div>
        <div style={{ display: "none" }} className="zNavMobileBtn">
          <button className="zBtnPrimary" onClick={() => setShowLogin(true)} style={{ padding: "9px 18px", fontSize: 10 }}>
            Connexion →
          </button>
        </div>
        <style>{`@media(max-width:768px){.zNavLinks{display:none!important}.zNavMobileBtn{display:block!important}}`}</style>
      </nav>

      {/* ── HERO ── */}
      <section className="zHeroSection" data-section="hero" style={{ padding: "100px clamp(16px,5vw,48px) 80px", maxWidth: 1400, margin: "0 auto", position: "relative", zIndex: 1, display: "flex", alignItems: "center", gap: "clamp(32px,5vw,80px)", minHeight: "88vh" }}>
        <div className={`zScanLine ${visibleSections.hero ? "" : "zn"}`} />

        {/* LEFT COLUMN — Text */}
        <div style={{ flex: "1 1 480px", minWidth: 0 }}>
          <div data-anim="fadeUp" data-delay="1" className={visibleSections.hero ? "z-visible" : ""} style={{ marginBottom: 28 }}>
            <div className="zBadge">
              <div className="zBadgeDot" />
              <span className="zBadgeText">⚡ Sniper Bot · Marché Japonais</span>
            </div>
          </div>

          <h1 data-anim="fadeUp" data-delay="2" className={`zHeroTitle ${visibleSections.hero ? "z-visible" : ""}`}>
            TROUVE<br />
            LES PIÈCES<br />
            <span className="zRed">AVANT TOUT LE MONDE.</span>
          </h1>

          <p data-anim="fadeUp" data-delay="3" className={visibleSections.hero ? "z-visible" : ""} style={{ fontSize: "clamp(14px, 2vw, 17px)", color: "#666", maxWidth: 520, margin: "clamp(20px,3vw,32px) 0 clamp(28px,4vw,44px)", lineHeight: 1.75, fontWeight: 400 }}>
            PingTed scrape le marché japonais en temps réel. Tes filtres, tes alertes, ton avantage — actifs 24h/24, même quand tu dors.
          </p>

          <div data-anim="fadeUp" data-delay="4" className={`zHeroButtons ${visibleSections.hero ? "z-visible" : ""}`} style={{ display: "flex", flexWrap: "wrap", gap: 12, alignItems: "center" }}>
            <button className="zBtnPrimary" onClick={() => setShowLogin(true)} style={{ fontSize: "clamp(12px,1.5vw,14px)", padding: "clamp(14px,2vw,18px) clamp(28px,4vw,44px)" }}>
              Accéder au bot →
            </button>
            <a href="/pricing" className="zBtnGhost">
              Voir les tarifs
            </a>
          </div>

          {/* STATS */}
          <div data-anim="fadeUp" data-delay="5" className={`zStatsRow ${visibleSections.hero ? "z-visible" : ""}`} style={{ display: "flex", flexWrap: "wrap", gap: "clamp(24px,4vw,48px)", marginTop: "clamp(48px,6vw,72px)", paddingTop: "clamp(28px,4vw,40px)", borderTop: "1px solid rgba(255,255,255,0.05)" }}>
            {[["< 3s", "Délai d'alerte"], ["24/7", "Surveillance active"], ["∞", "Articles scrapés"], ["1 clic", "Pour payer"]].map(([val, label], i) => (
              <div key={i} style={{ textAlign: "left" }}>
                <div style={{ fontFamily: "'Bebas Neue', sans-serif", fontSize: "clamp(28px, 4vw, 42px)", color: "#fff", letterSpacing: "0.02em", lineHeight: 1, animation: `zCountUp 0.6s ${0.1 * i + 0.6}s cubic-bezier(0.22,1,0.36,1) both` }}>{val}</div>
                <div style={{ fontSize: "clamp(9px, 1.2vw, 11px)", color: "#3a3a3a", fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.1em", marginTop: 6 }}>{label}</div>
              </div>
            ))}
          </div>
        </div>

                {/* RIGHT COLUMN — Image Mosaic */}
        <div style={{ flex: "0 0 auto", width: "clamp(300px,42%,580px)", position: "relative", height: "clamp(480px,70vh,700px)", overflow: "hidden", display: "flex", alignItems: "center" }} className="zHeroMosaic">
          {/* Gradient masks */}
          <div style={{ position: "absolute", inset: 0, background: "linear-gradient(to right, #060606 0%, transparent 20%, transparent 80%, #060606 100%)", zIndex: 10, pointerEvents: "none" }} />
          <div style={{ position: "absolute", inset: 0, background: "linear-gradient(to bottom, #060606 0%, transparent 18%, transparent 82%, #060606 100%)", zIndex: 10, pointerEvents: "none" }} />

          <div style={{ display: "flex", flexDirection: "column", gap: 10, animation: "zMosaicUp 24s linear infinite", position: "absolute", left: "0", width: "calc(33% - 7px)" }}>
            
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzf/wAARCAFAAUADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDxu4YHCjt1qLFMOAcZOfYU/wAt/MaPZJvXO5dnIx1yKADFGKZkHpRQA/H0ox9KZRQA/H0ox9KZRQA/H0ox9KZRQA/H0ox9KZRQA/FFMr1L4U/DnSPGOiXV7qVxexSw3RiUQOoBG1T3B55oA8wx9KMfSvoX/hRPhn/n+1X/AL+p/wDE0f8ACifDP/P9qv8A39T/AOJoA+esfSjH0r6F/wCFE+Gf+f7Vf+/qf/E0f8KJ8M/8/wBqv/f1P/iaAPnrH0ox9K+hf+FE+Gf+f7Vf+/qf/E0f8KJ8M/8AP9qv/f1P/iaAPnrH0oxX0L/wonwz/wA/2q/9/U/+Jo/4UT4Z/wCf7Vf+/qf/ABNAHz1ijH0ru/i14K07wZe6dDpk11KtzE7v9oYEgggDGAPWuBoAfj6UY+lMooAfj6UY+lMooAfj6UY+lMooAfj6UYplFAD6SpreBpvu1a/syXHQ0uZGipyaujPoq9/Z0noarTQNDndRdA6ckrsipHHyg/hSjkZof7o+tMzIqlQYX61F3qVfuigC1o182l6vbX4hWYQyBzGwBDD05rZ1DxZNeeILjVhYogngMLW+flIIwckDJ559enNcyaWpcIuXN1GpO1gUYBzx7UlFLVCCiiigAooooAKKKKACiiigBK+hf2c/+RT1H/r/AD/6LSvnqvoX9nP/AJFPUf8Ar/P/AKLSgD1imyyJDE8kjBURSzE9gOtOpk0ayxPHIoZHUqynoQe1AHAt8XNAJJitr+WPJxIqIA3vy2fzqJ/jFoKdbLUP++Y//i66jwzommWWjwwQWFuqKz8eWDzuPc1rfYLPtawD/tkv+FJageen4z6AP+XHUPyj/wDiq6jwf4w07xZFO9gk0TwY3xzKAcHOCMEgg4P5VtfYbT/n1g/79r/hVPStLsLLUNQuLO0hhmndTK6LgvwOtAGpRRRTA8G/aR/5Cuif9e8v/oS145Xsf7SP/IV0T/r3l/8AQlrxygAooooAKKKKACiiigAooooAtWlyICCeo9qvnWQRjb+lY1JUuKZrGtKKsjY/tcen6VSurkTZPc+1VaShRSCVaUkPX7v40j/c/GlH3fxpH+5+NUZEY61Kv3RUQ61Kv3RQA2iiigAooooAKKKKACiiigAooooAKKKKAEr6F/Zz/wCRT1H/AK/z/wCi0r56r6F/Zz/5FPUf+v8AP/otKAPWKKKKAKWj4FngHpI4/wDHjV2s/RuIrlP7tzIP1z/WtCkthvcKp2T7ri8x2lx+gq5VDTDme+HpcH+QoYi/RRRTA8G/aR/5Cuif9e8v/oS145Xsf7SP/IV0T/r3l/8AQlrxygAooooAKKKKACiiigAooooAKKKKACiiigBy/d/Gkf7n40q/d/Gkf7n40ARjrUq/dFRDrUq/dFADaKKKACiiigAooooAKKKKACiiigAooooASvoX9nP/AJFPUf8Ar/P/AKLSvnqvoX9nP/kU9R/6/wA/+i0oA9Yqpqeo2mlWUt5qE6QW8Yyzt/nk+1W65H4oWCah4XZJdxWKdJMDuRkf1pPYFqZsfj2ys1untLO5vBLcF02bU+Ugc/MfaoJfiZfH/UeGnPvLfIv8ga88jhWGEIgyAMZ9fp7Uxlwp4XGOfTH/AMTWHtGjpVKLPSYPibMWAuvD8ka5+ZkvEbA9eQK0fCvjDSb/AFa6shI0N3cTGSKKQAbxgdCOM8dK8cZevAx1OR29/arfhK0WTxtokqswIu1z68A041G3qKdNJaH0WKKBRW5zng37SP8AyFdE/wCveX/0Ja8cr2P9pH/kK6J/17y/+hLXjlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADl+7+NI/3PxpV+7+NI/3PxoAjHWpV+6KiHWpV+6KAG0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAlfQv7Of/Ip6j/1/n/0WlfPVfQv7Of8AyKeo/wDX+f8A0WlAHrFYvjGIy+HL1R1CAj8CK2qz/ECCTRb1T3halLYa3PDGXGQMZx24ziq7DglcEdemM/59KtS8see3Un/PFV5MkEc5yCfc/wCNch2IrMPTtyeP1/8ArVs+A493jTSR2WVjj0Oxj+NY7AnpkHPY8/h7+tb/AMOU3+NNOJx8qykf98Hp7UR+IU/hZ7iOlLRRXYcZ4N+0j/yFdE/695f/AEJa8cr2P9pH/kK6J/17y/8AoS145QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA5fu/jSP8Ac/GlX7v40j/c/GgCMdalX7oqIdalX7ooAbRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACV9C/s5/wDIp6j/ANf5/wDRaV89V9C/s5/8inqP/X+f/RaUAesVU1Vd+m3a+sLD9Kt1n69exafplxc3DbYkQljSew0eISoQ7A/3v8/jVZlIH4cf59K1N6XIE8EchhkyyMUwGBP8qhkiYqTsYn6dK5Wnc7E1YyJB1yB/TH+HpXR/DYgeM7YsTlYZTz/u1lPbP2if16VY8OXTaP4hsp7i2nEUuYfMAGFLYAJ9s/jRBPmJm1Y95Vww4NOqhaM2Bk1fHSus5Dwb9pH/AJCuif8AXvL/AOhLXjlex/tI/wDIV0T/AK95f/QlrxygAooooAKKKKACiiigAoorQ0rSJ9S3MjKkanBdvX2pSkoq7NKVKdWXJBXZn0V0T+FJgp2XUZPYFSKwLiGS2meGZdrocEVMakZbM0r4StQ1qRsMopu4UoOas5x6/d/Gkf7n40q/d/Gkf7n40ARjrUq/dFRDrUq/dFADaKMH0owfSgAoowfSjB9KACijB9KMH0oAKKMH0owfSgAoowfSjB9KACijB9KMH0oASvoX9nP/AJFPUf8Ar/P/AKLSvnvB9K9E+HHxLXwVpNzYNpLXhmuDNvE+zHygYxtPpQB9MVn65o1nrlibO/Rmi3BvkcqQR7ivJP8Ahfyf9C2//gYP/iKP+F/R/wDQtyf+Bg/+IoA9UXw7p8cSRRwKERQoHoBTW8OWB/5Yr+VeW/8AC/o/+hbk/wDAwf8AxFH/AAv6P/oW5P8AwMH/AMRQB6efDVl/zyX8qrah4L0rUVhF1E2In3r5bleffHWvOf8Ahf0f/Qtyf+Bg/wDiKP8Ahf8AH/0Lcn/gYP8A4igD2aOFU6DipBXiv/C/4/8AoW5P/Awf/EUf8L+j/wChbf8A8DB/8RQBR/aR/wCQron/AF7y/wDoS145XZ/Erxyvje7sZ105rL7LG6YMu/duIPoMdK4zn0oAKKOfSjn0oAKKOfSjn0oAKKOfSjn0oAK7rwW0MdlbSXEXmxLOWkjBxuAIyK4XB9K1NI1mXTVZPLEkTHO0nGD7VlWi5Rsjvy2vTo171NmrHtXjK98MyaZBHodpEtxMwlLxrt8sd1PufT8a8X8U4/tiTHOVUn8q0H8V/Kdlmd3Ys+R/Kueup5Lq4eeY5dzk8VnShPn5pKx1Y3EYf6uqNKTlrfU0dItbeWDdI0IJJz5mOKyZUEc7oDkKxAPrTdp9KADnpXSeMSL938aR/ufjSgYGKR/ufjQBGOtSj7oqIdalH3RQAuT64oy3qa7dJPACFH8u+3I3IKsQwyMd+oGd3YnpxVC1vfDFvqlw8to01o1kpWMoSTcqVYgE4wpIIJwODjFAHL/N6mj5vU13Rv8AwPC8zw2skrS7m2ywtsXIbAAzkYyOlNluvAUs8k0lpdDfISI4g6KqlvTPpjAHvmgDh8t6mkyfU10OjalpVrouoRXVlBLeuw8lpoy3y4OQDj5T0+tR2kujJPa2rBXt0JkuLqdGDSNjhFUZOwHtwWPUjsAYeT60mT611y+JdJlvby5u9Fs2i8vbbW6wAEk5yxI+UEnBJ5x0UVQ1d9D/ALDtLfTriaS7icNITbeWH3A78kkk4IUL7Z7mgDByx70m4/3q6m91jQbx9GgXSUgtbfb9qZTtdvmOQWAyRjB/Tim2ep6LbX2pXFvZJFb4X7LBITKzEZxyRgAtgnJ4AxzmgDmct60mT1zWjDLpR8hZLS4L7l8x3ugEP97gJkD8yPer+sajo15qcskem4hAVVa1cw72AALbWDYHHA44680AYGW9TRlvWt+3vNGg0S+gEbPd3CEwNJbo/wBnO4fLvwGLEfxDAHpzx0Om6p4NXTbK0NpEJyytJJcwsAjqFG5nVicE7yABzkAgYzQB58GPZs/jS5Pqa7f4kavpV+LSHRmsZUDGSSS2g8sg4A2nIBx1NcPQAuT6mjJ9TSUUALk+poyfU0lFAC5PqaMn1NJRQAuT6mjJ9TSUUALk+poyfU0lFAC5PqaMn1NJRQAuT6mjJ9TSUUALk+poyfU0lFAC5PqaMn1NJRQAuT6mkyfU0UUAFI/3PxpaR/ufjQBGOtSj7oqIdalH3RQA4g9wePagKTyAT24rorzVIXtNVtzdpKJNhgIBJbnkZIzx7mpU1Syj8OwQW9x5N0hU4UEEPu5Y8YIxWfO+x2rDU7/H0OY2N/db8qMHpjmusPiBV1W4kS+Y28NvtiH/AD3cDjPHqSaoaVcDT5pxd3EO26tWckfMdxBwCccHrxRzu2wnh6fMkpGEQR1BANNrpPEl/Z3mn28dtOrujg4CnhdoHOR8vI6Cubqou6uY16apz5U7hS0lFUYhS0lFAC0ZpKKAFNApKKAFzSUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSP8Ac/GlpH+5+NAEY61KPuioh1qUfdFABRTfMPoPyo8xvQflQA6lFM8xvRfyo8xvQflQA80lN8xvQflR5h9B+VADqKb5h9B+VHmH0H5UAOopvmH0H5UeYfQflQA6im+YfQflR5h9B+VADqKb5h9B+VHmH0H5UAOopvmH0H5UeYfQflQA6im+YfQflR5h9B+VADqKb5h9B+VHmH0H5UAOopvmH0H5UeYfQflQA6im+YfQflR5h9B+VADqKb5h9B+VHmH0H5UAOopvmH0H5UeYfQflQA6im+YfQflR5h9B+VADqKb5h9B+VHmH0H5UAOopvmH0H5UeYfQflQA6im+YfQflR5h9B+VADqR+FxSeY3t+VNJoAQdalUgrj0qKgHByKACiptx9TS7j70AQUVPuPvRuPvQBBRU+4+po3H1NAEFFT7j6mjcfU0AQUVPuPqaNx9TQBBRU+4+po3H1NAEFFT7j70bj70AQUVPuPvRuPvQBBRU+4+9G4+9AEFFT7j70bj70AQUVPuPvRuPvQBBRU+4+9G4+9AEFFT7j70bj6mgCCip9x9TRuPqaAIKKn3H1NG4+poAgoqfcfU0bj6mgCCiptx96Nx9TQBDRU+4+po3H1NAEA60pqXce9MZR1HSgBlFLinIvc0AOyfQUvzeg/SrOjxWc+sW0WpyNHaPKFldSAVX1ya3Ly38JxeKZo455n0jyiUdDkbyuQM9doP41EppO1ilG+pzWW9B+lISR1x+VdPDF4STSSlw8j34hkHmRO21nH3CAQOp4x2AJrlh90j3ojPmvoJqwu76flRu+n5UlFWIXd9Pyo3fT8qSigBd30/Kjd9PypKKAF3fT8qsWFtNf3kNpbBTNM21ATgZ+tVq2fBoz4p0v/r4WlJ2TY4q7SNEeA/EB/wCWNt/3/Wk/4QTX/wDnjbf9/wBa9cVDgYpPLbPauD6zM7vq0DyNvA+uqQDHagnoPtC04eA/EB6QW3/f9a9aWL5wzKCR0yKlEbH+HH4U/rM+iD6vT7nkH/CBeIf+eFv/AN/1p3/CAeIv+fe3/wC/6167sIPJUfU0pZBwZYx9XFH1ip2F9Xp9zyIfD7xEf+WFt/4ELSj4eeJD/wAu9t/4ELXrnmxAZ86L/vsUya5RlUR3lsnPJLj/ABp/WKnYToU+55QPhz4lPS3tf/AhacPht4mPS3tf/Ala9gju7VEHmXtt7nzBViG/sXZUS8t2ZjgAOMmn7ap2F7Cn3PGR8M/FB/5d7X/wJWmS/DjxNErM9tbAKCT/AKSnQV7uFxWfrFo01tK6PtYRtnryMGnGvJsHQjY+adx9vypNx9vypo6D6Utdhxi7j7flRuPt+VJRQAu76flRuPt+VJRQAu4+35Ubj7flSUlAEqK7/dH6U/yJf7v6VPp8iRsC+K1jd25HQVDbOiFKMle5heRL/d/So2Vl+8K3vtNv7VmX0iOfk6UKTCdKKV0ynSP9wfWlpH+5+NWc4ypB9xfxqIdalX/Vr+NADfwBoyP7ooooAXPsPypCaKKACiiigAooooAKKKKACtrwX/yNel/9fC1i1teCzjxXpX/Xwv8AWk1dWGnZ3PcRgAZrE8R3WGito3KfxOQfyFbOQBXFatfI97KZHOBlgQueM4rP2MILRGvtZye4yUlR8sr5/wB40xN87lXLnjrk8VTXWLFHyZVI90PFK+rWkzFllUDPOFb9eKnlKuTSIUPAI+pzSRhWJJQs304FRx6laJJ80obH+ycj9KvaPr39nSSTW01uvmrsIkTIP4GnYVyuFHzbBx34q3DEvlhzGm/pjA/OqI1KCJmAcHP91Sf6fpTobyJsviTB7iJjn9KdguaUUeASVyF64HFWXMSxAx/K68rjrkc1Qh1iNIigSXpx+5bj9KVL1HbaIbneT08hgP1qrEnoVlqDzW8cuQwdQ1T3Fwj2c+75T5T/APoJrG0BZF0uEysG3AsuOynoKvXYBtJ/+uT/APoJpujFq5KqyR81DoPpS0g6D6UtUQFFFFABRRRQAUUUUAGTS7jSUUDuxd7epoJJpKKAuxw6Uj/c/GlH3fxpH+5+NAiMdalX7i/jUQ61KPuL+NADaKKKACiiigAooooAKKKKACiiigArZ8G/8jVpf/Xwv9axq2fBv/I1aX/18L/WgD2pl3RldxGRjNcpe2629xKgAdeVywrrQPlz6DNchdTxvdSOXX1waJ7DgVEtVmcBiNo6LSC3SJ/l2njnFPlnhjYYfB6/SmrewMNpIO3n61kaksFvExJfH0P86Xy0zhQMA8cVUOowhvvjA4p6anbDnePfNVYkuw20ZDFjjjJz296sRRgAheAazBq9qCAHUjHrVuHW7Ax5dunHP51SQrmtBDH5ZLEEj9P8aA4AwMggbc+1UE1/Ts5Z/wA6trq+jvH8020dz3p2EdDoTBtNiQEHyyUOPY1cu/8Aj0n/AOuT/wDoJrP8OyWktnI9hK0kXmHLN68VoXY/0Sc/9Mn/APQTVdCHufNI6D6UtIOg+lLUjCiiigAooooAKKKKACiiigAooooAcPu/jSP9z8aUfd/Gkf7n40ARjrUo+4v41EOtSj7i/jQA2iiigAooooAKKKKACiiigAooooAK2fBn/I1aX/18D+tY1bPg3/kadL/6+F/rQgPb15HtiuI1zT9Pju23Ncsw7xAce3JrsLmbybWSUHlEJFcewaVy0rE/jRNjgjIGm2cj/KmovzycoKQWOnxthrbUAe/75R/StQF4WODjPGKesIkQPk55z35qLl2MtLPTGHGnXz+h+0jn9Kd9m0peDpN1n3uv/rVoLhCQvA6VLHEGPI5qrisZQs9PK5XRLgjtm6PP6UottPx/yBpfxuz/AIVrMGTKdj1qVIEfDYI4wfrTQjLXS7J1DDSGGf8Ap8P+FXdLisrG4EyaMrsAQBJc7x+RFXI4sggDCntVyKBQo3DJ9QKaEzp9PaFrWN7eNUjYZ2qAAD36VLd/8ec//XJ//QTWZoEnyXELY+RwRj0IrRvG/wBEnx/zyf8A9BNUS1qfNI6D6UtIOg+lLUDCiiigAooooAKKKKACiiigAooooAcPu/jSP9z8aUfd/Gkf7n40ARjrUo+4v41EOtSj7i/jQA2iiigAooooAKKKKACiiigAooooAK1/CBx4n0z/AK7j+tZFa3hM48S6aT2nFAHr+sH/AIl5VclnYKAOvqa5dZGUHHrkexrd1pZXtkeMEqpy2Dz6CufJQA5LgjOeBgH86mbLgTx20jxlipyRlAeretOSRUiKbWBzknvmqiXoWNkUvhsdqVJU2E4kyPbp+tQiy2sBdSyqRx8vvWnoWkyX8F3Is8cRgGdj9Tx1/pWLHdhVZVV/m9RUtqSHDqshLHHBGB9aepJeW2Y8njj5frT4zt/dlD74NVY7iTLbUJyMHkVYgDN/ABjr8361oiWXYo9+SOFHvT9hTuMmq8TyIQVUcjGSetLIZ40zsQjphWqiTT0bMd5IMqQ8Y785B/8Ar1q3RH2Sf/rm/wD6CawtCDXMv2wsAiAxhc5z7/Sti6b/AEOf/rk3/oJoE9z5xHQfSlpB0H0pakYUUUUAFFFFABRRRQAUUUUAFFFFADh938aR/ufjSj7v40j/AHPxoAjHWpR9xfxqIdalH3F/GgBtFFFABRRRQAUUUUAFFFFABRRRQAVqeFuPEWn/APXcVl1peGjjX7A/9NhQB63qDAWYJyQWXp9a5OYgyMRnBNdY6farUxqwDds9K506bqmDH9hYjOCQwwffr+VTUTKpsYhtvsxLFuoz659vaqwftTzo+rknZZSY7bmUf1qf+y9WZNz2fz8A5de341CTNG0JC8Ihfcx6ZPHI+lMWZVOQxxTP7E1hsk2wyf8Apqv+NSDQ9XC4FqvPXMy/41aTJuixFPEEJLnOPmHp9KlS7UE4fist9A1wHi2UDt++X/GpV0jV1UbrQlgMcOp/rVK5Ju21yjAlnycenT3pl3ceZE4DcdPSsUafrQ5+xynPoR/jU8cGqRr81jMc8dBQI6nw18ungAng9/WtO7c/ZJxn/lm38jWbo0T29lGJciRgGZT/AAn0q3dODbTDP/LNv5GqWxL3Pn4dB9KWkHQfSlqRhRRRQAUUUUAFPiikmfbEjO3oozTK7fwRaRS20KtIkRnn2NK/RRkDn2rOpPkjc68FhvrFXkbstzkX069RSzWswUdSUNVq948VeD4/D+npdDUlmZ5AqRlApYEdRzXjPiSJINWmWMBQcNgdASOamFRuXLJG+JwdKFFVqUrq9tjNoq3ZaebqLeS4ycDaM5qmyMkhRuGU4NbHm2Hj7v40j/c/GlH3fxpH+5+NAEY61KPuL+NRDrUo+4v40ANop2B6Uu0elADKKfhaMCgBlFPwPSjaPSgBlFP2j0owPSgBlFPwKMCgBlXNFlSHVrWWVwiJICWPQVW2ijaPSgEen2niDTYwM6hbY9DJWgniXSMDOpWn/fwV5BgUYFNNg7X0PYh4m0Uf8xO0P/bSnf8ACS6IR/yFLUf9tK8bwPSjA9DRzCsexDxJov8A0FLT/v4KePEuiY/5Clp/38FeM4HelwKLhY9kPiXRT/zFLX/v4KT/AISTRf8AoKWn4yCvG8Cjj0ouB7EfEmig8anaf9/BSf8ACSaN/wBBO1/7+CvHuPSjj0ouFj2EeJNHyP8AiaWpH/XUVP8A21o0tvKDrWnplG4MwJJweK8X49KOPSi7GM7D6UtOwPSjA9KQDaKdgelGB6UANop2B6UYHpQA2ul8NatbwWptblxHhiVY9DntXOYHpRhfSonBTVmdGFxM8NU9pA9Du/EFvNHH9p1JZVhTZGpcttX0ArhtYu1vr+SdFIU8KD6Cq3HpRx6VMKSg7nRi8xqYmCg0kvIkttQu7RNkEuxQSfug1XZmeRpHOWY5J96fgelGB6VqeeA+7SP9z8admmv9z8aAIx1qUfcX8aiHWpR9xfxoA6U+F4Y9ZubSbVLcW9rE0sjowZ2VVJYKoyM8Hqe4z1xSW2i6e2km+ee4kkdtsMKAKru2Qse89WXhmIGAOOpFc2DjgcD2pzSO6qjOzKuQqk5C564HagDet/DmNcfTLy8ijMFu0tzKp+SFguQpbnjJUE9Ofaqo0cDS/t09ysADOo3j5ZsdPKwcvk5BOABjOazfNlLOxkclxhjuPzD39egpnf6UAaug6LJrAvCknli2iVslcgs0ioAfQfMST6A10cngKNUWQajKq+a0civCA8ar5mXYZ4Vtg2567q4gMR0JGeuDRubn5jzweetAHQ+KfDcegwwOlzJceZLJES0YQBk6jGcnqOehz14qfQfCkOqabb3s2oGBZpZIAixhmMigMAozzlcn64HeuXYk4yScdMnpSAkYwTx05oA6+88IWthZG4u9QmLpZ/aJI44l+Vt6IE5PXczD/gJq4vgCCW7a3i1KYEO6GR4V2oybNysQeCd/yjvtNcLubuxP40bm5+ZuTnr3oA2PE+ixaHc28MV6t2J4fPWRBhTGWIQjnuoBx2ziprbQLaXww2rNfP5xlaJIEhZhuAGAWxwTke3PWsA80oZgCAxAJzwaAN+z8OLLf29lc3RS42tJdRIoYwIP4c5xvxkkHAXueoqdPD+k3FvqM9nqszR2vyRNJAR9ofsFxxySAB16ngVzSyOocI7KHGGAJG4Zzg+tNycDk8HNAG54i8OXOhQWT3KOrzKRKHwNsgwSoHoAy89zn0rU8GeDTr9jc3s6XhiSQRxLahSXbBLdQeny/nXH5J6kn6mporq4hULFcTRqG3AJIQAfXg9aAPRpfhrp0cNs0mqzQSTKissiodsjngdugDZ9ccVy/jTw9aeHp4Ira5nmMwLr5qqPlHGeORk+orAkubiRNkk8rpndtaQkZ9cZ60yaWWZ980jyNjG52LHH1NADKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKR/ufjS0j/c/GgCMdalH3F/Goh1qUfcX8aAOot9HsLh7qLZNFLFLGobflQGIGRnk96nl0DTVuxGY7lDJBI6xmT7pTPJ4zg4Fcs13cuzs88rF8biXJ3Y6ZpWvLlpfNa4lMm3bvLnOPTNZOEr7noLFUErezNbQNLgv7e8+0RS+ZGhaMqSOcE+mPzNS61otrZaTHPD5vmgxguzZWTcuSQPasiXUr2UtvuZcOArBWIBAGBwPaoHnmkjSOSWRo0+6rMSF+gp8sr3uZ+2oqm48mvcjooorQ4wooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApH+5+NLSP9z8aAIx1qUfcX8aiFSr9we1AH//Z" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzf/wAARCAFAAUADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDxSMYG7vnFLQn3PxpT0oAMUYphYDrmnMrKQrI4YgEAryQelABilxQsUjfdjlPOOEJ59KZjrycjqDxigB+KMfSmUUAPx9KMfSmUUAPx9KMfSmUUAPx9KMfSmUqDcyg9yB+tADsfSjH0r6Cj+Bnhpo1Y32q5Kg8Sp6f7tO/4UX4Z/wCf7Vf+/qf/ABNAHz3j6UY+lfQn/Ci/DP8Az/ar/wB/U/8AiaP+FF+Gf+f7Vf8Av6n/AMTQB894+lGPpX0J/wAKL8M/8/2q/wDf1P8A4mj/AIUX4Z/5/tV/7+p/8TQB894+lGPpX0J/wovwz/z/AGq/9/U/+Jo/4UX4Z/5/tV/7+p/8TQB894+lGPpX0J/wovwz/wA/2q/9/U/+Jpf+FFeGf+f7Vf8Av6n/AMTQB89Y+lGK+hP+FF+Gf+f7Vf8Av6n/AMTR/wAKL8M/8/2q/wDf1P8A4mgD57xRitLxVp0Oj+JNT022Z2htbl4kaQgsQDgZ96yqAJFO1gR2qyk+DlXZOMHGRx3HFUqM0AWZJRjao69TUJFMooAmjcpxwR6Gnicf3D/31VakyaALfnj+4f8AvqkM4/uf+PVHDC0xwpq1/ZU+M5/SldFxpylqkQ+eP7n/AI9R54/uf+PVJ/Zc3rUM1o8P3jRzIbpTW6HeeP7n/j1MkmJQ7VA9+9Rig/db6UzMI/ufjQfu/jRH9z8aD938aAFjZop45lUMUIOCAensa6jXPGk2pa1p2p2+nQ272IwiEBg2DxngdBjHp2rlKM1EoRk7sak1odPbeMbq1DCCyjVXuftRUyMQJOeR3HJB69q5klmZnkJLMcknqTSZopxhGOyBtsDRRRVCCiiigAooooAKdF/rF/3h/Om06L/WL/vD+dAH2rD/AKmP/dH8qdTIf9TH/uD+VPoAKxfEfinSPDcW/U7kLIRlIIxukb6D+pq5ruoppOjXuoSAFbaFpMHuQOB+eK878OeAX8QFdc8VTSyG5/erbhtpYHoXPUD0UdqAM3VPi/qt9M1r4a0cB2OFaUGV/rsXist7/wCLuonzYmuLdOuCkUQ/IjNe2aZpOn6TAIdNsoLVPSJAufqepqy8avncBSA8p0XxL8SdKx/bmhpq9uPvNbOgmA9gv3vyrufDvjHR/EDm3tZ3gvk/1ljdJ5U6f8BPX6jNac1krD5Rg561zfijwzY+IIVS/VobyLm21CH5ZoG7EHuPai4HZUZrzLwb411HTdfPg/xsy/bwQLO/6LdKfu59z2Pfoea9MpgFFFFAHyP8Q/8Aketf/wCv+X/0KuerofiH/wAj1r//AF/y/wDoVc9QAUUUUAFFFFABSUtFAFi1nELZNaP9sALjH6VjUVLimaxrSirI1/7WHp+lVrq8Wf8AwxVGkoUUhuvJqzHjnJ96U/cb6Ui/dP1pT9xvpVGIkf3PxoP3T9aI/ufjQ33fxoAbRRRQAUUUUAFFFFABRRRQAUUUUAFOi/1i/wC8P502nRf6xf8AeH86APtSH/Ux/wC4P5U+mQ/6mP8A3B/Kn0Acv8TXKeCNUAOMxqD9N65ql8Jr19Q8NSXlxcNLc3F3LLIrZ/djOFUZ7BVGMVP8VNv/AAhOps/RIw3X3Fed/CzxKNIvBHeApYzARs5JxGw6Pj0PQ/hS1A9yooVgwDKQQRkEHg0UwFxVeeIMOlT1HKcDFIDzH4v+Gm1bw6dQtVb7fpWZo2X7xj6uv4cMPofWuh+FfipvFPhaGa6bN/b4iuR3Yjo//Ah+uayfjBrs2jeGNljcGG8vJhCjL94L1cj8OPxrjvgrqjWmvwwS/u4r2JoFX1ZfmX+R/OhAe8UUUUwPkf4h/wDI9a//ANf8v/oVc9XQ/EP/AJHrX/8Ar/l/9CrnqACiiigAooooAKKKKACiiigAooooAcv3T9aU/cb6Ui/dP1pT9xvpQAkf3Pxob7v40R/c/Ghvu/jQA2iiigAooooAKKKKACiiigAooooAKdF/rF/3h/Om06L/AFi/7w/nQB9qQ/6mP/cH8qfTIf8AUx/7g/lTnOF7UAeefGfWrex8OjTXG+a/cKF/uopBZj+g/GvHftQZSoZkRjnG3jFbfjzWV8QeK7ySPLRQN9ngyONq55/E5NYM6eUqrO/bj3qQOx8N/ETU/D8KWzOl9aLgLG+QVHordv5V3enfFnw/dMEuEubdyMn5N4H4j/CvBywLsjFlizwQOafCGjuJDblTFjnPrTA+hz8R/CYj3nVkHsY3z/KsTV/ivosKsumwXF9Lj5Rjy1J+p5/SvE2QGb/RzleuGNWJ3SEbiSZVGAO59KQF7xHrFzr+oNqWvOB5alYrdeEiX0HqfU96raDqLWurWepzZijtZVkgTH3iDnn6isydxOQZsgjG1cZq3ZpJI6sy7kHIDdMUAfVNrcRXdtFc27BopUDoR3BGRUlcL8JdZW90ebT2Yl7OTCA/8826fkciu7PWqA+RviH/AMj1r/8A1/y/+hVz1dD8Q/8Aketf/wCv+X/0KueoAKKKKACiiigAooooAKKKKACiiigBy/dP1pT9xvpSL90/WlP3G+lACR/c/Ghvu/jRH9z8aG+7+NADaKKKACiiigAooooAKKKKACiiigAp0X+sX/eH86bTov8AWL/vD+dAH2pFxAn+4P5Vg+N9X/sbwxqV8D88UB2c/wAR4H6mtsNi3T/cH8q8i+N+skx2GiowAlJuJv8AdUgKPzJP4UmB55AqJbR+UpaX7zHFU7uYl/MdsFchV7VfSZI9yjBUADr3x61nX0JZ97AHmkK5HaK0rAS8jGRmpw21njThc8/TvTrTnPbHrVebckuQOTxxQBbBRCvkjJwQVHpVa4YMpbdiTrj37cUkMhV/lXOf1qZYkZjK4bceeccUDIraJpHBmXIA44xzWtZwMUby2IUHgZ4+lQxTxswXpjk+9aNtPEuUjZXc8+9AHS/D3UBpvii12YEVyTDMM4GD0P8A30B+de4V85LI0E9t5ILS+am1R94sWGAK+jTVAfI3xD/5HrX/APr/AJf/AEKuerofiH/yPWv/APX/AC/+hVz1ABRRRQAUUUUAFFFFABRRRQAUUUUAOX7p+tKfuN9KRfun60p+430oASP7n40N938aI/ufjQ33fxoAbRRRQAUUUUAFFFFABRRRQAUUUUAFOj/1i/7w/nTadH99f94fzoA+ypGxAn+4P5V88fFu6N540uUUZ+zWyR8+v3j/AOhV9FmPdAn+4P5V5Z8QvA0eqXMt/aDyb1lwzfwycYwfw4zSYzy838b2qW8EfOAMnoDio1bc+J2AGCV54qotrdaZdSWt3bTKyHggY4+verHmWrEG581B0BZDgflQTYdnG4wZb/aAyKsTxjyFZcH3HeoV8vBW2uLfaTjlufqakigNqS4nim28EEgZzxQBFZwF2ZsZ46VIbdt20yYUHp7VXmnlNw0Nsm1SAxJGOtSwBUj23EgDfd4OeaBkskKxMHUDOOqmrFgiAtLIy8Dv3qGW5tUjEfzMTkcDmljstT1Bh/ZunXk/ICpHAzDPucUCPQfg/osmpa1Pq17GTBYgLAG5BkPf8B/MV7Oax/CGjpoOgWlgAPMVN0xH8Uh5Y/nx+FbB60xnyN8Q/wDketf/AOv+X/0KuerofiH/AMj1r/8A1/y/+hVz1ABRRRQAUUUUAFFFXNL02fUpSkOFVRlnboKTaSuy6dOVSSjFXbKdFdEfCkuD/pcee3yGsS+tJrG4aCcAMPToR6ipjUjLZm1bB16C5qkbIgoppYUuRVnMPX7p+tKfuN9KRfun60p+430oASP7n40H7v40R/c/GlI4oAZRRj2owfSgAoowfSjn0oAKKMH0owfSgAoo59KOfSgAoowfSjB9KACnR/fX/eH86bz6UqnawOOhBoA+1IQPJT/cH8qbJAkn31B/CvGo/j3GiKv/AAjbnAAz9sH/AMRTv+F/R/8AQtP/AOBg/wDiKAPT7zw3p14CLi2jcHsyg1jSfDfw6zEjToFz6DFcT/wv2M/8y0//AIGD/wCIpP8AhfkX/Qtyf+Bg/wDiKAOvk+F3h2Qc2ar/ALpIqL/hU3hojDWzH/gZrlf+F+Rf9C3J/wCBg/8AiKX/AIX5F/0Lcn/gYP8A4igDrY/hR4YXGbeYgdB5zf41dt/hr4UgYN/ZUcjesjM39a4T/hfsf/Qtyf8AgYP/AIilHx+j/wChbk/8DB/8RQB6nY+GtFsP+PTTbSI+qwjP51qoqoMKMD0HArxf/hf0f/Qtv/4GD/4ij/hf0f8A0Lb/APgYP/iKAPauKOprxX/hf0f/AELb/wDgYP8A4ij/AIX9H/0Lcn/gYP8A4igDzD4h/wDI9a//ANf8v/oVc9Wj4i1L+2dd1DUxCYRd3DzeWWzt3HOM96zufSgAoo59KOfSgAoo59KOfSgArq/BwH2S59fMH8q5TB9Kv6Tqk2myMyKHR/vIe9Z1YuUGkduX140MRGc9j3S7v/CbeFA0Onxf2g8fkiMD50cD7xPp3z36V414yH+mwdP9T/U1ZPiwY4sjn3k/+tWDqN5Lf3Bmm64wAOgHpWVOE+e8lax34zEYZYeVOlJycnfXoT6PBDKHMjRgggYkxiqmoRLDeyRoysoOQV6c88VX2n0pwWuk8Mev3T9aU/cb6Ui9MUp+630oASP7n40tJH9z8avaNJZQ6rayanE01msgM0Y/iX+v0oAo89iaU59TXcpqvhBTCbi1+07crLizWMuWKfMMYG1QHAHBOaqtqmgi0G6K0lnW3nV1XTwolmOfLYH+FQCPTkd80Achk+tJz6mtqLUdOt9CFp9hinupnBnmIZWjVc4CnONxznpjpnNXP7Q0CS6RWtfKsYLPEUfkmUtcNjcznKlsc4yQOBgdqAOa59TSc+proru+0EfbGt7MSK9wzW0AjMYRcYBZ8kkH72wd+9U4bjR1sfs8lrK07QNm5JwyzFhjABxsABHqdx9qAMnJ9TRk9m4rpYr/AEJNatpxaK0EBMsrlPLWdlT5UWMZCKWA65OSScdKZbavpSXUU91ZS3LCQ4E21vJiVSI1UDAY5IJJHOMY60Ac7z6mjJ9f1rdibRJEsBcKPPd/MvJTI4RV5+XAHUnso4HGecjSTXdFvdUla9sYba1WIJbvHaISHyu6RkwQSVBAHIHH1oA5Ak9zxQCT0bP416Fpeq+C49Tt7ieLbAiNmBrMABtoGWYDJOSxx90YXpVPxRq2gXniZJbZYn02G1Vdgg3b36kDG0A9BuPA560AcT83qeKOfU10y69pz2Wom60y2aaVfKs41Qn7MmPlwx7DJ/2iepFV4joIm0+NkGFG+7leRyp4+5gDJOeuAOwz1agDBGfU0cnua6B9V0288RSXs1pFBZiMhY1twdzAYDFAQu49cfdH4U8ajoMtpfG40tjKsUcVivnbSAAQWbaACc8n1zigDnOfU0ZPqa3hPojmyt3hR8BBcXLK0KgDkgKuSWPQseuOAOtVfEWoW2paiZrO1it4VQIoSMJvx/EVHAJ9B0GOpyaAMzJ9TRk+ppKKAFyfU0ZPqaSigBcn1NGT6mkooAXJ9TRk+ppKKAFyfU0ZPqaSigBcn1NGT6mkooAXJ9TRk+ppKKAFyfU0ZPqaSigBcn1NJk+poooAKU/cb6UlKfuN9KAGp9z8adTU+5+NWLJ4Y7uB7lC8KyAuo7jPNA4q7sRbT6HnmggjGQRn1rrrjWLM3t3tu42tprVwg2H5W7AZHH0HFVtWng1OytYYbuFpoELNtLKiqF6fMPvcdqzU3fY7JYWCi2p3aOa2MOoI+opMYrrrbXLbzdNS7uvOEcbPJIwJCSkYGeOw9PWsHXp4LnVZ5raRnjYjDN3OOevanGTb1RFWhCEOZSu+xn9KSlNJVnKFLmkooAWkoooAKKKKAFpKKKACg0UUAFLmkooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKU/cb6UlKfut9KAGxnKkelLUQOKfvb0H5UAOopvmH0X8qPMPov5UWAcOtFN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1FN8w+i/lR5h9F/KgB1BOFPvTfMPoPyprEk80AJSnrTo1zyafk9qAIaKm3H1NGT6mgCGipsn1NGT6mgCGipsn1NGT6mgCGipsn1NGT6mgCGipsn1NGT6mgCGipsn1NGT60AQ0VNuPqaMn1oAhoqbJ9TRk+poAhoqbJ9TRuPqaAIaKm3H1NG4+poAhoqbcfU0bj6mgCGipsn1oyfU0AQ0VNk+poyfU0AQ0VNk+poyfU0AQ0VNk+poyfU0AQ0VNk+poyfU0AQ0VNk+poyfU0AQ0VNk+po3H1NAEI60Gpsn1pjrxuFADk/1f40E0if6sfU0p+7+NACbvYUbvYflSUUALu9h+VG72H5UlFAC7vYflRu9h+VJRQAu72H5UbvYflSUUALu9h+VG72H5UlFAC7vYflSgkkDA5ptKn3l/wB4fzoBHZD4aeJiARb2vP8A08rS/wDCsvE//Pvaf+BK17LJe21rFGbq4jhyvBkbAPFTJIHUMrAqRkEHgivAeZ110R6iwdN9TxX/AIVl4o/597T/AMCVo/4Vj4o/597T/wACVr24GlzQs0q9kH1KmeJ2/wALfFVxL5cVtaFsZ/4+Vqz/AMKe8Zf8+ln/AOBSV7fo741KP3BH6V0v416uDryrU+aW5w4imqc7I+a/+FPeMv8Anzs//ApKP+FPeMv+fSz/APApK+lQaK6jC581f8Ke8Zf8+ln/AOBSUf8ACnvGX/PpZ/8AgWlfStFAXPmr/hT3jL/nzs//AALSj/hT3jL/AJ87P/wLSvpTNGaAufGuqWVxpeo3NheKq3FtK0UgUhgGHXB71V3ew/Kt74hf8j1r3/X/AC/+hVgUDF3ew/Kjd7D8qSigBd3sPyo3ew/KkooAXd7D8qN3sKSkoAkQM5woH5VJ5En939KksXVCpOMA81si7g2jgVDbR0U6UZK7ZheTJ/d/SmtGyfeAH4Vu/arf2qhfSxSE7aOZjlRgldMzqD9xqF6H60N9w1ZzCJ/qx9TSn7n40if6sfU0p+5+NADaKKKACiiigAooooAKKKKACiiigApU+8v1H86SlT7y/wC8P50Ma3PoLxBvmtLS3jk2GaVF+ZgqNgZAfIORx07nFX9KuvtNhFKzFmOVYnHJBIPTjGR2rP1eOSTT0EYkbEkZZU2fMvcHf8uO/PpVnSSRaBSX+ViAHeNiB/wDgV8pPWj6M92KtI091G+ot3FJHIJI1dc4IzzXMjQ0NMfbqUHu2K6a7vLeytnuLyeOCFBlpJGCgfjXIWkm27gOcYkX+dOFsvijxbdG9XzdK0crHFA3KS3B5LMO+309a9/Kp/u2jy8dH3kzd0nxPoesTmDTdTtriUDOxG5/AHrWvmuX8X+HLfUtMeeyiS31S0Uy2dxCoVlZedvHUHGMVqeHtS/tbRLK/wAbWnhVmX0buPzzXrHC0amaTNNzRmmSKTSEmkzRSA+TviF/yPOvf9f8v/oVc/XQfEH/AJHnXv8Ar/l/9Crn6RQUUUUAFFFFABRRRQAA46Uu8+ppKKB3Yu8+po3GkopWC7FXofrSt9w0i9D9aVvuGmIRP9WPqaU/c/GkT/Vj6mlP3PxoAbRRRQAUUUUAFFFFABRRRQAUUUUAFKn3l/3h/OkpU+8v+8P50Ma3Poq6QSWUqldw8v7u0HPHoQR+lUtAcGOZVeEruBCIV3Lxzu2gY/KtNDmMdeV7H2rJ0u5QXDW0VnFboAT/AK0NIWGMlh1Oc9T6V8ktYSR7+zTNnfiqtlMSroRgIxGc5zyaWSTAqj9qSEP5jhVZyQSayjqmjR6amvDJiZD6MD+tbHgdNumXU2ctPezSE+vOP6Vxba3bRMojEkzZwAi9T+NWNM8W3OhWsdnNYrPH87+YJNpJJ6dMcGvZyyMqbfOrXPNxrUl7p6YW/vdO/wBK574fMR4UswcHDSY+m9sVzF78Qbme0kS10/yXkQqsjvnaSMZGBzirPhbxHBo+mW2m38UqGMH96oyDknqO1evzLmPP5XynoIalzWbY6pZ34zaXMcuOqqeR9R1q6Gq7kE2aM0zdRuoEfKXxC/5HnXv+v+X/ANCrn63/AIgc+N9e/wCv6X/0KsCkUFFFFABRRRQAUUUUAFFFFABRRRQAq9D9aVvuGkXofrSt9w0AIn+rH1NKfufjSJ/qx9TSn7n40ANooooAKKKKACiiigAooooAKKKKAClT7y/UfzpKVPvL9R/OhjW59Gxt8q49BWJCTBq0g3ssPmFCQMoWIyFOFAB5z3+ta8LfIv0H8qo3toWu/tEQhj5Vi53Ekjg/L93OOM9a+TpySck+p9DKLaRFrN+LG0aU/MxIVV9Sa5Ge8mkuN9/ESG7gnir/AItuMzW8eAwG5ivr2/xqhDcQzRiKYlnHTdwfz7162XUYRp87WrPPxlSTnyrodFow0cxg3CQxEg7JTHkbvU+9TwaXosUEcLTWcoQkjHy4zjvn2rl086Bi9v5qk/7OQajbWBGcPIFbuCldcqKb0kc6qtKzR150/QWkQhrQY7+Zkj360s1no8St5stvMgJMaoMkZ6njvwK5VNSLruSdNvfAFRy3U0yFVkYp0ytJUEt5DdZvZFufUYrK782wJhkQ5Vo26Yr0PwR4wbWy9nfII7yNN6lRgSL3OOxrycR7W/eDAHI3cVu+DbrZ4ssGUnMjmNieBgqeAK6U+hzyV9We1iQUeZVYA0YPvVXM7HzB4+58ba6f+n6X/wBCrBrd8d/8jprmev22X/0KsKmMKKKKACiiigAooooAKKKKACiiigBV6H60rfcNIvQ/Wlb7hoARP9WPqaU/c/GkT/Vj6mlP3PxoAbRRRQAUUUUAFFFFABRRRQAUUUUAFKn3h9R/OkpU+8PqKGNbn0HbvujXnsKS5fEZqtbvt27umBUsscs6sIYpJCOSEUmvjbOT0R9LdJK5xPiSQPqQPORFj9TWfCoQgZBJ71oeJYJoNRUSxPGTECA64JGTWarALsXp619JhbqjFHiYl3qMsK5XiJiDnqDimtNLkYkcgdQTkUxAM9fk9cU9huX0wO/etzG7LSys8YII4HJCgVFLNI3LyOy9OpqNX2rkcAdaj5J3D8qNAuxCuOSOD0rU8NHZ4h0tyel0n86zCQo4+bI59q1PC+0+IdLBBZftSnGOtO4PU95/d4yOlKAhGRUKtlcipIuBj3qkyGj5Y8f4/wCE313H/P8AS/8AoVYFb3j7/kd9d/6/pf8A0KsGtCQooooAKKKKACiiigAooooAKKKKAFXofrSt9w0i9D9aVvuGgBE/1Y+ppT9z8aRP9WPqaU/c/GgBtFFFABRRRQAUUUUAFFFFABRRRQAUqffX6j+dJSx/fX/eH86APqrSPDEMHlzXpWaQAEIPuj/GtiZdmBGAo74HarCtsjUn+6P5VXZwzZrhdOFKPLFHS6k6jvJnmHxX06cyWuopGxiRDHIyjO3nIJ9utedLdW46yIPbdX0mVVgQVB+oqtLpdjMrbrK0ZyMAvApwfypQnyqzJkr6nz0L23z/AKxdvoGFOF9ERguvHT5hXvEvhzT2Jb+z9MPPANov+FMXwxpO9t+k6YU28EWq53Z/wrT2qFY8JN3Gx++uf94Uouo+zrn6ivcx4X0oMv8AxJtKPAyfsw6+1L/wjWnAcaTpROP+fVevPt9KXOFjwzzYyMhxjvzXS/D6za61+KaNSYrcM5I6AkEAfrXqEPh7TA7ebo+l7e2y3Gc5Pt6Yq/BaW1qu22t4YV9I0Cj9KUp3Vh2CEmPg9DVxR6VXK1PC2Rt4Bq6UujJkj5X8ff8AI7a7/wBf0v8A6FWDW/4//wCR313/AK/pf/QqwK6jIKKKKACiiigApY0aRgsalmPQAZJpK6fwdEoiuJ8fOGCg+gxmoqT5I3OnCYf6xWVO9rmEdNvgCTaT4H+waqkEEgjBHrXv1z4Jhg8PHVxq8bL5AkUbflZv7oOfw+teOeLokTUEdBgyR7m+ucVnCrJy5ZI6sRgqUaLq0pXs7PSxh5ozVmwsjd7jlsDj5RmobmJre4eJgcqe4xW55lhF6H60rfcNIvQ0rfcNACJ/qx9TSn7v40if6sfU06gBlFOwO4pcD0oAZRT8LRgelADKKfgelGB6UAMop+B6UYWgBlFPwKNooAZSpjeuemR/OnYHpRhaAPqFvG3hfykUeIdNPyjP+kD0pi+NvDOcf27pmPX7SK+YcCjArKVKMndlqbR9Rjxv4VH/ADMOmf8Af8Un/Cb+Fv8AoYdM/wDAgV8u4FGBS9hAOdn1AfG3hksceItKAHrcUv8AwmvhnGf+Ej0rP/Xevl4gUcUexiHOz6iHjXwx38SaUOP+e9IPGvhnv4h0r/wI/wDrV8vcUcU/YxDnZ9Q/8Jr4Y/6GPSf/AAIoPjXwv/0MOl/+BA/wr5ewKMCj2MRc7PqD/hM/DBP/ACMWlAf9fFOTxr4YVlz4i0o+uLjivlziihUooOdmx42uILvxfrNzaypNBLeSPHIhyrKTwQaxadgelGB6VqSNop2B6UYHpQA2inYHpRgelADa3fDOpwWRkhuW2JIQwfsD71iYHpRgelTOKkrM3w9eWHqKpDdHoj6/bmzW2OpIbdG3rD5mQGPfFcZ4hv47+9Dw58tE2gnv71nYHpRgelZwoqDudeKzKpiKfs2klvoPtru4tQRA+3PXgGmTyyXEzSzNudupxijC+lGF9K2PNEXoaVvuGlpG+4aAET/Vj6mrFlA11dwW8alnlkVFUHkkkD+tV0/1Y+pqa2uJrWdJ7aaSGZDlJI2Ksp9QR0oA9HsPh5pd/drbLdXsciwCWYB0cxkthRjaByPmzn8KsyfC2ziS6me5vhFEpYZKKcBNxPT+9xzjoa86udY1S72/atSvJtoIG+djjPXvUTalfupV766ZWBBBnYg5696BGhDoBbQDqcl7bxyblxbu6qdpzhjk98HAAz3OBVg+H7WO6srR79pp54PtDfZo94YE4WOMcFnPJycDHtzXOY9Kekkkbbkd1bBGVYg4PGM0DN7VNBggjvLizud1lZkRNO7AmeYn7qqOgHIz0+UnPIFNbw+om0mJZnkkvIRJPFCA8sOckHYccbNp5Pr0rCDMEKgkKcZAPBx0pWkeQ5d2Y4xljnjGMflQBr2WixTa7b6bJfRNGQWuJ4TuWFVBZvm6HAHJGR9cVDcadE3mNbXVnGkQKsJLxSzso5ZeBkE9KzVZkyUZlJBB2nHB6ikyfU0AdOPDlq1jbC1nmur+8by7dPlijc8EuCTkqvKknGSeOhqGy8Mi6mv0/tG3RLQMFkYhRM6j5gu4jAB/iP8A9asFpZWZWaRyyABSWJKgdMemKYfmJLcn1NAHS6J4esbvT577UtT8iKN9iLCFbe2ePmJwMgNgHnoelE/hcx2ulkPOLq9uhA8DKh8nOD82DkEg5AI6AmuaOfU05HeN96OysDkMpIOfrQBt/wBgwy3eoxwXsZtrVh5d3kGEqT/G3GDt5wASSMYoXQ7VLa4ln1FDJHB5yQoAGIZwqEknjOQxXkgVhZ7UAkEEcEHII7UAdHa+F86vFZXd7GF8rzpzCDujT33AAHvk4AHJ7Au0rQdM1XVby2ttSn+y20LSCX7OWebb1KoM/L07556enPGaVvM3SyHzf9Zlj8/OefXnnmmAlTlSQfUHFAGqdGCQtNJcqiSy+XZBhzcfNjfjqqAd8cngd8bB8MaV/advpo1S4Fy0e64Jt/lhwORxkjPX5sbR15OBySOyOrozK6kFWBwRj0PagliSSSc9cnrQB0c/hWVdIvtSgZ5reGRvs8oG1ZolOGk59yMAdeT2rYj+HsEi2qrrtuJpZIY5Y2UAwllLODk8kY4A5PfArhCWxjJ/OkOSepoA6oeFLb7K05uroBLczSHyVKpkkRKcHJMmOAOgIJ4o1nwnbadpNzfR37yNBIImjZFx5mQHTIPJBJ6dlJ9K5YMwBwzDPXmjJxgk9c9aAG0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFDfcNFDfcNACJ/qx9TViygFzdwQM4QSOF3Htk9arp9zHvTqBxaTTZ1U2iael3d23l3AaC3aRG8zhsevHX6U+XQLCKS1BjnYM+yX5j3QNk4HHPpkVzDXl0xy1zMTtKZLn7p7fSlF9dqUK3U4KDCESH5R6D0rLkl3O9Ymh/z7NX+yYx4jlsVtp5oVYgKH2nGM5LegrQ/wCEesWt76aLzW2M4iV2KbQq5yeP54rnRqV6I1RbmQBWZxhsHJ6nPXtUbXl03mbrmZvM+/lyd/19aHGT6kxr0I39y5CaKSitThCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAChvuGihvuNQB//2Q==" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
          </div>

          <div style={{ display: "flex", flexDirection: "column", gap: 10, animation: "zMosaicDown 20s linear infinite", position: "absolute", left: "calc(33% + 7px)", width: "calc(33% - 7px)", top: "-60px" }}>
            
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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Heuj8P8Ai0X2ox6fqEUUcko/dtC+VJHY15cszCNVzxj1o066eDV7SbPKTIQfT5hQCPo6zto5CCWGR7dKsOYkYQqACeRmqqskOSu4n0qq7Sz3qBV3Y5IziobGaxT98pbp2qUkgegNRpgKpY5IHPtTnYtyq/Ko60gKOqmNrK6HcQP/AOgmvlwdBX1LcoTZX0h4XyJBz3+U18tDoKtCFooopgFFFFABTl+6frTacv3T9aACmydR9BTqbJ1H0FADqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAvuQsa59KrLJm6j6/fH86klb5AM9qqA4lB9DQB9PxkSRKMgJtHPfpTxNFbtiJfmPU1k2N0ZLGEg8PGmfyFXnRmICg+57VDGW47rzC3yAj+tTo5YbOijkmq9tEWT5Ngx75yau+UNgG4Z9AppAUtQkDWF0o4UQyc9P4TXyyOg+lfUOqh47K5GxiDBJyR/smvl4dB9KtCFooopgFFFFABTl+6frTacv3T9aACmydR9BTqbJ1H0FADqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAsyfdqmfvirj8p3zVM/6wfWgZ7tokskumWmQzBoE4A/2RXUaUzGMRyEAjoCc1jeGHnuPDOmNEEU/ZYx168YrctYmkGJMK4/urgGs+oF0KIj8rDfU0ZmcAfOo9aqqSGKg7MfxBeKcZHQgtuZumWPP5UwJNTjP9mXe+NpP9Hk6kf3TXyeOg+lfVt7MTp93lzgwScD/AHTXykOg+lUhC0UUUwCiiigApy/dP1ptOX7p+tABTZOo+gp1Nk6j6CgB1KCAORn8aSigB2V/un/vqjKf3T/31TaKAHZX+6f++qMr/dP/AH1TaKAHZX+6f++qMr/dP/fVNooAdlf7p/76oyv90/8AfVNooAdlf7p/76oyv90/99U2igB2V/un/vqjK/3T/wB9U2igB2V/un/vqjK/3T/31TaKAHZX+6f++qMr/dP/AH1TaKAHZX+6f++qMr/dP/fVNooAdlf7p/76oyv90/8AfVNooAdlewx9TSUlLQBotY4txK93bojDKFt3zeo6dvXpWY6MkoDYPOQQcgitVvLltmEltuMaALN5pAHfGOlV9REO2B4bX7MWX5oy7Nn356VNx2Pc/ALwy+EtMB3M3k4wo6YJrrIYnwvk8eofiuL+Fkxl8HWijaPLlkQk9/mz/Wu0SJmX96C2OhXikBYeIY+ecD6KKpTRlcss6BB1C9TUnm+U23yZgPXIqUSK/Kxkn3xQBjaozxadclWGPJfr/umvmYdB9K+o9Wl3WF0rRyD9zJjKkD7p718uDoPpVIQtFFFMAooooAKcv3T9abTl+6frQAU2TqPoKdTZOo+goAdRRRQAoBYgKCSeAB3qb7HdbnU2025BuZfLOVHqfSnaddGyvYbkIHMbZ2nvV+01mK0LCO3lZBKJY983IYAj5jjkc9KaAzBbzsARDIQV3DCnkZxn6Z4qQ6feCQR/ZJ95GQvlnJFX21wtpzWRgG0weUHzyp3ZJHseOPalg10w3puRBuP2dIQrNkfLjn9KBGctnO1vJPsPlxttbPUGkW0uHkaNYJWkUZZQhyB6kVotreYJUELFmEqqzSZG2Q5O4Y5I9ad/bcP2u5uBayf6RCI3UyA4xjkZHt3oAyY4JpY3eOJ3ROWZVJC/Wl+zz7nXyZNyY3DacjPTNWLe/MGn3NqqA+e6sWODgDP689aunWoTfT3H2WTbcKokXzRnKkEYOOnFAGWbW4VSzQShVzklDgY6/lUVa0msiWxubZ4GzcSNKzrJ0YkEYHpxyO9ZFIAooooGFFFFABRRRQAUUUUAFFFFABSikpR0oAuJreoQELFOFWMbVGxeB+X61Smmmup2lmkMkjHJYnrXYab4UtZoYZ7qV8SoGCJ15GetbOn+DNKuJjsinIHZ2Iz+NSM6j4TExeEYy3ylriRhn0z/APWrurS53xO82AhOFAPUVz+n2cVpawW8FukEcaYVU6YrQshJLtLkAY4HUCkBos8csZ8oRMc8ZbNMRZ25ZI0x/dwc1PEViAG+PH5UrvKDuTySncZOaYinqJjWyuh5XzGCTkpn+E18rjoPpX1RqQmk0+6ZGKfuJOUb/ZPY18rjoPpTQC0UUUwCiiigApy/dP1ptOX7p+tABTZOo+gp1Nk6j6CgB1FFFABRSqCxAHU1YWNAORk+9AFairW1P7oo2p/dFAFWirW1P7o/Kjan90flQBVoq1tT+6Pyo2p/dH5UAVaKtbU/uj8qNqf3R+VAFWirW1P7o/Kjan90flQBVoq1tT+6Pyo2p/dH5UAVaKtbU/uj8qNqf3R+VAFWirW1P7o/Kjan90UAVaKslEI+7j3FV2BViDQAlHY0UHoaAPY/DaZ02y3c/uUxx7CustFUAfMAe2MVynh5v+JVZAgn9wnP/ARXUWZhwCAFNSBsRKrDDDPqal8qM8L+lR28icAFSDV5GiJ2sB+BoArm3iwNyMffFN8lFO5RIfbkf1rQEULfxMpqhrE9rpVm91dS7Y1/ujknsB6mgCpfzwx6fdq0jx5gk4Y/7Jr5dHQfSvctQ8eFoLhIdPQo0TqDJLk8gjOMV4WGNNAPopAc0E4pgLRTd3tRu9qAHU5fun60ynr90/WgApsnUfQU6mydR9BQB//Z" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzf/wAARCAFAAUADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDxCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAJaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAopnnJ/cP8A31/9ajzk/uH/AL6/+tQA+imecn9w/wDfX/1qPOT+4f8Avr/61AD6KZ5yf3D/AN9f/Wo85P7h/wC+v/rUAPopnnJ/cP8A31/9ajzk/uH/AL6/+tQA+imecn9w/wDfX/1qPOT+4f8Avr/61AD6KZ5yf3D/AN9f/Wo85P7h/wC+v/rUAPopnnJ/cP8A31/9ajzk/uH/AL6/+tQA+imecn9w/wDfX/1qPOT+4f8Avr/61AD6KZ5yf3D/AN9f/Wo85P7h/wC+v/rUAPopnnJ/cP8A31/9ajzk/uH/AL6/+tQA+imecn9w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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzf/wAARCAFAAUADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDxWiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGyfeb60ynP8Afb602gAooooAKKKKACiiigAooooAKKKKACiiigAooooAlooooAKBz0oq0ieWuO/c0ARCB++B9TSNC6jOMj25qfml5oAp0VYmQEbh17+9QUAJRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUARv99vrSUr/AH2+tJQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAS0UUUASQf61farFVY22uCenerXegDuNH0aWfS7WUeDLG7Dxgi4fVjG0v+0V3jH0xVXxRpclppfmv4VtNMHmKPtEWpGdvpt3nr64rLtNQ8PR20SXfhkXE6rh5vt8ibz64A4qLUr3RJ7bZpugfYZ9wPnfbHk47jBGOaAMpeWAPeqhq3naCx7VToAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCN/vt9aSlf77fWkoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAJaKKKACpo5RgK/bo1Q0tAFoDPKkEexoJC/eIFVMUYFAEkkpfgcLUdFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUARv99vrSUr/AH2+tJQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAS0UVPZ2k15OIbdNzn9B6mk3bVlRi5O0dyCit9fC1yVBa4hU+mCaX/hFrj/n5h/75NZ+2p9zt/szF/yM5+iug/4Ra4/5+of++TR/wi1x/wA/UP8A3yaPbU+4f2Zi/wCRnP0V0H/CLXH/AD9Q/wDfJo/4Ra4/5+of++TR7an3D+zMX/Izn6K6D/hFrj/n6h/75NH/AAi1x/z9Q/8AfJo9tT7h/ZmL/kZz9FdB/wAItcf8/UP/AHyaP+EWuP8An6h/75NHtqfcP7Mxf8jOforoP+EWuP8An6h/75NH/CLXH/P1D/3yaPbU+4f2Zi/5Gc/RXQf8Itcf8/UP/fJo/wCEWuP+fqH/AL5NHt6fcP7Mxf8AIzn6K6D/AIRa4/5+of8Avk0f8Itcf8/UP/fJo9vT7h/ZmL/kZz9FdB/wi1x/z9Q/98mj/hFrj/n6h/75NHt6fcP7Mxf8jOforoP+EWuP+fmH/vk0HwtcYOLmEn0waPb0+4f2Zi/5Gc/RVi+sp7GXy7hNp7HsfpVetE09jinCUJcslZkb/fb60lK/32+tJTJCiiigAooooAKKKKACiiigAooooAKKKKACiiigCWur8IRqLOaXHztJtJ9gBXKV1/hH/kGyf9dT/IVz4l+4etkqTxaNrvRS1ueHNJjv4b2e5U+TCg+ZeSD1zt78V58IuTsj66tWVKDmzCoz71PIUa6JU5QvwduOM+ldLcPZfaXvA8DRWkszBWCks/ARQo+8nf8AOrVNO9jGpiXTteN7nJ596K6h1toWgNtJbtaPdtJLuK48llU4YHnjLAD1qSFNM861t45IM2cySMWAG9WzuGejYyv5Gn7LzM3jtPhZyf40V0EZt5NYsX3xNC9ucs+0EttYfOOgOePypbGG2lsbXT7l4YXmSTdI5GY2VwRk+43Cl7PzKeLsk+X+tf8AI57PvRW9rNxHc6dDLbKERnk3JHtAC7vl3DrnGKwjUSjyuxvRqOpHmasJRRRUmwUUUUAFFFFABRW9oZ0L7DINUX/Sd7FDz028Zx2zV+KTwuLqQTxxeQI0MZTdkt0YH+f4Vqqd1e5xzxfJJx5G7HJUVb1U2p1Cf7AALbdiPryPXmqlZtWZ1RlzRTMbxXEraashHzJIMH69a5A12Xij/kEN/wBdFrjK9HDO8D5DO0livkiN/vt9aSlf77fWkroPHCiiigAooooAKKKKACiiigAooooAKKKKACiiigCWup8I3CfZ5rcnDht4HqMY/pXLU+GV4ZA8TFXXkEHBFZ1Ic8bHVgsT9WrKpa56MKcGI6MR9DXEr4g1EADzlP1QUv8AwkOpf89U/wC/Yrj+qz7n0f8AbuGa1TO0pMD2ri/+Eh1L/nqn/fsUf8JDqX/PVP8Av2KPqs+4/wC3cN2Z2e0ZzxmlA+lcX/wkOpf89U/79ij/AISHUv8Anqn/AH7FH1Wfcf8AbuG7M7Xj2pMDGMCuL/4SHUv+eqf9+xR/wkOpf89U/wC/Yo+qzF/buG7M7TAz2oNcX/wkOpf89U/79ij/AISHUv8Anqn/AH7FH1WfcP7dw3ZnaUVxf/CQ6l/z1T/v2KP+Eh1L/nqn/fsUfVZh/buG7M7SjNcX/wAJDqX/AD1T/v2KP+Eh1L/nqn/fsUfVZh/buG7M7TNFcX/wkOpf89U/79ij/hIdS/56p/37FH1WYf27huzO17Ugri/+Eh1L/nqn/fsUf8JDqX/PVP8Av2KPqsw/t3DdmdrSVxf/AAkOpf8APVP+/YpD4g1Ij/XKPogo+qzD+3sN2Zs+LLhEsUt8/PI4YD2HeuTNPmmluJTJM7O7dS1MNdlKnyRsfO47FfWqzqWsRP8Afb60lK/32+tJWhxhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBLRRRQAtFArqfC/hywvtPl1XXb6WzsI5REGRM7yRjgjJGGK9ulFm9gOWora8XeH5PDWsHT2lMyeWrxz7dokB7gZPGcjn0qrJpwSa4XzSY4kLK2Pv+36H8qAM+ir0lgizSxBpSY+igLufnqP8OtQw24kt3lJbhwoxjuOvNAFeirhs0W5iiZ2IkZlyoHBDYpVs43txKGcAk4JAx97GPqaAKVFXnskWWZAZSYzjaApYjnnr04qjQAlFFFABRRRQAUUUUAFFFFABRRRQAuaSiigCN/vt9aSpGjYsTjv60nlSf3f1FADKKf5Mn939RS+TJ6D8xQBHRUnkSeg/MUeRJ6D8xQBHRUvkSeg/MUeRJ6D8xQBFRUvkSeg/MUeRJ6D8xQBFRUvkSeg/MUeRJ6D8xQBFRUvkSeg/MUeRJ6D8xQBFRUvkSeg/MUeRJ6D8xQAUUUUAKK2fD/iW90HzFtVhkilbdJHKmQxAIHPUYzn8KxaKL2Au6vqlzq9/JfXzI1xIF3MihQcADoPpUbX07Ahn4JY4x/e61WooAsfa3M3nFIvMzu3bOc+tR+a+zbnjfv5Heo6KALBvJSys2wsrFlbbyCTn+dIlzKmNrDABAGOxOf51BRQBYF24kMgSISE53BOQfUe9QUlFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACnqaUUh+8aKAHClpBS0AApaQUtABRRRQAUUUUAFFFFABRRRQAUUUUARUUUUAFFFWIbK6uIXmgt5ZI04ZlUkChuw4xcnZIr0VLcW81tJ5dxE8b4B2uuDg0hgmEjxmN96DLLjkD3oBpp2ZHRUxtZwxUxNuHUelMSKR0Z0QlV6n0oEMop/kyYB8tsFd4OOq+v0o8mTCHY2HOF46n2oAZRUxtp1KgxMC/3Rjk00wShmUxtlV3HjoPWgCOiphbTsEIich8BeOuelH2WfcV8psgZ6dvWgCGinvDIiBnQqp6E0ygAooooAKKKKACiiigAooo70AKfvGikMgDH5f1o81f7h/wC+qAHilpnnL/zzP/fVHnL/AHP/AB6gB4paYJk/uf8Aj1HnJ/cP/fX/ANagB9FM85P7h/76/wDrUecn9w/99f8A1qAH0Uzzk/uH/vr/AOtR5yf3D/31/wDWoAfRTPOT+4f++v8A61HnJ/cP/fX/ANagB9FM85P7h/76/wDrUecn9w/99f8A1qAH0Uzzk/uH/vr/AOtR5yf3D/31/wDWoAbRRRQAV1fhDXrawt5LS8cRISSr4JBz1BxXKUUWvub4fETw9Tnhua3iPVRq+qeeoIiRRHHuHO0f5NJJqMTvK+1t8oZWYjqB93/6/wBBWVRQlYzq1JVZuct2aLXEDXEzMyGGRssnlHnk/keetQQSQ+Q0c5ypJKrsyVPqD/P6VVooINJ7y3k3rtaMYZEP3vlIx0/Ace5psd5FH8uWYRovlHH8YBGcdhz+grPooAvtcwsAMgboRExCHcpwOc9xxTorq1gI2R7t20SbcqCMc/nnp7VnUUAacV5bqY15AjCfMF5bAIwfzzUcM8CW5tywYbThnjJGSwOMde1UKKALVzLHJCgLB5VwN4Tb8uOh9faqtFFABRRRQAUUUUAFFFFABR3oo70ANdW3Hg9abtb0NPb7x+tAoAbsb+6aPLb0NPooAb5beho8tvQ06igBvlt6Gjy29DTqKAG+W3oaPLb0NOooAb5beho8tvQ06igBvlt6Gjy29DTqKAI9tGKlIzUZGDigB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUd6KKAGsRuP1oBHrXf6V4Asr+0gnkvrlGljVyFVcDIzWvB8KtNkx/wATK8Gf9hKAPKsil3CvYYfg/pTkb9VvwPZEqwPgzo3GdX1AD/rmlFwPFsilyPWvbT8E9HC7hrN+f+2aVG/wW0hTn+17/b/1zSi4Hi3HrRx617Fd/B3SYbWaWPVL9mjjZwCiY4BP9K8gS2kZFc8BhkUrjSb2I+PWjj1qf7I565/75o+xv6t/3z/9ei6L9nPsQcev6Ucev6VP9jf1b/vn/wCvSG0YdSf++aLoXs5diIY9aSh0Ke49aB0pktWCmydfwFPHWmSdR9BQIdRRRQAV1/g7w4NUtWneGG4DS7FR2ZdpHuOOcj8q5CtCw1vVNOi8qwv57ePdu2xtgZ9acbdRp21SuXvGGjNourCBoo4lkjEiRoxYKOnU+4J/Gq89hCktyyb/ACwjeUued46j8MfqKqajqV9qkyzajdS3MqrtDyNkgZzj9ag86XcG8x85J6+vWkJu+pZvrRYFjaPnB2SfNn5h/L/61T3NpBH5rIm4R7hhWPJBA5/A5NZxdiCNxwTkjPU05p5mcO0rlh0JY8UAWZLaMwRzKpDOyArnOAc/zxUi28BdE8rrO6ZDHkKMiqQnkDs4kcM3U7uTTfMcY2swwcjB6H1oAurbQeeYCpAVFbzS3Xofpg54pYrWI+cZAPkaQDcxAwo4ziqi3EyxmMStsIwVJyMUn2ibeG86TcBgHdzigCN8bzjGM8Y6UlKzMxLMSSepNJQAUUUUAFFFFABRRRQAUUUUAFB6Gig9DQB7R4dbGlWSjvAn/oIrqbJt52g9B1FcXoc/l6dYr38hP/QRXUaVcKXK5+Y9algdDbxuGBbO3tV4SBR0qjBINoYE4x0qdQJmCk4FAyTzi/Ax+dMOFPLhiegzk0OojX5Mjnj0qZQDH8iqreh70CK96VfTLzORi3k5/wCAmvmu3KfZIM4+7X0heLMbC78wceRJx6fKa+WkuZBGq8FVHGe1FrmlOai9Tog8OMcUFoscYrn/ALXJ6Cj7XJ6Co5Dp+sRN4NF7VDdNHtrH+1SegpDdOeqinyCdeI64xs4/vVAOn40Mxc5P5UL0P1q0cspXY4UyTqPoKdTZOo+lMkdRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFB6Gig9DQB6/o8aLpVm7nB+zpjH+6Kv2lyIGJLcnv6VDoEXmaTYhhlfs6DGcfwitT+zYpCAAqg9wM1LGaGm35MZDHJ7Vo6fcsZCzH5c8GsuK3gtIwELMx7npVi2EjttQcjk+gpAbkcu48nPP4VPJclBhEDH2HNUmURJndz2Aqe2Qsd0hPTGKYhmozN/Z10WTBMEnH/ATXyivQV9Yavc7NNulQDmGQZ9PlNfJ46D6U0AtFFFMAooooAKcv3T9abTl+6frQAU2TqPoKdTZOo+goAdRRRQAV0nhLwZqXilm+xNFFGG2iSYkBm64HvXN133w+8fW/hnTbrTdQsXuraZ/MQxMAyN6gn+dJmlNRb945PX9EvdA1OTT9QQLMnPHRh6iqzWM6zTRFRuhXe2Dxj29eta3jTxHJ4n1s6g6FQEVEDYyQO596oNqZYsRGAW3c55weg/Ak0xVElJ2IBZSFym+LIYK3zfdJ4ANNltmjUszx4yQOT8xHXHFSm7UO0kcZDO4dwW44OcD8ab9pXypkw580kkFsqMnrj1oIIzbOIBLlSCAcA84JwOPqKe1jOpmGFJhUO2D2Pp61NHqCpFFG0RfywMAtxkEkHHrzTRqD+WPlAlGAHHAwGz0/P86AIzYziMSELtLKuQehIBH4cihrKVF3SMiL0yzd8kf0NWDqY85XWABA+Wj3ZBXao2/wDjuajF8NwcxtnaVKhvlYEk4Ix70AUqKWkoAKKKKACiiigAooooAKKKKACjtRRQB6Dpeu31tZW6xfZWCxqFVyR0Heuj8P8Ai0X2ox6fqEUUcko/dtC+VJHY15cszCNVzxj1o066eDV7SbPKTIQfT5hQCPo6zto5CCWGR7dKsOYkYQqACeRmqqskOSu4n0qq7Sz3qBV3Y5IziobGaxT98pbp2qUkgegNRpgKpY5IHPtTnYtyq/Ko60gKOqmNrK6HcQP/AOgmvlwdBX1LcoTZX0h4XyJBz3+U18tDoKtCFooopgFFFFABTl+6frTacv3T9aACmydR9BTqbJ1H0FADqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAvuQsa59KrLJm6j6/fH86klb5AM9qqA4lB9DQB9PxkSRKMgJtHPfpTxNFbtiJfmPU1k2N0ZLGEg8PGmfyFXnRmICg+57VDGW47rzC3yAj+tTo5YbOijkmq9tEWT5Ngx75yau+UNgG4Z9AppAUtQkDWF0o4UQyc9P4TXyyOg+lfUOqh47K5GxiDBJyR/smvl4dB9KtCFooopgFFFFABTl+6frTacv3T9aACmydR9BTqbJ1H0FADqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAsyfdqmfvirj8p3zVM/6wfWgZ7tokskumWmQzBoE4A/2RXUaUzGMRyEAjoCc1jeGHnuPDOmNEEU/ZYx168YrctYmkGJMK4/urgGs+oF0KIj8rDfU0ZmcAfOo9aqqSGKg7MfxBeKcZHQgtuZumWPP5UwJNTjP9mXe+NpP9Hk6kf3TXyeOg+lfVt7MTp93lzgwScD/AHTXykOg+lUhC0UUUwCiiigApy/dP1ptOX7p+tABTZOo+gp1Nk6j6CgB1KCAORn8aSigB2V/un/vqjKf3T/31TaKAHZX+6f++qMr/dP/AH1TaKAHZX+6f++qMr/dP/fVNooAdlf7p/76oyv90/8AfVNooAdlf7p/76oyv90/99U2igB2V/un/vqjK/3T/wB9U2igB2V/un/vqjK/3T/31TaKAHZX+6f++qMr/dP/AH1TaKAHZX+6f++qMr/dP/fVNooAdlf7p/76oyv90/8AfVNooAdlewx9TSUlLQBotY4txK93bojDKFt3zeo6dvXpWY6MkoDYPOQQcgitVvLltmEltuMaALN5pAHfGOlV9REO2B4bX7MWX5oy7Nn356VNx2Pc/ALwy+EtMB3M3k4wo6YJrrIYnwvk8eofiuL+Fkxl8HWijaPLlkQk9/mz/Wu0SJmX96C2OhXikBYeIY+ecD6KKpTRlcss6BB1C9TUnm+U23yZgPXIqUSK/Kxkn3xQBjaozxadclWGPJfr/umvmYdB9K+o9Wl3WF0rRyD9zJjKkD7p718uDoPpVIQtFFFMAooooAKcv3T9abTl+6frQAU2TqPoKdTZOo+goAdRRRQAoBYgKCSeAB3qb7HdbnU2025BuZfLOVHqfSnaddGyvYbkIHMbZ2nvV+01mK0LCO3lZBKJY983IYAj5jjkc9KaAzBbzsARDIQV3DCnkZxn6Z4qQ6feCQR/ZJ95GQvlnJFX21wtpzWRgG0weUHzyp3ZJHseOPalg10w3puRBuP2dIQrNkfLjn9KBGctnO1vJPsPlxttbPUGkW0uHkaNYJWkUZZQhyB6kVotreYJUELFmEqqzSZG2Q5O4Y5I9ad/bcP2u5uBayf6RCI3UyA4xjkZHt3oAyY4JpY3eOJ3ROWZVJC/Wl+zz7nXyZNyY3DacjPTNWLe/MGn3NqqA+e6sWODgDP689aunWoTfT3H2WTbcKokXzRnKkEYOOnFAGWbW4VSzQShVzklDgY6/lUVa0msiWxubZ4GzcSNKzrJ0YkEYHpxyO9ZFIAooooGFFFFABRRRQAUUUUAFFFFABSikpR0oAuJreoQELFOFWMbVGxeB+X61Smmmup2lmkMkjHJYnrXYab4UtZoYZ7qV8SoGCJ15GetbOn+DNKuJjsinIHZ2Iz+NSM6j4TExeEYy3ylriRhn0z/APWrurS53xO82AhOFAPUVz+n2cVpawW8FukEcaYVU6YrQshJLtLkAY4HUCkBos8csZ8oRMc8ZbNMRZ25ZI0x/dwc1PEViAG+PH5UrvKDuTySncZOaYinqJjWyuh5XzGCTkpn+E18rjoPpX1RqQmk0+6ZGKfuJOUb/ZPY18rjoPpTQC0UUUwCiiigApy/dP1ptOX7p+tABTZOo+gp1Nk6j6CgB1FFFABRSqCxAHU1YWNAORk+9AFairW1P7oo2p/dFAFWirW1P7o/Kjan90flQBVoq1tT+6Pyo2p/dH5UAVaKtbU/uj8qNqf3R+VAFWirW1P7o/Kjan90flQBVoq1tT+6Pyo2p/dH5UAVaKtbU/uj8qNqf3R+VAFWirW1P7o/Kjan90UAVaKslEI+7j3FV2BViDQAlHY0UHoaAPY/DaZ02y3c/uUxx7CustFUAfMAe2MVynh5v+JVZAgn9wnP/ARXUWZhwCAFNSBsRKrDDDPqal8qM8L+lR28icAFSDV5GiJ2sB+BoArm3iwNyMffFN8lFO5RIfbkf1rQEULfxMpqhrE9rpVm91dS7Y1/ujknsB6mgCpfzwx6fdq0jx5gk4Y/7Jr5dHQfSvctQ8eFoLhIdPQo0TqDJLk8gjOMV4WGNNAPopAc0E4pgLRTd3tRu9qAHU5fun60ynr90/WgApsnUfQU6mydR9BQB//Z" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzf/wAARCAFAAUADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDxCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAIqKl8iT0H5ijyJPQfmKAJaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAopnnJ/cP8A31/9ajzk/uH/AL6/+tQA+imecn9w/wDfX/1qPOT+4f8Avr/61AD6KZ5yf3D/AN9f/Wo85P7h/wC+v/rUAPopnnJ/cP8A31/9ajzk/uH/AL6/+tQA+imecn9w/wDfX/1qPOT+4f8Avr/61AD6KZ5yf3D/AN9f/Wo85P7h/wC+v/rUAPopnnJ/cP8A31/9ajzk/uH/AL6/+tQA+imecn9w/wDfX/1qPOT+4f8Avr/61AD6KZ5yf3D/AN9f/Wo85P7h/wC+v/rUAPopnnJ/cP8A31/9ajzk/uH/AL6/+tQA+imecn9w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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
          </div>

          <div style={{ display: "flex", flexDirection: "column", gap: 10, animation: "zMosaicUp 30s linear infinite", position: "absolute", left: "calc(66% + 14px)", width: "calc(33% - 7px)", top: "30px" }}>
            
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
              <div style={{ borderRadius: 14, overflow: "hidden", border: "1px solid rgba(255,255,255,0.08)", background: "#111", flexShrink: 0, aspectRatio: "1", width: "100%" }}>
                <img src="data:image/jpeg;base64,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" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block" }} />
              </div>
          </div>
        </div>
        <style>{`
          @keyframes zMosaicUp {
            0% { transform: translateY(0); }
            100% { transform: translateY(-50%); }
          }
          @keyframes zMosaicDown {
            0% { transform: translateY(0); }
            100% { transform: translateY(50%); }
          }
          @media (max-width: 900px) {
            .zHeroMosaic { display: none !important; }
          }
        `}</style>
      </section>

      {/* ── FEATURES ── */}
      <section data-section="features" className={`zSection ${visibleSections.features ? "z-visible" : ""}`} style={{ padding: "clamp(48px,8vw,96px) clamp(16px,5vw,48px)", maxWidth: 1300, margin: "0 auto", position: "relative", zIndex: 1 }}>
        <div data-anim="fadeUp" data-delay="1" className={visibleSections.features ? "z-visible" : ""} style={{ marginBottom: "clamp(32px,5vw,56px)" }}>
          <div style={{ fontSize: "clamp(9px,1.2vw,11px)", fontWeight: 700, color: "#0fa3ad", textTransform: "uppercase", letterSpacing: "0.2em", marginBottom: 12 }}>Fonctionnalités</div>
          <h2 style={{ fontFamily: "'Bebas Neue', sans-serif", fontSize: "clamp(32px,5vw,56px)", fontWeight: 400, margin: 0, letterSpacing: "0.03em", lineHeight: 1.05 }}>
            TOUT L'ARSENAL POUR <span style={{ color: "#0fa3ad" }}>SNIPER</span> EFFICACEMENT.
          </h2>
        </div>
        <div className="zFeatGrid" style={{ display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: "clamp(10px,1.5vw,16px)" }}>
          {features.map((f, i) => (
            <div key={i} data-anim="cardReveal" data-delay={String(i + 1)} className={`zFCard ${visibleSections.features ? "z-visible" : ""}`}>
              <div className="zFCardGlow" style={{ background: f.color }} />
              <span className="zFCardIcon" style={{ animationDelay: `${i * 0.4}s` }}>{f.icon}</span>
              <h3 className="zFCardTitle">{f.title}</h3>
              <p className="zFCardDesc">{f.desc}</p>
            </div>
          ))}
        </div>
      </section>

      {/* ── HOW IT WORKS ── */}
      <section data-section="steps" className={visibleSections.steps ? "z-visible" : ""} style={{ background: "rgba(15, 163, 173,0.025)", borderTop: "1px solid rgba(255,255,255,0.04)", borderBottom: "1px solid rgba(255,255,255,0.04)", position: "relative", zIndex: 1 }}>
        <div style={{ padding: "clamp(48px,8vw,96px) clamp(16px,5vw,48px)", maxWidth: 1300, margin: "0 auto" }}>
          <div data-anim="fadeUp" data-delay="1" className={visibleSections.steps ? "z-visible" : ""} style={{ marginBottom: "clamp(32px,5vw,56px)" }}>
            <div style={{ fontSize: "clamp(9px,1.2vw,11px)", fontWeight: 700, color: "#0fa3ad", textTransform: "uppercase", letterSpacing: "0.2em", marginBottom: 12 }}>Comment ça marche</div>
            <h2 style={{ fontFamily: "'Bebas Neue', sans-serif", fontSize: "clamp(28px,4.5vw,52px)", margin: 0, letterSpacing: "0.03em" }}>
              OPÉRATIONNEL EN <span style={{ color: "#0fa3ad" }}>2 MINUTES.</span>
            </h2>
          </div>
          <div className="zStepsRow" style={{ display: "flex", gap: "clamp(8px,1.5vw,12px)", alignItems: "stretch" }}>
            {steps.map((s, i) => (
              <React.Fragment key={i}>
                <div data-anim="slideRight" data-delay={String(i + 1)} className={`zStepCard ${visibleSections.steps ? "z-visible" : ""}`}>
                  <div style={{ fontSize: "clamp(24px,3vw,32px)", marginBottom: 12 }}>{s.icon}</div>
                  <div className="zStepNum">{s.n}</div>
                  <h4 style={{ fontFamily: "'Bebas Neue', sans-serif", fontSize: "clamp(16px,2vw,19px)", fontWeight: 400, margin: "0 0 10px", letterSpacing: "0.04em", color: "#fff" }}>{s.title}</h4>
                  <p style={{ fontSize: "clamp(11px,1.5vw,12px)", color: "#555", lineHeight: 1.65, margin: 0 }}>{s.desc}</p>
                </div>
                {i < 3 && (
                  <div className="zStepsArrow" style={{ display: "flex", alignItems: "center", color: "#1e1e1e", fontSize: "clamp(14px,2vw,22px)", fontWeight: 900, flexShrink: 0, paddingBottom: 8 }}>→</div>
                )}
              </React.Fragment>
            ))}
          </div>
        </div>
      </section>

      {/* ── TESTIMONIALS ── */}
      <section data-section="testi" className={visibleSections.testi ? "z-visible" : ""} style={{ padding: "clamp(48px,8vw,96px) clamp(16px,5vw,48px)", maxWidth: 1300, margin: "0 auto", position: "relative", zIndex: 1 }}>
        <div data-anim="fadeUp" data-delay="1" className={visibleSections.testi ? "z-visible" : ""} style={{ marginBottom: "clamp(28px,4vw,48px)" }}>
          <div style={{ fontSize: "clamp(9px,1.2vw,11px)", fontWeight: 700, color: "#0fa3ad", textTransform: "uppercase", letterSpacing: "0.2em", marginBottom: 12 }}>Témoignages</div>
          <h2 style={{ fontFamily: "'Bebas Neue', sans-serif", fontSize: "clamp(28px,4.5vw,52px)", margin: 0, letterSpacing: "0.03em" }}>
            ILS <span style={{ color: "#0fa3ad" }}>SNIPENT</span> DÉJÀ.
          </h2>
        </div>
        <div className="zTestiGrid" style={{ display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: "clamp(10px,1.5vw,16px)" }}>
          {testimonials.map((t, i) => (
            <div key={i} data-anim="cardReveal" data-delay={String(i + 1)} className={`zTestiCard ${visibleSections.testi ? "z-visible" : ""}`}>
              <div style={{ display: "flex", gap: 2, marginBottom: 16 }}>
                {Array.from({ length: t.stars }).map((_, j) => <span key={j} style={{ color: "#facc15", fontSize: 13 }}>★</span>)}
              </div>
              <p style={{ fontSize: "clamp(12px,1.5vw,14px)", color: "#999", lineHeight: 1.8, margin: "0 0 20px", fontStyle: "italic" }}>« {t.text} »</p>
              <div style={{ display: "flex", alignItems: "center", gap: 12 }}>
                <div style={{ width: 38, height: 38, borderRadius: "50%", background: "rgba(15, 163, 173,0.15)", border: "1px solid rgba(15, 163, 173,0.25)", display: "flex", alignItems: "center", justifyContent: "center", fontFamily: "'Bebas Neue', sans-serif", fontSize: 18, color: "#0fa3ad", flexShrink: 0 }}>{t.avatar}</div>
                <div>
                  <div style={{ fontWeight: 700, fontSize: "clamp(12px,1.5vw,13px)", color: "#fff" }}>{t.name}</div>
                  <div style={{ fontSize: "clamp(9px,1.2vw,10px)", color: "#444", fontWeight: 600, textTransform: "uppercase", letterSpacing: "0.1em", marginTop: 2 }}>{t.tag}</div>
                </div>
              </div>
            </div>
          ))}
        </div>
      </section>

      {/* ── CTA FINAL ── */}
      <section data-section="cta" className={visibleSections.cta ? "z-visible" : ""} style={{ padding: "clamp(48px,8vw,96px) clamp(16px,5vw,48px)", textAlign: "center", borderTop: "1px solid rgba(255,255,255,0.04)", position: "relative", zIndex: 1 }}>
        <div style={{ maxWidth: 680, margin: "0 auto" }}>
          <div data-anim="fadeUp" data-delay="1" className={visibleSections.cta ? "z-visible" : ""} style={{ fontSize: "clamp(40px,6vw,60px)", marginBottom: 20, display: "block", animation: "zfloat 3s ease-in-out infinite" }}>⚡</div>
          <h2 data-anim="fadeUp" data-delay="2" className={visibleSections.cta ? "z-visible" : ""} style={{ fontFamily: "'Bebas Neue', sans-serif", fontSize: "clamp(36px,6vw,64px)", margin: "0 0 16px", letterSpacing: "0.03em", lineHeight: 1.05 }}>
            PRÊT À PRENDRE <span style={{ color: "#0fa3ad" }}>L'AVANTAGE ?</span>
          </h2>
          <p data-anim="fadeUp" data-delay="3" className={visibleSections.cta ? "z-visible" : ""} style={{ fontSize: "clamp(13px,1.8vw,16px)", color: "#555", margin: "0 0 clamp(28px,4vw,40px)", lineHeight: 1.7 }}>
            Rejoins les membres qui snipen des pièces rares sur le marché japonais chaque jour.
          </p>
          <div data-anim="fadeUp" data-delay="4" className={`zCtaButtons ${visibleSections.cta ? "z-visible" : ""}`} style={{ display: "flex", flexWrap: "wrap", gap: 12, justifyContent: "center" }}>
            <button className="zBtnPrimary" onClick={() => setShowLogin(true)} style={{ fontSize: "clamp(12px,1.5vw,14px)", padding: "clamp(14px,2vw,18px) clamp(28px,4vw,48px)" }}>
              Accéder au bot →
            </button>
            <a href="/pricing" className="zBtnGhost">
              Voir les tarifs
            </a>
          </div>
        </div>
      </section>

      {/* ── FOOTER ── */}
      <footer style={{ padding: "clamp(20px,3vw,28px) clamp(16px,5vw,48px)", borderTop: "1px solid rgba(255,255,255,0.04)", position: "relative", zIndex: 1 }}>
        <div className="zFooterInner" style={{ display: "flex", justifyContent: "space-between", alignItems: "center", gap: 12, flexWrap: "wrap" }}>
          <img src="/logo.png" alt="Ping'ted" style={{ height: "42px", width: "auto", display: "block" }} />
          <span style={{ fontSize: "clamp(9px,1.2vw,10px)", color: "#222", fontWeight: 600, letterSpacing: "0.06em", textTransform: "uppercase" }}>Accès sécurisé · Licence personnelle · Non transférable</span>
          <div style={{ display: "flex", gap: 16, alignItems: "center", flexWrap: "wrap" }}>
            {[
              ["Mentions Légales", "/mentionlegal"],
              ["CGV", "/cgv"],
              ["CGU", "/cgu"],
              ["Confidentialité", "/privacy"],
              ["Cookies", "/cookies"],
            ].map(([label, href], i, arr) => (
              <React.Fragment key={href}>
                <a href={href} style={{ fontSize: "clamp(9px,1.2vw,10px)", color: "#333", fontWeight: 600, letterSpacing: "0.06em", textTransform: "uppercase", textDecoration: "none", transition: "color 0.2s" }}
                  onMouseEnter={e => e.target.style.color="#0fa3ad"} onMouseLeave={e => e.target.style.color="#333"}>
                  {label}
                </a>
                {i < arr.length - 1 && <span style={{ color: "#1a1a1a", fontSize: 10 }}>·</span>}
              </React.Fragment>
            ))}
          </div>
        </div>
      </footer>

      {/* ── LOGIN OVERLAY ── */}
      <LoginModal
        show={showLogin}
        onClose={() => setShowLogin(false)}
        onUnlock={onUnlock}
        verifyWhop={verify}
        whopKey={key}
        setWhopKey={setKey}
        whopError={error}
        setWhopError={setError}
        whopLoading={loading}
      />
    </div>
  );
};

// ─── Modal de connexion (Stripe + Whop) ───────────────────────────────────────
const LoginModal = ({ show, onClose, onUnlock, verifyWhop, whopKey, setWhopKey, whopError, setWhopError, whopLoading }) => {
  const [authTab, setAuthTab] = useState("stripe");        // "stripe" | "whop"
  const [stripeTab, setStripeTab] = useState("login");     // "login" | "register"

  // Stripe login
  const [sEmail, setSEmail] = useState("");
  const [sPassword, setSPassword] = useState("");
  const [sError, setSError] = useState("");
  const [sLoading, setSLoading] = useState(false);
  const [sSuccess, setSSuccess] = useState("");

  // Stripe register
  const [rEmail, setREmail] = useState("");
  const [rPassword, setRPassword] = useState("");
  const [rPassword2, setRPassword2] = useState("");
  const [rError, setRError] = useState("");
  const [rLoading, setRLoading] = useState(false);
  const [rSuccess, setRSuccess] = useState("");

  const inputStyle = {
    width: "100%", background: "rgba(255,255,255,0.04)",
    border: "1.5px solid rgba(255,255,255,0.1)", padding: "13px 16px",
    borderRadius: 8, outline: "none", color: "#fff",
    fontSize: 13, fontWeight: 500, fontFamily: "'DM Sans', sans-serif",
    transition: "border-color 0.2s",
  };

  const handleStripeLogin = async () => {
    if (!sEmail.trim() || !sPassword) { setSError("Remplis tous les champs."); return; }
    setSLoading(true); setSError("");
    try {
      const r = await fetch("/api/auth/login", {
        method: "POST", credentials: "include",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ email: sEmail.trim().toLowerCase(), password: sPassword }),
      });
      const data = await r.json();
      if (data.ok) {
        window.__USER_PLAN__ = data.plan;
        onUnlock(data.plan, null, data.is_admin === true, "stripe");
        onClose();
      } else {
        setSError(data.detail || "Identifiants incorrects.");
      }
    } catch { setSError("Serveur injoignable."); }
    setSLoading(false);
  };

  const handleStripeRegister = async () => {
    if (!rEmail.trim() || !rPassword || !rPassword2) { setRError("Remplis tous les champs."); return; }
    if (rPassword !== rPassword2) { setRError("Les mots de passe ne correspondent pas."); return; }
    if (rPassword.length < 8) { setRError("Mot de passe trop court (8 caractères min)."); return; }
    setRLoading(true); setRError(""); setRSuccess("");
    try {
      const r = await fetch("/api/auth/register", {
        method: "POST", headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ email: rEmail.trim().toLowerCase(), password: rPassword }),
      });
      const data = await r.json();
      if (data.ok) {
        setRSuccess("Compte créé ! Tu peux maintenant te connecter.");
        setStripeTab("login");
        setSEmail(rEmail.trim().toLowerCase());
        setREmail(""); setRPassword(""); setRPassword2("");
      } else {
        setRError(data.detail || "Erreur lors de l'inscription.");
      }
    } catch { setRError("Serveur injoignable."); }
    setRLoading(false);
  };

  const Spinner = () => (
    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="white" strokeWidth="2.5" style={{ animation: "zspin 0.8s linear infinite" }}>
      <path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83" />
    </svg>
  );

  const ErrorBox = ({ msg }) => msg ? (
    <div style={{ background: "rgba(15, 163, 173,0.08)", border: "1px solid rgba(15, 163, 173,0.2)", borderRadius: 10, padding: "9px 13px", marginBottom: 12, fontSize: 12, fontWeight: 700, color: "#5ce1e6", animation: "zfadeIn 0.2s" }}>
      ⚠️ {msg}
    </div>
  ) : null;

  const SuccessBox = ({ msg }) => msg ? (
    <div style={{ background: "rgba(34,197,94,0.08)", border: "1px solid rgba(34,197,94,0.2)", borderRadius: 10, padding: "9px 13px", marginBottom: 12, fontSize: 12, fontWeight: 700, color: "#4ade80", animation: "zfadeIn 0.2s" }}>
      ✅ {msg}
    </div>
  ) : null;

  return (
    <div
      className="zLoginWrap"
      onClick={(e) => { if (e.target === e.currentTarget) onClose(); }}
      style={{
        position: "fixed", inset: 0, zIndex: 99999,
        background: "rgba(3,3,3,0.97)", backdropFilter: "blur(24px)",
        display: "flex", alignItems: "center", justifyContent: "center",
        padding: "clamp(16px,4vw,32px)",
        opacity: show ? 1 : 0,
        pointerEvents: show ? "all" : "none",
        transition: "opacity 0.25s ease",
      }}
    >
      <div className="zLoginInner" style={{ width: "100%", maxWidth: 460, position: "relative", animation: show ? "zLoginSlideUp 0.4s cubic-bezier(0.22,1,0.36,1) both" : "none" }}>
        {/* Bouton fermer */}
        <button
          onClick={onClose}
          style={{ position: "absolute", top: -50, right: 0, background: "rgba(255,255,255,0.06)", border: "1px solid rgba(255,255,255,0.1)", borderRadius: "50%", width: 38, height: 38, color: "#888", cursor: "pointer", fontSize: 14, display: "flex", alignItems: "center", justifyContent: "center" }}
        >✕</button>

        {/* Header */}
        <div style={{ textAlign: "center", marginBottom: 24 }}>
          <img src="/logo.png" alt="Ping'ted" style={{ height: "82px", width: "auto", display: "block", margin: "0 auto 14px" }} />
          <p style={{ fontSize: 10, color: "#444", fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.15em", margin: 0 }}>Espace membres</p>
        </div>

        {/* Onglets principaux : Stripe / Whop */}
        <div style={{ display: "flex", gap: 6, marginBottom: 20, background: "rgba(255,255,255,0.03)", border: "1px solid rgba(255,255,255,0.07)", borderRadius: 14, padding: 5 }}>
          {[["stripe", "📧 Compte PingTed"], ["whop", "🔑 Clé Whop"]].map(([tab, label]) => (
            <button
              key={tab}
              onClick={() => setAuthTab(tab)}
              style={{
                flex: 1, padding: "10px 8px", borderRadius: 8, border: "none",
                background: authTab === tab ? "#0fa3ad" : "transparent",
                color: authTab === tab ? "#fff" : "#555",
                fontWeight: 700, fontSize: 12, cursor: "pointer",
                textTransform: "uppercase", letterSpacing: "0.06em",
                transition: "all 0.2s", fontFamily: "'DM Sans', sans-serif",
              }}
            >{label}</button>
          ))}
        </div>

        <div style={{ background: "#0a0f1e", border: "1px solid rgba(255,255,255,0.07)", borderRadius: 20, padding: "clamp(20px,4vw,28px)", position: "relative", overflow: "hidden" }}>
          <div style={{ position: "absolute", top: 0, left: "8%", right: "8%", height: 1, background: "linear-gradient(90deg,transparent,rgba(15, 163, 173,0.45),transparent)" }} />

          {/* ── ONGLET STRIPE ── */}
          {authTab === "stripe" && (
            <div>
              {/* Sous-onglets Connexion / Créer un compte */}
              <div style={{ display: "flex", gap: 4, marginBottom: 20, borderBottom: "1px solid rgba(255,255,255,0.06)", paddingBottom: 0 }}>
                {[["login", "Connexion"], ["register", "Créer un compte"]].map(([tab, label]) => (
                  <button
                    key={tab}
                    onClick={() => { setStripeTab(tab); setSError(""); setRError(""); setSSuccess(""); setRSuccess(""); }}
                    style={{
                      flex: 1, padding: "9px 0", border: "none", background: "transparent",
                      color: stripeTab === tab ? "#fff" : "#444",
                      fontWeight: 700, fontSize: 12, cursor: "pointer",
                      textTransform: "uppercase", letterSpacing: "0.08em",
                      borderBottom: stripeTab === tab ? "2px solid #0fa3ad" : "2px solid transparent",
                      marginBottom: -1, transition: "all 0.2s",
                      fontFamily: "'DM Sans', sans-serif",
                    }}
                  >{label}</button>
                ))}
              </div>

              {/* Connexion Stripe */}
              {stripeTab === "login" && (
                <div>
                  <SuccessBox msg={rSuccess} />
                  <ErrorBox msg={sError} />
                  <div style={{ display: "flex", flexDirection: "column", gap: 10, marginBottom: 14 }}>
                    <input style={inputStyle} type="email" placeholder="Email" value={sEmail}
                      onChange={(e) => { setSEmail(e.target.value); setSError(""); }}
                      onKeyDown={(e) => e.key === "Enter" && handleStripeLogin()}
                    />
                    <input style={inputStyle} type="password" placeholder="Mot de passe" value={sPassword}
                      onChange={(e) => { setSPassword(e.target.value); setSError(""); }}
                      onKeyDown={(e) => e.key === "Enter" && handleStripeLogin()}
                    />
                  </div>
                  <button
                    onClick={handleStripeLogin} disabled={sLoading}
                    className="zBtnPrimary"
                    style={{ width: "100%", display: "flex", alignItems: "center", justifyContent: "center", gap: 8, opacity: sLoading ? 0.7 : 1, padding: "14px", marginBottom: 14 }}
                  >
                    {sLoading ? <><Spinner /> Connexion…</> : "Se connecter →"}
                  </button>
                  <div style={{ textAlign: "center" }}>
                    <a href="/pricing" style={{ fontSize: 12, color: "#555", fontWeight: 600, textDecoration: "none" }}
                      onMouseEnter={e => e.target.style.color="#0fa3ad"} onMouseLeave={e => e.target.style.color="#555"}>
                      Pas encore abonné ? Voir les tarifs →
                    </a>
                  </div>
                </div>
              )}

              {/* Inscription Stripe */}
              {stripeTab === "register" && (
                <div>
                  <ErrorBox msg={rError} />
                  <p style={{ fontSize: 12, color: "#555", marginBottom: 14, lineHeight: 1.6 }}>
                    Crée ton compte après avoir souscrit un abonnement. Ta clé de licence sera liée à ton email.
                  </p>
                  <div style={{ display: "flex", flexDirection: "column", gap: 10, marginBottom: 14 }}>
                    <input style={inputStyle} type="email" placeholder="Email (celui utilisé sur Stripe)" value={rEmail}
                      onChange={(e) => { setREmail(e.target.value); setRError(""); }}
                    />
                    <input style={inputStyle} type="password" placeholder="Mot de passe (8 car. min)" value={rPassword}
                      onChange={(e) => { setRPassword(e.target.value); setRError(""); }}
                    />
                    <input style={inputStyle} type="password" placeholder="Confirmer le mot de passe" value={rPassword2}
                      onChange={(e) => { setRPassword2(e.target.value); setRError(""); }}
                      onKeyDown={(e) => e.key === "Enter" && handleStripeRegister()}
                    />
                  </div>
                  <button
                    onClick={handleStripeRegister} disabled={rLoading}
                    className="zBtnPrimary"
                    style={{ width: "100%", display: "flex", alignItems: "center", justifyContent: "center", gap: 8, opacity: rLoading ? 0.7 : 1, padding: "14px", marginBottom: 14 }}
                  >
                    {rLoading ? <><Spinner /> Création…</> : "Créer mon compte →"}
                  </button>
                  <div style={{ textAlign: "center" }}>
                    <a href="/pricing" style={{ fontSize: 12, color: "#555", fontWeight: 600, textDecoration: "none" }}
                      onMouseEnter={e => e.target.style.color="#0fa3ad"} onMouseLeave={e => e.target.style.color="#555"}>
                      Pas encore abonné ? Voir les tarifs →
                    </a>
                  </div>
                </div>
              )}
            </div>
          )}

          {/* ── ONGLET WHOP ── */}
          {authTab === "whop" && (
            <div>
              <p style={{ fontSize: 12, color: "#555", fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.1em", margin: "0 0 6px" }}>Clé de licence</p>
              <p style={{ fontSize: 13, color: "#666", margin: "0 0 16px", lineHeight: 1.65 }}>
                Retrouve ta clé dans ton espace membre sur <span style={{ color: "#0fa3ad", fontWeight: 700 }}>whop.com</span>
              </p>
              <ErrorBox msg={whopError} />
              <div style={{ position: "relative", marginBottom: 14 }}>
                <span style={{ position: "absolute", left: 14, top: "50%", transform: "translateY(-50%)", fontSize: 15, pointerEvents: "none" }}>🔑</span>
                <input
                  className={whopError ? "zInput err" : "zInput"}
                  type="text" value={whopKey}
                  onChange={(e) => { setWhopKey(e.target.value); setWhopError(""); }}
                  onKeyDown={(e) => e.key === "Enter" && verifyWhop()}
                  placeholder="ZEN-XXXX-XXXX-XXXX"
                  autoComplete="off"
                />
              </div>
              <button
                className="zBtnPrimary"
                onClick={verifyWhop}
                disabled={whopLoading}
                style={{ width: "100%", display: "flex", alignItems: "center", justifyContent: "center", gap: 8, opacity: whopLoading ? 0.7 : 1, padding: "14px", marginBottom: 14 }}
              >
                {whopLoading ? <><Spinner /> Vérification…</> : "Accéder au bot →"}
              </button>
              <div style={{ display: "flex", alignItems: "center", gap: 10, margin: "14px 0 12px" }}>
                <div style={{ flex: 1, height: 1, background: "rgba(255,255,255,0.05)" }} />
                <span style={{ fontSize: 9, color: "#2e2e2e", fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.1em", whiteSpace: "nowrap" }}>Viens de Whop ?</span>
                <div style={{ flex: 1, height: 1, background: "rgba(255,255,255,0.05)" }} />
              </div>
              <a href="https://whop.com/bot-de-luxe-ztracker" target="_blank" className="zBtnGhost"
                style={{ width: "100%", textAlign: "center", boxSizing: "border-box", display: "block", justifyContent: "center", fontSize: 12, padding: "12px" }}
              >
                Espace membre Whop →
              </a>
            </div>
          )}
        </div>
      </div>
    </div>
  );
};

// ═══════════════════════════════════════════
// COMPOSANT : TabDashboard
// ═══════════════════════════════════════════
const TabDashboard = memo(({ licenseKey, userPlan, userData, showNotification }) => {
  const [sub, setSub] = useState(null);
  const [invoices, setInvoices] = useState([]);
  const [loadingStripe, setLoadingStripe] = useState(false);
  
  // 🚀 ÉTATS POUR LA MODALE D'ANNULATION
  const [showCancelModal, setShowCancelModal] = useState(false);
  const [isCanceling, setIsCanceling] = useState(false);

  const isSubscribed = userPlan === 'bot_boutique' || userPlan === 'bot_only' || userPlan === 'white_label';
  const isAdminOrWhiteLabel = userPlan === 'white_label' || isAdmin(licenseKey);

  const loadStripeData = useCallback(async () => {
    if (isSubscribed) { 
      setLoadingStripe(true);
      try {
        const [resSub, resInv] = await Promise.all([
          fetch('/api/auth/subscription', { credentials: 'include' }),
          fetch('/api/auth/invoices', { credentials: 'include' })
        ]);
        if (resSub.ok) setSub(await resSub.json());
        if (resInv.ok) setInvoices(await resInv.json());
      } catch (err) {
        console.error("Erreur chargement Stripe", err);
      }
      setLoadingStripe(false);
    }
  }, [isSubscribed]);

  useEffect(() => { loadStripeData(); }, [loadStripeData]);

  // 🚀 FONCTION DE CONFIRMATION (Depuis la modale)
  const handleConfirmCancel = async () => {
    setIsCanceling(true);
    try {
      const res = await fetch("/api/auth/cancel-subscription", { method: "POST", credentials: 'include', headers: authHeaders(licenseKey) });
      const data = await res.json();
      if (res.ok) {
        showNotification("✅ " + data.message, "success");
        setShowCancelModal(false);
        loadStripeData(); 
      } else {
        showNotification("❌ " + (data.detail || "Erreur"), "warning");
      }
    } catch (e) { showNotification("❌ Serveur injoignable", "warning"); }
    setIsCanceling(false);
  };

  const handleReactivate = async () => {
    try {
      const res = await fetch("/api/auth/reactivate-subscription", { method: "POST", credentials: 'include', headers: authHeaders(licenseKey) });
      const data = await res.json();
      if (res.ok) {
        showNotification("✅ " + data.message, "success");
        loadStripeData(); 
      } else {
        showNotification("❌ " + (data.detail || "Erreur"), "warning");
      }
    } catch (e) { showNotification("❌ Serveur injoignable", "warning"); }
  };

  const formatDate = (ts) => {
    if (!ts) return "—";
    return new Date(ts * 1000).toLocaleDateString('fr-FR', { day: '2-digit', month: 'long', year: 'numeric' });
  };

  const isCanceled = sub?.cancel_at_period_end;

  return (
    <div id="tab-dashboard" className="tab-content active w-full max-w-3xl mx-auto">
      
      {/* 🚀 LA MAGNIFIQUE MODALE D'ANNULATION 🚀 */}
      {showCancelModal && (
        <div className="modal-bg p-4" style={{ display: "flex", zIndex: 99999, position: "fixed", inset: 0, background: "rgba(0,0,0,0.85)", alignItems: "center", justifyContent: "center" }} onClick={(e) => { if (e.target === e.currentTarget) setShowCancelModal(false); }}>
            <div className="bg-[#0e0e0e] border border-white/5 p-7 rounded-2xl w-full max-w-sm shadow-2xl animate-pop" onClick={e => e.stopPropagation()}>
                <h2 className="text-lg font-bold mb-3 text-white">Annuler l'abonnement ?</h2>
                <p className="text-xs text-gray-400 mb-6 leading-relaxed">
                    Ton accès restera actif jusqu'à la fin de la période en cours. Tu pourras réactiver à tout moment avant cette date.
                </p>
                <div className="flex gap-3">
                    <button onClick={() => setShowCancelModal(false)} disabled={isCanceling} className="flex-1 bg-[#1a1a1a] border border-white/5 py-3 rounded-xl text-[11px] text-white hover:bg-[#252525] transition cursor-pointer flex flex-col items-center justify-center font-bold">
                        <span>Garder</span>
                        <span>l'abonnement</span>
                    </button>
                    <button onClick={handleConfirmCancel} disabled={isCanceling} className="flex-1 bg-[#2a0e0e] border border-[#4a1515] py-3 rounded-xl text-[11px] text-[#ff6b6b] hover:bg-[#3a1212] transition cursor-pointer flex flex-col items-center justify-center font-bold">
                        {isCanceling ? <span>...</span> : <><span>Confirmer</span><span>l'annulation</span></>}
                    </button>
                </div>
            </div>
        </div>
      )}

      <div className="mb-8">
        <h2 className="text-4xl font-black italic">MON <span className="text-[#0fa3ad]">ESPACE</span></h2>
        <p className="text-xs text-gray-500 mt-2 uppercase tracking-widest font-bold">Gère ton abonnement et ton compte PingTed</p>
      </div>

      <div className="bg-[#0a0f1e] border border-white/10 rounded-2xl p-7 mb-6">
        <h3 className="text-[11px] font-black tracking-[0.1em] uppercase text-gray-500 mb-5">Abonnement</h3>
        
        <div className="flex items-start justify-between gap-4 flex-wrap mb-6">
          <div className="flex flex-col gap-1.5">
            <div className="text-xl font-black text-white">
              {userPlan === 'bot_boutique' ? 'Bot + Boutique' : 
               userPlan === 'bot_only' ? 'Bot Only' : 
               userPlan === 'white_label' ? 'Accès VIP' : 'Aucun abonnement'}
            </div>
            {sub && sub.status !== "inactive" && (
              <div className="text-xs font-bold text-gray-500">
                {sub.amount / 100} € / {sub.interval === 'month' ? 'mois' : sub.interval === 'year' ? 'an' : 'période'}
              </div>
            )}
          </div>
          
          <div className={`inline-flex items-center gap-1.5 border px-3 py-1.5 rounded-full text-[11px] font-black uppercase tracking-wider ${
            isCanceled ? 'bg-orange-500/10 border-orange-500/30 text-orange-400' : 
            (isSubscribed ? 'bg-green-500/10 border-green-500/30 text-green-400' : 'bg-red-500/10 border-red-500/30 text-red-400')
          }`}>
            <div className={`w-1.5 h-1.5 rounded-full ${isCanceled ? 'bg-orange-500' : (isSubscribed ? 'bg-green-500' : 'bg-red-500')}`}></div>
            {isCanceled ? 'Annulation en cours' : isSubscribed ? 'Actif' : 'Inactif'}
          </div>
        </div>

        <div className="h-px bg-white/10 my-6"></div>

        <div className="grid grid-cols-2 md:grid-cols-4 gap-3 mb-6">
          <div className="bg-white/5 border border-white/10 rounded-xl p-4">
            <div className="text-[11px] text-gray-500 font-bold uppercase tracking-wider mb-1.5">Statut</div>
            <div className={`text-lg font-black ${isCanceled ? 'text-orange-400' : (isSubscribed ? 'text-green-400' : 'text-red-400')}`}>
              {isCanceled ? 'Expire bientôt' : isSubscribed ? 'Actif' : 'Inactif'}
            </div>
          </div>
          <div className="bg-white/5 border border-white/10 rounded-xl p-4">
            <div className="text-[11px] text-gray-500 font-bold uppercase tracking-wider mb-1.5">Plan</div>
            <div className="text-lg font-black text-white">{userPlan || '—'}</div>
          </div>
          
          {sub && sub.status !== "inactive" && (
            <>
              <div className="bg-white/5 border border-white/10 rounded-xl p-4">
                <div className="text-[11px] text-gray-500 font-bold uppercase tracking-wider mb-1.5">Inscrit le</div>
                <div className="text-sm font-black text-white mt-2">{formatDate(sub.created)}</div>
              </div>
              <div className="bg-white/5 border border-white/10 rounded-xl p-4">
                <div className="text-[11px] text-gray-500 font-bold uppercase tracking-wider mb-1.5">
                  {isCanceled ? 'Expire le' : 'Prochain prélèvement'}
                </div>
                <div className={`text-sm font-black mt-2 ${isCanceled ? 'text-orange-400' : 'text-white'}`}>
                  {formatDate(sub.current_period_end)}
                </div>
              </div>
            </>
          )}
        </div>

        <div className="flex gap-2.5 flex-wrap">
          <button onClick={() => window.location.reload()} className="bg-white/5 hover:bg-white/10 border border-white/10 text-white px-5 py-2.5 rounded-xl font-bold text-xs transition flex items-center gap-2">
            🔄 Synchroniser
          </button>
          
          {sub && sub.status !== "inactive" && !isAdminOrWhiteLabel && (
            isCanceled ? (
              <button 
                onClick={handleReactivate} disabled={loadingStripe}
                className="bg-green-600/10 hover:bg-green-600/20 border border-green-600/30 text-green-400 px-5 py-2.5 rounded-xl font-bold text-xs transition flex items-center gap-2 ml-auto cursor-pointer"
              >
                {loadingStripe ? '⏳...' : '♻️ Réactiver l\'abonnement'}
              </button>
            ) : (
              <button 
                onClick={() => setShowCancelModal(true)} disabled={loadingStripe}
                className="bg-red-600/10 hover:bg-red-600/20 border border-red-600/30 text-red-400 px-5 py-2.5 rounded-xl font-bold text-xs transition flex items-center gap-2 ml-auto cursor-pointer"
              >
                {loadingStripe ? '⏳...' : '❌ Annuler l\'abonnement'}
              </button>
            )
          )}
        </div>
      </div>

      {invoices.length > 0 && !isAdminOrWhiteLabel && (
        <div className="bg-[#0a0f1e] border border-white/10 rounded-2xl p-7 mb-6">
          <h3 className="text-[11px] font-black tracking-[0.1em] uppercase text-gray-500 mb-5">Mes Factures</h3>
          <div className="overflow-x-auto">
            <table className="w-full text-left border-collapse">
              <thead>
                <tr className="border-b border-white/10">
                  <th className="pb-3 text-[10px] font-bold text-gray-500 uppercase tracking-wider">Date</th>
                  <th className="pb-3 text-[10px] font-bold text-gray-500 uppercase tracking-wider">Montant</th>
                  <th className="pb-3 text-[10px] font-bold text-gray-500 uppercase tracking-wider">Statut</th>
                  <th className="pb-3 text-[10px] font-bold text-gray-500 uppercase tracking-wider text-right">Lien</th>
                </tr>
              </thead>
              <tbody>
                {invoices.map((inv) => (
                  <tr key={inv.id} className="border-b border-white/5 hover:bg-white/5 transition">
                    <td className="py-3 text-xs font-bold text-white">{formatDate(inv.date)}</td>
                    <td className="py-3 text-xs font-bold text-white">{(inv.amount / 100).toFixed(2)} €</td>
                    <td className="py-3">
                      <span className="bg-green-500/10 text-green-400 px-2 py-1 rounded text-[9px] font-black uppercase">Payé</span>
                    </td>
                    <td className="py-3 text-right">
                      {inv.pdf_url && (
                        <a href={inv.pdf_url} target="_blank" rel="noopener noreferrer" className="text-[#0fa3ad] hover:text-white text-xs font-bold transition">
                          ⬇️ PDF
                        </a>
                      )}
                    </td>
                  </tr>
                ))}
              </tbody>
            </table>
          </div>
        </div>
      )}

      {/* 🚀 ON REMET LA CARTE LICENCE ICI 🚀 */}
      <div className="bg-[#0a0f1e] border border-white/10 rounded-2xl p-7 mb-6">
        <h3 className="text-[11px] font-black tracking-[0.1em] uppercase text-gray-500 mb-5">Clé de licence bot</h3>
        <div className="flex items-center gap-2.5 bg-white/5 border border-white/10 rounded-xl p-3.5">
          <div className="font-mono text-[15px] font-bold text-[#5ce1e6] flex-1 tracking-wider">
            {licenseKey || '—'}
          </div>
          <button onClick={() => navigator.clipboard.writeText(licenseKey)} className="text-gray-400 hover:text-white transition px-2 cursor-pointer">
            📋 Copier
          </button>
        </div>
        <p className="text-[11px] text-gray-500 mt-2.5">Utilise cette clé dans l'extension Chrome pour activer le bot.</p>
      </div>

      {/* 🚀 ON REMET LA CARTE INFOS COMPTE ICI 🚀 */}
      <div className="bg-[#0a0f1e] border border-white/10 rounded-2xl p-7">
        <h3 className="text-[11px] font-black tracking-[0.1em] uppercase text-gray-500 mb-5">Informations du compte</h3>
        <div className="flex flex-col gap-3.5">
          <div className="flex items-center justify-between">
            <span className="text-xs text-gray-500 font-bold">Email</span>
            <span className="text-[13px] font-bold text-white">{userData?.email || '—'}</span>
          </div>
          <div className="flex items-center justify-between">
            <span className="text-xs text-gray-500 font-bold">Discord</span>
            <span className="text-[13px] font-bold text-white">{userData?.discord_username || 'Non lié'}</span>
          </div>
        </div>
      </div>

    </div>
  );
});

// ═══════════════════════════════════════════
// COMPOSANT : Sidebar
// ═══════════════════════════════════════════
// ═══════════════════════════════════════════
// COMPOSANT : Sidebar
// ═══════════════════════════════════════════
const Sidebar = memo(({ isOpen, activeTab, onTab, isPaused, onTogglePause, onClearFeed, filterZero, onFilterZero, isLight, onTheme, liveHasNew, userPlan, licenseKey }) => (
  <div className={`sidebar ${isOpen ? "open" : ""} pt-24`}>
    {[
      { id: "live", label: "📡 RADAR LIVE", badge: liveHasNew ? <span style={{ fontSize: 9, background: "rgba(15, 163, 173,0.9)", color: "#fff", padding: "2px 7px", borderRadius: 6, fontWeight: 900, letterSpacing: "0.05em", animation: "pulse-badge 1.5s ease-in-out infinite" }}>NEW</span> : null },
      { id: "filters", label: "⚙️ MES FILTRES" },
      { id: "saves", label: "❤️ MES SAUVEGARDES" },

      /* 🚀 ONGLET BOUTIQUE MASQUÉ
      { 
        id: "boutique", 
        label: "🏪 MA BOUTIQUE", 
        badge: userPlan !== "bot_boutique" ? (
          <span style={{ fontSize: 9, background: "rgba(220,38,38,0.2)", color: "#ef4444", padding: "2px 7px", borderRadius: 6, fontWeight: 900, letterSpacing: "0.05em" }}>
            🔒 UPGRADE
          </span>
        ) : null 
      },
      */

      { id: "banwords", label: "🚫 MOTS BANNIS" },
      { id: "account", label: "👤 MON COMPTE" },

      // 👇 L'ONGLET ADMIN N'APPARAÎT QUE SI LA CLÉ EST ADMIN 👇
      ...(isAdmin(licenseKey) ? [
        { 
          id: "admin", 
          label: "🛡️ UTILISATEURS",
          badge: <span style={{ fontSize: 9, background: "rgba(37,99,235,0.2)", color: "#60a5fa", padding: "2px 7px", borderRadius: 6, fontWeight: 900 }}>PRO</span>
        },
        { 
          id: "saas", 
          label: "⚙️ SAAS CONFIG",
          badge: <span style={{ fontSize: 9, background: "rgba(124,58,237,0.2)", color: "#a78bfa", padding: "2px 7px", borderRadius: 6, fontWeight: 900 }}>SAAS</span>
        }
      ] : [])
      
    ].map((t) => (
      t.isLink
        ? <a key={t.id} href={t.isLink} className="tab-btn flex justify-between items-center" style={{ fontWeight: 400, textDecoration: "none" }}>
            <span>{t.label}</span>
          </a>
        : <button key={t.id} onClick={() => onTab(t.id)} className={`tab-btn flex justify-between items-center ${activeTab === t.id ? "active" : ""}`} style={{ fontWeight: 400 }}>
            <span>{t.label}</span> {t.badge}
          </button>
    ))}
    <div className="mt-10 px-4 border-t border-white/10 pt-6">
      <h4 className="text-[10px] font-black text-gray-500 uppercase tracking-widest mb-4">Contrôle Flux</h4>
      <button onClick={onTogglePause} className={`w-full mb-3 bg-white/5 p-3 rounded-xl border border-white/5 text-[10px] font-black uppercase tracking-widest ${isPaused ? "text-green-400" : "text-blue-400"}`}>
        {isPaused ? "▶️ Reprendre le Feed" : "⏸️ Pause le Feed"}
      </button>
      <div className="flex items-center justify-between bg-white/5 p-3 rounded-xl border border-white/5 mb-3">
        <span className="text-[11px] font-bold text-gray-300">Masquer 0⭐</span>
        <label className="switch"><input type="checkbox" checked={filterZero} onChange={(e) => onFilterZero(e.target.checked)} /><span className="slider" /></label>
      </div>
      <div className="flex items-center justify-between bg-white/5 p-3 rounded-xl border border-white/5 mb-3">
        <span className="text-[11px] font-bold text-gray-300" id="theme-label">{isLight ? "🌙 Mode sombre" : "☀️ Mode clair"}</span>
        <label className="switch"><input type="checkbox" checked={isLight} onChange={(e) => onTheme(e.target.checked)} /><span className="slider" /></label>
      </div>
      <button onClick={onClearFeed} className="w-full bg-white/5 p-3 rounded-xl border border-white/5 text-[10px] font-black text-gray-500 hover:text-white hover:bg-red-600/20 transition uppercase tracking-widest">
        🗑️ Nettoyer le feed
      </button>
    </div>
  </div>
));

// ═══════════════════════════════════════════
// COMPOSANT : Tab RADAR LIVE
// ═══════════════════════════════════════════
const TabLive = memo(({ items, saves, boutique, banwords, filterZero, onOpen, onToggleSave, onToggleBoutique, showNotification, licenseKey }) => {
  const [search, setSearch] = useState("");

  const filtered = useMemo(() => {
    const sq = search.toLowerCase();
    return items.filter((item) => {
      if (filterZero && (parseFloat(item.seller_stars) || 0) === 0) return false;
      const title = (item.title || "").toLowerCase();
      if (banwords.some((w) => title.includes(w.toLowerCase()))) return false;
      if (sq && !title.includes(sq) && !(item.filter_name || "").toLowerCase().includes(sq) && !(item.source_name || "").toLowerCase().includes(sq)) return false;
      return true;
    }).slice(0, 30); // Affiche 30 items après filtrage (mémoire = 200)
  }, [items, search, filterZero, banwords]);

  return (
    <div id="tab-live" className="tab-content active">
      <div className="flex flex-wrap justify-between items-end gap-4 mb-8">
        <div>
          <h2 className="text-4xl font-black italic">RADAR <span className="text-[#0fa3ad]">LIVE</span></h2>
          <p className="text-xs text-gray-500 mt-2 uppercase tracking-widest font-bold">Flux en temps réel · {filtered.length} article{filtered.length !== 1 ? "s" : ""}</p>
        </div>
      </div>
      {/* Search */}
      <div style={{ position: "relative", marginBottom: 16 }}>
        <span style={{ position: "absolute", left: 14, top: "50%", transform: "translateY(-50%)", fontSize: 15 }}>🔍</span>
        <input type="text" value={search} onChange={(e) => setSearch(e.target.value)} placeholder="Rechercher dans le feed..." style={{ width: "100%", background: "rgba(255,255,255,0.04)", border: "1.5px solid rgba(255,255,255,0.08)", padding: "11px 14px 11px 42px", borderRadius: 8, outline: "none", color: "var(--text-primary)", fontSize: 12, fontWeight: 600, boxSizing: "border-box" }} />
        {search && <button onClick={() => setSearch("")} style={{ position: "absolute", right: 12, top: "50%", transform: "translateY(-50%)", background: "none", border: "none", color: "#555", cursor: "pointer", fontSize: 16 }}>✕</button>}
      </div>
      {filtered.length === 0 ? (
        <div style={{ display: "grid", gridTemplateColumns: "repeat(auto-fill,minmax(240px,1fr))", gap: "2rem" }}>
          {[1, 2, 3].map((i) => <div key={i} className="skeleton-card"><div className="skeleton-img" /><div className="skeleton-line" /><div className="skeleton-line short" /></div>)}
        </div>
      ) : (
        <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8">
          {filtered.map((item) => (
            <ItemCard key={item.url} item={item} isSaved={saves.some((s) => s.url === item.url)} isBoutique={boutique.some((s) => s.url === item.url)} isBoutiqueTab={false} onOpen={onOpen} onToggleSave={onToggleSave} onToggleBoutique={onToggleBoutique} showNotification={showNotification} licenseKey={licenseKey} />
          ))}
        </div>
      )}
    </div>
  );
});

// ═══════════════════════════════════════════
// COMPOSANT : Modal Ajout Manuel ZenMarket
// ═══════════════════════════════════════════
const ManualAddModal = memo(({ licenseKey, userPlan, onClose, onAdded }) => {
  const [url, setUrl] = useState("");
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState("");
  const [success, setSuccess] = useState("");

  const VALID_DOMAINS = ["zenmarket.jp", "jp.mercari.com", "mercari.com", "rakuma.rakuten.co.jp", "item.fril.jp"];
  const isValidUrl = (u) => VALID_DOMAINS.some((d) => u.includes(d));

  const handle = async (target) => {
    const trimmed = url.trim();
    if (!trimmed || !isValidUrl(trimmed)) {
      setError("⚠️ Colle un lien ZenMarket, Mercari (jp.mercari.com) ou Rakuma valide.");
      return;
    }
    setLoading(true);
    setError("");
    setSuccess("");
    try {
      const r = await fetch("/api/manual_add", {
        method: "POST",
        headers: authHeaders(licenseKey),
        body: JSON.stringify({ url: trimmed, target }),
      });
      if (r.status === 409) { setError("⚠️ Article déjà présent dans " + (target === "saves" ? "les sauvegardes" : "la boutique") + "."); return; }
      if (r.status === 403) { setError("⚠️ Plan insuffisant pour la boutique."); return; }
      if (!r.ok) {
        const d = await r.json().catch(() => ({}));
        setError("❌ " + (d.detail || "Erreur serveur."));
        return;
      }
      const result = await r.json();
      onAdded(target, result.item);
      setSuccess("✅ Article ajouté dans " + (target === "saves" ? "les sauvegardes" : "la boutique") + " !");
      setUrl("");
      setTimeout(() => { setSuccess(""); onClose(); }, 1500);
    } catch { setError("❌ Impossible de joindre le serveur."); }
    finally { setLoading(false); }
  };

  return (
    <div
      style={{ position: "fixed", inset: 0, zIndex: 9998, background: "rgba(5,5,5,0.93)", backdropFilter: "blur(12px)", display: "flex", alignItems: "center", justifyContent: "center", padding: 24 }}
      onClick={(e) => { if (e.target === e.currentTarget) onClose(); }}
    >
      <div style={{ width: "100%", maxWidth: 520, background: "#0a0f1e", border: "1px solid rgba(255,255,255,0.08)", borderRadius: 28, padding: 32, position: "relative", boxShadow: "0 32px 80px rgba(0,0,0,0.7)" }} onClick={(e) => e.stopPropagation()}>
        <button onClick={onClose} style={{ position: "absolute", top: 16, right: 16, background: "rgba(255,255,255,0.05)", border: "1px solid rgba(255,255,255,0.1)", borderRadius: "50%", width: 36, height: 36, color: "#888", cursor: "pointer", fontSize: 16, display: "flex", alignItems: "center", justifyContent: "center" }}>✕</button>

        <h2 style={{ fontSize: 20, fontWeight: 900, color: "#fff", margin: "0 0 4px", textTransform: "uppercase", fontStyle: "italic" }}>
          ➕ Ajout <span style={{ color: "#0fa3ad" }}>Manuel</span>
        </h2>
        <p style={{ fontSize: 11, color: "#555", margin: "0 0 24px" }}>Colle un lien ZenMarket, Mercari ou Rakuma — le scraper récupère tout automatiquement</p>

        <div style={{ position: "relative", marginBottom: 12 }}>
          <input
            type="url"
            placeholder="https://jp.mercari.com/item/... ou zenmarket.jp/..."
            value={url}
            onChange={(e) => { setUrl(e.target.value); setError(""); }}
            onKeyDown={(e) => { if (e.key === "Enter") handle("saves"); }}
            autoFocus
            style={{ width: "100%", background: "rgba(255,255,255,0.04)", border: "1.5px solid rgba(255,255,255,0.1)", padding: "14px 16px", borderRadius: 14, outline: "none", color: "#fff", fontSize: 13, boxSizing: "border-box", transition: "border-color 0.2s" }}
            onFocus={(e) => e.target.style.borderColor = "rgba(15, 163, 173,0.5)"}
            onBlur={(e) => e.target.style.borderColor = "rgba(255,255,255,0.1)"}
          />
        </div>

        {loading && (
          <div style={{ background: "rgba(59,130,246,0.08)", border: "1px solid rgba(59,130,246,0.2)", borderRadius: 12, padding: "12px 16px", marginBottom: 12, fontSize: 11, fontWeight: 700, color: "#93c5fd", display: "flex", alignItems: "center", gap: 8 }}>
            <span style={{ display: "inline-block", animation: "spin 1s linear infinite" }}>⏳</span>
            Scraping en cours via Playwright… (peut prendre 10–20s)
          </div>
        )}
        {error && <div style={{ background: "rgba(220,38,38,0.08)", border: "1px solid rgba(220,38,38,0.2)", borderRadius: 12, padding: "12px 16px", marginBottom: 12, fontSize: 11, fontWeight: 700, color: "#f87171" }}>{error}</div>}
        {success && <div style={{ background: "rgba(34,197,94,0.08)", border: "1px solid rgba(34,197,94,0.2)", borderRadius: 12, padding: "12px 16px", marginBottom: 12, fontSize: 11, fontWeight: 700, color: "#4ade80" }}>{success}</div>}

        <div style={{ display: "flex", gap: 10, marginTop: 4 }}>
          <button
            onClick={() => handle("saves")}
            disabled={loading}
            style={{ flex: 1, background: loading ? "rgba(15, 163, 173,0.3)" : "#0fa3ad", color: "#fff", padding: "14px 0", borderRadius: 14, fontWeight: 900, fontSize: 11, textTransform: "uppercase", letterSpacing: "0.08em", border: "none", cursor: loading ? "not-allowed" : "pointer", transition: "0.2s" }}
          >
            {loading ? "⏳ Scraping…" : "💾 Sauvegardes"}
          </button>
          {userPlan === "bot_boutique" && (
            <button
              onClick={() => handle("boutique")}
              disabled={loading}
              style={{ flex: 1, background: loading ? "rgba(59,130,246,0.3)" : "rgba(59,130,246,0.15)", color: loading ? "#555" : "#93c5fd", padding: "14px 0", borderRadius: 14, fontWeight: 900, fontSize: 11, textTransform: "uppercase", letterSpacing: "0.08em", border: "1px solid rgba(59,130,246,0.25)", cursor: loading ? "not-allowed" : "pointer", transition: "0.2s" }}
            >
              {loading ? "⏳ Scraping…" : "🏪 Boutique"}
            </button>
          )}
        </div>

        <p style={{ fontSize: 9, color: "#333", textAlign: "center", marginTop: 16, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }}>
          Compatible · mercari · rakuma · zenmarket
        </p>
      </div>
    </div>
  );
});

// ═══════════════════════════════════════════
// COMPOSANT : Tab SAUVEGARDES
// ═══════════════════════════════════════════
const TabSaves = memo(({ saves, boutique, onOpen, onToggleSave, onToggleBoutique, licenseKey, userPlan, onManualAdd, showNotification }) => {
  const [search, setSearch] = useState("");
  const [sort, setSort] = useState("default");
  const [filterChip, setFilterChip] = useState(null);
  const [showManualAdd, setShowManualAdd] = useState(false);

  const filterNames = useMemo(() => [...new Set(saves.map((i) => i.filter_name).filter(Boolean))], [saves]);

  const sorted = useMemo(() => {
    const sq = search.toLowerCase();
    let list = saves.filter((i) => {
      if (filterChip && i.filter_name !== filterChip) return false;
      if (!sq) return true;
      return (i.title || "").toLowerCase().includes(sq) || (i.filter_name || "").toLowerCase().includes(sq) || (i.source_name || "").toLowerCase().includes(sq);
    });
    if (sort === "price-asc") list.sort((a, b) => (parsePriceVal(a.price_eur) != null ? parsePriceVal(a.price_eur) : Infinity) - (parsePriceVal(b.price_eur) != null ? parsePriceVal(b.price_eur) : Infinity));
    if (sort === "price-desc") list.sort((a, b) => (parsePriceVal(b.price_eur) != null ? parsePriceVal(b.price_eur) : -Infinity) - (parsePriceVal(a.price_eur) != null ? parsePriceVal(a.price_eur) : -Infinity));
    if (sort === "stars") list.sort((a, b) => (parseFloat(b.seller_stars) || 0) - (parseFloat(a.seller_stars) || 0));
    if (sort === "filter") list.sort((a, b) => (a.filter_name || "").localeCompare(b.filter_name || ""));
    if (sort === "source") list.sort((a, b) => (a.source_name || "").localeCompare(b.source_name || ""));
    return list;
  }, [saves, search, sort, filterChip]);

  const sortBtns = [
    { id: "default", label: "Par défaut" }, { id: "price-asc", label: "💶 Prix ↑" },
    { id: "price-desc", label: "💶 Prix ↓" }, { id: "stars", label: "⭐ Vendeur" },
    { id: "filter", label: "🎯 Filtre" }, { id: "source", label: "🏪 Source" }
  ];

  return (
    <div id="tab-saves" className="tab-content">
      {showManualAdd && (
        <ManualAddModal
          licenseKey={licenseKey}
          userPlan={userPlan}
          onClose={() => setShowManualAdd(false)}
          onAdded={(target, item) => onManualAdd(target, item)}
        />
      )}
      {/* HEADER SAUVEGARDES RESPONSIVE */}
      <div className="flex flex-col sm:flex-row justify-between items-start sm:items-end gap-4 mb-8">
        <div>
          <h2 className="text-4xl font-black italic">MES <span className="text-[#0fa3ad]">SAUVEGARDES</span></h2>
          <p className="text-xs text-gray-500 mt-2 uppercase tracking-widest font-bold">{saves.length} article{saves.length !== 1 ? "s" : ""} sauvegardé{saves.length !== 1 ? "s" : ""}</p>
        </div>
        
        <button
          onClick={() => setShowManualAdd(true)}
          className="w-full sm:w-auto flex items-center justify-center gap-2 bg-red-600/10 hover:bg-red-600/20 border border-red-600/25 text-red-400 px-5 py-3 rounded-xl font-black text-[11px] uppercase tracking-[0.08em] transition-all cursor-pointer"
        >
          ➕ Ajouter manuellement
        </button>
      </div>
      <div className="bg-[#0a0f1e] border border-white/10 rounded-2xl p-4 mb-6 flex flex-col gap-3">
        <div style={{ position: "relative" }}>
          <span style={{ position: "absolute", left: 14, top: "50%", transform: "translateY(-50%)", fontSize: 15 }}>🔍</span>
          <input type="text" value={search} onChange={(e) => setSearch(e.target.value)} placeholder="Rechercher dans mes sauvegardes..." style={{ width: "100%", background: "rgba(255,255,255,0.04)", border: "1.5px solid rgba(255,255,255,0.08)", padding: "11px 14px 11px 42px", borderRadius: 8, outline: "none", color: "var(--text-primary)", fontSize: 12, fontWeight: 600, boxSizing: "border-box" }} />
        </div>
        <div className="flex flex-wrap gap-2 items-center">
          <span className="text-[9px] font-black text-gray-600 uppercase tracking-widest mr-1">Trier :</span>
          {sortBtns.map((b) => <button key={b.id} onClick={() => setSort(b.id)} className={`sort-btn ${sort === b.id ? "active" : ""}`}>{b.label}</button>)}
        </div>
        {filterNames.length > 0 && (
          <div className="flex flex-wrap gap-2">
            <span onClick={() => setFilterChip(null)} className={`boutique-tag ${filterChip === null ? "selected" : ""}`} style={{ cursor: "pointer" }}>Tous</span>
            {filterNames.map((n) => <span key={n} onClick={() => setFilterChip(n === filterChip ? null : n)} className={`boutique-tag ${filterChip === n ? "selected" : ""}`} style={{ cursor: "pointer" }}>{n}</span>)}
          </div>
        )}
      </div>
      <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8">
        {sorted.map((item) => <ItemCard key={item.url} item={item} isSaved={true} isBoutique={boutique.some((s) => s.url === item.url)} isBoutiqueTab={false} onOpen={onOpen} onToggleSave={onToggleSave} onToggleBoutique={onToggleBoutique} showNotification={showNotification} licenseKey={licenseKey} />)}
      </div>
    </div>
  );
});

// ═══════════════════════════════════════════
// COMPOSANT : Tab FILTRES
// ═══════════════════════════════════════════
const TabFilters = memo(({ filters, snapshotCount = 0, onAdd, onEdit, onDelete, onToggle, onBulkUpdate }) => {
  const [showModal, setShowModal] = useState(false);
  const [editIdx, setEditIdx] = useState(-1);
  const [form, setForm] = useState({ name: "", brand: "", query: "", price_min: "", price_max: "", auto_save: false });
  
  // 🚀 État pour gérer la sélection multiple
  const [selectedIndices, setSelectedIndices] = useState([]);

  const openAdd = () => { 
    setEditIdx(-1); 
    setForm({ name: "", brand: "", query: "", price_min: "", price_max: "", auto_save: false }); 
    setShowModal(true); 
  };

  const openEdit = (idx) => { 
    setEditIdx(idx); 
    setForm({ ...filters[idx] }); 
    setShowModal(true); 
  };
  
  const save = () => {
    if (!form.name || !form.query) { alert("Champs requis !"); return; }
    if (editIdx === -1) onAdd({ ...form, active: true });
    else onEdit(editIdx, form);
    setShowModal(false);
  };

  // ── Export CSV ────────────────────────────────────────────────────────────
  const exportCSV = () => {
    if (filters.length === 0) { alert("Aucun filtre à exporter."); return; }
    const header = ["name", "brand", "query", "price_min", "price_max", "active", "auto_save"];
    const rows = filters.map(f =>
      header.map(k => {
        const v = f[k] ?? "";
        return `"${String(v).replace(/"/g, '""')}"`;
      }).join(",")
    );
    const csv = [header.join(","), ...rows].join("\n");
    const blob = new Blob(["\uFEFF" + csv], { type: "text/csv;charset=utf-8;" });
    const url = URL.createObjectURL(blob);
    const a = document.createElement("a");
    a.href = url;
    a.download = "pingted_filtres.csv";
    document.body.appendChild(a);
    a.click();
    setTimeout(() => { document.body.removeChild(a); URL.revokeObjectURL(url); }, 200);
  };

  // ── Import CSV ────────────────────────────────────────────────────────────
  const importCSV = (e) => {
    const file = e.target.files[0];
    if (!file) return;
    e.target.value = "";
    const reader = new FileReader();
    reader.onload = (ev) => {
      try {
        const raw = ev.target.result.replace(/^\uFEFF/, "").replace(/\r/g, "");
        const lines = raw.split("\n").filter(l => l.trim());
        if (lines.length < 2) { alert("Fichier CSV vide ou invalide."); return; }
        const header = lines[0].split(",").map(h => h.replace(/^"|"$/g, "").trim());
        const parsed = lines.slice(1).map(line => {
          const vals = (() => { const r=[],re=/("((?:[^"]|"")*)")|([^,]*)/g; let m; while((m=re.exec(line))!==null){ if(m.index===re.lastIndex&&m[0]===""){re.lastIndex++;continue;} r.push(m[1]!==undefined ? m[2].replace(/""/g,'"') : m[3]); if(re.lastIndex>=line.length)break; re.lastIndex++; } return r; })();
          const obj = {};
          header.forEach((h, i) => { obj[h] = vals[i] ?? ""; });
          return {
            name:      obj.name      || "",
            brand:     obj.brand     || "",
            query:     obj.query     || "",
            price_min: obj.price_min || "",
            price_max: obj.price_max || "",
            active:    obj.active === "true" || obj.active === "1" || obj.active === "TRUE",
            auto_save: obj.auto_save === "true" || obj.auto_save === "1" || obj.auto_save === "TRUE",
          };
        }).filter(f => f.name && f.query);

        if (parsed.length === 0) { alert("Aucun filtre valide trouvé dans le fichier."); return; }
        if (!confirm(`Importer ${parsed.length} filtre(s) ? Les filtres existants seront conservés.`)) return;
        onBulkUpdate([...filters, ...parsed]);
      } catch(err) {
        alert("Erreur lors de la lecture du fichier CSV : " + err.message);
      }
    };
    reader.readAsText(file, "utf-8");
  };

  // 🚀 Logique de sélection groupée
  const toggleSelectAll = () => {
    if (selectedIndices.length === filters.length && filters.length > 0) {
      setSelectedIndices([]);
    } else {
      setSelectedIndices(filters.map((_, i) => i));
    }
  };

  const toggleSelectOne = (idx) => {
    setSelectedIndices(prev => 
      prev.includes(idx) ? prev.filter(i => i !== idx) : [...prev, idx]
    );
  };

  const handleBulkAction = (action) => {
    if (selectedIndices.length === 0) return;

    let newFilters;
    
    if (action === 'delete') {
      if (!confirm(`Supprimer les ${selectedIndices.length} filtres sélectionnés ?`)) return;
      newFilters = filters.filter((_, i) => !selectedIndices.includes(i));
    } else {
      // Utilisation de .map pour éviter de modifier l'état directement
      newFilters = filters.map((f, i) => {
        if (selectedIndices.includes(i)) {
          return { ...f, active: action === 'enable' };
        }
        return f;
      });
    }

    onBulkUpdate(newFilters);
    setSelectedIndices([]); // Réinitialise la sélection après action
  };

  return (
    <div id="tab-filters" className="tab-content">
      {/* Header adaptable */}
      <div className="flex flex-col md:flex-row justify-between items-start md:items-end gap-4 mb-8">
        <div>
          <h2 className="text-3xl md:text-4xl font-black italic">MES <span className="text-[#0fa3ad]">FILTRES</span></h2>
          <p className="text-xs text-gray-500 mt-2 uppercase tracking-widest font-bold">
            {filters.length} filtre{filters.length !== 1 ? "s" : ""} au total
          </p>
          {snapshotCount > 0 && (
            <div style={{ marginTop: 8, display: "inline-flex", alignItems: "center", gap: 6, background: "rgba(59,130,246,0.1)", border: "1px solid rgba(59,130,246,0.25)", borderRadius: 10, padding: "5px 12px" }}>
              <span style={{ width: 7, height: 7, borderRadius: "50%", background: "#60a5fa", display: "inline-block", flexShrink: 0 }} />
              <span style={{ fontSize: 10, fontWeight: 900, color: "#93c5fd", textTransform: "uppercase", letterSpacing: "0.08em" }}>
                💾 {snapshotCount} filtre{snapshotCount > 1 ? "s" : ""} mémorisé{snapshotCount > 1 ? "s" : ""}
              </span>
            </div>
          )}
        </div>

        <div className="flex flex-wrap gap-3 w-full md:w-auto">
          {/* 🚀 Barre d'actions groupées : n'apparaît que si des filtres sont cochés */}
          {selectedIndices.length > 0 && (
            <div className="flex items-center gap-2 bg-white/5 border border-white/10 p-1.5 rounded-2xl animate-pop w-full md:w-auto justify-center md:justify-start">
              <span className="text-[10px] font-black text-gray-500 px-3 uppercase">{selectedIndices.length} sélectionné(s)</span>
              <button onClick={() => handleBulkAction('enable')} className="bg-green-600/20 text-green-400 border border-green-600/30 px-3 py-2 rounded-xl font-black text-[9px] uppercase hover:bg-green-600 hover:text-white transition">Activer</button>
              <button onClick={() => handleBulkAction('disable')} className="bg-white/10 text-gray-400 border border-white/10 px-3 py-2 rounded-xl font-black text-[9px] uppercase hover:bg-white/20 hover:text-white transition">Couper</button>
              <button onClick={() => handleBulkAction('delete')} className="bg-red-600/20 text-red-500 border border-red-600/30 px-3 py-2 rounded-xl font-black text-[9px] uppercase hover:bg-red-600 hover:text-white transition">🗑️</button>
            </div>
          )}
          
          <button onClick={openAdd} className="flex-1 md:flex-none bg-red-600 text-white px-5 py-3 rounded-xl font-black text-xs hover:bg-red-700 transition shadow-lg shadow-red-600/20">
            + NOUVEAU FILTRE
          </button>

          {/* Export CSV */}
          <button onClick={exportCSV} title="Exporter en CSV" className="flex-1 md:flex-none bg-blue-600/15 text-blue-400 border border-blue-600/25 px-4 py-3 rounded-xl font-black text-xs hover:bg-blue-600 hover:text-white transition whitespace-nowrap">
            ⬇ EXPORT CSV
          </button>

          {/* Import CSV */}
          <label className="flex-1 md:flex-none bg-green-600/15 text-green-400 border border-green-600/25 px-4 py-3 rounded-xl font-black text-xs hover:bg-green-600 hover:text-white transition cursor-pointer whitespace-nowrap text-center">
            ⬆ IMPORT CSV
            <input type="file" accept=".csv" onChange={importCSV} style={{ display: "none" }} />
          </label>
        </div>
      </div>

      <div className="bg-[#0a0f1e] border border-white/10 rounded-3xl overflow-hidden shadow-2xl">
        <table className="w-full filter-table">
          <thead>
            <tr>
              {/* 🚀 Checkbox de sélection globale */}
              <th className="w-12 text-center">
                <input 
                  type="checkbox" 
                  checked={selectedIndices.length === filters.length && filters.length > 0} 
                  onChange={toggleSelectAll}
                  className="w-4 h-4 rounded border-white/10 bg-white/5 checked:bg-red-600 cursor-pointer"
                />
              </th>
              <th>ON/OFF</th><th>NOM</th><th>MARQUE</th><th>LIEN</th><th>PRIX</th><th>AUTO-SAVE</th><th>ACTIONS</th>
            </tr>
          </thead>
          <tbody>
            {filters.map((f, idx) => (
              <tr key={idx} className={selectedIndices.includes(idx) ? "bg-white/[0.03]" : ""}>
                {/* 🚀 Checkbox individuelle */}
                <td className="text-center" data-label="SÉLECTION">
                  <input 
                    type="checkbox" 
                    checked={selectedIndices.includes(idx)} 
                    onChange={() => toggleSelectOne(idx)}
                    className="w-4 h-4 rounded border-white/10 bg-white/5 checked:bg-red-600 cursor-pointer"
                  />
                </td>
                <td data-label="ON/OFF">
                  <label className="switch">
                    <input type="checkbox" checked={f.active} onChange={() => onToggle(idx)} />
                    <span className="slider" />
                  </label>
                </td>
                <td data-label="NOM" className="font-bold text-white italic">{f.name}</td>
                <td data-label="MARQUE">
                  <span className="bg-green-500/10 text-green-400 px-3 py-1 rounded-full text-[10px] font-black border border-green-500/20">
                    {f.brand}
                  </span>
                </td>
                <td data-label="LIEN" className="text-gray-500 font-mono text-[10px]">
                  <a href={`https://zenmarket.jp/fr/mercari.aspx?q=${f.query.replace(" ", "%2B")}`} target="_blank" className="hover:text-red-500 flex items-center gap-1 md:inline">
                    🔗 <span className="underline">Mercari</span>
                  </a>
                </td>
                <td data-label="PRIX" className="font-bold text-white">{f.price_min || 0}€ - {f.price_max || "∞"}€</td>
                <td data-label="AUTO-SAVE">
                  {f.auto_save ? (
                    <span className="text-[9px] font-black bg-red-600/15 text-red-500 border border-red-500/30 px-2 py-1 rounded-md uppercase">❤️ ON</span>
                  ) : (
                    <span className="text-[9px] font-bold text-gray-600 uppercase">OFF</span>
                  )}
                </td>
                                              <td data-label="ACTIONS" className="text-right space-x-4">
                                {/* Bouton Modifier */}
                                <button onClick={() => openEdit(idx)} className="text-lg hover:scale-120 transition inline-block" title="Modifier">✏️</button>
                                
                                {/* 🚀 NOUVEAU : Bouton Dupliquer */}
                                <button 
                                  onClick={() => {
                                    // On copie le filtre "f", on modifie son nom et on l'ajoute
                                    onAdd({ ...f, name: `${f.name} (Copie)` });
                                  }} 
                                  className="text-lg hover:scale-120 transition inline-block" 
                                  title="Dupliquer"
                                >
                                  📄
                                </button>

                                {/* Bouton Supprimer */}
                                <button onClick={() => { if (confirm("Supprimer ?")) onDelete(idx); }} className="text-lg hover:scale-120 transition inline-block" title="Supprimer">🗑️</button>
                              </td>
              </tr>
            ))}
          </tbody>
        </table>
      </div>

      {/* 🚀 LA MODALE EST DE RETOUR ICI ! */}
      {showModal && (
        <div className="modal-bg p-4" style={{ display: "flex" }} onClick={(e) => { if (e.target === e.currentTarget) setShowModal(false); }}>
          <div className="bg-[#0a0f1e] border border-white/10 p-6 md:p-8 rounded-3xl w-full max-w-md shadow-2xl animate-pop" onClick={(e) => e.stopPropagation()}>
            <h2 className="text-xl font-black mb-6 italic uppercase text-white">
              {editIdx === -1 ? "Nouvelle Cible" : "Modifier le Filtre"}
            </h2>
            <div className="space-y-4">
              {[["name", "Nom du filtre"], ["brand", "Marque"], ["query", "Mots-clés"]].map(([k, p]) => (
                <div key={k}>
                  <p className="text-[9px] font-black text-gray-500 uppercase tracking-widest mb-1.5 ml-1">{p}</p>
                  <input type="text" placeholder={p} value={form[k]} onChange={(e) => setForm({ ...form, [k]: e.target.value })} className="w-full bg-white/5 border border-white/10 p-4 rounded-xl outline-none text-white focus:border-red-600/50 transition" />
                </div>
              ))}
              <div className="grid grid-cols-2 gap-4">
                <div>
                  <p className="text-[9px] font-black text-gray-500 uppercase tracking-widest mb-1.5 ml-1">Prix Min €</p>
                  <input type="number" value={form.price_min} onChange={(e) => setForm({ ...form, price_min: e.target.value })} className="w-full bg-white/5 border border-white/10 p-4 rounded-xl outline-none text-white focus:border-red-600/50 transition" />
                </div>
                <div>
                  <p className="text-[9px] font-black text-gray-500 uppercase tracking-widest mb-1.5 ml-1">Prix Max €</p>
                  <input type="number" value={form.price_max} onChange={(e) => setForm({ ...form, price_max: e.target.value })} className="w-full bg-white/5 border border-white/10 p-4 rounded-xl outline-none text-white focus:border-red-600/50 transition" />
                </div>
              </div>
              <div className="flex items-center justify-between bg-white/5 border border-white/10 p-4 rounded-xl mt-2">
                <div>
                  <p className="text-white text-xs font-black uppercase tracking-wider">❤️ Sauvegarde automatique</p>
                  <p className="text-gray-500 text-[10px] mt-0.5">Directement en Sauvegardes</p>
                </div>
                <label className="switch ml-4">
                  <input type="checkbox" checked={form.auto_save} onChange={(e) => setForm({ ...form, auto_save: e.target.checked })} />
                  <span className="slider" />
                </label>
              </div>
              <div className="flex gap-4 pt-4">
                <button onClick={save} className="flex-1 bg-red-600 py-4 rounded-xl font-black uppercase text-xs text-white hover:bg-red-700 transition shadow-lg shadow-red-600/20">Enregistrer</button>
                <button onClick={() => setShowModal(false)} className="flex-1 bg-white/5 py-4 rounded-xl font-black uppercase text-xs text-gray-400 hover:bg-white/10 transition">Annuler</button>
              </div>
            </div>
          </div>
        </div>
      )}
    </div>
  );
});

// ═══════════════════════════════════════════
// COMPOSANT : Tab BOUTIQUE
// ═══════════════════════════════════════════
const TabBoutique = memo(({ boutique, userPlan, licenseKey, onOpen, onToggleSave, onToggleBoutique, onSavePrice, showNotification, saves, onManualAdd }) => {
  const [sort, setSort] = useState("none");
  const [tagFilter, setTagFilter] = useState(null);
  const [configured, setConfigured] = useState(true);
  const [showSetup, setShowSetup] = useState(false);
  const [setupForm, setSetupForm] = useState({ github_token: "", github_repo: "", shop_name: "", instagram: "", contact_email: "" });
  const [setupError, setSetupError] = useState("");
  const [setupOk, setSetupOk] = useState("");
  const [publishing, setPublishing] = useState(false);
  const [showManualAdd, setShowManualAdd] = useState(false);

  const isLocked = userPlan === "bot_only";

  const allTags = useMemo(() => {
    const s = new Set();
    boutique.forEach((i) => (i.tags || []).forEach((t) => s.add(t)));
    return [...s];
  }, [boutique]);

  const sorted = useMemo(() => {
    let list = tagFilter ? boutique.filter((i) => (i.tags || []).includes(tagFilter)) : [...boutique];
    if (sort === "profit") list.sort((a, b) => (calcProfit(b).profit != null ? calcProfit(b).profit : -Infinity) - (calcProfit(a).profit != null ? calcProfit(a).profit : -Infinity));
    if (sort === "mult") list.sort((a, b) => (calcProfit(b).mult != null ? calcProfit(b).mult : -Infinity) - (calcProfit(a).mult != null ? calcProfit(a).mult : -Infinity));
    return list;
  }, [boutique, sort, tagFilter]);

  const pub = boutique.filter((i) => (i.visibility || "public") === "public").length;

  const publishBoutique = async () => {
    setPublishing(true);
    try {
      const r = await fetch("/publish_boutique", { method: "POST", headers: authHeaders(licenseKey) });
      const data = await r.json();
      if (r.status === 400) showNotification("⚙️ Configure d'abord GitHub dans ⚙️ CONFIG", "warning");
      else if (r.ok) showNotification(`🌐 Boutique publiée — ${data.published} article(s) en ligne`, "success");
      else showNotification(`❌ Erreur GitHub : ${data.detail || "inconnue"}`, "warning");
    } catch { showNotification("❌ Serveur injoignable", "warning"); }
    setPublishing(false);
  };

  const openSetup = async () => {
    setShowSetup(true); setSetupError(""); setSetupOk("");
    try {
      const r = await fetch("/get_boutique_config", { headers: authHeaders(licenseKey) });
      const cfg = await r.json();
      setSetupForm({ github_token: "", github_repo: cfg.github_repo || "", shop_name: cfg.shop_name || "", instagram: cfg.instagram || "", contact_email: cfg.contact_email || "" });
    } catch {}
  };

  const saveSetup = async () => {
    setSetupError(""); setSetupOk("");
    if (!setupForm.github_repo) { setSetupError("⚠️ Le dépôt GitHub est obligatoire."); return; }
    const payload = { github_repo: setupForm.github_repo, shop_name: setupForm.shop_name, instagram: setupForm.instagram, contact_email: setupForm.contact_email };
    if (setupForm.github_token) payload.github_token = setupForm.github_token;
    try {
      const r = await fetch("/update_boutique_config", { method: "POST", headers: authHeaders(licenseKey), body: JSON.stringify(payload) });
      const d = await r.json();
      if (r.status === 403) { setSetupError("⚠️ Plan insuffisant — upgrade requis."); return; }
      setConfigured(d.configured === true);
      setSetupOk("✅ Configuration sauvegardée !");
      showNotification("✅ Boutique configurée avec succès", "success");
      if (d.configured) setTimeout(() => setShowSetup(false), 2000);
    } catch { setSetupError("⚠️ Erreur réseau."); }
  };

  return (
    <div id="tab-boutique" className="tab-content" style={{ position: "relative" }}>
      {showManualAdd && !isLocked && (
        <ManualAddModal
          licenseKey={licenseKey}
          userPlan={userPlan}
          onClose={() => setShowManualAdd(false)}
          onAdded={(target, item) => onManualAdd(target, item)}
        />
      )}
      {isLocked && (
        <div className="boutique-locked-overlay" style={{ display: "flex" }}>
          <div style={{ fontSize: 48 }}>🔒</div>
          <div style={{ textAlign: "center" }}>
            <p style={{ fontWeight: 900, fontSize: 18, color: "#fff", margin: "0 0 8px" }}>Fonctionnalité réservée</p>
            <p style={{ fontSize: 13, color: "#666", maxWidth: 320, lineHeight: 1.6, margin: "0 0 20px" }}>La boutique est incluse dans l'abonnement <span style={{ color: "#0fa3ad", fontWeight: 700 }}>Bot + Boutique</span>.</p>
            <a href="/pricing" style={{ display: "inline-block", background: "#0fa3ad", color: "#fff", padding: "12px 28px", borderRadius: 14, fontWeight: 900, fontSize: 11, textTransform: "uppercase", textDecoration: "none" }}>⬆️ Upgrader mon plan</a>
          </div>
        </div>
      )}

      {/* Setup overlay */}
      {showSetup && (
        <div style={{ position: "fixed", inset: 0, zIndex: 500, background: "rgba(5,5,5,0.97)", backdropFilter: "blur(12px)", display: "flex", alignItems: "center", justifyContent: "center", padding: 24 }}>
          <div style={{ width: "100%", maxWidth: 680, background: "#0a0f1e", border: "1px solid rgba(255,255,255,0.07)", borderRadius: 28, padding: 32, overflowY: "auto", maxHeight: "90vh", position: "relative" }}>
            <button onClick={() => setShowSetup(false)} style={{ position: "absolute", top: 16, right: 16, background: "rgba(255,255,255,0.05)", border: "1px solid rgba(255,255,255,0.1)", borderRadius: "50%", width: 36, height: 36, color: "#888", cursor: "pointer" }}>✕</button>
            <h2 style={{ fontSize: 22, fontWeight: 900, color: "#fff", margin: "0 0 6px", textTransform: "uppercase" }}>Configuration de ta <span style={{ color: "#0fa3ad" }}>Boutique</span></h2>
            <p style={{ fontSize: 12, color: "#555", marginBottom: 20 }}>Relie ton dépôt GitHub pour publier tes articles en ligne</p>
            <div style={{ display: "flex", flexDirection: "column", gap: 12, marginBottom: 16 }}>
              {[["password", "github_token", "Token GitHub *", "ghp_xxxxxxxxxxxxxxxx"], ["text", "github_repo", "Dépôt GitHub *", "mon-compte/ma-boutique"], ["text", "shop_name", "Nom de la boutique", "Ma Boutique Luxe"], ["text", "instagram", "Instagram (optionnel)", "@ma_boutique"], ["email", "contact_email", "Email de contact", "contact@maboutique.fr"]].map(([type, k, label, ph]) => (
                <div key={k}>
                  <label style={{ fontSize: 9, fontWeight: 900, textTransform: "uppercase", letterSpacing: "0.12em", color: "#555", display: "block", marginBottom: 6 }}>{label}</label>
                  <input type={type} placeholder={ph} value={setupForm[k]} onChange={(e) => setSetupForm({ ...setupForm, [k]: e.target.value })} style={{ width: "100%", background: "rgba(255,255,255,0.04)", border: "1.5px solid rgba(255,255,255,0.08)", padding: "13px 16px", borderRadius: 14, outline: "none", color: "#fff", fontSize: 13, boxSizing: "border-box" }} />
                </div>
              ))}
            </div>
            {setupError && <div style={{ background: "rgba(220,38,38,0.08)", border: "1px solid rgba(220,38,38,0.2)", borderRadius: 12, padding: "12px 16px", marginBottom: 12, fontSize: 11, fontWeight: 700, color: "#f87171" }}>{setupError}</div>}
            {setupOk && <div style={{ background: "rgba(34,197,94,0.08)", border: "1px solid rgba(34,197,94,0.2)", borderRadius: 12, padding: "12px 16px", marginBottom: 12, fontSize: 11, fontWeight: 700, color: "#4ade80" }}>{setupOk}</div>}
            <button onClick={saveSetup} style={{ width: "100%", background: "#0fa3ad", color: "#fff", padding: 16, borderRadius: 8, fontWeight: 900, fontSize: 12, textTransform: "uppercase", border: "none", cursor: "pointer" }}>✓ Enregistrer la configuration</button>
          </div>
        </div>
      )}

      {/* HEADER BOUTIQUE RESPONSIVE */}
      <div className="flex flex-col xl:flex-row justify-between items-start xl:items-end gap-5 mb-6">
        <div>
          <h2 className="text-4xl font-black italic">MA <span className="text-[#0fa3ad]">BOUTIQUE</span></h2>
          <p className="text-xs text-gray-500 mt-2 uppercase tracking-widest font-bold">
            {pub} public · <span className="text-red-400">{boutique.length - pub} privé{boutique.length - pub !== 1 ? "s" : ""}</span>
          </p>
        </div>

        {/* CONTENEUR DES BOUTONS */}
        <div className="flex flex-col lg:flex-row gap-3 w-full xl:w-auto">
          
          {/* Boutons de Tri (Défilables horizontalement sur petit écran) */}
          <div className="flex gap-2 w-full lg:w-auto overflow-x-auto pb-1 lg:pb-0">
            {[["none", "Par défaut"], ["profit", "💰 Bénéfice"], ["mult", "✕ Multiplicateur"]].map(([id, label]) => (
              <button key={id} onClick={() => setSort(id)} className={`sort-btn whitespace-nowrap ${sort === id ? "active" : ""}`}>
                {label}
              </button>
            ))}
          </div>

          {/* Boutons d'Action (Grille sur mobile, en ligne sur PC) */}
          <div className="flex gap-2 w-full lg:w-auto">
            <button 
              onClick={publishBoutique} 
              disabled={publishing} 
              className="flex-1 lg:flex-none flex justify-center items-center bg-green-600 text-white px-4 py-2.5 rounded-xl font-black text-[10px] sm:text-xs hover:bg-green-700 transition uppercase"
            >
              {publishing ? "⏳ Publi..." : "🌐 Publier"}
            </button>
            <button 
              onClick={openSetup} 
              className="flex-1 lg:flex-none flex justify-center items-center bg-white/5 border border-white/10 text-gray-300 px-4 py-2.5 rounded-xl font-black text-[10px] sm:text-xs hover:bg-white/10 transition uppercase"
            >
              ⚙️ Config
            </button>
            {!isLocked && (
              <button
                onClick={() => setShowManualAdd(true)}
                className="flex-1 lg:flex-none flex justify-center items-center gap-1.5 bg-red-600/10 hover:bg-red-600/20 border border-red-600/25 text-red-400 px-4 py-2.5 rounded-xl font-black text-[10px] sm:text-xs uppercase transition-all"
              >
                ➕ Ajouter
              </button>
            )}
          </div>
          
        </div>
      </div>

      {allTags.length > 0 && (
        <div className="flex flex-wrap gap-2 mb-6">
          <span onClick={() => setTagFilter(null)} className={`boutique-tag ${tagFilter === null ? "selected" : ""}`} style={{ cursor: "pointer" }}>Tous</span>
          {allTags.map((t) => <span key={t} onClick={() => setTagFilter(t === tagFilter ? null : t)} className={`boutique-tag ${tagFilter === t ? "selected" : ""}`} style={{ cursor: "pointer" }}>{t}</span>)}
        </div>
      )}

      <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8">
        {sorted.map((item) => <ItemCard key={item.url} item={item} isSaved={saves.some((s) => s.url === item.url)} isBoutique={true} isBoutiqueTab={true} onOpen={onOpen} onToggleSave={onToggleSave} onToggleBoutique={onToggleBoutique} />)}
      </div>
    </div>
  );
});

// ═══════════════════════════════════════════
// COMPOSANT : Tab MOTS BANNIS
// ═══════════════════════════════════════════
const TabBanwords = memo(({ banwords, onAdd, onRemove, onBulkUpdate }) => {
  const [input, setInput] = useState("");
  // Référence pour l'input file (caché)
  const fileInputRef = useRef(null);

  const add = () => {
    const w = input.trim();
    if (!w || banwords.some((b) => b.toLowerCase() === w.toLowerCase())) { setInput(""); return; }
    onAdd(w); setInput("");
  };

  // ⬇️ LOGIQUE D'EXPORT ⬇️
  const handleExport = () => {
    if (banwords.length === 0) return alert("La liste est vide !");
    const textContent = banwords.join('\n');
    const blob = new Blob([textContent], { type: 'text/plain;charset=utf-8' });
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = 'pingted_banwords.txt';
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    URL.revokeObjectURL(url);
  };

  // ⬆️ LOGIQUE D'IMPORT ⬆️
  const handleImport = (e) => {
    const file = e.target.files[0];
    if (!file) return;
    const reader = new FileReader();
    reader.onload = (event) => {
      const content = event.target.result;
      const importedWords = content
        .split(/\r?\n/)
        .map(w => w.trim())
        .filter(w => w.length > 0);
      
      const mergedBanwords = Array.from(new Set([...banwords, ...importedWords]));
      onBulkUpdate(mergedBanwords);
    };
    reader.readAsText(file);
    e.target.value = null; // Reset
  };

  return (
    <div id="tab-banwords" className="tab-content">
      {/* HEADER AVEC TITRE ET BOUTONS */}
      <div className="flex justify-between items-end mb-8">
        <div>
          <h2 className="text-4xl font-black italic">MOTS <span className="text-[#0fa3ad]">BANNIS</span></h2>
          <p className="text-xs text-gray-500 mt-2 uppercase tracking-widest font-bold">Les articles contenant ces mots n'apparaîtront pas dans le feed</p>
        </div>
        
        {/* BOUTONS IMPORT / EXPORT */}
        <div className="flex gap-3">
          <button 
            onClick={handleExport} 
            className="bg-white/5 border border-white/10 hover:bg-white/10 text-white px-4 py-2 rounded-xl text-xs font-bold uppercase tracking-widest transition"
          >
            Exporter
          </button>
          <button 
            onClick={() => fileInputRef.current.click()} 
            className="bg-white/10 border border-white/20 hover:bg-white/20 text-white px-4 py-2 rounded-xl text-xs font-bold uppercase tracking-widest transition"
          >
            Importer
          </button>
          {/* Input caché */}
          <input 
            type="file" 
            ref={fileInputRef} 
            onChange={handleImport} 
            accept=".txt" 
            className="hidden" 
          />
        </div>
      </div>

      {/* CORPS DE L'ONGLET */}
      <div className="bg-[#0a0f1e] border border-white/10 rounded-3xl overflow-hidden shadow-2xl">
        <div className="p-6 border-b border-white/5 flex gap-3">
          <input 
            type="text" 
            value={input} 
            onChange={(e) => setInput(e.target.value)} 
            onKeyDown={(e) => e.key === "Enter" && add()} 
            placeholder="Ajouter un mot banni (ex: DVD)" 
            className="flex-1 bg-white/5 border border-white/10 px-4 py-3 rounded-xl outline-none text-white text-sm font-bold" 
          />
          <button 
            onClick={add} 
            className="bg-red-600 text-white px-6 py-3 rounded-xl font-black text-xs hover:bg-red-700 transition uppercase"
          >
            + Ajouter
          </button>
        </div>
        <div className="p-6 flex flex-wrap gap-3 min-h-[80px]">
          {banwords.length === 0 ? (
            <span className="text-gray-600 text-xs italic self-center">Aucun mot banni pour l'instant.</span>
          ) : (
            banwords.map((w, i) => (
              <span key={i} className="banword-tag">🚫 {w}
                <button 
                  onClick={() => onRemove(i)} 
                  style={{ color: "#666", fontSize: 14, lineHeight: 1, transition: "color 0.15s", background: "none", border: "none", cursor: "pointer", padding: 0 }}
                >
                  ✕
                </button>
              </span>
            ))
          )}
        </div>
      </div>
    </div>
  );
});
// ═══════════════════════════════════════════
// COMPOSANT : Gestion des places (SlotsPanel) — Admin
// ═══════════════════════════════════════════
const SlotsPanel = ({ licenseKey, isSuperAdmin }) => {
    const [slots, setSlots]       = React.useState(null);
    const [maxVal, setMaxVal]     = React.useState("");
    const [usedVal, setUsedVal]   = React.useState("");
    const [saving, setSaving]     = React.useState(false);
    const [msg, setMsg]           = React.useState(null);

    const load = () => {
        fetch('/api/slots')
            .then(r => r.json())
            .then(d => {
                setSlots(d);
                setMaxVal(String(d.max));
                setUsedVal(String(d.used));
            });
    };

    useEffect(() => { load(); }, []);

    const flash = (text, ok) => { setMsg({ text, ok }); setTimeout(() => setMsg(null), 3000); };

    const applyMax = async (val) => {
        const v = parseInt(val, 10);
        if (isNaN(v) || v < 0) { flash("Valeur invalide", false); return; }
        setSaving(true);
        try {
            const r = await fetch('/admin/slots', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json', 'X-License-Key': licenseKey },
                body: JSON.stringify({ max_slots: v })
            });
            if (!r.ok) throw new Error((await r.json()).detail);
            flash("✅ Capacité max mise à jour", true); load();
        } catch(e) { flash("❌ " + e.message, false); }
        finally { setSaving(false); }
    };

    const applyUsed = async (val) => {
        const v = parseInt(val, 10);
        if (isNaN(v) || v < 0) { flash("Valeur invalide", false); return; }
        setSaving(true);
        try {
            const r = await fetch('/admin/slots/offset', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json', 'X-License-Key': licenseKey },
                body: JSON.stringify({ used: v })
            });
            if (!r.ok) throw new Error((await r.json()).detail);
            flash("✅ Compteur mis à jour", true); load();
        } catch(e) { flash("❌ " + e.message, false); }
        finally { setSaving(false); }
    };

    if (!slots) return null;

    const pct    = slots.max > 0 ? Math.min(100, Math.round((slots.used / slots.max) * 100)) : 100;
    const remain = Math.max(0, slots.max - slots.used);
    const barCol = pct >= 100 ? "#0fa3ad" : pct >= 80 ? "#eab308" : "#22c55e";

    return (
        <div className="bg-[#0a0f1e] border rounded-2xl md:rounded-3xl p-4 md:p-6 shadow-2xl space-y-5"
             style={{ borderColor: slots.full ? "rgba(15, 163, 173,.35)" : "rgba(255,255,255,.08)" }}>

            {/* Header */}
            <div className="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-3">
                <div>
                    <h3 className="text-base md:text-lg font-black text-white italic">🎯 GESTION DES PLACES</h3>
                    <p className="text-[11px] text-gray-600 mt-0.5">Les offres sur /pricing se masquent automatiquement quand c'est complet</p>
                </div>
                <div className="flex items-center gap-2">
                    {slots.full && <span className="text-[10px] font-black uppercase px-3 py-1 rounded-lg bg-red-600/15 text-red-400 border border-red-600/25 animate-pulse">🔒 COMPLET</span>}
                    <button onClick={load} className="text-[10px] font-black uppercase text-gray-600 hover:text-white transition px-3 py-1.5 rounded-lg border border-white/10 whitespace-nowrap">↻ Actu</button>
                </div>
            </div>

            {/* Stats */}
            <div className="grid grid-cols-3 gap-2 md:gap-3">
                {[
                    { label: "Affiché comme occupé", val: slots.used, color: slots.full ? "#5ce1e6" : "#fff" },
                    { label: "Capacité max", val: slots.max, color: "#fff" },
                    { label: "Restantes", val: remain, color: remain === 0 ? "#5ce1e6" : remain <= 3 ? "#fde047" : "#4ade80" },
                ].map(s => (
                    <div key={s.label} className="bg-white/5 border border-white/5 rounded-xl p-3 md:p-4">
                        <div className="text-[9px] md:text-[10px] text-gray-600 font-bold uppercase tracking-wider mb-1 leading-tight">{s.label}</div>
                        <div className="text-xl md:text-2xl font-black" style={{ color: s.color }}>{s.val}</div>
                    </div>
                ))}
            </div>

            {/* Barre */}
            <div>
                <div className="h-2.5 bg-white/5 rounded-full overflow-hidden mb-1.5">
                    <div style={{ width: pct + "%", background: barCol, height: "100%", borderRadius: 99, transition: "width .5s" }} />
                </div>
                <div className="flex justify-between text-[10px] text-gray-700">
                    <span>0</span><span>{pct}% occupé</span><span>{slots.max}</span>
                </div>
            </div>

            {/* Info real vs affiché */}
            {slots.offset !== 0 && (
                <div className="text-[11px] text-gray-600 bg-white/3 border border-white/5 rounded-xl px-4 py-2.5">
                    ℹ️ Inscrits réels en DB : <span className="text-white font-bold">{slots.real}</span>
                    {" "}· Correction appliquée : <span className="font-bold" style={{ color: slots.offset < 0 ? "#4ade80" : "#5ce1e6" }}>{slots.offset > 0 ? "+" : ""}{slots.offset}</span>
                </div>
            )}

            {/* Contrôles */}
            {isSuperAdmin ? (
            <div className="grid grid-cols-1 sm:grid-cols-2 gap-4 pt-1">

                {/* Modifier used affiché */}
                <div className="bg-white/3 border border-white/8 rounded-xl p-4 space-y-3">
                    <div className="text-[10px] font-black uppercase text-gray-500 tracking-wider">Places affichées comme occupées</div>
                    <div className="flex items-center gap-2">
                        <button onClick={() => applyUsed(slots.used - 1)} disabled={saving || slots.used <= 0}
                            className="w-9 h-9 rounded-xl bg-white/5 border border-white/10 hover:bg-red-600/20 text-white font-black text-base transition disabled:opacity-30 flex-shrink-0">−</button>
                        <input type="number" min="0" value={usedVal} onChange={e => setUsedVal(e.target.value)}
                            onKeyDown={e => e.key === 'Enter' && applyUsed(parseInt(usedVal,10))}
                            className="flex-1 min-w-0 bg-white/5 border border-white/10 focus:border-red-600/60 text-white rounded-xl px-3 py-2 text-sm font-black outline-none text-center" />
                        <button onClick={() => applyUsed(slots.used + 1)} disabled={saving}
                            className="w-9 h-9 rounded-xl bg-white/5 border border-white/10 hover:bg-green-600/20 text-white font-black text-base transition disabled:opacity-30 flex-shrink-0">+</button>
                    </div>
                    <button onClick={() => applyUsed(parseInt(usedVal,10))} disabled={saving}
                        className="w-full bg-white/5 hover:bg-white/10 border border-white/10 text-white font-black text-[11px] uppercase rounded-xl py-2 transition disabled:opacity-40">
                        {saving ? "…" : "Appliquer"}
                    </button>
                </div>

                {/* Modifier max */}
                <div className="bg-white/3 border border-white/8 rounded-xl p-4 space-y-3">
                    <div className="text-[10px] font-black uppercase text-gray-500 tracking-wider">Capacité maximum</div>
                    <div className="flex items-center gap-2">
                        <button onClick={() => applyMax(slots.max - 1)} disabled={saving || slots.max <= 0}
                            className="w-9 h-9 rounded-xl bg-white/5 border border-white/10 hover:bg-red-600/20 text-white font-black text-base transition disabled:opacity-30 flex-shrink-0">−</button>
                        <input type="number" min="0" value={maxVal} onChange={e => setMaxVal(e.target.value)}
                            onKeyDown={e => e.key === 'Enter' && applyMax(parseInt(maxVal,10))}
                            className="flex-1 min-w-0 bg-white/5 border border-white/10 focus:border-red-600/60 text-white rounded-xl px-3 py-2 text-sm font-black outline-none text-center" />
                        <button onClick={() => applyMax(slots.max + 1)} disabled={saving}
                            className="w-9 h-9 rounded-xl bg-white/5 border border-white/10 hover:bg-green-600/20 text-white font-black text-base transition disabled:opacity-30 flex-shrink-0">+</button>
                    </div>
                    <button onClick={() => applyMax(parseInt(maxVal,10))} disabled={saving}
                        className="w-full bg-white/5 hover:bg-white/10 border border-white/10 text-white font-black text-[11px] uppercase rounded-xl py-2 transition disabled:opacity-40">
                        {saving ? "…" : "Appliquer"}
                    </button>
                </div>

            </div>
            ) : (
                <div className="pt-2 text-center text-[10px] text-gray-500 font-black uppercase tracking-widest border-t border-white/10 mt-4 pt-4">
                    🔒 La modification de la capacité du serveur est gérée par ZenTracker (Limité à 20 places).
                </div>
            )}

            {/* Feedback */}
            {msg && (
                <div className="text-[12px] font-bold text-center py-1" style={{ color: msg.ok ? "#4ade80" : "#5ce1e6" }}>
                    {msg.text}
                </div>
            )}
        </div>
    );
};

// ═══════════════════════════════════════════
// COMPOSANT : Forcer l'accès manuellement — Admin
// ═══════════════════════════════════════════
const ForceAccessPanel = ({ licenseKey }) => {
    const [email, setEmail]   = React.useState("");
    const [plan, setPlan]     = React.useState("bot_only");
    const [loading, setLoading] = React.useState(false);
    const [msg, setMsg]       = React.useState(null);

    const handle = async () => {
        if (!email.trim()) { setMsg({ text: "Entre un email.", ok: false }); return; }
        setLoading(true);
        try {
            const r = await fetch('/admin/force-access', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json', 'X-License-Key': licenseKey },
                body: JSON.stringify({ email: email.trim(), plan })
            });
            const data = await r.json();
            if (!r.ok) throw new Error(data.detail || "Erreur");
            setMsg({ text: `✅ Accès activé — clé : ${data.licence_key}`, ok: true });
            setEmail("");
        } catch(e) {
            setMsg({ text: "❌ " + e.message, ok: false });
        } finally { setLoading(false); }
    };

    return (
        <div className="bg-[#0a0f1e] border border-white/8 rounded-2xl md:rounded-3xl p-4 md:p-6 shadow-2xl space-y-4">
            <div>
                <h3 className="text-base md:text-lg font-black text-white italic">🔓 FORCER UN ACCÈS</h3>
                <p className="text-[11px] text-gray-600 mt-0.5">Webhook raté ou paiement bloqué ? Active manuellement l'accès d'un client par email.</p>
            </div>
            <div className="flex flex-col sm:flex-row gap-3">
                <input
                    type="email" placeholder="email@client.com" value={email}
                    onChange={e => setEmail(e.target.value)}
                    onKeyDown={e => e.key === 'Enter' && handle()}
                    className="flex-1 bg-white/5 border border-white/10 focus:border-red-600/60 text-white rounded-xl px-4 py-2.5 text-sm outline-none"
                />
                <select value={plan} onChange={e => setPlan(e.target.value)}
                    className="bg-white/5 border border-white/10 text-white rounded-xl px-3 py-2.5 text-sm outline-none">
                    <option value="bot_only">Bot Only</option>
                    <option value="bot_boutique">Bot + Boutique</option>
                </select>
                <button onClick={handle} disabled={loading}
                    className="bg-red-600 hover:bg-red-500 text-white font-black text-[11px] uppercase px-5 py-2.5 rounded-xl transition whitespace-nowrap disabled:opacity-40">
                    {loading ? "…" : "Activer"}
                </button>
            </div>
            {msg && <div className="text-[12px] font-bold break-all" style={{ color: msg.ok ? "#4ade80" : "#5ce1e6" }}>{msg.text}</div>}
        </div>
    );
};

// ═══════════════════════════════════════════
// COMPOSANT : Paiement Clé en Main — Admin
// ═══════════════════════════════════════════
const TurnkeyPaymentPanel = ({ licenseKey, isConnected, config }) => {
    const [prices, setPrices] = useState({ premium_price: "30", boutique_price: "45" });
    const [loadingBank, setLoadingBank] = useState(false);
    const [loadingPrices, setLoadingPrices] = useState(false);

    useEffect(() => {
        if (config && config.prices && config.prices.monthly) {
            setPrices({
                premium_price: config.prices.monthly.premium.amount || "30",
                boutique_price: config.prices.monthly.boutique.amount || "45"
            });
        }
    }, [config]);

    const disconnectBank = async () => {
        if (!confirm("⚠️ Es-tu sûr de vouloir déconnecter ton compte bancaire Stripe ?\nTes clients ne pourront plus s'abonner et tes prix seront réinitialisés.")) return;
        setLoadingBank(true);
        try {
            const r = await fetch('/admin/stripe/disconnect', {
                method: 'POST',
                headers: { 'X-License-Key': licenseKey }
            });
            if (r.ok) {
                alert("✅ Compte bancaire déconnecté !");
                window.location.reload();
            } else {
                alert("⚠️ Erreur lors de la déconnexion.");
            }
        } catch(e) {
            alert("Erreur serveur.");
        }
        setLoadingBank(false);
    };

    // 1. Redirige vers Stripe Express pour l'IBAN
    const connectBank = async () => {
        setLoadingBank(true);
        try {
            const r = await fetch('/admin/stripe/connect', {
                method: 'POST',
                headers: { 'X-License-Key': licenseKey }
            });
            const data = await r.json();
            if (r.ok && data.url) {
                window.location.href = data.url;
            } else {
                alert("Erreur Stripe : " + (data.detail || "Vérifie que ton profil Connect est bien configuré sur le Dashboard Stripe."));
            }
        } catch(e) {
            alert("Erreur de connexion au serveur.");
        }
        setLoadingBank(false);
    };

    // 2. Création automatique des prix
    const savePrices = async () => {
        setLoadingPrices(true);
        try {
            const r = await fetch('/admin/stripe/set-prices', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json', 'X-License-Key': licenseKey },
                body: JSON.stringify(prices)
            });
            if (r.ok) alert("✅ Tarifs mis à jour et prêts à l'emploi !");
            else alert("⚠️ Erreur. As-tu bien connecté ta banque d'abord ?");
        } catch(e) {
            alert("Erreur de sauvegarde.");
        }
        setLoadingPrices(false);
    };

    return (
        <div className="bg-[#0a0a0a] border border-white/8 rounded-3xl p-6 shadow-2xl space-y-6">
            <div>
                <h3 className="text-lg font-black text-white italic">💰 ENCAISSEMENT AUTOMATIQUE</h3>
                <p className="text-[11px] text-gray-500 mt-1">
                    1. Renseigne ton IBAN via notre partenaire sécurisé Stripe.<br/>
                    2. Fixe tes prix. L'argent tombera directement sur ton compte bancaire !
                </p>
            </div>

            <div className="flex gap-3">
                <button onClick={connectBank} disabled={loadingBank} className="flex-1 bg-indigo-600 hover:bg-indigo-500 text-white font-black text-xs uppercase px-5 py-4 rounded-xl transition shadow-lg shadow-indigo-600/20">
                    {loadingBank ? "Patientez..." : (isConnected ? "🏦 Gérer mon compte Stripe" : "🏦 1. Connecter mon compte bancaire")}
                </button>
                {isConnected && (
                    <button onClick={disconnectBank} disabled={loadingBank} className="bg-red-600 hover:bg-red-500 text-white font-black text-xs uppercase px-5 py-4 rounded-xl transition shadow-lg shadow-red-600/20">
                        🔌 Déconnecter
                    </button>
                )}
            </div>

            <div className="flex gap-4">
                <div className="flex-1 bg-white/5 p-4 rounded-xl border border-white/10">
                    <span className="text-[10px] font-bold text-gray-400 uppercase">Prix Premium (€ / mois)</span>
                    <input type="number" value={prices.premium_price} onChange={e => setPrices({...prices, premium_price: e.target.value})} className="w-full mt-2 bg-black/40 border border-white/10 text-white rounded-lg px-4 py-3 font-black text-lg outline-none focus:border-red-600" />
                </div>
                <div className="flex-1 bg-white/5 p-4 rounded-xl border border-white/10">
                    <span className="text-[10px] font-bold text-gray-400 uppercase">Prix Boutique (€ / mois)</span>
                    <input type="number" value={prices.boutique_price} onChange={e => setPrices({...prices, boutique_price: e.target.value})} className="w-full mt-2 bg-black/40 border border-white/10 text-white rounded-lg px-4 py-3 font-black text-lg outline-none focus:border-red-600" />
                </div>
            </div>

            <button onClick={savePrices} disabled={loadingPrices} className="w-full bg-green-600 hover:bg-green-500 text-white font-black text-xs uppercase px-5 py-4 rounded-xl transition shadow-lg shadow-green-600/20">
                {loadingPrices ? "Création..." : "✅ 2. Appliquer mes prix"}
            </button>
        </div>
    );
};

// ═══════════════════════════════════════════
// COMPOSANT : Saas Config — Onglet Dédié
// ═══════════════════════════════════════════
const FEATURE_LABELS = {
    radar: "Radar Live Temps Réel",
    filters: "Filtres Avancés Illimités",
    saves: "Sauvegardes & Favoris",
    banwords: "Mots Bannis",
    extension: "Extension Chrome (Estimation)",
    autocart: "Bouton Panier Auto",
    autobuy: "Bouton Achat Rapide",
    boutique: "Accès Boutique en ligne"
};

const TabSaas = ({ licenseKey }) => {
    const [features, setFeatures] = useState(null);
    const [saving, setSaving] = useState(false);
    const [config, setConfig] = useState(null);

    useEffect(() => {
        fetch('/api/saas-config').then(r => r.json()).then(d => {
            setConfig(d);
            setFeatures(d.features || d);
        });
    }, []);

    const toggleFeature = (plan, feat) => {
        setFeatures(prev => ({
            ...prev,
            [plan]: { ...prev[plan], [feat]: !prev[plan][feat] }
        }));
    };

    const saveFeatures = async () => {
        setSaving(true);
        await fetch('/admin/saas-features', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json', 'X-License-Key': licenseKey },
            body: JSON.stringify(features)
        });
        setSaving(false);
        alert("✅ Permissions sauvegardées avec succès !");
    };

    return (
        <div className="p-2 sm:p-4 md:p-8 space-y-4 md:space-y-8 animate-pop">
            <div className="flex flex-col mb-4">
                <h2 className="text-xl md:text-3xl font-black text-white italic">⚙️ SAAS CONFIGURATION</h2>
                <p className="text-xs text-gray-500 mt-2 uppercase tracking-widest font-bold">Gère tes abonnements, tes prix, et les permissions de tes clients.</p>
            </div>

            <TurnkeyPaymentPanel 
                licenseKey={licenseKey} 
                isConnected={!!config?.stripe_account_id} 
                config={config} 
            />
            {/* 🚀 On a ajouté config={config} juste au-dessus */}

            {features && (
                <div className="bg-[#0a0f1e] border border-white/8 rounded-3xl p-6 shadow-2xl space-y-6">
                    <div>
                        <h3 className="text-lg font-black text-white italic">🎛️ PERMISSIONS DES ABONNEMENTS</h3>
                        <p className="text-[11px] text-gray-500 mt-1">Définis qui a accès à quoi selon le plan choisi.</p>
                    </div>
                    
                    <div className="flex flex-col md:flex-row gap-4">
                        {['bot_only', 'bot_boutique'].map(plan => (
                            <div key={plan} className="flex-1 bg-white/5 p-5 rounded-2xl border border-white/10">
                                <h4 className="text-sm font-black uppercase text-white mb-4 tracking-wider border-b border-white/10 pb-2">{plan === 'bot_only' ? 'PREMIUM (Bot Only)' : 'BOUTIQUE'}</h4>
                                {Object.keys(features[plan]).map(feat => (
                                    <div key={feat} className="flex items-center justify-between mb-4">
                                        <span className="text-xs font-bold text-gray-400 uppercase tracking-widest">{FEATURE_LABELS[feat] || feat}</span>
                                        <label className="switch">
                                            <input type="checkbox" checked={features[plan][feat]} onChange={() => toggleFeature(plan, feat)} />
                                            <span className="slider" />
                                        </label>
                                    </div>
                                ))}
                            </div>
                        ))}
                    </div>
                    
                    <button onClick={saveFeatures} disabled={saving} className="w-full bg-blue-600 hover:bg-blue-500 text-white font-black text-xs uppercase px-5 py-4 rounded-xl transition shadow-lg shadow-blue-600/20 disabled:opacity-50">
                        {saving ? "Sauvegarde en cours..." : "💾 Sauvegarder les permissions"}
                    </button>
                </div>
            )}
        </div>
    );
};

// ═══════════════════════════════════════════
// COMPOSANT : Dashboard Admin 
// ═══════════════════════════════════════════
const TabAdmin = ({ licenseKey }) => {
    const [status, setStatus] = useState({ security_enabled: true, users: [] });
    const [isSuperAdmin, setIsSuperAdmin] = useState(false);
    const [search, setSearch] = useState("");
    const [editingId, setEditingId] = useState(null);   // id du user en cours d'édition
    const [editValue, setEditValue] = useState("");      // valeur saisie dans l'input
    const [savingId, setSavingId] = useState(null);     // id en cours de sauvegarde (feedback)
    
    const fetchStatus = () => {
        fetch(`/admin/status`, { headers: { 'X-License-Key': licenseKey } })
            .then(r => r.json())
            .then(d => { 
                if(!d.error) {
                    setStatus(d); 
                    setIsSuperAdmin(d.is_super_admin === true);
                }
            });
    };

    useEffect(() => {
        fetchStatus();
        const intv = setInterval(fetchStatus, 5000);
        return () => clearInterval(intv);
    }, []);

    // 🚀 LOGIQUE DE CALCUL DU DÉCOMPTE D'INACTIVITÉ (3 JOURS)
    const getCountdown = (lastActiveIso) => {
        if (!lastActiveIso) return "Jamais connecté";
        
        const lastActive = new Date(lastActiveIso);
        const cutoffDate = new Date(lastActive.getTime() + 3 * 24 * 60 * 60 * 1000); // Date d'activité + 3 jours
        const now = new Date();
        const diff = cutoffDate - now;

        if (diff <= 0) return "⚠️ FILTRES COUPÉS";

        const d = Math.floor(diff / (24 * 3600 * 1000));
        const h = Math.floor((diff % (24 * 3600 * 1000)) / (3600 * 1000));
        const m = Math.floor((diff % (3600 * 1000)) / (60 * 1000));

        return `${d}J ${h}H ${m}M`;
    };

    const handleAction = (endpoint, uid) => {
        fetch(endpoint, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json', 'X-License-Key': licenseKey },
            body: JSON.stringify({ user_id: uid })
        }).then(() => fetchStatus());
    };

    // 🚀 PASTILLE DE STATUT DE PAIEMENT (Pill Badge)
    const getStatusBadge = (status) => {
        if (status === 'active') {
            return (
                <span className="inline-flex items-center gap-1.5 bg-green-950/30 border border-green-900/50 px-2 py-1 rounded-full ml-2 align-middle">
                    <span className="w-1.5 h-1.5 rounded-full bg-green-500 shadow-[0_0_5px_#22c55e]"></span>
                    <span className="text-[9px] font-black text-green-400 uppercase tracking-widest">Actif</span>
                </span>
            );
        }
        if (status === 'canceling') {
            return (
                <span className="inline-flex items-center gap-1.5 bg-orange-950/30 border border-orange-900/50 px-2 py-1 rounded-full ml-2 align-middle">
                    <span className="w-1.5 h-1.5 rounded-full bg-orange-500 shadow-[0_0_5px_#f97316]"></span>
                    <span className="text-[9px] font-black text-orange-400 uppercase tracking-widest">Annulation en cours</span>
                </span>
            );
        }
        if (status === 'inactive') {
            return (
                <span className="inline-flex items-center gap-1.5 bg-red-950/30 border border-red-900/50 px-2 py-1 rounded-full ml-2 align-middle">
                    <span className="w-1.5 h-1.5 rounded-full bg-red-500 shadow-[0_0_5px_#ef4444]"></span>
                    <span className="text-[9px] font-black text-red-400 uppercase tracking-widest">Résilié</span>
                </span>
            );
        }
        return (
            <span className="inline-flex items-center gap-1.5 bg-gray-800/30 border border-gray-700/50 px-2 py-1 rounded-full ml-2 align-middle">
                <span className="w-1.5 h-1.5 rounded-full bg-gray-400 shadow-[0_0_5px_#9ca3af]"></span>
                <span className="text-[9px] font-black text-gray-400 uppercase tracking-widest">Non payé</span>
            </span>
        );
    };

    // ── Export filtres d'un membre ──────────────────────────────────
    const adminExportFilters = async (u) => {
        try {
            const res = await fetch(`/admin/export_filters?user_id=${u.id}`, {
                headers: { 'X-License-Key': licenseKey }
            });
            if (!res.ok) { alert("Erreur export filtres."); return; }
            const filters = await res.json();
            if (!Array.isArray(filters) || filters.length === 0) { alert("Ce membre n'a aucun filtre."); return; }
            const header = ["name", "brand", "query", "price_min", "price_max", "active", "auto_save"];
            const rows = filters.map(f =>
                header.map(k => `"${String(f[k] ?? "").replace(/"/g, '""')}"`).join(",")
            );
            const csv = [header.join(","), ...rows].join("\n");
            const blob = new Blob(["\uFEFF" + csv], { type: "text/csv;charset=utf-8;" });
            const url = URL.createObjectURL(blob);
            const a = document.createElement("a");
            const name = (u.custom_name || u.whop_username || `user_${u.id}`).replace(/\s+/g, "_");
            a.href = url;
            a.download = `filtres_${name}.csv`;
            document.body.appendChild(a);
            a.click();
            setTimeout(() => { document.body.removeChild(a); URL.revokeObjectURL(url); }, 200);
        } catch(err) { alert("Erreur : " + err.message); }
    };

    // ── Import filtres pour un membre ───────────────────────────────
    const adminImportFilters = (u, file) => {
        if (!file) return;
        const reader = new FileReader();
        reader.onload = async (ev) => {
            try {
                const raw = ev.target.result.replace(/^\uFEFF/, "").replace(/\r/g, "");
        const lines = raw.split("\n").filter(l => l.trim());
                if (lines.length < 2) { alert("Fichier CSV vide ou invalide."); return; }
                const header = lines[0].split(",").map(h => h.replace(/^"|"$/g, "").trim());
                const parsed = lines.slice(1).map(line => {
                    const vals = (() => { const r=[],re=/("((?:[^"]|"")*)")|([^,]*)/g; let m; while((m=re.exec(line))!==null){ if(m.index===re.lastIndex&&m[0]===""){re.lastIndex++;continue;} r.push(m[1]!==undefined ? m[2].replace(/""/g,'"') : m[3]); if(re.lastIndex>=line.length)break; re.lastIndex++; } return r; })();
                    const obj = {};
                    header.forEach((h, i) => { obj[h] = vals[i] ?? ""; });
                    return {
                        name:      obj.name      || "",
                        brand:     obj.brand     || "",
                        query:     obj.query     || "",
                        price_min: obj.price_min || "",
                        price_max: obj.price_max || "",
                        active:    obj.active === "true" || obj.active === "1" || obj.active === "TRUE",
                        auto_save: obj.auto_save === "true" || obj.auto_save === "1" || obj.auto_save === "TRUE",
                    };
                }).filter(f => f.name && f.query);
                if (parsed.length === 0) { alert("Aucun filtre valide trouvé."); return; }
                const name = u.custom_name || u.whop_username || `user ${u.id}`;
                if (!confirm(`Importer ${parsed.length} filtre(s) pour ${name} ? Les filtres existants seront conservés.`)) return;
                const res = await fetch('/admin/import_filters', {
                    method: 'POST',
                    headers: { 'Content-Type': 'application/json', 'X-License-Key': licenseKey },
                    body: JSON.stringify({ user_id: u.id, filters: parsed })
                });
                if (!res.ok) { alert("Erreur lors de l'import."); return; }
                alert(`✅ ${parsed.length} filtre(s) importé(s) pour ${name}.`);
                fetchStatus();
            } catch(err) { alert("Erreur CSV : " + err.message); }
        };
        reader.readAsText(file, "utf-8");
    };

    // ── Renommage ───────────────────────────────────────────────────
    const startEdit = (u) => {
        setEditingId(u.id);
        setEditValue(u.custom_name || u.whop_username || "");
    };

    const cancelEdit = () => {
        setEditingId(null);
        setEditValue("");
    };

    const saveEdit = (uid) => {
        setSavingId(uid);
        fetch('/admin/update_name', {
            method: 'POST',
            headers: {'Content-Type': 'application/json', 'X-License-Key': licenseKey},
            body: JSON.stringify({ user_id: uid, new_name: editValue })
        })
        .then(r => r.json())
        .then(() => { fetchStatus(); setEditingId(null); setEditValue(""); })
        .finally(() => setSavingId(null));
    };

    const q = search.toLowerCase();
    const filtered = (status.users || []).filter(u =>
        !q ||
        (u.name || "").toLowerCase().includes(q) ||
        (u.whop_username || "").toLowerCase().includes(q) ||
        (u.custom_name || "").toLowerCase().includes(q) ||
        (u.email || "").toLowerCase().includes(q) ||
        String(u.id) === q
    );

    // ── Compteur global de filtres actifs ──────────────────────────────────────
    const totalActiveFilters = (status.users || []).reduce((sum, u) => sum + (u.active_filters || 0), 0);

    // Paliers de capacité (basés sur les seuils documentés)
    const TIERS = [
        {
            max: 100,
            label: "Nominal",
            color: "#22c55e",
            bg: "rgba(34,197,94,0.08)",
            border: "rgba(34,197,94,0.25)",
            badge: "✅ OK",
            badgeColor: "#22c55e",
            msg: "Ça tient sans souci avec la config actuelle.",
            advice: "Logger la profondeur de filter_tx et le temps moyen de process_target pour anticiper la suite.",
        },
        {
            max: 300,
            label: "Attention",
            color: "#f59e0b",
            bg: "rgba(245,158,11,0.08)",
            border: "rgba(245,158,11,0.25)",
            badge: "⚠️ WATCH",
            badgeColor: "#f59e0b",
            msg: "Backlog par micro-pics, surtout sur mots-clés rares ou si fril.jp répond lentement.",
            advice: "La dédup par keyword est le changement qui donne le plus de marge pour le moins d'effort. Si pas encore fait, maintenant.",
        },
        {
            max: 800,
            label: "Surcharge",
            color: "#ef4444",
            bg: "rgba(239,68,68,0.08)",
            border: "rgba(239,68,68,0.3)",
            badge: "🔴 SURCHARGE",
            badgeColor: "#ef4444",
            msg: "Le reloader envoie plus de travail que 40 workers n'absorbent en 2s. Backlog qui grossit, délai de détection en minutes.",
            advice: "Dédup obligatoire + cooldown par filtre (next_eligible_scan). Grossis le pool de proxies Rakuma (25 → 50-75) si 403/429 fréquents.",
        },
        {
            max: 2000,
            label: "Critique",
            color: "#dc2626",
            bg: "rgba(220,38,68,0.1)",
            border: "rgba(220,38,68,0.4)",
            badge: "💀 CRITIQUE",
            badgeColor: "#dc2626",
            msg: "Même avec dédup, les requêtes uniques dépassent ce qu'un seul process gère proprement.",
            advice: "Augmente MAX_FILTER_WORKERS et MAX_HTTP_RAKUMA/MERCARI progressivement. Pool proxies → 100+ avec rotation par cooldown.",
        },
        {
            max: Infinity,
            label: "Refonte",
            color: "#7c3aed",
            bg: "rgba(124,58,237,0.1)",
            border: "rgba(124,58,237,0.4)",
            badge: "☠️ REFONTE",
            badgeColor: "#7c3aed",
            msg: "Le risque de ban Cloudflare devient le facteur limitant avant même CPU/RAM.",
            advice: "File de jobs partagée (Redis), scraping multi-VPS/IP, dédup + cooldown déjà stables obligatoires en pré-requis.",
        },
    ];

    const currentTier = TIERS.find(t => totalActiveFilters <= t.max) || TIERS[TIERS.length - 1];

    // Calcul de la position dans la jauge (log scale sur 0–2000, puis 100% au delà)
    const GAUGE_MAX = 2000;
    const gaugePercent = Math.min(100, (Math.log1p(totalActiveFilters) / Math.log1p(GAUGE_MAX)) * 100);

    // Positions des seuils sur la jauge
    const tierMarkers = [100, 300, 800, 2000].map(v => ({
        v,
        pct: (Math.log1p(v) / Math.log1p(GAUGE_MAX)) * 100,
    }));

    // Gradient de couleur de la barre
    const barGradient = totalActiveFilters <= 100
        ? "linear-gradient(90deg, #22c55e, #86efac)"
        : totalActiveFilters <= 300
        ? "linear-gradient(90deg, #22c55e, #f59e0b)"
        : totalActiveFilters <= 800
        ? "linear-gradient(90deg, #f59e0b, #ef4444)"
        : totalActiveFilters <= 2000
        ? "linear-gradient(90deg, #ef4444, #0fa3ad)"
        : "linear-gradient(90deg, #0fa3ad, #7c3aed)";

    const FilterCounter = () => (
        <div style={{
            background: currentTier.bg,
            border: `1px solid ${currentTier.border}`,
            borderRadius: 20,
            padding: "20px 24px",
            marginBottom: 24,
        }}>
            {/* Header */}
            <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between", flexWrap: "wrap", gap: 12, marginBottom: 16 }}>
                <div style={{ display: "flex", alignItems: "center", gap: 12 }}>
                    <div style={{ fontSize: 28, fontWeight: 900, color: currentTier.color, fontFamily: "monospace", letterSpacing: -1 }}>
                        {totalActiveFilters}
                    </div>
                    <div>
                        <div style={{ fontSize: 10, color: "#555", textTransform: "uppercase", fontWeight: 900, letterSpacing: 2 }}>Filtres actifs globaux</div>
                        <div style={{ fontSize: 10, color: "#444", marginTop: 1 }}>
                            sur {(status.users || []).length} membre{(status.users || []).length !== 1 ? "s" : ""}
                        </div>
                    </div>
                </div>
                <span style={{
                    background: currentTier.color + "22",
                    color: currentTier.color,
                    border: `1px solid ${currentTier.color}44`,
                    borderRadius: 8,
                    padding: "4px 10px",
                    fontSize: 10,
                    fontWeight: 900,
                    textTransform: "uppercase",
                    letterSpacing: 1,
                }}>
                    {currentTier.badge} — {currentTier.label}
                </span>
            </div>

            {/* Barre de progression avec marqueurs */}
            <div style={{ position: "relative", marginBottom: 24 }}>
                {/* Track */}
                <div style={{ height: 10, background: "rgba(255,255,255,0.05)", borderRadius: 999, overflow: "visible", position: "relative" }}>
                    {/* Fill */}
                    <div style={{
                        height: "100%",
                        width: `${gaugePercent}%`,
                        borderRadius: 999,
                        background: barGradient,
                        transition: "width 0.6s cubic-bezier(.4,0,.2,1)",
                        boxShadow: `0 0 8px ${currentTier.color}66`,
                    }} />
                    {/* Marqueurs de seuil */}
                    {tierMarkers.map(({ v, pct }) => (
                        <div key={v} style={{
                            position: "absolute",
                            top: -3,
                            left: `${pct}%`,
                            width: 2,
                            height: 16,
                            background: "rgba(255,255,255,0.15)",
                            borderRadius: 1,
                            transform: "translateX(-50%)",
                        }} />
                    ))}
                </div>
                {/* Labels des seuils */}
                <div style={{ position: "relative", height: 18, marginTop: 4 }}>
                    {tierMarkers.map(({ v, pct }) => (
                        <div key={v} style={{
                            position: "absolute",
                            left: `${pct}%`,
                            transform: "translateX(-50%)",
                            fontSize: 8,
                            color: "#444",
                            fontWeight: 700,
                            fontFamily: "monospace",
                            whiteSpace: "nowrap",
                        }}>{v}</div>
                    ))}
                    <div style={{
                        position: "absolute",
                        right: 0,
                        fontSize: 8,
                        color: "#444",
                        fontWeight: 700,
                        fontFamily: "monospace",
                    }}>2000+</div>
                </div>
            </div>

            {/* Message du palier courant */}
            <div style={{
                background: "rgba(0,0,0,0.3)",
                borderRadius: 12,
                padding: "12px 16px",
                borderLeft: `3px solid ${currentTier.color}`,
            }}>
                <div style={{ fontSize: 11, color: "#ccc", lineHeight: 1.6, marginBottom: 6 }}>
                    {currentTier.msg}
                </div>
                <div style={{ fontSize: 10, color: currentTier.color, fontWeight: 700, lineHeight: 1.5 }}>
                    → {currentTier.advice}
                </div>
            </div>

            {/* Tous les paliers en mini-résumé */}
            <div style={{ display: "flex", flexWrap: "wrap", gap: 6, marginTop: 14 }}>
                {TIERS.filter(t => t.max !== Infinity).map((t, i) => {
                    const isActive = currentTier === t;
                    const isPast = totalActiveFilters > t.max;
                    return (
                        <div key={i} style={{
                            display: "flex",
                            alignItems: "center",
                            gap: 5,
                            background: isActive ? t.color + "22" : "rgba(255,255,255,0.03)",
                            border: `1px solid ${isActive ? t.color + "55" : "rgba(255,255,255,0.07)"}`,
                            borderRadius: 8,
                            padding: "4px 10px",
                            opacity: isPast && !isActive ? 0.4 : 1,
                        }}>
                            <div style={{ width: 6, height: 6, borderRadius: "50%", background: t.color, flexShrink: 0 }} />
                            <span style={{ fontSize: 9, color: isActive ? t.color : "#555", fontWeight: 900, textTransform: "uppercase" }}>
                                0–{t.max}
                            </span>
                        </div>
                    );
                })}
                <div style={{
                    display: "flex",
                    alignItems: "center",
                    gap: 5,
                    background: currentTier.max === Infinity ? "#7c3aed22" : "rgba(255,255,255,0.03)",
                    border: `1px solid ${currentTier.max === Infinity ? "#7c3aed55" : "rgba(255,255,255,0.07)"}`,
                    borderRadius: 8,
                    padding: "4px 10px",
                    opacity: totalActiveFilters <= 2000 ? 0.4 : 1,
                }}>
                    <div style={{ width: 6, height: 6, borderRadius: "50%", background: "#7c3aed", flexShrink: 0 }} />
                    <span style={{ fontSize: 9, color: currentTier.max === Infinity ? "#7c3aed" : "#555", fontWeight: 900, textTransform: "uppercase" }}>
                        2000+
                    </span>
                </div>
            </div>
        </div>
    );

    return (
        <div className="p-2 sm:p-4 md:p-8 space-y-4 md:space-y-8 animate-pop">
            <SlotsPanel licenseKey={licenseKey} isSuperAdmin={isSuperAdmin} />
            {/* 🚀 MASQUER LE PANEL "FORCER L'ACCÈS" POUR LA WHITE LICENCE */}
            {isSuperAdmin && (
              <ForceAccessPanel licenseKey={licenseKey} />
            )}
            <div className="bg-[#0a0f1e] border border-white/10 rounded-2xl md:rounded-3xl p-4 md:p-6 shadow-2xl">
                
                {/* Compteur de filtres */}
                <FilterCounter />
                <div className="flex flex-col md:flex-row justify-between items-start md:items-center gap-4 mb-6 md:mb-8">
                    <h2 className="text-xl md:text-2xl font-black text-white italic">🛡️ ADMINISTRATION</h2>
                    
                    {/* Empilement de la barre de recherche sur mobile */}
                    <div className="flex flex-col sm:flex-row gap-3 w-full md:w-auto">
                        <input 
                            type="text" 
                            placeholder="Rechercher..." 
                            value={search} 
                            onChange={e => setSearch(e.target.value)} 
                            className="w-full sm:w-auto md:w-64 bg-white/5 border border-white/10 px-4 py-2.5 rounded-xl text-xs text-white outline-none focus:border-red-600" 
                        />
                        <button 
                            onClick={() => handleAction('/admin/toggle_security')} 
                            className={`w-full sm:w-auto px-5 py-2.5 rounded-xl font-black text-[10px] uppercase transition ${status.security_enabled ? 'bg-green-600' : 'bg-red-600'} text-white`}
                        >
                            Sécurité: {status.security_enabled ? "ON" : "OFF"}
                        </button>
                    </div>
                </div>

                {/* 2. Liste des utilisateurs */}
                <div className="grid gap-4">
                    {filtered.map(u => {
                        const countdown = getCountdown(u.last_active_raw);
                        const isCutOff = countdown.includes("⚠️");
                        const isEditing = editingId === u.id;
                        const isSaving  = savingId  === u.id;

                        // ── Dot de présence ──
                        // 🔴 banni | 🟢 en ligne | 🔵 hors ligne + snapshot | ⚫ hors ligne sans snapshot
                        const dotClass = u.is_locked
                            ? "bg-red-500 animate-pulse"
                            : u.is_online
                                ? "bg-green-500 animate-pulse"
                                : u.snapshot_count > 0
                                    ? "bg-blue-400"
                                    : "bg-gray-600";

                        // ── Badge filtre ──
                        let filterBadge;
                        if (u.is_locked) {
                            filterBadge = null; // Le badge BANNI suffit
                        } else if (u.is_online && u.active_filters > 0) {
                            // En ligne avec filtres actifs
                            filterBadge = <span className="bg-green-600/20 text-green-400 border border-green-600/30 text-[9px] font-black uppercase px-2 py-1 rounded-md tracking-wider whitespace-nowrap">🟢 {u.active_filters} actifs</span>;
                        } else if (!u.is_online && u.snapshot_count > 0) {
                            // Hors ligne, snapshot présent = filtres mémorisés
                            filterBadge = <span className="bg-blue-600/20 text-blue-300 border border-blue-600/30 text-[9px] font-black uppercase px-2 py-1 rounded-md tracking-wider whitespace-nowrap">💤 {u.snapshot_count} mémorisés</span>;
                        } else if (u.is_online && u.active_filters === 0 && u.snapshot_count > 0) {
                            // En ligne mais restore pas encore consommé (cas transitoire)
                            filterBadge = <span className="bg-yellow-600/20 text-yellow-400 border border-yellow-600/30 text-[9px] font-black uppercase px-2 py-1 rounded-md tracking-wider whitespace-nowrap">⏳ Restauration…</span>;
                        } else if (u.total_filters === 0) {
                            // N'a jamais créé de filtre
                            filterBadge = <span className="bg-gray-700/50 text-gray-500 text-[9px] font-black uppercase px-2 py-1 rounded-md tracking-wider whitespace-nowrap">Aucun filtre</span>;
                        } else {
                            // A des filtres mais tous OFF
                            filterBadge = <span className="bg-red-600/20 text-red-400 border border-red-600/30 text-[9px] font-black uppercase px-2 py-1 rounded-md tracking-wider whitespace-nowrap">⛔ TOUT OFF</span>;
                        }

                        // ── Texte de statut ──
                        const statusText = u.is_locked
                            ? <span className="text-red-400 font-black">BANNI</span>
                            : u.is_online
                                ? <span className="text-green-400 font-black">EN LIGNE</span>
                                : u.snapshot_count > 0
                                    ? <span className="text-blue-300">HORS LIGNE — filtres mémorisés</span>
                                    : <span className="text-gray-500">HORS LIGNE</span>;

                        // ── Couleur de fond de la card ──
                        const cardBg = u.is_locked
                            ? "bg-red-900/10 border-red-900/30"
                            : u.is_online
                                ? "bg-green-900/5 border-green-900/20"
                                : u.snapshot_count > 0
                                    ? "bg-blue-900/5 border-blue-900/20"
                                    : "bg-white/5 border-white/10 hover:border-white/20";

                        return (
                            <div key={u.id} className={`flex flex-col xl:flex-row justify-between items-start xl:items-center p-4 md:p-5 gap-4 rounded-2xl border transition ${cardBg}`}>
                                
                                {/* Section Gauche : Infos User */}
                                <div className="w-full">
                                    <div className="flex flex-wrap items-center gap-2 md:gap-3">
                                        {/* Dot de présence */}
                                        <div className={`w-2 h-2 rounded-full flex-shrink-0 ${dotClass}`} />

                                        {/* ── Nom / Champ d'édition inline ── */}
                                        {isEditing ? (
                                            <div className="flex items-center gap-2">
                                                <input
                                                    autoFocus
                                                    type="text"
                                                    value={editValue}
                                                    onChange={e => setEditValue(e.target.value)}
                                                    onKeyDown={e => { if (e.key === 'Enter') saveEdit(u.id); if (e.key === 'Escape') cancelEdit(); }}
                                                    className="bg-white/10 border border-white/30 focus:border-red-500 text-white font-black text-base rounded-lg px-3 py-1 outline-none w-44"
                                                    placeholder="Alias admin..."
                                                />
                                                <button onClick={() => saveEdit(u.id)} disabled={isSaving} className="bg-green-600 hover:bg-green-500 text-white text-[10px] font-black px-3 py-1.5 rounded-lg uppercase transition disabled:opacity-50">
                                                    {isSaving ? "..." : "✓"}
                                                </button>
                                                <button onClick={cancelEdit} className="bg-white/10 hover:bg-white/20 text-gray-400 text-[10px] font-black px-3 py-1.5 rounded-lg uppercase transition">✕</button>
                                            </div>
                                        ) : (
                                            <div className="flex items-center gap-2">
                                                <div className="text-white font-black text-base md:text-lg">
                                                    {u.custom_name ? (
                                                        <>{u.custom_name}<span className="ml-1.5 text-[10px] text-gray-600 font-normal italic">({u.whop_username || "—"})</span></>
                                                    ) : u.name}
                                                    <span className="ml-1 md:ml-2 text-[10px] text-gray-500 font-normal">ID: {u.id}</span>
                                                </div>
                                                <button onClick={() => startEdit(u)} title="Modifier l'alias" className="text-gray-600 hover:text-white text-xs transition ml-1">✏️</button>
                                            </div>
                                        )}

                                        {/* Badge filtre */}
                                        {filterBadge}

                                        {/* Badge extension */}
                                        {u.has_extension && (
                                            <span className="bg-purple-600/20 text-purple-300 border border-purple-600/30 text-[9px] font-black uppercase px-2 py-1 rounded-md tracking-wider whitespace-nowrap">🧩 EXT</span>
                                        )}
                                    </div>
                                    
                                    <div className="text-[10px] text-gray-500 font-mono mt-2 md:mt-1 break-all">
                                        {u.email} · <span className="text-blue-400 font-bold uppercase">{u.plan}</span>
                                        {getStatusBadge(u.payment_status)}
                                    </div>

                                    {/* Texte de statut */}
                                    <div className="text-[10px] mt-1">{statusText}</div>

                                    <div className="flex flex-wrap items-center gap-2 mt-2">
                                        <div className="bg-white/5 border border-white/10 px-2 py-1 rounded-md flex items-center gap-1.5">
                                            <span className="text-[9px] text-gray-500 uppercase font-black tracking-wider">Auto-off :</span>
                                            <span className={`text-[10px] font-black font-mono ${isCutOff ? 'text-red-500' : 'text-orange-400'}`}>{countdown}</span>
                                        </div>
                                        <span className="text-[9px] text-gray-600 italic">Dernière vue : {u.last_active}</span>
                                    </div>

                                    {u.is_locked && <div className="text-[10px] text-red-400 font-bold mt-2 uppercase">⚠️ BANNI : {u.remaining_min} MIN</div>}
                                </div>

                                {/* Section Droite : Boutons d'actions */}
                                <div className="flex flex-wrap w-full xl:w-auto gap-2 mt-2 xl:mt-0">
                                    {u.is_locked && (
                                        <button onClick={() => handleAction('/admin/unban', u.id)} className="flex-1 xl:flex-none bg-blue-600 text-white px-4 py-2.5 md:py-2 rounded-xl font-black text-[10px] uppercase shadow-lg shadow-blue-600/20">
                                            Libérer
                                        </button>
                                    )}
                                    <button 
                                        onClick={() => handleAction('/admin/enable_filters', u.id)} 
                                        className={`flex-1 xl:flex-none px-4 py-2.5 md:py-2 rounded-xl font-black text-[10px] uppercase transition whitespace-nowrap ${u.active_filters > 0 ? 'bg-green-600 text-white shadow-lg shadow-green-600/20' : 'bg-green-600/10 text-green-500 border border-green-600/20'}`}
                                    >
                                        Filtres ON
                                    </button>
                                    <button 
                                        onClick={() => handleAction('/admin/disable_filters', u.id)} 
                                        className={`flex-1 xl:flex-none px-4 py-2.5 md:py-2 rounded-xl font-black text-[10px] uppercase transition whitespace-nowrap ${u.active_filters === 0 ? 'bg-red-600 text-white shadow-lg shadow-red-600/20' : 'bg-white/10 text-gray-400 hover:bg-red-600 hover:text-white'}`}
                                    >
                                        Filtres OFF
                                    </button>
                                    {/* 🚀 MASQUER LE BOUTON SUPPRIMER POUR LA WHITE LICENCE */}
                                    {isSuperAdmin && (
                                    <button 
                                        onClick={() => handleAction('/admin/delete_user', u.id)} 
                                        className="bg-red-900/20 text-red-500 hover:bg-red-600 hover:text-white px-4 py-2.5 md:py-2 rounded-xl font-black text-[12px] md:text-[10px] transition border border-red-600/20"
                                    >
                                        🗑️
                                    </button>
                                    )}
                                    {/* Export filtres */}
                                    <button
                                        onClick={() => adminExportFilters(u)}
                                        title="Exporter les filtres en CSV"
                                        className="bg-blue-600/10 text-blue-400 border border-blue-600/20 hover:bg-blue-600 hover:text-white px-3 py-2.5 md:py-2 rounded-xl font-black text-[10px] uppercase transition whitespace-nowrap"
                                    >
                                        ⬇ CSV
                                    </button>
                                    {/* Import filtres */}
                                    <label
                                        title="Importer des filtres depuis un CSV"
                                        className="bg-green-600/10 text-green-400 border border-green-600/20 hover:bg-green-600 hover:text-white px-3 py-2.5 md:py-2 rounded-xl font-black text-[10px] uppercase transition cursor-pointer whitespace-nowrap"
                                    >
                                        ⬆ CSV
                                        <input type="file" accept=".csv" onChange={e => { adminImportFilters(u, e.target.files[0]); e.target.value = ""; }} style={{ display: "none" }} />
                                    </label>
                                </div>
                            </div>
                        );
                    })}
                </div>
            </div>
        </div>
    );
};

// ═══════════════════════════════════════════
// COMPOSANT PRINCIPAL
// ═══════════════════════════════════════════
function App() {
  const [licenseKey, setLicenseKey] = useState(() => localStorage.getItem("pingted-licence-key") || "");
  const [unlocked, setUnlocked] = useState(false);
  const [userPlan, setUserPlan] = useState("bot_only");
  const [userData, setUserData] = useState(null);

  const VALID_TABS = ["live", "filters", "saves", "boutique", "banwords", "admin", "saas", "account"];
  const [activeTab, setActiveTab] = useState(() => {
    const path = window.location.pathname.replace(/^\//, "").trim();
    return VALID_TABS.includes(path) ? path : "live";
  });
  const [is404, setIs404] = useState(() => {
    const path = window.location.pathname.replace(/^\//, "").trim();
    return path !== "" && !["live", "filters", "saves", "boutique", "banwords", "admin", "saas", "account", "success"].includes(path);
  });
  const [sidebarOpen, setSidebarOpen] = useState(false);
  const [isLight, setIsLight] = useState(() => localStorage.getItem("pingted-theme") === "light");
  const [isPaused, setIsPaused] = useState(false);
  const [filterZero, setFilterZero] = useState(() => localStorage.getItem("pingted-filter-zero") === "true");
  const [liveHasNew, setLiveHasNew] = useState(false);

  const [allItems, setAllItems] = useState([]);
  const [saves, setSaves] = useState([]);
  const [boutique, setBoutique] = useState([]);
  const [filters, setFilters] = useState([]);
  const [banwords, setBanwords] = useState([]);
  const [snapshotCount, setSnapshotCount] = useState(0); // nb de filtres mémorisés (snapshot actif)

  const [modalItem, setModalItem] = useState(null);
  const [modalIsBoutique, setModalIsBoutique] = useState(false);
  // 👇 AJOUTE/REMPLACE CES LIGNES 👇
  const [sessionConflict, setSessionConflict] = useState(false);
  const [sessionLocked, setSessionLocked] = useState(false);
  const [isLicenceExpired, setIsLicenceExpired] = useState(false);
  const [syncing, setSyncing] = useState(false);
  const [syncMsg, setSyncMsg] = useState(null);
  const [isStripeSuccess, setIsStripeSuccess] = useState(() => {
    return window.location.pathname.replace(/^\//, "").trim() === "success";
  });

  const handleConflict = useCallback((type) => {
      if (type === "locked") setSessionLocked(true);
      else if (type === "expired") setIsLicenceExpired(true);
      else setSessionConflict(true);
  }, []);
  // 👆 ---------------------------- 👆

  // ── Vérification de la licence à chaque retour/ouverture d'onglet ──
  useEffect(() => {
    const checkLicenseOnFocus = async () => {
      if (document.visibilityState === 'visible') {
        const key = localStorage.getItem("pingted-licence-key");
        if (key) {
          try {
            const res = await fetch("/check_stored_licence", {
              headers: { "X-License-Key": key }
            });
            const data = await res.json();
            if (!data.valid) {
              localStorage.removeItem("pingted-licence-key");
              window.location.reload();
            }
          } catch (e) {
            // Erreur réseau temporaire : on ne bloque pas un utilisateur légitime
          }
        }
      }
    };
    document.addEventListener("visibilitychange", checkLicenseOnFocus);
    return () => document.removeEventListener("visibilitychange", checkLicenseOnFocus);
  }, []);
  const priceHistory = useRef({});

  // ── Gestion des routes URL (/, /boutique, /saves, etc.) ──
  useEffect(() => {
    const onPopState = () => {
      const path = window.location.pathname.replace(/^\//, "").trim();
      const VALID_TABS = ["live", "filters", "saves", "boutique", "banwords", "admin", "saas", "success"];
      if (path !== "" && !VALID_TABS.includes(path)) {
        setIs404(true);
      } else {
        setIs404(false);
        setActiveTab(["live", "filters", "saves", "boutique", "banwords", "admin", "saas"].includes(path) ? path : "live");
      }
    };
    window.addEventListener("popstate", onPopState);
    return () => window.removeEventListener("popstate", onPopState);
  }, []);

  // 1. D'abord les notifications (car on en a besoin plus bas)
const { notifs, show: showNotification, dismiss: dismissNotif, toggle: toggleNotifs, enabled: notifsEnabled } = useNotifications();

// 2. Ensuite la sauvegarde (car on en a besoin plus bas aussi)
const syncSaves = useCallback(async (s) => { 
    await fetch("/update_saves", { 
        method: "POST", 
        headers: authHeaders(licenseKey), 
        body: JSON.stringify(s) 
    }); 
}, [licenseKey]);

// 3. Enfin, le Toggle qui rassemble les deux !
const handleToggleSave = useCallback(async (item) => {
    setSaves((prev) => {
      const exists = prev.some((s) => s.url === item.url);
      const next = exists ? prev.filter((s) => s.url !== item.url) : [item, ...prev];
      
      syncSaves(next);
      
      if (typeof showNotification === 'function') {
          showNotification(exists ? "💔 Retiré des favoris" : "❤️ Ajouté aux favoris", exists ? "warning" : "success");
      }
      return next;
    });
}, [syncSaves, showNotification]);

  // ── Thème ──
  useEffect(() => {
    document.body.classList.toggle("light-mode", isLight);
    localStorage.setItem("pingted-theme", isLight ? "light" : "dark");
  }, [isLight]);

  // ── Persistance filterZero — localStorage + serveur ──
  useEffect(() => {
    localStorage.setItem("pingted-filter-zero", filterZero);
    // Synchroniser avec le serveur pour que l'extension reçoive la même valeur
    if (licenseKey) {
      fetch("/api/preferences", {
        method: "POST",
        headers: authHeaders(licenseKey),
        body: JSON.stringify({ filterZero }),
      }).catch(() => {});
    }
  }, [filterZero]);

  // ── Gestion page /success Stripe ─────────────────────────────────────────
  // Stripe redirige vers /success?session_id=cs_xxx après paiement.
  // On attend que /api/auth/me confirme la session active, puis on bascule sur le feed.
  useEffect(() => {
    const path = window.location.pathname.replace(/^\//, "").trim();
    if (path !== "success") return;
    const params = new URLSearchParams(window.location.search);
    const sessionId = params.get("session_id");

    // Affiche un écran d'attente (handled below via isStripeSuccess state)
    setIsStripeSuccess(true);

    const MAX_TRIES = 12; // 12 × 2.5s = 30s max
    let tries = 0;

    const unlockAndRedirect = (licKey, plan, isAdmin) => {
      setLicenseKey(licKey);
      setUserPlan(plan || "bot_only");
      window.__USER_PLAN__ = plan || "bot_only"; // 🚀 F5 fix
      setUnlocked(true);
      window.__zenAdminVerified = isAdmin === true;
      window.postMessage({ type: "ZEN_SET_LICENCE", licenseKey: licKey }, "*");
      setIsStripeSuccess(false);
      setIs404(false);
      setActiveTab("live");
      window.history.replaceState({}, "", "/live");
    };

    const poll = async () => {
      tries++;
      try {
        // 1. Vérifier /me d'abord (cas webhook déjà reçu)
        const meRes = await fetch("/api/auth/me", { credentials: "include" });
        const me = meRes.ok ? await meRes.json() : null;

        if (me && me.has_sub && me.licence_key) {
          setUserData({ email: me.email, discord_username: me.discord_username });
          unlockAndRedirect(me.licence_key, me.plan, me.is_admin);
          return;
        }

        // 2. Si connecté mais pas encore de sub → forcer sync Stripe (webhook raté/lent)
        if (me && me.email) {
          const syncRes = await fetch("/api/auth/sync-stripe", {
            method: "POST", credentials: "include"
          });
          const sync = syncRes.ok ? await syncRes.json() : null;
          if (sync && sync.ok && sync.licence_key) {
            unlockAndRedirect(sync.licence_key, sync.plan, false);
            return;
          }
        }

        // 3. Retry si pas encore prêt
        if (tries < MAX_TRIES) {
          setTimeout(poll, 2500);
        } else {
          // Timeout — connecté sans sub : on laisse entrer, le guard no-sub prend le relais
          if (me && me.email) {
            setLicenseKey("");
            setUserPlan("bot_only");
            window.__USER_PLAN__ = "bot_only"; // 🚀 F5 fix
            setUnlocked(true);
            setIsStripeSuccess(false);
            setIs404(false);
            window.history.replaceState({}, "", "/");
          } else {
            setIsStripeSuccess(false);
            window.location.href = "/pricing";
          }
        }
      } catch (_) {
        if (tries < MAX_TRIES) setTimeout(poll, 2500);
        else window.location.href = "/pricing";
      }
    };

    // Premier essai avec un léger délai pour laisser le webhook Stripe arriver
    setTimeout(poll, 1500);
  }, []);

  // ── Auto-check : cookie Stripe (prioritaire) puis localStorage Whop ──
  useEffect(() => {
    // Ne pas déclencher si on est sur la page success (gérée ci-dessus)
    const path = window.location.pathname.replace(/^\//, "").trim();
    if (path === "success") return;

    // 1. Essayer le cookie Stripe d'abord
    fetch("/api/auth/me", { credentials: "include" })
      .then((r) => r.ok ? r.json() : null)
      .then((data) => {
        if (data && data.has_sub && data.licence_key) {
          // Abonnement actif confirmé → déverrouiller directement
          setLicenseKey(data.licence_key);
          setUserPlan(data.plan || "bot_only");
          setUserData({ email: data.email, discord_username: data.discord_username });
          window.__USER_PLAN__ = data.plan || "bot_only"; // 🚀 F5 fix : plan dispo pour SAAS_FEATURES dès l'auto-login
          setUnlocked(true);
          window.__zenAdminVerified = data.is_admin === true;
          window.postMessage({ type: "ZEN_SET_LICENCE", licenseKey: data.licence_key }, "*");
          return;
        }
        // Connecté Stripe mais has_sub=false (peut être transitoire) →
        // tenter une synchro avant d'afficher le guard no-sub
        if (data && data.email) {
          window.__zenAdminVerified = data.is_admin === true;
          setUserData({ email: data.email, discord_username: data.discord_username });
          fetch("/api/auth/sync-stripe", { method: "POST", credentials: "include" })
            .then((r) => r.ok ? r.json() : null)
            .then((sync) => {
              if (sync && sync.ok && sync.licence_key) {
                // Synchro réussie → abonnement retrouvé, pas de déconnexion
                setLicenseKey(sync.licence_key);
                setUserPlan(sync.plan || "bot_only");
                window.__USER_PLAN__ = sync.plan || "bot_only"; // 🚀 F5 fix
                setUnlocked(true);
                window.postMessage({ type: "ZEN_SET_LICENCE", licenseKey: sync.licence_key }, "*");
              } else {
                // Vraiment pas d'abonnement actif → guard no-sub
                setLicenseKey("");
                setUserPlan("bot_only");
                window.__USER_PLAN__ = "bot_only"; // 🚀 F5 fix
                setUnlocked(true);
              }
            }).catch(() => {
              // Synchro échouée réseau → ne pas bloquer, ouvrir quand même sans clé
              setLicenseKey("");
              setUserPlan("bot_only");
              window.__USER_PLAN__ = "bot_only"; // 🚀 F5 fix
              setUnlocked(true);
            });
          return;
        }
        // 2. Fallback sur la clé Whop en localStorage
        const key = localStorage.getItem("pingted-licence-key");
        if (!key) return;
        fetch("/check_stored_licence", { headers: { "X-License-Key": key } })
          .then((r) => r.json())
          .then((data2) => {
            if (data2.valid) {
              setLicenseKey(key);
              setUserPlan(data2.plan || "bot_only");
              window.__USER_PLAN__ = data2.plan || "bot_only"; // 🚀 F5 fix
              setUnlocked(true);
              window.__zenAdminVerified = data2.is_admin === true;
              window.postMessage({ type: "ZEN_SET_LICENCE", licenseKey: key }, "*");
            } else if (data2.valid === false && !data2.instance_conflict) {
              // Seulement supprimer si Whop confirme EXPLICITEMENT invalid (pas juste un échec réseau)
              localStorage.removeItem("pingted-licence-key");
            }
            // Si valid===false + instance_conflict : ne rien supprimer non plus
          }).catch(() => {
            // Échec réseau vers /check_stored_licence → faire confiance à la clé existante
            // Ne JAMAIS supprimer la clé sur un simple échec réseau
            setLicenseKey(key);
            setUserPlan("bot_only");
            window.__USER_PLAN__ = "bot_only"; // 🚀 F5 fix
            setUnlocked(true);
          });
      }).catch(() => {
        // Si /api/auth/me échoue (réseau), tenter quand même Whop
        const key = localStorage.getItem("pingted-licence-key");
        if (!key) return;
        fetch("/check_stored_licence", { headers: { "X-License-Key": key } })
          .then((r) => r.json())
          .then((data2) => {
            if (data2.valid) {
              setLicenseKey(key);
              setUserPlan(data2.plan || "bot_only");
              window.__USER_PLAN__ = data2.plan || "bot_only"; // 🚀 F5 fix
              setUnlocked(true);
              window.__zenAdminVerified = data2.is_admin === true;
              window.postMessage({ type: "ZEN_SET_LICENCE", licenseKey: key }, "*");
            } else if (data2.valid === false && !data2.instance_conflict) {
              // Ne supprimer que si Whop confirme explicitement l'invalidité
              localStorage.removeItem("pingted-licence-key");
            }
          }).catch(() => {
            // Échec réseau → faire confiance à la clé, ne pas la supprimer
            setLicenseKey(key);
            setUserPlan("bot_only");
            window.__USER_PLAN__ = "bot_only"; // 🚀 F5 fix
            setUnlocked(true);
          });
      });
  }, []);

  // ── Chargement initial après unlock ──
  // Restore d'abord (remet active=True en base), PUIS charge les filtres.
  // L'ordre séquentiel est critique : sans ça, loadData écrase les filtres
  // restaurés car il lit la DB avant que le restore ait fini d'écrire.
  useEffect(() => {
    if (!unlocked || !licenseKey) return;
    const h = authHeaders(licenseKey);

    const loadAll = async () => {
      // 0. Lire les prefs AVANT le restore pour récupérer le snapshot count
      let snapCount = 0;
      try {
        const prefsBeforeRestore = await fetch("/api/preferences", { headers: h }).then(r => r.json());
        const snap = prefsBeforeRestore && prefsBeforeRestore.active_filter_ids_snapshot;
        snapCount = Array.isArray(snap) ? snap.length : 0;
      } catch (_) {}
      setSnapshotCount(snapCount);

      // 1. Restore en premier — remet active=True sur les filtres du snapshot
      try {
        await fetch("/api/filters/restore", { method: "POST", headers: h });
      } catch (_) {}

      // 2. Charger toutes les données — les filtres sont maintenant corrects en base
      const [f, s, b, bt, serverPrefs] = await Promise.all([
        fetch("/get_filters",     { headers: h }).then(r => r.json()).catch(() => []),
        fetch("/get_saves",       { headers: h }).then(r => r.json()).catch(() => []),
        fetch("/get_banwords",    { headers: h }).then(r => r.json()).catch(() => []),
        fetch("/get_boutique",    { headers: h }).then(r => r.json()).catch(() => []),
        fetch("/api/preferences", { headers: h }).then(r => r.json()).catch(() => null),
      ]);

      setFilters(Array.isArray(f) ? f : []);
      setSaves(Array.isArray(s) ? s : []);
      setBanwords(Array.isArray(b) ? b : []);
      setBoutique(Array.isArray(bt) ? bt : []);
      // Priorité aux préférences serveur (multi-appareils) sur le localStorage
      if (serverPrefs && typeof serverPrefs.filterZero === "boolean") {
        setFilterZero(serverPrefs.filterZero);
      }
    };

    loadAll();
  }, [unlocked, licenseKey]);

  // ── 2. WebSocket message handler (Celui qui manquait !) ──
  const onWsMessage = useCallback(async (e) => {
    if (isPaused) return;

    try {
      const parsed = JSON.parse(e.data);

      // CAS 0 : Messages système typés
      if (parsed && typeof parsed === "object" && !Array.isArray(parsed) && parsed.type) {
        // Préférences mises à jour en temps réel (depuis un autre appareil ou l'extension)
        if (parsed.type === "preferences_update" && parsed.preferences) {
          if (typeof parsed.preferences.filterZero === "boolean") {
            setFilterZero(parsed.preferences.filterZero);
          }
        }
        // user_info : initialisation au démarrage WS
        if (parsed.type === "user_info" && parsed.preferences) {
          if (typeof parsed.preferences.filterZero === "boolean") {
            setFilterZero(parsed.preferences.filterZero);
          }
        }
        // filters_update : un autre onglet/appareil a modifié les filtres → resync
        if (parsed.type === "filters_update") {
          fetch("/get_filters", { headers: authHeaders(licenseKey) })
            .then(r => r.json())
            .then(f => { if (Array.isArray(f)) setFilters(f); })
            .catch(() => {});
        }
        return;
      }

      // CAS 1 : Historique complet (chunk)
      // Merge avec l'existant, dédup par URL, tri par detected_at, 200 items max en mémoire
      if (Array.isArray(parsed)) {
        setAllItems((prev) => {
          const merged = [...parsed, ...prev];
          const seen = new Set();
          const deduped = merged.filter((it) => {
            if (!it.url || seen.has(it.url)) return false;
            seen.add(it.url);
            return true;
          });
          deduped.sort((a, b) => {
            if (a.detected_at && b.detected_at) return b.detected_at.localeCompare(a.detected_at);
            return 0;
          });
          return deduped.slice(0, 200);
        });
        return;
      }

      // CAS 2 : Un nouvel article unique
      const item = parsed.type === "new_item" ? parsed.item : parsed;

      if (item && item.url) {
        // Gestion de l'historique des prix
        if (item.price_eur && item.price_eur !== "N/A") {
          const prev = priceHistory.current[item.url];
          const curr = parsePriceVal(item.price_eur);
          if (prev !== undefined) {
            const prevVal = parsePriceVal(prev);
            if (curr !== null && prevVal !== null && (prevVal/curr >= 1.05)) {
              item._prev_price = prev;
            }
          }
          priceHistory.current[item.url] = item.price_eur;
        }

        // MISE À JOUR DU FEED (Accumulation et Fast-Track)
        setAllItems((prev) => {
          const existingIndex = prev.findIndex((ex) => ex.url === item.url);

          if (existingIndex !== -1) {
            const updatedList = [...prev];
            updatedList[existingIndex] = { ...updatedList[existingIndex], ...item };
            return updatedList;
          } else {
            const updatedList = [item, ...prev].slice(0, 200);
            showNotification({ title: "🎯 Nouveau match", sub: `${item.source_name} · ${item.price_eur}` }, "default");
            setLiveHasNew(true);
            return updatedList;
          }
        });

        // Logique Auto-save
        const matchingFilter = filters.find((f) => f.auto_save && item.title.toLowerCase().includes(f.query.toLowerCase()));
        if (matchingFilter) {
          handleToggleSave(item);
        }
      }
    } catch (err) {
      console.error("Erreur de traitement WS:", err);
    }
  }, [isPaused, filters, handleToggleSave, showNotification, licenseKey]);

  // ── 3. Connexion WebSocket ──
  const connStatus = useWebSocket(unlocked ? licenseKey : null, onWsMessage, handleConflict);

  // ── Sync helpers ──
  const syncBoutique = useCallback(async (b) => {
    const r = await fetch("/update_boutique", { method: "POST", headers: authHeaders(licenseKey), body: JSON.stringify(b) });
    if (r.status === 403) { setBoutique([]); }
  }, [licenseKey]);
  
  const syncFilters = useCallback(async (f) => { await fetch("/update_filters", { method: "POST", headers: authHeaders(licenseKey), body: JSON.stringify(f) }); }, [licenseKey]);
  const syncBanwords = useCallback(async (b) => { await fetch("/update_banwords", { method: "POST", headers: authHeaders(licenseKey), body: JSON.stringify(b) }); }, [licenseKey]);

  // ── Disconnect snapshot : désactive les filtres quand l'onglet/fenêtre se ferme ──
  useEffect(() => {
    if (!unlocked || !licenseKey) return;

    let disconnectSent = false; // garde-fou contre le double envoi (pagehide + beforeunload)

    const sendDisconnect = () => {
      if (disconnectSent) return;
      disconnectSent = true;

      const url = `/api/filters/disconnect?key=${encodeURIComponent(licenseKey)}`;
      const payload = JSON.stringify({});
      const blob = new Blob([payload], { type: "application/json" });

      // Méthode 1 : sendBeacon (le plus fiable en fermeture de page)
      let beaconOk = false;
      if (navigator.sendBeacon) {
        beaconOk = navigator.sendBeacon(url, blob);
        console.log("[PingTed] sendBeacon disconnect →", beaconOk ? "OK" : "ECHEC");
      }

      // Méthode 2 : fetch keepalive (fallback si sendBeacon échoue ou indisponible)
      if (!beaconOk) {
        try {
          fetch(url, {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: payload,
            keepalive: true,
          }).catch(() => {});
          console.log("[PingTed] fetch keepalive disconnect envoyé");
        } catch (_) {}
      }
    };

    const onPageHide = (e) => {
      if (!e.persisted) sendDisconnect();
    };

    const onBeforeUnload = () => sendDisconnect();

    window.addEventListener("pagehide", onPageHide);
    window.addEventListener("beforeunload", onBeforeUnload);

    return () => {
      window.removeEventListener("pagehide", onPageHide);
      window.removeEventListener("beforeunload", onBeforeUnload);
    };
  }, [unlocked, licenseKey]);

  // ── Handlers ──
  const handleUnlock = (plan, key, isAdminFromServer = false, provider = "whop") => {
    // Pour Stripe : on récupère la clé via /api/auth/me après connexion
    if (provider === "stripe" && !key) {
      fetch("/api/auth/me", { credentials: "include" })
        .then((r) => r.ok ? r.json() : null)
        .then((data) => {
          if (data && data.licence_key) {
            setLicenseKey(data.licence_key);
            setUserPlan(data.plan || plan || "bot_only");
            window.__USER_PLAN__ = data.plan || plan || "bot_only"; // 🚀 F5 fix
            setUnlocked(true);
            window.__zenAdminVerified = data.is_admin === true;
            window.postMessage({ type: "ZEN_SET_LICENCE", licenseKey: data.licence_key }, "*");
          } else if (data && data.email) {
            // Connecté mais pas encore d'abonnement — on unlock, le guard no-sub prend le relais
            setLicenseKey("");
            setUserPlan("bot_only");
            window.__USER_PLAN__ = "bot_only"; // 🚀 F5 fix
            setUnlocked(true);
            window.__zenAdminVerified = data.is_admin === true;
          }
        }).catch(() => {});
      return;
    }
    setLicenseKey(key);
    setUserPlan(plan || "bot_only");
    window.__USER_PLAN__ = plan || "bot_only"; // 🚀 F5 fix
    setUnlocked(true);
    window.__zenAdminVerified = isAdminFromServer === true;
    window.postMessage({ type: "ZEN_SET_LICENCE", licenseKey: key }, "*");
  };

  const handleTab = (tab) => {
    // Sécurité : /admin uniquement pour la clé admin
    if (tab === "admin" && !isAdmin(licenseKey)) return;
    setActiveTab(tab);
    if (tab === "live") setLiveHasNew(false);
    if (window.innerWidth < 768) setSidebarOpen(false);
    const url = tab === "live" ? "/" : `/${tab}`;
    window.history.pushState({ tab }, "", url);
  };

  const handleToggleBoutique = useCallback(async (item) => {
    setBoutique((prev) => {
      const exists = prev.some((s) => s.url === item.url);
      const next = exists ? prev.filter((s) => s.url !== item.url) : [item, ...prev];
      syncBoutique(next);
      showNotification(exists ? "🏪 Retiré de la boutique" : "🏪 Ajouté à la boutique", exists ? "warning" : "success");
      return next;
    });
  }, [syncBoutique, showNotification]);

  const handleSavePrice = useCallback(async (url, newPrice) => {
    setBoutique((prev) => {
      const next = prev.map((i) => i.url === url ? { ...i, custom_price: newPrice } : i);
      syncBoutique(next);
      return next;
    });
  }, [syncBoutique]);

  const handleManualAdd = useCallback((target, item) => {
    if (target === "saves") {
      setSaves((prev) => {
        if (prev.some((s) => s.url === item.url)) return prev;
        const next = [item, ...prev];
        syncSaves(next);
        return next;
      });
      showNotification("💾 Article ajouté aux sauvegardes !", "success");
    } else if (target === "boutique") {
      setBoutique((prev) => {
        if (prev.some((s) => s.url === item.url)) return prev;
        const next = [item, ...prev];
        syncBoutique(next);
        return next;
      });
      showNotification("🏪 Article ajouté à la boutique !", "success");
    }
  }, [syncSaves, syncBoutique, showNotification]);

  const openModal = useCallback((item, isBoutiqueTab) => {
    setModalItem(item);
    setModalIsBoutique(!!isBoutiqueTab);
  }, []);

  // PWA init
  useEffect(() => {
    const manifest = { name: "PingTed ELITE", short_name: "PingTed", display: "standalone", background_color: "#060a14", theme_color: "#0fa3ad", start_url: window.location.origin + "/", icons: [{ src: window.location.origin + "/logo.png", sizes: "2560x1024", type: "image/png" }], lang: "fr" };
    const blob = new Blob([JSON.stringify(manifest)], { type: "application/json" });
    const el = document.querySelector('link[rel="manifest"]');
    if (el) el.href = URL.createObjectURL(blob);
  }, []);

  const connLabel = connStatus === "open" ? "SERVEUR ACTIF" : connStatus === "connecting" ? "En connexion..." : "RECONNEXION...";
  const connColor = connStatus === "open" ? "#22c55e" : connStatus === "connecting" ? "#3b82f6" : "#ef4444";

  const handleLogout = async () => {
    localStorage.clear();
    try { await fetch("/api/auth/logout", { method: "POST", credentials: "include" }); } catch {}
    window.location.reload();
  };

  if (!unlocked) return <LicenceGate onUnlock={handleUnlock} />;

  // ── Guard abonnement : connecté mais pas de sub actif → sidebar visible + overlay pricing ──
  const hasActiveSub = !!licenseKey;
  if (!hasActiveSub) {
    const handleSync = async () => {
      setSyncing(true);
      setSyncMsg(null);
      try {
        const res = await fetch("/api/auth/sync-stripe", { method: "POST", credentials: "include" });
        const data = await res.json();
        if (data.ok && data.licence_key) {
          setSyncMsg({ ok: true, text: "Abonnement synchronisé ! Chargement en cours…" });
          setTimeout(() => window.location.reload(), 1200);
        } else {
          setSyncMsg({ ok: false, text: data.message || "Aucun abonnement actif trouvé sur Stripe." });
        }
      } catch {
        setSyncMsg({ ok: false, text: "Erreur réseau. Réessaie dans quelques secondes." });
      } finally {
        setSyncing(false);
      }
    };

    return (
      <div style={{ position: "fixed", inset: 0, background: "#060a14", display: "flex", flexDirection: "column" }}>
        {/* Sidebar floue en arrière-plan */}
        <div style={{ position: "absolute", inset: 0, filter: "blur(4px)", opacity: 0.25, pointerEvents: "none", overflow: "hidden" }}>
          <Sidebar isOpen={true} activeTab="live" onTab={() => {}} isPaused={false} onTogglePause={() => {}} onClearFeed={() => {}} filterZero={false} onFilterZero={() => {}} isLight={false} onTheme={() => {}} liveHasNew={false} userPlan="bot_only" licenseKey="" />
        </div>
        {/* Overlay pricing */}
        <div style={{ position: "relative", zIndex: 10, display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", height: "100%", padding: 24, textAlign: "center" }}>
          <div style={{ fontSize: 56, marginBottom: 20 }}>🔒</div>
          <h1 style={{ fontSize: "clamp(22px,5vw,36px)", fontWeight: 900, color: "#fff", marginBottom: 12, letterSpacing: "-0.03em", textTransform: "uppercase" }}>
            Aucun abonnement <span style={{ color: "#0fa3ad" }}>actif</span>
          </h1>
          <p style={{ color: "#555", maxWidth: 400, lineHeight: 1.7, marginBottom: 32, fontSize: 14 }}>
            Souscris un abonnement pour accéder au feed temps réel, aux filtres et à toutes les fonctionnalités PingTed.
          </p>
          {/* Bouton principal → pricing */}
          <a href="/pricing" style={{ display: "inline-block", background: "#0fa3ad", color: "#fff", padding: "16px 40px", borderRadius: 14, fontWeight: 900, fontSize: 13, textTransform: "uppercase", letterSpacing: "0.1em", textDecoration: "none", boxShadow: "0 8px 32px rgba(15, 163, 173,0.4)", transition: "transform 0.2s" }}
            onMouseEnter={e => e.currentTarget.style.transform = "scale(1.04)"}
            onMouseLeave={e => e.currentTarget.style.transform = "scale(1)"}>
            Voir les abonnements →
          </a>
          {/* Séparateur */}
          <div style={{ display: "flex", alignItems: "center", gap: 12, margin: "28px 0 20px", width: "100%", maxWidth: 360 }}>
            <div style={{ flex: 1, height: 1, background: "#1a1a1a" }} />
            <span style={{ color: "#333", fontSize: 11, fontWeight: 700, letterSpacing: "0.08em", textTransform: "uppercase" }}>Déjà payé ?</span>
            <div style={{ flex: 1, height: 1, background: "#1a1a1a" }} />
          </div>
          {/* Bouton sync */}
          <button
            onClick={handleSync}
            disabled={syncing}
            style={{ background: "transparent", border: "1px solid #2a2a2a", color: syncing ? "#444" : "#888", padding: "12px 28px", borderRadius: 8, fontWeight: 700, fontSize: 13, cursor: syncing ? "not-allowed" : "pointer", transition: "all 0.2s", display: "flex", alignItems: "center", gap: 8 }}
            onMouseEnter={e => { if (!syncing) { e.currentTarget.style.borderColor = "#0fa3ad"; e.currentTarget.style.color = "#5ce1e6"; }}}
            onMouseLeave={e => { e.currentTarget.style.borderColor = "#2a2a2a"; e.currentTarget.style.color = syncing ? "#444" : "#888"; }}>
            {syncing
              ? <><span style={{ width: 14, height: 14, border: "2px solid #333", borderTopColor: "#0fa3ad", borderRadius: "50%", display: "inline-block", animation: "spin 0.7s linear infinite" }} /> Vérification…</>
              : "🔄 Synchroniser mon paiement"}
          </button>
          {/* Message de résultat */}
          {syncMsg && (
            <div style={{ marginTop: 14, fontSize: 13, fontWeight: 600, color: syncMsg.ok ? "#4ade80" : "#5ce1e6", maxWidth: 360 }}>
              {syncMsg.ok ? "✅ " : "⚠️ "}{syncMsg.text}
            </div>
          )}
          <button onClick={handleLogout} style={{ marginTop: 24, background: "transparent", border: "none", color: "#333", fontSize: 12, cursor: "pointer", fontWeight: 600, textDecoration: "underline" }}>
            Se déconnecter
          </button>
        </div>
      </div>
    );
  }

  // ── Guard page /success Stripe — écran d'attente pendant le polling ──
  if (isStripeSuccess) {
    return (
      <div style={{
        position: "fixed", inset: 0, zIndex: 9999, background: "#060a14",
        display: "flex", alignItems: "center", justifyContent: "center",
        flexDirection: "column", gap: 24, textAlign: "center", padding: 24,
        fontFamily: "'DM Sans', sans-serif"
      }}>
        {/* Orb animé */}
        <div style={{
          width: 80, height: 80, borderRadius: "50%",
          background: "radial-gradient(circle, rgba(15, 163, 173,0.5) 0%, transparent 70%)",
          boxShadow: "0 0 60px rgba(15, 163, 173,0.4)",
          animation: "zglowPulse 1.8s ease-in-out infinite",
          display: "flex", alignItems: "center", justifyContent: "center",
          fontSize: 36
        }}>🎉</div>
        <div>
          <div style={{ fontFamily: "'Bebas Neue', sans-serif", fontSize: 32, color: "#fff", letterSpacing: "0.05em" }}>
            Paiement confirmé !
          </div>
          <div style={{ color: "#555", fontSize: 14, marginTop: 8, maxWidth: 320 }}>
            On active ton compte, ça prend quelques secondes…
          </div>
        </div>
        {/* Spinner */}
        <div style={{
          width: 32, height: 32, border: "3px solid rgba(15, 163, 173,0.2)",
          borderTop: "3px solid #0fa3ad", borderRadius: "50%",
          animation: "zspin 0.8s linear infinite"
        }} />
        <div style={{ color: "#333", fontSize: 11, textTransform: "uppercase", letterSpacing: "0.12em" }}>
          Activation en cours…
        </div>
      </div>
    );
  }

  // ── Guard 404 : URL invalide OU /admin sans droits ──
  const show404 = is404 || ((activeTab === "admin" || activeTab === "saas") && !isAdmin(licenseKey));
  if (show404) {
    return (
      <div style={{
        position: "fixed", inset: 0, zIndex: 9999, background: "#060a14",
        display: "flex", alignItems: "center", justifyContent: "center",
        padding: 24, flexDirection: "column", textAlign: "center"
      }}>
        {/* Blobs déco */}
        <div style={{ position: "absolute", inset: 0, overflow: "hidden", pointerEvents: "none" }}>
          <div style={{ position: "absolute", top: "15%", left: "20%", width: 300, height: 300, background: "radial-gradient(circle,rgba(15, 163, 173,0.05) 0%,transparent 70%)", borderRadius: "50%" }} />
          <div style={{ position: "absolute", bottom: "20%", right: "15%", width: 400, height: 400, background: "radial-gradient(circle,rgba(15, 163, 173,0.03) 0%,transparent 70%)", borderRadius: "50%" }} />
        </div>

        {/* Numéro 404 géant */}
        <div style={{
          fontSize: "clamp(80px, 20vw, 160px)", fontWeight: 900, fontStyle: "italic",
          color: "transparent", WebkitTextStroke: "2px rgba(15, 163, 173,0.25)",
          lineHeight: 1, marginBottom: 8, letterSpacing: "-0.05em", userSelect: "none",
          position: "relative", zIndex: 1
        }}>
          404
        </div>

        {/* Icône */}
        <div style={{ fontSize: 48, marginBottom: 20, position: "relative", zIndex: 1 }}>🚫</div>

        <h1 style={{
          fontSize: "clamp(20px, 4vw, 28px)", fontWeight: 900, color: "#fff",
          textTransform: "uppercase", marginBottom: 12, letterSpacing: "-0.03em",
          fontStyle: "italic", position: "relative", zIndex: 1
        }}>
          PAGE <span style={{ color: "#0fa3ad" }}>INTROUVABLE</span>
        </h1>

        <p style={{
          color: "#555", maxWidth: 380, lineHeight: 1.7, marginBottom: 40,
          fontSize: 13, position: "relative", zIndex: 1
        }}>
          La page <span style={{ color: "#fff", fontWeight: 700 }}>{window.location.pathname}</span> n'existe pas ou vous n'avez pas les droits pour y accéder.
        </p>

        <button
          onClick={() => {
            setIs404(false);
            setActiveTab("live");
            window.history.pushState({}, "", "/");
          }}
          style={{
            background: "#0fa3ad", color: "#fff", padding: "14px 36px",
            borderRadius: 14, fontWeight: 900, fontSize: 12,
            textTransform: "uppercase", letterSpacing: "0.1em",
            border: "none", cursor: "pointer", position: "relative", zIndex: 1,
            boxShadow: "0 8px 32px rgba(15, 163, 173,0.3)", transition: "transform 0.2s"
          }}
          onMouseEnter={e => e.currentTarget.style.transform = "scale(1.04)"}
          onMouseLeave={e => e.currentTarget.style.transform = "scale(1)"}
        >
          ← Retour au Feed
        </button>
      </div>
    );
  }

  const isSavedModal = modalItem ? saves.some((s) => s.url === modalItem.url) : false;
  const isBoutiqueModal = modalItem ? boutique.some((s) => s.url === modalItem.url) : false;

  // 👇 ÉCRAN DE BLOCAGE — Abonnement inactif (licence_expired via WS) 👇
  if (isLicenceExpired) {
    return (
      <div style={{ position: "fixed", inset: 0, zIndex: 9999, background: "#060a14", color: "#f0f0f0", display: "flex", alignItems: "center", justifyContent: "center", padding: 16, fontFamily: "inherit" }}>
        <div style={{ maxWidth: 420, width: "100%", background: "#0a0f1e", border: "1px solid rgba(15, 163, 173,0.2)", borderRadius: 14, padding: 32, textAlign: "center", boxShadow: "0 20px 40px rgba(15, 163, 173,0.03)" }}>
          <div style={{ width: 64, height: 64, background: "rgba(15, 163, 173,0.1)", border: "1px solid rgba(15, 163, 173,0.3)", color: "#0fa3ad", borderRadius: "50%", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 24, margin: "0 auto 24px", animation: "pop 0.5s ease-out" }}>
            ⚠️
          </div>

          <h1 style={{ fontSize: 24, fontWeight: 900, marginBottom: 8, color: "#fff", letterSpacing: "-0.02em" }}>
            Aucun abonnement actif
          </h1>

          <p style={{ fontSize: 14, color: "#666", lineHeight: 1.6, marginBottom: 32 }}>
            Souscris un abonnement pour accéder au feed temps réel, aux filtres et à toutes les fonctionnalités PingTed.
          </p>

          <a
            href="/pricing"
            style={{ display: "block", width: "100%", textAlign: "center", background: "#0fa3ad", color: "#fff", fontWeight: 900, padding: "14px 16px", borderRadius: 12, textDecoration: "none", marginBottom: 20, boxShadow: "0 8px 20px rgba(15, 163, 173,0.1)", boxSizing: "border-box" }}
          >
            Voir les abonnements →
          </a>

          <div style={{ paddingTop: 20, borderTop: "1px solid #1a1a1a" }}>
            <p style={{ fontSize: 11, color: "#444", marginBottom: 12, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.05em" }}>
              Déjà payé ?
            </p>
            <button
              onClick={async (e) => {
                const btn = e.currentTarget;
                const origText = btn.innerHTML;
                btn.disabled = true;
                btn.innerHTML = "⏳ Synchronisation...";
                try {
                  const res = await fetch("/api/auth/sync-stripe", { method: "POST", credentials: "include" });
                  if (res.ok) {
                    const data = await res.json();
                    if (data.ok) {
                      window.location.reload();
                      return;
                    }
                  }
                  alert("Aucun abonnement actif détecté sur Stripe. Si tu viens de payer, patiente 1 à 2 minutes que Stripe valide ta facture.");
                } catch (err) {
                  alert("Erreur lors de la synchronisation. Réessaye dans un instant.");
                } finally {
                  btn.disabled = false;
                  btn.innerHTML = origText;
                }
              }}
              style={{ display: "inline-flex", alignItems: "center", gap: 8, fontSize: 13, color: "#5ce1e6", fontWeight: 700, background: "transparent", border: "none", cursor: "pointer", padding: "4px 8px", borderRadius: 6 }}
            >
              🔄 Synchroniser mon paiement
            </button>
          </div>
        </div>
      </div>
    );
  }
  // 👆 ---------------------------------------------------------------- 👆

  // 👇 AJOUTE CES ÉCRANS DE BLOCAGE 👇
  if (sessionLocked) {
    return (
      <div style={{ position: "fixed", inset: 0, zIndex: 9999, background: "#060a14", display: "flex", alignItems: "center", justifyContent: "center", padding: 24, flexDirection: "column", textAlign: "center" }}>
          <div style={{ fontSize: 64, marginBottom: 24, animation: "pop 0.5s ease-out" }}>🛑</div>
          <h1 style={{ fontSize: 24, fontWeight: 900, color: "#ef4444", textTransform: "uppercase", marginBottom: 12 }}>Accès Restreint</h1>
          <p style={{ color: "#888", maxWidth: 400, lineHeight: 1.6, marginBottom: 32, fontSize: 14 }}>
              Une activité suspecte a été détectée sur ta clé de licence (partage d'accès interdit).<br/><br/>
              <b style={{color: "#fff"}}>Par mesure de sécurité, ton accès est verrouillé pour les 2 prochaines heures.</b>
          </p>
      </div>
    );
  }

  if (sessionConflict) {
    return (
      <div style={{ position: "fixed", inset: 0, zIndex: 9999, background: "#060a14", display: "flex", alignItems: "center", justifyContent: "center", padding: 24, flexDirection: "column", textAlign: "center" }}>
          <div style={{ fontSize: 64, marginBottom: 24, animation: "pop 0.5s ease-out" }}>⚠️</div>
          <h1 style={{ fontSize: 24, fontWeight: 900, color: "#fff", textTransform: "uppercase", marginBottom: 12 }}>Session interrompue</h1>
          <p style={{ color: "#888", maxWidth: 400, lineHeight: 1.6, marginBottom: 32, fontSize: 14 }}>
              Un autre appareil vient de se connecter avec cette licence.<br/>
              <b style={{color: "#fff"}}>Une seule session active est autorisée à la fois.</b>
          </p>
          <div style={{ display: "flex", flexWrap: "wrap", gap: 16, justifyContent: "center" }}>
              <button onClick={() => window.location.reload()} style={{ background: "rgba(255,255,255,0.1)", color: "#fff", padding: "14px 24px", borderRadius: 12, fontWeight: 900, textTransform: "uppercase", border: "none", cursor: "pointer", transition: "0.2s" }}>
                  🔄 Reconnecter ici
              </button>
              <button onClick={() => { localStorage.removeItem("pingted-licence-key"); window.location.reload(); }} style={{ background: "#0fa3ad", color: "#fff", padding: "14px 24px", borderRadius: 12, fontWeight: 900, textTransform: "uppercase", border: "none", cursor: "pointer", transition: "0.2s" }}>
                  🔑 Changer de clé
              </button>
          </div>
      </div>
    );
  }
  // 👆 ----------------------------- 👆


  return (
    <div className="p-4 md:p-10">
      {/* Sidebar toggle */}
      <button 
        onClick={() => setSidebarOpen((v) => !v)} 
        className="fixed top-4 left-4 md:top-8 md:left-8 z-[9999] bg-[#0a0f1e] md:bg-white/5 p-3 rounded-xl md:rounded-full border border-white/10 hover:bg-white/10 transition shadow-xl"
        style={{ zIndex: "9999 !important" }} 
      >
        {sidebarOpen ? (
          <svg width="24" height="24" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M6 18L18 6M6 6l12 12" /></svg>
        ) : (
          <svg width="24" height="24" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M4 6h16M4 12h16M4 18h16" /></svg>
        )}
      </button>

      {/* Overlay Sidebar Mobile */}
      {sidebarOpen && (
        <div 
          className="fixed inset-0 z-[990] bg-black/60 backdrop-blur-sm md:hidden"
          onClick={() => setSidebarOpen(false)} 
        />
      )}

{/* 🟢 BARRE D'OUTILS (Blindée avec styles en ligne) 🟢 */}
      <div style={{ position: "fixed", top: "16px", right: "16px", zIndex: 9999, display: "flex", flexDirection: "row", alignItems: "center", gap: "12px" }}>
        {/* 3. Notifications */}
        <button onClick={toggleNotifs} title="Notifications" style={{ position: "relative", display: "flex", alignItems: "center", justifyContent: "center", height: "40px", width: "40px", padding: 0, background: "rgba(10,10,10,0.8)", backdropFilter: "blur(8px)", border: "1px solid rgba(255,255,255,0.1)", borderRadius: "12px", color: "white", cursor: "pointer", flexShrink: 0, boxSizing: "border-box" }}>
          <span style={{ fontSize: "18px", lineHeight: 1, margin: 0, padding: 0 }}>{notifsEnabled ? "🔔" : "🔕"}</span>
          {notifs.length > 0 && (
            <span style={{ position: "absolute", top: "-4px", right: "-4px", background: "#0fa3ad", color: "white", fontSize: "9px", fontWeight: 900, borderRadius: "50%", width: "16px", height: "16px", display: "flex", alignItems: "center", justifyContent: "center", border: "1px solid rgba(255,255,255,0.2)" }}>
              {notifs.length}
            </span>
          )}
        </button>

        {/* 1. Statut */}
        <div style={{ display: "flex", alignItems: "center", justifyContent: "center", height: "40px", minWidth: "40px", padding: "0 12px", background: "rgba(10,10,10,0.8)", backdropFilter: "blur(8px)", border: "1px solid rgba(255,255,255,0.1)", borderRadius: "12px", flexShrink: 0, boxSizing: "border-box" }}>
          <div style={{ width: 8, height: 8, borderRadius: "50%", background: connColor, animation: "pulse 2s ease-in-out infinite", flexShrink: 0 }} />
          <span className="hidden md:block ml-2 text-[10px] font-black text-gray-300 uppercase tracking-widest whitespace-nowrap">{connLabel}</span>
        </div>

        {/* 2. Déconnexion */}
        <button onClick={handleLogout} title="Se déconnecter" style={{ display: "flex", alignItems: "center", justifyContent: "center", height: "40px", minWidth: "40px", padding: "0 12px", background: "rgba(15, 163, 173,0.9)", border: "1px solid rgba(15, 163, 173,0.5)", borderRadius: "12px", color: "white", cursor: "pointer", flexShrink: 0, boxSizing: "border-box" }}>
          <span className="md:hidden" style={{ fontSize: "18px", lineHeight: 1, margin: 0, padding: 0 }}>🚪</span>
          <span className="hidden md:inline text-xs font-bold uppercase tracking-wider whitespace-nowrap">Déconnexion</span>
        </button>

        
        
      </div>
      {/* 🔔 VOLET NOTIFICATIONS — ancré sous la barre d'outils */}
      {notifsEnabled && notifs.length > 0 && (
        <div id="notif-container" style={{
          position: "fixed", top: 68, right: 16, zIndex: 9998,
          display: "flex", flexDirection: "column", gap: 8,
          alignItems: "flex-end", pointerEvents: "none",
        }}>
          {notifs.map((n) => <NotifToast key={n.id} notif={n} onDismiss={dismissNotif} />)}
        </div>
      )}

      {/* Sidebar Component */}
      <Sidebar 
        isOpen={sidebarOpen} 
        activeTab={activeTab} 
        onTab={handleTab} 
        isPaused={isPaused} 
        onTogglePause={() => setIsPaused((v) => !v)} 
        onClearFeed={() => { if (confirm("Vider le feed en cours ?")) { setAllItems([]); priceHistory.current = {}; } }} 
        filterZero={filterZero} 
        onFilterZero={setFilterZero} 
        isLight={isLight} 
        onTheme={setIsLight} 
        liveHasNew={liveHasNew} 
        userPlan={userPlan} 
        licenseKey={licenseKey}
      />
      
      {/* Main content */}
      <div className="pt-20 md:pt-12" style={{ marginLeft: 0 }}>
        {activeTab === "live" && (
          <TabLive items={allItems} saves={saves} boutique={boutique} banwords={banwords} filterZero={filterZero} onOpen={openModal} onToggleSave={handleToggleSave} onToggleBoutique={handleToggleBoutique} showNotification={showNotification} licenseKey={licenseKey} />
        )}
        {activeTab === "saves" && (
          <TabSaves saves={saves} boutique={boutique} onOpen={openModal} onToggleSave={handleToggleSave} onToggleBoutique={handleToggleBoutique} licenseKey={licenseKey} userPlan={userPlan} onManualAdd={handleManualAdd} showNotification={showNotification} />
        )}
        {activeTab === "filters" && (
          <TabFilters 
            filters={filters}
            snapshotCount={snapshotCount}
            onAdd={(f) => { const n = [f, ...filters]; setFilters(n); syncFilters(n); }}
            onEdit={(idx, f) => { const n = filters.map((v, i) => i === idx ? f : v); setFilters(n); syncFilters(n); }} 
            onDelete={(idx) => { const n = filters.filter((_, i) => i !== idx); setFilters(n); syncFilters(n); }} 
            onToggle={(idx) => { const n = filters.map((v, i) => i === idx ? { ...v, active: !v.active } : v); setFilters(n); syncFilters(n); }}
            onBulkUpdate={(newFilters) => { setFilters(newFilters); syncFilters(newFilters); }}
          />
        )}
        {activeTab === "boutique" && (
          <TabBoutique boutique={boutique} saves={saves} userPlan={userPlan} licenseKey={licenseKey} onOpen={openModal} onToggleSave={handleToggleSave} onToggleBoutique={handleToggleBoutique} onSavePrice={handleSavePrice} showNotification={showNotification} onManualAdd={handleManualAdd} />
        )}
        {activeTab === "admin" && isAdmin(licenseKey) && (
          <TabAdmin licenseKey={licenseKey} />
        )}
        {activeTab === "saas" && isAdmin(licenseKey) && (
          <TabSaas licenseKey={licenseKey} />
        )}
        {activeTab === "banwords" && (
          <TabBanwords 
            banwords={banwords} 
            onAdd={(w) => { const n = [...banwords, w]; setBanwords(n); syncBanwords(n); }} 
            onRemove={(i) => { const n = banwords.filter((_, j) => j !== i); setBanwords(n); syncBanwords(n); }}
            // 👇 Ajoute cette ligne pour gérer l'import
            onBulkUpdate={(newBanwords) => { setBanwords(newBanwords); syncBanwords(newBanwords); }} 
          />
        )}
        {activeTab === "account" && (
          <TabDashboard licenseKey={licenseKey} userPlan={userPlan} userData={userData} showNotification={showNotification} />
        )}
      </div>

      {/* Modal Detail */}
      {modalItem && (
        <ItemModal item={modalItem} isBoutiqueTab={modalIsBoutique} isSaved={isSavedModal} isBoutique={isBoutiqueModal} onClose={() => setModalItem(null)} onToggleSave={handleToggleSave} onToggleBoutique={handleToggleBoutique} onSavePrice={handleSavePrice} licenseKey={licenseKey} />
      )}
    </div>
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);