{"id":86,"date":"2026-06-16T20:29:54","date_gmt":"2026-06-16T20:29:54","guid":{"rendered":"https:\/\/www.berlio.fr\/?page_id=86"},"modified":"2026-06-17T11:52:08","modified_gmt":"2026-06-17T11:52:08","slug":"technigaz-pro","status":"publish","type":"page","link":"https:\/\/www.berlio.fr\/index.php\/technigaz-pro\/","title":{"rendered":"TechniGaz Pro"},"content":{"rendered":"\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><\/summary><\/details>\n\n\n\n<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>TechniGaz Pro &#8211; Menu<\/title>\n    <!-- Chargement de Tailwind CSS via CDN -->\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <!-- Chargement de FontAwesome pour les ic\u00f4nes -->\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\n    \n    <style>\n        \/* Styles pour l'\u00e9tat actif du menu (g\u00e9r\u00e9 par JS) *\/\n        .active-nav {\n            background-color: #1e40af; \/* bg-blue-800 *\/\n            border-left: 4px solid #facc15; \/* border-yellow-400 *\/\n        }\n        .active-nav i {\n            color: #facc15; \/* text-yellow-400 *\/\n        }\n    <\/style>\n<\/head>\n<body class=\"bg-gray-100 h-screen overflow-hidden font-sans\">\n\n    <!-- ============================================================\n         CONTENEUR PARENT (FLEXBOX)\n         C'est lui qui r\u00e8gle le probl\u00e8me d'alignement.\n         ============================================================ -->\n    <div class=\"flex h-full w-full\">\n\n        <!-- ============================================================\n             1. BARRE LAT\u00c9RALE DE NAVIGATION (Modifi\u00e9e pour le mobile)\n             - Par d\u00e9faut (mobile) : cach\u00e9e \u00e0 gauche (-translate-x-full)\n             - Sur ordinateur (md:) : visible et fixe (md:translate-x-0 md:relative)\n             ============================================================ -->\n        <nav id=\"sidebar\" class=\"w-64 bg-blue-900 text-white flex flex-col shadow-xl z-40 flex-shrink-0 \n                                transition-transform duration-300 ease-in-out \n                                fixed inset-y-0 left-0 -translate-x-full \n                                md:relative md:translate-x-0 md:transform-none\">\n            \n            <!-- En-t\u00eate du menu (Logo + Titre + Bouton Fermer Mobile) -->\n            <div class=\"p-4 flex items-center justify-between border-b border-blue-800 h-16 flex-shrink-0\">\n                <div class=\"flex items-center\">\n                    <i class=\"fa-solid fa-fire-flame-simple text-yellow-400 text-2xl mr-3\"><\/i>\n                    <span class=\"font-bold text-xl\">TechniGaz Pro<\/span>\n                <\/div>\n                <!-- Bouton pour FERMER le menu (Visible uniquement sur mobile) -->\n                <button onclick=\"toggleSidebar()\" class=\"md:hidden text-white hover:text-yellow-400 text-xl p-2 rounded-md focus:outline-none\">\n                    <i class=\"fa-solid fa-xmark\"><\/i>\n                <\/button>\n            <\/div>\n            \n            <!-- Zone des boutons (Scrollable si trop longue) -->\n            <div class=\"flex-1 overflow-y-auto py-4 space-y-1\">\n                <!-- Bouton Accueil (Actif par d\u00e9faut) -->\n                <button onclick=\"router('dashboard')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group active-nav\" data-target=\"dashboard\">\n                    <i class=\"fa-solid fa-house w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Accueil &amp; R\u00e9glementation<\/span>\n                <\/button>\n                \n                <!-- Autres boutons -->\n                <button onclick=\"router('gases')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"gases\">\n                    <i class=\"fa-solid fa-flask w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Caract\u00e9ristiques Gaz<\/span>\n                <\/button>\n                \n                <button onclick=\"router('piping')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"piping\">\n                    <i class=\"fa-solid fa-screwdriver-wrench w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Canalisations<\/span>\n                <\/button>\n                \n                <button onclick=\"router('valves')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"valves\">\n                    <i class=\"fa-solid fa-stop-circle w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Organes Coupure<\/span>\n                <\/button>\n                \n                <button onclick=\"router('connection')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"connection\">\n                    <i class=\"fa-solid fa-plug w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Raccordement<\/span>\n                <\/button>\n                \n                <button onclick=\"router('volume')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"volume\">\n                    <i class=\"fa-solid fa-cube w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Volume &amp; Ouvrant<\/span>\n                <\/button>\n                \n                <button onclick=\"router('ventilation')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"ventilation\">\n                    <i class=\"fa-solid fa-wind w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Ventilation &amp; Air<\/span>\n                <\/button>\n                \n                <button onclick=\"router('flues')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"flues\">\n                    <i class=\"fa-solid fa-arrow-trend-up w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Conduits (Type B)<\/span>\n                <\/button>\n                \n                <button onclick=\"router('vmcgaz')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"vmcgaz\">\n                    <i class=\"fa-solid fa-fan w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">VMC Gaz<\/span>\n                <\/button>\n                \n                <button onclick=\"router('evacuation')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"evacuation\">\n                    <i class=\"fa-solid fa-chimney w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">\u00c9vacuation (Type C)<\/span>\n                <\/button>\n                \n                <button onclick=\"router('3ce')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"3ce\">\n                    <i class=\"fa-solid fa-building-circle-arrow-right w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Conduit 3CE\/3CEp<\/span>\n                <\/button>\n                \n                <button onclick=\"router('cenr')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"cenr\">\n                    <i class=\"fa-solid fa-faucet-drip w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Sp\u00e9cificit\u00e9s CENR<\/span>\n                <\/button>\n                \n                <button onclick=\"router('tests')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"tests\">\n                    <i class=\"fa-solid fa-gauge-simple w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Essais &amp; \u00c9tanch\u00e9it\u00e9<\/span>\n                <\/button>\n                \n                <button onclick=\"router('certificates')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"certificates\">\n                    <i class=\"fa-solid fa-file-signature w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Certificats<\/span>\n                <\/button>\n                \n                <button onclick=\"router('checklist')\" class=\"nav-btn w-full p-3 px-6 text-left hover:bg-blue-800 transition flex items-center group\" data-target=\"checklist\">\n                    <i class=\"fa-solid fa-list-check w-6 text-lg group-hover:text-yellow-400\"><\/i>\n                    <span class=\"ml-3\">Auto-Contr\u00f4le<\/span>\n                <\/button>\n            <\/div>\n\n            <!-- Pied de page du menu -->\n            <div class=\"p-4 border-t border-blue-800 text-xs text-blue-300 text-center flex-shrink-0\">\n                R\u00e9f: Arr\u00eat\u00e9 23\/02\/2018\n            <\/div>\n        <\/nav>\n\n        <!-- ============================================================\n             OVERLAY (Voile noir)\n             Visible uniquement sur mobile quand le menu est OUVERT.\n             Cliquer dessus ferme le menu.\n             ============================================================ -->\n        <div id=\"sidebar-overlay\" onclick=\"toggleSidebar()\" class=\"fixed inset-0 bg-black\/50 z-30 hidden md:hidden transition-opacity duration-300 opacity-0\"><\/div>\n\n\n        <!-- ============================================================\n             2. ZONE DE CONTENU PRINCIPAL (\u00c0 droite du menu)\n             ============================================================ -->\n        <div class=\"flex-1 flex flex-col h-full min-w-0\">\n            \n            <!-- ============================================================\n                 BANDEAU SUP\u00c9RIEUR (Header)\n                 Visible uniquement sur Mobile pour ouvrir le menu.\n                 ============================================================ -->\n            <header class=\"bg-white shadow-sm border-b border-gray-200 h-16 flex items-center justify-between px-4 md:px-6 flex-shrink-0 z-10\">\n                <div class=\"flex items-center\">\n                    <!-- Bouton \"Hamburger\" pour OUVRIR le menu (Visible uniquement sur mobile) -->\n                    <button onclick=\"toggleSidebar()\" class=\"md:hidden text-blue-900 hover:bg-gray-100 p-2 rounded-md focus:outline-none mr-3\">\n                        <i class=\"fa-solid fa-bars text-2xl\"><\/i>\n                    <\/button>\n                    <!-- Titre dans le header mobile (optionnel, d\u00e9j\u00e0 dans le menu) -->\n                    <h1 class=\"text-xl font-semibold text-gray-800 md:hidden\">TechniGaz<\/h1>\n                <\/div>\n                \n                <!-- Zone droite du header (Profil, notifications, etc.) -->\n                <div class=\"flex items-center space-x-3\">\n                    <span class=\"text-sm text-gray-600 hidden sm:inline\">BERLIO Formation Patrice LAURENT<\/span>\n                    <div class=\"w-10 h-10 rounded-full bg-blue-100 border-2 border-blue-200 flex items-center justify-center text-blue-900 font-bold\">\n                        PL\n                    <\/div>\n                <\/div>\n            <\/header>\n\n            <!-- ============================================================\n                 CONTENU DE LA PAGE (Scrollable verticalement)\n                 C'est ici que tu injectes tes vues.\n                 ============================================================ -->\n            <main id=\"main-content\" class=\"flex-1 overflow-y-auto p-4 md:p-8 bg-gray-50\">\n                \n                <!-- Exemple de contenu pour la page \"Accueil\" -->\n                <div id=\"page-dashboard\" class=\"page-view\">\n                    <div class=\"flex items-center justify-between mb-6\">\n                        <h2 class=\"text-2xl font-bold text-gray-900\">Accueil &amp; R\u00e9glementation<\/h2>\n                        <span class=\"text-sm px-3 py-1 bg-green-100 text-green-800 rounded-full font-medium\">Conforme 2024<\/span>\n                    <\/div>\n                    \n                    <div class=\"grid grid-cols-1 md:grid-cols-2 gap-6\">\n                        <div class=\"bg-white p-6 rounded-xl shadow-sm border border-gray-100\">\n                            <h3 class=\"font-semibold text-lg text-gray-800 mb-3\">Derni\u00e8re mise \u00e0 jour r\u00e9glementaire<\/h3>\n                            <p class=\"text-gray-600 text-sm\">Arr\u00eat\u00e9 du 23 f\u00e9vrier 2018 relatif aux r\u00e8gles techniques et de s\u00e9curit\u00e9 applicables aux installations de gaz combustible.<\/p>\n                        <\/div>\n                        <div class=\"bg-white p-6 rounded-xl shadow-sm border border-gray-100\">\n                            <h3 class=\"font-semibold text-lg text-gray-800 mb-3\">Statistiques de contr\u00f4le<\/h3>\n                            <p class=\"text-4xl font-bold text-blue-900\">12 \/ 15<\/p>\n                            <p class=\"text-gray-500 text-sm\">Points de contr\u00f4le valid\u00e9s<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Autres conteneurs de pages vides (pour le JS) -->\n                <div id=\"page-gases\" class=\"page-view hidden\">\n                    <h2 class=\"text-2xl font-bold text-gray-900\">Caract\u00e9ristiques des Gaz<\/h2>\n                    <p class=\"text-gray-600 mt-2\">Contenu de la page Caract\u00e9ristiques des Gaz&#8230;<\/p>\n                <\/div>\n                <!-- Ajoute les autres divs de page ici si besoin (page-piping, page-valves, etc.) -->\n\n            <\/main>\n        <\/div>\n\n    <\/div>\n\n    <!-- ============================================================\n         LOGIQUE JAVASCRIPT\n         ============================================================ -->\n    <script>\n        \/\/ --- 1. GESTION DU MENU MOBILE (Hamburger) ---\n        const sidebar = document.getElementById('sidebar');\n        const overlay = document.getElementById('sidebar-overlay');\n\n        function toggleSidebar() {\n            const isOpened = !sidebar.classList.contains('-translate-x-full');\n            \n            if (isOpened) {\n                \/\/ Fermer\n                sidebar.classList.add('-translate-x-full');\n                overlay.classList.add('opacity-0');\n                setTimeout(() => overlay.classList.add('hidden'), 300); \/\/ Attend la fin de l'animation\n            } else {\n                \/\/ Ouvrir\n                sidebar.classList.remove('-translate-x-full');\n                overlay.classList.remove('hidden');\n                setTimeout(() => overlay.classList.remove('opacity-0'), 10); \/\/ Petit d\u00e9lai pour d\u00e9clencher la transition\n            }\n        }\n\n        \/\/ --- 2. GESTION DE LA NAVIGATION (Router simple) ---\n        \/\/ Cette fonction remplace le contenu de <main>\n        function router(route) {\n            console.log(\"Navigation vers : \" + route);\n            \n            \/\/ a) Fermer le menu sur mobile apr\u00e8s un clic\n            if (window.innerWidth < 768) { \/\/ 768px = md:\n                toggleSidebar();\n            }\n\n            \/\/ b) Mettre \u00e0 jour le style visuel des boutons dans le menu\n            const buttons = document.querySelectorAll('.nav-btn');\n            buttons.forEach(btn => btn.classList.remove('active-nav'));\n\n            const activeButton = document.querySelector(`[data-target=\"${route}\"]`);\n            if (activeButton) {\n                activeButton.classList.add('active-nav');\n            }\n\n            \/\/ c) CHANGER LE CONTENU (Simulation simple)\n            \/\/ Dans une vraie SPA, tu chargerais du HTML externe ici.\n            \/\/ Ici, on cache toutes les \"vues\" et on montre la bonne.\n            const pages = document.querySelectorAll('.page-view');\n            pages.forEach(page => page.classList.add('hidden'));\n\n            const targetPage = document.getElementById(`page-${route}`);\n            if (targetPage) {\n                targetPage.classList.remove('hidden');\n            } else {\n                \/\/ Si la page n'existe pas encore dans le HTML, on affiche un message dans <main>\n                const mainContent = document.getElementById('main-content');\n                \/\/ On garde juste le header de la page (h2)\n                mainContent.innerHTML = `<h2 class=\"text-2xl font-bold text-gray-900 mb-4\">Vue : ${route}<\/h2>\n                                         <div class=\"bg-yellow-50 border-l-4 border-yellow-400 p-4 text-yellow-700\">\n                                            Le contenu pour la page \"<strong>${route}<\/strong>\" n'est pas encore d\u00e9fini dans le code HTML.\n                                         <\/div>`;\n            }\n        }\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<style data-wp-block-html=\"css\">\nCSS\n\/* Remplacez \".votre-conteneur-principal\" par la classe trouv\u00e9e \u00e0 l'\u00e9tape 1 *\/\n.votre-conteneur-principal {\n    margin-left: 280px !important; \/* Ajustez 280px selon la largeur r\u00e9elle de votre menu bleu *\/\n}\n<\/style>\n\n<main class=\"flex-1 overflow-y-auto relative\" id=\"main-content\">\n        <!-- Content injected via JS -->\n    <\/main>\n\n\n\n<script>\n        \/\/ Data & State\n        const appData = {\n            gases: {\n                natural: { name: \"Gaz Naturel\", types: [\"H (Haut PCI)\", \"B (Bas PCI)\"], density: \"0.6 (L\u00e9ger)\", pressure: \"20\/25 mbar\" },\n                gpl: { name: \"GPL\", types: [\"Propane\", \"Butane\"], density: \"1.5 - 2.0 (Lourd)\", pressure: \"37\/28 mbar\" }\n            },\n            materials: [\n                { id: \"cu\", name: \"Cuivre\", allowed: [\"Int\u00e9rieur\", \"Ext\u00e9rieur\", \"Vide Sanitaire (ventil\u00e9)\"], prohibited: [\"Embo\u00eeture artisanale\"], assembly: \"Brasage (Tendre\/Fort), Sertissage\" },\n                { id: \"steel\", name: \"Acier\", allowed: [\"Int\u00e9rieur\", \"Ext\u00e9rieur (si prot\u00e9g\u00e9)\"], prohibited: [\"Enterr\u00e9 sans rev\u00eatement\"], assembly: \"Soudage, Raccords \u00e0 visser\" },\n                { id: \"plt\", name: \"PLT\", allowed: [\"Int\u00e9rieur\", \"Ext\u00e9rieur\"], prohibited: [\"P > 500 mbar\", \"Enterr\u00e9 sans fourreau\"], assembly: \"Raccords m\u00e9caniques sp\u00e9cifiques\" },\n                { id: \"pe\", name: \"Poly\u00e9thyl\u00e8ne\", allowed: [\"Ext\u00e9rieur Enterr\u00e9 UNIQUEMENT\"], prohibited: [\"Int\u00e9rieur b\u00e2timent\", \"Vide sanitaire\"], assembly: \"\u00c9lectrosoudage\" },\n                { id: \"pb\", name: \"Plomb\", allowed: [\"R\u00e9parations existant < 50cm\", \"Gaz Naturel UNIQUEMENT\"], prohibited: [\"INSTALLATION NEUVE\", \"GPL (Interdit)\"], assembly: \"Soudure \u00e0 l'\u00e9tain (apr\u00e8s \u00e9tamage)\" }\n            ]\n        };\n\n        \/\/ Navigation Router\n        function router(view) {\n            \/\/ Update Active State\n            document.querySelectorAll('.nav-btn').forEach(btn => {\n                if(btn.dataset.target === view) {\n                    btn.classList.add('bg-blue-800', 'border-l-4', 'border-yellow-400');\n                } else {\n                    btn.classList.remove('bg-blue-800', 'border-l-4', 'border-yellow-400');\n                }\n            });\n\n            const content = document.getElementById('main-content');\n            content.innerHTML = ''; \/\/ Clear content\n\n            switch(view) {\n                case 'dashboard': renderDashboard(content); break;\n                case 'gases': renderGases(content); break;\n                case 'piping': renderPiping(content); break;\n                case 'valves': renderValves(content); break;\n                case 'connection': renderConnection(content); break;\n                case 'volume': renderVolume(content); break;\n                case 'ventilation': renderVentilation(content); break;\n                case 'flues': renderFlues(content); break;\n                case 'vmcgaz': renderVmcGaz(content); break;\n                case 'evacuation': renderEvacuation(content); break;\n                case '3ce': render3ce(content); break;\n                case 'cenr': renderCenr(content); break;\n                case 'tests': renderTests(content); break;\n                case 'certificates': renderCertificates(content); break;\n                case 'checklist': renderChecklist(content); break;\n                default: renderDashboard(content);\n            }\n        }\n\n        \/\/ --- VIEWS ---\n\n        function renderGases(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-5xl mx-auto pb-20\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Caract\u00e9ristiques des Gaz & Risques<\/h2>\n                    \n                    <div class=\"grid md:grid-cols-2 gap-6 mb-6\">\n                        <!-- Gaz Naturel -->\n                        <div class=\"bg-white p-6 rounded-xl shadow border-t-4 border-blue-500\">\n                            <h3 class=\"font-bold text-xl mb-4 text-blue-800\"><i class=\"fa-solid fa-cloud mr-2\"><\/i>Gaz Naturel (M\u00e9thane CH4)<\/h3>\n                            <ul class=\"space-y-3 text-sm text-gray-700\">\n                                <li><i class=\"fa-solid fa-weight-hanging text-blue-400 mr-2\"><\/i><strong>Densit\u00e9 :<\/strong> ~0.6 <span class=\"text-blue-600 font-bold bg-blue-50 px-2 py-0.5 rounded ml-1\">Plus l\u00e9ger que l'air<\/span><\/li>\n                                <li><i class=\"fa-solid fa-fire-flame-simple text-orange-400 mr-2\"><\/i><strong>Combustion :<\/strong> 1 m\u00b3 de gaz n\u00e9cessite <strong>10 m\u00b3 d'air<\/strong>.<\/li>\n                                <li><i class=\"fa-solid fa-h text-blue-800 mr-2\"><\/i><strong>Type H (Haut pouvoir calorifique) :<\/strong> Distribu\u00e9 partout en France. Pression de service: <strong class=\"text-blue-800\">20 mbar<\/strong>.<\/li>\n                                <li><i class=\"fa-solid fa-b text-blue-800 mr-2\"><\/i><strong>Type B (Bas pouvoir calorifique) :<\/strong> Distribu\u00e9 dans le Nord. Pression de service: <strong class=\"text-blue-800\">25 mbar<\/strong>.<\/li>\n                                <li><i class=\"fa-solid fa-wind text-gray-400 mr-2\"><\/i><strong>Odeur :<\/strong> Inodore \u00e0 l'\u00e9tat naturel, on y injecte du THT (T\u00e9trahydrothioph\u00e8ne) comme traceur.<\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- GPL -->\n                        <div class=\"bg-white p-6 rounded-xl shadow border-t-4 border-yellow-500\">\n                            <h3 class=\"font-bold text-xl mb-4 text-yellow-800\"><i class=\"fa-solid fa-bottle-droplet mr-2\"><\/i>GPL (Propane \/ Butane)<\/h3>\n                            <ul class=\"space-y-3 text-sm text-gray-700\">\n                                <li><i class=\"fa-solid fa-weight-hanging text-yellow-500 mr-2\"><\/i><strong>Densit\u00e9 :<\/strong> 1.5 (Propane) \u00e0 2.0 (Butane) <span class=\"text-yellow-700 font-bold bg-yellow-50 px-2 py-0.5 rounded ml-1\">Plus lourds que l'air<\/span>.<\/li>\n                                <li><i class=\"fa-solid fa-fire-flame-simple text-orange-400 mr-2\"><\/i><strong>Propane (C3H8) :<\/strong> Pression: <strong class=\"text-yellow-700\">37 mbar<\/strong>. Stockage > 3kg interdit \u00e0 l'int\u00e9rieur. 1 m\u00b3 = <strong>23 m\u00b3 d'air<\/strong>.<\/li>\n                                <li><i class=\"fa-solid fa-fire-flame-simple text-orange-400 mr-2\"><\/i><strong>Butane (C4H10) :<\/strong> Pression: <strong class=\"text-yellow-700\">28 mbar<\/strong>. Souvent utilis\u00e9 en bouteille int\u00e9rieure. 1 m\u00b3 = <strong>28 m\u00b3 d'air<\/strong>.<\/li>\n                                <li><i class=\"fa-solid fa-burst text-orange-400 mr-2\"><\/i><strong>Limites d'explosivit\u00e9 :<\/strong> LIE <strong>2%<\/strong> - LSE <strong>9%<\/strong>.<\/li>\n                                <li><i class=\"fa-solid fa-wind text-gray-400 mr-2\"><\/i><strong>Odeur :<\/strong> Mercaptan.<\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Pressions de Desserte -->\n                    <div class=\"bg-white p-6 rounded-xl shadow border-t-4 border-blue-300 mb-8\">\n                        <h3 class=\"font-bold text-lg text-blue-800 mb-4\"><i class=\"fa-solid fa-gauge-high mr-2\"><\/i>Pressions de Desserte et Limites<\/h3>\n                        <div class=\"grid md:grid-cols-2 gap-4 text-sm text-gray-700\">\n                            <div class=\"bg-gray-50 p-4 rounded border border-gray-200\">\n                                <h4 class=\"font-bold text-gray-800 mb-2 border-b pb-1\">Plages de Pression (R\u00e9seau)<\/h4>\n                                <ul class=\"space-y-2\">\n                                    <li><span class=\"inline-block w-12 font-bold text-blue-600\">BP<\/span> <strong>Basse Pression :<\/strong> jusqu'\u00e0 0,05 bar (50 mbar) inclus.<\/li>\n                                    <li><span class=\"inline-block w-12 font-bold text-blue-600\">MPA<\/span> <strong>Moyenne Pression A :<\/strong> de 0,05 bar \u00e0 0,4 bar inclus.<\/li>\n                                    <li><span class=\"inline-block w-12 font-bold text-blue-600\">MPB<\/span> <strong>Moyenne Pression B :<\/strong> de 0,4 bar \u00e0 4 bar inclus.<\/li>\n                                <\/ul>\n                            <\/div>\n                            <div class=\"bg-red-50 p-4 rounded border border-red-100\">\n                                <h4 class=\"font-bold text-red-800 mb-2 border-b border-red-200 pb-1\">R\u00e8gles de Distribution (B\u00e2timent)<\/h4>\n                                <ul class=\"space-y-3 mt-3\">\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-ban text-red-500 mt-1 mr-2\"><\/i>\n                                        <div><strong class=\"text-red-700\">4 bar MAXIMUM :<\/strong> Limite absolue de pression autoris\u00e9e \u00e0 l'int\u00e9rieur d'un b\u00e2timent d'habitation.<\/div>\n                                    <\/li>\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-building text-blue-500 mt-1 mr-2\"><\/i>\n                                        <div><strong class=\"text-blue-800\">50 mbar MAXIMUM :<\/strong> Limite de pression \u00e0 l'int\u00e9rieur d'un <strong>logement en immeuble collectif<\/strong> (impose une d\u00e9tente \u00e0 l'ext\u00e9rieur du logement si le r\u00e9seau est > 50 mbar).<\/div>\n                                    <\/li>\n                                <\/ul>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Risques -->\n                    <div class=\"bg-red-50 p-6 rounded-xl shadow border border-red-200\">\n                        <h3 class=\"font-bold text-lg text-red-800 mb-4\"><i class=\"fa-solid fa-triangle-exclamation mr-2\"><\/i>Les 4 Risques Majeurs du Gaz<\/h3>\n                        <div class=\"grid md:grid-cols-2 gap-6\">\n                            <div>\n                                <ul class=\"text-sm text-red-900 space-y-3\">\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-fire mt-1 mr-2 text-red-500\"><\/i>\n                                        <div><strong>Incendie :<\/strong> Combustion non ma\u00eetris\u00e9e (n\u00e9cessite combustible, comburant et point d'ignition).<\/div>\n                                    <\/li>\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-burst mt-1 mr-2 text-orange-500\"><\/i>\n                                        <div><strong>Explosion :<\/strong> Se produit uniquement si le m\u00e9lange gaz\/air se situe entre la LIE et la LSE.<\/div>\n                                    <\/li>\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-face-dizzy mt-1 mr-2 text-purple-500\"><\/i>\n                                        <div><strong>Asphyxie :<\/strong> Remplacement de l'oxyg\u00e8ne de l'air par le gaz dans un espace confin\u00e9.<\/div>\n                                    <\/li>\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-skull-crossbones mt-1 mr-2 text-gray-600\"><\/i>\n                                        <div><strong>Intoxication au CO :<\/strong> Le monoxyde de carbone est mortel, inodore et incolore. Il r\u00e9sulte d'une mauvaise combustion (manque d'air).<\/div>\n                                    <\/li>\n                                <\/ul>\n                            <\/div>\n                            \n                            <!-- Jauges d'explosivit\u00e9 -->\n                            <div class=\"space-y-4\">\n                                <!-- Jauge GN -->\n                                <div class=\"bg-white p-4 rounded-lg border border-red-100 shadow-sm\">\n                                    <h4 class=\"font-bold text-gray-800 mb-2 text-sm text-center\">Limites d'Explosivit\u00e9 Gaz Naturel<\/h4>\n                                    <div class=\"w-full bg-gray-100 rounded-full h-6 mb-2 relative overflow-hidden flex border border-gray-200\">\n                                        <!-- Trop pauvre -->\n                                        <div class=\"h-full bg-green-200 w-[5%] flex items-center justify-center overflow-hidden\">\n                                            <span class=\"text-[8px] font-bold text-green-800 hidden md:block\">Pauvre<\/span>\n                                        <\/div>\n                                        <!-- Zone explosive -->\n                                        <div class=\"h-full bg-red-500 w-[10%] flex items-center justify-center shadow-inner relative\">\n                                            <span class=\"text-xs font-bold text-white z-10\">BOUM<\/span>\n                                        <\/div>\n                                        <!-- Trop riche -->\n                                        <div class=\"h-full bg-yellow-200 w-[85%] flex items-center justify-center overflow-hidden\">\n                                            <span class=\"text-xs font-bold text-yellow-800\">M\u00e9lange trop riche (manque d'air)<\/span>\n                                        <\/div>\n                                    <\/div>\n                                    <div class=\"flex justify-between text-xs text-gray-600 font-bold px-1\">\n                                        <span>0%<\/span>\n                                        <span class=\"text-red-600\">LIE : 5%<\/span>\n                                        <span class=\"text-red-600 mr-auto ml-4\">LSE : 15%<\/span>\n                                        <span>100%<\/span>\n                                    <\/div>\n                                <\/div>\n\n                                <!-- Jauge GPL -->\n                                <div class=\"bg-white p-4 rounded-lg border border-red-100 shadow-sm\">\n                                    <h4 class=\"font-bold text-gray-800 mb-2 text-sm text-center\">Limites d'Explosivit\u00e9 GPL<\/h4>\n                                    <div class=\"w-full bg-gray-100 rounded-full h-6 mb-2 relative overflow-hidden flex border border-gray-200\">\n                                        <!-- Trop pauvre -->\n                                        <div class=\"h-full bg-green-200 w-[2%] flex items-center justify-center overflow-hidden\">\n                                        <\/div>\n                                        <!-- Zone explosive -->\n                                        <div class=\"h-full bg-red-500 w-[7%] flex items-center justify-center shadow-inner relative\">\n                                            <span class=\"text-[10px] font-bold text-white z-10\">BOUM<\/span>\n                                        <\/div>\n                                        <!-- Trop riche -->\n                                        <div class=\"h-full bg-yellow-200 w-[91%] flex items-center justify-center overflow-hidden\">\n                                            <span class=\"text-xs font-bold text-yellow-800\">M\u00e9lange trop riche<\/span>\n                                        <\/div>\n                                    <\/div>\n                                    <div class=\"flex justify-between text-xs text-gray-600 font-bold px-1\">\n                                        <span>0%<\/span>\n                                        <span class=\"text-red-600\">LIE : 2%<\/span>\n                                        <span class=\"text-red-600 mr-auto ml-2\">LSE : 9%<\/span>\n                                        <span>100%<\/span>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderDashboard(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-7xl mx-auto\">\n                    <header class=\"mb-8\">\n                        <h1 class=\"text-3xl font-bold text-blue-900\">Accueil & R\u00e9glementation<\/h1>\n                        <p class=\"text-gray-600 mt-2\">Vue d'ensemble des textes de r\u00e9f\u00e9rence et rappels essentiels.<\/p>\n                    <\/header>\n\n                    <div class=\"grid grid-cols-1 md:grid-cols-2 gap-6 mb-8\">\n                        <!-- R\u00e9glementation -->\n                        <div class=\"bg-white rounded-xl shadow-md p-6 border-t-4 border-blue-600 flex flex-col justify-between\">\n                            <div>\n                                <h3 class=\"font-bold text-lg text-blue-900 mb-4\"><i class=\"fa-solid fa-book-open mr-2\"><\/i>Textes de R\u00e9f\u00e9rence<\/h3>\n                                <div class=\"space-y-5\">\n                                    <div class=\"border-l-4 border-blue-400 pl-4\">\n                                        <h4 class=\"font-bold text-gray-800\">Arr\u00eat\u00e9 du 23 f\u00e9vrier 2018<\/h4>\n                                        <p class=\"text-sm text-gray-600 mt-1\">Le texte de r\u00e9f\u00e9rence. Il fixe des <strong>obligations de r\u00e9sultat<\/strong> plut\u00f4t que de moyens. Il remplace l'ancien arr\u00eat\u00e9 de 1977.<\/p>\n                                    <\/div>\n                                    <div class=\"border-l-4 border-green-500 pl-4\">\n                                        <h4 class=\"font-bold text-gray-800\">Guides CNPG (Annexe 1)<\/h4>\n                                        <p class=\"text-sm text-gray-600 mt-1\">Le respect de ces guides vaut pr\u00e9somption de conformit\u00e9 \u00e0 l'arr\u00eat\u00e9. Ils apportent les solutions techniques.<\/p>\n                                        <div class=\"flex space-x-2 mt-2\">\n                                            <span class=\"bg-gray-100 text-gray-600 px-2 py-1 rounded text-xs font-bold border border-gray-200\">IG<\/span>\n                                            <span class=\"bg-gray-100 text-gray-600 px-2 py-1 rounded text-xs font-bold border border-gray-200\">EVAPDC<\/span>\n                                            <span class=\"bg-gray-100 text-gray-600 px-2 py-1 rounded text-xs font-bold border border-gray-200\">SPE<\/span>\n                                        <\/div>\n                                    <\/div>\n                                    <div class=\"border-l-4 border-yellow-500 pl-4\">\n                                        <h4 class=\"font-bold text-gray-800\">Passeport Technique<\/h4>\n                                        <p class=\"text-sm text-gray-600 mt-1\">Obligatoire depuis 2020. Doit contenir l'historique de l'installation (certificats, notices, entretiens) et \u00eatre remis au propri\u00e9taire.<\/p>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"space-y-6\">\n                            <!-- Quick Actions -->\n                            <div class=\"bg-gradient-to-br from-blue-900 to-blue-700 rounded-xl shadow-md p-6 text-white flex flex-col justify-between\">\n                                <div>\n                                    <h3 class=\"font-bold text-lg mb-2\"><i class=\"fa-solid fa-bolt mr-2\"><\/i>Actions Rapides<\/h3>\n                                    <p class=\"text-blue-100 text-sm mb-6\">Outils de calcul et de d\u00e9cision pour le terrain.<\/p>\n                                <\/div>\n                                <div class=\"space-y-3\">\n                                    <button onclick=\"router('ventilation')\" class=\"w-full py-2 bg-white\/10 hover:bg-white\/20 rounded flex items-center justify-center transition\">\n                                        <i class=\"fa-solid fa-calculator mr-2\"><\/i> Calcul Amen\u00e9e d'Air\n                                    <\/button>\n                                    <button onclick=\"router('certificates')\" class=\"w-full py-2 bg-white\/10 hover:bg-white\/20 rounded flex items-center justify-center transition\">\n                                        <i class=\"fa-solid fa-clipboard-check mr-2\"><\/i> Trouver mon Certificat\n                                    <\/button>\n                                <\/div>\n                            <\/div>\n\n                            <!-- Rappels Essentiels -->\n                            <div class=\"bg-white rounded-xl shadow-sm p-6\">\n                                <h3 class=\"font-bold text-lg mb-4 text-gray-800\">Rappels Essentiels<\/h3>\n                                <div class=\"grid gap-4 text-sm\">\n                                    <div class=\"flex items-start p-3 bg-red-50 rounded text-red-800\">\n                                        <i class=\"fa-solid fa-ban mt-1 mr-3 text-lg\"><\/i>\n                                        <div>\n                                            <span class=\"font-bold block\">Interdiction formelle<\/span>\n                                            <p class=\"text-xs mt-1\">Tubes poly\u00e9thyl\u00e8ne (PE) \u00e0 l'int\u00e9rieur des b\u00e2timents. VMC classique non adapt\u00e9e Gaz.<\/p>\n                                        <\/div>\n                                    <\/div>\n                                    <div class=\"flex items-start p-3 bg-blue-50 rounded text-blue-800\">\n                                        <i class=\"fa-solid fa-clipboard-check mt-1 mr-3 text-lg\"><\/i>\n                                        <div>\n                                            <span class=\"font-bold block\">Auto-contr\u00f4le obligatoire<\/span>\n                                            <p class=\"text-xs mt-1\">Obligation de remplir scrupuleusement la fiche d'auto-contr\u00f4le (Visa Qualit\u00e9) <strong>avant<\/strong> d'\u00e9tablir le Certificat de Conformit\u00e9.<\/p>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderPiping(container) {\n            let materialsHtml = appData.materials.map(m => `\n                <div class=\"bg-white rounded-lg shadow p-5 hover:shadow-md transition\">\n                    <div class=\"flex justify-between items-start mb-3\">\n                        <h3 class=\"font-bold text-xl text-blue-800\">${m.name}<\/h3>\n                        <span class=\"text-xs bg-gray-200 px-2 py-1 rounded text-gray-600 uppercase tracking-wide\">${m.id.toUpperCase()}<\/span>\n                    <\/div>\n                    <div class=\"space-y-2 text-sm\">\n                        <p><strong class=\"text-green-600\"><i class=\"fa-solid fa-check mr-1\"><\/i>Autoris\u00e9:<\/strong> ${m.allowed.join(', ')}<\/p>\n                        <p><strong class=\"text-red-600\"><i class=\"fa-solid fa-xmark mr-1\"><\/i>Interdit:<\/strong> ${m.prohibited.join(', ')}<\/p>\n                        <p><strong class=\"text-blue-600\"><i class=\"fa-solid fa-link mr-1\"><\/i>Assemblage:<\/strong> ${m.assembly}<\/p>\n                    <\/div>\n                <\/div>\n            `).join('');\n\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-6xl mx-auto\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Canalisations : Mat\u00e9riaux et Implantation<\/h2>\n                    \n                    <!-- Materials Grid -->\n                    <div class=\"grid md:grid-cols-2 gap-6 mb-8\">\n                        ${materialsHtml}\n                    <\/div>\n\n                    <!-- Cintrage -->\n                    <div class=\"bg-white rounded-xl shadow p-6 mb-8\">\n                        <h3 class=\"font-bold text-lg text-blue-800 mb-4\"><i class=\"fa-solid fa-bezier-curve mr-2\"><\/i>R\u00e8gles de Cintrage<\/h3>\n                        <div class=\"grid md:grid-cols-2 gap-4\">\n                            <div class=\"p-4 bg-orange-50 border border-orange-200 rounded\">\n                                <span class=\"font-bold text-orange-800 block mb-2\">Cuivre<\/span>\n                                <ul class=\"text-sm space-y-1 text-orange-900 list-disc list-inside\">\n                                    <li><strong>\u00c9croui (dur) :<\/strong> Cintrage \u00e0 froid sur machine jusqu'au \u00d8 22 mm.<\/li>\n                                    <li><strong>Recuit (mall\u00e9able) :<\/strong> Machine, ressort ou sable. Rayon min = 3x Diam\u00e8tre ext\u00e9rieur.<\/li>\n                                <\/ul>\n                            <\/div>\n                            <div class=\"p-4 bg-gray-50 border border-gray-300 rounded\">\n                                <span class=\"font-bold text-gray-800 block mb-2\">Acier<\/span>\n                                <ul class=\"text-sm space-y-1 text-gray-700 list-disc list-inside\">\n                                    <li><strong>Galvanis\u00e9 :<\/strong> Cintrage \u00e0 froid UNIQUEMENT.<\/li>\n                                    <li><strong>Noir :<\/strong> Cintrage \u00e0 chaud ou \u00e0 froid.<\/li>\n                                    <li><strong>Inoxydable :<\/strong> Cintrage INTERDIT (fa\u00e7onnage interdit).<\/li>\n                                <\/ul>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <h3 class=\"font-bold text-xl text-blue-900 mb-4\"><i class=\"fa-solid fa-route mr-2\"><\/i>Passages Sp\u00e9cifiques & Distances<\/h3>\n                    \n                    <div class=\"grid md:grid-cols-2 lg:grid-cols-4 gap-4 mb-8\">\n                        <!-- Enterr\u00e9 -->\n                        <div class=\"bg-white rounded-lg shadow border-t-4 border-yellow-500 p-4\">\n                            <h4 class=\"font-bold text-gray-800 mb-3 flex items-center\"><i class=\"fa-solid fa-person-digging text-yellow-500 mr-2\"><\/i>Enterr\u00e9<\/h4>\n                            <ul class=\"text-xs space-y-2 text-gray-600\">\n                                <li><strong>Profondeur :<\/strong> 50 cm min. (20 cm si protection m\u00e9canique).<\/li>\n                                <li><strong>Signalisation :<\/strong> Grillage jaune \u00e0 20 cm au-dessus du tube.<\/li>\n                                <li><strong>Vs Eau :<\/strong> 20 cm (parall\u00e8le) \/ 5 cm (croisement). Gaz toujours au-dessus.<\/li>\n                                <li><strong>Vs \u00c9lectricit\u00e9 :<\/strong> 20 cm min (sinon fourreau isolant d\u00e9passant de 20cm de part et d'autre).<\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Vide Sanitaire -->\n                        <div class=\"bg-white rounded-lg shadow border-t-4 border-blue-500 p-4\">\n                            <h4 class=\"font-bold text-gray-800 mb-3 flex items-center\"><i class=\"fa-solid fa-spider text-blue-500 mr-2\"><\/i>Vide Sanitaire<\/h4>\n                            <ul class=\"text-xs space-y-2 text-gray-600\">\n                                <li><strong>Si Accessible (h > 0.6m + trappe) & Ventil\u00e9 :<\/strong> Autoris\u00e9 pour Cuivre\/Acier (PE interdit). Z\u00e9ro raccord m\u00e9canique. Sans stockage de combustibles.<\/li>\n                                <li><strong>Si Inaccessible \/ Non Ventil\u00e9 :<\/strong> Sous fourreau continu \u00e9tanche d\u00e9bouchant \u00e0 l'air libre OU longueur < 2 m\u00e8tres.<\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Faux Plafond -->\n                        <div class=\"bg-white rounded-lg shadow border-t-4 border-purple-500 p-4\">\n                            <h4 class=\"font-bold text-gray-800 mb-3 flex items-center\"><i class=\"fa-solid fa-turn-up text-purple-500 mr-2\"><\/i>Faux Plafond<\/h4>\n                            <ul class=\"text-xs space-y-2 text-gray-600\">\n                                <li><strong>Si D\u00e9montable & Ventil\u00e9 :<\/strong> Perforations requises (trous > 5mm, surface d'a\u00e9ration > 1\/100e de la surface du plafond).<\/li>\n                                <li><strong>Sinon :<\/strong> Tube obligatoirement sous fourreau continu \u00e9tanche (d\u00e9bouchant ventil\u00e9) sans raccord ni d\u00e9rivation.<\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Coffrages & Plinthes -->\n                        <div class=\"bg-white rounded-lg shadow border-t-4 border-green-500 p-4\">\n                            <h4 class=\"font-bold text-gray-800 mb-3 flex items-center\"><i class=\"fa-solid fa-box text-green-500 mr-2\"><\/i>Plinthes \/ Coffrages<\/h4>\n                            <ul class=\"text-xs space-y-2 text-gray-600\">\n                                <li><strong>Plinthe\/Moulure :<\/strong> Ventil\u00e9e, d\u00e9montable. S\u00e9paration isolante obligatoire si c\u00e2bles \u00e9lectriques pr\u00e9sents.<\/li>\n                                <li><strong>Coffrage :<\/strong> D\u00e9montable\/accessible, en communication avec l'atmosph\u00e8re du local. C\u00e2bles \u00e9lectriques strictement interdits \u00e0 l'int\u00e9rieur.<\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"bg-blue-50 border border-blue-200 rounded-lg p-5\">\n                        <h3 class=\"font-bold text-blue-800 mb-2\"><i class=\"fa-solid fa-circle-info mr-2\"><\/i>\u00c9loignement en \u00e9l\u00e9vation & Travers\u00e9es<\/h3>\n                        <p class=\"text-sm text-blue-900 mb-2\"><strong>Parall\u00e8le \u00e9lectricit\u00e9 :<\/strong> 3 cm min. <strong>Croisement \u00e9lectricit\u00e9 :<\/strong> 1 cm min.<\/p>\n                        <p class=\"text-sm text-blue-900\"><strong>Travers\u00e9es (Murs\/Planchers) :<\/strong> Fourreau obligatoire pour planchers (d\u00e9passement > 5cm) et murs creux. L'espace annulaire (entre tube et mur\/fourreau) doit syst\u00e9matiquement \u00eatre <strong>obtur\u00e9 par un mat\u00e9riau inerte<\/strong>.<\/p>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderValves(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-5xl mx-auto\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Organes de Coupure<\/h2>\n                    \n                    <!-- Diagram Logic -->\n                    <div class=\"flex flex-col md:flex-row items-center justify-between bg-white p-6 rounded-xl shadow mb-8 text-center space-y-4 md:space-y-0\">\n                        <div class=\"flex-1\">\n                            <div class=\"bg-gray-800 text-white p-3 rounded-lg mx-auto w-32 shadow-lg relative\">\n                                <span class=\"block font-bold\">OCG<\/span>\n                                <span class=\"text-xs\">G\u00e9n\u00e9rale<\/span>\n                                <div class=\"absolute -top-2 -right-2 bg-yellow-500 text-xs text-black font-bold px-1 rounded\">Ext<\/div>\n                            <\/div>\n                            <p class=\"text-xs mt-2 text-gray-500\">Fa\u00e7ade \/ Rue<\/p>\n                        <\/div>\n                        <div class=\"h-8 w-1 md:h-1 md:w-12 bg-gray-300\"><\/div>\n                        <div class=\"flex-1\">\n                            <div class=\"bg-blue-700 text-white p-3 rounded-lg mx-auto w-32 shadow-lg\">\n                                <span class=\"block font-bold\">OCI<\/span>\n                                <span class=\"text-xs\">Individuelle<\/span>\n                            <\/div>\n                            <p class=\"text-xs mt-2 text-gray-500\">Palier<\/p>\n                        <\/div>\n                        <div class=\"h-8 w-1 md:h-1 md:w-12 bg-gray-300\"><\/div>\n                        <div class=\"flex-1\">\n                            <div class=\"bg-blue-500 text-white p-3 rounded-lg mx-auto w-32 shadow-lg\">\n                                <span class=\"block font-bold\">OCA<\/span>\n                                <span class=\"text-xs\">Appareil<\/span>\n                            <\/div>\n                            <p class=\"text-xs mt-2 text-gray-500\">Cuisine \/ Chauff.<\/p>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"grid md:grid-cols-2 gap-6\">\n                        <div class=\"bg-white p-5 rounded-lg shadow border-l-4 border-red-500\">\n                            <h3 class=\"font-bold mb-2 text-red-700\">R\u00e8gle des 20 M\u00e8tres<\/h3>\n                            <p class=\"text-sm text-gray-700\">Si la distance entre l'OCG et la fa\u00e7ade est <strong>> 20 m\u00e8tres<\/strong>, un Organe de Coupure Suppl\u00e9mentaire est exig\u00e9 (fa\u00e7ade ou point de p\u00e9n\u00e9tration).<\/p>\n                        <\/div>\n                        <div class=\"bg-white p-5 rounded-lg shadow border-l-4 border-green-500\">\n                            <h3 class=\"font-bold mb-2 text-green-700\">Appareil de Cuisson (ROAI)<\/h3>\n                            <p class=\"text-sm text-gray-700\">Le <strong>ROAI<\/strong> (Robinet \u00e0 Obturation Automatique Int\u00e9gr\u00e9e) est <strong>obligatoire<\/strong> pour tout appareil de cuisson raccord\u00e9 par flexible.<\/p>\n                        <\/div>\n                        <div class=\"bg-white p-5 rounded-lg shadow border-l-4 border-blue-500\">\n                            <h3 class=\"font-bold mb-2 text-blue-700\">Paliers & Niveaux<\/h3>\n                            <p class=\"text-sm text-gray-700\">Tol\u00e9rance d'un demi-\u00e9tage pour l'OCI en collectif. Au-del\u00e0, coupure suppl\u00e9mentaire requise \u00e0 la p\u00e9n\u00e9tration.<\/p>\n                        <\/div>\n                        <div class=\"bg-white p-5 rounded-lg shadow border-l-4 border-purple-500\">\n                            <h3 class=\"font-bold mb-2 text-purple-700\">Tiges apr\u00e8s Compteur<\/h3>\n                            <p class=\"text-sm text-gray-700\">Si compteurs en local technique : 2\u00e8me organe de coupure <strong>obligatoire<\/strong> \u00e0 l'entr\u00e9e du logement.<\/p>\n                        <\/div>\n                        \n                        <!-- NOUVEAU : Accessibilit\u00e9 OCA -->\n                        <div class=\"bg-white p-5 rounded-lg shadow border-l-4 border-orange-500\">\n                            <h3 class=\"font-bold mb-2 text-orange-700\">Accessibilit\u00e9 de l'OCA<\/h3>\n                            <p class=\"text-sm text-gray-700\">L'OCA doit toujours \u00eatre <strong>accessible et facilement man\u0153uvrable<\/strong>. Il est consid\u00e9r\u00e9 inaccessible s'il n\u00e9cessite le d\u00e9montage d'\u00e9l\u00e9ments fixes (ex: fond de meuble, siphon d'\u00e9vier) ou s'il est situ\u00e9 \u00e0 plus de <strong>0,60 m<\/strong> de la fa\u00e7ade du meuble.<\/p>\n                        <\/div>\n\n                        <!-- NOUVEAU : OCA en attente & Ventilation -->\n                        <div class=\"bg-white p-5 rounded-lg shadow border-l-4 border-yellow-500 flex flex-col justify-between\">\n                            <div>\n                                <h3 class=\"font-bold mb-2 text-yellow-700\">OCA en Attente de Branchement<\/h3>\n                                <p class=\"text-sm text-gray-700 mb-3\">En l'absence d'appareil raccord\u00e9, tout robinet en attente doit obligatoirement \u00eatre obtur\u00e9 par un <strong>bouchon filet\u00e9 m\u00e9tallique<\/strong>.<\/p>\n                            <\/div>\n                            <div class=\"bg-red-50 text-red-800 p-3 rounded text-xs border border-red-200 mt-2\">\n                                <i class=\"fa-solid fa-triangle-exclamation mr-1 text-red-600 text-sm\"><\/i> <strong>R\u00e8gle d'Or (Ventilation) :<\/strong> La pr\u00e9sence d'un robinet en attente (ex: attente cuisson) impose que le local respecte l'ensemble des r\u00e8gles de ventilation (<strong>Volume, Ouvrant, Amen\u00e9e et Sortie d'air<\/strong>), exactement comme si l'appareil de cuisson y \u00e9tait d\u00e9j\u00e0 raccord\u00e9.\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderConnection(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-6xl mx-auto pb-20\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Raccordement en Gaz des Appareils<\/h2>\n                    \n                    <div class=\"bg-blue-50 border border-blue-200 rounded-xl p-5 mb-6\">\n                        <p class=\"text-sm text-blue-900\">\n                            L'alimentation d'un appareil en aval de l'Organe de Coupure d'Appareil (OCA) s'effectue soit par une <strong>tuyauterie fixe (rigide)<\/strong>, soit par un <strong>tuyau flexible<\/strong> (\u00e0 embouts m\u00e9caniques), soit par une combinaison des deux (limite de 5m au total).\n                        <\/p>\n                    <\/div>\n\n                    <!-- Alerte stricte Chauffage \/ ECS -->\n                    <div class=\"bg-red-50 border-l-4 border-red-600 p-5 mb-8 rounded shadow-sm\">\n                        <h3 class=\"font-bold text-red-800 flex items-center text-lg mb-2\">\n                            <i class=\"fa-solid fa-fire-burner mr-2\"><\/i> R\u00e8gle stricte : Chauffage et Eau Chaude\n                        <\/h3>\n                        <p class=\"text-sm text-red-900\">\n                            Pour les appareils de <strong>chauffage<\/strong> et\/ou de <strong>production d'eau chaude<\/strong>, le raccordement s'effectue obligatoirement en <strong>rigide<\/strong> ou \u00e0 l'aide d'un <strong>flexible m\u00e9tallique \u00e0 dur\u00e9e de vie illimit\u00e9e<\/strong>. L'utilisation de flexibles en caoutchouc \u00e0 dur\u00e9e de vie limit\u00e9e (5 ou 10 ans) est formellement interdite pour ces usages.\n                        <\/p>\n                    <\/div>\n\n                    <h3 class=\"font-bold text-xl text-blue-800 mb-4\"><i class=\"fa-solid fa-hose mr-2\"><\/i>Types de Flexibles et Dur\u00e9es de Vie<\/h3>\n                    <div class=\"grid md:grid-cols-3 gap-6 mb-8\">\n                        <!-- 5 Ans -->\n                        <div class=\"bg-white rounded-lg shadow-md overflow-hidden border border-gray-200\">\n                            <div class=\"bg-orange-500 text-white p-3 text-center font-bold text-lg\">Validit\u00e9 5 ans<\/div>\n                            <div class=\"p-5\">\n                                <h4 class=\"font-bold text-gray-800 mb-2\">Caoutchouc SANS armature<\/h4>\n                                <p class=\"text-xs text-gray-500 mb-3 border-b pb-2\">NF D 36-100 (R\u00e9seau) \/ NF D 36-110 (GPL)<\/p>\n                                <ul class=\"text-sm text-gray-700 space-y-2\">\n                                    <li><i class=\"fa-solid fa-triangle-exclamation text-orange-500 mr-1\"><\/i> \"\u00c0 remplacer avant...\" inscrit sur le tuyau.<\/li>\n                                    <li><i class=\"fa-solid fa-check text-green-500 mr-1\"><\/i> \u00c9quip\u00e9 d'embouts filet\u00e9s aux deux extr\u00e9mit\u00e9s.<\/li>\n                                    <li><i class=\"fa-solid fa-ban text-red-600 mr-1\"><\/i> <strong class=\"text-red-600\">Interdit pour le chauffage \/ ECS.<\/strong><\/li>\n                                <\/ul>\n                            <\/div>\n                        <\/div>\n\n                        <!-- 10 Ans -->\n                        <div class=\"bg-white rounded-lg shadow-md overflow-hidden border border-gray-200\">\n                            <div class=\"bg-blue-600 text-white p-3 text-center font-bold text-lg\">Validit\u00e9 10 ans<\/div>\n                            <div class=\"p-5\">\n                                <h4 class=\"font-bold text-gray-800 mb-2\">Caoutchouc AVEC armature<\/h4>\n                                <p class=\"text-xs text-gray-500 mb-3 border-b pb-2\">NF D 36-103 (R\u00e9seau) \/ NF D 36-112 (GPL)<\/p>\n                                <ul class=\"text-sm text-gray-700 space-y-2\">\n                                    <li><i class=\"fa-solid fa-triangle-exclamation text-blue-500 mr-1\"><\/i> \"\u00c0 remplacer avant...\" inscrit sur le tuyau.<\/li>\n                                    <li><i class=\"fa-solid fa-shield-halved text-gray-400 mr-1\"><\/i> Renforc\u00e9 par une armature interne.<\/li>\n                                    <li><i class=\"fa-solid fa-ban text-red-600 mr-1\"><\/i> <strong class=\"text-red-600\">Interdit pour le chauffage \/ ECS.<\/strong><\/li>\n                                <\/ul>\n                            <\/div>\n                        <\/div>\n\n                        <!-- Illimit\u00e9 -->\n                        <div class=\"bg-white rounded-lg shadow-md overflow-hidden border-2 border-green-500 relative\">\n                            <div class=\"absolute -right-6 top-4 bg-green-500 text-white font-bold py-1 px-8 transform rotate-45 shadow text-[10px]\">RECOMMAND\u00c9<\/div>\n                            <div class=\"bg-green-600 text-white p-3 text-center font-bold text-lg\">Dur\u00e9e illimit\u00e9e<\/div>\n                            <div class=\"p-5\">\n                                <h4 class=\"font-bold text-gray-800 mb-2\">Flexible M\u00e9tallique Onduleux<\/h4>\n                                <p class=\"text-xs text-gray-500 mb-3 border-b pb-2\">NF D 36-121 (R\u00e9seau) \/ NF D 36-125 (GPL)<\/p>\n                                <ul class=\"text-sm text-gray-700 space-y-2\">\n                                    <li><i class=\"fa-solid fa-infinity text-green-600 mr-1\"><\/i> \"PAS DE DATE LIMITE\" inscrit.<\/li>\n                                    <li><i class=\"fa-solid fa-check text-green-500 mr-1\"><\/i> <strong>Seul flexible autoris\u00e9<\/strong> pour le chauffage et l'eau chaude.<\/li>\n                                <\/ul>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"grid md:grid-cols-2 gap-6 mb-8\">\n                        <!-- R\u00e8gles de pose -->\n                        <div class=\"bg-white p-6 rounded-xl shadow\">\n                            <h3 class=\"font-bold text-lg text-blue-800 mb-4\"><i class=\"fa-solid fa-ruler mr-2\"><\/i>R\u00e8gles de Pose des Flexibles<\/h3>\n                            <ul class=\"space-y-3 text-sm text-gray-700\">\n                                <li><strong class=\"text-red-600 font-bold bg-red-50 px-2 py-0.5 rounded\">2 m\u00e8tres MAX :<\/strong> Longueur totale autoris\u00e9e (sauf appareil ext\u00e9rieur aliment\u00e9 depuis l'ext\u00e9rieur en m\u00e9tallique : 5m).<\/li>\n                                <li class=\"flex items-start\"><i class=\"fa-solid fa-eye text-blue-500 mt-1 mr-2\"><\/i><div><strong>Visitabilit\u00e9 :<\/strong> Le tuyau doit \u00eatre accessible et visitable sur TOUTE sa longueur.<\/div><\/li>\n                                <li class=\"flex items-start\"><i class=\"fa-solid fa-fire text-red-500 mt-1 mr-2\"><\/i><div><strong>Zones Chaudes :<\/strong> Ne doit pas \u00eatre atteint par les flammes, les gaz de combustion ou toucher les parties chaudes de l'appareil.<\/div><\/li>\n                                <li class=\"flex items-start\"><i class=\"fa-solid fa-ban text-gray-500 mt-1 mr-2\"><\/i><div><strong>Contraintes :<\/strong> Suffisamment long pour \u00e9viter la traction, install\u00e9 sans torsion ni risque de chocs.<\/div><\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Le cas du Tube Souple -->\n                        <div class=\"bg-red-50 p-6 rounded-xl shadow border border-red-200 relative overflow-hidden\">\n                            <div class=\"absolute -right-6 top-6 bg-red-600 text-white font-bold py-1 px-8 transform rotate-45 shadow text-xs\">RESTREINT<\/div>\n                            <h3 class=\"font-bold text-lg text-red-800 mb-4\"><i class=\"fa-solid fa-triangle-exclamation mr-2\"><\/i>Le cas du \"Tube Souple\"<\/h3>\n                            <p class=\"text-sm text-red-900 mb-3\">\n                                Contrairement au tuyau flexible, le tube souple (NF D 36-102) s'emmanche sur une t\u00e9tine et se fixe avec des colliers de serrage. Son usage est <strong>tr\u00e8s strictement limit\u00e9<\/strong>.\n                            <\/p>\n                            <ul class=\"text-sm text-red-800 space-y-2 font-medium bg-white p-3 rounded bg-opacity-60 border border-red-100\">\n                                <li><i class=\"fa-solid fa-xmark mr-2\"><\/i> INTERDIT en Gaz Naturel.<\/li>\n                                <li><i class=\"fa-solid fa-xmark mr-2\"><\/i> INTERDIT en Propane.<\/li>\n                                <li><i class=\"fa-solid fa-check text-green-600 mr-2\"><\/i> AUTORIS\u00c9 <strong>uniquement<\/strong> pour la cuisson sur Bouteille de <strong>BUTANE<\/strong> (sans tuyauterie fixe).<\/li>\n                                <li><i class=\"fa-solid fa-ruler-horizontal mr-2\"><\/i> Longueur maximale : <strong>1,50 m\u00e8tre<\/strong>.<\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n                    \n                    <!-- Appareils en SPE -->\n                    <div class=\"bg-white p-6 rounded-xl shadow border-l-4 border-yellow-500\">\n                        <h3 class=\"font-bold text-lg text-gray-800 mb-2\">Sites de Production d'\u00c9nergie (SPE)<\/h3>\n                        <p class=\"text-sm text-gray-600\">\n                            Dans un SPE, l'alimentation d'un appareil en aval de l'OCA se fait exclusivement par : tube rigide, tuyau m\u00e9tallique pliable (PLT), ou tuyau flexible <strong>strictement m\u00e9tallique<\/strong> (longueur max 2m). Les flexibles caoutchouc y sont interdits.\n                        <\/p>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderVolume(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-5xl mx-auto pb-20\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Volume et Ouvrant<\/h2>\n                    \n                    <div class=\"bg-blue-50 border border-blue-200 rounded-xl p-5 mb-8 shadow-sm\">\n                        <p class=\"text-sm text-blue-900 mb-2\">\n                            Les exigences de <strong>Volume minimal<\/strong> et de pr\u00e9sence d'un <strong>Ouvrant<\/strong> concernent exclusivement les appareils non raccord\u00e9s (<strong class=\"font-bold\">Type A<\/strong>), qui rejettent leurs produits de combustion directement dans la pi\u00e8ce (ex: table de cuisson, cuisini\u00e8re, four \u00e0 gaz). \n                        <\/p>\n                        <p class=\"text-sm text-blue-800 font-bold bg-white p-2 rounded inline-block mt-2 shadow-sm\">\n                            <i class=\"fa-solid fa-info-circle mr-1 text-blue-600\"><\/i> Les appareils raccord\u00e9s (Type B) et \u00e9tanches (Type C) n'ont aucune exigence r\u00e9glementaire de volume ni d'ouvrant.\n                        <\/p>\n                    <\/div>\n\n                    <div class=\"grid md:grid-cols-2 gap-6 mb-8\">\n                        <!-- R\u00e8gle du Volume -->\n                        <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-blue-600 flex flex-col\">\n                            <h3 class=\"font-bold text-xl mb-4 text-blue-800\"><i class=\"fa-solid fa-cube mr-2 text-blue-500\"><\/i>Le Volume Minimal<\/h3>\n                            <ul class=\"space-y-4 text-sm text-gray-700 flex-1\">\n                                <li class=\"flex items-center p-3 bg-blue-50 rounded border border-blue-100\">\n                                    <div class=\"text-3xl font-black text-blue-700 mr-4 w-16 text-center\">8 <span class=\"text-lg\">m\u00b3<\/span><\/div>\n                                    <div><strong>Appareil de cuisson (Type A)<\/strong><br>Le volume de la pi\u00e8ce doit \u00eatre au minimum de 8 m\u00b3. <em>Aucune d\u00e9rogation possible.<\/em><\/div>\n                                <\/li>\n                                <li class=\"flex items-center p-3 bg-gray-50 rounded border border-gray-200\">\n                                    <div class=\"text-3xl font-black text-gray-600 mr-4 w-16 text-center\">15 <span class=\"text-lg\">m\u00b3<\/span><\/div>\n                                    <div><strong>CENR (Chauffe-Eau Non Raccord\u00e9)<\/strong><br>Pour le remplacement sur les installations existantes, le volume minimum exig\u00e9 est de 15 m\u00b3.<\/div>\n                                <\/li>\n                            <\/ul>\n                            <div class=\"mt-4 p-3 bg-yellow-50 border border-yellow-200 rounded text-xs text-yellow-900\">\n                                <strong class=\"font-bold\"><i class=\"fa-solid fa-door-open mr-1 text-yellow-600\"><\/i> Cas du Placard-Cuisine :<\/strong> Si l'appareil est dans un espace si restreint qu'on ne peut s'y tenir porte ferm\u00e9e (dimensions r\u00e9duites), c'est le volume de la pi\u00e8ce sur laquelle il s'ouvre qui est pris en compte.\n                            <\/div>\n                        <\/div>\n\n                        <!-- R\u00e8gle de l'Ouvrant -->\n                        <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-orange-500 flex flex-col\">\n                            <h3 class=\"font-bold text-xl mb-4 text-orange-800\"><i class=\"fa-solid fa-window-maximize mr-2 text-orange-500\"><\/i>L'Ouvrant<\/h3>\n                            <p class=\"text-sm text-gray-700 mb-3\">\n                                La pi\u00e8ce contenant un appareil non raccord\u00e9 doit comporter une fen\u00eatre, une porte ou un ch\u00e2ssis donnant directement sur l'ext\u00e9rieur ou sur une cour a\u00e9r\u00e9e.\n                            <\/p>\n                            <div class=\"flex items-center bg-orange-50 border border-orange-200 p-4 rounded mb-6\">\n                                <div class=\"text-3xl font-black text-orange-600 mr-4 w-20 text-center\">\u2265 0,4 <span class=\"text-lg\">m\u00b2<\/span><\/div>\n                                <div class=\"text-sm text-orange-900 font-medium\">Surface ouvrante minimale exig\u00e9e pour permettre d'\u00e9vacuer rapidement l'air et le gaz en cas d'anomalie.<\/div>\n                            <\/div>\n\n                            <!-- L'exception majeure -->\n                            <div class=\"bg-green-50 border border-green-200 p-5 rounded-lg text-sm relative overflow-hidden mt-auto\">\n                                <div class=\"absolute right-0 top-0 bg-green-500 text-white font-bold py-1 px-4 text-xs rounded-bl-lg shadow-sm\">D\u00c9ROGATION<\/div>\n                                <h4 class=\"font-bold text-green-800 mb-2 text-lg\"><i class=\"fa-solid fa-shield-halved mr-2\"><\/i>S\u00e9curit\u00e9 de Flamme<\/h4>\n                                <p class=\"text-green-900\">\n                                    L'ouvrant de 0,4 m\u00b2 <strong>n'est pas obligatoire<\/strong> si l'appareil de cuisson est \u00e9quip\u00e9 d'une s\u00e9curit\u00e9 de flamme (thermocouple) sur <strong>chacun de ses br\u00fbleurs<\/strong> (table et four).\n                                <\/p>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- NOUVEAU : R\u00e8gle des 3m\u00b2 (Locaux contigus) -->\n                    <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-purple-500\">\n                        <h3 class=\"font-bold text-xl mb-4 text-purple-800\"><i class=\"fa-solid fa-people-arrows mr-2 text-purple-500\"><\/i>Locaux Contigus (R\u00e8gle des 3 m\u00b2)<\/h3>\n                        <p class=\"text-sm text-gray-700 mb-4\">\n                            Si le local contenant l'appareil ne respecte pas le volume minimal (ex: 8 m\u00b3) ou ne poss\u00e8de pas d'ouvrant, il est possible d'emprunter le volume et\/ou l'ouvrant d'une pi\u00e8ce adjacente.\n                        <\/p>\n                        <div class=\"flex items-center p-4 bg-purple-50 rounded border border-purple-200\">\n                            <div class=\"text-3xl font-black text-purple-700 mr-4 w-20 text-center\">\u2265 3 <span class=\"text-lg\">m\u00b2<\/span><\/div>\n                            <div class=\"text-sm text-purple-900 font-medium\">\n                                <strong>Condition absolue :<\/strong> Les deux pi\u00e8ces doivent communiquer entre elles par une <strong>baie libre permanente<\/strong> (sans porte, ni rideau, ni obstacle) d'une surface d'au moins 3 m\u00b2. Dans ce cas, les deux pi\u00e8ces sont consid\u00e9r\u00e9es r\u00e9glementairement comme <strong>un seul et m\u00eame local<\/strong>.\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderVentilation(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-4xl mx-auto\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Ventilation des Locaux<\/h2>\n\n                    <!-- Calculator Card -->\n                    <div class=\"bg-white p-6 rounded-xl shadow-lg border border-blue-100 mb-8\">\n                        <h3 class=\"font-bold text-xl mb-4 text-blue-800\"><i class=\"fa-solid fa-calculator mr-2\"><\/i>Calculateur Amen\u00e9e d'Air (R\u00e8gles Officielles)<\/h3>\n                        \n                        <div class=\"grid md:grid-cols-2 gap-4 mb-4\">\n                            <div>\n                                <label class=\"block text-sm font-medium text-gray-700 mb-1\">R\u00e9glementation du b\u00e2timent<\/label>\n                                <select id=\"calcRegType\" class=\"w-full p-2 border rounded bg-gray-50\" onchange=\"updateCalcFields()\">\n                                    <option value=\"ancien\">Logement ancien (sans VGP)<\/option>\n                                    <option value=\"vgp\">A\u00e9ration g\u00e9n\u00e9rale (Arr\u00eat\u00e9 1982)<\/option>\n                                <\/select>\n                            <\/div>\n                            <div>\n                                <label class=\"block text-sm font-medium text-gray-700 mb-1\">Type d'appareil<\/label>\n                                <select id=\"calcAppType\" class=\"w-full p-2 border rounded bg-gray-50\" onchange=\"updateCalcFields()\">\n                                    <option value=\"cuisson\">Cuisson seule (Type A)<\/option>\n                                    <option value=\"raccorde\">Appareil raccord\u00e9 (Type B) seul<\/option>\n                                    <option value=\"mixte\">Cuisson + Appareil raccord\u00e9 (Type B)<\/option>\n                                <\/select>\n                            <\/div>\n\n                            <!-- Dynamic fields -->\n                            <div id=\"fieldSortie\" class=\"hidden\">\n                                <label class=\"block text-sm font-medium text-gray-700 mb-1\">Type de sortie d'air<\/label>\n                                <select id=\"calcSortieType\" class=\"w-full p-2 border rounded bg-gray-50\" onchange=\"updateCalcFields()\">\n                                    <option value=\"directe\">Sortie directe (fa\u00e7ade)<\/option>\n                                    <option value=\"conduit\">Sortie par conduit<\/option>\n                                <\/select>\n                            <\/div>\n\n                            <div id=\"fieldEvac\" class=\"hidden\">\n                                <label class=\"block text-sm font-medium text-gray-700 mb-1\">Mode d'\u00e9vacuation<\/label>\n                                <select id=\"calcEvacType\" class=\"w-full p-2 border rounded bg-gray-50\">\n                                    <option value=\"naturel\">Tirage naturel (Conduit vertical)<\/option>\n                                    <option value=\"mecanique\">Extraction m\u00e9canique (VMC classique)<\/option>\n                                    <option value=\"vmcgaz\">Extraction VMC Gaz<\/option>\n                                <\/select>\n                            <\/div>\n\n                            <div id=\"fieldPower\" class=\"hidden\">\n                                <label class=\"block text-sm font-medium text-gray-700 mb-1\">Puissance Utile (kW)<\/label>\n                                <input type=\"number\" id=\"calcPower\" class=\"w-full p-2 border rounded\" placeholder=\"ex: 24\">\n                            <\/div>\n                        <\/div>\n\n                        <button onclick=\"calculateAir()\" class=\"w-full bg-blue-600 text-white py-3 rounded-lg hover:bg-blue-700 transition font-bold shadow-md\">Calculer<\/button>\n\n                        <div id=\"airResult\" class=\"mt-6 p-5 bg-gray-50 rounded-lg hidden text-center border-2 border-dashed border-blue-200\">\n                            <p class=\"text-sm text-gray-500 uppercase tracking-widest mb-2 font-semibold\">Dimensionnement Requis<\/p>\n                            <span class=\"text-5xl font-extrabold text-blue-900 block\" id=\"resultValue\">--<\/span>\n                            <div class=\"mt-4 inline-block bg-white px-4 py-2 rounded shadow-sm border border-gray-100\">\n                                <p class=\"text-sm text-gray-700 font-medium\" id=\"resultRule\"><\/p>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Rules Grid -->\n                    <div class=\"grid md:grid-cols-3 gap-4\">\n                        <div class=\"bg-white p-4 rounded shadow\">\n                            <div class=\"text-center font-bold text-lg mb-2\">Type A<\/div>\n                            <p class=\"text-xs text-gray-600 text-center\">(Non raccord\u00e9)<\/p>\n                            <hr class=\"my-2\">\n                            <ul class=\"text-sm space-y-1\">\n                                <li><i class=\"fa-solid fa-check text-green-500 mr-1\"><\/i>Amen\u00e9e d'Air<\/li>\n                                <li><i class=\"fa-solid fa-check text-green-500 mr-1\"><\/i>Sortie d'Air (Haute)<\/li>\n                                <li><i class=\"fa-solid fa-check text-green-500 mr-1\"><\/i>Ouvrant (Fen\u00eatre)<\/li>\n                                <li><i class=\"fa-solid fa-cube text-blue-500 mr-1\"><\/i>Vol. min: 8m\u00b3<\/li>\n                            <\/ul>\n                        <\/div>\n                        <div class=\"bg-white p-4 rounded shadow\">\n                            <div class=\"text-center font-bold text-lg mb-2\">Type B<\/div>\n                            <p class=\"text-xs text-gray-600 text-center\">(Raccord\u00e9 chemin\u00e9e)<\/p>\n                            <hr class=\"my-2\">\n                            <ul class=\"text-sm space-y-1\">\n                                <li><i class=\"fa-solid fa-check text-green-500 mr-1\"><\/i>Amen\u00e9e d'Air<\/li>\n                                <li><i class=\"fa-solid fa-xmark text-gray-400 mr-1\"><\/i>Pas de sortie d\u00e9di\u00e9e<\/li>\n                                <li><i class=\"fa-solid fa-ban text-red-500 mr-1\"><\/i>Hotte ext. interdite<\/li>\n                                <li><i class=\"fa-solid fa-asterisk text-blue-500 mr-1\"><\/i>VMC Gaz : Pu x 4,3<\/li>\n                            <\/ul>\n                        <\/div>\n                        <div class=\"bg-white p-4 rounded shadow\">\n                            <div class=\"text-center font-bold text-lg mb-2\">Type C<\/div>\n                            <p class=\"text-xs text-gray-600 text-center\">(\u00c9tanche \/ Ventouse)<\/p>\n                            <hr class=\"my-2\">\n                            <ul class=\"text-sm space-y-1\">\n                                <li><i class=\"fa-solid fa-xmark text-gray-400 mr-1\"><\/i>Aucune ventilation locale requise<\/li>\n                                <li class=\"text-xs mt-2 italic text-gray-500\">Circuit \u00e9tanche sur l'ext\u00e9rieur<\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n\n            \/\/ Initialize dynamic fields correctly on render\n            updateCalcFields();\n        }\n\n        function updateCalcFields() {\n            const reg = document.getElementById('calcRegType').value;\n            const app = document.getElementById('calcAppType').value;\n            \n            \/\/ Reset all dynamic fields\n            document.getElementById('fieldSortie').classList.add('hidden');\n            document.getElementById('fieldEvac').classList.add('hidden');\n            document.getElementById('fieldPower').classList.add('hidden');\n\n            if (reg === 'ancien') {\n                if (app === 'cuisson') {\n                    document.getElementById('fieldSortie').classList.remove('hidden');\n                } else if (app === 'raccorde') {\n                    document.getElementById('fieldPower').classList.remove('hidden');\n                } else if (app === 'mixte') {\n                    document.getElementById('fieldSortie').classList.remove('hidden');\n                    document.getElementById('fieldPower').classList.remove('hidden');\n                }\n            } else if (reg === 'vgp') {\n                document.getElementById('fieldEvac').classList.remove('hidden');\n                if (app === 'raccorde' || app === 'mixte') {\n                    document.getElementById('fieldPower').classList.remove('hidden');\n                }\n            }\n        }\n\n        function calculateAir() {\n            const reg = document.getElementById('calcRegType').value;\n            const app = document.getElementById('calcAppType').value;\n            const power = parseFloat(document.getElementById('calcPower').value) || 0;\n            const resultDiv = document.getElementById('airResult');\n            const resultVal = document.getElementById('resultValue');\n            const resultRule = document.getElementById('resultRule');\n\n            resultDiv.classList.remove('hidden');\n            \n            \/\/ Small animation reset trick\n            resultDiv.classList.remove('fade-in');\n            void resultDiv.offsetWidth; \n            resultDiv.classList.add('fade-in');\n\n            let val = \"\";\n            let rule = \"\";\n\n            if (reg === 'ancien') {\n                if (app === 'cuisson') {\n                    const sortie = document.getElementById('calcSortieType').value;\n                    if (sortie === 'directe') {\n                        val = \"100 cm\u00b2\";\n                        rule = \"Cuisson seule avec sortie directe.\";\n                    } else {\n                        val = \"50 cm\u00b2\";\n                        rule = \"Cuisson seule avec sortie par conduit.\";\n                    }\n                } else if (app === 'raccorde') {\n                    if (power === 0) { \n                        val = \"?\"; rule = \"Veuillez saisir la puissance utile.\"; \n                    } else if (power <= 25) { \n                        val = \"50 cm\u00b2\"; rule = \"Appareil raccord\u00e9 : Puissance \u2264 25 kW.\"; \n                    } else if (power <= 35) {\n                        val = \"70 cm\u00b2\"; rule = \"Appareil raccord\u00e9 : 25 kW < Puissance \u2264 35 kW.\";\n                    } else if (power <= 50) {\n                        val = \"100 cm\u00b2\"; rule = \"Appareil raccord\u00e9 : 35 kW < Puissance \u2264 50 kW.\";\n                    } else if (power <= 70) {\n                        val = \"150 cm\u00b2\"; rule = \"Appareil raccord\u00e9 : 50 kW < Puissance \u2264 70 kW.\";\n                    } else { \n                        val = \"Sp\u00e9cifique\"; rule = \"Puissance > 70 kW : N\u00e9cessite une installation en chaufferie \/ SPE.\"; \n                    }\n                } else if (app === 'mixte') {\n                    const sortie = document.getElementById('calcSortieType').value;\n                    if (power === 0) { \n                        val = \"?\"; rule = \"Veuillez saisir la puissance utile de l'appareil raccord\u00e9.\"; \n                    } else if (sortie === 'directe') {\n                        if (power <= 35) {\n                            val = \"100 cm\u00b2\";\n                            rule = \"Cuisson + Appareil raccord\u00e9 (Puissance \u2264 35 kW) avec sortie directe.\";\n                        } else {\n                            val = \"150 cm\u00b2\";\n                            rule = \"Cuisson + Appareil raccord\u00e9 (Puissance > 35 kW) avec sortie directe.\";\n                        }\n                    } else {\n                        if (power <= 25) { val = \"50 cm\u00b2\"; rule = \"Cuisson + Appareil raccord\u00e9 (\u2264 25 kW) avec sortie conduit.\"; }\n                        else if (power <= 35) { val = \"70 cm\u00b2\"; rule = \"Cuisson + Appareil raccord\u00e9 (25-35 kW) avec sortie conduit.\"; }\n                        else if (power <= 50) { val = \"100 cm\u00b2\"; rule = \"Cuisson + Appareil raccord\u00e9 (35-50 kW) avec sortie conduit.\"; }\n                        else if (power <= 70) { val = \"150 cm\u00b2\"; rule = \"Cuisson + Appareil raccord\u00e9 (50-70 kW) avec sortie conduit.\"; }\n                        else { val = \"Sp\u00e9cifique\"; rule = \"Puissance > 70 kW : N\u00e9cessite une installation en chaufferie \/ SPE.\"; }\n                    }\n                }\n            } else if (reg === 'vgp') {\n                const evac = document.getElementById('calcEvacType').value;\n                if (evac === 'naturel') {\n                    if (app === 'cuisson') {\n                        val = \"90 m\u00b3\/h\"; rule = \"Ventilation par tirage naturel (cuisson seule).\";\n                    } else {\n                        if (power === 0) { \n                            val = \"?\"; rule = \"Veuillez saisir la puissance utile.\"; \n                        } else { \n                            val = Math.ceil(power * 6.2) + \" m\u00b3\/h\"; rule = \"Tirage naturel avec appareil raccord\u00e9 (Formule : Pu x 6,2).\"; \n                        }\n                    }\n                } else if (evac === 'mecanique') {\n                    if (app === 'cuisson') {\n                        val = \"45 m\u00b3\/h\"; rule = \"Extraction m\u00e9canique (cuisson seule).\";\n                    } else {\n                        if (power === 0) { \n                            val = \"?\"; rule = \"Veuillez saisir la puissance utile.\"; \n                        } else { \n                            val = Math.ceil(power * 3.1) + \" m\u00b3\/h\"; rule = \"Extraction m\u00e9canique avec appareil raccord\u00e9 (Formule : Pu x 3,1).\"; \n                        }\n                    }\n                } else if (evac === 'vmcgaz') {\n                    if (app === 'cuisson') {\n                        val = \"45 m\u00b3\/h\"; rule = \"Extraction m\u00e9canique VMC Gaz (cuisson seule).\";\n                    } else {\n                        if (power === 0) { \n                            val = \"?\"; rule = \"Veuillez saisir la puissance utile de la chaudi\u00e8re.\"; \n                        } else { \n                            val = Math.ceil(power * 4.3) + \" m\u00b3\/h\"; rule = \"Appareil raccord\u00e9 sur VMC Gaz (Formule : Pu x 4,3).\"; \n                        }\n                    }\n                }\n            }\n\n            resultVal.innerText = val;\n            resultRule.innerHTML = \"<i class='fa-solid fa-circle-info text-blue-500 mr-2'><\/i>\" + rule;\n        }\n\n        function renderFlues(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-5xl mx-auto pb-20\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">\u00c9vacuation - Appareils Raccord\u00e9s (Type B)<\/h2>\n                    \n                    <div class=\"bg-blue-50 border border-blue-200 rounded-xl p-5 mb-8\">\n                        <p class=\"text-sm text-blue-900\">\n                            L'\u00e9vacuation des appareils de Type B (tirage naturel) se d\u00e9compose en deux parties distinctes : le <strong>conduit de raccordement<\/strong> (souvent visible, reliant l'appareil \u00e0 la chemin\u00e9e) et le <strong>conduit de fum\u00e9e<\/strong> (la partie verticale \u00e9vacuant vers le toit).\n                        <\/p>\n                    <\/div>\n\n                    <!-- Conduit de Raccordement -->\n                    <div class=\"mb-8\">\n                        <h3 class=\"font-bold text-xl text-blue-800 mb-4 border-b-2 border-blue-200 pb-2\">\n                            <i class=\"fa-solid fa-arrows-turn-right mr-2\"><\/i>1. Le Conduit de Raccordement\n                        <\/h3>\n                        <div class=\"grid md:grid-cols-2 gap-6\">\n                            <div class=\"bg-white p-5 rounded-lg shadow-md border-l-4 border-orange-500\">\n                                <h4 class=\"font-bold text-gray-800 mb-3\"><i class=\"fa-solid fa-ruler-combined text-orange-500 mr-2\"><\/i>Trac\u00e9 et Pente<\/h4>\n                                <ul class=\"space-y-3 text-sm text-gray-700\">\n                                    <li><i class=\"fa-solid fa-arrow-trend-up text-green-500 mr-2\"><\/i><strong>Pente :<\/strong> Obligatoirement <strong>ascendante<\/strong> vers le conduit de fum\u00e9e avec un minimum de <strong>3%<\/strong> (appareil \u00e0 condensation ou non). Toute contre-pente est un DGI.<\/li>\n                                    <li><i class=\"fa-solid fa-bezier-curve text-gray-500 mr-2\"><\/i><strong>Coudes :<\/strong> Maximum <strong>2 coudes \u00e0 90\u00b0<\/strong> (sans angle vif).<\/li>\n                                    <li><i class=\"fa-solid fa-rotate-right text-gray-500 mr-2\"><\/i><strong>D\u00e9voiement total :<\/strong> La somme des changements de direction ne doit pas d\u00e9passer <strong>180\u00b0<\/strong>.<\/li>\n                                <\/ul>\n                            <\/div>\n\n                            <div class=\"bg-white p-5 rounded-lg shadow-md border-l-4 border-blue-500\">\n                                <h4 class=\"font-bold text-gray-800 mb-3\"><i class=\"fa-solid fa-left-right text-blue-500 mr-2\"><\/i>Longueurs Maximales<\/h4>\n                                <div class=\"bg-blue-50 border border-blue-200 p-3 rounded mb-3 text-center shadow-sm\">\n                                    <p class=\"text-sm text-blue-900 mb-1\">En projection horizontale :<\/p>\n                                    <p class=\"text-xl font-black text-blue-700\">2 m\u00e8tres MAXIMUM<\/p>\n                                <\/div>\n                                <ul class=\"space-y-2 text-sm\">\n                                    <li class=\"flex justify-between items-center bg-gray-50 p-2 rounded\">\n                                        <span>Conduit Flexible NON extensible<\/span> <span class=\"font-bold text-blue-700\">2 m\u00e8tres<\/span>\n                                    <\/li>\n                                    <li class=\"flex justify-between items-center bg-gray-50 p-2 rounded\">\n                                        <span>Conduit Flexible extensible<\/span> <span class=\"font-bold text-blue-700\">1,5 m\u00e8tre<\/span>\n                                    <\/li>\n                                <\/ul>\n                                <p class=\"text-xs text-gray-500 mt-3 border-t border-gray-100 pt-2\"><i class=\"fa-solid fa-circle-info text-blue-400 mr-1\"><\/i> *<strong>Exception :<\/strong> Tol\u00e9rance jusqu'\u00e0 3 m\u00e8tres pour un conduit rigide <strong>si le raccordement s'effectue sur un conduit individuel<\/strong> (voire 6m pour radiateurs gaz sp\u00e9cifiques).<\/p>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"mt-4 space-y-3\">\n                            <div class=\"bg-yellow-50 p-4 rounded-lg border border-yellow-200 text-sm text-yellow-900\">\n                                <i class=\"fa-solid fa-triangle-exclamation mr-2 text-yellow-600\"><\/i><strong>R\u00e8gles de pose :<\/strong> Le conduit doit \u00eatre d\u00e9montable (sauf insert), de m\u00eame diam\u00e8tre sur toute sa longueur (pas de r\u00e9duction brusque), respecter le sens d'embo\u00eetement (m\u00e2le vers le bas \/ femelle vers le haut), et ne jamais traverser une autre pi\u00e8ce principale.\n                            <\/div>\n                            <div class=\"bg-red-50 p-4 rounded-lg border border-red-200 text-sm text-red-900 shadow-sm\">\n                                <i class=\"fa-solid fa-ban mr-2 text-red-600\"><\/i><strong>Interdiction stricte :<\/strong> L'installation ou la pr\u00e9sence de tout <strong>moyen de r\u00e9glage mobile<\/strong> (cl\u00e9 de tirage, registre manuel) sur le conduit de raccordement est formellement interdite.\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Conduit de Fum\u00e9e -->\n                    <div>\n                        <h3 class=\"font-bold text-xl text-blue-800 mb-4 border-b-2 border-blue-200 pb-2\">\n                            <i class=\"fa-solid fa-arrow-up text-blue-600 mr-2\"><\/i>2. Le Conduit de Fum\u00e9e (Vertical)\n                        <\/h3>\n                        \n                        <div class=\"grid md:grid-cols-3 gap-4 mb-6\">\n                            <div class=\"bg-white p-4 rounded-lg shadow text-center border border-gray-100\">\n                                <div class=\"w-12 h-12 bg-blue-100 text-blue-600 rounded-full flex items-center justify-center mx-auto mb-3 text-xl\"><i class=\"fa-solid fa-shield-halved\"><\/i><\/div>\n                                <h4 class=\"font-bold text-sm mb-1\">Int\u00e9grit\u00e9<\/h4>\n                                <p class=\"text-xs text-gray-600\">Doit \u00eatre \u00e9tanche, avoir une stabilit\u00e9 m\u00e9canique et r\u00e9sister \u00e0 la temp\u00e9rature et \u00e0 la corrosion.<\/p>\n                            <\/div>\n                            <div class=\"bg-white p-4 rounded-lg shadow text-center border border-gray-100\">\n                                <div class=\"w-12 h-12 bg-blue-100 text-blue-600 rounded-full flex items-center justify-center mx-auto mb-3 text-xl\"><i class=\"fa-solid fa-code-branch\"><\/i><\/div>\n                                <h4 class=\"font-bold text-sm mb-1\">D\u00e9voiements<\/h4>\n                                <p class=\"text-xs text-gray-600\">Maximum <strong>2 d\u00e9voiements<\/strong>. L'angle ne doit pas exc\u00e9der <strong>45\u00b0<\/strong> par rapport \u00e0 la verticale.<\/p>\n                            <\/div>\n                            <div class=\"bg-white p-4 rounded-lg shadow text-center border border-gray-100\">\n                                <div class=\"w-12 h-12 bg-blue-100 text-blue-600 rounded-full flex items-center justify-center mx-auto mb-3 text-xl\"><i class=\"fa-solid fa-trash-can\"><\/i><\/div>\n                                <h4 class=\"font-bold text-sm mb-1\">Base du conduit<\/h4>\n                                <p class=\"text-xs text-gray-600\">Pr\u00e9sence obligatoire d'un <strong>t\u00e9 de raccordement<\/strong> ou d'un <strong>pot \u00e0 suie<\/strong> \u00e0 la base du conduit individuel.<\/p>\n                            <\/div>\n                        <\/div>\n\n                        <!-- D\u00e9bouch\u00e9 Toiture -->\n                        <div class=\"bg-slate-800 text-white rounded-xl shadow p-6 relative overflow-hidden\">\n                            <i class=\"fa-solid fa-house-chimney absolute right-4 bottom-4 text-6xl text-slate-700 opacity-50\"><\/i>\n                            <h4 class=\"font-bold text-lg mb-4 text-yellow-400\"><i class=\"fa-solid fa-cloud-arrow-up mr-2\"><\/i>R\u00e8gles du D\u00e9bouch\u00e9 en Toiture<\/h4>\n                            <div class=\"grid md:grid-cols-2 gap-4\">\n                                <div>\n                                    <h5 class=\"font-bold text-sm text-gray-300 mb-2\">Toiture Classique (en pente)<\/h5>\n                                    <p class=\"text-sm\">Le sommet du conduit doit d\u00e9passer d'au moins <strong>40 cm<\/strong> le fa\u00eetage du toit, ainsi que toute partie de construction ou arbre distant de moins de <strong>8 m\u00e8tres<\/strong>.<\/p>\n                                <\/div>\n                                <div>\n                                    <h5 class=\"font-bold text-sm text-gray-300 mb-2\">Toit Terrasse (pente < 15\u00b0)<\/h5>\n                                    <p class=\"text-sm\">Le sommet du conduit doit d\u00e9passer d'au moins <strong>1,20 m<\/strong> le point de sortie sur la terrasse, et d\u00e9passer de 40 cm tout acrot\u00e8re de plus de 20 cm de haut.<\/p>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <!-- Raccordement Multiple -->\n                        <div class=\"mt-6 bg-indigo-50 border border-indigo-200 p-5 rounded-xl shadow-sm\">\n                            <h4 class=\"font-bold text-indigo-800 mb-3\"><i class=\"fa-solid fa-network-wired mr-2\"><\/i>Raccordement Multiple (2 appareils)<\/h4>\n                            <p class=\"text-sm text-indigo-900 mb-3\">Le raccordement de deux appareils sur un <strong>m\u00eame conduit d'\u00e9vacuation individuel<\/strong> est soumis \u00e0 des r\u00e8gles tr\u00e8s strictes :<\/p>\n                            <ul class=\"space-y-2 text-sm text-indigo-800\">\n                                <li class=\"flex items-start\"><i class=\"fa-solid fa-caret-right mt-1 mr-2 text-indigo-500\"><\/i><div><strong>M\u00eame type :<\/strong> Les deux appareils doivent obligatoirement \u00eatre de m\u00eame type.<\/div><\/li>\n                                <li class=\"flex items-start\"><i class=\"fa-solid fa-caret-right mt-1 mr-2 text-indigo-500\"><\/i><div><strong>M\u00eame niveau :<\/strong> Ils doivent appartenir au m\u00eame logement et \u00eatre situ\u00e9s au <strong>m\u00eame \u00e9tage<\/strong>.<\/div><\/li>\n                                <li class=\"flex items-start\"><i class=\"fa-solid fa-caret-right mt-1 mr-2 text-indigo-500\"><\/i><div><strong>Locaux diff\u00e9rents :<\/strong> Si les appareils sont situ\u00e9s dans deux pi\u00e8ces diff\u00e9rentes, il doit y avoir une <strong>ouverture permanente suffisante<\/strong> entre ces deux locaux.<\/div><\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Conduits Collectifs (Shunt) -->\n                        <div class=\"mt-4 bg-white border border-gray-200 p-5 rounded-xl shadow-sm border-l-4 border-cyan-500\">\n                            <h4 class=\"font-bold text-gray-800 mb-3\"><i class=\"fa-solid fa-building mr-2 text-cyan-600\"><\/i>Conduits Collectifs (Type Shunt \/ Alsace)<\/h4>\n                            <p class=\"text-sm text-gray-700 mb-3\">Contrairement au conduit individuel, le conduit collectif rassemble les fum\u00e9es de plusieurs \u00e9tages.<\/p>\n                            <ul class=\"space-y-2 text-sm text-gray-800\">\n                                <li class=\"flex items-start\"><i class=\"fa-solid fa-arrow-turn-up mt-1 mr-2 text-cyan-500\"><\/i><div><strong>D\u00e9part individuel (Coupe-tirage) :<\/strong> L'appareil ne doit jamais \u00eatre raccord\u00e9 directement sur le collecteur principal. Il doit d'abord se raccorder sur un d\u00e9part individuel d'une hauteur d'au moins <strong>2 m\u00e8tres<\/strong>.<\/div><\/li>\n                                <li class=\"flex items-start\"><i class=\"fa-solid fa-ban mt-1 mr-2 text-red-500\"><\/i><div><strong>Interdiction :<\/strong> Un seul appareil gaz est autoris\u00e9 par d\u00e9part individuel.<\/div><\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Sp\u00e9cificit\u00e9 Appareils en Pression -->\n                    <div class=\"mt-8\">\n                        <h3 class=\"font-bold text-xl text-blue-800 mb-4 border-b-2 border-blue-200 pb-2\">\n                            <i class=\"fa-solid fa-compress text-blue-600 mr-2\"><\/i>3. Appareils en Surpression (Type B22p \/ B23p)\n                        <\/h3>\n                        <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-red-500 flex flex-col md:flex-row items-start gap-6\">\n                            <div class=\"flex-1\">\n                                <h4 class=\"font-bold text-red-800 mb-2\">Le Conduit Enveloppe Obligatoire<\/h4>\n                                <p class=\"text-sm text-gray-700 mb-4\">\n                                    Les chaudi\u00e8res de type <strong>B22p<\/strong> ou <strong>B23p<\/strong> (souvent \u00e0 condensation) expulsent les fum\u00e9es <strong>sous pression<\/strong> gr\u00e2ce \u00e0 un ventilateur int\u00e9gr\u00e9, tout en pr\u00e9levant l'air comburant dans le local.\n                                <\/p>\n                                <ul class=\"text-sm text-red-900 space-y-3 bg-red-50 p-4 rounded border border-red-100 font-medium\">\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-shield-halved mt-0.5 mr-3 text-red-600 text-lg\"><\/i> \n                                        <div>Le conduit d'\u00e9vacuation des fum\u00e9es doit obligatoirement \u00eatre plac\u00e9 \u00e0 l'int\u00e9rieur d'un <strong>conduit enveloppe<\/strong> (ou gaine ma\u00e7onn\u00e9e\/m\u00e9tallique) sur toute sa travers\u00e9e \u00e0 l'int\u00e9rieur du b\u00e2timent.<\/div>\n                                    <\/li>\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-wind mt-0.5 mr-3 text-red-600 text-lg\"><\/i> \n                                        <div>L'espace annulaire (entre le conduit de fum\u00e9e et le conduit enveloppe) doit obligatoirement \u00eatre <strong>ventil\u00e9<\/strong> en prenant son air dans le local o\u00f9 se trouve l'appareil. Cela permet d'\u00e9vacuer vers l'ext\u00e9rieur (toiture) toute fuite \u00e9ventuelle de gaz br\u00fbl\u00e9s en surpression, sans contaminer le logement.<\/div>\n                                    <\/li>\n                                <\/ul>\n                            <\/div>\n                            <div class=\"hidden md:flex flex-col items-center justify-center bg-gray-50 p-6 rounded-lg border border-gray-200 min-w-[150px]\">\n                                <i class=\"fa-solid fa-fan text-4xl text-blue-500 mb-3 animate-pulse\"><\/i>\n                                <span class=\"text-xs font-bold text-gray-600 uppercase text-center\">Extraction<br>M\u00e9canique<br>(Pression)<\/span>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderVmcGaz(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-5xl mx-auto pb-20\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Sp\u00e9cificit\u00e9s VMC Gaz (Type B)<\/h2>\n                    \n                    <div class=\"bg-blue-50 border border-blue-200 rounded-xl p-5 mb-8\">\n                        <p class=\"text-sm text-blue-900\">\n                            La <strong>VMC Gaz<\/strong> (Ventilation M\u00e9canique Contr\u00f4l\u00e9e) est un syst\u00e8me collectif d'extraction m\u00e9canique qui \u00e9vacue conjointement l'air vici\u00e9 des logements et les produits de combustion des chaudi\u00e8res raccord\u00e9es (Type B). Ce syst\u00e8me impose des r\u00e8gles de s\u00e9curit\u00e9 drastiques.\n                        <\/p>\n                    <\/div>\n\n                    <div class=\"grid md:grid-cols-2 gap-6 mb-8\">\n                        <!-- Le DSC -->\n                        <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-red-600\">\n                            <h3 class=\"font-bold text-xl mb-4 text-red-800\"><i class=\"fa-solid fa-shield-halved mr-2 text-red-600\"><\/i>Le DSC (S\u00e9curit\u00e9 Collective)<\/h3>\n                            <p class=\"text-sm text-gray-700 mb-4\">\n                                Le <strong>Dispositif de S\u00e9curit\u00e9 Collective<\/strong> est l'organe vital de la VMC Gaz. Si l'extracteur m\u00e9canique en toiture s'arr\u00eate ou devient d\u00e9faillant, le DSC coupe automatiquement l'alimentation de toutes les chaudi\u00e8res pour \u00e9viter le refoulement mortel des gaz br\u00fbl\u00e9s.\n                            <\/p>\n                            <ul class=\"text-sm text-red-900 space-y-2 bg-red-50 p-3 rounded border border-red-100\">\n                                <li><i class=\"fa-solid fa-triangle-exclamation mr-2 text-red-600\"><\/i> L'absence ou le dysfonctionnement du relais DSC est un <strong>DGI<\/strong> (Danger Grave et Imm\u00e9diat).<\/li>\n                                <li><i class=\"fa-solid fa-plug-circle-xmark mr-2 text-red-600\"><\/i> L'appareil gaz doit imp\u00e9rativement \u00eatre raccord\u00e9 sur le bo\u00eetier DSC. Il est <strong>interdit de le brancher sur une prise \u00e9lectrique standard<\/strong>.<\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Appareil et Bouche -->\n                        <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-blue-500 flex flex-col justify-between\">\n                            <div>\n                                <h3 class=\"font-bold text-xl mb-4 text-blue-800\"><i class=\"fa-solid fa-fire-burner mr-2 text-blue-500\"><\/i>Appareil & Bouche d'extraction<\/h3>\n                                <ul class=\"text-sm text-gray-700 space-y-3\">\n                                    <li><i class=\"fa-solid fa-check text-green-500 mr-2\"><\/i> L'appareil doit \u00eatre <strong>sp\u00e9cifique VMC Gaz<\/strong> (G\u00e9n\u00e9ralement de type B11).<\/li>\n                                    <li><i class=\"fa-solid fa-check text-green-500 mr-2\"><\/i> Le raccordement se fait obligatoirement sur une <strong>bouche d'extraction VMC Gaz (BAZ)<\/strong>.<\/li>\n                                    <li><i class=\"fa-solid fa-check text-green-500 mr-2\"><\/i> Le diam\u00e8tre du conduit de raccordement doit correspondre exactement au diam\u00e8tre de la bouche d'extraction.<\/li>\n                                <\/ul>\n                            <\/div>\n                            <div class=\"mt-4 p-3 bg-gray-50 border border-gray-200 rounded text-xs text-gray-600\">\n                                <i class=\"fa-solid fa-wind mr-1\"><\/i> <strong>Rappel A\u00e9ration :<\/strong> Le dimensionnement de l'entr\u00e9e d'air indirecte (Arr\u00eat\u00e9 1982) se calcule avec la formule : <strong>Puissance Utile (kW) x 4,3 = m\u00b3\/h<\/strong>.\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderEvacuation(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-6xl mx-auto pb-20\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">\u00c9vacuation - Appareils \u00c9tanches (Type C)<\/h2>\n                    \n                    <!-- Distance Visualizer -->\n                    <div class=\"bg-white p-6 rounded-xl shadow mb-8 relative overflow-hidden\">\n                        <h3 class=\"font-bold text-lg mb-4 border-b pb-2\">Distances de S\u00e9curit\u00e9 (Terminal Ventouse Horizontal C1)<\/h3>\n                        \n                        <!-- Visualization Graphic (CSS) -->\n                        <div class=\"relative h-64 bg-gray-100 border rounded-lg p-4 flex items-center justify-center\">\n                            <!-- Wall -->\n                            <div class=\"absolute h-full w-1 bg-gray-400 left-1\/2\"><\/div>\n                            \n                            <!-- Window -->\n                            <div class=\"absolute w-24 h-32 bg-blue-200 border-2 border-blue-400 top-4 left-1\/2 ml-8 flex items-center justify-center text-xs text-blue-800 font-bold\">\n                                Ouvrant\n                            <\/div>\n\n                            <!-- Ventouse Terminal -->\n                            <div class=\"absolute w-8 h-8 bg-gray-800 rounded-full top-48 left-1\/2 ml-8 z-10 border-4 border-white shadow\"><\/div>\n                            <div class=\"absolute w-12 h-2 bg-gray-600 top-52 left-1\/2 -ml-4\"><\/div>\n\n                            <!-- Measurement Line -->\n                            <div class=\"absolute left-1\/2 ml-12 top-36 h-12 w-0 border-r-2 border-dashed border-red-500\"><\/div>\n                            <div class=\"absolute left-1\/2 ml-14 top-40 bg-white px-1 text-red-600 font-bold text-sm\">40 cm Min<\/div>\n                        <\/div>\n                        \n                        <div class=\"mt-4 grid grid-cols-2 md:grid-cols-4 gap-4 text-sm text-center\">\n                            <div class=\"bg-gray-50 p-2 rounded border border-gray-200\"><span class=\"block font-bold text-lg text-blue-600\">40 cm<\/span>vs Ouvrant<\/div>\n                            <div class=\"bg-gray-50 p-2 rounded border border-gray-200\"><span class=\"block font-bold text-lg text-green-600\">60 cm<\/span>vs Ventilation<\/div>\n                            <div class=\"bg-gray-50 p-2 rounded border border-gray-200\"><span class=\"block font-bold text-lg text-gray-700\">15 cm<\/span>Angle mur rentrant<\/div>\n                            <div class=\"bg-gray-50 p-2 rounded border border-gray-200\"><span class=\"block font-bold text-lg text-red-600\">2 m<\/span>Sol (Voie Publique)<\/div>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"grid md:grid-cols-2 gap-6 mb-8\">\n                        <!-- Cas sp\u00e9cifiques de d\u00e9bouch\u00e9s -->\n                        <div class=\"bg-white rounded-xl shadow p-6 border-t-4 border-blue-500\">\n                            <h3 class=\"font-bold text-lg mb-4 text-blue-800\"><i class=\"fa-solid fa-map-pin mr-2\"><\/i>Implantations Sp\u00e9cifiques<\/h3>\n                            <ul class=\"space-y-4 text-sm text-gray-700\">\n                                <li class=\"flex items-start\">\n                                    <i class=\"fa-solid fa-road text-gray-500 mt-1 mr-3 text-lg\"><\/i>\n                                    <div>\n                                        <strong class=\"text-gray-900 block\">Voie Privative (Hauteur < 1,80m)<\/strong>\n                                        Si le terminal d\u00e9bouche \u00e0 moins de 1,80 m du sol sur une zone privative (jardin, all\u00e9e), un <strong>dispositif de protection m\u00e9canique<\/strong> (grille, d\u00e9flecteur) est obligatoire. <em>Rappel: Sur voie publique, c'est 2m minimum absolu.<\/em>\n                                    <\/div>\n                                <\/li>\n                                <li class=\"flex items-start\">\n                                    <i class=\"fa-solid fa-border-all text-gray-500 mt-1 mr-3 text-lg\"><\/i>\n                                    <div>\n                                        <strong class=\"text-gray-900 block\">Courettes ferm\u00e9es<\/strong>\n                                        La section au sol de la courette doit \u00eatre d'au moins <strong>18 m\u00b2<\/strong>. Le nombre de terminaux autoris\u00e9s \u00e0 \u00e9vacuer dans cette courette est strictement r\u00e9glement\u00e9 et d\u00e9pend directement de la surface totale de la courette et du nombre d'\u00e9tages.\n                                    <\/div>\n                                <\/li>\n                                <li class=\"flex items-start\">\n                                    <i class=\"fa-solid fa-stairs text-gray-500 mt-1 mr-3 text-lg\"><\/i>\n                                    <div>\n                                        <strong class=\"text-gray-900 block\">Cour anglaise \/ Saut de loup<\/strong>\n                                        Strictement interdit en neuf. <strong>Tol\u00e9r\u00e9 uniquement<\/strong> en remplacement d'un appareil existant.\n                                    <\/div>\n                                <\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Travers\u00e9es et Coffrages -->\n                        <div class=\"bg-white rounded-xl shadow p-6 border-t-4 border-orange-500\">\n                            <h3 class=\"font-bold text-lg mb-4 text-orange-800\"><i class=\"fa-solid fa-boxes-stacked mr-2\"><\/i>Travers\u00e9es de Pi\u00e8ces (Coffrage)<\/h3>\n                            <div class=\"space-y-4\">\n                                <div class=\"bg-orange-50 p-4 rounded border border-orange-200 text-sm\">\n                                    <strong class=\"text-orange-900 block mb-1\"><i class=\"fa-solid fa-arrow-right mr-1\"><\/i>Conduit Horizontal (Type C1)<\/strong>\n                                    S'il traverse une autre pi\u00e8ce du logement, un <strong>coffrage est obligatoire<\/strong>.\n                                    <hr class=\"border-orange-200 my-2\">\n                                    <span class=\"text-xs text-orange-800 block\"><em>Exceptions (pas de coffrage) : Travers\u00e9e de combles non am\u00e9nag\u00e9s OU si le conduit est situ\u00e9 \u00e0 plus de 1,80m de hauteur. Il est interdit de traverser d'autres logements.<\/em><\/span>\n                                <\/div>\n                                <div class=\"bg-gray-50 p-4 rounded border border-gray-200 text-sm\">\n                                    <strong class=\"text-gray-900 block mb-1\"><i class=\"fa-solid fa-arrow-up mr-1\"><\/i>Conduit Vertical (Type C3)<\/strong>\n                                    S'il traverse d'autres logements ou des parties communes, il doit obligatoirement \u00eatre prot\u00e9g\u00e9 par une <strong>gaine coupe-feu 1\/2 heure<\/strong> (mat\u00e9riaux incombustibles M0 ou A2-s1,d0).\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Toiture & Surplombs Grid -->\n                    <div class=\"grid md:grid-cols-2 gap-6 mb-8\">\n                        <!-- Toiture specific rules -->\n                        <div class=\"bg-slate-800 text-white rounded-xl shadow p-6 h-full flex flex-col\">\n                            <h3 class=\"font-bold text-lg mb-4 text-yellow-400\"><i class=\"fa-solid fa-cloud mr-2\"><\/i>R\u00e8gles Toiture (Terminal C3)<\/h3>\n                            <ul class=\"space-y-3 text-sm text-gray-200 flex-1\">\n                                <li class=\"flex items-center bg-slate-700 p-2 rounded border border-slate-600\"><span class=\"w-20 font-bold text-white\">30 cm<\/span> Distance min au-dessus de la toiture.<\/li>\n                                <li class=\"flex items-center bg-slate-700 p-2 rounded border border-slate-600\"><span class=\"w-20 font-bold text-white\">40 cm<\/span> Distance arri\u00e8re\/lat\u00e9rale min d'un chien-assis.<\/li>\n                                <li class=\"flex items-center bg-slate-700 p-2 rounded border border-slate-600\"><span class=\"w-20 font-bold text-white\">60 cm<\/span> Distance min entre deux terminaux (sinon m\u00eame hauteur obligatoire).<\/li>\n                                <li class=\"flex items-start bg-slate-700 p-3 rounded border-l-4 border-red-500 shadow-inner mt-2\">\n                                    <span class=\"w-20 font-bold text-red-400 mt-0.5 text-lg\">2 m<\/span> \n                                    <span class=\"text-gray-300\">Distance min exig\u00e9e si un <strong>ouvrant ou une amen\u00e9e d'air<\/strong> se trouve au-dessus du terminal sur le m\u00eame pan de toit.<\/span>\n                                <\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Surplombs -->\n                        <div class=\"bg-white rounded-xl shadow p-6 h-full border border-gray-100 flex flex-col\">\n                            <h3 class=\"font-bold text-lg mb-3 text-gray-800\"><i class=\"fa-solid fa-building mr-2\"><\/i>R\u00e8gles des Surplombs (Balcons)<\/h3>\n                            <p class=\"text-sm text-gray-600 mb-4\">Le terminal doit d\u00e9boucher obligatoirement au \"nez\" du balcon (ou surplomb) si l'une de ces conditions est remplie :<\/p>\n                            <div class=\"grid grid-cols-1 gap-3 flex-1\">\n                                <div class=\"bg-red-50 p-3 rounded border border-red-100 flex items-center\">\n                                    <i class=\"fa-solid fa-arrows-left-right text-red-500 text-xl w-12 text-center\"><\/i>\n                                    <p class=\"text-sm font-medium text-gray-800\">Largeur du balcon <strong>> 2 m\u00e8tres<\/strong><\/p>\n                                <\/div>\n                                <div class=\"bg-red-50 p-3 rounded border border-red-100 flex items-center\">\n                                    <i class=\"fa-solid fa-arrows-up-down text-red-500 text-xl w-12 text-center\"><\/i>\n                                    <p class=\"text-sm font-medium text-gray-800\">Distance sous plafond <strong>< 30 cm<\/strong><\/p>\n                                <\/div>\n                                <div class=\"bg-red-50 p-3 rounded border border-red-100 flex items-center\">\n                                    <i class=\"fa-solid fa-ruler-vertical text-red-500 text-xl w-12 text-center\"><\/i>\n                                    <p class=\"text-sm font-medium text-gray-800\">Retomb\u00e9e (acrot\u00e8re invers\u00e9) <strong>> 20 cm<\/strong><\/p>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function render3ce(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-5xl mx-auto pb-20\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Conduits Collectifs : 3CE \/ 3CEp (Type C4)<\/h2>\n                    \n                    <div class=\"bg-blue-50 border border-blue-200 rounded-xl p-5 mb-8\">\n                        <p class=\"text-sm text-blue-900\">\n                            Le syst\u00e8me <strong>3CE<\/strong> (Conduit Collectif pour Chaudi\u00e8res \u00c9tanches) ou <strong>3CEp<\/strong> (sous pression) permet de raccorder plusieurs appareils \u00e0 gaz \u00e0 circuit de combustion \u00e9tanche (ventouse) sur un seul et m\u00eame conduit collectif vertical. Les appareils compatibles sont de type <strong>C4<\/strong> (ou C8\/C9 dans certaines r\u00e9novations).\n                        <\/p>\n                    <\/div>\n\n                    <div class=\"grid md:grid-cols-2 gap-6 mb-8\">\n                        <!-- Principe de Fonctionnement -->\n                        <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-cyan-500\">\n                            <h3 class=\"font-bold text-xl mb-4 text-cyan-800\"><i class=\"fa-solid fa-arrows-spin mr-2 text-cyan-500\"><\/i>Principe & Avantages<\/h3>\n                            <p class=\"text-sm text-gray-700 mb-4\">\n                                Le conduit collectif assure une double fonction via un syst\u00e8me concentrique (ou conduits jumel\u00e9s) :\n                            <\/p>\n                            <ul class=\"text-sm text-gray-700 space-y-3 mb-4\">\n                                <li><i class=\"fa-solid fa-arrow-down text-blue-500 mr-2\"><\/i> L'amen\u00e9e d'air frais (comburant) depuis la toiture vers les chaudi\u00e8res.<\/li>\n                                <li><i class=\"fa-solid fa-arrow-up text-gray-500 mr-2\"><\/i> L'\u00e9vacuation des fum\u00e9es vers l'ext\u00e9rieur.<\/li>\n                            <\/ul>\n                            <div class=\"bg-green-50 text-green-800 p-3 rounded border border-green-200 text-sm font-medium\">\n                                <i class=\"fa-solid fa-circle-check mr-1 text-green-600\"><\/i> <strong>Atout majeur :<\/strong> Puisque le circuit est 100% \u00e9tanche, il n'y a <strong>aucune exigence de ventilation ou d'ouvrant<\/strong> pour le local o\u00f9 se situe la chaudi\u00e8re.\n                            <\/div>\n                        <\/div>\n\n                        <!-- Les 2 Phases de Validation -->\n                        <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-yellow-500\">\n                            <h3 class=\"font-bold text-xl mb-4 text-yellow-800\"><i class=\"fa-solid fa-file-signature mr-2 text-yellow-500\"><\/i>R\u00e9glementation : Les Formulaires<\/h3>\n                            <p class=\"text-sm text-gray-700 mb-4\">\n                                L'installation d'une chaudi\u00e8re sur un 3CEp implique une tra\u00e7abilit\u00e9 rigoureuse pour garantir l'\u00e9tanch\u00e9it\u00e9 collective. L'installateur PG doit s'assurer de la pr\u00e9sence des fiches r\u00e9glementaires :\n                            <\/p>\n                            <div class=\"space-y-3\">\n                                <div class=\"p-3 border border-gray-200 rounded relative overflow-hidden bg-gray-50\">\n                                    <div class=\"absolute left-0 top-0 bottom-0 w-1 bg-yellow-400\"><\/div>\n                                    <h4 class=\"font-bold text-sm text-gray-800\">Fiche de R\u00e9ception (Phase 1)<\/h4>\n                                    <p class=\"text-xs text-gray-600\">Remplie par l'entreprise qui a pos\u00e9 le conduit collectif. Elle atteste de l'\u00e9tanch\u00e9it\u00e9 globale du conduit \u00e0 vide.<\/p>\n                                <\/div>\n                                <div class=\"p-3 border border-gray-200 rounded relative overflow-hidden bg-gray-50\">\n                                    <div class=\"absolute left-0 top-0 bottom-0 w-1 bg-blue-500\"><\/div>\n                                    <h4 class=\"font-bold text-sm text-gray-800\">Fiche d'Intervention (Phase 2)<\/h4>\n                                    <p class=\"text-xs text-gray-600\">Remplie par le chauffagiste. Elle atteste de la bonne compatibilit\u00e9 de la chaudi\u00e8re avec le conduit et du bon raccordement de la liaison.<\/p>\n                                <\/div>\n                            <\/div>\n                            <p class=\"text-xs text-red-600 font-bold mt-3\"><i class=\"fa-solid fa-triangle-exclamation mr-1\"><\/i> Point de contr\u00f4le Visa Qualit\u00e9 : L'absence de ces formulaires entra\u00eene une anomalie (A2).<\/p>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Sp\u00e9cificit\u00e9s 3CEp -->\n                    <div class=\"bg-slate-800 text-white rounded-xl shadow p-6 relative overflow-hidden\">\n                        <i class=\"fa-solid fa-compress absolute right-4 bottom-4 text-6xl text-slate-700 opacity-50\"><\/i>\n                        <h4 class=\"font-bold text-lg mb-3 text-cyan-400\"><i class=\"fa-solid fa-gauge mr-2\"><\/i>Le 3CE \"p\" (Pression)<\/h4>\n                        <p class=\"text-sm mb-3 text-gray-300\">\n                            Avec l'av\u00e8nement des chaudi\u00e8res \u00e0 Haute Performance \u00c9nerg\u00e9tique (Condensation), les fum\u00e9es sont plus froides et pouss\u00e9es par un ventilateur. Le conduit collectif se retrouve alors <strong>sous pression positive (p)<\/strong>.\n                        <\/p>\n                        <ul class=\"text-sm space-y-2 text-gray-200\">\n                            <li><i class=\"fa-solid fa-caret-right text-yellow-400 mr-2\"><\/i> L'\u00e9tanch\u00e9it\u00e9 des raccordements est absolument vitale pour ne pas repousser des fum\u00e9es dans les chaudi\u00e8res des voisins \u00e0 l'arr\u00eat.<\/li>\n                            <li><i class=\"fa-solid fa-caret-right text-yellow-400 mr-2\"><\/i> Une chaudi\u00e8re 3CEp poss\u00e8de un <strong>clapet anti-retour<\/strong> (int\u00e9gr\u00e9 ou ajout\u00e9) obligatoire.<\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderCenr(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-5xl mx-auto pb-20\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Chauffe-Eau Non Raccord\u00e9 (CENR)<\/h2>\n                    \n                    <div class=\"bg-red-50 border-l-4 border-red-600 p-5 mb-8 rounded shadow-sm\">\n                        <h3 class=\"font-bold text-red-800 flex items-center text-lg mb-2\">\n                            <i class=\"fa-solid fa-ban mr-2\"><\/i> R\u00e8gle d'Or : Interdit en Neuf\n                        <\/h3>\n                        <p class=\"text-sm text-red-900\">\n                            L'installation d'un CENR neuf est <strong>strictement interdite<\/strong>. Un CENR ne peut \u00eatre install\u00e9 qu'en <strong>remplacement direct d'un CENR existant<\/strong>. Tout nouvel appareil de production d'eau chaude doit \u00eatre raccord\u00e9 (Type B) ou \u00e9tanche (Type C).\n                        <\/p>\n                    <\/div>\n\n                    <div class=\"grid md:grid-cols-2 gap-6 mb-8\">\n                        <!-- Restrictions d'usage -->\n                        <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-orange-500\">\n                            <h3 class=\"font-bold text-xl mb-4 text-orange-800\"><i class=\"fa-solid fa-faucet-drip mr-2 text-orange-500\"><\/i>Limites d'Alimentation<\/h3>\n                            <p class=\"text-sm text-gray-700 mb-4\">Pour limiter la dur\u00e9e de puisage (et donc le rejet de monoxyde de carbone dans la pi\u00e8ce), le CENR ne doit absolument pas alimenter :<\/p>\n                            <ul class=\"text-sm text-red-800 space-y-3 font-medium bg-red-50 p-4 rounded border border-red-100\">\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-shower text-red-600 mr-3 text-lg w-6 text-center\"><\/i> <strong>Une douche ou une baignoire<\/strong> (Interdiction formelle)<\/li>\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-sink text-red-600 mr-3 text-lg w-6 text-center\"><\/i> <strong>Plus de 3 postes de puisage<\/strong> au total<\/li>\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-house-chimney-crack text-red-600 mr-3 text-lg w-6 text-center\"><\/i> Des postes r\u00e9partis dans <strong>plus de 2 pi\u00e8ces<\/strong><\/li>\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-fill-drip text-red-600 mr-3 text-lg w-6 text-center\"><\/i> Un r\u00e9cipient de <strong>plus de 50 litres<\/strong><\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Pi\u00e8ce et Implantation -->\n                        <div class=\"bg-white p-6 rounded-xl shadow-md border-t-4 border-blue-500 flex flex-col justify-between\">\n                            <div>\n                                <h3 class=\"font-bold text-xl mb-4 text-blue-800\"><i class=\"fa-solid fa-cube mr-2 text-blue-500\"><\/i>Volume, Ouvrant et A\u00e9ration<\/h3>\n                                <ul class=\"space-y-3 text-sm text-gray-700\">\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-expand mt-1 mr-2 text-blue-600\"><\/i>\n                                        <div><strong>Volume minimal :<\/strong> Le local doit avoir un volume d'au moins <strong>15 m\u00b3<\/strong>.<\/div>\n                                    <\/li>\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-window-maximize mt-1 mr-2 text-blue-600\"><\/i>\n                                        <div><strong>Ouvrant :<\/strong> Le local doit poss\u00e9der un ouvrant direct sur l'ext\u00e9rieur d'au moins <strong>0,40 m\u00b2<\/strong>.<\/div>\n                                    <\/li>\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-wind mt-1 mr-2 text-blue-600\"><\/i>\n                                        <div><strong>Ventilation :<\/strong> Pr\u00e9sence obligatoire d'une <strong>amen\u00e9e d'air<\/strong> ET d'une <strong>sortie d'air<\/strong>.<\/div>\n                                    <\/li>\n                                    <li class=\"flex items-start\">\n                                        <i class=\"fa-solid fa-arrow-up-from-bracket mt-1 mr-2 text-blue-600\"><\/i>\n                                        <div><strong>Type de sortie :<\/strong> La sortie d'air doit \u00eatre <strong>directe<\/strong> (travers\u00e9e de mur) ou par <strong>conduit vertical<\/strong>.<\/div>\n                                    <\/li>\n                                <\/ul>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- S\u00e9curit\u00e9s et Contr\u00f4les -->\n                    <h3 class=\"font-bold text-xl text-blue-800 mb-4 border-b-2 border-blue-200 pb-2\">\n                        <i class=\"fa-solid fa-shield-halved mr-2\"><\/i>S\u00e9curit\u00e9s Obligatoires & Contr\u00f4les\n                    <\/h3>\n                    <div class=\"grid md:grid-cols-3 gap-4\">\n                        <div class=\"bg-white p-4 rounded-lg shadow border border-gray-100 text-center\">\n                            <div class=\"w-12 h-12 bg-green-100 text-green-600 rounded-full flex items-center justify-center mx-auto mb-3 text-xl\"><i class=\"fa-solid fa-lock\"><\/i><\/div>\n                            <h4 class=\"font-bold text-sm mb-2 text-gray-800\">Triple S\u00e9curit\u00e9<\/h4>\n                            <p class=\"text-xs text-gray-600\">L'appareil doit \u00eatre \u00e0 triple s\u00e9curit\u00e9 (thermocouple, contr\u00f4leur d'atmosph\u00e8re et limiteur de temp\u00e9rature).<\/p>\n                        <\/div>\n                        <div class=\"bg-white p-4 rounded-lg shadow border border-gray-100 text-center\">\n                            <div class=\"w-12 h-12 bg-yellow-100 text-yellow-600 rounded-full flex items-center justify-center mx-auto mb-3 text-xl\"><i class=\"fa-solid fa-tag\"><\/i><\/div>\n                            <h4 class=\"font-bold text-sm mb-2 text-gray-800\">\u00c9tiquette<\/h4>\n                            <p class=\"text-xs text-gray-600\">L'appareil doit obligatoirement poss\u00e9der l'\u00e9tiquette visible listant les <strong>recommandations d'usage<\/strong>.<\/p>\n                        <\/div>\n                        <div class=\"bg-white p-4 rounded-lg shadow border border-red-200 text-center bg-red-50\">\n                            <div class=\"w-12 h-12 bg-red-100 text-red-600 rounded-full flex items-center justify-center mx-auto mb-3 text-xl\"><i class=\"fa-solid fa-cloud-meatball\"><\/i><\/div>\n                            <h4 class=\"font-bold text-sm mb-2 text-red-800\">Mesure du CO<\/h4>\n                            <p class=\"text-xs text-red-900\">Lors du contr\u00f4le en fonctionnement, la mesure du Monoxyde de Carbone (CO) ambiant doit \u00eatre <strong>\u2264 10 ppm<\/strong>. Au-del\u00e0, c'est un DGI.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function renderTests(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-5xl mx-auto pb-20\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Essais : \u00c9tanch\u00e9it\u00e9 et R\u00e9sistance M\u00e9canique<\/h2>\n                    \n                    <div class=\"bg-blue-50 border border-blue-200 rounded-xl p-5 mb-8\">\n                        <p class=\"text-sm text-blue-900 font-medium\">\n                            <i class=\"fa-solid fa-circle-exclamation mr-2 text-blue-600\"><\/i>\n                            Toute installation de gaz (neuve ou partie modifi\u00e9e) doit obligatoirement \u00eatre test\u00e9e <strong>avant sa mise en gaz et sa mise en service<\/strong>. Le type d'essai exig\u00e9 d\u00e9pend de l'ampleur des travaux et de la pression d'utilisation.\n                        <\/p>\n                    <\/div>\n\n                    <!-- La R\u00e8gle des 2 M\u00e8tres \/ 400 mbar -->\n                    <h3 class=\"font-bold text-xl text-blue-800 mb-4 border-b-2 border-blue-200 pb-2\">\n                        <i class=\"fa-solid fa-scale-unbalanced mr-2\"><\/i>Quel essai s'impose ?\n                    <\/h3>\n                    <div class=\"grid md:grid-cols-3 gap-6 mb-8\">\n                        \n                        <!-- Cas 1 : \u00c9tanch\u00e9it\u00e9 Apparente -->\n                        <div class=\"bg-white p-5 rounded-xl shadow-md border-t-4 border-green-500 relative overflow-hidden flex flex-col\">\n                            <h4 class=\"font-bold text-gray-800 mb-2 text-lg\">1. \u00c9tanch\u00e9it\u00e9 Apparente<\/h4>\n                            <p class=\"text-sm text-gray-600 mb-4\">V\u00e9rification locale (mille bulles, produit moussant, d\u00e9tecteur) sur les raccords modifi\u00e9s.<\/p>\n                            \n                            <ul class=\"space-y-2 text-sm text-gray-800 bg-green-50 p-3 rounded border border-green-100 font-medium mt-auto\">\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-ruler text-green-600 mr-2 w-5\"><\/i> Tuyauterie <strong>< 2 m\u00e8tres<\/strong><\/li>\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-compress text-green-600 mr-2 w-5\"><\/i> Pression <strong>\u2264 400 mbar<\/strong><\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Cas 2 : \u00c9tanch\u00e9it\u00e9 Manom\u00e9trique -->\n                        <div class=\"bg-white p-5 rounded-xl shadow-md border-t-4 border-blue-500 relative overflow-hidden flex flex-col\">\n                            <h4 class=\"font-bold text-gray-800 mb-2 text-lg\">2. \u00c9tanch\u00e9it\u00e9 au Manom\u00e8tre<\/h4>\n                            <p class=\"text-sm text-gray-600 mb-4\">Mise en pression de l'installation et contr\u00f4le de la chute de pression avec un appareil de mesure.<\/p>\n                            \n                            <ul class=\"space-y-2 text-sm text-gray-800 bg-blue-50 p-3 rounded border border-blue-100 font-medium mt-auto\">\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-ruler text-blue-600 mr-2 w-5\"><\/i> Tuyauterie <strong>> 2 m\u00e8tres<\/strong> (ou neuf)<\/li>\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-compress text-blue-600 mr-2 w-5\"><\/i> Pression <strong>\u2264 400 mbar<\/strong><\/li>\n                            <\/ul>\n                        <\/div>\n\n                        <!-- Cas 3 : R\u00e9sistance M\u00e9canique -->\n                        <div class=\"bg-white p-5 rounded-xl shadow-md border-t-4 border-red-500 relative overflow-hidden flex flex-col\">\n                            <h4 class=\"font-bold text-gray-800 mb-2 text-lg\">3. R\u00e9sistance M\u00e9canique<\/h4>\n                            <p class=\"text-sm text-gray-600 mb-4\">\u00c9preuve de solidit\u00e9 \u00e0 l'air ou azote (jamais au gaz) exig\u00e9e <strong>avant<\/strong> l'essai d'\u00e9tanch\u00e9it\u00e9.<\/p>\n                            \n                            <ul class=\"space-y-2 text-sm text-gray-800 bg-red-50 p-3 rounded border border-red-100 font-medium mt-auto\">\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-compress text-red-600 mr-2 w-5\"><\/i> Pression <strong>> 400 mbar<\/strong><\/li>\n                                <li class=\"flex items-center\"><i class=\"fa-solid fa-circle-info text-red-600 mr-2 w-5\"><\/i> Ex: R\u00e9seau GPL pr\u00e9-d\u00e9tente<\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Proc\u00e9dures -->\n                    <h3 class=\"font-bold text-xl text-blue-800 mb-4 border-b-2 border-blue-200 pb-2\">\n                        <i class=\"fa-solid fa-list-check mr-2\"><\/i>Protocoles de test\n                    <\/h3>\n                    <div class=\"grid md:grid-cols-2 gap-6 mb-8\">\n                        <div class=\"bg-white p-5 rounded-lg shadow border border-gray-200 flex flex-col\">\n                            <h4 class=\"font-bold text-blue-900 mb-2 flex items-center\"><i class=\"fa-solid fa-dumbbell mr-2 text-blue-600\"><\/i>Essai de R\u00e9sistance<\/h4>\n                            <p class=\"text-sm text-gray-600 mb-3\">V\u00e9rifie la solidit\u00e9 des assemblages face \u00e0 la pression.<\/p>\n                            <ul class=\"text-sm text-gray-700 space-y-2 list-disc list-inside mt-auto\">\n                                <li>R\u00e9alis\u00e9 \u00e0 l'air ou au gaz inerte. <strong>Jamais au gaz combustible.<\/strong><\/li>\n                                <li>Pression d'\u00e9preuve > pression de service.<\/li>\n                                <li>Appareils d\u00e9connect\u00e9s ou vannes ferm\u00e9es.<\/li>\n                            <\/ul>\n                        <\/div>\n                        \n                        <div class=\"bg-white p-5 rounded-lg shadow border border-gray-200 flex flex-col\">\n                            <h4 class=\"font-bold text-green-900 mb-2 flex items-center\"><i class=\"fa-solid fa-droplet-slash mr-2 text-green-600\"><\/i>Essai d'\u00c9tanch\u00e9it\u00e9<\/h4>\n                            <p class=\"text-sm text-gray-600 mb-3\">Garantit l'absence de fuites sur le r\u00e9seau.<\/p>\n                            <ul class=\"text-sm text-gray-700 space-y-2 list-disc list-inside mt-auto\">\n                                <li><strong>Manom\u00e8tre :<\/strong> Chute de pression rigoureusement nulle (apr\u00e8s stabilisation thermique).<\/li>\n                                <li><strong>Apparente :<\/strong> Application de produit moussant sur 100% des raccords cr\u00e9\u00e9s\/modifi\u00e9s.<\/li>\n                                <li>OCG, OCI, OCA ouverts et attentes bouchonn\u00e9es.<\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Sanction DGI -->\n                    <div class=\"bg-red-50 border border-red-300 p-5 rounded-xl flex items-start shadow-sm\">\n                        <div class=\"text-red-600 text-3xl mr-4 mt-1\"><i class=\"fa-solid fa-skull-crossbones\"><\/i><\/div>\n                        <div>\n                            <h4 class=\"font-bold text-red-800 text-lg\">Point de Contr\u00f4le Majeur (Fiche Visa Qualit\u00e9 - Pt 6.1)<\/h4>\n                            <p class=\"text-sm text-red-900 mt-1\">\n                                Toute fuite de gaz d\u00e9cel\u00e9e sur l'installation int\u00e9rieure lors du contr\u00f4le entra\u00eene une sanction imm\u00e9diate : <strong>DGI (Danger Grave et Imm\u00e9diat)<\/strong>. L'alimentation en gaz doit \u00eatre aussit\u00f4t interrompue jusqu'\u00e0 la r\u00e9paration de la fuite.\n                            <\/p>\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            `;\n        }\n\n        function renderCertificates(container) {\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-4xl mx-auto\">\n                    <h2 class=\"text-2xl font-bold text-blue-900 mb-6\">Certificats de Conformit\u00e9 (CC)<\/h2>\n                    \n                    <div class=\"bg-white p-6 rounded-xl shadow mb-8\">\n                        <h3 class=\"font-bold text-lg mb-4\">Assistant de Choix<\/h3>\n                        <div class=\"space-y-4\" id=\"certWizard\">\n                            <p class=\"text-gray-700 font-medium\">Quel type d'installation concerne vos travaux ?<\/p>\n                            <div class=\"grid grid-cols-1 gap-3\">\n                                <button onclick=\"showCertResult(1)\" class=\"p-3 border rounded hover:bg-blue-50 text-left transition\">\n                                    <strong>Installation Collective<\/strong> (Parties communes, entre OCG et OCI)\n                                <\/button>\n                                <button onclick=\"showCertResult(2)\" class=\"p-3 border rounded hover:bg-blue-50 text-left transition\">\n                                    <strong>Installation Int\u00e9rieure Logement<\/strong> (Aval OCI, remplacement chaudi\u00e8re)\n                                <\/button>\n                                <button onclick=\"showCertResult(3)\" class=\"p-3 border rounded hover:bg-blue-50 text-left transition\">\n                                    <strong>Chaufferie \/ SPE<\/strong> (Site de Production d'\u00c9nergie)\n                                <\/button>\n                            <\/div>\n                        <\/div>\n                        \n                        <div id=\"certResult\" class=\"hidden mt-6 p-4 rounded-lg text-center border-2\">\n                            <span class=\"text-sm text-gray-500 uppercase tracking-widest\">Vous devez \u00e9tablir un<\/span>\n                            <div class=\"text-3xl font-bold my-2\" id=\"certName\">Mod\u00e8le X<\/div>\n                            <p class=\"text-sm\" id=\"certDesc\"><\/p>\n                            <button onclick=\"resetCertWizard()\" class=\"mt-4 text-sm text-blue-600 underline\">Recommencer<\/button>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"bg-gray-100 p-6 rounded-xl\">\n                        <h3 class=\"font-bold text-gray-700 mb-3\">D\u00e9rogations (Pas de CC requis)<\/h3>\n                        <ul class=\"list-disc list-inside text-sm text-gray-600 space-y-2\">\n                            <li>Remplacement \u00e0 l'identique d'un appareil de cuisson.<\/li>\n                            <li>Remplacement de flexible cuisson.<\/li>\n                            <li>Installation appareil sur bouteille sans tuyauterie fixe.<\/li>\n                            <li>Travaux r\u00e9alis\u00e9s par le distributeur (r\u00e9seau).<\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function showCertResult(model) {\n            const resultDiv = document.getElementById('certResult');\n            const wizardDiv = document.getElementById('certWizard');\n            const nameEl = document.getElementById('certName');\n            const descEl = document.getElementById('certDesc');\n\n            wizardDiv.classList.add('hidden');\n            resultDiv.classList.remove('hidden');\n            resultDiv.className = \"mt-6 p-6 rounded-lg text-center border-2 fade-in \";\n\n            if(model === 1) {\n                nameEl.innerText = \"Mod\u00e8le 1\";\n                nameEl.className = \"text-3xl font-bold my-2 text-purple-600\";\n                descEl.innerText = \"Pour les installations collectives de gaz (parties communes).\";\n                resultDiv.classList.add('bg-purple-50', 'border-purple-200');\n            } else if (model === 2) {\n                nameEl.innerText = \"Mod\u00e8le 2\";\n                nameEl.className = \"text-3xl font-bold my-2 text-blue-600\";\n                descEl.innerText = \"Pour les installations int\u00e9rieures de logement (domaine PG).\";\n                resultDiv.classList.add('bg-blue-50', 'border-blue-200');\n            } else {\n                nameEl.innerText = \"Mod\u00e8le 3\";\n                nameEl.className = \"text-3xl font-bold my-2 text-orange-600\";\n                descEl.innerText = \"Pour les Sites de Production d'\u00c9nergie (SPE).\";\n                resultDiv.classList.add('bg-orange-50', 'border-orange-200');\n            }\n        }\n\n        function resetCertWizard() {\n            document.getElementById('certResult').classList.add('hidden');\n            document.getElementById('certWizard').classList.remove('hidden');\n        }\n\n        \/\/ Logic for dynamic anomaly display\n        window.checkAnomaly = function(input, itemId, part, level) {\n            const badge = document.getElementById('badge_' + part + '_' + itemId);\n            if (input.value === 'NC') {\n                if (level && badge) {\n                    badge.classList.remove('hidden');\n                }\n            } else {\n                if (badge) badge.classList.add('hidden');\n            }\n        };\n\n        function renderChecklist(container) {\n            \/\/ Fiche Visa Qualit\u00e9 Exhaustive (R\u00e9f: Document 07\/2025)\n            \/\/ Structure: ID | Texte | Anomalie Neuf | Anomalie Existant\n            const questions = [\n              { section: \"1. TUYAUTERIE FIXE\", items: [\n                {id:\"1.1\", text:\"Respect de l'utilisation des mat\u00e9riaux : cuivre, acier, PE (uniquement enterr\u00e9 \u00e0 l'ext\u00e9rieur), plomb (uniquement GN en existant), tuyaux onduleux pliables en acier inoxydable (PLT).\", n:\"A2\", e:\"A2\"},\n                {id:\"1.2\", text:\"Les assemblages sont r\u00e9alis\u00e9s par des raccords m\u00e9caniques manifestement autoris\u00e9s.\", n:\"A2\", e:\"A1\"},\n                {id:\"1.3\", text:\"Absence d'assemblage en brasure tendre sur une installation GPL en aval du d\u00e9tendeur et en amont des RDDS ou dans les parties communes ou dans les gaines d'un immeuble collectif ou en alv\u00e9oles techniques gaz.\", n:\"A1\", e:\"\"},\n                {id:\"1.4\", text:\"Absence de raccords m\u00e9caniques en vide sanitaire.\", n:\"A2\", e:\"A2\"},\n                {id:\"1.5\", text:\"Absence de filasse ou de ruban d'\u00e9tanch\u00e9it\u00e9 de type PTFE pour l'\u00e9tanch\u00e9it\u00e9 des raccords m\u00e9caniques.\", n:\"A2\", e:\"A1\"},\n                {id:\"1.6\", text:\"Absence de tuyauterie pinc\u00e9e et bras\u00e9e.\", n:\"A1\", e:\"\"},\n                {id:\"1.7\", text:\"Une tuyauterie en attente est obtur\u00e9e par un bouchon viss\u00e9, soud\u00e9 ou \u00e0 sertir.\", n:\"A1\", e:\"\"},\n                {id:\"1.8\", text:\"Absence de tubes cuivres assembl\u00e9s par piquage direct.\", n:\"A2\", e:\"\"},\n                {id:\"1.9\", text:\"Les tubes cuivre sont assembl\u00e9s par brasage avec des raccords du commerce (t\u00e9, manchon, r\u00e9duction, bouchon). Assemblage m\u00e2le et femelle respect\u00e9s.\", n:\"A1\", e:\"\"},\n                {id:\"1.10\", text:\"Une tuyauterie passant sous le b\u00e2timent individuel est en cuivre ou en PLT.\", n:\"A2\", e:\"A2\"},\n                {id:\"1.11\", text:\"Absence de brasage ou de collage pour l'assemblage de raccords \u00e0 sertir.\", n:\"A2\", e:\"A1\"},\n                {id:\"1.12\", text:\"Les assemblages d\u00e9clar\u00e9s en brasure tendre (\u00e9tain) le sont uniquement \u00e0 l'int\u00e9rieur des logements o\u00f9 la pression est de 50 mbar maximum.\", n:\"A1\", e:\"\"},\n                {id:\"1.13\", text:\"La tuyauterie en PLT est marqu\u00e9e d'un logo d'une marque reconnue (ATG PLT).\", n:\"A2\", e:\"A2\"},\n                {id:\"1.14\", text:\"En coffret pour les logements individuels, pr\u00e9sence d'une crosse compteur avant un d\u00e9part en PLT.\", n:\"A1\", e:\"A1\"},\n                {id:\"1.15\", text:\"La tuyauterie en PLT poss\u00e8de un collier de fixation \u00e0 proximit\u00e9 du compteur dans une gaine en batiment collectif.\", n:\"A1\", e:\"A1\"},\n                {id:\"1.16\", text:\"Absence de soudure ou brasure pour l'assemblage des \u00e9l\u00e9ments constituant de la tuyauterie en kit PLT.\", n:\"A2\", e:\"A1\"},\n                {id:\"1.17\", text:\"La tuyauterie PLT est soumise \u00e0 une pression adapt\u00e9e.\", n:\"A2\", e:\"A2\"},\n                {id:\"1.18\", text:\"La tuyauterie en PE ne p\u00e9n\u00e8tre pas \u00e0 l'int\u00e9rieur du batiment ou ne passe pas sous le b\u00e2timent.\", n:\"A2\", e:\"A2\"},\n                {id:\"1.19\", text:\"La tuyauterie en PE est prot\u00e9g\u00e9e dans la remont\u00e9e contre les chocs et la lumi\u00e8re.\", n:\"A2\", e:\"A2\"},\n                {id:\"1.20\", text:\"En immeuble collectif, la pression d'utilisation est inf\u00e9rieure ou \u00e9gale \u00e0 50 mbar.\", n:\"A2\", e:\"A2\"},\n                {id:\"1.21\", text:\"Absence de canalisation individuelle en parc de stationnement couvert.\", n:\"A2\", e:\"A1\"},\n                {id:\"1.22\", text:\"Les r\u00e8gles d'installation d'une canalisation de liaison qui traverse un autre logement ne sont pas respect\u00e9es.\", n:\"A2\", e:\"A2\"},\n                {id:\"1.23\", text:\"La canalisation alimentant un appareil de remplissage de v\u00e9hicule et traversant un parc de stationnement couvert respectent les conditions de pose.\", n:\"A2\", e:\"A1\"},\n                {id:\"1.24\", text:\"L'espace annulaire \u00e0 la p\u00e9n\u00e9tration dans le logement est obtur\u00e9.\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"2. ORGANE DE COUPURE\", items: [\n                {id:\"2.1\", text:\"Si un organe de coupure suppl\u00e9mentaire est n\u00e9cessaire, il est adapt\u00e9, accessible et manoeuvrable.\", n:\"A1\", e:\"A1\"},\n                {id:\"2.2\", text:\"Tout organe de coupure et accessoire de tuyauterie est certifi\u00e9 NF.\", n:\"A2\", e:\"A1\"},\n                {id:\"2.3\", text:\"Pr\u00e9sence pour chaque appareil en place d'un organe de coupure adapt\u00e9, accessible, manoeuvrable et situ\u00e9 dans le m\u00eame local.\", n:\"A2\", e:\"A1\"},\n                {id:\"2.4\", text:\"Tous les organes de coupure en attente sont bouchonn\u00e9s.\", n:\"A2\", e:\"A2\"},\n                {id:\"2.5\", text:\"En l'absence d'appareil, l'Organe de Coupure d'Appareil est obtur\u00e9 par un bouchon viss\u00e9 (ventilations n\u00e9anmoins obligatoires dans le local).\", n:\"A2\", e:\"A2\"},\n                {id:\"2.6\", text:\"Un organe de coupure d'appareil n'est pas \u00e0 about porte caoutchouc non d\u00e9montable (robinet t\u00e9tine).\", n:\"DGI\", e:\"DGI\"}\n              ]},\n              { section: \"3. SI GPL\", items: [\n                {id:\"3.1\", text:\"Pr\u00e9sence d'un d\u00e9tendeur en sortie de citerne.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"3.2\", text:\"Pr\u00e9sence d'un limiteur de pression en sortie de citerne (ou second d\u00e9tendeur).\", n:\"A2\", e:\"A2\"},\n                {id:\"3.3\", text:\"Sur une citerne enterr\u00e9e, le raccord isolant, si n\u00e9cessaire, est pr\u00e9sent et en bon \u00e9tat.\", n:\"A1\", e:\"A1\"},\n                {id:\"3.4\", text:\"Pr\u00e9sence pour chaque appareil d'un Robinet D\u00e9tendeur-D\u00e9clencheur de S\u00e9curit\u00e9 (RDDS) ou accessoire adapt\u00e9 \u00e0 la pression de service.\", n:\"A2\", e:\"A2\"},\n                {id:\"3.5\", text:\"La d\u00e9tente globale est assur\u00e9e par un dispositif sp\u00e9cifique. L'utilisation d'un RDDS dans ce cas est interdite.\", n:\"A2\", e:\"A2\"},\n                {id:\"3.6\", text:\"Absence de canalisation en plomb.\", n:\"A2\", e:\"A2\"},\n                {id:\"3.7\", text:\"La pression du gaz \u00e0 l'int\u00e9rieur du b\u00e2timent est en basse pression (maximum 50 mbar).\", n:\"A2\", e:\"\"},\n                {id:\"3.8\", text:\"La pression du gaz \u00e0 l'int\u00e9rieur du logement en b\u00e2timent collectif est en basse pression (maximum 50mbar).\", n:\"A2\", e:\"A2\"},\n                {id:\"3.9\", text:\"La lyre est autoris\u00e9e d'emploi et marqu\u00e9e d'un logo d'une marque reconnue.\", n:\"A2\", e:\"A2\"},\n                {id:\"3.10\", text:\"La lyre est en bon \u00e9tat.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"3.11\", text:\"La lyre \u00e0 une longueur maximale de 0,70 m.\", n:\"A1\", e:\"A1\"},\n                {id:\"3.12\", text:\"Absence de raccordement de plusieurs lyres entre elles.\", n:\"A1\", e:\"A1\"},\n                {id:\"3.13\", text:\"La date limite d'utilisation de la lyre est lisible et n'est pas d\u00e9pass\u00e9e.\", n:\"A1\", e:\"A1\"},\n                {id:\"3.14\", text:\"La lyre ne passe pas dans une zone dangereuse.\", n:\"A2\", e:\"A2\"},\n                {id:\"3.15\", text:\"La lyre est visitable.\", n:\"A1\", e:\"A1\"}\n              ]},\n              { section: \"4. APPAREILS ET ALIMENTATION EN GAZ\", items: [\n                {id:\"4.1\", text:\"L'appareil est adapt\u00e9 \u00e0 la nature du gaz distribu\u00e9.\", n:\"A2\", e:\"A2\"},\n                {id:\"4.2\", text:\"L'appareil est install\u00e9 dans une pi\u00e8ce r\u00e9glementaire (volume, ouvrant).\", n:\"A2\", e:\"A2\"},\n                {id:\"4.3\", text:\"L'appareil non \u00e9tanche raccord\u00e9 est situ\u00e9 en dehors d'une salle de bain ou de douche. Le remplacement d'un appareil raccord\u00e9 non \u00e9tanche par un appareil raccord\u00e9 neuf demeure autoris\u00e9.\", n:\"A2\", e:\"\"},\n                {id:\"4.4\", text:\"L'appareil \u00e0 gaz aliment\u00e9 en \u00e9lectricit\u00e9 (sauf TBT) est situ\u00e9 hors volume 0, 1 et 2 selon NF C 15-100.\", n:\"A2\", e:\"A2\"},\n                {id:\"4.5\", text:\"Absence d'utilisation d'un appareil pr\u00e9vu pour fonctionner \u00e0 l'ext\u00e9rieur, \u00e0 l'int\u00e9rieur du logement.\", n:\"DGI\", e:\"DGI\"}\n              ]},\n              { section: \"5. ALIMENTATION EN GAZ DES APPAREILS\", items: [\n                {id:\"5.1\", text:\"Le mat\u00e9riel utilis\u00e9 est autoris\u00e9 d'emploi (interdit: tuyau d'arrosage, mat\u00e9riel non marqu\u00e9 du logo d'une marque de certification reconnue \u00abNF\u00bb, \u00abATG\u00bb,...) ou un tuyau flexible non m\u00e9tallique et en mauvais \u00e9tat.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"5.2\", text:\"Le tuyau flexible \u00e0 embouts m\u00e9caniques m\u00e9talliques est en bon \u00e9tat: absence de br\u00fblures, fissures, craquelures...\", n:\"A2\", e:\"A2\"},\n                {id:\"5.3\", text:\"Le tuyau d'alimentation a une longueur inf\u00e9rieure ou \u00e9gale \u00e0 2 m.\", n:\"A1\", e:\"A1\"},\n                {id:\"5.4\", text:\"Le tuyau d'alimentation flexible est visitable.\", n:\"A1\", e:\"A1\"},\n                {id:\"5.5\", text:\"La date d'utilisation du tuyau d'alimentation est lisible et valide.\", n:\"A1\", e:\"A1\"},\n                {id:\"5.6\", text:\"Pr\u00e9sence d'un seul tuyau d'alimentation entre l'OCA et l'appareil.\", n:\"A2\", e:\"A2\"},\n                {id:\"5.7\", text:\"Le tuyau ne passe pas dans des zones dangereuses (flammes du br\u00fbleur de l'appareil, des parties chaudes des appareils, ou des d\u00e9bordements de produits chauds ou des gaz de combustion).\", n:\"A2\", e:\"A2\"},\n                {id:\"5.8\", text:\"L'utilisation d'un tube souple NF est autoris\u00e9e uniquement pour le raccordement d'un appareil de cuisson sur une bouteille de butane.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"5.9\", text:\"Absence de tuyauterie rigide pour l'alimentation d'un appareil mobile (cuisini\u00e8re, plancha,....).\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"6. \u00c9TANCH\u00c9IT\u00c9 DE L'INSTALLATION\", items: [\n                {id:\"6.1\", text:\"L'installation a \u00e9t\u00e9 contr\u00f4l\u00e9e (organes de coupure\/robinets ouverts) et est \u00e9tanche.\", n:\"DGI\", e:\"DGI\"}\n              ]},\n              { section: \"7. APPAREILS NON RACCORD\u00c9S SEUL (TYPE A)\", items: [\n                {id:\"7.1\", text:\"Sortie d'air directe de 100 cm\u00b2 de passage libre situ\u00e9 \u00e0 1.80 m minimum au-dessus du sol. (bord sup\u00e9rieur de la grille)\", n:\"A2\", e:\"A1\"},\n                {id:\"7.2\", text:\"Amen\u00e9e d'air directe avec le haut de la grille \u00e0 0.30 m maximum du sol (ou 1 m 50 sous r\u00e9serve que la distance entre la partie sup\u00e9rieure de l'orifice d'amen\u00e9e d'air et la partie sup\u00e9rieure de l'orifice de sortie d'air soit d'au moins 1 m 50).\", n:\"A2\", e:\"A2\"},\n                {id:\"7.3\", text:\"Sortie d'air par conduit vertical de 100 cm\u00b2 minimum et situ\u00e9 \u00e0 1.80 m minimum au-dessus du sol.\", n:\"A2\", e:\"A1\"},\n                {id:\"7.4\", text:\"Amen\u00e9e d'air directe (sans limitation de hauteur) ou indirecte (passage de transit sous portes pour la circulation d'air).\", n:\"A2\", e:\"A2\"},\n                {id:\"7.5\", text:\"Sortie d'air par VMC et situ\u00e9e \u00e0 1.80 m au-dessus du sol minimum.\", n:\"A2\", e:\"A1\"},\n                {id:\"7.6\", text:\"Amen\u00e9e d'air indirecte (sans limitation de hauteur et passage de transit sous portes pour la circulation d'air). Section de l'amen\u00e9e d'air minimum: 45 m3\/h.\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"8. APPAREIL RACCORD\u00c9 SEUL (TYPE B)\", items: [\n                {id:\"8.1\", text:\"Amen\u00e9e d'air directe (sans limitation de hauteur) ou indirecte (passage de transit sous portes pour la circulation d'air).\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"9. APPAREIL NON RACCORD\u00c9S (TYPE A) + APPAREIL RACCORD\u00c9 (TYPE B)\", items: [\n                {id:\"9.1\", text:\"Sortie d'air directe de 100 cm\u00b2 de passage libre et bord sup\u00e9rieur de la grille situ\u00e9 \u00e0 1.80 m au-dessus du sol minimum.\", n:\"A2\", e:\"A1\"},\n                {id:\"9.2\", text:\"Amen\u00e9e d'air directe obligatoire de 100 cm\u00b2 minimum et bord sup\u00e9rieur de la grille \u00e0 0.30 m maximum (ou 1 m 50 sous r\u00e9serve...).\", n:\"A2\", e:\"A2\"},\n                {id:\"9.3\", text:\"Sortie d'air par coupe tirage ou conduit vertical de 100 cm\u00b2 minimum et situ\u00e9 \u00e0 1.80 m au-dessus du sol minimum.\", n:\"A2\", e:\"A1\"},\n                {id:\"9.4\", text:\"Amen\u00e9e d'air directe (sans limitation de hauteur) ou indirecte (passage de transit sous portes pour la circulation d'air).\", n:\"A2\", e:\"A2\"},\n                {id:\"9.5\", text:\"Sortie d'air par VMC et situ\u00e9e \u00e0 1.80 m au-dessus du sol minimum.\", n:\"A2\", e:\"A1\"},\n                {id:\"9.6\", text:\"Amen\u00e9e d'air indirecte (sans limitation de hauteur et passage de transit sous portes pour la circulation d'air).\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"10. APPAREIL RACCORD\u00c9 (TYPE B) SUR VMC GAZ\", items: [\n                {id:\"10.1\", text:\"Amen\u00e9e d'air indirecte (passage de transit sous portes pour la circulation d'air).\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"11. APPAREIL NON RACCORD\u00c9 (TYPE A) + APPAREIL RACCORD\u00c9 (TYPE B) SUR VMC GAZ\", items: [\n                {id:\"11.1\", text:\"La sortie d'air s'effectue par le coupe tirage de l'appareil raccord\u00e9 (type B) ou par la bouche de VMC sp\u00e9cifique situ\u00e9e \u00e0 1,80m au-dessus du niveau du sol.\", n:\"A2\", e:\"A1\"},\n                {id:\"11.2\", text:\"Amen\u00e9e d'air indirecte (passage de transit sous portes pour la circulation d'air).\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"12. APPAREILS DE TYPE B (TIRAGE NATUREL)\", items: [\n                {id:\"12.1\", text:\"Pr\u00e9sence d'un conduit de raccordement et d'un conduit de fum\u00e9e.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"12.2\", text:\"Absence de tubage ou de conduit de fum\u00e9e raccord\u00e9 directement sur l'appareil.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.3\", text:\"Le tubage est plac\u00e9 dans un conduit de fum\u00e9e.\", n:\"DGI\", e:\"A2\"},\n                {id:\"12.4\", text:\"Le conduit de fum\u00e9e d\u00e9bouche \u00e0 l'ext\u00e9rieur.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"12.5\", text:\"Sur un conduit de fum\u00e9e individuel pr\u00e9sence d'un t\u00e9 de raccordement ou d'un pot \u00e0 suie \u00e0 sa base.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.6\", text:\"Le conduit de raccordement est de m\u00eame type et de m\u00eame nature sur toute sa longueur.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.7\", text:\"Absence de contre pente sur le conduit de raccordement.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.8\", text:\"La longueur maximale du conduit de raccordement est respect\u00e9e.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.9\", text:\"Le conduit de raccordement ne pr\u00e9sente pas plus de 2 coudes \u00e0 90\u00b0 ou plus de 180\u00b0 de d\u00e9voiement (sauf VMC gaz).\", n:\"A2\", e:\"A2\"},\n                {id:\"12.10\", text:\"Le conduit de raccordement ne p\u00e9n\u00e8tre pas dans un local diff\u00e9rent de celui o\u00f9 est install\u00e9 l'appareil.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.11\", text:\"Le conduit de raccordement rigide est visible ou visitable sur toute sa longueur.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.12\", text:\"Le conduit de raccordement non rigide est visible sur toute sa longueur.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.13\", text:\"Si le conduit de raccordement poss\u00e8de une partie verticale, elle est situ\u00e9e imm\u00e9diatement \u00e0 la sortie de l'appareil.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.14\", text:\"Le conduit de raccordement respecte les emboitement m\u00e2le\/femelle, notamment en sortie d'appareil.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.15\", text:\"Le conduit de raccordement ne poss\u00e8de pas de r\u00e9duction brusque.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.16\", text:\"Le conduit de raccordement ne traverse pas une pi\u00e8ce principale.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.17\", text:\"Le conduit de raccordement est d\u00e9montable (sauf insert gaz).\", n:\"A2\", e:\"A2\"},\n                {id:\"12.18\", text:\"Absence de jeu d'assemblage trop important sur le conduit de raccordement (jeu estim\u00e9 sup\u00e9rieur \u00e0 2 mm de part et d'autre du diam\u00e8tre du conduit) NF P45-500.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"12.19\", text:\"Absence de tout dispositif d'\u00e9tanch\u00e9it\u00e9 (bande adh\u00e9sive ou autre) pour combler une diff\u00e9rence de diam\u00e8tre sur le conduit de raccordement.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.20\", text:\"Absence de perforation autre qu'un orifice de pr\u00e9l\u00e8vement (convenablement obtur\u00e9) sur le conduit de raccordement.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.21\", text:\"Absence de moyen de r\u00e9glage sur le conduit de raccordement.\", n:\"DGI\", e:\"A2\"},\n                {id:\"12.22\", text:\"Deux appareils raccord\u00e9s \u00e0 un m\u00eame conduit sont de m\u00eame type.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.23\", text:\"Deux appareils raccord\u00e9s appartenant au m\u00eame logement et raccord\u00e9s au m\u00eame conduit d'\u00e9vacuation des produits de combustion sont situ\u00e9s au m\u00eame \u00e9tage.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.24\", text:\"Deux appareils raccord\u00e9s \u00e0 un m\u00eame conduit situ\u00e9s dans 2 pi\u00e8ces diff\u00e9rentes pr\u00e9sentent une ouverture permanente suffisante entre les locaux.\", n:\"A2\", e:\"A2\"},\n                {id:\"12.25\", text:\"Absence de syst\u00e8me de ventilation m\u00e9canique dans le m\u00eame local (hotte raccord\u00e9e sur l'ext\u00e9rieur, extracteur m\u00e9canique individuel, s\u00e8che linge,....) autre que la VMC.\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"13. SP\u00c9CIFICIT\u00c9 APPAREIL TYPE B PRESSION\", items: [\n                {id:\"13.1\", text:\"Le conduit de raccordement poss\u00e8de un conduit enveloppe.\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"14. SP\u00c9CIFICIT\u00c9S APPAREIL TYPE B VMC GAZ\", items: [\n                {id:\"14.1\", text:\"L'appareil est sp\u00e9cifique VMC Gaz.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"14.2\", text:\"Tous les composants de la VMC gaz sont pr\u00e9sents (caisson, gaines...).\", n:\"DGI\", e:\"DGI\"},\n                {id:\"14.3\", text:\"Le relais DSC est pr\u00e9sent et l'appareil est raccord\u00e9 dessus.\", n:\"DGI\", e:\"A2\"},\n                {id:\"14.4\", text:\"Si la VMC Gaz est \u00e9quip\u00e9e de DSC, l'appareil n'est pas branch\u00e9 sur une prise \u00e9lectrique \u00abstandard\u00bb.\", n:\"DGI\", e:\"A2\"},\n                {id:\"14.5\", text:\"Pr\u00e9sence d'une bouche d'extraction VMC GAZ.\", n:\"A2\", e:\"A1\"},\n                {id:\"14.6\", text:\"Le conduit de raccordement a un diam\u00e8tre adapt\u00e9 \u00e0 la bouche d'extraction.\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"15. APPAREIL TYPE C \u00c9TANCHE\", items: [\n                {id:\"15.1\", text:\"L'orifice d'\u00e9vacuation d\u00e9bouche \u00e0 l'ext\u00e9rieur ou dans un conduit collecteur sp\u00e9cial.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"15.2\", text:\"Les \u00e9l\u00e9ments du conduit de l'appareil de type C sont assembl\u00e9s de fa\u00e7on \u00e9tanche.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"15.3\", text:\"L'orifice d'\u00e9vacuation des produits de combustion horizontal ou vertical est \u00e0 une distance de 0,6m au moins de toute amen\u00e9e d'air.\", n:\"A2\", e:\"OBS\"},\n                {id:\"15.4\", text:\"L'orifice d'\u00e9vacuation des produits de combustion horizontal ou vertical est \u00e0 une distance de 0,4m au moins de tout ouvrant.\", n:\"A2\", e:\"OBS\"},\n                {id:\"15.5\", text:\"L'orifice d'\u00e9vacuation des produits de combustion vertical est \u00e0 une distance de 2m de tout ouvrant situ\u00e9 \u00e0 un niveau sup\u00e9rieur (sauf en remplacement d'appareil).\", n:\"A2\", e:\"\"},\n                {id:\"15.6\", text:\"L'orifice d'\u00e9vacuation des produits de combustion horizontal ou vertical ne d\u00e9bouche pas dans une cour anglaise ou saut de loup (sauf en remplacement d'appareil).\", n:\"A2\", e:\"\"},\n                {id:\"15.7\", text:\"Dans le cas d'un appareil raccord\u00e9 sur 3CEp, les formulaires de phase 1 et 2 sont disponibles.\", n:\"A2\", e:\"\"}\n              ]},\n              { section: \"16. CENR\", items: [\n                {id:\"16.1\", text:\"Le CENR est \u00e0 triple s\u00e9curit\u00e9.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"16.2\", text:\"Le CENR est install\u00e9 dans une pi\u00e8ce autoris\u00e9e.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"16.3\", text:\"Chaque appareil est install\u00e9 dans un local ou une pi\u00e8ce r\u00e9glementaire (volume ou ouvrant): le local doit avoir un volume de 15 m3 minimum (NF P45-500) et un ouvrant donnant directement sur l'ext\u00e9rieur de 0.40 m\u00b2 minimum.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"16.4\", text:\"Le CENR n'alimente pas: un r\u00e9cipient de plus de 50 litres, ou plus de 3 postes de puisage, ou 3 postes r\u00e9partis dans plus de 2 pi\u00e8ces, ou une douche.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"16.5\", text:\"Pr\u00e9sence d'amen\u00e9e et sortie d'air dans le local.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"16.6\", text:\"La sortie d'air est directe ou par conduit vertical.\", n:\"DGI\", e:\"A2\"},\n                {id:\"16.7\", text:\"Un CENR est install\u00e9 en remplacement d'un CENR existant.\", n:\"DGI\", e:\"\"},\n                {id:\"16.8\", text:\"Le CENR poss\u00e8de l'\u00e9tiquette recommandations d'usage.\", n:\"OBS\", e:\"OBS\"}\n              ]},\n              { section: \"17. ALIMENTATION PAR TIGE CUISINE\", items: [\n                {id:\"17.1\", text:\"La tige cuisine n'alimente pas d'appareils autres qu'un appareil de cuisson.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"17.2\", text:\"L'organe de coupure d'appareil est un Robinet D\u00e9clencheur.\", n:\"A2\", e:\"A2\"}\n              ]},\n              { section: \"18. SPE\", items: [\n                {id:\"18.1\", text:\"Le SPE r\u00e9pond aux crit\u00e8res d'une APE, d'un EPE, d'un LPE d\u00e9di\u00e9.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.2\", text:\"Le SPE est d\u00e9di\u00e9 \u00e0 la production exclusive d'\u00e9nergie par des appareils gaz.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.3\", text:\"Le SPE ne contient pas de produits dangereux.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.4\", text:\"Le SPE ne se trouve pas dans une partie privative et ne s'ouvre pas sur une partie privative.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.5\", text:\"Un appareil ou groupement d'appareils de production individuelle de plus de 70 kW de Pu totale n'est pas install\u00e9 dans une partie habitable.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.6\", text:\"Absence de canalisations apparentes non n\u00e9cessaires \u00e0 son fonctionnement dans le SPE.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.7\", text:\"L'APE est d\u00e9limit\u00e9e.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.8\", text:\"L'APE individuelle est implant\u00e9e \u00e0 au moins de 10 m de tout b\u00e2timent, de toute propri\u00e9t\u00e9 appartenant \u00e0 un tiers ou de la voie publique.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.9\", text:\"L'EPE ne contient que des appareils \u00e0 gaz.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.10\", text:\"L'EPE contient exclusivement des appareils de type C.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.11\", text:\"L'EPE ne d\u00e9passe pas les 70 kW de puissance utile.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.12\", text:\"L'EPE n'est pas situ\u00e9 au sous-sol.\", n:\"A2\", e:\"OBS\"},\n                {id:\"18.13\", text:\"L'EPE n'est pas dans un escalier encloisonn\u00e9.\", n:\"A1\", e:\"A1\"}\n              ]},\n              { section: \"19. ESSAIS DES APPAREILS (sur feux nus uniquement)\", items: [\n                {id:\"19.1\", text:\"La flamme d'au moins un br\u00fbleur de l'appareil de cuisson n'est pas jaune, ne charbonne pas ou ne d\u00e9colle pas partiellement.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"19.2\", text:\"La flamme ne d\u00e9colle pas, avec extinction du br\u00fbleur (GPL).\", n:\"A2\", e:\"A2\"},\n                {id:\"19.3\", text:\"La flamme ne d\u00e9colle pas, avec extinction du br\u00fbleur (GN).\", n:\"DGI\", e:\"DGI\"},\n                {id:\"19.4\", text:\"La flamme du br\u00fbleur ne s'\u00e9teint pas \u00e0 l'ouverture du four (GPL).\", n:\"A2\", e:\"A2\"},\n                {id:\"19.5\", text:\"La flamme du br\u00fbleur ne s'\u00e9teint pas \u00e0 l'ouverture du four (GN).\", n:\"DGI\", e:\"DGI\"},\n                {id:\"19.6\", text:\"La flamme du br\u00fbleur ne s'\u00e9teint pas lors du passage du d\u00e9bit maxi au d\u00e9bit mini (GPL).\", n:\"A2\", e:\"A2\"},\n                {id:\"19.7\", text:\"La flamme du br\u00fbleur ne s'\u00e9teint pas lors du passage du d\u00e9bit maxi au d\u00e9bit mini (GN).\", n:\"DGI\", e:\"DGI\"}\n              ]},\n              { section: \"20. CENR\", items: [\n                {id:\"20.1\", text:\"Le d\u00e9bit de gaz n'est pas sup\u00e9rieur au d\u00e9bit maximal th\u00e9orique de 10% \u00e0 20%.\", n:\"A2\", e:\"A1\"},\n                {id:\"20.2\", text:\"Le d\u00e9bit de gaz n'est pas sup\u00e9rieur au d\u00e9bit maximal th\u00e9orique de plus de 20%.\", n:\"DGI\", e:\"A2\"},\n                {id:\"20.3\", text:\"CENR fonctionnant seul, la mesure du CO dans l'atmosph\u00e8re est inf\u00e9rieure ou \u00e9gale \u00e0 10 ppm.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"20.4\", text:\"CENR fonctionnant avec un appareil de cuisson, la mesure du CO dans l'atmosph\u00e8re est inf\u00e9rieure ou \u00e9gale \u00e0 10 ppm.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"20.5\", text:\"Absence de d\u00e9bordement de flamme \u00e0 l'allumage.\", n:\"DGI\", e:\"DGI\"}\n              ]},\n              { section: \"21. APPAREILS RACCORD\u00c9S (TYPE B UNIQUEMENT)\", items: [\n                {id:\"21.1\", text:\"Absence de d\u00e9bordement de flamme \u00e0 l'allumage.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"21.2\", text:\"Le d\u00e9bit de gaz n'est pas sup\u00e9rieur au d\u00e9bit maximal th\u00e9orique de 10% \u00e0 20%.\", n:\"A2\", e:\"A1\"},\n                {id:\"21.3\", text:\"Le d\u00e9bit de gaz n'est pas sup\u00e9rieur au d\u00e9bit maximal th\u00e9orique de plus de 20%.\", n:\"DGI\", e:\"A2\"}\n              ]},\n              { section: \"22. PRODUITS DE COMBUSTION (TYPE B ET C)\", items: [\n                {id:\"22.1\", text:\"En partie privative, la mesure du CO dans l'atmosph\u00e8re est inf\u00e9rieure ou \u00e9gale \u00e0 10 ppm.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"22.2\", text:\"En alv\u00e9ole technique, la mesure du CO dans l'atmosph\u00e8re est inf\u00e9rieure ou \u00e9gale \u00e0 10 ppm.\", n:\"A2\", e:\"A2\"},\n                {id:\"22.3\", text:\"En SPE (hors APE), la mesure du CO dans l'atmosph\u00e8re n'est pas comprise entre 10 et 50 ppm.\", n:\"A2\", e:\"A2\"},\n                {id:\"22.4\", text:\"En SPE (hors APE), la mesure du CO dans l'atmosph\u00e8re n'est pas sup\u00e9rieure \u00e0 50 ppm.\", n:\"DGI\", e:\"DGI\"},\n                {id:\"22.5\", text:\"Hotte raccord\u00e9e \u00e0 l'ext\u00e9rieur ou extracteur m\u00e9canique autre que VMC, et appareil \u00e0 tirage naturel simultan\u00e9ment en fonctionnement, la mesure du CO dans l'atmosph\u00e8re est inf\u00e9rieure ou \u00e9gale \u00e0 10 ppm.\", n:\"DGI\", e:\"DGI\"}\n              ]}\n            ];\n\n            let checklistHtml = questions.map((q) => `\n                <details class=\"group bg-white rounded-xl shadow-md overflow-hidden border border-gray-200 mb-4 print:shadow-none print:mb-2\" open>\n                    <summary class=\"bg-blue-900 px-5 py-3 font-bold text-white flex items-center cursor-pointer list-none print:text-black print:bg-gray-200 print:border-b\">\n                        <i class=\"fa-solid fa-chevron-right mr-3 group-open:rotate-90 transition-transform print:hidden\"><\/i>\n                        ${q.section}\n                    <\/summary>\n                    <div class=\"p-4 space-y-4 bg-gray-50 print:bg-white print:space-y-2 border-t border-blue-200 print:border-none\">\n                        ${q.items.map((item) => {\n                            const safeId = item.id.replace(\/\\.\/g, '_');\n                            return `\n                            <div class=\"p-4 bg-white rounded-lg shadow-sm border border-gray-200 print:shadow-none print:p-2\">\n                                <div class=\"font-bold text-blue-900 mb-3 text-sm leading-tight print:text-black\">\n                                    <span class=\"bg-blue-100 text-blue-800 px-2 py-1 rounded mr-2 border border-blue-200 print:bg-transparent print:border-none print:p-0\">${item.id}<\/span> \n                                    ${item.text}\n                                <\/div>\n                                <div class=\"grid grid-cols-2 gap-4\">\n                                    <!-- NEUF -->\n                                    <div class=\"bg-slate-50 rounded p-3 text-center border border-slate-200 relative pb-6 print:border-none print:bg-transparent print:p-1\">\n                                        <span class=\"text-xs font-bold text-slate-500 uppercase tracking-wider block mb-2 print:inline-block print:mr-2\">Partie Neuve<\/span>\n                                        <div class=\"flex justify-center space-x-2 print:inline-flex\">\n                                            <label class=\"cursor-pointer text-xs flex items-center bg-white border border-gray-300 px-2 py-1 rounded hover:bg-gray-100 transition print:border-none\">\n                                                <input type=\"radio\" name=\"n_${safeId}\" value=\"C\" class=\"mr-1 print:mr-0\" onchange=\"checkAnomaly(this, '${safeId}', 'n', '${item.n}')\"> <span class=\"print:hidden\">C<\/span>\n                                            <\/label>\n                                            <label class=\"cursor-pointer text-xs flex items-center bg-white border border-gray-300 px-2 py-1 rounded hover:bg-gray-100 transition print:border-none\">\n                                                <input type=\"radio\" name=\"n_${safeId}\" value=\"NC\" class=\"mr-1 print:mr-0\" onchange=\"checkAnomaly(this, '${safeId}', 'n', '${item.n}')\"> <span class=\"print:hidden\">NC<\/span>\n                                            <\/label>\n                                            <label class=\"cursor-pointer text-xs flex items-center bg-white border border-gray-300 px-2 py-1 rounded hover:bg-gray-100 transition print:border-none\">\n                                                <input type=\"radio\" name=\"n_${safeId}\" value=\"SO\" class=\"mr-1 print:mr-0\" checked onchange=\"checkAnomaly(this, '${safeId}', 'n', '${item.n}')\"> <span class=\"print:hidden\">S\/O<\/span>\n                                            <\/label>\n                                        <\/div>\n                                        ${item.n ? `<div id=\"badge_n_${safeId}\" class=\"hidden absolute bottom-1 left-1\/2 transform -translate-x-1\/2 px-2 py-0.5 rounded text-[10px] font-bold shadow-sm ${getAnomalyColor(item.n)} print:hidden\">${item.n}<\/div>` : `<div class=\"absolute bottom-1 left-1\/2 transform -translate-x-1\/2 text-[10px] text-gray-400 print:hidden\">Aucune<\/div>`}\n                                    <\/div>\n                                    <!-- EXISTANT -->\n                                    <div class=\"bg-slate-50 rounded p-3 text-center border border-slate-200 relative pb-6 print:border-none print:bg-transparent print:p-1\">\n                                        <span class=\"text-xs font-bold text-slate-500 uppercase tracking-wider block mb-2 print:inline-block print:mr-2\">Partie Existante<\/span>\n                                        <div class=\"flex justify-center space-x-2 print:inline-flex\">\n                                            <label class=\"cursor-pointer text-xs flex items-center bg-white border border-gray-300 px-2 py-1 rounded hover:bg-gray-100 transition print:border-none\">\n                                                <input type=\"radio\" name=\"e_${safeId}\" value=\"C\" class=\"mr-1 print:mr-0\" onchange=\"checkAnomaly(this, '${safeId}', 'e', '${item.e}')\"> <span class=\"print:hidden\">C<\/span>\n                                            <\/label>\n                                            <label class=\"cursor-pointer text-xs flex items-center bg-white border border-gray-300 px-2 py-1 rounded hover:bg-gray-100 transition print:border-none\">\n                                                <input type=\"radio\" name=\"e_${safeId}\" value=\"NC\" class=\"mr-1 print:mr-0\" onchange=\"checkAnomaly(this, '${safeId}', 'e', '${item.e}')\"> <span class=\"print:hidden\">NC<\/span>\n                                            <\/label>\n                                            <label class=\"cursor-pointer text-xs flex items-center bg-white border border-gray-300 px-2 py-1 rounded hover:bg-gray-100 transition print:border-none\">\n                                                <input type=\"radio\" name=\"e_${safeId}\" value=\"SO\" class=\"mr-1 print:mr-0\" checked onchange=\"checkAnomaly(this, '${safeId}', 'e', '${item.e}')\"> <span class=\"print:hidden\">S\/O<\/span>\n                                            <\/label>\n                                        <\/div>\n                                        ${item.e ? `<div id=\"badge_e_${safeId}\" class=\"hidden absolute bottom-1 left-1\/2 transform -translate-x-1\/2 px-2 py-0.5 rounded text-[10px] font-bold shadow-sm ${getAnomalyColor(item.e)} print:hidden\">${item.e}<\/div>` : `<div class=\"absolute bottom-1 left-1\/2 transform -translate-x-1\/2 text-[10px] text-gray-400 print:hidden\">Aucune<\/div>`}\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                            `;\n                        }).join('')}\n                    <\/div>\n                <\/details>\n            `).join('');\n\n            container.innerHTML = `\n                <div class=\"p-6 fade-in max-w-5xl mx-auto pb-20\">\n                    <div class=\"flex flex-col md:flex-row justify-between items-start md:items-center mb-6\">\n                        <div>\n                            <h2 class=\"text-2xl font-bold text-blue-900\">Fiche d'Auto-Contr\u00f4le (Fiche Visa Qualit\u00e9)<\/h2>\n                            <p class=\"text-sm text-gray-600\">Bas\u00e9e exhaustivement sur le r\u00e9f\u00e9rentiel de contr\u00f4le PG (Version 07\/2025).<\/p>\n                        <\/div>\n                        <div class=\"flex gap-2 mt-4 md:mt-0 print:hidden\">\n                            <button onclick=\"document.querySelectorAll('details').forEach(d => d.open = false)\" class=\"bg-gray-200 text-gray-700 px-3 py-2 rounded shadow hover:bg-gray-300 transition text-sm\">Tout R\u00e9duire<\/button>\n                            <button onclick=\"document.querySelectorAll('details').forEach(d => d.open = true)\" class=\"bg-gray-200 text-gray-700 px-3 py-2 rounded shadow hover:bg-gray-300 transition text-sm\">Tout D\u00e9plier<\/button>\n                            <button onclick=\"window.print()\" class=\"bg-blue-800 text-white px-4 py-2 rounded shadow hover:bg-blue-700 transition flex items-center\">\n                                <i class=\"fa-solid fa-print mr-2\"><\/i> Imprimer \/ PDF\n                            <\/button>\n                        <\/div>\n                    <\/div>\n\n                    <!-- L\u00e9gende des anomalies -->\n                    <div class=\"bg-white p-4 rounded-lg shadow mb-6 border-l-4 border-yellow-400 text-sm print:hidden\">\n                        <h4 class=\"font-bold text-gray-800 mb-2\">L\u00e9gende & Sanctions : C = Conforme | NC = Non Conforme | S\/O = Sans Objet<\/h4>\n                        <div class=\"grid grid-cols-2 md:grid-cols-4 gap-2 mt-3\">\n                            <div><span class=\"inline-block w-8 text-center bg-yellow-100 text-yellow-800 font-bold rounded mr-1\">A1<\/span> R\u00e9paration requise<\/div>\n                            <div><span class=\"inline-block w-8 text-center bg-orange-100 text-orange-800 font-bold rounded mr-1\">A2<\/span> 3 contr\u00f4les renforc\u00e9s<\/div>\n                            <div><span class=\"inline-block w-8 text-center bg-red-100 text-red-800 font-bold rounded mr-1\">DGI<\/span> Coupure de gaz imm\u00e9diate<\/div>\n                            <div><span class=\"inline-block w-8 text-center bg-gray-200 text-gray-700 font-bold rounded mr-1\">OBS<\/span> Observation simple<\/div>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"bg-white p-4 rounded-lg shadow mb-6 print:shadow-none print:border\">\n                        <div class=\"grid md:grid-cols-2 gap-4\">\n                            <div>\n                                <label class=\"block text-xs font-bold text-gray-600 mb-1\">Dossier \/ Client<\/label>\n                                <input type=\"text\" class=\"w-full border-b border-gray-300 p-1 focus:outline-none focus:border-blue-500\" placeholder=\"Nom du client ou n\u00b0 dossier\">\n                            <\/div>\n                            <div>\n                                <label class=\"block text-xs font-bold text-gray-600 mb-1\">Date d'intervention<\/label>\n                                <input type=\"date\" class=\"w-full border-b border-gray-300 p-1 focus:outline-none focus:border-blue-500\">\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Checklist Form -->\n                    <form id=\"checklistForm\">\n                        ${checklistHtml}\n                    <\/form>\n\n                    <div class=\"mt-8 bg-gray-100 p-4 rounded-lg border border-gray-300 print:block\">\n                        <label class=\"block text-sm font-bold text-gray-700 mb-2\">Observations \/ Remarques<\/label>\n                        <textarea rows=\"3\" class=\"w-full p-2 border rounded resize-none\" placeholder=\"Notes \u00e9ventuelles...\"><\/textarea>\n                        \n                        <div class=\"mt-6 flex justify-between items-end\">\n                            <div>\n                                <p class=\"text-xs text-gray-500 font-bold\">Signature de l'installateur \/ Responsable Gaz :<\/p>\n                                <div class=\"h-16 w-48 border-b-2 border-dotted border-gray-400 mt-2\"><\/div>\n                            <\/div>\n                            <div>\n                                <p class=\"text-xs text-gray-500 font-bold\">Cachet de l'entreprise :<\/p>\n                                <div class=\"h-16 w-48 border-b-2 border-dotted border-gray-400 mt-2\"><\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <style>\n                    \/* Print specific styles for the checklist *\/\n                    @media print {\n                        body { background: white; color: black; font-size: 10px; }\n                        nav { display: none !important; }\n                        main { overflow: visible !important; height: auto !important; }\n                        .fade-in { animation: none; }\n                        .shadow, .shadow-md, .shadow-sm { box-shadow: none !important; border: 1px solid #e5e7eb; }\n                        .print\\\\:hidden { display: none !important; }\n                        details { margin-bottom: 2px !important; }\n                        details > div { padding: 2px !important; }\n                    }\n                <\/style>\n            `;\n        }\n\n        \/\/ Helper for Anomaly badge colors\n        function getAnomalyColor(level) {\n            switch(level) {\n                case 'A1': return 'bg-yellow-100 text-yellow-800 border border-yellow-300';\n                case 'A2': return 'bg-orange-100 text-orange-800 border border-orange-300';\n                case 'DGI': return 'bg-red-100 text-red-800 border border-red-300';\n                case 'OBS': return 'bg-gray-200 text-gray-700 border border-gray-300';\n                default: return 'bg-gray-100 text-gray-800 border border-gray-300';\n            }\n        }\n\n        \/\/ Initialize default view\n        document.addEventListener('DOMContentLoaded', () => {\n            router('dashboard');\n        });\n\n    <\/script>\n","protected":false},"excerpt":{"rendered":"<p>TechniGaz Pro &#8211; Menu TechniGaz Pro Accueil &amp; R\u00e9glementation Caract\u00e9ristiques Gaz Canalisations Organes Coupure Raccordement Volume &amp; Ouvrant Ventilation &amp; Air Conduits (Type B) VMC Gaz \u00c9vacuation (Type C) Conduit 3CE\/3CEp Sp\u00e9cificit\u00e9s CENR Essais &amp; \u00c9tanch\u00e9it\u00e9 Certificats Auto-Contr\u00f4le R\u00e9f: Arr\u00eat\u00e9 23\/02\/2018 TechniGaz BERLIO Formation Patrice LAURENT PL Accueil &amp; R\u00e9glementation Conforme 2024 Derni\u00e8re mise \u00e0&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-86","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.berlio.fr\/index.php\/wp-json\/wp\/v2\/pages\/86","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.berlio.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.berlio.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.berlio.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.berlio.fr\/index.php\/wp-json\/wp\/v2\/comments?post=86"}],"version-history":[{"count":6,"href":"https:\/\/www.berlio.fr\/index.php\/wp-json\/wp\/v2\/pages\/86\/revisions"}],"predecessor-version":[{"id":95,"href":"https:\/\/www.berlio.fr\/index.php\/wp-json\/wp\/v2\/pages\/86\/revisions\/95"}],"wp:attachment":[{"href":"https:\/\/www.berlio.fr\/index.php\/wp-json\/wp\/v2\/media?parent=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}