var/cache/dev/twig/eb/eb57b90b5c09b67e354f3cd3f2bad6814f611857b5a86bef24cbaf555dea5dcd.php line 1447

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. /* Base/_sidebar_admin.html.twig */
  15. class __TwigTemplate_e37cf6551fa46b9b521a49d5f87163ce8743775b5fa70bff370074ba078606a8 extends Template
  16. {
  17.     private $source;
  18.     private $macros = [];
  19.     public function __construct(Environment $env)
  20.     {
  21.         parent::__construct($env);
  22.         $this->source = $this->getSourceContext();
  23.         $this->parent = false;
  24.         $this->blocks = [
  25.         ];
  26.     }
  27.     protected function doDisplay(array $context, array $blocks = [])
  28.     {
  29.         $macros = $this->macros;
  30.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  31.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Base/_sidebar_admin.html.twig"));
  32.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  33.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Base/_sidebar_admin.html.twig"));
  34.         // line 1
  35.         yield "<div class=\"d-flex flex-column flex-root\">
  36.     <div class=\"page d-flex flex-row flex-column-fluid\">
  37. <div id=\"kt_aside\" class=\"aside aside-modern\" data-kt-drawer=\"true\" data-kt-drawer-name=\"aside\" data-kt-drawer-activate=\"{default: true, lg: false}\" data-kt-drawer-overlay=\"true\" data-kt-drawer-width=\"{default:'280px', '300px': '300px'}\" data-kt-drawer-direction=\"start\" data-kt-drawer-toggle=\"#kt_aside_mobile_toggle\">
  38.     <!-- Logo Section Modernisée -->
  39.     <div class=\"aside-logo-modern\" id=\"kt_aside_logo\">
  40.         <a href=\"/dashboard\" class=\"logo-container-modern\">
  41.             <span class=\"brand-text\">MAZEGO</span>
  42.         </a>
  43.         <div id=\"kt_aside_toggle\" class=\"btn-toggle-modern\" data-kt-toggle=\"true\" data-kt-toggle-state=\"active\" data-kt-toggle-target=\"body\" data-kt-toggle-name=\"aside-minimize\">
  44.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  45.                 <path d=\"m15 18-6-6 6-6\"/>
  46.             </svg>
  47.         </div>
  48.     </div>
  49.     <!-- Menu Navigation Moderne -->
  50.     <div class=\"aside-menu-modern\">
  51.         <div class=\"menu-scroll-modern\" id=\"kt_aside_menu_wrapper\" data-kt-scroll=\"true\" data-kt-scroll-activate=\"{default: false, lg: true}\" data-kt-scroll-height=\"auto\" data-kt-scroll-dependencies=\"#kt_aside_logo, #kt_aside_footer\" data-kt-scroll-wrappers=\"#kt_aside_menu\" data-kt-scroll-offset=\"0\">
  52.             <div class=\"menu-modern\" id=\"kt_aside_menu\" data-kt-menu=\"true\">
  53. <!-- 📄 FACTURE ÉLECTRONIQUE -->
  54. ";
  55.         // line 203
  56.         yield "
  57. <!-- 📄 FACTURE ÉLECTRONIQUE -->
  58. <div class=\"menu-section-modern\">
  59.     <div class=\"menu-section-header-modern\" data-section=\"facture-electronique\">
  60.         <div class=\"menu-section-title-modern\">
  61.             <span class=\"section-title-text\">FACTURE ÉLECTRONIQUE</span>
  62.             <div class=\"menu-badge-modern\">
  63.                 <span class=\"badge-new-modern\">NEW</span>
  64.             </div>
  65.         </div>
  66.         <div class=\"menu-section-arrow\">
  67.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  68.                 <path d=\"m6 9 6 6 6-6\"/>
  69.             </svg>
  70.         </div>
  71.     </div>
  72.     <div class=\"menu-section-content\" id=\"section-facture-electronique\">
  73.         
  74.         ";
  75.         // line 222
  76.         yield "        ";
  77.         $context["hasCertificate"] = (array_key_exists("user_certificate", $context) && (0 !== CoreExtension::compare((isset($context["user_certificate"]) || array_key_exists("user_certificate", $context) ? $context["user_certificate"] : (function () { throw new RuntimeError('Variable "user_certificate" does not exist.', 222, $this->source); })()), null)));
  78.         // line 223
  79.         yield "        ";
  80.         $context["hasDigiGoEmail"] = (array_key_exists("digigo_email", $context) &&  !Twig\Extension\CoreExtension::testEmpty((isset($context["digigo_email"]) || array_key_exists("digigo_email", $context) ? $context["digigo_email"] : (function () { throw new RuntimeError('Variable "digigo_email" does not exist.', 223, $this->source); })())));
  81.         // line 224
  82.         yield "        ";
  83.         $context["hasTTNConfig"] = (array_key_exists("user_ttn_config", $context) && (1 === CoreExtension::compare(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["user_ttn_config"]) || array_key_exists("user_ttn_config", $context) ? $context["user_ttn_config"] : (function () { throw new RuntimeError('Variable "user_ttn_config" does not exist.', 224, $this->source); })())), 0)));
  84.         // line 225
  85.         yield "        ";
  86.         $context["isActivated"] = (array_key_exists("user_activation", $context) && (0 !== CoreExtension::compare((isset($context["user_activation"]) || array_key_exists("user_activation", $context) ? $context["user_activation"] : (function () { throw new RuntimeError('Variable "user_activation" does not exist.', 225, $this->source); })()), null)));
  87.         // line 226
  88.         yield "        ";
  89.         $context["signatures_remaining"] = ((array_key_exists("user_signatures_remaining", $context)) ? ((isset($context["user_signatures_remaining"]) || array_key_exists("user_signatures_remaining", $context) ? $context["user_signatures_remaining"] : (function () { throw new RuntimeError('Variable "user_signatures_remaining" does not exist.', 226, $this->source); })())) : (300));
  90.         // line 227
  91.         yield "        ";
  92.         $context["signatures_total"] = ((array_key_exists("user_signatures_total", $context)) ? ((isset($context["user_signatures_total"]) || array_key_exists("user_signatures_total", $context) ? $context["user_signatures_total"] : (function () { throw new RuntimeError('Variable "user_signatures_total" does not exist.', 227, $this->source); })())) : (300));
  93.         // line 228
  94.         yield "        ";
  95.         $context["has_factures"] = (array_key_exists("donnees_electroniques", $context) && (1 === CoreExtension::compare(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["donnees_electroniques"]) || array_key_exists("donnees_electroniques", $context) ? $context["donnees_electroniques"] : (function () { throw new RuntimeError('Variable "donnees_electroniques" does not exist.', 228, $this->source); })())), 0)));
  96.         // line 229
  97.         yield "        
  98.         ";
  99.         // line 231
  100.         yield "        <!-- Configuration DigiGo / Email -->
  101.         <div class=\"menu-item-modern\">
  102.             <a class=\"menu-link-modern\" href=\"";
  103.         // line 233
  104.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_electronique_setup");
  105.         yield "\">
  106.                 <div class=\"menu-icon-modern\">
  107.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  108.                         <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\"/>
  109.                         <path d=\"m22 7-10 7L2 7\"/>
  110.                         <circle cx=\"12\" cy=\"15\" r=\"2\"/>
  111.                         <path d=\"M12 15v-4\"/>
  112.                         <path d=\"M9 11h6\"/>
  113.                     </svg>
  114.                 </div>
  115.                 <span class=\"menu-title-modern\">1. Configuration DigiGo</span>
  116.                 ";
  117.         // line 244
  118.         if ((isset($context["hasDigiGoEmail"]) || array_key_exists("hasDigiGoEmail", $context) ? $context["hasDigiGoEmail"] : (function () { throw new RuntimeError('Variable "hasDigiGoEmail" does not exist.', 244, $this->source); })())) {
  119.             // line 245
  120.             yield "                    <div class=\"menu-badge-modern\">
  121.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">✓ 
  122.                                                 </span>
  123.                     </div>
  124.                 ";
  125.         } else {
  126.             // line 251
  127.             yield "                                                        ";
  128.         }
  129.         // line 258
  130.         yield "            </a>
  131.         </div>
  132.         
  133.         ";
  134.         // line 262
  135.         yield "        <!-- Certificat de signature -->
  136.         <div class=\"menu-item-modern\">
  137.             <a class=\"menu-link-modern\" href=\"";
  138.         // line 264
  139.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_electronique_step1");
  140.         yield "\">
  141.                 <div class=\"menu-icon-modern\">
  142.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  143.                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>
  144.                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  145.                         <path d=\"M12 6v2\"/>
  146.                         <path d=\"M12 16v2\"/>
  147.                         <path d=\"M6 12h2\"/>
  148.                         <path d=\"M16 12h2\"/>
  149.                     </svg>
  150.                 </div>
  151.                 <span class=\"menu-title-modern\">2. Certificat de signature</span>
  152.                 ";
  153.         // line 276
  154.         if ((isset($context["hasCertificate"]) || array_key_exists("hasCertificate", $context) ? $context["hasCertificate"] : (function () { throw new RuntimeError('Variable "hasCertificate" does not exist.', 276, $this->source); })())) {
  155.             // line 277
  156.             yield "                    <div class=\"menu-badge-modern\">
  157.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">ACTIF</span>
  158.                     </div>
  159.                 ";
  160.         } else {
  161.             // line 281
  162.             yield "                    <div class=\"menu-badge-modern\">
  163.                         <span class=\"badge-dot-modern\"></span>
  164.                     </div>
  165.                 ";
  166.         }
  167.         // line 285
  168.         yield "            </a>
  169.         </div>
  170.         
  171.         ";
  172.         // line 289
  173.         yield "        <!-- Configuration TTN -->
  174.         <div class=\"menu-item-modern\">
  175.             <a class=\"menu-link-modern\" href=\"";
  176.         // line 291
  177.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_electronique_step2");
  178.         yield "\">
  179.                 <div class=\"menu-icon-modern\">
  180.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  181.                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  182.                         <path d=\"M12 16v-4\"/>
  183.                         <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"/>
  184.                         <path d=\"M8 12h8\"/>
  185.                     </svg>
  186.                 </div>
  187.                 <span class=\"menu-title-modern\">3. Configuration TTN</span>
  188.                 ";
  189.         // line 301
  190.         if ((isset($context["hasTTNConfig"]) || array_key_exists("hasTTNConfig", $context) ? $context["hasTTNConfig"] : (function () { throw new RuntimeError('Variable "hasTTNConfig" does not exist.', 301, $this->source); })())) {
  191.             // line 302
  192.             yield "                    <div class=\"menu-badge-modern\">
  193.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">ACTIF</span>
  194.                     </div>
  195.                 ";
  196.         } else {
  197.             // line 306
  198.             yield "                    <div class=\"menu-badge-modern\">
  199.                         <span class=\"badge-dot-modern\"></span>
  200.                     </div>
  201.                 ";
  202.         }
  203.         // line 310
  204.         yield "            </a>
  205.         </div>
  206.         
  207.         ";
  208.         // line 314
  209.         yield "        <!-- Activation et paiement -->
  210.         <div class=\"menu-item-modern\">
  211.             <a class=\"menu-link-modern\" href=\"";
  212.         // line 316
  213.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_electronique_step3");
  214.         yield "\">
  215.                 <div class=\"menu-icon-modern\">
  216.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  217.                         <rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\"/>
  218.                         <line x1=\"2\" y1=\"10\" x2=\"22\" y2=\"10\"/>
  219.                         <circle cx=\"12\" cy=\"15\" r=\"2\"/>
  220.                         <path d=\"M12 15v-3\"/>
  221.                         <path d=\"M9 12h6\"/>
  222.                     </svg>
  223.                 </div>
  224.                 <span class=\"menu-title-modern\">4. Activation & paiement</span>
  225.                 ";
  226.         // line 327
  227.         if ((isset($context["isActivated"]) || array_key_exists("isActivated", $context) ? $context["isActivated"] : (function () { throw new RuntimeError('Variable "isActivated" does not exist.', 327, $this->source); })())) {
  228.             // line 328
  229.             yield "                    <div class=\"menu-badge-modern\">
  230.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">ACTIVÉ</span>
  231.                     </div>
  232.                 ";
  233.         }
  234.         // line 332
  235.         yield "            </a>
  236.         </div>
  237.         
  238.         ";
  239.         // line 336
  240.         yield "        <div style=\"height: 1px; background: linear-gradient(90deg, transparent, #e2e8f0, transparent); margin: 0.5rem 1rem;\"></div>
  241.         
  242.         ";
  243.         // line 339
  244.         yield "        <!-- Gestion des certificats -->
  245.         <div class=\"menu-item-modern\">
  246.             <a class=\"menu-link-modern\" href=\"";
  247.         // line 341
  248.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_electronique_certificate");
  249.         yield "\">
  250.                 <div class=\"menu-icon-modern\">
  251.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  252.                         <path d=\"M4 7h16\"/>
  253.                         <path d=\"M7 7v10\"/>
  254.                         <path d=\"M17 7v10\"/>
  255.                         <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/>
  256.                     </svg>
  257.                 </div>
  258.                 <span class=\"menu-title-modern\">Gestion des certificats</span>
  259.                 ";
  260.         // line 351
  261.         if ((isset($context["hasCertificate"]) || array_key_exists("hasCertificate", $context) ? $context["hasCertificate"] : (function () { throw new RuntimeError('Variable "hasCertificate" does not exist.', 351, $this->source); })())) {
  262.             // line 352
  263.             yield "                    <div class=\"menu-badge-modern\">
  264.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">ACTIF</span>
  265.                     </div>
  266.                 ";
  267.         }
  268.         // line 356
  269.         yield "            </a>
  270.         </div>
  271.         
  272.         ";
  273.         // line 360
  274.         yield "        <!-- Liste des factures électroniques (accessible à tous) -->
  275.         <div class=\"menu-item-modern\">
  276.             <a class=\"menu-link-modern\" href=\"";
  277.         // line 362
  278.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_electronique_liste");
  279.         yield "\">
  280.                 <div class=\"menu-icon-modern\">
  281.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  282.                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  283.                         <polyline points=\"14 2 14 8 20 8\"/>
  284.                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  285.                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  286.                         <path d=\"M10 9h4\"/>
  287.                         <path d=\"M8 9h.01\"/>
  288.                     </svg>
  289.                 </div>
  290.                 <span class=\"menu-title-modern\">factures électroniques</span>
  291.                 ";
  292.         // line 374
  293.         if ((isset($context["has_factures"]) || array_key_exists("has_factures", $context) ? $context["has_factures"] : (function () { throw new RuntimeError('Variable "has_factures" does not exist.', 374, $this->source); })())) {
  294.             // line 375
  295.             yield "                    <div class=\"menu-badge-modern\">
  296.                         <span class=\"badge bg-primary rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">
  297.                             ";
  298.             // line 377
  299.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["donnees_electroniques"]) || array_key_exists("donnees_electroniques", $context) ? $context["donnees_electroniques"] : (function () { throw new RuntimeError('Variable "donnees_electroniques" does not exist.', 377, $this->source); })())), "html", null, true);
  300.             yield "
  301.                         </span>
  302.                     </div>
  303.                 ";
  304.         }
  305.         // line 381
  306.         yield "            </a>
  307.         </div>
  308.         
  309.         ";
  310.         // line 385
  311.         yield "        ";
  312.         if ((isset($context["isActivated"]) || array_key_exists("isActivated", $context) ? $context["isActivated"] : (function () { throw new RuntimeError('Variable "isActivated" does not exist.', 385, $this->source); })())) {
  313.             // line 386
  314.             yield "            <!-- Dashboard Facture Électronique -->
  315.             <div class=\"menu-item-modern\">
  316.                 <a class=\"menu-link-modern\" href=\"";
  317.             // line 388
  318.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("dashboard_facture_electronique");
  319.             yield "\">
  320.                     <div class=\"menu-icon-modern\">
  321.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  322.                             <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  323.                             <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"/>
  324.                             <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"/>
  325.                             <path d=\"M12 11v-4\"/>
  326.                             <circle cx=\"12\" cy=\"9\" r=\"1\" fill=\"currentColor\"/>
  327.                         </svg>
  328.                     </div>
  329.                     <span class=\"menu-title-modern\">Tableau de bord</span>
  330.                 </a>
  331.             </div>
  332.             
  333.             <!-- Compteur de signatures -->
  334.             <div class=\"menu-item-modern\">
  335.                 <div class=\"menu-link-modern\" style=\"cursor: default;\">
  336.                     <div class=\"menu-icon-modern\">
  337.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  338.                             <path d=\"M4 7h16\"/>
  339.                             <path d=\"M7 7v10\"/>
  340.                             <path d=\"M17 7v10\"/>
  341.                             <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/>
  342.                             <path d=\"M9 11h6\"/>
  343.                             <path d=\"M12 14v-3\"/>
  344.                         </svg>
  345.                     </div>
  346.                     <span class=\"menu-title-modern\">Signatures restantes</span>
  347.                     <div class=\"menu-badge-modern\">
  348.                         <span class=\"badge bg-info rounded-pill px-2 py-1\" style=\"font-size: 0.75rem; font-weight: 600;\">
  349.                             ";
  350.             // line 418
  351.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["signatures_remaining"]) || array_key_exists("signatures_remaining", $context) ? $context["signatures_remaining"] : (function () { throw new RuntimeError('Variable "signatures_remaining" does not exist.', 418, $this->source); })()), "html", null, true);
  352.             yield " / ";
  353.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["signatures_total"]) || array_key_exists("signatures_total", $context) ? $context["signatures_total"] : (function () { throw new RuntimeError('Variable "signatures_total" does not exist.', 418, $this->source); })()), "html", null, true);
  354.             yield "
  355.                         </span>
  356.                     </div>
  357.                 </div>
  358.             </div>
  359.             
  360.             <!-- Historique et rapports (accordéon) -->
  361.             <div class=\"menu-accordion-modern\" data-kt-menu-trigger=\"click\">
  362.                 <div class=\"menu-link-modern menu-accordion-trigger\">
  363.                     <div class=\"menu-icon-modern\">
  364.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  365.                             <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  366.                             <polyline points=\"14 2 14 8 20 8\"/>
  367.                             <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  368.                             <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  369.                             <path d=\"M10 9h4\"/>
  370.                             <path d=\"M16 21v-4\"/>
  371.                         </svg>
  372.                     </div>
  373.                     <span class=\"menu-title-modern\">Historique & rapports</span>
  374.                     <div class=\"menu-arrow-modern\">
  375.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  376.                             <path d=\"m9 18 6-6-6-6\"/>
  377.                         </svg>
  378.                     </div>
  379.                 </div>
  380.                 <div class=\"menu-sub-modern\">
  381.                     <div class=\"menu-sub-item-modern\">
  382.                         <a href=\"";
  383.             // line 446
  384.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_electronique_historique_factures");
  385.             yield "\" class=\"menu-sub-link-modern\">
  386.                             <span class=\"menu-bullet-modern\"></span>
  387.                             <span>Factures émises</span>
  388.                         </a>
  389.                     </div>
  390.                     <div class=\"menu-sub-item-modern\">
  391.                         <a href=\"";
  392.             // line 452
  393.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_electronique_historique_paiements");
  394.             yield "\" class=\"menu-sub-link-modern\">
  395.                             <span class=\"menu-bullet-modern\"></span>
  396.                             <span>Paiements</span>
  397.                         </a>
  398.                     </div>
  399.                     <div class=\"menu-sub-item-modern\">
  400.                         <a href=\"";
  401.             // line 458
  402.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_electronique_rapports");
  403.             yield "\" class=\"menu-sub-link-modern\">
  404.                             <span class=\"menu-bullet-modern\"></span>
  405.                             <span>Rapports mensuels</span>
  406.                         </a>
  407.                     </div>
  408.                 </div>
  409.             </div>
  410.         ";
  411.         }
  412.         // line 466
  413.         yield "        
  414.         ";
  415.         // line 468
  416.         yield "        <div class=\"menu-item-modern\">
  417.             <a class=\"menu-link-modern\" href=\"#\" onclick=\"openSupportModal(); return false;\">
  418.                 <div class=\"menu-icon-modern\">
  419.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  420.                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  421.                         <path d=\"M12 16v-4\"/>
  422.                         <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"/>
  423.                     </svg>
  424.                 </div>
  425.                 <span class=\"menu-title-modern\">Aide & support</span>
  426.             </a>
  427.         </div>
  428.         
  429.     </div>
  430. </div>
  431.                 <!-- 📊 TABLEAU DE BORD -->
  432.                 <div class=\"menu-section-modern\">
  433.                     <div class=\"menu-section-header-modern\" data-section=\"dashboard\">
  434.                         <div class=\"menu-section-title-modern\">
  435.                             <span class=\"section-title-text\">TABLEAU DE BORD</span>
  436.                         </div>
  437.                         <div class=\"menu-section-arrow\">
  438.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  439.                                 <path d=\"m6 9 6 6 6-6\"/>
  440.                             </svg>
  441.                         </div>
  442.                     </div>
  443.                     <div class=\"menu-section-content\" id=\"section-dashboard\">
  444.                         <div class=\"menu-item-modern\">
  445.                             <a class=\"menu-link-modern active\" href=\"/dashboard\">
  446.                                 <div class=\"menu-icon-modern\">
  447.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  448.                                         <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"/>
  449.                                         <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"/>
  450.                                         <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"/>
  451.                                         <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"/>
  452.                                     </svg>
  453.                                 </div>
  454.                                 <span class=\"menu-title-modern\">Tableau de Bord</span>
  455.                             </a>
  456.                         </div>
  457.                     </div>
  458.                 </div>
  459.                 ";
  460.         // line 609
  461.         yield "
  462.  <!-- 💼 VENTES (CLIENTS) -->
  463. <div class=\"menu-section-modern\">
  464.     <div class=\"menu-section-header-modern\" data-section=\"ventes\">
  465.         <div class=\"menu-section-title-modern\">
  466.             <span class=\"section-title-text\">VENTES (CLIENTS)</span>
  467.         </div>
  468.         <div class=\"menu-section-arrow\">
  469.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  470.                 <path d=\"m6 9 6 6 6-6\"/>
  471.             </svg>
  472.         </div>
  473.     </div>
  474.     <div class=\"menu-section-content\" id=\"section-ventes\">
  475.         <!-- Devis & Propositions -->
  476.         <div class=\"menu-item-modern\">
  477.             <a class=\"menu-link-modern\" href=\"/devis/\">
  478.                 <div class=\"menu-icon-modern\">
  479.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  480.                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  481.                         <polyline points=\"14,2 14,8 20,8\"/>
  482.                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  483.                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  484.                         <path d=\"M10 9h4\"/>
  485.                     </svg>
  486.                 </div>
  487.                 <span class=\"menu-title-modern\">Devis & Propositions</span>
  488.             </a>
  489.         </div>
  490.         
  491.         <!-- Bons de Livraison -->
  492.         <div class=\"menu-item-modern\">
  493.             <a class=\"menu-link-modern\" href=\"";
  494.         // line 641
  495.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("devis_index_bon_livraison");
  496.         yield "\">
  497.                 <div class=\"menu-icon-modern\">
  498.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  499.                         <path d=\"M12 2v8l4-4\"/>
  500.                         <path d=\"M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0z\"/>
  501.                         <path d=\"M16 12l-4 4-4-4\"/>
  502.                         <path d=\"M12 16V8\"/>
  503.                     </svg>
  504.                 </div>
  505.                 <span class=\"menu-title-modern\">Bons de Livraison</span>
  506.             </a>
  507.         </div>
  508.         <!-- Bons de Réparation -->
  509.         <div class=\"menu-item-modern\">
  510.             <a class=\"menu-link-modern\" href=\"";
  511.         // line 656
  512.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("reparation_index");
  513.         yield "\">
  514.                 <div class=\"menu-icon-modern\">
  515.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  516.                         <path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"/>
  517.                     </svg>
  518.                 </div>
  519.                 <span class=\"menu-title-modern\">Bons de Réparation</span>
  520.             </a>
  521.         </div>
  522.         
  523.         <!-- Factures Clients -->
  524.         <div class=\"menu-item-modern\">
  525.             <a class=\"menu-link-modern\" href=\"/facture/\">
  526.                 <div class=\"menu-icon-modern\">
  527.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  528.                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  529.                         <polyline points=\"14,2 14,8 20,8\"/>
  530.                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  531.                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  532.                         <path d=\"M10 9h4\"/>
  533.                         <path d=\"M12 21v-4\"/>
  534.                     </svg>
  535.                 </div>
  536.                 <span class=\"menu-title-modern\">Factures Clients</span>
  537.             </a>
  538.         </div>
  539.         
  540.         <!-- Retours Clients -->
  541.         <div class=\"menu-item-modern\">
  542.             <a class=\"menu-link-modern\" href=\"";
  543.         // line 685
  544.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("retour_client_index");
  545.         yield "\">
  546.                 <div class=\"menu-icon-modern\">
  547.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  548.                         <path d=\"m3 3 3 9h12l3-9H3z\"/>
  549.                         <path d=\"M6 12h12\"/>
  550.                         <path d=\"M12 3v18\"/>
  551.                         <path d=\"M15 6l-3 3 3 3\"/>
  552.                         <path d=\"M9 6l3-3-3-3\"/>
  553.                     </svg>
  554.                 </div>
  555.                 <span class=\"menu-title-modern\">Retours Clients</span>
  556.             </a>
  557.         </div>
  558.         
  559.         <!-- Point de Vente PRO -->
  560.         <div class=\"menu-item-modern\">
  561.             <a class=\"menu-link-modern\" href=\"/caisse/\">
  562.                 <div class=\"menu-icon-modern\">
  563.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  564.                         <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  565.                         <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"/>
  566.                         <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"/>
  567.                         <circle cx=\"12\" cy=\"10\" r=\"2\"/>
  568.                         <path d=\"M12 14v-4\"/>
  569.                         <path d=\"M16 10h4\"/>
  570.                     </svg>
  571.                 </div>
  572.                 <span class=\"menu-title-modern\">Point de Vente PRO</span>
  573.                 <div class=\"menu-badge-modern\">
  574.                     <span class=\"badge-new-modern\">PRO</span>
  575.                 </div>
  576.             </a>
  577.         </div>
  578.         <!-- Rapports de vente (par salarié) -->
  579.         <div class=\"menu-item-modern\">
  580.             <a class=\"menu-link-modern\" href=\"";
  581.         // line 721
  582.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("caisse_rapports_vendeurs");
  583.         yield "\">
  584.                 <div class=\"menu-icon-modern\">
  585.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  586.                         <path d=\"M3 3v18h18\"/>
  587.                         <path d=\"M18 17V9\"/>
  588.                         <path d=\"M13 17V5\"/>
  589.                         <path d=\"M8 17v-3\"/>
  590.                     </svg>
  591.                 </div>
  592.                 <span class=\"menu-title-modern\">Rapports de vente</span>
  593.             </a>
  594.         </div>
  595.         <!-- Clôtures de caisse -->
  596.         <div class=\"menu-item-modern\">
  597.             <a class=\"menu-link-modern\" href=\"";
  598.         // line 736
  599.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("caisse_cloture_index");
  600.         yield "\">
  601.                 <div class=\"menu-icon-modern\">
  602.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  603.                         <rect x=\"3\" y=\"11\" width=\"18\" height=\"10\" rx=\"2\"/>
  604.                         <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"/>
  605.                     </svg>
  606.                 </div>
  607.                 <span class=\"menu-title-modern\">Clôtures de caisse</span>
  608.             </a>
  609.         </div>
  610.     </div>
  611. </div>
  612. ";
  613.         // line 847
  614.         yield "<!-- 🏪 ACHATS (FOURNISSEURS) -->
  615. <div class=\"menu-section-modern\">
  616.     <div class=\"menu-section-header-modern\" data-section=\"achats\">
  617.         <div class=\"menu-section-title-modern\">
  618.             <span class=\"section-title-text\">ACHATS (FOURNISSEURS)</span>
  619.         </div>
  620.         <div class=\"menu-section-arrow\">
  621.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  622.                 <path d=\"m6 9 6 6 6-6\"/>
  623.             </svg>
  624.         </div>
  625.     </div>
  626.     <div class=\"menu-section-content\" id=\"section-achats\">
  627.         <!-- Fournisseurs -->
  628.         <div class=\"menu-item-modern\">
  629.             <a class=\"menu-link-modern\" href=\"/fournisseur/\">
  630.                 <div class=\"menu-icon-modern\">
  631.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  632.                         <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>
  633.                         <circle cx=\"9\" cy=\"7\" r=\"4\"/>
  634.                         <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>
  635.                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  636.                     </svg>
  637.                 </div>
  638.                 <span class=\"menu-title-modern\">Fournisseurs</span>
  639.             </a>
  640.         </div>
  641.         
  642.         <!-- Bons de Commande Achat -->
  643.         <div class=\"menu-item-modern\">
  644.             <a class=\"menu-link-modern\" href=\"";
  645.         // line 877
  646.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("devis_index_bon_commande");
  647.         yield "\">
  648.                 <div class=\"menu-icon-modern\">
  649.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  650.                         <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\"/>
  651.                         <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/>
  652.                         <path d=\"M8 11h8\"/>
  653.                         <path d=\"M8 15h8\"/>
  654.                         <circle cx=\"12\" cy=\"4\" r=\"1\"/>
  655.                     </svg>
  656.                 </div>
  657.                 <span class=\"menu-title-modern\">Bons de Commande Achat</span>
  658.             </a>
  659.         </div>
  660.         
  661.         <!-- Réceptions (Entrées Stock) -->
  662.         <div class=\"menu-item-modern\">
  663.             <a class=\"menu-link-modern\" href=\"/entrees/\">
  664.                 <div class=\"menu-icon-modern\">
  665.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  666.                         <path d=\"M5 12h14\"/>
  667.                         <path d=\"M12 5v14\"/>
  668.                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/>
  669.                         <path d=\"M8 8h8v8H8z\"/>
  670.                     </svg>
  671.                 </div>
  672.                 <span class=\"menu-title-modern\">Réceptions (Entrées Stock)</span>
  673.             </a>
  674.         </div>
  675.         
  676.         <!-- Retours Fournisseurs -->
  677.         <div class=\"menu-item-modern\">
  678.             <a class=\"menu-link-modern\" href=\"";
  679.         // line 908
  680.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("retour_fournisseur_index");
  681.         yield "\">
  682.                 <div class=\"menu-icon-modern\">
  683.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  684.                         <path d=\"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/>
  685.                         <polyline points=\"9 22 9 12 15 12 15 22\"/>
  686.                         <path d=\"m9 12 3-3 3 3\"/>
  687.                         <path d=\"M12 16v-4\"/>
  688.                     </svg>
  689.                 </div>
  690.                 <span class=\"menu-title-modern\">Retours Fournisseurs</span>
  691.             </a>
  692.         </div>
  693.         
  694.         <!-- Factures Fournisseurs -->
  695.         <div class=\"menu-item-modern\">
  696.             <a class=\"menu-link-modern\" href=\"";
  697.         // line 923
  698.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("facture_fournisseur_index");
  699.         yield "\">
  700.                 <div class=\"menu-icon-modern\">
  701.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  702.                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  703.                         <polyline points=\"14,2 14,8 20,8\"/>
  704.                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  705.                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  706.                         <path d=\"M8 9h8\"/>
  707.                         <path d=\"M12 21v-4\"/>
  708.                     </svg>
  709.                 </div>
  710.                 <span class=\"menu-title-modern\">Factures Fournisseurs</span>
  711.             </a>
  712.         </div>
  713.     </div>
  714. </div>
  715.                 <!-- 📦 STOCK & LOGISTIQUE -->
  716.                 <div class=\"menu-section-modern\">
  717.                     <div class=\"menu-section-header-modern\" data-section=\"stock\">
  718.                         <div class=\"menu-section-title-modern\">
  719.                             <span class=\"section-title-text\">STOCK & LOGISTIQUE</span>
  720.                         </div>
  721.                         <div class=\"menu-section-arrow\">
  722.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  723.                                 <path d=\"m6 9 6 6 6-6\"/>
  724.                             </svg>
  725.                         </div>
  726.                     </div>
  727.                     <div class=\"menu-section-content\" id=\"section-stock\">
  728.                         <!-- Stock Global -->
  729.                         <div class=\"menu-item-modern\">
  730.                             <a class=\"menu-link-modern\" href=\"/stock/\">
  731.                                 <div class=\"menu-icon-modern\">
  732.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  733.                                         <path d=\"M3 9h18v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9Z\"/>
  734.                                         <path d=\"m3 9 2.45-4.9A2 2 0 0 1 7.24 3h9.52a2 2 0 0 1 1.8 1.1L21 9\"/>
  735.                                         <path d=\"M12 3v6\"/>
  736.                                         <path d=\"M9 12l3 3 3-3\"/>
  737.                                         <path d=\"M12 15v6\"/>
  738.                                     </svg>
  739.                                 </div>
  740.                                 <span class=\"menu-title-modern\">Stock Global</span>
  741.                             </a>
  742.                         </div>
  743.                         
  744.                         <!-- Expéditions (Sorties) -->
  745.                         <div class=\"menu-item-modern\">
  746.                             <a class=\"menu-link-modern\" href=\"/sorties/\">
  747.                                 <div class=\"menu-icon-modern\">
  748.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  749.                                         <path d=\"M5 12h14\"/>
  750.                                         <path d=\"M12 5l7 7-7 7\"/>
  751.                                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/>
  752.                                         <path d=\"M8 8h8v8H8z\"/>
  753.                                     </svg>
  754.                                 </div>
  755.                                 <span class=\"menu-title-modern\">Expéditions (Sorties)</span>
  756.                             </a>
  757.                         </div>
  758.                         
  759.                         <!-- Réceptions (Entrées) -->
  760.                         <div class=\"menu-item-modern\">
  761.                             <a class=\"menu-link-modern\" href=\"/entrees/\">
  762.                                 <div class=\"menu-icon-modern\">
  763.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  764.                                         <path d=\"M5 12h14\"/>
  765.                                         <path d=\"M12 5v14\"/>
  766.                                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/>
  767.                                         <path d=\"M8 8h8v8H8z\"/>
  768.                                     </svg>
  769.                                 </div>
  770.                                 <span class=\"menu-title-modern\">Réceptions (Entrées)</span>
  771.                             </a>
  772.                         </div>
  773.                         
  774.                         <!-- Inventaire -->
  775.                         <div class=\"menu-item-modern\">
  776.                             <a class=\"menu-link-modern\" href=\"";
  777.         // line 1000
  778.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("inventaire_index");
  779.         yield "\">
  780.                                 <div class=\"menu-icon-modern\">
  781.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  782.                                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/>
  783.                                         <path d=\"M3 9h18\"/>
  784.                                         <path d=\"M9 21V9\"/>
  785.                                         <path d=\"M15 21V9\"/>
  786.                                         <path d=\"M12 9v12\"/>
  787.                                     </svg>
  788.                                 </div>
  789.                                 <span class=\"menu-title-modern\">Inventaire</span>
  790.                             </a>
  791.                         </div>
  792.                     </div>
  793.                 </div>
  794.                 <!-- 👥 CONTACTS & DONNÉES -->
  795.                 <div class=\"menu-section-modern\">
  796.                     <div class=\"menu-section-header-modern\" data-section=\"contacts\">
  797.                         <div class=\"menu-section-title-modern\">
  798.                             <span class=\"section-title-text\">CONTACTS & DONNÉES</span>
  799.                         </div>
  800.                         <div class=\"menu-section-arrow\">
  801.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  802.                                 <path d=\"m6 9 6 6 6-6\"/>
  803.                             </svg>
  804.                         </div>
  805.                     </div>
  806.                     <div class=\"menu-section-content\" id=\"section-contacts\">
  807.                         <!-- Clients -->
  808.                         <div class=\"menu-item-modern\">
  809.                             <a class=\"menu-link-modern\" href=\"/client/\">
  810.                                 <div class=\"menu-icon-modern\">
  811.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  812.                                         <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  813.                                         <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  814.                                         <path d=\"M16 21v-2a4 4 0 0 0-4-4H8\"/>
  815.                                     </svg>
  816.                                 </div>
  817.                                 <span class=\"menu-title-modern\">Clients</span>
  818.                             </a>
  819.                         </div>
  820.                         
  821.                         <!-- Fournisseurs -->
  822.                         <div class=\"menu-item-modern\">
  823.                             <a class=\"menu-link-modern\" href=\"/fournisseur/\">
  824.                                 <div class=\"menu-icon-modern\">
  825.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  826.                                         <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>
  827.                                         <circle cx=\"9\" cy=\"7\" r=\"4\"/>
  828.                                         <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>
  829.                                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  830.                                     </svg>
  831.                                 </div>
  832.                                 <span class=\"menu-title-modern\">Fournisseurs</span>
  833.                             </a>
  834.                         </div>
  835.                         
  836.                         <!-- Produits & Services -->
  837.                         <div class=\"menu-item-modern\">
  838.                             <a class=\"menu-link-modern\" href=\"/produit/\">
  839.                                 <div class=\"menu-icon-modern\">
  840.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  841.                                         <path d=\"m7.5 4.27 9 5.15\"/>
  842.                                         <path d=\"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\"/>
  843.                                         <path d=\"m3.3 7 8.7 5 8.7-5\"/>
  844.                                         <path d=\"M12 22V12\"/>
  845.                                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  846.                                     </svg>
  847.                                 </div>
  848.                                 <span class=\"menu-title-modern\">Produits & Services</span>
  849.                             </a>
  850.                         </div>
  851.                     </div>
  852.                 </div>
  853.                 <!-- 📈 MARKETING (PRO) -->
  854.                 <div class=\"menu-section-modern\">
  855.                     <div class=\"menu-section-header-modern\" data-section=\"marketing\">
  856.                         <div class=\"menu-section-title-modern\">
  857.                             <span class=\"section-title-text\">MARKETING (PRO)</span>
  858.                         </div>
  859.                         <div class=\"menu-section-arrow\">
  860.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  861.                                 <path d=\"m6 9 6 6 6-6\"/>
  862.                             </svg>
  863.                         </div>
  864.                     </div>
  865.                     <div class=\"menu-section-content\" id=\"section-marketing\">
  866.                         <!-- Prospection Email PRO -->
  867.                         <div class=\"menu-item-modern\">
  868.                             <a class=\"menu-link-modern\" href=\"/prospect/email\">
  869.                                 <div class=\"menu-icon-modern\">
  870.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  871.                                         <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"/>
  872.                                         <polyline points=\"22,6 12,13 2,6\"/>
  873.                                         <path d=\"M12 13l10-7\"/>
  874.                                         <path d=\"M2 6l10 7 10-7\"/>
  875.                                     </svg>
  876.                                 </div>
  877.                                 <span class=\"menu-title-modern\">Prospection Email PRO</span>
  878.                                 <div class=\"menu-badge-modern\">
  879.                                     <span class=\"badge-new-modern\">PRO</span>
  880.                                 </div>
  881.                             </a>
  882.                         </div>
  883.                         
  884.                         <!-- Prospection IA PRO -->
  885.                         <div class=\"menu-item-modern\">
  886.                             <a class=\"menu-link-modern\" href=\"/prospect/centres\">
  887.                                 <div class=\"menu-icon-modern\">
  888.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  889.                                         <path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"/>
  890.                                         <path d=\"M12 2.5v19\"/>
  891.                                         <path d=\"M2 8l10 6 10-6\"/>
  892.                                         <path d=\"M12 22V12\"/>
  893.                                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  894.                                     </svg>
  895.                                 </div>
  896.                                 <span class=\"menu-title-modern\">Prospection IA PRO</span>
  897.                                 <div class=\"menu-badge-modern\">
  898.                                     <span class=\"badge-new-modern\">PRO</span>
  899.                                 </div>
  900.                             </a>
  901.                         </div>
  902.                         
  903.                         <!-- Dashboard Prospect PRO -->
  904.                         <div class=\"menu-item-modern\">
  905.                             <a class=\"menu-link-modern\" href=\"/dashboard-prospect\">
  906.                                 <div class=\"menu-icon-modern\">
  907.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  908.                                         <line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"10\"/>
  909.                                         <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"4\"/>
  910.                                         <line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"16\"/>
  911.                                         <circle cx=\"12\" cy=\"10\" r=\"2\"/>
  912.                                         <circle cx=\"18\" cy=\"4\" r=\"2\"/>
  913.                                         <circle cx=\"6\" cy=\"16\" r=\"2\"/>
  914.                                         <path d=\"M12 10v10\"/>
  915.                                         <path d=\"M18 4v16\"/>
  916.                                         <path d=\"M6 16v4\"/>
  917.                                     </svg>
  918.                                 </div>
  919.                                 <span class=\"menu-title-modern\">Dashboard Prospect PRO</span>
  920.                                 <div class=\"menu-badge-modern\">
  921.                                     <span class=\"badge-new-modern\">PRO</span>
  922.                                 </div>
  923.                             </a>
  924.                         </div>
  925.                         
  926.                         <!-- Site Web Pro -->
  927.                         <div class=\"menu-accordion-modern\" data-kt-menu-trigger=\"click\">
  928.                             <div class=\"menu-link-modern menu-accordion-trigger\">
  929.                                 <div class=\"menu-icon-modern\">
  930.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  931.                                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  932.                                         <path d=\"m4.93 4.93 4.24 4.24\"/>
  933.                                         <path d=\"m14.83 9.17 4.24-4.24\"/>
  934.                                         <path d=\"m14.83 14.83 4.24 4.24\"/>
  935.                                         <path d=\"m9.17 14.83-4.24 4.24\"/>
  936.                                         <path d=\"M12 2v20\"/>
  937.                                         <path d=\"M2 12h20\"/>
  938.                                     </svg>
  939.                                 </div>
  940.                                 <span class=\"menu-title-modern\">Site Web Pro</span>
  941.                                 <div class=\"menu-arrow-modern\">
  942.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  943.                                         <path d=\"m9 18 6-6-6-6\"/>
  944.                                     </svg>
  945.                                 </div>
  946.                             </div>
  947.                             <div class=\"menu-sub-modern\">
  948.                                 <div class=\"menu-sub-item-modern\">
  949.                                     <a href=\"/frontend\" class=\"menu-sub-link-modern\">
  950.                                         <span class=\"menu-bullet-modern\"></span>
  951.                                         <span>Créer Mon Site</span>
  952.                                     </a>
  953.                                 </div>
  954.                                 <div class=\"menu-sub-item-modern\">
  955.                                     <a href=\"/voir-mon-site\" class=\"menu-sub-link-modern\">
  956.                                         <span class=\"menu-bullet-modern\"></span>
  957.                                         <span>Voir Mon Site</span>
  958.                                     </a>
  959.                                 </div>
  960.                             </div>
  961.                         </div>
  962.                     </div>
  963.                 </div>
  964.                 <!-- ⚙️ PARAMÈTRES -->
  965.                 <div class=\"menu-section-modern\">
  966.                     <div class=\"menu-section-header-modern\" data-section=\"parametres\">
  967.                         <div class=\"menu-section-title-modern\">
  968.                             <span class=\"section-title-text\">PARAMÈTRES</span>
  969.                         </div>
  970.                         <div class=\"menu-section-arrow\">
  971.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  972.                                 <path d=\"m6 9 6 6 6-6\"/>
  973.                             </svg>
  974.                         </div>
  975.                     </div>
  976.                     <div class=\"menu-section-content\" id=\"section-parametres\">
  977.                         <!-- Mon Entreprise -->
  978.                         <div class=\"menu-item-modern\">
  979.                             <a class=\"menu-link-modern\" href=\"/entreprise/\">
  980.                                 <div class=\"menu-icon-modern\">
  981.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  982.                                         <path d=\"M3 21h18\"/>
  983.                                         <path d=\"M5 21V7l8-4v18\"/>
  984.                                         <path d=\"M19 21V11l-6-4\"/>
  985.                                         <path d=\"M9 9h6\"/>
  986.                                         <path d=\"M9 13h6\"/>
  987.                                         <path d=\"M9 17h6\"/>
  988.                                     </svg>
  989.                                 </div>
  990.                                 <span class=\"menu-title-modern\">Mon Entreprise</span>
  991.                             </a>
  992.                         </div>
  993.                         <!-- Salariés -->
  994.                         <div class=\"menu-item-modern\">
  995.                             <a class=\"menu-link-modern\" href=\"";
  996.         // line 1220
  997.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("salarie_index");
  998.         yield "\">
  999.                                 <div class=\"menu-icon-modern\">
  1000.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1001.                                         <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"/>
  1002.                                         <circle cx=\"9\" cy=\"7\" r=\"4\"/>
  1003.                                         <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"/>
  1004.                                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  1005.                                     </svg>
  1006.                                 </div>
  1007.                                 <span class=\"menu-title-modern\">Salariés</span>
  1008.                             </a>
  1009.                         </div>
  1010.                         <!-- Mon Compte -->
  1011.                         <div class=\"menu-item-modern\">
  1012.                             <a class=\"menu-link-modern\" href=\"\">
  1013.                                 <div class=\"menu-icon-modern\">
  1014.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1015.                                         <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  1016.                                         <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  1017.                                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  1018.                                         <path d=\"M12 12v4\"/>
  1019.                                     </svg>
  1020.                                 </div>
  1021.                                 <span class=\"menu-title-modern\">Mon Compte</span>
  1022.                             </a>
  1023.                         </div>
  1024.                         
  1025.                         <!-- Intégrations -->
  1026.                         <div class=\"menu-item-modern\">
  1027.                             <a class=\"menu-link-modern\" href=\"\">
  1028.                                 <div class=\"menu-icon-modern\">
  1029.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1030.                                         <path d=\"M12 2v8l4-4\"/>
  1031.                                         <path d=\"M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0z\"/>
  1032.                                         <path d=\"M8 12h8\"/>
  1033.                                         <path d=\"m12 16 4-4-4-4\"/>
  1034.                                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  1035.                                     </svg>
  1036.                                 </div>
  1037.                                 <span class=\"menu-title-modern\">Intégrations</span>
  1038.                             </a>
  1039.                         </div>
  1040.                         
  1041.                         <!-- Équipe & Utilisateurs (Admin seulement) -->
  1042.                         ";
  1043.         // line 1265
  1044.         if ($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_ADMIN")) {
  1045.             // line 1266
  1046.             yield "                        <div class=\"menu-item-modern\">
  1047.                             <a class=\"menu-link-modern\" href=\"/utilisateurs/\">
  1048.                                 <div class=\"menu-icon-modern\">
  1049.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1050.                                         <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"/>
  1051.                                         <circle cx=\"9\" cy=\"7\" r=\"4\"/>
  1052.                                         <path d=\"m22 21-3-3m0 0a5.5 5.5 0 1 0-7.78-7.78 5.5 5.5 0 0 0 7.78 7.78Z\"/>
  1053.                                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  1054.                                     </svg>
  1055.                                 </div>
  1056.                                 <span class=\"menu-title-modern\">Équipe & Utilisateurs</span>
  1057.                                 <div class=\"menu-badge-modern\">
  1058.                                     <span class=\"badge-admin-modern\">ADMIN</span>
  1059.                                 </div>
  1060.                             </a>
  1061.                         </div>
  1062.                         ";
  1063.         }
  1064.         // line 1283
  1065.         yield "                    </div>
  1066.                 </div>
  1067. <!-- 🎫 TICKETS & SUPPORT -->
  1068. <div class=\"menu-section-modern\">
  1069.     <div class=\"menu-section-header-modern\" data-section=\"tickets\">
  1070.         <div class=\"menu-section-title-modern\">
  1071.             <span class=\"section-title-text\">TICKETS & SUPPORT</span>
  1072.                                                 <div class=\"menu-badge-modern\">
  1073.                         <span class=\"badge-new-modern\">NEW</span>
  1074.                     </div>
  1075.         </div>
  1076.         <div class=\"menu-section-arrow\">
  1077.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1078.                 <path d=\"m6 9 6 6 6-6\"/>
  1079.             </svg>
  1080.         </div>
  1081.     </div>
  1082.     <div class=\"menu-section-content\" id=\"section-tickets\">
  1083.         
  1084.         <!-- ✅ LIEN PRINCIPAL - DYNAMIQUE SELON LE RÔLE -->
  1085.         <div class=\"menu-item-modern\">
  1086.             <a class=\"menu-link-modern\" href=\"";
  1087.         // line 1308
  1088.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("ticket_index");
  1089.         yield "\">
  1090.                 <div class=\"menu-icon-modern\">
  1091.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1092.                         <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/>
  1093.                         <path d=\"M8 10h.01\"/>
  1094.                         <path d=\"M12 10h.01\"/>
  1095.                         <path d=\"M16 10h.01\"/>
  1096.                     </svg>
  1097.                 </div>
  1098.                 <span class=\"menu-title-modern\">
  1099.                     ";
  1100.         // line 1318
  1101.         if ($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_ADMIN")) {
  1102.             // line 1319
  1103.             yield "                        Gestion des tickets
  1104.                     ";
  1105.         } else {
  1106.             // line 1321
  1107.             yield "                        Mes tickets
  1108.                     ";
  1109.         }
  1110.         // line 1323
  1111.         yield "                </span>
  1112.                 
  1113.                 <!-- BADGE AVEC NOMBRE DE TICKETS -->
  1114.                 <div class=\"menu-badge-modern\">
  1115.                     ";
  1116.         // line 1327
  1117.         $context["ticket_count"] = (($context["tickets_count"]) ?? (0));
  1118.         // line 1328
  1119.         yield "                    ";
  1120.         if ((1 === CoreExtension::compare((isset($context["ticket_count"]) || array_key_exists("ticket_count", $context) ? $context["ticket_count"] : (function () { throw new RuntimeError('Variable "ticket_count" does not exist.', 1328, $this->source); })()), 0))) {
  1121.             // line 1329
  1122.             yield "                        <span class=\"badge bg-";
  1123.             if ($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_ADMIN")) {
  1124.                 yield "primary";
  1125.             } else {
  1126.                 yield "info";
  1127.             }
  1128.             yield " rounded-pill px-2 py-1\" 
  1129.                               style=\"font-size: 0.7rem; background: ";
  1130.             // line 1330
  1131.             if ($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_ADMIN")) {
  1132.                 yield "#3b82f6";
  1133.             } else {
  1134.                 yield "#0ea5e9";
  1135.             }
  1136.             yield "; color: white;\">
  1137.                             ";
  1138.             // line 1331
  1139.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["ticket_count"]) || array_key_exists("ticket_count", $context) ? $context["ticket_count"] : (function () { throw new RuntimeError('Variable "ticket_count" does not exist.', 1331, $this->source); })()), "html", null, true);
  1140.             yield "
  1141.                         </span>
  1142.                     ";
  1143.         } else {
  1144.             // line 1334
  1145.             yield "                        <span class=\"badge-dot-modern\"></span>
  1146.                     ";
  1147.         }
  1148.         // line 1336
  1149.         yield "                </div>
  1150.             </a>
  1151.         </div>
  1152.         
  1153.         <!-- LIEN RAPIDE: CRÉER UN TICKET (OPTIONNEL) -->
  1154.         <div class=\"menu-item-modern\">
  1155.             <a class=\"menu-link-modern\" href=\"#\" onclick=\"openTicketModal(); return false;\">
  1156.                 <div class=\"menu-icon-modern\">
  1157.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1158.                         <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/>
  1159.                         <line x1=\"9\" y1=\"10\" x2=\"15\" y2=\"10\"/>
  1160.                         <line x1=\"12\" y1=\"7\" x2=\"12\" y2=\"13\"/>
  1161.                     </svg>
  1162.                 </div>
  1163.                 <span class=\"menu-title-modern\">Nouveau ticket</span>
  1164.                 <div class=\"menu-badge-modern\">
  1165.                     <span class=\"badge-new-modern\" style=\"background: #10b981;\">+</span>
  1166.                 </div>
  1167.             </a>
  1168.         </div>
  1169.         
  1170.     </div>
  1171. </div>
  1172. <!-- 🎓 FORMATION & TUTORIELS -->
  1173. <div class=\"menu-section-modern\">
  1174.     <div class=\"menu-section-header-modern\" data-section=\"formation\">
  1175.         <div class=\"menu-section-title-modern\">
  1176.             <span class=\"section-title-text\">FORMATION & TUTORIELS</span>
  1177.             <div class=\"menu-badge-modern\">
  1178.                 <span class=\"badge-new-modern\">NEW</span>
  1179.             </div>
  1180.         </div>
  1181.         <div class=\"menu-section-arrow\">
  1182.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1183.                 <path d=\"m6 9 6 6 6-6\"/>
  1184.             </svg>
  1185.         </div>
  1186.     </div>
  1187.     <div class=\"menu-section-content\" id=\"section-formation\">
  1188.         
  1189.         <!-- Centre de formation -->
  1190.         <div class=\"menu-item-modern\">
  1191.             <a class=\"menu-link-modern\" href=\"";
  1192.         // line 1378
  1193.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("formation_index");
  1194.         yield "\">
  1195.                 <div class=\"menu-icon-modern\">
  1196.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1197.                         <path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"/>
  1198.                         <polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"/>
  1199.                         <line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"/>
  1200.                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  1201.                     </svg>
  1202.                 </div>
  1203.                 <span class=\"menu-title-modern\">Centre de formation</span>
  1204.                 <div class=\"menu-badge-modern\">
  1205.                     <span class=\"badge bg-primary rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">
  1206.                         6
  1207.                     </span>
  1208.                 </div>
  1209.             </a>
  1210.         </div>
  1211.         <!-- Séparateur -->
  1212.         <div style=\"height: 1px; background: linear-gradient(90deg, transparent, #e2e8f0, transparent); margin: 0.5rem 1rem;\"></div>
  1213.         <!-- Démo générale -->
  1214.         <div class=\"menu-item-modern\">
  1215.             <a class=\"menu-link-modern\" href=\"";
  1216.         // line 1401
  1217.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("formation_video", ["id" => 1]);
  1218.         yield "\">
  1219.                 <div class=\"menu-icon-modern\">
  1220.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1221.                         <polygon points=\"5 3 19 12 5 21 5 3\"/>
  1222.                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  1223.                     </svg>
  1224.                 </div>
  1225.                 <span class=\"menu-title-modern\">Démo Mazego complète</span>
  1226.                 <div class=\"menu-badge-modern\">
  1227.                     <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.65rem;\">15 min</span>
  1228.                 </div>
  1229.             </a>
  1230.         </div>
  1231.         <!-- Tutoriels par catégorie (accordéon) -->
  1232.         <div class=\"menu-accordion-modern\" data-kt-menu-trigger=\"click\">
  1233.             <div class=\"menu-link-modern menu-accordion-trigger\">
  1234.                 <div class=\"menu-icon-modern\">
  1235.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1236.                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>
  1237.                         <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"9\"/>
  1238.                         <line x1=\"9\" y1=\"13\" x2=\"15\" y2=\"13\"/>
  1239.                         <line x1=\"9\" y1=\"17\" x2=\"15\" y2=\"17\"/>
  1240.                         <circle cx=\"6\" cy=\"9\" r=\"1\"/>
  1241.                         <circle cx=\"6\" cy=\"13\" r=\"1\"/>
  1242.                         <circle cx=\"6\" cy=\"17\" r=\"1\"/>
  1243.                     </svg>
  1244.                 </div>
  1245.                 <span class=\"menu-title-modern\">Tutoriels par module</span>
  1246.                 <div class=\"menu-arrow-modern\">
  1247.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1248.                         <path d=\"m9 18 6-6-6-6\"/>
  1249.                     </svg>
  1250.                 </div>
  1251.             </div>
  1252.             <div class=\"menu-sub-modern\">
  1253.                 <div class=\"menu-sub-item-modern\">
  1254.                     <a href=\"";
  1255.         // line 1438
  1256.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("formation_video", ["id" => 2]);
  1257.         yield "\" class=\"menu-sub-link-modern\">
  1258.                         <span class=\"menu-bullet-modern\"></span>
  1259.                         <span>Créer un devis</span>
  1260.                     </a>
  1261.                 </div>
  1262.                 <div class=\"menu-sub-item-modern\">
  1263.                     <a href=\"";
  1264.         // line 1444
  1265.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("formation_video", ["id" => 3]);
  1266.         yield "\" class=\"menu-sub-link-modern\">
  1267.                         <span class=\"menu-bullet-modern\"></span>
  1268.                         <span>Créer une facture</span>
  1269.                     </a>
  1270.                 </div>
  1271.                 <div class=\"menu-sub-item-modern\">
  1272.                     <a href=\"";
  1273.         // line 1450
  1274.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("formation_video", ["id" => 4]);
  1275.         yield "\" class=\"menu-sub-link-modern\">
  1276.                         <span class=\"menu-bullet-modern\"></span>
  1277.                         <span>Bon de commande</span>
  1278.                     </a>
  1279.                 </div>
  1280.                 <div class=\"menu-sub-item-modern\">
  1281.                     <a href=\"";
  1282.         // line 1456
  1283.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("formation_video", ["id" => 5]);
  1284.         yield "\" class=\"menu-sub-link-modern\">
  1285.                         <span class=\"menu-bullet-modern\"></span>
  1286.                         <span>Bon de livraison</span>
  1287.                     </a>
  1288.                 </div>
  1289.                 <div class=\"menu-sub-item-modern\">
  1290.                     <a href=\"";
  1291.         // line 1462
  1292.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("formation_video", ["id" => 6]);
  1293.         yield "\" class=\"menu-sub-link-modern\">
  1294.                         <span class=\"menu-bullet-modern\"></span>
  1295.                         <span>Prospection BtoB</span>
  1296.                     </a>
  1297.                 </div>
  1298.             </div>
  1299.         </div>
  1300.         <!-- Documentation -->
  1301.         <div class=\"menu-item-modern\">
  1302.             <a class=\"menu-link-modern\" href=\"https://www.canva.com/design/DAGsM4IzHX4/-xVezdK8KNcDQowJgMm6Xw/view?utm_content=DAGsM4IzHX4&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=hab518c912f\"  >
  1303.                 <div class=\"menu-icon-modern\">
  1304.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1305.                         <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"/>
  1306.                         <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"/>
  1307.                         <path d=\"M8 7h8\"/>
  1308.                         <path d=\"M8 11h8\"/>
  1309.                         <path d=\"M8 15h6\"/>
  1310.                     </svg>
  1311.                 </div>
  1312.                 <span class=\"menu-title-modern\">Documentation</span>
  1313.                 <div class=\"menu-badge-modern\">
  1314.                     <span class=\"badge-dev-modern\">SOON</span>
  1315.                 </div>
  1316.             </a>
  1317.         </div>
  1318.     </div>
  1319. </div>
  1320.             </div>
  1321.         </div>
  1322.     </div>
  1323.  
  1324.     <!-- Footer moderne avec nouveaux boutons -->
  1325. <div class=\"aside-footer-modern\" id=\"kt_aside_footer\">
  1326.     <!-- Support & Ticket Buttons -->
  1327.     <div class=\"support-actions-modern\">
  1328.         <!-- Bouton Créer un ticket -->
  1329.         <button class=\"support-btn-modern ticket-btn\" onclick=\"openTicketModal()\">
  1330.             <div class=\"support-icon\">
  1331.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1332.                     <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/>
  1333.                     <path d=\"M8 10h.01\"/>
  1334.                     <path d=\"M12 10h.01\"/>
  1335.                     <path d=\"M16 10h.01\"/>
  1336.                 </svg>
  1337.             </div>
  1338.             <span class=\"support-text\">Créer un ticket</span>
  1339.             <span class=\"badge-new-ticket\">NEW</span>
  1340.         </button>
  1341.         
  1342.         <!-- Bouton Support -->
  1343.         <button class=\"support-btn-modern\" onclick=\"openSupportModal()\">
  1344.             <div class=\"support-icon\">
  1345.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1346.                     <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  1347.                     <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"/>
  1348.                     <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"/>
  1349.                 </svg>
  1350.             </div>
  1351.             <span class=\"support-text\">Support</span>
  1352.         </button>
  1353.                 <!-- Dans le aside-footer-modern, après les boutons support -->
  1354.         ";
  1355.         // line 1567
  1356.         yield "
  1357.     </div>
  1358.     
  1359.     <!-- User panel existant -->
  1360.     <div class=\"user-panel-modern\">
  1361.         <div class=\"user-avatar-modern\">
  1362.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1363.                 <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  1364.                 <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  1365.             </svg>
  1366.         </div>
  1367.         <div class=\"user-info-modern\">
  1368.             <div class=\"user-name-modern\">
  1369.                 ";
  1370.         // line 1582
  1371.         if ((CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 1582, $this->source); })()), "user", [], "any", false, false, false, 1582) && CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, ($context["app"] ?? null), "user", [], "any", false, true, false, 1582), "firstname", [], "any", true, true, false, 1582))) {
  1372.             // line 1583
  1373.             yield "                    ";
  1374.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 1583, $this->source); })()), "user", [], "any", false, false, false, 1583), "firstname", [], "any", false, false, false, 1583) . " ") . CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 1583, $this->source); })()), "user", [], "any", false, false, false, 1583), "lastname", [], "any", false, false, false, 1583)), "html", null, true);
  1375.             yield "
  1376.                 ";
  1377.         } elseif ((CoreExtension::getAttribute($this->env, $this->source,         // line 1584
  1378. (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 1584, $this->source); })()), "user", [], "any", false, false, false, 1584) && CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, ($context["app"] ?? null), "user", [], "any", false, true, false, 1584), "nomComplet", [], "any", true, true, false, 1584))) {
  1379.             // line 1585
  1380.             yield "                    ";
  1381.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 1585, $this->source); })()), "user", [], "any", false, false, false, 1585), "nomComplet", [], "any", false, false, false, 1585), "html", null, true);
  1382.             yield "
  1383.                 ";
  1384.         } else {
  1385.             // line 1587
  1386.             yield "                    Utilisateur
  1387.                 ";
  1388.         }
  1389.         // line 1589
  1390.         yield "            </div>
  1391.             <div class=\"user-role-modern\">";
  1392.         // line 1590
  1393.         yield (($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_ADMIN")) ? ("Administrateur") : ((($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_SALARIE")) ? ("Salarié") : ("Utilisateur"))));
  1394.         yield "</div>
  1395.         </div>
  1396.         <a href=\"/deconnexion\" class=\"logout-btn-modern\" title=\"Déconnexion\">
  1397.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1398.                 <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"/>
  1399.                 <polyline points=\"16,17 21,12 16,7\"/>
  1400.                 <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\"/>
  1401.             </svg>
  1402.         </a>
  1403.     </div>
  1404.     
  1405.     ";
  1406.         // line 1601
  1407.         if ($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_PREVIOUS_ADMIN")) {
  1408.             // line 1602
  1409.             yield "    <div class=\"alert alert-warning text-center mt-2\">
  1410.         Vous êtes connecté en tant que ";
  1411.             // line 1603
  1412.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 1603, $this->source); })()), "user", [], "any", false, false, false, 1603), "email", [], "any", false, false, false, 1603), "html", null, true);
  1413.             yield "
  1414.         <a href=\"";
  1415.             // line 1604
  1416.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("user_index", ["_switch_user" => "_exit"]);
  1417.             yield "\" class=\"btn btn-sm btn-danger ms-3\">
  1418.             <i class=\"fas fa-sign-out-alt\"></i> Revenir
  1419.         </a>
  1420.     </div>
  1421.     ";
  1422.         }
  1423.         // line 1609
  1424.         yield "</div>
  1425. </div>
  1426. <!-- MODAL CRÉER UN TICKET -->
  1427. <div id=\"ticketModal\" class=\"modal-modern\" style=\"display: none;\">
  1428.     <div class=\"modal-overlay\" onclick=\"closeTicketModal()\"></div>
  1429.     <div class=\"modal-container\">
  1430.         <div class=\"modal-header\">
  1431.             <div class=\"modal-title\">
  1432.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3b82f6\" stroke-width=\"2\">
  1433.                     <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/>
  1434.                 </svg>
  1435.                 <span>Créer un nouveau ticket</span>
  1436.             </div>
  1437.             <button class=\"modal-close\" onclick=\"closeTicketModal()\">×</button>
  1438.         </div>
  1439.         
  1440.         <div class=\"modal-body\">
  1441.             <form id=\"ticketForm\" action=\"";
  1442.         // line 1632
  1443.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("ticket_create");
  1444.         yield "\" method=\"POST\" enctype=\"multipart/form-data\">
  1445.                 <div class=\"form-group\">
  1446.                     <label class=\"form-label\">Sujet</label>
  1447.                     <input type=\"text\" name=\"subject\" class=\"form-control\" placeholder=\"Ex: Problème d'impression de facture\" required>
  1448.                 </div>
  1449.                 
  1450.                 <div class=\"form-group\">
  1451.                     <label class=\"form-label\">Message</label>
  1452.                     <textarea name=\"message\" class=\"form-control\" rows=\"5\" placeholder=\"Décrivez votre problème en détail...\" required></textarea>
  1453.                 </div>
  1454.                 
  1455.                 <div class=\"form-group\">
  1456.                     <label class=\"form-label\">Pièces jointes</label>
  1457.                     <div class=\"file-upload-area\">
  1458.                         <input type=\"file\" name=\"attachments[]\" id=\"fileInput\" multiple style=\"display: none;\">
  1459.                         <button type=\"button\" class=\"file-upload-btn\" onclick=\"document.getElementById('fileInput').click()\">
  1460.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">
  1461.                                 <path d=\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"/>
  1462.                             </svg>
  1463.                             Ajouter des fichiers
  1464.                         </button>
  1465.                         <span class=\"file-hint\">PNG, JPG, PDF (max 10MB)</span>
  1466.                     </div>
  1467.                     <div id=\"fileList\" class=\"file-list\"></div>
  1468.                 </div>
  1469.             </form>
  1470.         </div>
  1471.         
  1472.         <div class=\"modal-footer\">
  1473.             <button class=\"btn-secondary\" onclick=\"closeTicketModal()\">Annuler</button>
  1474.             <button type=\"submit\" form=\"ticketForm\" class=\"btn-primary\">
  1475.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">
  1476.                     <path d=\"M20 6L9 17l-5-5\"/>
  1477.                 </svg>
  1478.                 Valider
  1479.             </button>
  1480.         </div>
  1481.     </div>
  1482. </div>
  1483. <!-- MODAL SUPPORT -->
  1484. <div id=\"supportModal\" class=\"modal-modern\" style=\"display: none;\">
  1485.     <div class=\"modal-overlay\" onclick=\"closeSupportModal()\"></div>
  1486.     <div class=\"modal-container support-modal\">
  1487.         <div class=\"modal-header\">
  1488.             <div class=\"modal-title\">
  1489.                 <div class=\"support-logo\">
  1490.                     <span class=\"brand-text-modal\">MAZEGO</span>
  1491.                 </div>
  1492.             </div>
  1493.             <button class=\"modal-close\" onclick=\"closeSupportModal()\">×</button>
  1494.         </div>
  1495.         
  1496.         <div class=\"modal-body text-center\">
  1497.             <div class=\"support-avatar\">
  1498.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"48\" height=\"48\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3b82f6\" stroke-width=\"1.5\">
  1499.                     <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  1500.                     <path d=\"M12 16v-4\"/>
  1501.                     <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"#3b82f6\"/>
  1502.                 </svg>
  1503.             </div>
  1504.             
  1505.             <h3 class=\"support-title\">Équipe de support</h3>
  1506.             
  1507.             <div class=\"support-info-list\">
  1508.                 <div class=\"support-info-item\">
  1509.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#64748b\">
  1510.                         <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\"/>
  1511.                         <path d=\"m22 7-10 7L2 7\"/>
  1512.                     </svg>
  1513.                     <span>support@mazego.fr</span>
  1514.                 </div>
  1515.                 
  1516.                 <div class=\"support-info-item\">
  1517.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#64748b\">
  1518.                         <rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"/>
  1519.                         <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\"/>
  1520.                     </svg>
  1521.                     ";
  1522.         // line 1710
  1523.         yield "                          <span>+33605669926</span>
  1524.                 </div>
  1525.                 
  1526.                 <div class=\"support-info-item\">
  1527.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#64748b\">
  1528.                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  1529.                         <polyline points=\"12 6 12 12 16 14\"/>
  1530.                     </svg>
  1531.                     <span>Lun-Ven: 8h30 - 18h00</span>
  1532.                 </div>
  1533.                 
  1534.                 <div class=\"support-info-item summer-schedule\">
  1535.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#f59e0b\">
  1536.                         <circle cx=\"12\" cy=\"12\" r=\"5\"/>
  1537.                         <line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"/>
  1538.                         <line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"/>
  1539.                         <line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"/>
  1540.                         <line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"/>
  1541.                         <line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"/>
  1542.                         <line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"/>
  1543.                         <line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"/>
  1544.                         <line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"/>
  1545.                     </svg>
  1546.                     <span>Horaires été: 8h00 - 17h00</span>
  1547.                 </div>
  1548.             </div>
  1549.             
  1550.             <div class=\"support-response-time\">
  1551.                 <div class=\"response-badge\">
  1552.                     ⚡ Temps de réponse moyen: 2h
  1553.                 </div>
  1554.             </div>
  1555.         </div>
  1556.         
  1557.         <div class=\"modal-footer\">
  1558.             <button class=\"btn-primary\" onclick=\"closeSupportModal()\">Fermer</button>
  1559.         </div>
  1560.     </div>
  1561. </div>
  1562. <!-- BOUTON FLOATING DEMANDER UNE DÉMO -->
  1563. <button id=\"demoButton\" class=\"demo-floating-btn\" onclick=\"openDemoScheduler()\">
  1564.     <div class=\"demo-icon\">
  1565.         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\">
  1566.             <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>
  1567.             <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/>
  1568.             <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/>
  1569.             <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/>
  1570.             <path d=\"M8 14h.01\"/>
  1571.             <path d=\"M12 14h.01\"/>
  1572.             <path d=\"M16 14h.01\"/>
  1573.             <path d=\"M8 18h.01\"/>
  1574.             <path d=\"M12 18h.01\"/>
  1575.             <path d=\"M16 18h.01\"/>
  1576.         </svg>
  1577.     </div>
  1578.     <span class=\"demo-text\">Demander une démo</span>
  1579.     <span class=\"demo-pulse\"></span>
  1580. </button>
  1581. <!-- MODAL DÉMO KOALENDAR -->
  1582. <div id=\"demoModal\" class=\"modal-modern\" style=\"display: none; \">
  1583.     <div class=\"modal-overlay\" onclick=\"closeDemoModal()\"></div>
  1584.     <div class=\"modal-container demo-modal-container\">
  1585.         <div class=\"modal-header\">
  1586.             <div class=\"modal-title\">
  1587.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3b82f6\" stroke-width=\"2\">
  1588.                     <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  1589.                     <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  1590.                 </svg>
  1591.                 <span>Programmer une démo personnalisée</span>
  1592.             </div>
  1593.             <button class=\"modal-close\" onclick=\"closeDemoModal()\">×</button>
  1594.         </div>
  1595.         
  1596.         <div class=\"modal-body p-0\">
  1597.             <!-- ICI : IFRAME KOALENDAR / CALENDLY -->
  1598.             <!-- Remplacez par votre lien Koalendar ou Calendly -->
  1599.             <iframe 
  1600.                 id=\"koalendarIframe\"
  1601.                 src=\"https://koalendar.com/e/demo-mazego\" 
  1602.                 width=\"100%\" 
  1603.                 height=\"600px\" 
  1604.                 frameborder=\"0\" 
  1605.                 allowfullscreen>
  1606.             </iframe>
  1607.             
  1608.             <!-- Message d'info -->
  1609.             <div class=\"demo-info-bar\">
  1610.                 <span class=\"demo-duration\">⏱️ 45 minutes</span>
  1611.                 <span class=\"demo-spots\">🎯 3 places restantes aujourd'hui</span>
  1612.             </div>
  1613.         </div>
  1614.     </div>
  1615. </div>
  1616. <script>
  1617.  
  1618. document.addEventListener('DOMContentLoaded', function() {
  1619.     const demoButton = document.getElementById('demoButton');
  1620.     
  1621.     demoButton.addEventListener('click', function() {
  1622.         // Attendre que la modal soit chargée
  1623.         setTimeout(function() {
  1624.             const modal = document.getElementById('demoModal');
  1625.             if (modal && !document.getElementById('koalendar-overlay')) {
  1626.                 // Créer un div overlay pour masquer le branding
  1627.                 const overlay = document.createElement('div');
  1628.                 overlay.id = 'koalendar-overlay';
  1629.                 overlay.style.cssText = `
  1630.                     position: absolute;
  1631.                     bottom: 0;
  1632.                     left: 0;
  1633.                     right: 0;
  1634.                     height: 50px;
  1635.                     background: white;
  1636.                     z-index: 10000;
  1637.                     pointer-events: none;
  1638.                 `;
  1639.                 modal.querySelector('.modal-body').style.position = 'relative';
  1640.                 modal.querySelector('.modal-body').appendChild(overlay);
  1641.             }
  1642.         }, 500);
  1643.     });
  1644. });
  1645. </script>
  1646. <style>
  1647. #demoModal .modal-body {
  1648.     max-height: 680px;
  1649.     overflow: hidden !important;
  1650. }
  1651. #koalendarIframe {
  1652.     height: 700px !important;
  1653. }
  1654. /* ========== SUPPORT & TICKET BUTTONS ========== */
  1655. .support-actions-modern {
  1656.     display: flex;
  1657.     gap: 8px;
  1658.     margin-bottom: 16px;
  1659.     padding: 0 8px;
  1660. }
  1661. .support-btn-modern {
  1662.     flex: 1;
  1663.     display: flex;
  1664.     align-items: center;
  1665.     justify-content: center;
  1666.     gap: 8px;
  1667.     padding: 10px 12px;
  1668.     background: white;
  1669.     border: 1px solid #e2e8f0;
  1670.     border-radius: 12px;
  1671.     color: #475569;
  1672.     font-size: 0.85rem;
  1673.     font-weight: 500;
  1674.     transition: all 0.2s ease;
  1675.     cursor: pointer;
  1676.     position: relative;
  1677. }
  1678. .support-btn-modern:hover {
  1679.     background: #f1f5f9;
  1680.     border-color: #3b82f6;
  1681.     color: #1e40af;
  1682.     transform: translateY(-1px);
  1683. }
  1684. .support-btn-modern .support-icon {
  1685.     display: flex;
  1686.     align-items: center;
  1687.     color: #64748b;
  1688. }
  1689. .support-btn-modern:hover .support-icon {
  1690.     color: #3b82f6;
  1691. }
  1692. .ticket-btn {
  1693.     background: linear-gradient(135deg, #3b82f6, #1d4ed8);
  1694.     border-color: transparent;
  1695.     color: white;
  1696. }
  1697. .ticket-btn .support-icon {
  1698.     color: white;
  1699. }
  1700. .ticket-btn:hover {
  1701.     background: linear-gradient(135deg, #2563eb, #1e40af);
  1702.     color: white;
  1703. }
  1704. .ticket-btn:hover .support-icon {
  1705.     color: white;
  1706. }
  1707. .badge-new-ticket {
  1708.     position: absolute;
  1709.     top: -6px;
  1710.     right: -6px;
  1711.     background: #ef4444;
  1712.     color: white;
  1713.     font-size: 0.65rem;
  1714.     font-weight: 700;
  1715.     padding: 2px 6px;
  1716.     border-radius: 12px;
  1717.     letter-spacing: 0.05em;
  1718.     box-shadow: 0 2px 6px rgba(239, 68, 68, 0.3);
  1719.     animation: pulse-badge 2s infinite;
  1720. }
  1721. @keyframes pulse-badge {
  1722.     0%, 100% { transform: scale(1); }
  1723.     50% { transform: scale(1.1); }
  1724. }
  1725. /* ========== MODALS MODERNES ========== */
  1726. .modal-modern {
  1727.     position: fixed;
  1728.     top: 0;
  1729.     left: 0;
  1730.     right: 0;
  1731.     bottom: 0;
  1732.     z-index: 9999;
  1733.     display: flex;
  1734.     align-items: center;
  1735.     justify-content: center;
  1736.     font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  1737. }
  1738. .modal-overlay {
  1739.     position: absolute;
  1740.     top: 0;
  1741.     left: 0;
  1742.     right: 0;
  1743.     bottom: 0;
  1744.     background: rgba(0, 0, 0, 0.5);
  1745.     backdrop-filter: blur(4px);
  1746. }
  1747. .modal-container {
  1748.     position: relative;
  1749.     width: 90%;
  1750.     max-width: 500px;
  1751.     background: white;
  1752.     border-radius: 20px;
  1753.     box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  1754.     z-index: 10000;
  1755.     animation: modalSlideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  1756. }
  1757. .support-modal {
  1758.     max-width: 450px;
  1759. }
  1760. .demo-modal-container {
  1761.     max-width: 900px;
  1762. }
  1763. @keyframes modalSlideIn {
  1764.     from {
  1765.         opacity: 0;
  1766.         transform: translateY(30px) scale(0.95);
  1767.     }
  1768.     to {
  1769.         opacity: 1;
  1770.         transform: translateY(0) scale(1);
  1771.     }
  1772. }
  1773. .modal-header {
  1774.     display: flex;
  1775.     align-items: center;
  1776.     justify-content: space-between;
  1777.     padding: 20px 24px;
  1778.     border-bottom: 1px solid #e2e8f0;
  1779. }
  1780. .modal-title {
  1781.     display: flex;
  1782.     align-items: center;
  1783.     gap: 12px;
  1784.     font-size: 1.1rem;
  1785.     font-weight: 600;
  1786.     color: #1e293b;
  1787. }
  1788. .modal-close {
  1789.     background: none;
  1790.     border: none;
  1791.     font-size: 28px;
  1792.     line-height: 1;
  1793.     color: #94a3b8;
  1794.     cursor: pointer;
  1795.     transition: all 0.2s ease;
  1796.     padding: 4px 12px;
  1797.     border-radius: 8px;
  1798. }
  1799. .modal-close:hover {
  1800.     background: #f1f5f9;
  1801.     color: #475569;
  1802. }
  1803. .modal-body {
  1804.     padding: 24px;
  1805. }
  1806. .modal-footer {
  1807.     display: flex;
  1808.     justify-content: flex-end;
  1809.     gap: 12px;
  1810.     padding: 20px 24px;
  1811.     border-top: 1px solid #e2e8f0;
  1812. }
  1813. /* ========== FORMULAIRES ========== */
  1814. .form-group {
  1815.     margin-bottom: 20px;
  1816. }
  1817. .form-label {
  1818.     display: block;
  1819.     margin-bottom: 8px;
  1820.     font-weight: 500;
  1821.     font-size: 0.9rem;
  1822.     color: #475569;
  1823. }
  1824. .form-control {
  1825.     width: 100%;
  1826.     padding: 12px 16px;
  1827.     border: 1px solid #e2e8f0;
  1828.     border-radius: 12px;
  1829.     font-size: 0.95rem;
  1830.     transition: all 0.2s ease;
  1831.     background: #f8fafc;
  1832. }
  1833. .form-control:focus {
  1834.     outline: none;
  1835.     border-color: #3b82f6;
  1836.     box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
  1837.     background: white;
  1838. }
  1839. textarea.form-control {
  1840.     resize: vertical;
  1841.     min-height: 120px;
  1842. }
  1843. .file-upload-area {
  1844.     display: flex;
  1845.     align-items: center;
  1846.     gap: 12px;
  1847.     flex-wrap: wrap;
  1848. }
  1849. .file-upload-btn {
  1850.     display: flex;
  1851.     align-items: center;
  1852.     gap: 8px;
  1853.     padding: 10px 16px;
  1854.     background: #f1f5f9;
  1855.     border: 1px dashed #94a3b8;
  1856.     border-radius: 10px;
  1857.     color: #475569;
  1858.     font-size: 0.9rem;
  1859.     cursor: pointer;
  1860.     transition: all 0.2s ease;
  1861. }
  1862. .file-upload-btn:hover {
  1863.     background: #e2e8f0;
  1864.     border-color: #3b82f6;
  1865.     color: #1e40af;
  1866. }
  1867. .file-hint {
  1868.     font-size: 0.8rem;
  1869.     color: #94a3b8;
  1870. }
  1871. .file-list {
  1872.     margin-top: 12px;
  1873.     display: flex;
  1874.     flex-direction: column;
  1875.     gap: 8px;
  1876. }
  1877. /* ========== BOUTONS ========== */
  1878. .btn-primary {
  1879.     display: inline-flex;
  1880.     align-items: center;
  1881.     justify-content: center;
  1882.     gap: 8px;
  1883.     padding: 12px 24px;
  1884.     background: linear-gradient(135deg, #3b82f6, #2563eb);
  1885.     border: none;
  1886.     border-radius: 12px;
  1887.     color: white;
  1888.     font-weight: 600;
  1889.     font-size: 0.95rem;
  1890.     cursor: pointer;
  1891.     transition: all 0.2s ease;
  1892. }
  1893. .btn-primary:hover {
  1894.     background: linear-gradient(135deg, #2563eb, #1d4ed8);
  1895.     transform: translateY(-1px);
  1896.     box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
  1897. }
  1898. .btn-secondary {
  1899.     display: inline-flex;
  1900.     align-items: center;
  1901.     justify-content: center;
  1902.     gap: 8px;
  1903.     padding: 12px 24px;
  1904.     background: #f1f5f9;
  1905.     border: 1px solid #e2e8f0;
  1906.     border-radius: 12px;
  1907.     color: #475569;
  1908.     font-weight: 600;
  1909.     font-size: 0.95rem;
  1910.     cursor: pointer;
  1911.     transition: all 0.2s ease;
  1912. }
  1913. .btn-secondary:hover {
  1914.     background: #e2e8f0;
  1915.     color: #1e293b;
  1916. }
  1917. /* ========== MODAL SUPPORT ========== */
  1918. .support-logo {
  1919.     display: flex;
  1920.     align-items: center;
  1921.     gap: 8px;
  1922. }
  1923. .brand-text-modal {
  1924.     font-size: 1.4rem;
  1925.     font-weight: 700;
  1926.     color: #1e293b;
  1927.     letter-spacing: -0.02em;
  1928. }
  1929. .support-avatar {
  1930.     display: flex;
  1931.     justify-content: center;
  1932.     margin-bottom: 16px;
  1933. }
  1934. .support-title {
  1935.     font-size: 1.5rem;
  1936.     font-weight: 700;
  1937.     color: #1e293b;
  1938.     margin-bottom: 24px;
  1939. }
  1940. .support-info-list {
  1941.     display: flex;
  1942.     flex-direction: column;
  1943.     gap: 16px;
  1944.     margin-bottom: 24px;
  1945. }
  1946. .support-info-item {
  1947.     display: flex;
  1948.     align-items: center;
  1949.     justify-content: center;
  1950.     gap: 12px;
  1951.     color: #475569;
  1952.     font-size: 1rem;
  1953. }
  1954. .summer-schedule {
  1955.     color: #f59e0b;
  1956.     font-weight: 500;
  1957. }
  1958. .support-response-time {
  1959.     margin-top: 16px;
  1960.     padding-top: 16px;
  1961.     border-top: 1px solid #e2e8f0;
  1962. }
  1963. .response-badge {
  1964.     display: inline-flex;
  1965.     align-items: center;
  1966.     padding: 8px 16px;
  1967.     background: #e0f2fe;
  1968.     color: #0284c7;
  1969.     border-radius: 30px;
  1970.     font-size: 0.9rem;
  1971.     font-weight: 500;
  1972. }
  1973. /* ========== BOUTON FLOATING DÉMO ========== */
  1974. .demo-floating-btn {
  1975.     position: fixed;
  1976.    /* bottom: 30px; */
  1977.    top: 12px;
  1978.     right: 30px;
  1979.     display: flex;
  1980.     align-items: center;
  1981.     gap: 12px;
  1982.     padding: 16px 28px;
  1983.     background: linear-gradient(135deg, #8b5cf6, #6d28d9);
  1984.     border: none;
  1985.     border-radius: 50px;
  1986.     color: white;
  1987.     font-weight: 600;
  1988.     font-size: 1rem;
  1989.     cursor: pointer;
  1990.     box-shadow: 0 10px 25px rgba(109, 40, 217, 0.4);
  1991.     transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  1992.     z-index: 9998;
  1993.     border: 1px solid rgba(255, 255, 255, 0.2);
  1994. }
  1995. .demo-floating-btn:hover {
  1996.     transform: scale(1.05);
  1997.     box-shadow: 0 20px 35px rgba(109, 40, 217, 0.5);
  1998.     background: linear-gradient(135deg, #7c3aed, #5b21b6);
  1999. }
  2000. .demo-icon {
  2001.     display: flex;
  2002.     align-items: center;
  2003. }
  2004. .demo-pulse {
  2005.     position: absolute;
  2006.     top: 0;
  2007.     left: 0;
  2008.     right: 0;
  2009.     bottom: 0;
  2010.     border-radius: 50px;
  2011.     box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.5);
  2012.     animation: pulse-demo 2s infinite;
  2013. }
  2014. @keyframes pulse-demo {
  2015.     0% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.5); }
  2016.     70% { box-shadow: 0 0 0 15px rgba(139, 92, 246, 0); }
  2017.     100% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0); }
  2018. }
  2019. /* Mode réduit - adaptations */
  2020. body[data-kt-aside-minimize=\"on\"] .support-actions-modern {
  2021.     flex-direction: column;
  2022.     padding: 0 4px;
  2023. }
  2024. body[data-kt-aside-minimize=\"on\"] .support-text {
  2025.     display: none;
  2026. }
  2027. body[data-kt-aside-minimize=\"on\"] .support-btn-modern {
  2028.     padding: 12px;
  2029. }
  2030. body[data-kt-aside-minimize=\"on\"] .support-icon {
  2031.     margin: 0;
  2032. }
  2033. body[data-kt-aside-minimize=\"on\"] .badge-new-ticket {
  2034.     top: -3px;
  2035.     right: -3px;
  2036. }
  2037. /* ========== DEMO INFO BAR ========== */
  2038. .demo-info-bar {
  2039.     display: flex;
  2040.     align-items: center;
  2041.     justify-content: space-between;
  2042.     padding: 16px 24px;
  2043.     background: #f8fafc;
  2044.     border-top: 1px solid #e2e8f0;
  2045.     font-size: 0.9rem;
  2046.     color: #475569;
  2047. }
  2048. .demo-duration {
  2049.     display: flex;
  2050.     align-items: center;
  2051.     gap: 6px;
  2052. }
  2053. .demo-spots {
  2054.     display: flex;
  2055.     align-items: center;
  2056.     gap: 6px;
  2057.     color: #10b981;
  2058.     font-weight: 500;
  2059. }
  2060. /* ========== RESPONSIVE ========== */
  2061. @media (max-width: 768px) {
  2062.     .demo-floating-btn {
  2063.         bottom: 20px;
  2064.         right: 20px;
  2065.         padding: 14px 20px;
  2066.         font-size: 0.9rem;
  2067.     }
  2068.     
  2069.     .demo-floating-btn .demo-text {
  2070.         display: none;
  2071.     }
  2072.     
  2073.     .demo-floating-btn {
  2074.         padding: 16px;
  2075.         border-radius: 50%;
  2076.     }
  2077.     
  2078.     .demo-floating-btn:hover {
  2079.         transform: scale(1.1);
  2080.     }
  2081.     
  2082.     .modal-container {
  2083.         width: 95%;
  2084.         max-height: 90vh;
  2085.         overflow-y: auto;
  2086.     }
  2087.     
  2088.     .demo-info-bar {
  2089.         flex-direction: column;
  2090.         gap: 8px;
  2091.         align-items: flex-start;
  2092.     }
  2093. }
  2094. /* Sidebar Moderne - Design épuré et contemporain */
  2095. .aside-modern {
  2096.     background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  2097.     border-right: 1px solid #e2e8f0;
  2098.     box-shadow: 0 4px 25px rgba(0, 0, 0, 0.08);
  2099.     width: 280px;
  2100.     transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  2101. }
  2102. /* Logo Section */
  2103. .aside-logo-modern {
  2104.     padding: 2rem 1.5rem 1.5rem;
  2105.     border-bottom: 1px solid #f1f5f9;
  2106.     display: flex;
  2107.     align-items: center;
  2108.     justify-content: space-between;
  2109.     background: rgba(255, 255, 255, 0.8);
  2110.     backdrop-filter: blur(10px);
  2111. }
  2112. .logo-container-modern {
  2113.     display: flex;
  2114.     align-items: center;
  2115.     text-decoration: none;
  2116.     transition: all 0.2s ease;
  2117. }
  2118. .logo-container-modern:hover {
  2119.     transform: scale(1.02);
  2120. }
  2121. .brand-text {
  2122.     font-size: 1.25rem;
  2123.     font-weight: 700;
  2124.     color: #1e293b;
  2125.     letter-spacing: -0.02em;
  2126. }
  2127. .btn-toggle-modern {
  2128.     background: #f8fafc;
  2129.     border: 1px solid #e2e8f0;
  2130.     border-radius: 8px;
  2131.     padding: 8px;
  2132.     color: #64748b;
  2133.     transition: all 0.2s ease;
  2134.     cursor: pointer;
  2135. }
  2136. .btn-toggle-modern:hover {
  2137.     background: #e2e8f0;
  2138.     color: #475569;
  2139.     transform: scale(1.05);
  2140. }
  2141. /* Menu Principal */
  2142. .aside-menu-modern {
  2143.     padding: 1rem 0;
  2144.     height: calc(100vh - 200px);
  2145.     overflow: hidden;
  2146. }
  2147. .menu-scroll-modern {
  2148.     height: 100%;
  2149.     overflow-y: auto;
  2150.     padding: 0 1rem;
  2151.     scrollbar-width: thin;
  2152.     scrollbar-color: #cbd5e1 transparent;
  2153. }
  2154. .menu-scroll-modern::-webkit-scrollbar {
  2155.     width: 4px;
  2156. }
  2157. .menu-scroll-modern::-webkit-scrollbar-track {
  2158.     background: transparent;
  2159. }
  2160. .menu-scroll-modern::-webkit-scrollbar-thumb {
  2161.     background: #cbd5e1;
  2162.     border-radius: 2px;
  2163. }
  2164. .menu-scroll-modern::-webkit-scrollbar-thumb:hover {
  2165.     background: #94a3b8;
  2166. }
  2167. /* Sections du Menu - STYLE ORIGINAL AMÉLIORÉ */
  2168. .menu-section-modern {
  2169.     margin-bottom: 2rem;
  2170. }
  2171. /* En-tête de section cliquable */
  2172. .menu-section-header-modern {
  2173.     display: flex;
  2174.     align-items: center;
  2175.     justify-content: space-between;
  2176.     padding: 0.75rem 1rem;
  2177.     margin: 0 0.25rem 0.5rem;
  2178.     border-radius: 12px;
  2179.     cursor: pointer;
  2180.     transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  2181.     border: 1px solid transparent;
  2182.     background: #f8fafc;
  2183. }
  2184. .menu-section-header-modern:hover {
  2185.     background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  2186.     border-color: #e2e8f0;
  2187. }
  2188. .menu-section-header-modern.active {
  2189.     /*background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); */
  2190.     color: white;
  2191.     box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
  2192. }
  2193. .menu-section-title-modern {
  2194.     display: flex;
  2195.     align-items: center;
  2196.     gap: 0.75rem;
  2197.     font-weight: 600;
  2198.     font-size: 0.85rem;
  2199.     text-transform: uppercase;
  2200.     letter-spacing: 0.05em;
  2201. }
  2202. .section-title-text {
  2203.     color: #475569;
  2204.     font-size: 0.75rem;
  2205.     font-weight: 600;
  2206.     text-transform: uppercase;
  2207.     letter-spacing: 0.1em;
  2208. }
  2209. ";
  2210.         // line 2487
  2211.         yield "
  2212. .menu-section-arrow {
  2213.     color: #94a3b8;
  2214.     transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  2215. }
  2216. ";
  2217.         // line 2497
  2218.         yield "
  2219. /* Contenu des sections */
  2220. .menu-section-content {
  2221.     max-height: 1000px;
  2222.     overflow: hidden;
  2223.     transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  2224. }
  2225. .menu-section-modern.collapsed .menu-section-content {
  2226.     max-height: 0;
  2227. }
  2228. /* Items du Menu - STYLE ORIGINAL */
  2229. .menu-item-modern {
  2230.     margin-bottom: 0.25rem;
  2231. }
  2232. .menu-link-modern {
  2233.     display: flex;
  2234.     align-items: center;
  2235.     padding: 0.875rem 1rem;
  2236.     border-radius: 12px;
  2237.     text-decoration: none;
  2238.     color: #475569;
  2239.     font-weight: 500;
  2240.     font-size: 0.95rem;
  2241.     transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  2242.     position: relative;
  2243.     margin: 0 0.25rem;
  2244. }
  2245. .menu-link-modern:hover {
  2246.     background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  2247.     color: #334155;
  2248.     text-decoration: none;
  2249.     transform: translateX(4px);
  2250. }
  2251. .menu-link-modern.active {
  2252.  
  2253.     /* background: linear-gradient(135deg, #e4e4f7 0%, #e4e5f7 100%); */
  2254.     color: #6b7787;
  2255.     /* box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3); */ 
  2256.     font-weight: 600;
  2257. }
  2258. .menu-link-modern.active:hover {
  2259.     transform: translateX(0);
  2260. }
  2261. /* Icônes */
  2262. .menu-icon-modern {
  2263.     width: 22px;
  2264.     height: 22px;
  2265.     margin-right: 0.875rem;
  2266.     display: flex;
  2267.     align-items: center;
  2268.     justify-content: center;
  2269.     flex-shrink: 0;
  2270.     color: #64748b;
  2271.     transition: all 0.2s ease;
  2272. }
  2273. .menu-link-modern:hover .menu-icon-modern {
  2274.     color: #475569;
  2275.     transform: scale(1.1);
  2276. }
  2277. .menu-link-modern.active .menu-icon-modern {
  2278.     color: white;
  2279. }
  2280. /* Titres */
  2281. .menu-title-modern {
  2282.     flex: 1;
  2283.     font-size: 0.95rem;
  2284.     line-height: 1.4;
  2285. }
  2286. /* Badges - STYLE ORIGINAL AMÉLIORÉ */
  2287. .menu-badge-modern {
  2288.     margin-left: auto;
  2289.     display: flex;
  2290.     align-items: center;
  2291. }
  2292. .badge-dot-modern {
  2293.     width: 6px;
  2294.     height: 6px;
  2295.     background: #10b981;
  2296.     border-radius: 50%;
  2297.     animation: pulse 2s infinite;
  2298. }
  2299. .badge-new-modern {
  2300.     background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  2301.     color: white;
  2302.     font-size: 0.7rem;
  2303.     font-weight: 600;
  2304.     padding: 2px 6px;
  2305.     border-radius: 8px;
  2306.     text-transform: uppercase;
  2307.     letter-spacing: 0.05em;
  2308. }
  2309. .badge-dev-modern {
  2310.     background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
  2311.     color: white;
  2312.     font-size: 0.65rem;
  2313.     font-weight: 600;
  2314.     padding: 2px 6px;
  2315.     border-radius: 8px;
  2316.     text-transform: uppercase;
  2317.     letter-spacing: 0.05em;
  2318. }
  2319. .badge-admin-modern {
  2320.     background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
  2321.     color: white;
  2322.     font-size: 0.65rem;
  2323.     font-weight: 600;
  2324.     padding: 2px 6px;
  2325.     border-radius: 8px;
  2326.     text-transform: uppercase;
  2327.     letter-spacing: 0.05em;
  2328. }
  2329. @keyframes pulse {
  2330.     0%, 100% { opacity: 1; }
  2331.     50% { opacity: 0.5; }
  2332. }
  2333. /* Accordéons */
  2334. .menu-accordion-modern {
  2335.     margin-bottom: 0.25rem;
  2336. }
  2337. .menu-accordion-trigger {
  2338.     cursor: pointer;
  2339. }
  2340. .menu-arrow-modern {
  2341.     margin-left: auto;
  2342.     color: #94a3b8;
  2343.     transition: transform 0.2s ease;
  2344. }
  2345. .menu-accordion-modern.show .menu-arrow-modern {
  2346.     transform: rotate(90deg);
  2347. }
  2348. /* Sous-menus */
  2349. .menu-sub-modern {
  2350.     max-height: 0;
  2351.     overflow: hidden;
  2352.     transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  2353.     margin: 0.5rem 0 0 0;
  2354.     background: rgba(248, 250, 252, 0.5);
  2355.     border-radius: 8px;
  2356.     margin-left: 0.25rem;
  2357.     margin-right: 0.25rem;
  2358. }
  2359. .menu-accordion-modern.show .menu-sub-modern {
  2360.     max-height: 300px;
  2361.     padding: 0.5rem 0;
  2362. }
  2363. .menu-sub-item-modern {
  2364.     margin-bottom: 0.125rem;
  2365. }
  2366. .menu-sub-link-modern {
  2367.     display: flex;
  2368.     align-items: center;
  2369.     padding: 0.625rem 1rem 0.625rem 2.5rem;
  2370.     color: #64748b;
  2371.     text-decoration: none;
  2372.     font-size: 0.9rem;
  2373.     font-weight: 500;
  2374.     border-radius: 8px;
  2375.     transition: all 0.2s ease;
  2376.     margin: 0 0.5rem;
  2377. }
  2378. .menu-sub-link-modern:hover {
  2379.     background: rgba(59, 130, 246, 0.1);
  2380.     color: #3b82f6;
  2381.     text-decoration: none;
  2382.     transform: translateX(4px);
  2383. }
  2384. .menu-bullet-modern {
  2385.     width: 6px;
  2386.     height: 6px;
  2387.     background: #cbd5e1;
  2388.     border-radius: 50%;
  2389.     margin-right: 0.75rem;
  2390.     transition: all 0.2s ease;
  2391. }
  2392. .menu-sub-link-modern:hover .menu-bullet-modern {
  2393.     background: #3b82f6;
  2394.     transform: scale(1.2);
  2395. }
  2396. /* Footer */
  2397. .aside-footer-modern {
  2398.     padding: 1.5rem;
  2399.     border-top: 1px solid #f1f5f9;
  2400.     background: rgba(255, 255, 255, 0.8);
  2401.     backdrop-filter: blur(10px);
  2402. }
  2403. .user-panel-modern {
  2404.     display: flex;
  2405.     align-items: center;
  2406.     background: #f8fafc;
  2407.     padding: 1rem;
  2408.     border-radius: 12px;
  2409.     border: 1px solid #e2e8f0;
  2410.     transition: all 0.2s ease;
  2411. }
  2412. .user-panel-modern:hover {
  2413.     background: #f1f5f9;
  2414.     border-color: #cbd5e1;
  2415. }
  2416. .user-avatar-modern {
  2417.     width: 40px;
  2418.     height: 40px;
  2419.     background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
  2420.     border-radius: 10px;
  2421.     display: flex;
  2422.     align-items: center;
  2423.     justify-content: center;
  2424.     margin-right: 0.75rem;
  2425.     color: white;
  2426. }
  2427. .user-info-modern {
  2428.     flex: 1;
  2429. }
  2430. .user-name-modern {
  2431.     font-weight: 600;
  2432.     font-size: 0.9rem;
  2433.     color: #1e293b;
  2434.     line-height: 1.2;
  2435. }
  2436. .user-role-modern {
  2437.     font-size: 0.8rem;
  2438.     color: #64748b;
  2439.     margin-top: 0.125rem;
  2440. }
  2441. .logout-btn-modern {
  2442.     background: #fee2e2;
  2443.     color: #dc2626;
  2444.     padding: 8px;
  2445.     border-radius: 8px;
  2446.     text-decoration: none;
  2447.     transition: all 0.2s ease;
  2448.     display: flex;
  2449.     align-items: center;
  2450.     justify-content: center;
  2451. }
  2452. .logout-btn-modern:hover {
  2453.     background: #fecaca;
  2454.     color: #b91c1c;
  2455.     text-decoration: none;
  2456.     transform: scale(1.05);
  2457. }
  2458. /* Responsive */
  2459. @media (max-width: 1024px) {
  2460.     .aside-modern {
  2461.         transform: translateX(-100%);
  2462.     }
  2463.     .aside-modern.drawer-on {
  2464.         transform: translateX(0);
  2465.     }
  2466. }
  2467. /* États actifs pour les liens */
  2468. .menu-link-modern.active::before {
  2469.     content: '';
  2470.     position: absolute;
  2471.     left: -0.25rem;
  2472.     top: 50%;
  2473.     transform: translateY(-50%);
  2474.     width: 3px;
  2475.     height: 20px;
  2476.     background: #3b82f6;
  2477.     border-radius: 0 2px 2px 0;
  2478. }
  2479. /* Animation d'entrée */
  2480. .menu-item-modern {
  2481.     animation: slideInLeft 0.3s ease-out;
  2482. }
  2483. @keyframes slideInLeft {
  2484.     from {
  2485.         opacity: 0;
  2486.         transform: translateX(-20px);
  2487.     }
  2488.     to {
  2489.         opacity: 1;
  2490.         transform: translateX(0);
  2491.     }
  2492. }
  2493. /* Amélioration des focus pour l'accessibilité */
  2494. .menu-link-modern:focus,
  2495. .menu-sub-link-modern:focus {
  2496.     outline: 2px solid #3b82f6;
  2497.     outline-offset: 2px;
  2498. }
  2499. /* Mode réduit */
  2500. body[data-kt-aside-minimize=\"on\"] .aside-modern {
  2501.     width: 80px;
  2502.     transition: all 0.3s ease;
  2503. }
  2504. body[data-kt-aside-minimize=\"on\"] .brand-text,
  2505. body[data-kt-aside-minimize=\"on\"] .menu-title-modern,
  2506. body[data-kt-aside-minimize=\"on\"] .menu-arrow-modern,
  2507. body[data-kt-aside-minimize=\"on\"] .menu-section-title-modern,
  2508. body[data-kt-aside-minimize=\"on\"] .section-title-text,
  2509. body[data-kt-aside-minimize=\"on\"] .user-name-modern,
  2510. body[data-kt-aside-minimize=\"on\"] .user-role-modern {
  2511.     display: none;
  2512. }
  2513. body[data-kt-aside-minimize=\"on\"] .aside-logo-modern {
  2514.     justify-content: center;
  2515.     padding: 1.5rem 0.5rem;
  2516. }
  2517. body[data-kt-aside-minimize=\"on\"] .btn-toggle-modern {
  2518.     transform: rotate(180deg);
  2519.     margin: 0 auto;
  2520. }
  2521. body[data-kt-aside-minimize=\"on\"] .menu-link-modern {
  2522.     justify-content: center;
  2523.     padding: 0.875rem 0.5rem;
  2524.     margin: 0 0.25rem;
  2525. }
  2526. body[data-kt-aside-minimize=\"on\"] .menu-icon-modern {
  2527.     margin-right: 0;
  2528.     transform: scale(1.2);
  2529. }
  2530. body[data-kt-aside-minimize=\"on\"] .menu-section-header-modern {
  2531.     padding: 0.5rem;
  2532.     justify-content: center;
  2533. }
  2534. body[data-kt-aside-minimize=\"on\"] .menu-section-arrow {
  2535.     display: none;
  2536. }
  2537. body[data-kt-aside-minimize=\"on\"] .user-panel-modern {
  2538.     justify-content: center;
  2539.     padding: 0.75rem 0.5rem;
  2540. }
  2541. body[data-kt-aside-minimize=\"on\"] .user-avatar-modern {
  2542.     margin-right: 0;
  2543. }
  2544. body[data-kt-aside-minimize=\"on\"] .logout-btn-modern {
  2545.     position: absolute;
  2546.     bottom: 1rem;
  2547.     right: 1rem;
  2548. }
  2549. /* Responsive mobile */
  2550. @media (max-width: 1024px) {
  2551.     .aside-modern {
  2552.         position: fixed;
  2553.         left: -280px;
  2554.         top: 0;
  2555.         bottom: 0;
  2556.         z-index: 103;
  2557.         transition: all 0.3s ease;
  2558.     }
  2559.     .aside-modern.mobile-show {
  2560.         left: 0;
  2561.         box-shadow: 10px 0 30px rgba(0,0,0,0.1);
  2562.     }
  2563.     /* Overlay pour mobile */
  2564.     .aside-overlay {
  2565.         position: fixed;
  2566.         top: 0;
  2567.         left: 0;
  2568.         right: 0;
  2569.         bottom: 0;
  2570.         background: rgba(0,0,0,0.3);
  2571.         z-index: 102;
  2572.         opacity: 0;
  2573.         visibility: hidden;
  2574.         transition: all 0.3s ease;
  2575.     }
  2576.     .aside-overlay.active {
  2577.         opacity: 1;
  2578.         visibility: visible;
  2579.     }
  2580. }
  2581. /* ========== AMÉLIORATIONS DU MENU ========== */
  2582. /* 1. Style moderne pour les liens actifs */
  2583. .menu-link-modern.active {
  2584.     background: linear-gradient(135deg, rgba(37, 99, 235, 0.15) 0%, rgba(59, 130, 246, 0.1) 100%);
  2585.     color: #1e40af;
  2586.     border-left: 3px solid #3b82f6;
  2587.     font-weight: 600;
  2588.     box-shadow: 0 2px 8px rgba(59, 130, 246, 0.12);
  2589. }
  2590. .menu-link-modern.active .menu-icon-modern {
  2591.     color: #3b82f6;
  2592. }
  2593. .menu-link-modern.active:hover {
  2594.     background: linear-gradient(135deg, rgba(37, 99, 235, 0.18) 0%, rgba(59, 130, 246, 0.12) 100%);
  2595.     transform: translateX(2px);
  2596. }
  2597. /* 2. Menu fermé par défaut */
  2598. .menu-section-modern {
  2599.     margin-bottom: 1.5rem;
  2600. }
  2601. .menu-section-content {
  2602.     max-height: 0;
  2603.     overflow: hidden;
  2604.     transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  2605. }
  2606. .menu-section-modern.expanded .menu-section-content {
  2607.     max-height: 1000px;
  2608. }
  2609. /* 3. Flèche de section */
  2610. .menu-section-arrow {
  2611.     transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  2612.     transform: rotate(0deg);
  2613. }
  2614. .menu-section-modern.expanded .menu-section-arrow {
  2615.     transform: rotate(180deg);
  2616. }
  2617. /* 4. Style d'en-tête de section */
  2618. .menu-section-header-modern {
  2619.     background: #f8fafc;
  2620.     border: 1px solid #e2e8f0;
  2621.     border-radius: 10px;
  2622.     padding: 0.75rem 1rem;
  2623.     margin-bottom: 0.5rem;
  2624.     cursor: pointer;
  2625.     transition: all 0.2s ease;
  2626. }
  2627. .menu-section-header-modern:hover {
  2628.     background: #f1f5f9;
  2629.     border-color: #cbd5e1;
  2630. }
  2631. .menu-section-modern.expanded .menu-section-header-modern {
  2632.     background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  2633.     border-color: #cbd5e1;
  2634. }
  2635. /* 5. Maintien de la position de défilement */
  2636. .menu-scroll-modern {
  2637.     scroll-behavior: auto; /* Désactiver le scroll automatique */
  2638. }
  2639. /* 6. Indicateur pour sections avec contenu actif */
  2640. .menu-section-header-modern.has-active-child {
  2641.     border-left: 3px solid #3b82f6;
  2642.     background: rgba(59, 130, 246, 0.05);
  2643. }
  2644. /* 7. Style pour sous-menus actifs */
  2645. .menu-sub-link-modern.active {
  2646.     background: rgba(59, 130, 246, 0.1);
  2647.     color: #1e40af;
  2648.     font-weight: 500;
  2649.     border-left: 2px solid #3b82f6;
  2650. }
  2651. .menu-sub-link-modern.active .menu-bullet-modern {
  2652.     background: #3b82f6;
  2653.     transform: scale(1.1);
  2654. }
  2655. /* 8. Animation subtile */
  2656. .menu-item-modern {
  2657.     animation: fadeIn 0.2s ease-out;
  2658. }
  2659. @keyframes fadeIn {
  2660.     from { opacity: 0; transform: translateX(-5px); }
  2661.     to { opacity: 1; transform: translateX(0); }
  2662. }
  2663. /* 9. Indicateur visuel pour liens actifs */
  2664. .menu-link-modern.active::after {
  2665.     content: '';
  2666.     position: absolute;
  2667.     right: 12px;
  2668.     top: 50%;
  2669.     transform: translateY(-50%);
  2670.     width: 6px;
  2671.     height: 6px;
  2672.     background: #10b981;
  2673.     border-radius: 50%;
  2674.     animation: pulse-active 2s infinite;
  2675. }
  2676. @keyframes pulse-active {
  2677.     0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
  2678.     70% { box-shadow: 0 0 0 4px rgba(16, 185, 129, 0); }
  2679. }
  2680. </style>
  2681. <script>
  2682.  
  2683. document.addEventListener('DOMContentLoaded', function() {
  2684.     // ========== CONFIGURATION ==========
  2685.     const CONFIG = {
  2686.         localStorageKey: 'menuState_v1',
  2687.         autoExpandActive: true,
  2688.         defaultCollapsed: true,
  2689.         saveScrollPosition: true
  2690.     };
  2691.     // ========== FONCTIONS UTILITAIRES ==========
  2692.     
  2693.     // Sauvegarder l'état du menu
  2694.     function saveMenuState() {
  2695.         const menuState = {
  2696.             sections: {},
  2697.             scrollPosition: CONFIG.saveScrollPosition ? getScrollPosition() : 0,
  2698.             timestamp: Date.now()
  2699.         };
  2700.         
  2701.         document.querySelectorAll('.menu-section-modern').forEach(section => {
  2702.             const sectionId = section.querySelector('.menu-section-header-modern')?.dataset?.section;
  2703.             if (sectionId) {
  2704.                 menuState.sections[sectionId] = section.classList.contains('expanded') ? 'expanded' : 'collapsed';
  2705.             }
  2706.         });
  2707.         
  2708.         localStorage.setItem(CONFIG.localStorageKey, JSON.stringify(menuState));
  2709.     }
  2710.     // Restaurer l'état du menu
  2711.     function loadMenuState() {
  2712.         try {
  2713.             const saved = localStorage.getItem(CONFIG.localStorageKey);
  2714.             if (!saved) return null;
  2715.             
  2716.             return JSON.parse(saved);
  2717.         } catch (e) {
  2718.             console.warn('Impossible de charger l\\'état du menu:', e);
  2719.             return null;
  2720.         }
  2721.     }
  2722.     // Obtenir la position de défilement
  2723.     function getScrollPosition() {
  2724.         const scrollElement = document.querySelector('.menu-scroll-modern');
  2725.         return scrollElement ? scrollElement.scrollTop : 0;
  2726.     }
  2727.     // Restaurer la position de défilement
  2728.     function restoreScrollPosition(position) {
  2729.         if (!CONFIG.saveScrollPosition) return;
  2730.         
  2731.         const scrollElement = document.querySelector('.menu-scroll-modern');
  2732.         if (scrollElement) {
  2733.             // Attendre que le DOM soit complètement chargé
  2734.             setTimeout(() => {
  2735.                 scrollElement.scrollTop = position;
  2736.             }, 100);
  2737.         }
  2738.     }
  2739.     // Trouver la section active
  2740.     function findActiveSection() {
  2741.         const currentPath = window.location.pathname;
  2742.         const allLinks = document.querySelectorAll('.menu-link-modern[href], .menu-sub-link-modern[href]');
  2743.         
  2744.         let activeSectionId = null;
  2745.         
  2746.         allLinks.forEach(link => {
  2747.             const href = link.getAttribute('href');
  2748.             if (!href) return;
  2749.             
  2750.             // Vérifier si ce lien correspond à la page actuelle
  2751.             if (href === currentPath || 
  2752.                 (href !== '/' && currentPath.startsWith(href))) {
  2753.                 link.classList.add('active');
  2754.                 
  2755.                 // Trouver la section parente
  2756.                 const section = link.closest('.menu-section-modern');
  2757.                 if (section) {
  2758.                     const sectionId = section.querySelector('.menu-section-header-modern')?.dataset?.section;
  2759.                     if (sectionId) {
  2760.                         activeSectionId = sectionId;
  2761.                     }
  2762.                 }
  2763.                 
  2764.                 // Gérer les sous-menus d'accordéon
  2765.                 const accordion = link.closest('.menu-accordion-modern');
  2766.                 if (accordion) {
  2767.                     accordion.classList.add('show');
  2768.                 }
  2769.             }
  2770.         });
  2771.         
  2772.         return activeSectionId;
  2773.     }
  2774.     // Initialiser les sections
  2775.     function initializeSections() {
  2776.         const savedState = loadMenuState();
  2777.         const activeSectionId = findActiveSection();
  2778.         
  2779.         document.querySelectorAll('.menu-section-modern').forEach(section => {
  2780.             const header = section.querySelector('.menu-section-header-modern');
  2781.             const sectionId = header.dataset.section;
  2782.             
  2783.             // Vérifier si cette section a un enfant actif
  2784.             const hasActiveChild = section.querySelector('.menu-link-modern.active, .menu-sub-link-modern.active');
  2785.             if (hasActiveChild) {
  2786.                 header.classList.add('has-active-child');
  2787.             }
  2788.             
  2789.             // Déterminer l'état initial
  2790.             let shouldExpand = false;
  2791.             
  2792.             if (savedState?.sections?.[sectionId]) {
  2793.                 // Restaurer l'état sauvegardé
  2794.                 shouldExpand = savedState.sections[sectionId] === 'expanded';
  2795.             } else if (CONFIG.defaultCollapsed) {
  2796.                 // Par défaut, toutes les sections sont fermées
  2797.                 shouldExpand = false;
  2798.             } else {
  2799.                 // Sinon, ouvrir uniquement la section active
  2800.                 shouldExpand = sectionId === activeSectionId && CONFIG.autoExpandActive;
  2801.             }
  2802.             
  2803.             // Appliquer l'état
  2804.             if (shouldExpand) {
  2805.                 section.classList.add('expanded');
  2806.                 header.classList.add('active');
  2807.             } else {
  2808.                 section.classList.remove('expanded');
  2809.                 header.classList.remove('active');
  2810.             }
  2811.             
  2812.             // Gestionnaire de clic pour l'en-tête de section
  2813.             header.addEventListener('click', function(e) {
  2814.                 e.preventDefault();
  2815.                 e.stopPropagation();
  2816.                 
  2817.                 const isExpanded = section.classList.contains('expanded');
  2818.                 const newState = !isExpanded;
  2819.                 
  2820.                 // Mettre à jour l'état
  2821.                 section.classList.toggle('expanded', newState);
  2822.                 header.classList.toggle('active', newState);
  2823.                 
  2824.                 // Sauvegarder l'état
  2825.                 saveMenuState();
  2826.             });
  2827.         });
  2828.         
  2829.         // Restaurer la position de défilement
  2830.         if (savedState?.scrollPosition) {
  2831.             restoreScrollPosition(savedState.scrollPosition);
  2832.         }
  2833.         
  2834.         // Sauvegarder l'état initial
  2835.         setTimeout(() => saveMenuState(), 500);
  2836.     }
  2837.     // Gestion des accordéons
  2838.     function initializeAccordions() {
  2839.         const accordions = document.querySelectorAll('.menu-accordion-modern');
  2840.         
  2841.         accordions.forEach(accordion => {
  2842.             const trigger = accordion.querySelector('.menu-accordion-trigger');
  2843.             const arrow = accordion.querySelector('.menu-arrow-modern');
  2844.             
  2845.             if (trigger) {
  2846.                 trigger.addEventListener('click', function(e) {
  2847.                     e.preventDefault();
  2848.                     e.stopPropagation();
  2849.                     
  2850.                     const isActive = accordion.classList.contains('show');
  2851.                     
  2852.                     // Fermer tous les autres accordéons (optionnel)
  2853.                     // document.querySelectorAll('.menu-accordion-modern.show').forEach(acc => {
  2854.                     //     if (acc !== accordion) {
  2855.                     //         acc.classList.remove('show');
  2856.                     //     }
  2857.                     // });
  2858.                     
  2859.                     // Basculer l'état
  2860.                     accordion.classList.toggle('show', !isActive);
  2861.                     
  2862.                     // Animer la flèche
  2863.                     if (arrow) {
  2864.                         arrow.style.transform = !isActive ? 'rotate(90deg)' : 'rotate(0deg)';
  2865.                     }
  2866.                 });
  2867.             }
  2868.         });
  2869.     }
  2870.     // Prévenir la perte de position lors des clics
  2871.     function preventScrollReset() {
  2872.         const menuLinks = document.querySelectorAll('.menu-link-modern[href]:not([href^=\"#\"]):not([href^=\"http\"])');
  2873.         
  2874.         menuLinks.forEach(link => {
  2875.             link.addEventListener('click', function() {
  2876.                 // Sauvegarder la position actuelle avant navigation
  2877.                 if (CONFIG.saveScrollPosition) {
  2878.                     const scrollPos = getScrollPosition();
  2879.                     const currentState = loadMenuState() || {};
  2880.                     currentState.scrollPosition = scrollPos;
  2881.                     localStorage.setItem(CONFIG.localStorageKey, JSON.stringify(currentState));
  2882.                 }
  2883.                 
  2884.                 // Marquer ce lien comme actif immédiatement
  2885.                 document.querySelectorAll('.menu-link-modern.active, .menu-sub-link-modern.active').forEach(el => {
  2886.                     el.classList.remove('active');
  2887.                 });
  2888.                 this.classList.add('active');
  2889.                 
  2890.                 // Mettre à jour l'état de la section parente
  2891.                 const parentSection = this.closest('.menu-section-modern');
  2892.                 if (parentSection) {
  2893.                     const header = parentSection.querySelector('.menu-section-header-modern');
  2894.                     if (header && !parentSection.classList.contains('expanded')) {
  2895.                         parentSection.classList.add('expanded');
  2896.                         header.classList.add('active');
  2897.                         header.classList.add('has-active-child');
  2898.                     }
  2899.                 }
  2900.                 
  2901.                 // Sauvegarder l'état du menu
  2902.                 saveMenuState();
  2903.             });
  2904.         });
  2905.     }
  2906.     // Initialiser les effets de survol
  2907.     function initializeHoverEffects() {
  2908.         const menuItems = document.querySelectorAll('.menu-link-modern');
  2909.         
  2910.         menuItems.forEach(item => {
  2911.             item.addEventListener('mouseenter', function() {
  2912.                 if (!this.classList.contains('active')) {
  2913.                     this.style.transform = 'translateX(3px)';
  2914.                 }
  2915.             });
  2916.             
  2917.             item.addEventListener('mouseleave', function() {
  2918.                 this.style.transform = 'translateX(0)';
  2919.             });
  2920.         });
  2921.     }
  2922.     // ========== INITIALISATION ==========
  2923.     function initializeMenu() {
  2924.         initializeSections();
  2925.         initializeAccordions();
  2926.         preventScrollReset();
  2927.         initializeHoverEffects();
  2928.         
  2929.         // Sauvegarder l'état quand l'utilisateur quitte la page
  2930.         window.addEventListener('beforeunload', saveMenuState);
  2931.         
  2932.         // Sauvegarder périodiquement (au cas où)
  2933.         setInterval(saveMenuState, 30000); // Toutes les 30 secondes
  2934.     }
  2935.     // Démarrer l'initialisation
  2936.     initializeMenu();
  2937. });
  2938. </script>
  2939. <script>
  2940. // ========== GESTION DES MODALS ==========
  2941. document.addEventListener('DOMContentLoaded', function() {
  2942.     // Initialisation des gestionnaires de fichiers
  2943.     initFileUpload();
  2944. });
  2945. // MODAL TICKET
  2946. function openTicketModal() {
  2947.     document.getElementById('ticketModal').style.display = 'flex';
  2948.     document.body.style.overflow = 'hidden';
  2949. }
  2950. function closeTicketModal() {
  2951.     document.getElementById('ticketModal').style.display = 'none';
  2952.     document.body.style.overflow = '';
  2953.     
  2954.     // Réinitialiser le formulaire
  2955.     const form = document.getElementById('ticketForm');
  2956.     if (form) form.reset();
  2957.     document.getElementById('fileList').innerHTML = '';
  2958. }
  2959. // MODAL SUPPORT
  2960. function openSupportModal() {
  2961.     document.getElementById('supportModal').style.display = 'flex';
  2962.     document.body.style.overflow = 'hidden';
  2963. }
  2964. function closeSupportModal() {
  2965.     document.getElementById('supportModal').style.display = 'none';
  2966.     document.body.style.overflow = '';
  2967. }
  2968. // MODAL DÉMO
  2969. function openDemoScheduler() {
  2970.     document.getElementById('demoModal').style.display = 'flex';
  2971.     document.body.style.overflow = 'hidden';
  2972. }
  2973. function closeDemoModal() {
  2974.     document.getElementById('demoModal').style.display = 'none';
  2975.     document.body.style.overflow = '';
  2976. }
  2977. // Upload de fichiers
  2978. function initFileUpload() {
  2979.     const fileInput = document.getElementById('fileInput');
  2980.     if (!fileInput) return;
  2981.     
  2982.     fileInput.addEventListener('change', function(e) {
  2983.         const fileList = document.getElementById('fileList');
  2984.         fileList.innerHTML = '';
  2985.         
  2986.         Array.from(this.files).forEach((file, index) => {
  2987.             const fileItem = document.createElement('div');
  2988.             fileItem.className = 'file-item';
  2989.             fileItem.style.cssText = `
  2990.                 display: flex;
  2991.                 align-items: center;
  2992.                 justify-content: space-between;
  2993.                 padding: 8px 12px;
  2994.                 background: #f8fafc;
  2995.                 border-radius: 8px;
  2996.                 font-size: 0.85rem;
  2997.             `;
  2998.             
  2999.             fileItem.innerHTML = `
  3000.                 <div style=\"display: flex; align-items: center; gap: 8px;\">
  3001.                     <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#64748b\">
  3002.                         <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"/>
  3003.                         <polyline points=\"13 2 13 9 20 9\"/>
  3004.                     </svg>
  3005.                     <span style=\"color: #1e293b;\">\${file.name}</span>
  3006.                     <span style=\"color: #94a3b8; font-size: 0.75rem;\">(\${(file.size / 1024).toFixed(1)} KB)</span>
  3007.                 </div>
  3008.                 <button type=\"button\" onclick=\"this.parentElement.remove()\" style=\"background: none; border: none; color: #ef4444; cursor: pointer;\">
  3009.                     <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">
  3010.                         <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/>
  3011.                         <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/>
  3012.                     </svg>
  3013.                 </button>
  3014.             `;
  3015.             
  3016.             fileList.appendChild(fileItem);
  3017.         });
  3018.     });
  3019. }
  3020. // Fermeture avec touche Echap
  3021. document.addEventListener('keydown', function(e) {
  3022.     if (e.key === 'Escape') {
  3023.         closeTicketModal();
  3024.         closeSupportModal();
  3025.         closeDemoModal();
  3026.     }
  3027. });
  3028. // Empêcher la propagation des clics dans les modals
  3029. document.querySelectorAll('.modal-container').forEach(modal => {
  3030.     modal.addEventListener('click', function(e) {
  3031.         e.stopPropagation();
  3032.     });
  3033. });
  3034. </script>
  3035.         <div class=\"wrapper d-flex flex-column flex-row-fluid\" id=\"kt_wrapper\">
  3036.             <div id=\"kt_header\" style=\"\" class=\"header align-items-stretch\">
  3037.                 <div class=\"container d-flex align-items-stretch justify-content-between\">
  3038.                     <div class=\"d-flex align-items-center d-lg-none ms-n3 me-1\" title=\"Show aside menu\">
  3039.                         <div class=\"btn btn-icon btn-active-light-primary\" id=\"kt_aside_mobile_toggle\">
  3040.                             <span class=\"svg-icon svg-icon-2x mt-1\">
  3041.                                 <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"
  3042.                                     width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\">
  3043.                                     <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">
  3044.                                         <rect x=\"0\" y=\"0\" width=\"24\" height=\"24\" />
  3045.                                         <rect fill=\"#000000\" x=\"4\" y=\"5\" width=\"16\" height=\"3\" rx=\"1.5\" />
  3046.                                         <path
  3047.                                             d=\"M5.5,15 L18.5,15 C19.3284271,15 20,15.6715729 20,16.5 C20,17.3284271 19.3284271,18 18.5,18 L5.5,18 C4.67157288,18 4,17.3284271 4,16.5 C4,15.6715729 4.67157288,15 5.5,15 Z M5.5,10 L18.5,10 C19.3284271,10 20,10.6715729 20,11.5 C20,12.3284271 19.3284271,13 18.5,13 L5.5,13 C4.67157288,13 4,12.3284271 4,11.5 C4,10.6715729 4.67157288,10 5.5,10 Z\"
  3048.                                             fill=\"#000000\" opacity=\"0.3\" />
  3049.                                     </g>
  3050.                                 </svg>
  3051.                             </span>
  3052.                         </div>
  3053.                     </div>
  3054.                 </div>
  3055.             </div>";
  3056.         
  3057.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  3058.         
  3059.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  3060.         return; yield '';
  3061.     }
  3062.     /**
  3063.      * @codeCoverageIgnore
  3064.      */
  3065.     public function getTemplateName()
  3066.     {
  3067.         return "Base/_sidebar_admin.html.twig";
  3068.     }
  3069.     /**
  3070.      * @codeCoverageIgnore
  3071.      */
  3072.     public function isTraitable()
  3073.     {
  3074.         return false;
  3075.     }
  3076.     /**
  3077.      * @codeCoverageIgnore
  3078.      */
  3079.     public function getDebugInfo()
  3080.     {
  3081.         return array (  2353 => 2497,  2345 => 2487,  1569 => 1710,  1489 => 1632,  1464 => 1609,  1456 => 1604,  1452 => 1603,  1449 => 1602,  1447 => 1601,  1433 => 1590,  1430 => 1589,  1426 => 1587,  1420 => 1585,  1418 => 1584,  1413 => 1583,  1411 => 1582,  1394 => 1567,  1325 => 1462,  1316 => 1456,  1307 => 1450,  1298 => 1444,  1289 => 1438,  1249 => 1401,  1223 => 1378,  1179 => 1336,  1175 => 1334,  1169 => 1331,  1161 => 1330,  1152 => 1329,  1149 => 1328,  1147 => 1327,  1141 => 1323,  1137 => 1321,  1133 => 1319,  1131 => 1318,  1118 => 1308,  1091 => 1283,  1072 => 1266,  1070 => 1265,  1022 => 1220,  799 => 1000,  719 => 923,  701 => 908,  667 => 877,  635 => 847,  620 => 736,  602 => 721,  563 => 685,  531 => 656,  513 => 641,  479 => 609,  432 => 468,  429 => 466,  418 => 458,  409 => 452,  400 => 446,  367 => 418,  334 => 388,  330 => 386,  327 => 385,  322 => 381,  315 => 377,  311 => 375,  309 => 374,  294 => 362,  290 => 360,  285 => 356,  279 => 352,  277 => 351,  264 => 341,  260 => 339,  256 => 336,  251 => 332,  245 => 328,  243 => 327,  229 => 316,  225 => 314,  220 => 310,  214 => 306,  208 => 302,  206 => 301,  193 => 291,  189 => 289,  184 => 285,  178 => 281,  172 => 277,  170 => 276,  155 => 264,  151 => 262,  146 => 258,  143 => 251,  136 => 245,  134 => 244,  120 => 233,  116 => 231,  113 => 229,  110 => 228,  107 => 227,  104 => 226,  101 => 225,  98 => 224,  95 => 223,  92 => 222,  72 => 203,  44 => 1,);
  3082.     }
  3083.     public function getSourceContext()
  3084.     {
  3085.         return new Source("<div class=\"d-flex flex-column flex-root\">
  3086.     <div class=\"page d-flex flex-row flex-column-fluid\">
  3087. <div id=\"kt_aside\" class=\"aside aside-modern\" data-kt-drawer=\"true\" data-kt-drawer-name=\"aside\" data-kt-drawer-activate=\"{default: true, lg: false}\" data-kt-drawer-overlay=\"true\" data-kt-drawer-width=\"{default:'280px', '300px': '300px'}\" data-kt-drawer-direction=\"start\" data-kt-drawer-toggle=\"#kt_aside_mobile_toggle\">
  3088.     <!-- Logo Section Modernisée -->
  3089.     <div class=\"aside-logo-modern\" id=\"kt_aside_logo\">
  3090.         <a href=\"/dashboard\" class=\"logo-container-modern\">
  3091.             <span class=\"brand-text\">MAZEGO</span>
  3092.         </a>
  3093.         <div id=\"kt_aside_toggle\" class=\"btn-toggle-modern\" data-kt-toggle=\"true\" data-kt-toggle-state=\"active\" data-kt-toggle-target=\"body\" data-kt-toggle-name=\"aside-minimize\">
  3094.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3095.                 <path d=\"m15 18-6-6 6-6\"/>
  3096.             </svg>
  3097.         </div>
  3098.     </div>
  3099.     <!-- Menu Navigation Moderne -->
  3100.     <div class=\"aside-menu-modern\">
  3101.         <div class=\"menu-scroll-modern\" id=\"kt_aside_menu_wrapper\" data-kt-scroll=\"true\" data-kt-scroll-activate=\"{default: false, lg: true}\" data-kt-scroll-height=\"auto\" data-kt-scroll-dependencies=\"#kt_aside_logo, #kt_aside_footer\" data-kt-scroll-wrappers=\"#kt_aside_menu\" data-kt-scroll-offset=\"0\">
  3102.             <div class=\"menu-modern\" id=\"kt_aside_menu\" data-kt-menu=\"true\">
  3103. <!-- 📄 FACTURE ÉLECTRONIQUE -->
  3104. {# <div class=\"menu-section-modern\">
  3105.     <div class=\"menu-section-header-modern\" data-section=\"facture-electronique\">
  3106.         <div class=\"menu-section-title-modern\">
  3107.             <span class=\"section-title-text\">FACTURE ÉLECTRONIQUE</span>
  3108.                        
  3109.                                             <div class=\"menu-badge-modern\">
  3110.                         <span class=\"badge-new-modern\">NEW</span>
  3111.                     </div>
  3112.         </div>
  3113.         <div class=\"menu-section-arrow\">
  3114.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3115.                 <path d=\"m6 9 6 6 6-6\"/>
  3116.             </svg>
  3117.         </div>
  3118.     </div>
  3119.     <div class=\"menu-section-content\" id=\"section-facture-electronique\">
  3120.         
  3121.        
  3122.         {% set hasCertificate = user_certificate is defined and user_certificate != null %}
  3123.         {% set hasTTNConfig = user_ttn_config is defined and user_ttn_config|length > 0 %}
  3124.         {% set isActivated = user_activation is defined and user_activation != null %}
  3125.         
  3126.       
  3127.         {% if not isActivated %}
  3128.             <!-- Activer la facture électronique -->
  3129.             <div class=\"menu-item-modern\">
  3130.                 <a class=\"menu-link-modern\" href=\"{{ path('facture_electronique_step1') }}\">
  3131.                     <div class=\"menu-icon-modern\">
  3132.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3133.                             <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  3134.                             <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"/>
  3135.                             <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"/>
  3136.                             <path d=\"M12 7v6\"/>
  3137.                             <path d=\"M9 10h6\"/>
  3138.                             <circle cx=\"12\" cy=\"10\" r=\"2\"/>
  3139.                         </svg>
  3140.                     </div>
  3141.                     <span class=\"menu-title-modern\">Activer la facture électronique</span>
  3142.                     <div class=\"menu-badge-modern\">
  3143.                         <span class=\"badge-new-modern\">NEW</span>
  3144.                     </div>
  3145.                 </a>
  3146.             </div>
  3147.         {% else %}
  3148.             <!-- Dashboard Facture Électronique -->
  3149.             <div class=\"menu-item-modern\">
  3150.                 <a class=\"menu-link-modern\" href=\"{{ path('dashboard_facture_electronique') }}\">
  3151.                     <div class=\"menu-icon-modern\">
  3152.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3153.                             <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  3154.                             <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"/>
  3155.                             <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"/>
  3156.                             <path d=\"M12 11v-4\"/>
  3157.                             <circle cx=\"12\" cy=\"9\" r=\"1\" fill=\"currentColor\"/>
  3158.                         </svg>
  3159.                     </div>
  3160.                     <span class=\"menu-title-modern\">Tableau de bord</span>
  3161.                      
  3162.                 </a>
  3163.             </div>
  3164.         {% endif %}
  3165.   
  3166.         {% if isActivated or (hasCertificate and not hasTTNConfig) %}
  3167.             <div class=\"menu-item-modern\">
  3168.                 <a class=\"menu-link-modern\" href=\"{{ path('facture_electronique_step2') }}\">
  3169.                     <div class=\"menu-icon-modern\">
  3170.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3171.                             <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  3172.                             <path d=\"M12 16v-4\"/>
  3173.                             <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"/>
  3174.                         </svg>
  3175.                     </div>
  3176.                     <span class=\"menu-title-modern\">Configuration TTN</span>
  3177.                     {% if not hasTTNConfig %}
  3178.                         <div class=\"menu-badge-modern\">
  3179.                             <span class=\"badge-dot-modern\"></span>
  3180.                         </div>
  3181.                     {% endif %}
  3182.                 </a>
  3183.             </div>
  3184.         {% endif %}
  3185.         
  3186.       
  3187.         <div class=\"menu-item-modern\">
  3188.             <a class=\"menu-link-modern\" href=\"{{ path('facture_electronique_certificate') }}\">
  3189.                 <div class=\"menu-icon-modern\">
  3190.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3191.                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>
  3192.                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  3193.                         <path d=\"M12 6v2\"/>
  3194.                         <path d=\"M12 16v2\"/>
  3195.                         <path d=\"M6 12h2\"/>
  3196.                         <path d=\"M16 12h2\"/>
  3197.                     </svg>
  3198.                 </div>
  3199.                 <span class=\"menu-title-modern\">Certificat de signature</span>
  3200.                    <span class=\"badge-new-modern\">NEW</span>
  3201.                 {% if hasCertificate %}
  3202.                     <div class=\"menu-badge-modern\">
  3203.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">ACTIF</span>
  3204.                     </div>
  3205.                 {% endif %}
  3206.             </a>
  3207.         </div>
  3208.         
  3209.      
  3210.         {% if isActivated %}
  3211.             <div class=\"menu-item-modern\">
  3212.                 <div class=\"menu-link-modern\" style=\"cursor: default;\">
  3213.                     <div class=\"menu-icon-modern\">
  3214.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3215.                             <path d=\"M4 7h16\"/>
  3216.                             <path d=\"M7 7v10\"/>
  3217.                             <path d=\"M17 7v10\"/>
  3218.                             <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/>
  3219.                             <path d=\"M9 11h6\"/>
  3220.                             <path d=\"M12 14v-3\"/>
  3221.                         </svg>
  3222.                     </div>
  3223.                     <span class=\"menu-title-modern\">Signatures restantes</span>
  3224.                     <div class=\"menu-badge-modern\">
  3225.                         <span class=\"badge bg-info rounded-pill px-2 py-1\" style=\"font-size: 0.75rem; font-weight: 600;\">
  3226.                             {{ user_signatures_remaining ?? 300 }} / {{ user_signatures_total ?? 300 }}
  3227.                         </span>
  3228.                     </div>
  3229.                 </div>
  3230.             </div>
  3231.         {% endif %}
  3232.         
  3233.          
  3234.         {% if isActivated %}
  3235.             <div class=\"menu-accordion-modern\" data-kt-menu-trigger=\"click\">
  3236.                 <div class=\"menu-link-modern menu-accordion-trigger\">
  3237.                     <div class=\"menu-icon-modern\">
  3238.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3239.                             <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  3240.                             <polyline points=\"14,2 14,8 20,8\"/>
  3241.                             <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  3242.                             <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  3243.                             <path d=\"M10 9h4\"/>
  3244.                             <path d=\"M8 9h.01\"/>
  3245.                             <path d=\"M16 21v-4\"/>
  3246.                         </svg>
  3247.                     </div>
  3248.                     <span class=\"menu-title-modern\">Historique</span>
  3249.                     <div class=\"menu-arrow-modern\">
  3250.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3251.                             <path d=\"m9 18 6-6-6-6\"/>
  3252.                         </svg>
  3253.                     </div>
  3254.                 </div>
  3255.                 <div class=\"menu-sub-modern\">
  3256.                     <div class=\"menu-sub-item-modern\">
  3257.                         <a href=\"{{ path('facture_electronique_historique_factures') }}\" class=\"menu-sub-link-modern\">
  3258.                             <span class=\"menu-bullet-modern\"></span>
  3259.                             <span>Factures émises</span>
  3260.                         </a>
  3261.                     </div>
  3262.                     <div class=\"menu-sub-item-modern\">
  3263.                         <a href=\"{{ path('facture_electronique_historique_paiements') }}\" class=\"menu-sub-link-modern\">
  3264.                             <span class=\"menu-bullet-modern\"></span>
  3265.                             <span>Paiements</span>
  3266.                         </a>
  3267.                     </div>
  3268.                     <div class=\"menu-sub-item-modern\">
  3269.                         <a href=\"{{ path('facture_electronique_rapports') }}\" class=\"menu-sub-link-modern\">
  3270.                             <span class=\"menu-bullet-modern\"></span>
  3271.                             <span>Rapports</span>
  3272.                         </a>
  3273.                     </div>
  3274.                 </div>
  3275.             </div>
  3276.         {% endif %}
  3277.         
  3278.     </div>
  3279. </div> #}
  3280. <!-- 📄 FACTURE ÉLECTRONIQUE -->
  3281. <div class=\"menu-section-modern\">
  3282.     <div class=\"menu-section-header-modern\" data-section=\"facture-electronique\">
  3283.         <div class=\"menu-section-title-modern\">
  3284.             <span class=\"section-title-text\">FACTURE ÉLECTRONIQUE</span>
  3285.             <div class=\"menu-badge-modern\">
  3286.                 <span class=\"badge-new-modern\">NEW</span>
  3287.             </div>
  3288.         </div>
  3289.         <div class=\"menu-section-arrow\">
  3290.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3291.                 <path d=\"m6 9 6 6 6-6\"/>
  3292.             </svg>
  3293.         </div>
  3294.     </div>
  3295.     <div class=\"menu-section-content\" id=\"section-facture-electronique\">
  3296.         
  3297.         {# État du service - À définir dans votre contrôleur #}
  3298.         {% set hasCertificate = user_certificate is defined and user_certificate != null %}
  3299.         {% set hasDigiGoEmail = digigo_email is defined and digigo_email is not empty %}
  3300.         {% set hasTTNConfig = user_ttn_config is defined and user_ttn_config|length > 0 %}
  3301.         {% set isActivated = user_activation is defined and user_activation != null %}
  3302.         {% set signatures_remaining = user_signatures_remaining is defined ? user_signatures_remaining : 300 %}
  3303.         {% set signatures_total = user_signatures_total is defined ? user_signatures_total : 300 %}
  3304.         {% set has_factures = donnees_electroniques is defined and donnees_electroniques|length > 0 %}
  3305.         
  3306.         {# ===== ÉTAPE 1 : CONFIGURATION DIGIGO ===== #}
  3307.         <!-- Configuration DigiGo / Email -->
  3308.         <div class=\"menu-item-modern\">
  3309.             <a class=\"menu-link-modern\" href=\"{{ path('facture_electronique_setup') }}\">
  3310.                 <div class=\"menu-icon-modern\">
  3311.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3312.                         <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\"/>
  3313.                         <path d=\"m22 7-10 7L2 7\"/>
  3314.                         <circle cx=\"12\" cy=\"15\" r=\"2\"/>
  3315.                         <path d=\"M12 15v-4\"/>
  3316.                         <path d=\"M9 11h6\"/>
  3317.                     </svg>
  3318.                 </div>
  3319.                 <span class=\"menu-title-modern\">1. Configuration DigiGo</span>
  3320.                 {% if hasDigiGoEmail %}
  3321.                     <div class=\"menu-badge-modern\">
  3322.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">✓ 
  3323.                         {# {{ digigo_email }} #}
  3324.                         </span>
  3325.                     </div>
  3326.                 {% else %}
  3327.                     {# <div class=\"menu-badge-modern\">
  3328.                         <span class=\"badge-dot-modern\"></span>
  3329.                     </div> #}
  3330.                     {# <div class=\"menu-badge-modern\">
  3331.                         <span class=\"badge-new-modern\">*</span>
  3332.                     </div> #}
  3333.                 {% endif %}
  3334.             </a>
  3335.         </div>
  3336.         
  3337.         {# ===== ÉTAPE 2 : CERTIFICAT DE SIGNATURE ===== #}
  3338.         <!-- Certificat de signature -->
  3339.         <div class=\"menu-item-modern\">
  3340.             <a class=\"menu-link-modern\" href=\"{{ path('facture_electronique_step1') }}\">
  3341.                 <div class=\"menu-icon-modern\">
  3342.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3343.                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>
  3344.                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  3345.                         <path d=\"M12 6v2\"/>
  3346.                         <path d=\"M12 16v2\"/>
  3347.                         <path d=\"M6 12h2\"/>
  3348.                         <path d=\"M16 12h2\"/>
  3349.                     </svg>
  3350.                 </div>
  3351.                 <span class=\"menu-title-modern\">2. Certificat de signature</span>
  3352.                 {% if hasCertificate %}
  3353.                     <div class=\"menu-badge-modern\">
  3354.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">ACTIF</span>
  3355.                     </div>
  3356.                 {% else %}
  3357.                     <div class=\"menu-badge-modern\">
  3358.                         <span class=\"badge-dot-modern\"></span>
  3359.                     </div>
  3360.                 {% endif %}
  3361.             </a>
  3362.         </div>
  3363.         
  3364.         {# ===== ÉTAPE 3 : CONFIGURATION TTN ===== #}
  3365.         <!-- Configuration TTN -->
  3366.         <div class=\"menu-item-modern\">
  3367.             <a class=\"menu-link-modern\" href=\"{{ path('facture_electronique_step2') }}\">
  3368.                 <div class=\"menu-icon-modern\">
  3369.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3370.                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  3371.                         <path d=\"M12 16v-4\"/>
  3372.                         <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"/>
  3373.                         <path d=\"M8 12h8\"/>
  3374.                     </svg>
  3375.                 </div>
  3376.                 <span class=\"menu-title-modern\">3. Configuration TTN</span>
  3377.                 {% if hasTTNConfig %}
  3378.                     <div class=\"menu-badge-modern\">
  3379.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">ACTIF</span>
  3380.                     </div>
  3381.                 {% else %}
  3382.                     <div class=\"menu-badge-modern\">
  3383.                         <span class=\"badge-dot-modern\"></span>
  3384.                     </div>
  3385.                 {% endif %}
  3386.             </a>
  3387.         </div>
  3388.         
  3389.         {# ===== ÉTAPE 4 : ACTIVATION & PAIEMENT ===== #}
  3390.         <!-- Activation et paiement -->
  3391.         <div class=\"menu-item-modern\">
  3392.             <a class=\"menu-link-modern\" href=\"{{ path('facture_electronique_step3') }}\">
  3393.                 <div class=\"menu-icon-modern\">
  3394.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3395.                         <rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\"/>
  3396.                         <line x1=\"2\" y1=\"10\" x2=\"22\" y2=\"10\"/>
  3397.                         <circle cx=\"12\" cy=\"15\" r=\"2\"/>
  3398.                         <path d=\"M12 15v-3\"/>
  3399.                         <path d=\"M9 12h6\"/>
  3400.                     </svg>
  3401.                 </div>
  3402.                 <span class=\"menu-title-modern\">4. Activation & paiement</span>
  3403.                 {% if isActivated %}
  3404.                     <div class=\"menu-badge-modern\">
  3405.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">ACTIVÉ</span>
  3406.                     </div>
  3407.                 {% endif %}
  3408.             </a>
  3409.         </div>
  3410.         
  3411.         {# ===== SÉPARATEUR ===== #}
  3412.         <div style=\"height: 1px; background: linear-gradient(90deg, transparent, #e2e8f0, transparent); margin: 0.5rem 1rem;\"></div>
  3413.         
  3414.         {# ===== LIEN RAPIDE VERS LE CERTIFICAT ===== #}
  3415.         <!-- Gestion des certificats -->
  3416.         <div class=\"menu-item-modern\">
  3417.             <a class=\"menu-link-modern\" href=\"{{ path('facture_electronique_certificate') }}\">
  3418.                 <div class=\"menu-icon-modern\">
  3419.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3420.                         <path d=\"M4 7h16\"/>
  3421.                         <path d=\"M7 7v10\"/>
  3422.                         <path d=\"M17 7v10\"/>
  3423.                         <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/>
  3424.                     </svg>
  3425.                 </div>
  3426.                 <span class=\"menu-title-modern\">Gestion des certificats</span>
  3427.                 {% if hasCertificate %}
  3428.                     <div class=\"menu-badge-modern\">
  3429.                         <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">ACTIF</span>
  3430.                     </div>
  3431.                 {% endif %}
  3432.             </a>
  3433.         </div>
  3434.         
  3435.         {# ===== NOUVEAU : LISTE DES FACTURES ÉLECTRONIQUES ===== #}
  3436.         <!-- Liste des factures électroniques (accessible à tous) -->
  3437.         <div class=\"menu-item-modern\">
  3438.             <a class=\"menu-link-modern\" href=\"{{ path('facture_electronique_liste') }}\">
  3439.                 <div class=\"menu-icon-modern\">
  3440.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3441.                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  3442.                         <polyline points=\"14 2 14 8 20 8\"/>
  3443.                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  3444.                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  3445.                         <path d=\"M10 9h4\"/>
  3446.                         <path d=\"M8 9h.01\"/>
  3447.                     </svg>
  3448.                 </div>
  3449.                 <span class=\"menu-title-modern\">factures électroniques</span>
  3450.                 {% if has_factures %}
  3451.                     <div class=\"menu-badge-modern\">
  3452.                         <span class=\"badge bg-primary rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">
  3453.                             {{ donnees_electroniques|length }}
  3454.                         </span>
  3455.                     </div>
  3456.                 {% endif %}
  3457.             </a>
  3458.         </div>
  3459.         
  3460.         {# ===== SI SERVICE ACTIVÉ ===== #}
  3461.         {% if isActivated %}
  3462.             <!-- Dashboard Facture Électronique -->
  3463.             <div class=\"menu-item-modern\">
  3464.                 <a class=\"menu-link-modern\" href=\"{{ path('dashboard_facture_electronique') }}\">
  3465.                     <div class=\"menu-icon-modern\">
  3466.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3467.                             <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  3468.                             <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"/>
  3469.                             <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"/>
  3470.                             <path d=\"M12 11v-4\"/>
  3471.                             <circle cx=\"12\" cy=\"9\" r=\"1\" fill=\"currentColor\"/>
  3472.                         </svg>
  3473.                     </div>
  3474.                     <span class=\"menu-title-modern\">Tableau de bord</span>
  3475.                 </a>
  3476.             </div>
  3477.             
  3478.             <!-- Compteur de signatures -->
  3479.             <div class=\"menu-item-modern\">
  3480.                 <div class=\"menu-link-modern\" style=\"cursor: default;\">
  3481.                     <div class=\"menu-icon-modern\">
  3482.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3483.                             <path d=\"M4 7h16\"/>
  3484.                             <path d=\"M7 7v10\"/>
  3485.                             <path d=\"M17 7v10\"/>
  3486.                             <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/>
  3487.                             <path d=\"M9 11h6\"/>
  3488.                             <path d=\"M12 14v-3\"/>
  3489.                         </svg>
  3490.                     </div>
  3491.                     <span class=\"menu-title-modern\">Signatures restantes</span>
  3492.                     <div class=\"menu-badge-modern\">
  3493.                         <span class=\"badge bg-info rounded-pill px-2 py-1\" style=\"font-size: 0.75rem; font-weight: 600;\">
  3494.                             {{ signatures_remaining }} / {{ signatures_total }}
  3495.                         </span>
  3496.                     </div>
  3497.                 </div>
  3498.             </div>
  3499.             
  3500.             <!-- Historique et rapports (accordéon) -->
  3501.             <div class=\"menu-accordion-modern\" data-kt-menu-trigger=\"click\">
  3502.                 <div class=\"menu-link-modern menu-accordion-trigger\">
  3503.                     <div class=\"menu-icon-modern\">
  3504.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3505.                             <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  3506.                             <polyline points=\"14 2 14 8 20 8\"/>
  3507.                             <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  3508.                             <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  3509.                             <path d=\"M10 9h4\"/>
  3510.                             <path d=\"M16 21v-4\"/>
  3511.                         </svg>
  3512.                     </div>
  3513.                     <span class=\"menu-title-modern\">Historique & rapports</span>
  3514.                     <div class=\"menu-arrow-modern\">
  3515.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3516.                             <path d=\"m9 18 6-6-6-6\"/>
  3517.                         </svg>
  3518.                     </div>
  3519.                 </div>
  3520.                 <div class=\"menu-sub-modern\">
  3521.                     <div class=\"menu-sub-item-modern\">
  3522.                         <a href=\"{{ path('facture_electronique_historique_factures') }}\" class=\"menu-sub-link-modern\">
  3523.                             <span class=\"menu-bullet-modern\"></span>
  3524.                             <span>Factures émises</span>
  3525.                         </a>
  3526.                     </div>
  3527.                     <div class=\"menu-sub-item-modern\">
  3528.                         <a href=\"{{ path('facture_electronique_historique_paiements') }}\" class=\"menu-sub-link-modern\">
  3529.                             <span class=\"menu-bullet-modern\"></span>
  3530.                             <span>Paiements</span>
  3531.                         </a>
  3532.                     </div>
  3533.                     <div class=\"menu-sub-item-modern\">
  3534.                         <a href=\"{{ path('facture_electronique_rapports') }}\" class=\"menu-sub-link-modern\">
  3535.                             <span class=\"menu-bullet-modern\"></span>
  3536.                             <span>Rapports mensuels</span>
  3537.                         </a>
  3538.                     </div>
  3539.                 </div>
  3540.             </div>
  3541.         {% endif %}
  3542.         
  3543.         {# ===== LIEN D'AIDE ===== #}
  3544.         <div class=\"menu-item-modern\">
  3545.             <a class=\"menu-link-modern\" href=\"#\" onclick=\"openSupportModal(); return false;\">
  3546.                 <div class=\"menu-icon-modern\">
  3547.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3548.                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  3549.                         <path d=\"M12 16v-4\"/>
  3550.                         <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"/>
  3551.                     </svg>
  3552.                 </div>
  3553.                 <span class=\"menu-title-modern\">Aide & support</span>
  3554.             </a>
  3555.         </div>
  3556.         
  3557.     </div>
  3558. </div>
  3559.                 <!-- 📊 TABLEAU DE BORD -->
  3560.                 <div class=\"menu-section-modern\">
  3561.                     <div class=\"menu-section-header-modern\" data-section=\"dashboard\">
  3562.                         <div class=\"menu-section-title-modern\">
  3563.                             <span class=\"section-title-text\">TABLEAU DE BORD</span>
  3564.                         </div>
  3565.                         <div class=\"menu-section-arrow\">
  3566.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3567.                                 <path d=\"m6 9 6 6 6-6\"/>
  3568.                             </svg>
  3569.                         </div>
  3570.                     </div>
  3571.                     <div class=\"menu-section-content\" id=\"section-dashboard\">
  3572.                         <div class=\"menu-item-modern\">
  3573.                             <a class=\"menu-link-modern active\" href=\"/dashboard\">
  3574.                                 <div class=\"menu-icon-modern\">
  3575.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3576.                                         <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"/>
  3577.                                         <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"/>
  3578.                                         <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"/>
  3579.                                         <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"/>
  3580.                                     </svg>
  3581.                                 </div>
  3582.                                 <span class=\"menu-title-modern\">Tableau de Bord</span>
  3583.                             </a>
  3584.                         </div>
  3585.                     </div>
  3586.                 </div>
  3587.                 {# <!-- 💼 VENTES (CLIENTS) -->
  3588.                 <div class=\"menu-section-modern\">
  3589.                     <div class=\"menu-section-header-modern\" data-section=\"ventes\">
  3590.                         <div class=\"menu-section-title-modern\">
  3591.                             <span class=\"section-title-text\">VENTES (CLIENTS)</span>
  3592.                         </div>
  3593.                         <div class=\"menu-section-arrow\">
  3594.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3595.                                 <path d=\"m6 9 6 6 6-6\"/>
  3596.                             </svg>
  3597.                         </div>
  3598.                     </div>
  3599.                     <div class=\"menu-section-content\" id=\"section-ventes\">
  3600.                         <!-- Devis & Propositions -->
  3601.                         <div class=\"menu-item-modern\">
  3602.                             <a class=\"menu-link-modern\" href=\"/devis/\">
  3603.                                 <div class=\"menu-icon-modern\">
  3604.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3605.                                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  3606.                                         <polyline points=\"14,2 14,8 20,8\"/>
  3607.                                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  3608.                                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  3609.                                         <path d=\"M10 9h4\"/>
  3610.                                     </svg>
  3611.                                 </div>
  3612.                                 <span class=\"menu-title-modern\">Devis & Propositions</span>
  3613.                             </a>
  3614.                         </div>
  3615.                         
  3616.                         
  3617.                         <!-- Bons de Livraison -->
  3618.                         <div class=\"menu-item-modern\">
  3619.                             <a class=\"menu-link-modern\" href=\"{{ path('devis_index_bon_livraison') }}\">
  3620.                                 <div class=\"menu-icon-modern\">
  3621.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3622.                                         <path d=\"M12 2v8l4-4\"/>
  3623.                                         <path d=\"M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0z\"/>
  3624.                                         <path d=\"M16 12l-4 4-4-4\"/>
  3625.                                         <path d=\"M12 16V8\"/>
  3626.                                     </svg>
  3627.                                 </div>
  3628.                                 <span class=\"menu-title-modern\">Bons de Livraison</span>
  3629.                             </a>
  3630.                         </div>
  3631.         <!-- Bons de Réparation -->
  3632.         <div class=\"menu-item-modern\">
  3633.             <a class=\"menu-link-modern\" href=\"{{ path('reparation_index') }}\">
  3634.                 <div class=\"menu-icon-modern\">
  3635.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3636.                         <path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"/>
  3637.                     </svg>
  3638.                 </div>
  3639.                 <span class=\"menu-title-modern\">Bons de Réparation</span>
  3640.             </a>
  3641.         </div>
  3642.                         
  3643.                         <!-- Factures Clients -->
  3644.                         <div class=\"menu-item-modern\">
  3645.                             <a class=\"menu-link-modern\" href=\"/facture/\">
  3646.                                 <div class=\"menu-icon-modern\">
  3647.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3648.                                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  3649.                                         <polyline points=\"14,2 14,8 20,8\"/>
  3650.                                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  3651.                                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  3652.                                         <path d=\"M10 9h4\"/>
  3653.                                         <path d=\"M12 21v-4\"/>
  3654.                                     </svg>
  3655.                                 </div>
  3656.                                 <span class=\"menu-title-modern\">Factures Clients</span>
  3657.                             </a>
  3658.                         </div>
  3659.                         
  3660.                         <!-- Point de Vente PRO -->
  3661.                         <div class=\"menu-item-modern\">
  3662.                             <a class=\"menu-link-modern\" href=\"/caisse/\">
  3663.                                 <div class=\"menu-icon-modern\">
  3664.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3665.                                         <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  3666.                                         <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"/>
  3667.                                         <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"/>
  3668.                                         <circle cx=\"12\" cy=\"10\" r=\"2\"/>
  3669.                                         <path d=\"M12 14v-4\"/>
  3670.                                         <path d=\"M16 10h4\"/>
  3671.                                     </svg>
  3672.                                 </div>
  3673.                                 <span class=\"menu-title-modern\">Point de Vente PRO</span>
  3674.                                 <div class=\"menu-badge-modern\">
  3675.                                     <span class=\"badge-new-modern\">PRO</span>
  3676.                                 </div>
  3677.                             </a>
  3678.                         </div>
  3679.                     </div>
  3680.                 </div> #}
  3681.  <!-- 💼 VENTES (CLIENTS) -->
  3682. <div class=\"menu-section-modern\">
  3683.     <div class=\"menu-section-header-modern\" data-section=\"ventes\">
  3684.         <div class=\"menu-section-title-modern\">
  3685.             <span class=\"section-title-text\">VENTES (CLIENTS)</span>
  3686.         </div>
  3687.         <div class=\"menu-section-arrow\">
  3688.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3689.                 <path d=\"m6 9 6 6 6-6\"/>
  3690.             </svg>
  3691.         </div>
  3692.     </div>
  3693.     <div class=\"menu-section-content\" id=\"section-ventes\">
  3694.         <!-- Devis & Propositions -->
  3695.         <div class=\"menu-item-modern\">
  3696.             <a class=\"menu-link-modern\" href=\"/devis/\">
  3697.                 <div class=\"menu-icon-modern\">
  3698.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3699.                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  3700.                         <polyline points=\"14,2 14,8 20,8\"/>
  3701.                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  3702.                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  3703.                         <path d=\"M10 9h4\"/>
  3704.                     </svg>
  3705.                 </div>
  3706.                 <span class=\"menu-title-modern\">Devis & Propositions</span>
  3707.             </a>
  3708.         </div>
  3709.         
  3710.         <!-- Bons de Livraison -->
  3711.         <div class=\"menu-item-modern\">
  3712.             <a class=\"menu-link-modern\" href=\"{{ path('devis_index_bon_livraison') }}\">
  3713.                 <div class=\"menu-icon-modern\">
  3714.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3715.                         <path d=\"M12 2v8l4-4\"/>
  3716.                         <path d=\"M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0z\"/>
  3717.                         <path d=\"M16 12l-4 4-4-4\"/>
  3718.                         <path d=\"M12 16V8\"/>
  3719.                     </svg>
  3720.                 </div>
  3721.                 <span class=\"menu-title-modern\">Bons de Livraison</span>
  3722.             </a>
  3723.         </div>
  3724.         <!-- Bons de Réparation -->
  3725.         <div class=\"menu-item-modern\">
  3726.             <a class=\"menu-link-modern\" href=\"{{ path('reparation_index') }}\">
  3727.                 <div class=\"menu-icon-modern\">
  3728.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3729.                         <path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"/>
  3730.                     </svg>
  3731.                 </div>
  3732.                 <span class=\"menu-title-modern\">Bons de Réparation</span>
  3733.             </a>
  3734.         </div>
  3735.         
  3736.         <!-- Factures Clients -->
  3737.         <div class=\"menu-item-modern\">
  3738.             <a class=\"menu-link-modern\" href=\"/facture/\">
  3739.                 <div class=\"menu-icon-modern\">
  3740.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3741.                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  3742.                         <polyline points=\"14,2 14,8 20,8\"/>
  3743.                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  3744.                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  3745.                         <path d=\"M10 9h4\"/>
  3746.                         <path d=\"M12 21v-4\"/>
  3747.                     </svg>
  3748.                 </div>
  3749.                 <span class=\"menu-title-modern\">Factures Clients</span>
  3750.             </a>
  3751.         </div>
  3752.         
  3753.         <!-- Retours Clients -->
  3754.         <div class=\"menu-item-modern\">
  3755.             <a class=\"menu-link-modern\" href=\"{{ path('retour_client_index') }}\">
  3756.                 <div class=\"menu-icon-modern\">
  3757.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3758.                         <path d=\"m3 3 3 9h12l3-9H3z\"/>
  3759.                         <path d=\"M6 12h12\"/>
  3760.                         <path d=\"M12 3v18\"/>
  3761.                         <path d=\"M15 6l-3 3 3 3\"/>
  3762.                         <path d=\"M9 6l3-3-3-3\"/>
  3763.                     </svg>
  3764.                 </div>
  3765.                 <span class=\"menu-title-modern\">Retours Clients</span>
  3766.             </a>
  3767.         </div>
  3768.         
  3769.         <!-- Point de Vente PRO -->
  3770.         <div class=\"menu-item-modern\">
  3771.             <a class=\"menu-link-modern\" href=\"/caisse/\">
  3772.                 <div class=\"menu-icon-modern\">
  3773.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3774.                         <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  3775.                         <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"/>
  3776.                         <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"/>
  3777.                         <circle cx=\"12\" cy=\"10\" r=\"2\"/>
  3778.                         <path d=\"M12 14v-4\"/>
  3779.                         <path d=\"M16 10h4\"/>
  3780.                     </svg>
  3781.                 </div>
  3782.                 <span class=\"menu-title-modern\">Point de Vente PRO</span>
  3783.                 <div class=\"menu-badge-modern\">
  3784.                     <span class=\"badge-new-modern\">PRO</span>
  3785.                 </div>
  3786.             </a>
  3787.         </div>
  3788.         <!-- Rapports de vente (par salarié) -->
  3789.         <div class=\"menu-item-modern\">
  3790.             <a class=\"menu-link-modern\" href=\"{{ path('caisse_rapports_vendeurs') }}\">
  3791.                 <div class=\"menu-icon-modern\">
  3792.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3793.                         <path d=\"M3 3v18h18\"/>
  3794.                         <path d=\"M18 17V9\"/>
  3795.                         <path d=\"M13 17V5\"/>
  3796.                         <path d=\"M8 17v-3\"/>
  3797.                     </svg>
  3798.                 </div>
  3799.                 <span class=\"menu-title-modern\">Rapports de vente</span>
  3800.             </a>
  3801.         </div>
  3802.         <!-- Clôtures de caisse -->
  3803.         <div class=\"menu-item-modern\">
  3804.             <a class=\"menu-link-modern\" href=\"{{ path('caisse_cloture_index') }}\">
  3805.                 <div class=\"menu-icon-modern\">
  3806.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3807.                         <rect x=\"3\" y=\"11\" width=\"18\" height=\"10\" rx=\"2\"/>
  3808.                         <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"/>
  3809.                     </svg>
  3810.                 </div>
  3811.                 <span class=\"menu-title-modern\">Clôtures de caisse</span>
  3812.             </a>
  3813.         </div>
  3814.     </div>
  3815. </div>
  3816. {#
  3817.                 <!-- 🏪 ACHATS (FOURNISSEURS) -->
  3818.                 <div class=\"menu-section-modern\">
  3819.                     <div class=\"menu-section-header-modern\" data-section=\"achats\">
  3820.                         <div class=\"menu-section-title-modern\">
  3821.                             <span class=\"section-title-text\">ACHATS (FOURNISSEURS)</span>
  3822.                         </div>
  3823.                         <div class=\"menu-section-arrow\">
  3824.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3825.                                 <path d=\"m6 9 6 6 6-6\"/>
  3826.                             </svg>
  3827.                         </div>
  3828.                     </div>
  3829.                     <div class=\"menu-section-content\" id=\"section-achats\">
  3830.                         <!-- Fournisseurs -->
  3831.                         <div class=\"menu-item-modern\">
  3832.                             <a class=\"menu-link-modern\" href=\"/fournisseur/\">
  3833.                                 <div class=\"menu-icon-modern\">
  3834.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3835.                                         <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>
  3836.                                         <circle cx=\"9\" cy=\"7\" r=\"4\"/>
  3837.                                         <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>
  3838.                                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  3839.                                     </svg>
  3840.                                 </div>
  3841.                                 <span class=\"menu-title-modern\">Fournisseurs</span>
  3842.                             </a>
  3843.                         </div>
  3844.                          <!-- Bons de Commande -->
  3845.               
  3846.                  <!-- Bons de Commande Achat - À DÉVELOPPER -->
  3847.                         <div class=\"menu-item-modern\">
  3848.                             <a class=\"menu-link-modern\" href=\"{{ path('devis_index_bon_commande') }}\">
  3849.                                 <div class=\"menu-icon-modern\">
  3850.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3851.                                         <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\"/>
  3852.                                         <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/>
  3853.                                         <path d=\"M8 11h8\"/>
  3854.                                         <path d=\"M8 15h8\"/>
  3855.                                         <circle cx=\"12\" cy=\"4\" r=\"1\"/>
  3856.                                     </svg>
  3857.                                 </div>
  3858.                                 <span class=\"menu-title-modern\">Bons de Commande Achat</span>
  3859.                                  
  3860.                             </a>
  3861.                         </div>
  3862.                         <!-- Réceptions (Entrées Stock) -->
  3863.                         <div class=\"menu-item-modern\">
  3864.                             <a class=\"menu-link-modern\" href=\"/entrees/\">
  3865.                                 <div class=\"menu-icon-modern\">
  3866.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3867.                                         <path d=\"M5 12h14\"/>
  3868.                                         <path d=\"M12 5v14\"/>
  3869.                                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/>
  3870.                                         <path d=\"M8 8h8v8H8z\"/>
  3871.                                     </svg>
  3872.                                 </div>
  3873.                                 <span class=\"menu-title-modern\">Réceptions (Entrées Stock)</span>
  3874.                             </a>
  3875.                         </div>
  3876.                         
  3877.                         <!-- Retours Fournisseurs -->
  3878.                         <div class=\"menu-item-modern\">
  3879.                             <a class=\"menu-link-modern\" href=\"\">
  3880.                                 <div class=\"menu-icon-modern\">
  3881.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3882.                                         <path d=\"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/>
  3883.                                         <polyline points=\"9 22 9 12 15 12 15 22\"/>
  3884.                                         <path d=\"m9 12 3-3 3 3\"/>
  3885.                                         <path d=\"M12 16v-4\"/>
  3886.                                     </svg>
  3887.                                 </div>
  3888.                                 <span class=\"menu-title-modern\">Retours Fournisseurs</span>
  3889.                             </a>
  3890.                         </div>
  3891.                         
  3892.  
  3893.                         
  3894.                         <!-- Factures Fournisseurs - À DÉVELOPPER -->
  3895.                         <div class=\"menu-item-modern\">
  3896.                             <a class=\"menu-link-modern\" href=\"\">
  3897.                                 <div class=\"menu-icon-modern\">
  3898.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3899.                                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  3900.                                         <polyline points=\"14,2 14,8 20,8\"/>
  3901.                                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  3902.                                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  3903.                                         <path d=\"M8 9h8\"/>
  3904.                                         <path d=\"M12 21v-4\"/>
  3905.                                     </svg>
  3906.                                 </div>
  3907.                                 <span class=\"menu-title-modern\">Factures Fournisseurs</span>
  3908.                                 <div class=\"menu-badge-modern\">
  3909.                                     <span class=\"badge-dev-modern\">À DÉV</span>
  3910.                                 </div>
  3911.                             </a>
  3912.                         </div>
  3913.                     </div>
  3914.                 </div> #}
  3915. <!-- 🏪 ACHATS (FOURNISSEURS) -->
  3916. <div class=\"menu-section-modern\">
  3917.     <div class=\"menu-section-header-modern\" data-section=\"achats\">
  3918.         <div class=\"menu-section-title-modern\">
  3919.             <span class=\"section-title-text\">ACHATS (FOURNISSEURS)</span>
  3920.         </div>
  3921.         <div class=\"menu-section-arrow\">
  3922.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3923.                 <path d=\"m6 9 6 6 6-6\"/>
  3924.             </svg>
  3925.         </div>
  3926.     </div>
  3927.     <div class=\"menu-section-content\" id=\"section-achats\">
  3928.         <!-- Fournisseurs -->
  3929.         <div class=\"menu-item-modern\">
  3930.             <a class=\"menu-link-modern\" href=\"/fournisseur/\">
  3931.                 <div class=\"menu-icon-modern\">
  3932.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3933.                         <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>
  3934.                         <circle cx=\"9\" cy=\"7\" r=\"4\"/>
  3935.                         <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>
  3936.                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  3937.                     </svg>
  3938.                 </div>
  3939.                 <span class=\"menu-title-modern\">Fournisseurs</span>
  3940.             </a>
  3941.         </div>
  3942.         
  3943.         <!-- Bons de Commande Achat -->
  3944.         <div class=\"menu-item-modern\">
  3945.             <a class=\"menu-link-modern\" href=\"{{ path('devis_index_bon_commande') }}\">
  3946.                 <div class=\"menu-icon-modern\">
  3947.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3948.                         <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\"/>
  3949.                         <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/>
  3950.                         <path d=\"M8 11h8\"/>
  3951.                         <path d=\"M8 15h8\"/>
  3952.                         <circle cx=\"12\" cy=\"4\" r=\"1\"/>
  3953.                     </svg>
  3954.                 </div>
  3955.                 <span class=\"menu-title-modern\">Bons de Commande Achat</span>
  3956.             </a>
  3957.         </div>
  3958.         
  3959.         <!-- Réceptions (Entrées Stock) -->
  3960.         <div class=\"menu-item-modern\">
  3961.             <a class=\"menu-link-modern\" href=\"/entrees/\">
  3962.                 <div class=\"menu-icon-modern\">
  3963.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3964.                         <path d=\"M5 12h14\"/>
  3965.                         <path d=\"M12 5v14\"/>
  3966.                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/>
  3967.                         <path d=\"M8 8h8v8H8z\"/>
  3968.                     </svg>
  3969.                 </div>
  3970.                 <span class=\"menu-title-modern\">Réceptions (Entrées Stock)</span>
  3971.             </a>
  3972.         </div>
  3973.         
  3974.         <!-- Retours Fournisseurs -->
  3975.         <div class=\"menu-item-modern\">
  3976.             <a class=\"menu-link-modern\" href=\"{{ path('retour_fournisseur_index') }}\">
  3977.                 <div class=\"menu-icon-modern\">
  3978.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3979.                         <path d=\"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/>
  3980.                         <polyline points=\"9 22 9 12 15 12 15 22\"/>
  3981.                         <path d=\"m9 12 3-3 3 3\"/>
  3982.                         <path d=\"M12 16v-4\"/>
  3983.                     </svg>
  3984.                 </div>
  3985.                 <span class=\"menu-title-modern\">Retours Fournisseurs</span>
  3986.             </a>
  3987.         </div>
  3988.         
  3989.         <!-- Factures Fournisseurs -->
  3990.         <div class=\"menu-item-modern\">
  3991.             <a class=\"menu-link-modern\" href=\"{{ path('facture_fournisseur_index') }}\">
  3992.                 <div class=\"menu-icon-modern\">
  3993.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3994.                         <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/>
  3995.                         <polyline points=\"14,2 14,8 20,8\"/>
  3996.                         <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/>
  3997.                         <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  3998.                         <path d=\"M8 9h8\"/>
  3999.                         <path d=\"M12 21v-4\"/>
  4000.                     </svg>
  4001.                 </div>
  4002.                 <span class=\"menu-title-modern\">Factures Fournisseurs</span>
  4003.             </a>
  4004.         </div>
  4005.     </div>
  4006. </div>
  4007.                 <!-- 📦 STOCK & LOGISTIQUE -->
  4008.                 <div class=\"menu-section-modern\">
  4009.                     <div class=\"menu-section-header-modern\" data-section=\"stock\">
  4010.                         <div class=\"menu-section-title-modern\">
  4011.                             <span class=\"section-title-text\">STOCK & LOGISTIQUE</span>
  4012.                         </div>
  4013.                         <div class=\"menu-section-arrow\">
  4014.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4015.                                 <path d=\"m6 9 6 6 6-6\"/>
  4016.                             </svg>
  4017.                         </div>
  4018.                     </div>
  4019.                     <div class=\"menu-section-content\" id=\"section-stock\">
  4020.                         <!-- Stock Global -->
  4021.                         <div class=\"menu-item-modern\">
  4022.                             <a class=\"menu-link-modern\" href=\"/stock/\">
  4023.                                 <div class=\"menu-icon-modern\">
  4024.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4025.                                         <path d=\"M3 9h18v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9Z\"/>
  4026.                                         <path d=\"m3 9 2.45-4.9A2 2 0 0 1 7.24 3h9.52a2 2 0 0 1 1.8 1.1L21 9\"/>
  4027.                                         <path d=\"M12 3v6\"/>
  4028.                                         <path d=\"M9 12l3 3 3-3\"/>
  4029.                                         <path d=\"M12 15v6\"/>
  4030.                                     </svg>
  4031.                                 </div>
  4032.                                 <span class=\"menu-title-modern\">Stock Global</span>
  4033.                             </a>
  4034.                         </div>
  4035.                         
  4036.                         <!-- Expéditions (Sorties) -->
  4037.                         <div class=\"menu-item-modern\">
  4038.                             <a class=\"menu-link-modern\" href=\"/sorties/\">
  4039.                                 <div class=\"menu-icon-modern\">
  4040.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4041.                                         <path d=\"M5 12h14\"/>
  4042.                                         <path d=\"M12 5l7 7-7 7\"/>
  4043.                                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/>
  4044.                                         <path d=\"M8 8h8v8H8z\"/>
  4045.                                     </svg>
  4046.                                 </div>
  4047.                                 <span class=\"menu-title-modern\">Expéditions (Sorties)</span>
  4048.                             </a>
  4049.                         </div>
  4050.                         
  4051.                         <!-- Réceptions (Entrées) -->
  4052.                         <div class=\"menu-item-modern\">
  4053.                             <a class=\"menu-link-modern\" href=\"/entrees/\">
  4054.                                 <div class=\"menu-icon-modern\">
  4055.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4056.                                         <path d=\"M5 12h14\"/>
  4057.                                         <path d=\"M12 5v14\"/>
  4058.                                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/>
  4059.                                         <path d=\"M8 8h8v8H8z\"/>
  4060.                                     </svg>
  4061.                                 </div>
  4062.                                 <span class=\"menu-title-modern\">Réceptions (Entrées)</span>
  4063.                             </a>
  4064.                         </div>
  4065.                         
  4066.                         <!-- Inventaire -->
  4067.                         <div class=\"menu-item-modern\">
  4068.                             <a class=\"menu-link-modern\" href=\"{{ path('inventaire_index') }}\">
  4069.                                 <div class=\"menu-icon-modern\">
  4070.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4071.                                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/>
  4072.                                         <path d=\"M3 9h18\"/>
  4073.                                         <path d=\"M9 21V9\"/>
  4074.                                         <path d=\"M15 21V9\"/>
  4075.                                         <path d=\"M12 9v12\"/>
  4076.                                     </svg>
  4077.                                 </div>
  4078.                                 <span class=\"menu-title-modern\">Inventaire</span>
  4079.                             </a>
  4080.                         </div>
  4081.                     </div>
  4082.                 </div>
  4083.                 <!-- 👥 CONTACTS & DONNÉES -->
  4084.                 <div class=\"menu-section-modern\">
  4085.                     <div class=\"menu-section-header-modern\" data-section=\"contacts\">
  4086.                         <div class=\"menu-section-title-modern\">
  4087.                             <span class=\"section-title-text\">CONTACTS & DONNÉES</span>
  4088.                         </div>
  4089.                         <div class=\"menu-section-arrow\">
  4090.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4091.                                 <path d=\"m6 9 6 6 6-6\"/>
  4092.                             </svg>
  4093.                         </div>
  4094.                     </div>
  4095.                     <div class=\"menu-section-content\" id=\"section-contacts\">
  4096.                         <!-- Clients -->
  4097.                         <div class=\"menu-item-modern\">
  4098.                             <a class=\"menu-link-modern\" href=\"/client/\">
  4099.                                 <div class=\"menu-icon-modern\">
  4100.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4101.                                         <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  4102.                                         <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  4103.                                         <path d=\"M16 21v-2a4 4 0 0 0-4-4H8\"/>
  4104.                                     </svg>
  4105.                                 </div>
  4106.                                 <span class=\"menu-title-modern\">Clients</span>
  4107.                             </a>
  4108.                         </div>
  4109.                         
  4110.                         <!-- Fournisseurs -->
  4111.                         <div class=\"menu-item-modern\">
  4112.                             <a class=\"menu-link-modern\" href=\"/fournisseur/\">
  4113.                                 <div class=\"menu-icon-modern\">
  4114.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4115.                                         <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>
  4116.                                         <circle cx=\"9\" cy=\"7\" r=\"4\"/>
  4117.                                         <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>
  4118.                                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  4119.                                     </svg>
  4120.                                 </div>
  4121.                                 <span class=\"menu-title-modern\">Fournisseurs</span>
  4122.                             </a>
  4123.                         </div>
  4124.                         
  4125.                         <!-- Produits & Services -->
  4126.                         <div class=\"menu-item-modern\">
  4127.                             <a class=\"menu-link-modern\" href=\"/produit/\">
  4128.                                 <div class=\"menu-icon-modern\">
  4129.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4130.                                         <path d=\"m7.5 4.27 9 5.15\"/>
  4131.                                         <path d=\"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\"/>
  4132.                                         <path d=\"m3.3 7 8.7 5 8.7-5\"/>
  4133.                                         <path d=\"M12 22V12\"/>
  4134.                                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  4135.                                     </svg>
  4136.                                 </div>
  4137.                                 <span class=\"menu-title-modern\">Produits & Services</span>
  4138.                             </a>
  4139.                         </div>
  4140.                     </div>
  4141.                 </div>
  4142.                 <!-- 📈 MARKETING (PRO) -->
  4143.                 <div class=\"menu-section-modern\">
  4144.                     <div class=\"menu-section-header-modern\" data-section=\"marketing\">
  4145.                         <div class=\"menu-section-title-modern\">
  4146.                             <span class=\"section-title-text\">MARKETING (PRO)</span>
  4147.                         </div>
  4148.                         <div class=\"menu-section-arrow\">
  4149.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4150.                                 <path d=\"m6 9 6 6 6-6\"/>
  4151.                             </svg>
  4152.                         </div>
  4153.                     </div>
  4154.                     <div class=\"menu-section-content\" id=\"section-marketing\">
  4155.                         <!-- Prospection Email PRO -->
  4156.                         <div class=\"menu-item-modern\">
  4157.                             <a class=\"menu-link-modern\" href=\"/prospect/email\">
  4158.                                 <div class=\"menu-icon-modern\">
  4159.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4160.                                         <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"/>
  4161.                                         <polyline points=\"22,6 12,13 2,6\"/>
  4162.                                         <path d=\"M12 13l10-7\"/>
  4163.                                         <path d=\"M2 6l10 7 10-7\"/>
  4164.                                     </svg>
  4165.                                 </div>
  4166.                                 <span class=\"menu-title-modern\">Prospection Email PRO</span>
  4167.                                 <div class=\"menu-badge-modern\">
  4168.                                     <span class=\"badge-new-modern\">PRO</span>
  4169.                                 </div>
  4170.                             </a>
  4171.                         </div>
  4172.                         
  4173.                         <!-- Prospection IA PRO -->
  4174.                         <div class=\"menu-item-modern\">
  4175.                             <a class=\"menu-link-modern\" href=\"/prospect/centres\">
  4176.                                 <div class=\"menu-icon-modern\">
  4177.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4178.                                         <path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"/>
  4179.                                         <path d=\"M12 2.5v19\"/>
  4180.                                         <path d=\"M2 8l10 6 10-6\"/>
  4181.                                         <path d=\"M12 22V12\"/>
  4182.                                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  4183.                                     </svg>
  4184.                                 </div>
  4185.                                 <span class=\"menu-title-modern\">Prospection IA PRO</span>
  4186.                                 <div class=\"menu-badge-modern\">
  4187.                                     <span class=\"badge-new-modern\">PRO</span>
  4188.                                 </div>
  4189.                             </a>
  4190.                         </div>
  4191.                         
  4192.                         <!-- Dashboard Prospect PRO -->
  4193.                         <div class=\"menu-item-modern\">
  4194.                             <a class=\"menu-link-modern\" href=\"/dashboard-prospect\">
  4195.                                 <div class=\"menu-icon-modern\">
  4196.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4197.                                         <line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"10\"/>
  4198.                                         <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"4\"/>
  4199.                                         <line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"16\"/>
  4200.                                         <circle cx=\"12\" cy=\"10\" r=\"2\"/>
  4201.                                         <circle cx=\"18\" cy=\"4\" r=\"2\"/>
  4202.                                         <circle cx=\"6\" cy=\"16\" r=\"2\"/>
  4203.                                         <path d=\"M12 10v10\"/>
  4204.                                         <path d=\"M18 4v16\"/>
  4205.                                         <path d=\"M6 16v4\"/>
  4206.                                     </svg>
  4207.                                 </div>
  4208.                                 <span class=\"menu-title-modern\">Dashboard Prospect PRO</span>
  4209.                                 <div class=\"menu-badge-modern\">
  4210.                                     <span class=\"badge-new-modern\">PRO</span>
  4211.                                 </div>
  4212.                             </a>
  4213.                         </div>
  4214.                         
  4215.                         <!-- Site Web Pro -->
  4216.                         <div class=\"menu-accordion-modern\" data-kt-menu-trigger=\"click\">
  4217.                             <div class=\"menu-link-modern menu-accordion-trigger\">
  4218.                                 <div class=\"menu-icon-modern\">
  4219.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4220.                                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  4221.                                         <path d=\"m4.93 4.93 4.24 4.24\"/>
  4222.                                         <path d=\"m14.83 9.17 4.24-4.24\"/>
  4223.                                         <path d=\"m14.83 14.83 4.24 4.24\"/>
  4224.                                         <path d=\"m9.17 14.83-4.24 4.24\"/>
  4225.                                         <path d=\"M12 2v20\"/>
  4226.                                         <path d=\"M2 12h20\"/>
  4227.                                     </svg>
  4228.                                 </div>
  4229.                                 <span class=\"menu-title-modern\">Site Web Pro</span>
  4230.                                 <div class=\"menu-arrow-modern\">
  4231.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4232.                                         <path d=\"m9 18 6-6-6-6\"/>
  4233.                                     </svg>
  4234.                                 </div>
  4235.                             </div>
  4236.                             <div class=\"menu-sub-modern\">
  4237.                                 <div class=\"menu-sub-item-modern\">
  4238.                                     <a href=\"/frontend\" class=\"menu-sub-link-modern\">
  4239.                                         <span class=\"menu-bullet-modern\"></span>
  4240.                                         <span>Créer Mon Site</span>
  4241.                                     </a>
  4242.                                 </div>
  4243.                                 <div class=\"menu-sub-item-modern\">
  4244.                                     <a href=\"/voir-mon-site\" class=\"menu-sub-link-modern\">
  4245.                                         <span class=\"menu-bullet-modern\"></span>
  4246.                                         <span>Voir Mon Site</span>
  4247.                                     </a>
  4248.                                 </div>
  4249.                             </div>
  4250.                         </div>
  4251.                     </div>
  4252.                 </div>
  4253.                 <!-- ⚙️ PARAMÈTRES -->
  4254.                 <div class=\"menu-section-modern\">
  4255.                     <div class=\"menu-section-header-modern\" data-section=\"parametres\">
  4256.                         <div class=\"menu-section-title-modern\">
  4257.                             <span class=\"section-title-text\">PARAMÈTRES</span>
  4258.                         </div>
  4259.                         <div class=\"menu-section-arrow\">
  4260.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4261.                                 <path d=\"m6 9 6 6 6-6\"/>
  4262.                             </svg>
  4263.                         </div>
  4264.                     </div>
  4265.                     <div class=\"menu-section-content\" id=\"section-parametres\">
  4266.                         <!-- Mon Entreprise -->
  4267.                         <div class=\"menu-item-modern\">
  4268.                             <a class=\"menu-link-modern\" href=\"/entreprise/\">
  4269.                                 <div class=\"menu-icon-modern\">
  4270.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4271.                                         <path d=\"M3 21h18\"/>
  4272.                                         <path d=\"M5 21V7l8-4v18\"/>
  4273.                                         <path d=\"M19 21V11l-6-4\"/>
  4274.                                         <path d=\"M9 9h6\"/>
  4275.                                         <path d=\"M9 13h6\"/>
  4276.                                         <path d=\"M9 17h6\"/>
  4277.                                     </svg>
  4278.                                 </div>
  4279.                                 <span class=\"menu-title-modern\">Mon Entreprise</span>
  4280.                             </a>
  4281.                         </div>
  4282.                         <!-- Salariés -->
  4283.                         <div class=\"menu-item-modern\">
  4284.                             <a class=\"menu-link-modern\" href=\"{{ path('salarie_index') }}\">
  4285.                                 <div class=\"menu-icon-modern\">
  4286.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4287.                                         <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"/>
  4288.                                         <circle cx=\"9\" cy=\"7\" r=\"4\"/>
  4289.                                         <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"/>
  4290.                                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  4291.                                     </svg>
  4292.                                 </div>
  4293.                                 <span class=\"menu-title-modern\">Salariés</span>
  4294.                             </a>
  4295.                         </div>
  4296.                         <!-- Mon Compte -->
  4297.                         <div class=\"menu-item-modern\">
  4298.                             <a class=\"menu-link-modern\" href=\"\">
  4299.                                 <div class=\"menu-icon-modern\">
  4300.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4301.                                         <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  4302.                                         <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  4303.                                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  4304.                                         <path d=\"M12 12v4\"/>
  4305.                                     </svg>
  4306.                                 </div>
  4307.                                 <span class=\"menu-title-modern\">Mon Compte</span>
  4308.                             </a>
  4309.                         </div>
  4310.                         
  4311.                         <!-- Intégrations -->
  4312.                         <div class=\"menu-item-modern\">
  4313.                             <a class=\"menu-link-modern\" href=\"\">
  4314.                                 <div class=\"menu-icon-modern\">
  4315.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4316.                                         <path d=\"M12 2v8l4-4\"/>
  4317.                                         <path d=\"M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0z\"/>
  4318.                                         <path d=\"M8 12h8\"/>
  4319.                                         <path d=\"m12 16 4-4-4-4\"/>
  4320.                                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  4321.                                     </svg>
  4322.                                 </div>
  4323.                                 <span class=\"menu-title-modern\">Intégrations</span>
  4324.                             </a>
  4325.                         </div>
  4326.                         
  4327.                         <!-- Équipe & Utilisateurs (Admin seulement) -->
  4328.                         {% if is_granted('ROLE_ADMIN') %}
  4329.                         <div class=\"menu-item-modern\">
  4330.                             <a class=\"menu-link-modern\" href=\"/utilisateurs/\">
  4331.                                 <div class=\"menu-icon-modern\">
  4332.                                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4333.                                         <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"/>
  4334.                                         <circle cx=\"9\" cy=\"7\" r=\"4\"/>
  4335.                                         <path d=\"m22 21-3-3m0 0a5.5 5.5 0 1 0-7.78-7.78 5.5 5.5 0 0 0 7.78 7.78Z\"/>
  4336.                                         <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>
  4337.                                     </svg>
  4338.                                 </div>
  4339.                                 <span class=\"menu-title-modern\">Équipe & Utilisateurs</span>
  4340.                                 <div class=\"menu-badge-modern\">
  4341.                                     <span class=\"badge-admin-modern\">ADMIN</span>
  4342.                                 </div>
  4343.                             </a>
  4344.                         </div>
  4345.                         {% endif %}
  4346.                     </div>
  4347.                 </div>
  4348. <!-- 🎫 TICKETS & SUPPORT -->
  4349. <div class=\"menu-section-modern\">
  4350.     <div class=\"menu-section-header-modern\" data-section=\"tickets\">
  4351.         <div class=\"menu-section-title-modern\">
  4352.             <span class=\"section-title-text\">TICKETS & SUPPORT</span>
  4353.                                                 <div class=\"menu-badge-modern\">
  4354.                         <span class=\"badge-new-modern\">NEW</span>
  4355.                     </div>
  4356.         </div>
  4357.         <div class=\"menu-section-arrow\">
  4358.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4359.                 <path d=\"m6 9 6 6 6-6\"/>
  4360.             </svg>
  4361.         </div>
  4362.     </div>
  4363.     <div class=\"menu-section-content\" id=\"section-tickets\">
  4364.         
  4365.         <!-- ✅ LIEN PRINCIPAL - DYNAMIQUE SELON LE RÔLE -->
  4366.         <div class=\"menu-item-modern\">
  4367.             <a class=\"menu-link-modern\" href=\"{{ path('ticket_index') }}\">
  4368.                 <div class=\"menu-icon-modern\">
  4369.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4370.                         <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/>
  4371.                         <path d=\"M8 10h.01\"/>
  4372.                         <path d=\"M12 10h.01\"/>
  4373.                         <path d=\"M16 10h.01\"/>
  4374.                     </svg>
  4375.                 </div>
  4376.                 <span class=\"menu-title-modern\">
  4377.                     {% if is_granted('ROLE_ADMIN') %}
  4378.                         Gestion des tickets
  4379.                     {% else %}
  4380.                         Mes tickets
  4381.                     {% endif %}
  4382.                 </span>
  4383.                 
  4384.                 <!-- BADGE AVEC NOMBRE DE TICKETS -->
  4385.                 <div class=\"menu-badge-modern\">
  4386.                     {% set ticket_count = tickets_count ?? 0 %}
  4387.                     {% if ticket_count > 0 %}
  4388.                         <span class=\"badge bg-{% if is_granted('ROLE_ADMIN') %}primary{% else %}info{% endif %} rounded-pill px-2 py-1\" 
  4389.                               style=\"font-size: 0.7rem; background: {% if is_granted('ROLE_ADMIN') %}#3b82f6{% else %}#0ea5e9{% endif %}; color: white;\">
  4390.                             {{ ticket_count }}
  4391.                         </span>
  4392.                     {% else %}
  4393.                         <span class=\"badge-dot-modern\"></span>
  4394.                     {% endif %}
  4395.                 </div>
  4396.             </a>
  4397.         </div>
  4398.         
  4399.         <!-- LIEN RAPIDE: CRÉER UN TICKET (OPTIONNEL) -->
  4400.         <div class=\"menu-item-modern\">
  4401.             <a class=\"menu-link-modern\" href=\"#\" onclick=\"openTicketModal(); return false;\">
  4402.                 <div class=\"menu-icon-modern\">
  4403.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4404.                         <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/>
  4405.                         <line x1=\"9\" y1=\"10\" x2=\"15\" y2=\"10\"/>
  4406.                         <line x1=\"12\" y1=\"7\" x2=\"12\" y2=\"13\"/>
  4407.                     </svg>
  4408.                 </div>
  4409.                 <span class=\"menu-title-modern\">Nouveau ticket</span>
  4410.                 <div class=\"menu-badge-modern\">
  4411.                     <span class=\"badge-new-modern\" style=\"background: #10b981;\">+</span>
  4412.                 </div>
  4413.             </a>
  4414.         </div>
  4415.         
  4416.     </div>
  4417. </div>
  4418. <!-- 🎓 FORMATION & TUTORIELS -->
  4419. <div class=\"menu-section-modern\">
  4420.     <div class=\"menu-section-header-modern\" data-section=\"formation\">
  4421.         <div class=\"menu-section-title-modern\">
  4422.             <span class=\"section-title-text\">FORMATION & TUTORIELS</span>
  4423.             <div class=\"menu-badge-modern\">
  4424.                 <span class=\"badge-new-modern\">NEW</span>
  4425.             </div>
  4426.         </div>
  4427.         <div class=\"menu-section-arrow\">
  4428.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4429.                 <path d=\"m6 9 6 6 6-6\"/>
  4430.             </svg>
  4431.         </div>
  4432.     </div>
  4433.     <div class=\"menu-section-content\" id=\"section-formation\">
  4434.         
  4435.         <!-- Centre de formation -->
  4436.         <div class=\"menu-item-modern\">
  4437.             <a class=\"menu-link-modern\" href=\"{{ path('formation_index') }}\">
  4438.                 <div class=\"menu-icon-modern\">
  4439.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4440.                         <path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"/>
  4441.                         <polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"/>
  4442.                         <line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"/>
  4443.                         <circle cx=\"12\" cy=\"12\" r=\"2\"/>
  4444.                     </svg>
  4445.                 </div>
  4446.                 <span class=\"menu-title-modern\">Centre de formation</span>
  4447.                 <div class=\"menu-badge-modern\">
  4448.                     <span class=\"badge bg-primary rounded-pill px-2 py-1\" style=\"font-size: 0.7rem;\">
  4449.                         6
  4450.                     </span>
  4451.                 </div>
  4452.             </a>
  4453.         </div>
  4454.         <!-- Séparateur -->
  4455.         <div style=\"height: 1px; background: linear-gradient(90deg, transparent, #e2e8f0, transparent); margin: 0.5rem 1rem;\"></div>
  4456.         <!-- Démo générale -->
  4457.         <div class=\"menu-item-modern\">
  4458.             <a class=\"menu-link-modern\" href=\"{{ path('formation_video', {id: 1}) }}\">
  4459.                 <div class=\"menu-icon-modern\">
  4460.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4461.                         <polygon points=\"5 3 19 12 5 21 5 3\"/>
  4462.                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  4463.                     </svg>
  4464.                 </div>
  4465.                 <span class=\"menu-title-modern\">Démo Mazego complète</span>
  4466.                 <div class=\"menu-badge-modern\">
  4467.                     <span class=\"badge bg-success rounded-pill px-2 py-1\" style=\"font-size: 0.65rem;\">15 min</span>
  4468.                 </div>
  4469.             </a>
  4470.         </div>
  4471.         <!-- Tutoriels par catégorie (accordéon) -->
  4472.         <div class=\"menu-accordion-modern\" data-kt-menu-trigger=\"click\">
  4473.             <div class=\"menu-link-modern menu-accordion-trigger\">
  4474.                 <div class=\"menu-icon-modern\">
  4475.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4476.                         <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>
  4477.                         <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"9\"/>
  4478.                         <line x1=\"9\" y1=\"13\" x2=\"15\" y2=\"13\"/>
  4479.                         <line x1=\"9\" y1=\"17\" x2=\"15\" y2=\"17\"/>
  4480.                         <circle cx=\"6\" cy=\"9\" r=\"1\"/>
  4481.                         <circle cx=\"6\" cy=\"13\" r=\"1\"/>
  4482.                         <circle cx=\"6\" cy=\"17\" r=\"1\"/>
  4483.                     </svg>
  4484.                 </div>
  4485.                 <span class=\"menu-title-modern\">Tutoriels par module</span>
  4486.                 <div class=\"menu-arrow-modern\">
  4487.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4488.                         <path d=\"m9 18 6-6-6-6\"/>
  4489.                     </svg>
  4490.                 </div>
  4491.             </div>
  4492.             <div class=\"menu-sub-modern\">
  4493.                 <div class=\"menu-sub-item-modern\">
  4494.                     <a href=\"{{ path('formation_video', {id: 2}) }}\" class=\"menu-sub-link-modern\">
  4495.                         <span class=\"menu-bullet-modern\"></span>
  4496.                         <span>Créer un devis</span>
  4497.                     </a>
  4498.                 </div>
  4499.                 <div class=\"menu-sub-item-modern\">
  4500.                     <a href=\"{{ path('formation_video', {id: 3}) }}\" class=\"menu-sub-link-modern\">
  4501.                         <span class=\"menu-bullet-modern\"></span>
  4502.                         <span>Créer une facture</span>
  4503.                     </a>
  4504.                 </div>
  4505.                 <div class=\"menu-sub-item-modern\">
  4506.                     <a href=\"{{ path('formation_video', {id: 4}) }}\" class=\"menu-sub-link-modern\">
  4507.                         <span class=\"menu-bullet-modern\"></span>
  4508.                         <span>Bon de commande</span>
  4509.                     </a>
  4510.                 </div>
  4511.                 <div class=\"menu-sub-item-modern\">
  4512.                     <a href=\"{{ path('formation_video', {id: 5}) }}\" class=\"menu-sub-link-modern\">
  4513.                         <span class=\"menu-bullet-modern\"></span>
  4514.                         <span>Bon de livraison</span>
  4515.                     </a>
  4516.                 </div>
  4517.                 <div class=\"menu-sub-item-modern\">
  4518.                     <a href=\"{{ path('formation_video', {id: 6}) }}\" class=\"menu-sub-link-modern\">
  4519.                         <span class=\"menu-bullet-modern\"></span>
  4520.                         <span>Prospection BtoB</span>
  4521.                     </a>
  4522.                 </div>
  4523.             </div>
  4524.         </div>
  4525.         <!-- Documentation -->
  4526.         <div class=\"menu-item-modern\">
  4527.             <a class=\"menu-link-modern\" href=\"https://www.canva.com/design/DAGsM4IzHX4/-xVezdK8KNcDQowJgMm6Xw/view?utm_content=DAGsM4IzHX4&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=hab518c912f\"  >
  4528.                 <div class=\"menu-icon-modern\">
  4529.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4530.                         <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"/>
  4531.                         <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"/>
  4532.                         <path d=\"M8 7h8\"/>
  4533.                         <path d=\"M8 11h8\"/>
  4534.                         <path d=\"M8 15h6\"/>
  4535.                     </svg>
  4536.                 </div>
  4537.                 <span class=\"menu-title-modern\">Documentation</span>
  4538.                 <div class=\"menu-badge-modern\">
  4539.                     <span class=\"badge-dev-modern\">SOON</span>
  4540.                 </div>
  4541.             </a>
  4542.         </div>
  4543.     </div>
  4544. </div>
  4545.             </div>
  4546.         </div>
  4547.     </div>
  4548.  
  4549.     <!-- Footer moderne avec nouveaux boutons -->
  4550. <div class=\"aside-footer-modern\" id=\"kt_aside_footer\">
  4551.     <!-- Support & Ticket Buttons -->
  4552.     <div class=\"support-actions-modern\">
  4553.         <!-- Bouton Créer un ticket -->
  4554.         <button class=\"support-btn-modern ticket-btn\" onclick=\"openTicketModal()\">
  4555.             <div class=\"support-icon\">
  4556.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4557.                     <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/>
  4558.                     <path d=\"M8 10h.01\"/>
  4559.                     <path d=\"M12 10h.01\"/>
  4560.                     <path d=\"M16 10h.01\"/>
  4561.                 </svg>
  4562.             </div>
  4563.             <span class=\"support-text\">Créer un ticket</span>
  4564.             <span class=\"badge-new-ticket\">NEW</span>
  4565.         </button>
  4566.         
  4567.         <!-- Bouton Support -->
  4568.         <button class=\"support-btn-modern\" onclick=\"openSupportModal()\">
  4569.             <div class=\"support-icon\">
  4570.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4571.                     <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  4572.                     <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"/>
  4573.                     <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"/>
  4574.                 </svg>
  4575.             </div>
  4576.             <span class=\"support-text\">Support</span>
  4577.         </button>
  4578.                 <!-- Dans le aside-footer-modern, après les boutons support -->
  4579.         {# <div class=\"facture-electronique-status-modern mt-3\" id=\"facture-electronique-status\">
  4580.             {% set hasCertificate = user_certificate is defined and user_certificate != null %}
  4581.             {% set hasTTNConfig = user_ttn_config is defined and user_ttn_config|length > 0 %}
  4582.             {% set isActivated = user_activation is defined and user_activation != null %}
  4583.             
  4584.             {% if not isActivated %}
  4585.                 <div class=\"alert alert-warning mb-0 p-2\" style=\"border-radius: 10px; background: #fffbeb; border: 1px solid #fcd34d;\">
  4586.                     <div class=\"d-flex align-items-center gap-2\">
  4587.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#d97706\" stroke-width=\"2\">
  4588.                             <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  4589.                             <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"/>
  4590.                             <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"/>
  4591.                         </svg>
  4592.                         <span style=\"font-size: 0.75rem; color: #92400e;\">
  4593.                             <strong>Facture électronique</strong><br>
  4594.                             <a href=\"{{ path('facture_electronique_step1') }}\" style=\"color: #b45309; text-decoration: underline;\">
  4595.                                 Activer maintenant
  4596.                             </a>
  4597.                         </span>
  4598.                     </div>
  4599.                 </div>
  4600.             {% elseif not hasTTNConfig %}
  4601.                 <div class=\"alert alert-info mb-0 p-2\" style=\"border-radius: 10px; background: #e0f2fe; border: 1px solid #7dd3fc;\">
  4602.                     <div class=\"d-flex align-items-center gap-2\">
  4603.                         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0284c7\" stroke-width=\"2\">
  4604.                             <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  4605.                             <path d=\"M12 16v-4\"/>
  4606.                             <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"#0284c7\"/>
  4607.                         </svg>
  4608.                         <span style=\"font-size: 0.75rem; color: #075985;\">
  4609.                             <strong>Configuration TTN requise</strong><br>
  4610.                             <a href=\"{{ path('facture_electronique_step2') }}\" style=\"color: #0369a1; text-decoration: underline;\">
  4611.                                 Configurer maintenant
  4612.                             </a>
  4613.                         </span>
  4614.                     </div>
  4615.                 </div>
  4616.             {% endif %}
  4617.         </div> #}
  4618.     </div>
  4619.     
  4620.     <!-- User panel existant -->
  4621.     <div class=\"user-panel-modern\">
  4622.         <div class=\"user-avatar-modern\">
  4623.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4624.                 <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  4625.                 <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  4626.             </svg>
  4627.         </div>
  4628.         <div class=\"user-info-modern\">
  4629.             <div class=\"user-name-modern\">
  4630.                 {% if app.user and app.user.firstname is defined %}
  4631.                     {{ app.user.firstname ~ ' ' ~ app.user.lastname }}
  4632.                 {% elseif app.user and app.user.nomComplet is defined %}
  4633.                     {{ app.user.nomComplet }}
  4634.                 {% else %}
  4635.                     Utilisateur
  4636.                 {% endif %}
  4637.             </div>
  4638.             <div class=\"user-role-modern\">{{ is_granted('ROLE_ADMIN') ? 'Administrateur' : (is_granted('ROLE_SALARIE') ? 'Salarié' : 'Utilisateur') }}</div>
  4639.         </div>
  4640.         <a href=\"/deconnexion\" class=\"logout-btn-modern\" title=\"Déconnexion\">
  4641.             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4642.                 <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"/>
  4643.                 <polyline points=\"16,17 21,12 16,7\"/>
  4644.                 <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\"/>
  4645.             </svg>
  4646.         </a>
  4647.     </div>
  4648.     
  4649.     {% if is_granted('ROLE_PREVIOUS_ADMIN') %}
  4650.     <div class=\"alert alert-warning text-center mt-2\">
  4651.         Vous êtes connecté en tant que {{ app.user.email }}
  4652.         <a href=\"{{ path('user_index', {'_switch_user': '_exit'}) }}\" class=\"btn btn-sm btn-danger ms-3\">
  4653.             <i class=\"fas fa-sign-out-alt\"></i> Revenir
  4654.         </a>
  4655.     </div>
  4656.     {% endif %}
  4657. </div>
  4658. </div>
  4659. <!-- MODAL CRÉER UN TICKET -->
  4660. <div id=\"ticketModal\" class=\"modal-modern\" style=\"display: none;\">
  4661.     <div class=\"modal-overlay\" onclick=\"closeTicketModal()\"></div>
  4662.     <div class=\"modal-container\">
  4663.         <div class=\"modal-header\">
  4664.             <div class=\"modal-title\">
  4665.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3b82f6\" stroke-width=\"2\">
  4666.                     <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/>
  4667.                 </svg>
  4668.                 <span>Créer un nouveau ticket</span>
  4669.             </div>
  4670.             <button class=\"modal-close\" onclick=\"closeTicketModal()\">×</button>
  4671.         </div>
  4672.         
  4673.         <div class=\"modal-body\">
  4674.             <form id=\"ticketForm\" action=\"{{ path('ticket_create') }}\" method=\"POST\" enctype=\"multipart/form-data\">
  4675.                 <div class=\"form-group\">
  4676.                     <label class=\"form-label\">Sujet</label>
  4677.                     <input type=\"text\" name=\"subject\" class=\"form-control\" placeholder=\"Ex: Problème d'impression de facture\" required>
  4678.                 </div>
  4679.                 
  4680.                 <div class=\"form-group\">
  4681.                     <label class=\"form-label\">Message</label>
  4682.                     <textarea name=\"message\" class=\"form-control\" rows=\"5\" placeholder=\"Décrivez votre problème en détail...\" required></textarea>
  4683.                 </div>
  4684.                 
  4685.                 <div class=\"form-group\">
  4686.                     <label class=\"form-label\">Pièces jointes</label>
  4687.                     <div class=\"file-upload-area\">
  4688.                         <input type=\"file\" name=\"attachments[]\" id=\"fileInput\" multiple style=\"display: none;\">
  4689.                         <button type=\"button\" class=\"file-upload-btn\" onclick=\"document.getElementById('fileInput').click()\">
  4690.                             <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">
  4691.                                 <path d=\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"/>
  4692.                             </svg>
  4693.                             Ajouter des fichiers
  4694.                         </button>
  4695.                         <span class=\"file-hint\">PNG, JPG, PDF (max 10MB)</span>
  4696.                     </div>
  4697.                     <div id=\"fileList\" class=\"file-list\"></div>
  4698.                 </div>
  4699.             </form>
  4700.         </div>
  4701.         
  4702.         <div class=\"modal-footer\">
  4703.             <button class=\"btn-secondary\" onclick=\"closeTicketModal()\">Annuler</button>
  4704.             <button type=\"submit\" form=\"ticketForm\" class=\"btn-primary\">
  4705.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">
  4706.                     <path d=\"M20 6L9 17l-5-5\"/>
  4707.                 </svg>
  4708.                 Valider
  4709.             </button>
  4710.         </div>
  4711.     </div>
  4712. </div>
  4713. <!-- MODAL SUPPORT -->
  4714. <div id=\"supportModal\" class=\"modal-modern\" style=\"display: none;\">
  4715.     <div class=\"modal-overlay\" onclick=\"closeSupportModal()\"></div>
  4716.     <div class=\"modal-container support-modal\">
  4717.         <div class=\"modal-header\">
  4718.             <div class=\"modal-title\">
  4719.                 <div class=\"support-logo\">
  4720.                     <span class=\"brand-text-modal\">MAZEGO</span>
  4721.                 </div>
  4722.             </div>
  4723.             <button class=\"modal-close\" onclick=\"closeSupportModal()\">×</button>
  4724.         </div>
  4725.         
  4726.         <div class=\"modal-body text-center\">
  4727.             <div class=\"support-avatar\">
  4728.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"48\" height=\"48\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3b82f6\" stroke-width=\"1.5\">
  4729.                     <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  4730.                     <path d=\"M12 16v-4\"/>
  4731.                     <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"#3b82f6\"/>
  4732.                 </svg>
  4733.             </div>
  4734.             
  4735.             <h3 class=\"support-title\">Équipe de support</h3>
  4736.             
  4737.             <div class=\"support-info-list\">
  4738.                 <div class=\"support-info-item\">
  4739.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#64748b\">
  4740.                         <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\"/>
  4741.                         <path d=\"m22 7-10 7L2 7\"/>
  4742.                     </svg>
  4743.                     <span>support@mazego.fr</span>
  4744.                 </div>
  4745.                 
  4746.                 <div class=\"support-info-item\">
  4747.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#64748b\">
  4748.                         <rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"/>
  4749.                         <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\"/>
  4750.                     </svg>
  4751.                     {# <span>+216 51 950 201  / +33605669926</span> #}
  4752.                           <span>+33605669926</span>
  4753.                 </div>
  4754.                 
  4755.                 <div class=\"support-info-item\">
  4756.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#64748b\">
  4757.                         <circle cx=\"12\" cy=\"12\" r=\"10\"/>
  4758.                         <polyline points=\"12 6 12 12 16 14\"/>
  4759.                     </svg>
  4760.                     <span>Lun-Ven: 8h30 - 18h00</span>
  4761.                 </div>
  4762.                 
  4763.                 <div class=\"support-info-item summer-schedule\">
  4764.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#f59e0b\">
  4765.                         <circle cx=\"12\" cy=\"12\" r=\"5\"/>
  4766.                         <line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"/>
  4767.                         <line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"/>
  4768.                         <line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"/>
  4769.                         <line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"/>
  4770.                         <line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"/>
  4771.                         <line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"/>
  4772.                         <line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"/>
  4773.                         <line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"/>
  4774.                     </svg>
  4775.                     <span>Horaires été: 8h00 - 17h00</span>
  4776.                 </div>
  4777.             </div>
  4778.             
  4779.             <div class=\"support-response-time\">
  4780.                 <div class=\"response-badge\">
  4781.                     ⚡ Temps de réponse moyen: 2h
  4782.                 </div>
  4783.             </div>
  4784.         </div>
  4785.         
  4786.         <div class=\"modal-footer\">
  4787.             <button class=\"btn-primary\" onclick=\"closeSupportModal()\">Fermer</button>
  4788.         </div>
  4789.     </div>
  4790. </div>
  4791. <!-- BOUTON FLOATING DEMANDER UNE DÉMO -->
  4792. <button id=\"demoButton\" class=\"demo-floating-btn\" onclick=\"openDemoScheduler()\">
  4793.     <div class=\"demo-icon\">
  4794.         <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\">
  4795.             <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>
  4796.             <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/>
  4797.             <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/>
  4798.             <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/>
  4799.             <path d=\"M8 14h.01\"/>
  4800.             <path d=\"M12 14h.01\"/>
  4801.             <path d=\"M16 14h.01\"/>
  4802.             <path d=\"M8 18h.01\"/>
  4803.             <path d=\"M12 18h.01\"/>
  4804.             <path d=\"M16 18h.01\"/>
  4805.         </svg>
  4806.     </div>
  4807.     <span class=\"demo-text\">Demander une démo</span>
  4808.     <span class=\"demo-pulse\"></span>
  4809. </button>
  4810. <!-- MODAL DÉMO KOALENDAR -->
  4811. <div id=\"demoModal\" class=\"modal-modern\" style=\"display: none; \">
  4812.     <div class=\"modal-overlay\" onclick=\"closeDemoModal()\"></div>
  4813.     <div class=\"modal-container demo-modal-container\">
  4814.         <div class=\"modal-header\">
  4815.             <div class=\"modal-title\">
  4816.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3b82f6\" stroke-width=\"2\">
  4817.                     <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  4818.                     <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  4819.                 </svg>
  4820.                 <span>Programmer une démo personnalisée</span>
  4821.             </div>
  4822.             <button class=\"modal-close\" onclick=\"closeDemoModal()\">×</button>
  4823.         </div>
  4824.         
  4825.         <div class=\"modal-body p-0\">
  4826.             <!-- ICI : IFRAME KOALENDAR / CALENDLY -->
  4827.             <!-- Remplacez par votre lien Koalendar ou Calendly -->
  4828.             <iframe 
  4829.                 id=\"koalendarIframe\"
  4830.                 src=\"https://koalendar.com/e/demo-mazego\" 
  4831.                 width=\"100%\" 
  4832.                 height=\"600px\" 
  4833.                 frameborder=\"0\" 
  4834.                 allowfullscreen>
  4835.             </iframe>
  4836.             
  4837.             <!-- Message d'info -->
  4838.             <div class=\"demo-info-bar\">
  4839.                 <span class=\"demo-duration\">⏱️ 45 minutes</span>
  4840.                 <span class=\"demo-spots\">🎯 3 places restantes aujourd'hui</span>
  4841.             </div>
  4842.         </div>
  4843.     </div>
  4844. </div>
  4845. <script>
  4846.  
  4847. document.addEventListener('DOMContentLoaded', function() {
  4848.     const demoButton = document.getElementById('demoButton');
  4849.     
  4850.     demoButton.addEventListener('click', function() {
  4851.         // Attendre que la modal soit chargée
  4852.         setTimeout(function() {
  4853.             const modal = document.getElementById('demoModal');
  4854.             if (modal && !document.getElementById('koalendar-overlay')) {
  4855.                 // Créer un div overlay pour masquer le branding
  4856.                 const overlay = document.createElement('div');
  4857.                 overlay.id = 'koalendar-overlay';
  4858.                 overlay.style.cssText = `
  4859.                     position: absolute;
  4860.                     bottom: 0;
  4861.                     left: 0;
  4862.                     right: 0;
  4863.                     height: 50px;
  4864.                     background: white;
  4865.                     z-index: 10000;
  4866.                     pointer-events: none;
  4867.                 `;
  4868.                 modal.querySelector('.modal-body').style.position = 'relative';
  4869.                 modal.querySelector('.modal-body').appendChild(overlay);
  4870.             }
  4871.         }, 500);
  4872.     });
  4873. });
  4874. </script>
  4875. <style>
  4876. #demoModal .modal-body {
  4877.     max-height: 680px;
  4878.     overflow: hidden !important;
  4879. }
  4880. #koalendarIframe {
  4881.     height: 700px !important;
  4882. }
  4883. /* ========== SUPPORT & TICKET BUTTONS ========== */
  4884. .support-actions-modern {
  4885.     display: flex;
  4886.     gap: 8px;
  4887.     margin-bottom: 16px;
  4888.     padding: 0 8px;
  4889. }
  4890. .support-btn-modern {
  4891.     flex: 1;
  4892.     display: flex;
  4893.     align-items: center;
  4894.     justify-content: center;
  4895.     gap: 8px;
  4896.     padding: 10px 12px;
  4897.     background: white;
  4898.     border: 1px solid #e2e8f0;
  4899.     border-radius: 12px;
  4900.     color: #475569;
  4901.     font-size: 0.85rem;
  4902.     font-weight: 500;
  4903.     transition: all 0.2s ease;
  4904.     cursor: pointer;
  4905.     position: relative;
  4906. }
  4907. .support-btn-modern:hover {
  4908.     background: #f1f5f9;
  4909.     border-color: #3b82f6;
  4910.     color: #1e40af;
  4911.     transform: translateY(-1px);
  4912. }
  4913. .support-btn-modern .support-icon {
  4914.     display: flex;
  4915.     align-items: center;
  4916.     color: #64748b;
  4917. }
  4918. .support-btn-modern:hover .support-icon {
  4919.     color: #3b82f6;
  4920. }
  4921. .ticket-btn {
  4922.     background: linear-gradient(135deg, #3b82f6, #1d4ed8);
  4923.     border-color: transparent;
  4924.     color: white;
  4925. }
  4926. .ticket-btn .support-icon {
  4927.     color: white;
  4928. }
  4929. .ticket-btn:hover {
  4930.     background: linear-gradient(135deg, #2563eb, #1e40af);
  4931.     color: white;
  4932. }
  4933. .ticket-btn:hover .support-icon {
  4934.     color: white;
  4935. }
  4936. .badge-new-ticket {
  4937.     position: absolute;
  4938.     top: -6px;
  4939.     right: -6px;
  4940.     background: #ef4444;
  4941.     color: white;
  4942.     font-size: 0.65rem;
  4943.     font-weight: 700;
  4944.     padding: 2px 6px;
  4945.     border-radius: 12px;
  4946.     letter-spacing: 0.05em;
  4947.     box-shadow: 0 2px 6px rgba(239, 68, 68, 0.3);
  4948.     animation: pulse-badge 2s infinite;
  4949. }
  4950. @keyframes pulse-badge {
  4951.     0%, 100% { transform: scale(1); }
  4952.     50% { transform: scale(1.1); }
  4953. }
  4954. /* ========== MODALS MODERNES ========== */
  4955. .modal-modern {
  4956.     position: fixed;
  4957.     top: 0;
  4958.     left: 0;
  4959.     right: 0;
  4960.     bottom: 0;
  4961.     z-index: 9999;
  4962.     display: flex;
  4963.     align-items: center;
  4964.     justify-content: center;
  4965.     font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  4966. }
  4967. .modal-overlay {
  4968.     position: absolute;
  4969.     top: 0;
  4970.     left: 0;
  4971.     right: 0;
  4972.     bottom: 0;
  4973.     background: rgba(0, 0, 0, 0.5);
  4974.     backdrop-filter: blur(4px);
  4975. }
  4976. .modal-container {
  4977.     position: relative;
  4978.     width: 90%;
  4979.     max-width: 500px;
  4980.     background: white;
  4981.     border-radius: 20px;
  4982.     box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  4983.     z-index: 10000;
  4984.     animation: modalSlideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  4985. }
  4986. .support-modal {
  4987.     max-width: 450px;
  4988. }
  4989. .demo-modal-container {
  4990.     max-width: 900px;
  4991. }
  4992. @keyframes modalSlideIn {
  4993.     from {
  4994.         opacity: 0;
  4995.         transform: translateY(30px) scale(0.95);
  4996.     }
  4997.     to {
  4998.         opacity: 1;
  4999.         transform: translateY(0) scale(1);
  5000.     }
  5001. }
  5002. .modal-header {
  5003.     display: flex;
  5004.     align-items: center;
  5005.     justify-content: space-between;
  5006.     padding: 20px 24px;
  5007.     border-bottom: 1px solid #e2e8f0;
  5008. }
  5009. .modal-title {
  5010.     display: flex;
  5011.     align-items: center;
  5012.     gap: 12px;
  5013.     font-size: 1.1rem;
  5014.     font-weight: 600;
  5015.     color: #1e293b;
  5016. }
  5017. .modal-close {
  5018.     background: none;
  5019.     border: none;
  5020.     font-size: 28px;
  5021.     line-height: 1;
  5022.     color: #94a3b8;
  5023.     cursor: pointer;
  5024.     transition: all 0.2s ease;
  5025.     padding: 4px 12px;
  5026.     border-radius: 8px;
  5027. }
  5028. .modal-close:hover {
  5029.     background: #f1f5f9;
  5030.     color: #475569;
  5031. }
  5032. .modal-body {
  5033.     padding: 24px;
  5034. }
  5035. .modal-footer {
  5036.     display: flex;
  5037.     justify-content: flex-end;
  5038.     gap: 12px;
  5039.     padding: 20px 24px;
  5040.     border-top: 1px solid #e2e8f0;
  5041. }
  5042. /* ========== FORMULAIRES ========== */
  5043. .form-group {
  5044.     margin-bottom: 20px;
  5045. }
  5046. .form-label {
  5047.     display: block;
  5048.     margin-bottom: 8px;
  5049.     font-weight: 500;
  5050.     font-size: 0.9rem;
  5051.     color: #475569;
  5052. }
  5053. .form-control {
  5054.     width: 100%;
  5055.     padding: 12px 16px;
  5056.     border: 1px solid #e2e8f0;
  5057.     border-radius: 12px;
  5058.     font-size: 0.95rem;
  5059.     transition: all 0.2s ease;
  5060.     background: #f8fafc;
  5061. }
  5062. .form-control:focus {
  5063.     outline: none;
  5064.     border-color: #3b82f6;
  5065.     box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
  5066.     background: white;
  5067. }
  5068. textarea.form-control {
  5069.     resize: vertical;
  5070.     min-height: 120px;
  5071. }
  5072. .file-upload-area {
  5073.     display: flex;
  5074.     align-items: center;
  5075.     gap: 12px;
  5076.     flex-wrap: wrap;
  5077. }
  5078. .file-upload-btn {
  5079.     display: flex;
  5080.     align-items: center;
  5081.     gap: 8px;
  5082.     padding: 10px 16px;
  5083.     background: #f1f5f9;
  5084.     border: 1px dashed #94a3b8;
  5085.     border-radius: 10px;
  5086.     color: #475569;
  5087.     font-size: 0.9rem;
  5088.     cursor: pointer;
  5089.     transition: all 0.2s ease;
  5090. }
  5091. .file-upload-btn:hover {
  5092.     background: #e2e8f0;
  5093.     border-color: #3b82f6;
  5094.     color: #1e40af;
  5095. }
  5096. .file-hint {
  5097.     font-size: 0.8rem;
  5098.     color: #94a3b8;
  5099. }
  5100. .file-list {
  5101.     margin-top: 12px;
  5102.     display: flex;
  5103.     flex-direction: column;
  5104.     gap: 8px;
  5105. }
  5106. /* ========== BOUTONS ========== */
  5107. .btn-primary {
  5108.     display: inline-flex;
  5109.     align-items: center;
  5110.     justify-content: center;
  5111.     gap: 8px;
  5112.     padding: 12px 24px;
  5113.     background: linear-gradient(135deg, #3b82f6, #2563eb);
  5114.     border: none;
  5115.     border-radius: 12px;
  5116.     color: white;
  5117.     font-weight: 600;
  5118.     font-size: 0.95rem;
  5119.     cursor: pointer;
  5120.     transition: all 0.2s ease;
  5121. }
  5122. .btn-primary:hover {
  5123.     background: linear-gradient(135deg, #2563eb, #1d4ed8);
  5124.     transform: translateY(-1px);
  5125.     box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
  5126. }
  5127. .btn-secondary {
  5128.     display: inline-flex;
  5129.     align-items: center;
  5130.     justify-content: center;
  5131.     gap: 8px;
  5132.     padding: 12px 24px;
  5133.     background: #f1f5f9;
  5134.     border: 1px solid #e2e8f0;
  5135.     border-radius: 12px;
  5136.     color: #475569;
  5137.     font-weight: 600;
  5138.     font-size: 0.95rem;
  5139.     cursor: pointer;
  5140.     transition: all 0.2s ease;
  5141. }
  5142. .btn-secondary:hover {
  5143.     background: #e2e8f0;
  5144.     color: #1e293b;
  5145. }
  5146. /* ========== MODAL SUPPORT ========== */
  5147. .support-logo {
  5148.     display: flex;
  5149.     align-items: center;
  5150.     gap: 8px;
  5151. }
  5152. .brand-text-modal {
  5153.     font-size: 1.4rem;
  5154.     font-weight: 700;
  5155.     color: #1e293b;
  5156.     letter-spacing: -0.02em;
  5157. }
  5158. .support-avatar {
  5159.     display: flex;
  5160.     justify-content: center;
  5161.     margin-bottom: 16px;
  5162. }
  5163. .support-title {
  5164.     font-size: 1.5rem;
  5165.     font-weight: 700;
  5166.     color: #1e293b;
  5167.     margin-bottom: 24px;
  5168. }
  5169. .support-info-list {
  5170.     display: flex;
  5171.     flex-direction: column;
  5172.     gap: 16px;
  5173.     margin-bottom: 24px;
  5174. }
  5175. .support-info-item {
  5176.     display: flex;
  5177.     align-items: center;
  5178.     justify-content: center;
  5179.     gap: 12px;
  5180.     color: #475569;
  5181.     font-size: 1rem;
  5182. }
  5183. .summer-schedule {
  5184.     color: #f59e0b;
  5185.     font-weight: 500;
  5186. }
  5187. .support-response-time {
  5188.     margin-top: 16px;
  5189.     padding-top: 16px;
  5190.     border-top: 1px solid #e2e8f0;
  5191. }
  5192. .response-badge {
  5193.     display: inline-flex;
  5194.     align-items: center;
  5195.     padding: 8px 16px;
  5196.     background: #e0f2fe;
  5197.     color: #0284c7;
  5198.     border-radius: 30px;
  5199.     font-size: 0.9rem;
  5200.     font-weight: 500;
  5201. }
  5202. /* ========== BOUTON FLOATING DÉMO ========== */
  5203. .demo-floating-btn {
  5204.     position: fixed;
  5205.    /* bottom: 30px; */
  5206.    top: 12px;
  5207.     right: 30px;
  5208.     display: flex;
  5209.     align-items: center;
  5210.     gap: 12px;
  5211.     padding: 16px 28px;
  5212.     background: linear-gradient(135deg, #8b5cf6, #6d28d9);
  5213.     border: none;
  5214.     border-radius: 50px;
  5215.     color: white;
  5216.     font-weight: 600;
  5217.     font-size: 1rem;
  5218.     cursor: pointer;
  5219.     box-shadow: 0 10px 25px rgba(109, 40, 217, 0.4);
  5220.     transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  5221.     z-index: 9998;
  5222.     border: 1px solid rgba(255, 255, 255, 0.2);
  5223. }
  5224. .demo-floating-btn:hover {
  5225.     transform: scale(1.05);
  5226.     box-shadow: 0 20px 35px rgba(109, 40, 217, 0.5);
  5227.     background: linear-gradient(135deg, #7c3aed, #5b21b6);
  5228. }
  5229. .demo-icon {
  5230.     display: flex;
  5231.     align-items: center;
  5232. }
  5233. .demo-pulse {
  5234.     position: absolute;
  5235.     top: 0;
  5236.     left: 0;
  5237.     right: 0;
  5238.     bottom: 0;
  5239.     border-radius: 50px;
  5240.     box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.5);
  5241.     animation: pulse-demo 2s infinite;
  5242. }
  5243. @keyframes pulse-demo {
  5244.     0% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.5); }
  5245.     70% { box-shadow: 0 0 0 15px rgba(139, 92, 246, 0); }
  5246.     100% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0); }
  5247. }
  5248. /* Mode réduit - adaptations */
  5249. body[data-kt-aside-minimize=\"on\"] .support-actions-modern {
  5250.     flex-direction: column;
  5251.     padding: 0 4px;
  5252. }
  5253. body[data-kt-aside-minimize=\"on\"] .support-text {
  5254.     display: none;
  5255. }
  5256. body[data-kt-aside-minimize=\"on\"] .support-btn-modern {
  5257.     padding: 12px;
  5258. }
  5259. body[data-kt-aside-minimize=\"on\"] .support-icon {
  5260.     margin: 0;
  5261. }
  5262. body[data-kt-aside-minimize=\"on\"] .badge-new-ticket {
  5263.     top: -3px;
  5264.     right: -3px;
  5265. }
  5266. /* ========== DEMO INFO BAR ========== */
  5267. .demo-info-bar {
  5268.     display: flex;
  5269.     align-items: center;
  5270.     justify-content: space-between;
  5271.     padding: 16px 24px;
  5272.     background: #f8fafc;
  5273.     border-top: 1px solid #e2e8f0;
  5274.     font-size: 0.9rem;
  5275.     color: #475569;
  5276. }
  5277. .demo-duration {
  5278.     display: flex;
  5279.     align-items: center;
  5280.     gap: 6px;
  5281. }
  5282. .demo-spots {
  5283.     display: flex;
  5284.     align-items: center;
  5285.     gap: 6px;
  5286.     color: #10b981;
  5287.     font-weight: 500;
  5288. }
  5289. /* ========== RESPONSIVE ========== */
  5290. @media (max-width: 768px) {
  5291.     .demo-floating-btn {
  5292.         bottom: 20px;
  5293.         right: 20px;
  5294.         padding: 14px 20px;
  5295.         font-size: 0.9rem;
  5296.     }
  5297.     
  5298.     .demo-floating-btn .demo-text {
  5299.         display: none;
  5300.     }
  5301.     
  5302.     .demo-floating-btn {
  5303.         padding: 16px;
  5304.         border-radius: 50%;
  5305.     }
  5306.     
  5307.     .demo-floating-btn:hover {
  5308.         transform: scale(1.1);
  5309.     }
  5310.     
  5311.     .modal-container {
  5312.         width: 95%;
  5313.         max-height: 90vh;
  5314.         overflow-y: auto;
  5315.     }
  5316.     
  5317.     .demo-info-bar {
  5318.         flex-direction: column;
  5319.         gap: 8px;
  5320.         align-items: flex-start;
  5321.     }
  5322. }
  5323. /* Sidebar Moderne - Design épuré et contemporain */
  5324. .aside-modern {
  5325.     background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  5326.     border-right: 1px solid #e2e8f0;
  5327.     box-shadow: 0 4px 25px rgba(0, 0, 0, 0.08);
  5328.     width: 280px;
  5329.     transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  5330. }
  5331. /* Logo Section */
  5332. .aside-logo-modern {
  5333.     padding: 2rem 1.5rem 1.5rem;
  5334.     border-bottom: 1px solid #f1f5f9;
  5335.     display: flex;
  5336.     align-items: center;
  5337.     justify-content: space-between;
  5338.     background: rgba(255, 255, 255, 0.8);
  5339.     backdrop-filter: blur(10px);
  5340. }
  5341. .logo-container-modern {
  5342.     display: flex;
  5343.     align-items: center;
  5344.     text-decoration: none;
  5345.     transition: all 0.2s ease;
  5346. }
  5347. .logo-container-modern:hover {
  5348.     transform: scale(1.02);
  5349. }
  5350. .brand-text {
  5351.     font-size: 1.25rem;
  5352.     font-weight: 700;
  5353.     color: #1e293b;
  5354.     letter-spacing: -0.02em;
  5355. }
  5356. .btn-toggle-modern {
  5357.     background: #f8fafc;
  5358.     border: 1px solid #e2e8f0;
  5359.     border-radius: 8px;
  5360.     padding: 8px;
  5361.     color: #64748b;
  5362.     transition: all 0.2s ease;
  5363.     cursor: pointer;
  5364. }
  5365. .btn-toggle-modern:hover {
  5366.     background: #e2e8f0;
  5367.     color: #475569;
  5368.     transform: scale(1.05);
  5369. }
  5370. /* Menu Principal */
  5371. .aside-menu-modern {
  5372.     padding: 1rem 0;
  5373.     height: calc(100vh - 200px);
  5374.     overflow: hidden;
  5375. }
  5376. .menu-scroll-modern {
  5377.     height: 100%;
  5378.     overflow-y: auto;
  5379.     padding: 0 1rem;
  5380.     scrollbar-width: thin;
  5381.     scrollbar-color: #cbd5e1 transparent;
  5382. }
  5383. .menu-scroll-modern::-webkit-scrollbar {
  5384.     width: 4px;
  5385. }
  5386. .menu-scroll-modern::-webkit-scrollbar-track {
  5387.     background: transparent;
  5388. }
  5389. .menu-scroll-modern::-webkit-scrollbar-thumb {
  5390.     background: #cbd5e1;
  5391.     border-radius: 2px;
  5392. }
  5393. .menu-scroll-modern::-webkit-scrollbar-thumb:hover {
  5394.     background: #94a3b8;
  5395. }
  5396. /* Sections du Menu - STYLE ORIGINAL AMÉLIORÉ */
  5397. .menu-section-modern {
  5398.     margin-bottom: 2rem;
  5399. }
  5400. /* En-tête de section cliquable */
  5401. .menu-section-header-modern {
  5402.     display: flex;
  5403.     align-items: center;
  5404.     justify-content: space-between;
  5405.     padding: 0.75rem 1rem;
  5406.     margin: 0 0.25rem 0.5rem;
  5407.     border-radius: 12px;
  5408.     cursor: pointer;
  5409.     transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  5410.     border: 1px solid transparent;
  5411.     background: #f8fafc;
  5412. }
  5413. .menu-section-header-modern:hover {
  5414.     background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  5415.     border-color: #e2e8f0;
  5416. }
  5417. .menu-section-header-modern.active {
  5418.     /*background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); */
  5419.     color: white;
  5420.     box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
  5421. }
  5422. .menu-section-title-modern {
  5423.     display: flex;
  5424.     align-items: center;
  5425.     gap: 0.75rem;
  5426.     font-weight: 600;
  5427.     font-size: 0.85rem;
  5428.     text-transform: uppercase;
  5429.     letter-spacing: 0.05em;
  5430. }
  5431. .section-title-text {
  5432.     color: #475569;
  5433.     font-size: 0.75rem;
  5434.     font-weight: 600;
  5435.     text-transform: uppercase;
  5436.     letter-spacing: 0.1em;
  5437. }
  5438. {# .menu-section-header-modern.active .section-title-text {
  5439.     color: white;
  5440. } #}
  5441. .menu-section-arrow {
  5442.     color: #94a3b8;
  5443.     transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  5444. }
  5445. {# .menu-section-header-modern.active .menu-section-arrow {
  5446.     color: white;
  5447.     transform: rotate(180deg);
  5448. } #}
  5449. /* Contenu des sections */
  5450. .menu-section-content {
  5451.     max-height: 1000px;
  5452.     overflow: hidden;
  5453.     transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  5454. }
  5455. .menu-section-modern.collapsed .menu-section-content {
  5456.     max-height: 0;
  5457. }
  5458. /* Items du Menu - STYLE ORIGINAL */
  5459. .menu-item-modern {
  5460.     margin-bottom: 0.25rem;
  5461. }
  5462. .menu-link-modern {
  5463.     display: flex;
  5464.     align-items: center;
  5465.     padding: 0.875rem 1rem;
  5466.     border-radius: 12px;
  5467.     text-decoration: none;
  5468.     color: #475569;
  5469.     font-weight: 500;
  5470.     font-size: 0.95rem;
  5471.     transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  5472.     position: relative;
  5473.     margin: 0 0.25rem;
  5474. }
  5475. .menu-link-modern:hover {
  5476.     background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  5477.     color: #334155;
  5478.     text-decoration: none;
  5479.     transform: translateX(4px);
  5480. }
  5481. .menu-link-modern.active {
  5482.  
  5483.     /* background: linear-gradient(135deg, #e4e4f7 0%, #e4e5f7 100%); */
  5484.     color: #6b7787;
  5485.     /* box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3); */ 
  5486.     font-weight: 600;
  5487. }
  5488. .menu-link-modern.active:hover {
  5489.     transform: translateX(0);
  5490. }
  5491. /* Icônes */
  5492. .menu-icon-modern {
  5493.     width: 22px;
  5494.     height: 22px;
  5495.     margin-right: 0.875rem;
  5496.     display: flex;
  5497.     align-items: center;
  5498.     justify-content: center;
  5499.     flex-shrink: 0;
  5500.     color: #64748b;
  5501.     transition: all 0.2s ease;
  5502. }
  5503. .menu-link-modern:hover .menu-icon-modern {
  5504.     color: #475569;
  5505.     transform: scale(1.1);
  5506. }
  5507. .menu-link-modern.active .menu-icon-modern {
  5508.     color: white;
  5509. }
  5510. /* Titres */
  5511. .menu-title-modern {
  5512.     flex: 1;
  5513.     font-size: 0.95rem;
  5514.     line-height: 1.4;
  5515. }
  5516. /* Badges - STYLE ORIGINAL AMÉLIORÉ */
  5517. .menu-badge-modern {
  5518.     margin-left: auto;
  5519.     display: flex;
  5520.     align-items: center;
  5521. }
  5522. .badge-dot-modern {
  5523.     width: 6px;
  5524.     height: 6px;
  5525.     background: #10b981;
  5526.     border-radius: 50%;
  5527.     animation: pulse 2s infinite;
  5528. }
  5529. .badge-new-modern {
  5530.     background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  5531.     color: white;
  5532.     font-size: 0.7rem;
  5533.     font-weight: 600;
  5534.     padding: 2px 6px;
  5535.     border-radius: 8px;
  5536.     text-transform: uppercase;
  5537.     letter-spacing: 0.05em;
  5538. }
  5539. .badge-dev-modern {
  5540.     background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
  5541.     color: white;
  5542.     font-size: 0.65rem;
  5543.     font-weight: 600;
  5544.     padding: 2px 6px;
  5545.     border-radius: 8px;
  5546.     text-transform: uppercase;
  5547.     letter-spacing: 0.05em;
  5548. }
  5549. .badge-admin-modern {
  5550.     background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
  5551.     color: white;
  5552.     font-size: 0.65rem;
  5553.     font-weight: 600;
  5554.     padding: 2px 6px;
  5555.     border-radius: 8px;
  5556.     text-transform: uppercase;
  5557.     letter-spacing: 0.05em;
  5558. }
  5559. @keyframes pulse {
  5560.     0%, 100% { opacity: 1; }
  5561.     50% { opacity: 0.5; }
  5562. }
  5563. /* Accordéons */
  5564. .menu-accordion-modern {
  5565.     margin-bottom: 0.25rem;
  5566. }
  5567. .menu-accordion-trigger {
  5568.     cursor: pointer;
  5569. }
  5570. .menu-arrow-modern {
  5571.     margin-left: auto;
  5572.     color: #94a3b8;
  5573.     transition: transform 0.2s ease;
  5574. }
  5575. .menu-accordion-modern.show .menu-arrow-modern {
  5576.     transform: rotate(90deg);
  5577. }
  5578. /* Sous-menus */
  5579. .menu-sub-modern {
  5580.     max-height: 0;
  5581.     overflow: hidden;
  5582.     transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  5583.     margin: 0.5rem 0 0 0;
  5584.     background: rgba(248, 250, 252, 0.5);
  5585.     border-radius: 8px;
  5586.     margin-left: 0.25rem;
  5587.     margin-right: 0.25rem;
  5588. }
  5589. .menu-accordion-modern.show .menu-sub-modern {
  5590.     max-height: 300px;
  5591.     padding: 0.5rem 0;
  5592. }
  5593. .menu-sub-item-modern {
  5594.     margin-bottom: 0.125rem;
  5595. }
  5596. .menu-sub-link-modern {
  5597.     display: flex;
  5598.     align-items: center;
  5599.     padding: 0.625rem 1rem 0.625rem 2.5rem;
  5600.     color: #64748b;
  5601.     text-decoration: none;
  5602.     font-size: 0.9rem;
  5603.     font-weight: 500;
  5604.     border-radius: 8px;
  5605.     transition: all 0.2s ease;
  5606.     margin: 0 0.5rem;
  5607. }
  5608. .menu-sub-link-modern:hover {
  5609.     background: rgba(59, 130, 246, 0.1);
  5610.     color: #3b82f6;
  5611.     text-decoration: none;
  5612.     transform: translateX(4px);
  5613. }
  5614. .menu-bullet-modern {
  5615.     width: 6px;
  5616.     height: 6px;
  5617.     background: #cbd5e1;
  5618.     border-radius: 50%;
  5619.     margin-right: 0.75rem;
  5620.     transition: all 0.2s ease;
  5621. }
  5622. .menu-sub-link-modern:hover .menu-bullet-modern {
  5623.     background: #3b82f6;
  5624.     transform: scale(1.2);
  5625. }
  5626. /* Footer */
  5627. .aside-footer-modern {
  5628.     padding: 1.5rem;
  5629.     border-top: 1px solid #f1f5f9;
  5630.     background: rgba(255, 255, 255, 0.8);
  5631.     backdrop-filter: blur(10px);
  5632. }
  5633. .user-panel-modern {
  5634.     display: flex;
  5635.     align-items: center;
  5636.     background: #f8fafc;
  5637.     padding: 1rem;
  5638.     border-radius: 12px;
  5639.     border: 1px solid #e2e8f0;
  5640.     transition: all 0.2s ease;
  5641. }
  5642. .user-panel-modern:hover {
  5643.     background: #f1f5f9;
  5644.     border-color: #cbd5e1;
  5645. }
  5646. .user-avatar-modern {
  5647.     width: 40px;
  5648.     height: 40px;
  5649.     background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
  5650.     border-radius: 10px;
  5651.     display: flex;
  5652.     align-items: center;
  5653.     justify-content: center;
  5654.     margin-right: 0.75rem;
  5655.     color: white;
  5656. }
  5657. .user-info-modern {
  5658.     flex: 1;
  5659. }
  5660. .user-name-modern {
  5661.     font-weight: 600;
  5662.     font-size: 0.9rem;
  5663.     color: #1e293b;
  5664.     line-height: 1.2;
  5665. }
  5666. .user-role-modern {
  5667.     font-size: 0.8rem;
  5668.     color: #64748b;
  5669.     margin-top: 0.125rem;
  5670. }
  5671. .logout-btn-modern {
  5672.     background: #fee2e2;
  5673.     color: #dc2626;
  5674.     padding: 8px;
  5675.     border-radius: 8px;
  5676.     text-decoration: none;
  5677.     transition: all 0.2s ease;
  5678.     display: flex;
  5679.     align-items: center;
  5680.     justify-content: center;
  5681. }
  5682. .logout-btn-modern:hover {
  5683.     background: #fecaca;
  5684.     color: #b91c1c;
  5685.     text-decoration: none;
  5686.     transform: scale(1.05);
  5687. }
  5688. /* Responsive */
  5689. @media (max-width: 1024px) {
  5690.     .aside-modern {
  5691.         transform: translateX(-100%);
  5692.     }
  5693.     .aside-modern.drawer-on {
  5694.         transform: translateX(0);
  5695.     }
  5696. }
  5697. /* États actifs pour les liens */
  5698. .menu-link-modern.active::before {
  5699.     content: '';
  5700.     position: absolute;
  5701.     left: -0.25rem;
  5702.     top: 50%;
  5703.     transform: translateY(-50%);
  5704.     width: 3px;
  5705.     height: 20px;
  5706.     background: #3b82f6;
  5707.     border-radius: 0 2px 2px 0;
  5708. }
  5709. /* Animation d'entrée */
  5710. .menu-item-modern {
  5711.     animation: slideInLeft 0.3s ease-out;
  5712. }
  5713. @keyframes slideInLeft {
  5714.     from {
  5715.         opacity: 0;
  5716.         transform: translateX(-20px);
  5717.     }
  5718.     to {
  5719.         opacity: 1;
  5720.         transform: translateX(0);
  5721.     }
  5722. }
  5723. /* Amélioration des focus pour l'accessibilité */
  5724. .menu-link-modern:focus,
  5725. .menu-sub-link-modern:focus {
  5726.     outline: 2px solid #3b82f6;
  5727.     outline-offset: 2px;
  5728. }
  5729. /* Mode réduit */
  5730. body[data-kt-aside-minimize=\"on\"] .aside-modern {
  5731.     width: 80px;
  5732.     transition: all 0.3s ease;
  5733. }
  5734. body[data-kt-aside-minimize=\"on\"] .brand-text,
  5735. body[data-kt-aside-minimize=\"on\"] .menu-title-modern,
  5736. body[data-kt-aside-minimize=\"on\"] .menu-arrow-modern,
  5737. body[data-kt-aside-minimize=\"on\"] .menu-section-title-modern,
  5738. body[data-kt-aside-minimize=\"on\"] .section-title-text,
  5739. body[data-kt-aside-minimize=\"on\"] .user-name-modern,
  5740. body[data-kt-aside-minimize=\"on\"] .user-role-modern {
  5741.     display: none;
  5742. }
  5743. body[data-kt-aside-minimize=\"on\"] .aside-logo-modern {
  5744.     justify-content: center;
  5745.     padding: 1.5rem 0.5rem;
  5746. }
  5747. body[data-kt-aside-minimize=\"on\"] .btn-toggle-modern {
  5748.     transform: rotate(180deg);
  5749.     margin: 0 auto;
  5750. }
  5751. body[data-kt-aside-minimize=\"on\"] .menu-link-modern {
  5752.     justify-content: center;
  5753.     padding: 0.875rem 0.5rem;
  5754.     margin: 0 0.25rem;
  5755. }
  5756. body[data-kt-aside-minimize=\"on\"] .menu-icon-modern {
  5757.     margin-right: 0;
  5758.     transform: scale(1.2);
  5759. }
  5760. body[data-kt-aside-minimize=\"on\"] .menu-section-header-modern {
  5761.     padding: 0.5rem;
  5762.     justify-content: center;
  5763. }
  5764. body[data-kt-aside-minimize=\"on\"] .menu-section-arrow {
  5765.     display: none;
  5766. }
  5767. body[data-kt-aside-minimize=\"on\"] .user-panel-modern {
  5768.     justify-content: center;
  5769.     padding: 0.75rem 0.5rem;
  5770. }
  5771. body[data-kt-aside-minimize=\"on\"] .user-avatar-modern {
  5772.     margin-right: 0;
  5773. }
  5774. body[data-kt-aside-minimize=\"on\"] .logout-btn-modern {
  5775.     position: absolute;
  5776.     bottom: 1rem;
  5777.     right: 1rem;
  5778. }
  5779. /* Responsive mobile */
  5780. @media (max-width: 1024px) {
  5781.     .aside-modern {
  5782.         position: fixed;
  5783.         left: -280px;
  5784.         top: 0;
  5785.         bottom: 0;
  5786.         z-index: 103;
  5787.         transition: all 0.3s ease;
  5788.     }
  5789.     .aside-modern.mobile-show {
  5790.         left: 0;
  5791.         box-shadow: 10px 0 30px rgba(0,0,0,0.1);
  5792.     }
  5793.     /* Overlay pour mobile */
  5794.     .aside-overlay {
  5795.         position: fixed;
  5796.         top: 0;
  5797.         left: 0;
  5798.         right: 0;
  5799.         bottom: 0;
  5800.         background: rgba(0,0,0,0.3);
  5801.         z-index: 102;
  5802.         opacity: 0;
  5803.         visibility: hidden;
  5804.         transition: all 0.3s ease;
  5805.     }
  5806.     .aside-overlay.active {
  5807.         opacity: 1;
  5808.         visibility: visible;
  5809.     }
  5810. }
  5811. /* ========== AMÉLIORATIONS DU MENU ========== */
  5812. /* 1. Style moderne pour les liens actifs */
  5813. .menu-link-modern.active {
  5814.     background: linear-gradient(135deg, rgba(37, 99, 235, 0.15) 0%, rgba(59, 130, 246, 0.1) 100%);
  5815.     color: #1e40af;
  5816.     border-left: 3px solid #3b82f6;
  5817.     font-weight: 600;
  5818.     box-shadow: 0 2px 8px rgba(59, 130, 246, 0.12);
  5819. }
  5820. .menu-link-modern.active .menu-icon-modern {
  5821.     color: #3b82f6;
  5822. }
  5823. .menu-link-modern.active:hover {
  5824.     background: linear-gradient(135deg, rgba(37, 99, 235, 0.18) 0%, rgba(59, 130, 246, 0.12) 100%);
  5825.     transform: translateX(2px);
  5826. }
  5827. /* 2. Menu fermé par défaut */
  5828. .menu-section-modern {
  5829.     margin-bottom: 1.5rem;
  5830. }
  5831. .menu-section-content {
  5832.     max-height: 0;
  5833.     overflow: hidden;
  5834.     transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  5835. }
  5836. .menu-section-modern.expanded .menu-section-content {
  5837.     max-height: 1000px;
  5838. }
  5839. /* 3. Flèche de section */
  5840. .menu-section-arrow {
  5841.     transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  5842.     transform: rotate(0deg);
  5843. }
  5844. .menu-section-modern.expanded .menu-section-arrow {
  5845.     transform: rotate(180deg);
  5846. }
  5847. /* 4. Style d'en-tête de section */
  5848. .menu-section-header-modern {
  5849.     background: #f8fafc;
  5850.     border: 1px solid #e2e8f0;
  5851.     border-radius: 10px;
  5852.     padding: 0.75rem 1rem;
  5853.     margin-bottom: 0.5rem;
  5854.     cursor: pointer;
  5855.     transition: all 0.2s ease;
  5856. }
  5857. .menu-section-header-modern:hover {
  5858.     background: #f1f5f9;
  5859.     border-color: #cbd5e1;
  5860. }
  5861. .menu-section-modern.expanded .menu-section-header-modern {
  5862.     background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  5863.     border-color: #cbd5e1;
  5864. }
  5865. /* 5. Maintien de la position de défilement */
  5866. .menu-scroll-modern {
  5867.     scroll-behavior: auto; /* Désactiver le scroll automatique */
  5868. }
  5869. /* 6. Indicateur pour sections avec contenu actif */
  5870. .menu-section-header-modern.has-active-child {
  5871.     border-left: 3px solid #3b82f6;
  5872.     background: rgba(59, 130, 246, 0.05);
  5873. }
  5874. /* 7. Style pour sous-menus actifs */
  5875. .menu-sub-link-modern.active {
  5876.     background: rgba(59, 130, 246, 0.1);
  5877.     color: #1e40af;
  5878.     font-weight: 500;
  5879.     border-left: 2px solid #3b82f6;
  5880. }
  5881. .menu-sub-link-modern.active .menu-bullet-modern {
  5882.     background: #3b82f6;
  5883.     transform: scale(1.1);
  5884. }
  5885. /* 8. Animation subtile */
  5886. .menu-item-modern {
  5887.     animation: fadeIn 0.2s ease-out;
  5888. }
  5889. @keyframes fadeIn {
  5890.     from { opacity: 0; transform: translateX(-5px); }
  5891.     to { opacity: 1; transform: translateX(0); }
  5892. }
  5893. /* 9. Indicateur visuel pour liens actifs */
  5894. .menu-link-modern.active::after {
  5895.     content: '';
  5896.     position: absolute;
  5897.     right: 12px;
  5898.     top: 50%;
  5899.     transform: translateY(-50%);
  5900.     width: 6px;
  5901.     height: 6px;
  5902.     background: #10b981;
  5903.     border-radius: 50%;
  5904.     animation: pulse-active 2s infinite;
  5905. }
  5906. @keyframes pulse-active {
  5907.     0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
  5908.     70% { box-shadow: 0 0 0 4px rgba(16, 185, 129, 0); }
  5909. }
  5910. </style>
  5911. <script>
  5912.  
  5913. document.addEventListener('DOMContentLoaded', function() {
  5914.     // ========== CONFIGURATION ==========
  5915.     const CONFIG = {
  5916.         localStorageKey: 'menuState_v1',
  5917.         autoExpandActive: true,
  5918.         defaultCollapsed: true,
  5919.         saveScrollPosition: true
  5920.     };
  5921.     // ========== FONCTIONS UTILITAIRES ==========
  5922.     
  5923.     // Sauvegarder l'état du menu
  5924.     function saveMenuState() {
  5925.         const menuState = {
  5926.             sections: {},
  5927.             scrollPosition: CONFIG.saveScrollPosition ? getScrollPosition() : 0,
  5928.             timestamp: Date.now()
  5929.         };
  5930.         
  5931.         document.querySelectorAll('.menu-section-modern').forEach(section => {
  5932.             const sectionId = section.querySelector('.menu-section-header-modern')?.dataset?.section;
  5933.             if (sectionId) {
  5934.                 menuState.sections[sectionId] = section.classList.contains('expanded') ? 'expanded' : 'collapsed';
  5935.             }
  5936.         });
  5937.         
  5938.         localStorage.setItem(CONFIG.localStorageKey, JSON.stringify(menuState));
  5939.     }
  5940.     // Restaurer l'état du menu
  5941.     function loadMenuState() {
  5942.         try {
  5943.             const saved = localStorage.getItem(CONFIG.localStorageKey);
  5944.             if (!saved) return null;
  5945.             
  5946.             return JSON.parse(saved);
  5947.         } catch (e) {
  5948.             console.warn('Impossible de charger l\\'état du menu:', e);
  5949.             return null;
  5950.         }
  5951.     }
  5952.     // Obtenir la position de défilement
  5953.     function getScrollPosition() {
  5954.         const scrollElement = document.querySelector('.menu-scroll-modern');
  5955.         return scrollElement ? scrollElement.scrollTop : 0;
  5956.     }
  5957.     // Restaurer la position de défilement
  5958.     function restoreScrollPosition(position) {
  5959.         if (!CONFIG.saveScrollPosition) return;
  5960.         
  5961.         const scrollElement = document.querySelector('.menu-scroll-modern');
  5962.         if (scrollElement) {
  5963.             // Attendre que le DOM soit complètement chargé
  5964.             setTimeout(() => {
  5965.                 scrollElement.scrollTop = position;
  5966.             }, 100);
  5967.         }
  5968.     }
  5969.     // Trouver la section active
  5970.     function findActiveSection() {
  5971.         const currentPath = window.location.pathname;
  5972.         const allLinks = document.querySelectorAll('.menu-link-modern[href], .menu-sub-link-modern[href]');
  5973.         
  5974.         let activeSectionId = null;
  5975.         
  5976.         allLinks.forEach(link => {
  5977.             const href = link.getAttribute('href');
  5978.             if (!href) return;
  5979.             
  5980.             // Vérifier si ce lien correspond à la page actuelle
  5981.             if (href === currentPath || 
  5982.                 (href !== '/' && currentPath.startsWith(href))) {
  5983.                 link.classList.add('active');
  5984.                 
  5985.                 // Trouver la section parente
  5986.                 const section = link.closest('.menu-section-modern');
  5987.                 if (section) {
  5988.                     const sectionId = section.querySelector('.menu-section-header-modern')?.dataset?.section;
  5989.                     if (sectionId) {
  5990.                         activeSectionId = sectionId;
  5991.                     }
  5992.                 }
  5993.                 
  5994.                 // Gérer les sous-menus d'accordéon
  5995.                 const accordion = link.closest('.menu-accordion-modern');
  5996.                 if (accordion) {
  5997.                     accordion.classList.add('show');
  5998.                 }
  5999.             }
  6000.         });
  6001.         
  6002.         return activeSectionId;
  6003.     }
  6004.     // Initialiser les sections
  6005.     function initializeSections() {
  6006.         const savedState = loadMenuState();
  6007.         const activeSectionId = findActiveSection();
  6008.         
  6009.         document.querySelectorAll('.menu-section-modern').forEach(section => {
  6010.             const header = section.querySelector('.menu-section-header-modern');
  6011.             const sectionId = header.dataset.section;
  6012.             
  6013.             // Vérifier si cette section a un enfant actif
  6014.             const hasActiveChild = section.querySelector('.menu-link-modern.active, .menu-sub-link-modern.active');
  6015.             if (hasActiveChild) {
  6016.                 header.classList.add('has-active-child');
  6017.             }
  6018.             
  6019.             // Déterminer l'état initial
  6020.             let shouldExpand = false;
  6021.             
  6022.             if (savedState?.sections?.[sectionId]) {
  6023.                 // Restaurer l'état sauvegardé
  6024.                 shouldExpand = savedState.sections[sectionId] === 'expanded';
  6025.             } else if (CONFIG.defaultCollapsed) {
  6026.                 // Par défaut, toutes les sections sont fermées
  6027.                 shouldExpand = false;
  6028.             } else {
  6029.                 // Sinon, ouvrir uniquement la section active
  6030.                 shouldExpand = sectionId === activeSectionId && CONFIG.autoExpandActive;
  6031.             }
  6032.             
  6033.             // Appliquer l'état
  6034.             if (shouldExpand) {
  6035.                 section.classList.add('expanded');
  6036.                 header.classList.add('active');
  6037.             } else {
  6038.                 section.classList.remove('expanded');
  6039.                 header.classList.remove('active');
  6040.             }
  6041.             
  6042.             // Gestionnaire de clic pour l'en-tête de section
  6043.             header.addEventListener('click', function(e) {
  6044.                 e.preventDefault();
  6045.                 e.stopPropagation();
  6046.                 
  6047.                 const isExpanded = section.classList.contains('expanded');
  6048.                 const newState = !isExpanded;
  6049.                 
  6050.                 // Mettre à jour l'état
  6051.                 section.classList.toggle('expanded', newState);
  6052.                 header.classList.toggle('active', newState);
  6053.                 
  6054.                 // Sauvegarder l'état
  6055.                 saveMenuState();
  6056.             });
  6057.         });
  6058.         
  6059.         // Restaurer la position de défilement
  6060.         if (savedState?.scrollPosition) {
  6061.             restoreScrollPosition(savedState.scrollPosition);
  6062.         }
  6063.         
  6064.         // Sauvegarder l'état initial
  6065.         setTimeout(() => saveMenuState(), 500);
  6066.     }
  6067.     // Gestion des accordéons
  6068.     function initializeAccordions() {
  6069.         const accordions = document.querySelectorAll('.menu-accordion-modern');
  6070.         
  6071.         accordions.forEach(accordion => {
  6072.             const trigger = accordion.querySelector('.menu-accordion-trigger');
  6073.             const arrow = accordion.querySelector('.menu-arrow-modern');
  6074.             
  6075.             if (trigger) {
  6076.                 trigger.addEventListener('click', function(e) {
  6077.                     e.preventDefault();
  6078.                     e.stopPropagation();
  6079.                     
  6080.                     const isActive = accordion.classList.contains('show');
  6081.                     
  6082.                     // Fermer tous les autres accordéons (optionnel)
  6083.                     // document.querySelectorAll('.menu-accordion-modern.show').forEach(acc => {
  6084.                     //     if (acc !== accordion) {
  6085.                     //         acc.classList.remove('show');
  6086.                     //     }
  6087.                     // });
  6088.                     
  6089.                     // Basculer l'état
  6090.                     accordion.classList.toggle('show', !isActive);
  6091.                     
  6092.                     // Animer la flèche
  6093.                     if (arrow) {
  6094.                         arrow.style.transform = !isActive ? 'rotate(90deg)' : 'rotate(0deg)';
  6095.                     }
  6096.                 });
  6097.             }
  6098.         });
  6099.     }
  6100.     // Prévenir la perte de position lors des clics
  6101.     function preventScrollReset() {
  6102.         const menuLinks = document.querySelectorAll('.menu-link-modern[href]:not([href^=\"#\"]):not([href^=\"http\"])');
  6103.         
  6104.         menuLinks.forEach(link => {
  6105.             link.addEventListener('click', function() {
  6106.                 // Sauvegarder la position actuelle avant navigation
  6107.                 if (CONFIG.saveScrollPosition) {
  6108.                     const scrollPos = getScrollPosition();
  6109.                     const currentState = loadMenuState() || {};
  6110.                     currentState.scrollPosition = scrollPos;
  6111.                     localStorage.setItem(CONFIG.localStorageKey, JSON.stringify(currentState));
  6112.                 }
  6113.                 
  6114.                 // Marquer ce lien comme actif immédiatement
  6115.                 document.querySelectorAll('.menu-link-modern.active, .menu-sub-link-modern.active').forEach(el => {
  6116.                     el.classList.remove('active');
  6117.                 });
  6118.                 this.classList.add('active');
  6119.                 
  6120.                 // Mettre à jour l'état de la section parente
  6121.                 const parentSection = this.closest('.menu-section-modern');
  6122.                 if (parentSection) {
  6123.                     const header = parentSection.querySelector('.menu-section-header-modern');
  6124.                     if (header && !parentSection.classList.contains('expanded')) {
  6125.                         parentSection.classList.add('expanded');
  6126.                         header.classList.add('active');
  6127.                         header.classList.add('has-active-child');
  6128.                     }
  6129.                 }
  6130.                 
  6131.                 // Sauvegarder l'état du menu
  6132.                 saveMenuState();
  6133.             });
  6134.         });
  6135.     }
  6136.     // Initialiser les effets de survol
  6137.     function initializeHoverEffects() {
  6138.         const menuItems = document.querySelectorAll('.menu-link-modern');
  6139.         
  6140.         menuItems.forEach(item => {
  6141.             item.addEventListener('mouseenter', function() {
  6142.                 if (!this.classList.contains('active')) {
  6143.                     this.style.transform = 'translateX(3px)';
  6144.                 }
  6145.             });
  6146.             
  6147.             item.addEventListener('mouseleave', function() {
  6148.                 this.style.transform = 'translateX(0)';
  6149.             });
  6150.         });
  6151.     }
  6152.     // ========== INITIALISATION ==========
  6153.     function initializeMenu() {
  6154.         initializeSections();
  6155.         initializeAccordions();
  6156.         preventScrollReset();
  6157.         initializeHoverEffects();
  6158.         
  6159.         // Sauvegarder l'état quand l'utilisateur quitte la page
  6160.         window.addEventListener('beforeunload', saveMenuState);
  6161.         
  6162.         // Sauvegarder périodiquement (au cas où)
  6163.         setInterval(saveMenuState, 30000); // Toutes les 30 secondes
  6164.     }
  6165.     // Démarrer l'initialisation
  6166.     initializeMenu();
  6167. });
  6168. </script>
  6169. <script>
  6170. // ========== GESTION DES MODALS ==========
  6171. document.addEventListener('DOMContentLoaded', function() {
  6172.     // Initialisation des gestionnaires de fichiers
  6173.     initFileUpload();
  6174. });
  6175. // MODAL TICKET
  6176. function openTicketModal() {
  6177.     document.getElementById('ticketModal').style.display = 'flex';
  6178.     document.body.style.overflow = 'hidden';
  6179. }
  6180. function closeTicketModal() {
  6181.     document.getElementById('ticketModal').style.display = 'none';
  6182.     document.body.style.overflow = '';
  6183.     
  6184.     // Réinitialiser le formulaire
  6185.     const form = document.getElementById('ticketForm');
  6186.     if (form) form.reset();
  6187.     document.getElementById('fileList').innerHTML = '';
  6188. }
  6189. // MODAL SUPPORT
  6190. function openSupportModal() {
  6191.     document.getElementById('supportModal').style.display = 'flex';
  6192.     document.body.style.overflow = 'hidden';
  6193. }
  6194. function closeSupportModal() {
  6195.     document.getElementById('supportModal').style.display = 'none';
  6196.     document.body.style.overflow = '';
  6197. }
  6198. // MODAL DÉMO
  6199. function openDemoScheduler() {
  6200.     document.getElementById('demoModal').style.display = 'flex';
  6201.     document.body.style.overflow = 'hidden';
  6202. }
  6203. function closeDemoModal() {
  6204.     document.getElementById('demoModal').style.display = 'none';
  6205.     document.body.style.overflow = '';
  6206. }
  6207. // Upload de fichiers
  6208. function initFileUpload() {
  6209.     const fileInput = document.getElementById('fileInput');
  6210.     if (!fileInput) return;
  6211.     
  6212.     fileInput.addEventListener('change', function(e) {
  6213.         const fileList = document.getElementById('fileList');
  6214.         fileList.innerHTML = '';
  6215.         
  6216.         Array.from(this.files).forEach((file, index) => {
  6217.             const fileItem = document.createElement('div');
  6218.             fileItem.className = 'file-item';
  6219.             fileItem.style.cssText = `
  6220.                 display: flex;
  6221.                 align-items: center;
  6222.                 justify-content: space-between;
  6223.                 padding: 8px 12px;
  6224.                 background: #f8fafc;
  6225.                 border-radius: 8px;
  6226.                 font-size: 0.85rem;
  6227.             `;
  6228.             
  6229.             fileItem.innerHTML = `
  6230.                 <div style=\"display: flex; align-items: center; gap: 8px;\">
  6231.                     <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#64748b\">
  6232.                         <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"/>
  6233.                         <polyline points=\"13 2 13 9 20 9\"/>
  6234.                     </svg>
  6235.                     <span style=\"color: #1e293b;\">\${file.name}</span>
  6236.                     <span style=\"color: #94a3b8; font-size: 0.75rem;\">(\${(file.size / 1024).toFixed(1)} KB)</span>
  6237.                 </div>
  6238.                 <button type=\"button\" onclick=\"this.parentElement.remove()\" style=\"background: none; border: none; color: #ef4444; cursor: pointer;\">
  6239.                     <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">
  6240.                         <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/>
  6241.                         <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/>
  6242.                     </svg>
  6243.                 </button>
  6244.             `;
  6245.             
  6246.             fileList.appendChild(fileItem);
  6247.         });
  6248.     });
  6249. }
  6250. // Fermeture avec touche Echap
  6251. document.addEventListener('keydown', function(e) {
  6252.     if (e.key === 'Escape') {
  6253.         closeTicketModal();
  6254.         closeSupportModal();
  6255.         closeDemoModal();
  6256.     }
  6257. });
  6258. // Empêcher la propagation des clics dans les modals
  6259. document.querySelectorAll('.modal-container').forEach(modal => {
  6260.     modal.addEventListener('click', function(e) {
  6261.         e.stopPropagation();
  6262.     });
  6263. });
  6264. </script>
  6265.         <div class=\"wrapper d-flex flex-column flex-row-fluid\" id=\"kt_wrapper\">
  6266.             <div id=\"kt_header\" style=\"\" class=\"header align-items-stretch\">
  6267.                 <div class=\"container d-flex align-items-stretch justify-content-between\">
  6268.                     <div class=\"d-flex align-items-center d-lg-none ms-n3 me-1\" title=\"Show aside menu\">
  6269.                         <div class=\"btn btn-icon btn-active-light-primary\" id=\"kt_aside_mobile_toggle\">
  6270.                             <span class=\"svg-icon svg-icon-2x mt-1\">
  6271.                                 <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"
  6272.                                     width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\">
  6273.                                     <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">
  6274.                                         <rect x=\"0\" y=\"0\" width=\"24\" height=\"24\" />
  6275.                                         <rect fill=\"#000000\" x=\"4\" y=\"5\" width=\"16\" height=\"3\" rx=\"1.5\" />
  6276.                                         <path
  6277.                                             d=\"M5.5,15 L18.5,15 C19.3284271,15 20,15.6715729 20,16.5 C20,17.3284271 19.3284271,18 18.5,18 L5.5,18 C4.67157288,18 4,17.3284271 4,16.5 C4,15.6715729 4.67157288,15 5.5,15 Z M5.5,10 L18.5,10 C19.3284271,10 20,10.6715729 20,11.5 C20,12.3284271 19.3284271,13 18.5,13 L5.5,13 C4.67157288,13 4,12.3284271 4,11.5 C4,10.6715729 4.67157288,10 5.5,10 Z\"
  6278.                                             fill=\"#000000\" opacity=\"0.3\" />
  6279.                                     </g>
  6280.                                 </svg>
  6281.                             </span>
  6282.                         </div>
  6283.                     </div>
  6284.                 </div>
  6285.             </div>", "Base/_sidebar_admin.html.twig", "/htdocs/templates/Base/_sidebar_admin.html.twig");
  6286.     }
  6287. }