// ============================================================
// Polycall — opérations (codes conclusion + clients + fiches)
// ============================================================

function H(type, code, heure, civilite, nom, prenom, societe, ville, tel, motif, extra, canal) {
  return {
    id: fid(), type, status: "traitee", waiting: "—",
    channel: type === "entrant" ? "Appel entrant" : "Appel sortant",
    canal: canal || DEFAULT_CHANNEL, deletedAt: null,
    fields: { ...blankFields(), civilite: civilite || "M.", nom, prenom, societe, ville, tel, motif, clientNum: "" },
    conclusion: { code, devis: (extra && extra.devis) || "", rappelDate: (extra && extra.rappelDate) || "", rappelHeure: (extra && extra.rappelHeure) || "", sav: (extra && extra.sav) || "" },
    qualifiedAt: heure,
  };
}
function Q(type, waiting, channel, fields, canal) {
  return {
    id: fid(), type, status: "attente", waiting: waiting || "—",
    channel: channel || (type === "entrant" ? "Appel entrant" : "Appel sortant"),
    canal: canal || DEFAULT_CHANNEL, deletedAt: null,
    fields: { ...blankFields(), ...fields }, conclusion: null, qualifiedAt: null,
  };
}
// fiche déjà en corbeille (démo) : supprimée il y a `daysAgo` jours
function T(daysAgo, base) {
  return { ...base, deletedAt: new Date(Date.now() - daysAgo * 86400000).toISOString() };
}

// ====================== COCCINELLE — Location auto (LLD/LOA) ======================
const COCCINELLE_CODES = [
  { code: "LLD",           label: "LLD",                         sub: "Location Longue Durée",        tone: "good",    color: "#1f8a5b", group: "Contrat conclu", flux: ["entrant", "sortant"] },
  { code: "LOA",           label: "LOA",                         sub: "Location avec Option d’Achat", tone: "good",    color: "#36a572", group: "Contrat conclu", flux: ["entrant", "sortant"] },
  { code: "DEVIS",         label: "Devis envoyé",                sub: "Proposition transmise",         tone: "warn",    color: "#b9760f", group: "À suivre",       flux: ["entrant", "sortant"], needs: "devis" },
  { code: "RAPPEL",        label: "Rappel planifié",             sub: "Recontacter le client",         tone: "warn",    color: "#d7a13d", group: "À suivre",       flux: ["entrant", "sortant"], needs: "rappel" },
  { code: "RENSEIGNEMENT", label: "Demande de renseignement",    sub: "Information donnée",            tone: "info",    color: "#2a6fdb", group: "Information",    flux: ["entrant"] },
  { code: "SAV",           label: "Demande SAV",                 sub: "Service après-vente",           tone: "info",    color: "#5b8def", group: "Service",        flux: ["entrant", "sortant"], needs: "sav" },
  { code: "REFUS_PRIX",    label: "Refus prix",                  sub: "Tarif jugé trop élevé",         tone: "bad",     color: "#c0392b", group: "Refus / Échec",  flux: ["entrant", "sortant"] },
  { code: "REFUS_DATE",    label: "Refus — Date non disponible", sub: "Délai / dispo incompatible",    tone: "bad",     color: "#dd7368", group: "Refus / Échec",  flux: ["entrant", "sortant"] },
  { code: "COMM_COUPEE",   label: "Communication coupée",        sub: "Inaudible / interrompue",       tone: "neutral", color: "#9a948f", group: "Non aboutie",    flux: ["entrant"] },
];

const COCCINELLE_CLIENTS = [
  { num: "CL-10428", civilite: "M.",      nom: "Renaud",    prenom: "Thibault", societe: "",                   adresse: "14 rue des Lilas",     cp: "69003", ville: "Lyon",            tel: "06 12 44 80 21", email: "t.renaud@orange.fr",          matricule: "" },
  { num: "CL-10519", civilite: "Mme",     nom: "Boukhalfa", prenom: "Inès",     societe: "",                   adresse: "8 avenue Jean Jaurès", cp: "31000", ville: "Toulouse",        tel: "07 81 09 55 13", email: "ines.bk@gmail.com",           matricule: "" },
  { num: "CL-10733", civilite: "Société", nom: "",          prenom: "",         societe: "Transports Mercier", adresse: "ZA des Portes, lot 4", cp: "44800", ville: "Saint-Herblain",  tel: "02 40 76 11 90", email: "contact@mercier-tp.fr",       matricule: "FR42 814207561" },
  { num: "CL-11002", civilite: "Société", nom: "",          prenom: "",         societe: "Pharma Distrib Sud", adresse: "5 allée des Cèdres",   cp: "13090", ville: "Aix-en-Provence", tel: "04 42 18 33 70", email: "achats@pharmadistribsud.com", matricule: "FR19 661820934" },
];

const COCCINELLE_FICHES = [
  Q("entrant", "00:42", "Appel entrant", { civilite: "M.", nom: "Renaud", prenom: "Thibault", clientNum: "CL-10428", adresse: "14 rue des Lilas", cp: "69003", ville: "Lyon", tel: "06 12 44 80 21", email: "t.renaud@orange.fr", motif: "Demande de devis pour une LLD sur un utilitaire (Renault Kangoo)." }, "appel"),
  Q("entrant", "01:15", "Demande WhatsApp", { civilite: "Société", societe: "Transports Mercier", clientNum: "CL-10733", adresse: "ZA des Portes, lot 4", cp: "44800", ville: "Saint-Herblain", tel: "02 40 76 11 90", email: "contact@mercier-tp.fr", matricule: "FR42 814207561", motif: "Renouvellement de flotte — 3 véhicules en fin de contrat." }, "whatsapp"),
  Q("sortant", "—", "Campagne — Relance devis", { civilite: "Mme", nom: "Boukhalfa", prenom: "Inès", clientNum: "CL-10519", adresse: "8 avenue Jean Jaurès", cp: "31000", ville: "Toulouse", tel: "07 81 09 55 13", email: "ines.bk@gmail.com", motif: "Relance suite au devis LOA Peugeot 208 envoyé le 02/06." }, "appel"),
  Q("entrant", "00:08", "Message Instagram", { prenom: "", tel: "06 73 50 18 24", motif: "Premier contact via Instagram — renseignements sur les offres LOA particuliers." }, "instagram"),
  Q("entrant", "—", "Formulaire site web", { civilite: "M.", nom: "Pires", prenom: "Antonio", tel: "06 41 22 70 09", email: "a.pires@gmail.com", ville: "Vienne", motif: "Demande de rappel déposée sur le site pour une LLD Dacia Duster." }, "web"),
  Q("sortant", "—", "Campagne — Prospection B2B", { civilite: "Société", societe: "Pharma Distrib Sud", clientNum: "CL-11002", adresse: "5 allée des Cèdres", cp: "13090", ville: "Aix-en-Provence", tel: "04 42 18 33 70", email: "achats@pharmadistribsud.com", matricule: "FR19 661820934", motif: "Présentation offre flotte longue durée." }, "appel"),
  // historique
  H("entrant", "SAV",           "09:41", "M.",      "Albertini", "Marc",    "",                 "Nice",          "06 55 31 07 42", "Question entretien sur LOA en cours.", { sav: "Transféré au SAV, ticket #4471." }, "appel"),
  H("entrant", "LLD",           "08:12", "M.",      "Caron",     "Julien",  "",                 "Lyon",          "06 62 18 04 77", "Souscription LLD Peugeot 3008 — particulier.", null, "appel"),
  H("sortant", "DEVIS",         "08:31", "Société", "",          "",        "Garage du Centre", "Villeurbanne",  "04 78 55 21 09", "Devis flotte 2 utilitaires envoyé.", { devis: "DV-2024-0612" }, "email"),
  H("entrant", "RENSEIGNEMENT", "08:47", "Mme",     "Lefèvre",   "Claire",  "",                 "Grenoble",      "07 70 33 12 88", "Renseignements offres LOA hybrides.", null, "whatsapp"),
  H("sortant", "REFUS_PRIX",    "09:03", "M.",      "Nguyen",    "Pierre",  "",                 "Saint-Étienne", "06 11 90 45 23", "Tarif mensualité jugé trop élevé.", null, "appel"),
  H("entrant", "LOA",           "09:19", "M.",      "Bonnet",    "Hugo",    "",                 "Lyon",          "06 84 27 60 51", "LOA Citroën C3 signée sur 37 mois.", null, "instagram"),
  H("sortant", "RAPPEL",        "09:34", "Société", "",          "",        "Atlas Logistique", "Vénissieux",    "04 72 50 88 14", "Décideur absent, rappel planifié.", { rappelDate: "2026-06-12", rappelHeure: "10:30" }, "appel"),
  H("entrant", "DEVIS",         "09:48", "Mme",     "Roussel",   "Amandine","",                 "Bourg-en-Bresse","07 58 21 47 90","Devis LLD Renault Clio transmis.", { devis: "DV-2024-0613" }, "facebook"),
  H("sortant", "LLD",           "10:17", "Société", "",          "",        "BTP Méditerranée", "Aix",           "04 42 60 33 71", "Renouvellement flotte 4 véhicules.", null, "appel"),
  H("entrant", "REFUS_DATE",    "10:29", "M.",      "Girard",    "Antoine", "",                 "Annecy",        "06 49 02 88 36", "Délai de livraison incompatible.", null, "email"),
  H("sortant", "DEVIS",         "10:41", "Mme",     "Perrin",    "Sophie",  "",                 "Chambéry",      "07 81 55 09 42", "Devis LOA envoyé après prospection.", { devis: "DV-2024-0614" }, "appel"),
  H("entrant", "LOA",           "10:55", "M.",      "Moreau",    "David",   "",                 "Lyon",          "06 70 14 22 88", "LOA Peugeot 208 signée.", null, "whatsapp"),
  H("entrant", "COMM_COUPEE",   "11:06", "",        "",          "",        "",                 "",              "06 00 00 00 00", "Appel interrompu, ligne coupée.", null, "appel"),
  H("sortant", "RAPPEL",        "11:18", "M.",      "Lambert",   "Thomas",  "",                 "Valence",       "06 25 71 39 04", "Souhaite être rappelé jeudi.", { rappelDate: "2026-06-12", rappelHeure: "14:00" }, "appel"),
  H("entrant", "LLD",           "11:29", "Société", "",          "",        "Clinique du Parc", "Lyon",          "04 78 11 90 50", "LLD 2 véhicules de fonction.", null, "web"),
  H("sortant", "REFUS_PRIX",    "11:40", "Mme",     "Garnier",   "Élodie",  "",                 "Mâcon",         "07 62 48 17 33", "Concurrent moins cher.", null, "appel"),
  H("entrant", "DEVIS",         "11:52", "M.",      "Faure",     "Nicolas", "",                 "Lyon",          "06 90 33 71 28", "Devis LLD utilitaire transmis.", { devis: "DV-2024-0615" }, "instagram"),
  // déjà dans la corbeille (démo) — suppression douce, purge à 10 jours
  T(2, H("entrant", "RENSEIGNEMENT", "13:14", "M.", "Petit", "Lucas", "", "Lyon", "06 88 21 09 44", "Doublon — fiche créée deux fois par erreur.", null, "whatsapp")),
  T(8, Q("entrant", "—", "Message Instagram", { tel: "06 00 11 22 33", motif: "Message de spam reçu via Instagram." }, "instagram")),
];

// ====================== HÉLIOS — Énergie solaire ======================
const HELIOS_CODES = [
  { code: "RDV_FIXE",      label: "RDV commercial fixé",      sub: "Visite technicien planifiée", tone: "good",    color: "#1f8a5b", group: "Rendez-vous", flux: ["entrant", "sortant"], needs: "rappel" },
  { code: "ETUDE",         label: "Étude énergétique envoyée",sub: "Simulation transmise",        tone: "warn",    color: "#b9760f", group: "À suivre",    flux: ["entrant", "sortant"], needs: "devis" },
  { code: "RAPPEL",        label: "Rappel planifié",          sub: "Recontacter le prospect",     tone: "warn",    color: "#d7a13d", group: "À suivre",    flux: ["entrant", "sortant"], needs: "rappel" },
  { code: "RENSEIGNEMENT", label: "Demande de renseignement", sub: "Information donnée",           tone: "info",    color: "#2a6fdb", group: "Information", flux: ["entrant"] },
  { code: "NON_ELIGIBLE",  label: "Logement non éligible",    sub: "Toiture / statut incompatible",tone: "bad",     color: "#c0392b", group: "Inéligible",  flux: ["entrant", "sortant"] },
  { code: "DEJA_EQUIPE",   label: "Déjà équipé",              sub: "Installation existante",      tone: "neutral", color: "#9a948f", group: "Inéligible",  flux: ["entrant", "sortant"] },
  { code: "REFUS",         label: "Pas intéressé",            sub: "Refus du prospect",           tone: "bad",     color: "#dd7368", group: "Refus",       flux: ["entrant", "sortant"] },
  { code: "NRP",           label: "Ne répond pas",            sub: "Aucune réponse",              tone: "neutral", color: "#b6b0a9", group: "Non abouti",  flux: ["sortant"] },
];
const HELIOS_CLIENTS = [
  { num: "HE-2087", civilite: "M.",  nom: "Dubois",  prenom: "Gérard",  societe: "", adresse: "12 chemin des Vignes", cp: "34000", ville: "Montpellier", tel: "06 22 70 41 18", email: "g.dubois@sfr.fr",       matricule: "" },
  { num: "HE-2104", civilite: "Mme", nom: "Lopez",   prenom: "Carmen",  societe: "", adresse: "3 impasse du Soleil",  cp: "13100", ville: "Aix",         tel: "07 60 14 88 02", email: "carmen.lopez@gmail.com", matricule: "" },
  { num: "HE-2150", civilite: "M.",  nom: "Berger",  prenom: "Olivier", societe: "", adresse: "27 route de la Mer",   cp: "83000", ville: "Toulon",      tel: "06 84 50 33 71", email: "o.berger@free.fr",      matricule: "" },
];
const HELIOS_FICHES = [
  Q("entrant", "00:21", "Appel entrant", { civilite: "M.", nom: "Dubois", prenom: "Gérard", clientNum: "HE-2087", adresse: "12 chemin des Vignes", cp: "34000", ville: "Montpellier", tel: "06 22 70 41 18", motif: "Demande d'étude pour panneaux solaires (maison individuelle, 110 m²)." }),
  Q("sortant", "—", "Campagne — Prospection Sud", { civilite: "Mme", nom: "Lopez", prenom: "Carmen", clientNum: "HE-2104", adresse: "3 impasse du Soleil", cp: "13100", ville: "Aix", tel: "07 60 14 88 02", motif: "Présentation de l'offre autoconsommation + batterie." }),
  Q("entrant", "00:05", "Appel entrant", { tel: "06 90 22 14 70", motif: "Renseignements sur les aides de l'État et le crédit d'impôt." }),
  Q("sortant", "—", "Campagne — Relance étude", { civilite: "M.", nom: "Berger", prenom: "Olivier", clientNum: "HE-2150", adresse: "27 route de la Mer", cp: "83000", ville: "Toulon", tel: "06 84 50 33 71", motif: "Relance suite à l'étude énergétique du 04/06." }),
  H("entrant", "RDV_FIXE",      "08:25", "M.",  "Marchand", "Yves",    "", "Nîmes",       "06 12 88 04 55", "RDV technicien fixé pour visite de toiture.", { rappelDate: "2026-06-13", rappelHeure: "09:00" }),
  H("sortant", "ETUDE",         "08:44", "Mme", "Rey",      "Sandrine","", "Béziers",     "07 70 41 23 09", "Étude énergétique envoyée par mail.", { devis: "ET-7782" }),
  H("entrant", "RENSEIGNEMENT", "09:02", "M.",  "Henry",    "Paul",    "", "Perpignan",   "06 33 70 12 84", "Questions sur le raccordement Enedis."),
  H("sortant", "REFUS",         "09:21", "Mme", "Colin",    "Fabienne","", "Narbonne",    "06 58 90 17 42", "Pas intéressée, déménagement prévu."),
  H("sortant", "RDV_FIXE",      "09:48", "M.",  "Schmitt",  "Bernard", "", "Avignon",     "07 81 22 50 33", "RDV commercial à domicile fixé.", { rappelDate: "2026-06-12", rappelHeure: "17:30" }),
  H("entrant", "NON_ELIGIBLE",  "10:09", "Mme", "Antoine",  "Julie",   "", "Sète",        "06 49 71 08 26", "Toiture exposée nord, non éligible."),
  H("sortant", "NRP",           "10:24", "M.",  "Faure",    "Loïc",    "", "Carcassonne", "06 25 33 71 90", "Aucune réponse, 2e tentative."),
  H("sortant", "ETUDE",         "10:47", "M.",  "Roche",    "Daniel",  "", "Alès",        "07 60 18 44 21", "Simulation économies envoyée.", { devis: "ET-7790" }),
  H("entrant", "DEJA_EQUIPE",   "11:03", "Mme", "Petit",    "Nadège",  "", "Montpellier", "06 70 50 13 88", "Déjà équipée depuis 2021."),
  H("sortant", "RDV_FIXE",      "11:22", "M.",  "Girard",   "Franck",  "", "Lunel",       "06 84 21 70 55", "RDV technicien planifié.", { rappelDate: "2026-06-14", rappelHeure: "11:00" }),
  H("sortant", "REFUS",         "11:38", "Mme", "Brun",     "Aline",   "", "Frontignan",  "07 62 09 33 41", "Budget non disponible cette année."),
  H("entrant", "RAPPEL",        "11:55", "M.",  "Lemoine",  "Serge",   "", "Agde",        "06 90 14 22 70", "Demande à être rappelé avec son épouse.", { rappelDate: "2026-06-12", rappelHeure: "18:30" }),
];

// ====================== LYNA TÉLÉCOM — Box & Mobile ======================
const LYNA_CODES = [
  { code: "SOUSCRIPTION",  label: "Souscription Box/Mobile",  sub: "Nouveau contrat signé",       tone: "good",    color: "#5b54d6", group: "Vente",        flux: ["entrant", "sortant"] },
  { code: "MIGRATION",     label: "Montée en gamme",          sub: "Upsell offre supérieure",     tone: "good",    color: "#7a74e0", group: "Vente",        flux: ["entrant", "sortant"] },
  { code: "OFFRE",         label: "Offre envoyée",            sub: "Proposition transmise",       tone: "warn",    color: "#b9760f", group: "À suivre",     flux: ["entrant", "sortant"], needs: "devis" },
  { code: "RAPPEL",        label: "Rappel planifié",          sub: "Recontacter le client",       tone: "warn",    color: "#d7a13d", group: "À suivre",     flux: ["entrant", "sortant"], needs: "rappel" },
  { code: "SAV",           label: "Assistance technique",     sub: "Incident / dépannage",        tone: "info",    color: "#2a6fdb", group: "Service",      flux: ["entrant", "sortant"], needs: "sav" },
  { code: "RENSEIGNEMENT", label: "Demande de renseignement", sub: "Information donnée",           tone: "info",    color: "#5b8def", group: "Information",  flux: ["entrant"] },
  { code: "RETENTION",     label: "Rétention réussie",        sub: "Client conservé",             tone: "good",    color: "#1f8a5b", group: "Fidélisation", flux: ["entrant", "sortant"] },
  { code: "RESILIATION",   label: "Résiliation enregistrée",  sub: "Départ client",               tone: "bad",     color: "#c0392b", group: "Fidélisation", flux: ["entrant", "sortant"] },
  { code: "REFUS",         label: "Refus / Pas intéressé",    sub: "Refus du client",             tone: "bad",     color: "#dd7368", group: "Refus",        flux: ["entrant", "sortant"] },
  { code: "NRP",           label: "Ne répond pas",            sub: "Aucune réponse",              tone: "neutral", color: "#b6b0a9", group: "Non abouti",   flux: ["sortant"] },
];
const LYNA_CLIENTS = [
  { num: "LY-5510", civilite: "Mme", nom: "Robin",   prenom: "Émilie",  societe: "", adresse: "9 rue Pasteur",       cp: "75011", ville: "Paris",      tel: "06 71 22 80 14", email: "emilie.robin@gmail.com", matricule: "" },
  { num: "LY-5562", civilite: "M.",  nom: "Da Silva",prenom: "Tiago",   societe: "", adresse: "21 avenue de Verdun", cp: "92100", ville: "Boulogne",   tel: "07 60 33 41 09", email: "t.dasilva@orange.fr",    matricule: "" },
  { num: "LY-5603", civilite: "M.",  nom: "Klein",   prenom: "Antoine", societe: "", adresse: "4 place du Marché",   cp: "67000", ville: "Strasbourg", tel: "06 84 70 12 55", email: "a.klein@free.fr",        matricule: "" },
];
const LYNA_FICHES = [
  Q("entrant", "00:33", "Appel entrant", { civilite: "Mme", nom: "Robin", prenom: "Émilie", clientNum: "LY-5510", adresse: "9 rue Pasteur", cp: "75011", ville: "Paris", tel: "06 71 22 80 14", motif: "Souhaite souscrire une offre Fibre + mobile 5G." }),
  Q("entrant", "00:12", "Appel entrant", { civilite: "M.", nom: "Da Silva", prenom: "Tiago", clientNum: "LY-5562", adresse: "21 avenue de Verdun", cp: "92100", ville: "Boulogne", tel: "07 60 33 41 09", motif: "Box en panne depuis hier soir, plus de connexion." }),
  Q("sortant", "—", "Campagne — Rétention", { civilite: "M.", nom: "Klein", prenom: "Antoine", clientNum: "LY-5603", adresse: "4 place du Marché", cp: "67000", ville: "Strasbourg", tel: "06 84 70 12 55", motif: "Client en préavis de résiliation — tentative de rétention." }),
  Q("sortant", "—", "Campagne — Montée en gamme", { tel: "06 22 90 17 44", motif: "Proposition passage Fibre 1 Gb/s." }),
  H("entrant", "SOUSCRIPTION", "08:18", "Mme", "Faivre",  "Léa",     "", "Lille",     "06 12 70 33 80", "Souscription Fibre 500 Mb + option TV."),
  H("sortant", "MIGRATION",    "08:39", "M.",  "Andre",   "Vincent", "", "Nantes",    "07 70 14 22 09", "Montée en gamme vers offre Premium."),
  H("entrant", "SAV",          "08:58", "M.",  "Lucas",   "Hugo",    "", "Bordeaux",  "06 33 41 80 17", "Débit instable, diagnostic ligne.", { sav: "Test ligne planifié, ticket #8820." }),
  H("sortant", "OFFRE",        "09:17", "Mme", "Noel",    "Patricia","", "Reims",     "06 58 22 70 41", "Offre Fibre envoyée par SMS.", { devis: "OF-3391" }),
  H("entrant", "RENSEIGNEMENT","09:36", "M.",  "Roux",    "Damien",  "", "Dijon",     "07 81 50 14 33", "Questions sur la couverture 5G de sa zone."),
  H("sortant", "RETENTION",    "09:58", "Mme", "Masson",  "Chloé",   "", "Rennes",    "06 49 33 71 20", "Client retenu avec remise fidélité 6 mois."),
  H("entrant", "RESILIATION",  "10:19", "M.",  "Garcia",  "Manuel",  "", "Toulouse",  "06 70 12 88 55", "Résiliation pour déménagement à l'étranger."),
  H("sortant", "SOUSCRIPTION", "10:41", "Mme", "Leroy",   "Camille", "", "Le Havre",  "07 60 41 23 90", "Souscription mobile 2 lignes."),
  H("sortant", "NRP",          "10:55", "M.",  "Morel",   "Kevin",   "", "Amiens",    "06 25 70 33 14", "Aucune réponse, rappel auto programmé."),
  H("entrant", "MIGRATION",    "11:14", "Mme", "Blanc",   "Sarah",   "", "Grenoble",  "06 84 22 50 71", "Passage Fibre 1 Gb/s + décodeur 4K."),
  H("sortant", "OFFRE",        "11:33", "M.",  "Roussel", "Bruno",   "", "Metz",      "07 70 90 14 22", "Offre convergence Box+Mobile envoyée.", { devis: "OF-3398" }),
  H("entrant", "REFUS",        "11:49", "M.",  "Perez",   "Jordan",  "", "Nancy",     "06 33 12 70 88", "Pas intéressé, engagé chez un concurrent."),
  H("sortant", "RAPPEL",       "12:03", "Mme", "Girard",  "Manon",   "", "Mulhouse",  "06 58 41 22 09", "Rappel souhaité en soirée.", { rappelDate: "2026-06-12", rappelHeure: "19:00" }),
];

// ====================== Registre des opérations ======================
const OPERATIONS = [
  { id: "coccinelle", name: "Coccinelle", sector: "Location automobile — LLD / LOA", tagline: "Émission & réception • leasing auto",
    accent: ["#d12b2b", "#a81f1f", "#fbecec", "#f6dcdc"], mark: "Co",
    clients: COCCINELLE_CLIENTS, codes: COCCINELLE_CODES, fiches: COCCINELLE_FICHES },
  { id: "helios", name: "Hélios", sector: "Énergie solaire — autoconsommation", tagline: "Prospection • études énergétiques",
    accent: ["#c8810f", "#9c6406", "#fbf0dc", "#f4e2bf"], mark: "Hé",
    clients: HELIOS_CLIENTS, codes: HELIOS_CODES, fiches: HELIOS_FICHES },
  { id: "lyna", name: "Lyna Télécom", sector: "Box & Mobile — fibre / 5G", tagline: "Vente • SAV • fidélisation",
    accent: ["#5b54d6", "#403aa8", "#ecebfa", "#dcdaf4"], mark: "Ly",
    clients: LYNA_CLIENTS, codes: LYNA_CODES, fiches: LYNA_FICHES },
];

function cloneOperations() { return JSON.parse(JSON.stringify(OPERATIONS)); }

Object.assign(window, { OPERATIONS, cloneOperations });
