{"id":20574,"date":"2026-04-15T22:06:35","date_gmt":"2026-04-15T20:06:35","guid":{"rendered":"https:\/\/penalex.ch\/compass-questionnaire\/"},"modified":"2026-04-15T23:35:14","modified_gmt":"2026-04-15T21:35:14","slug":"compass-questionnaire","status":"publish","type":"page","link":"https:\/\/penalex.ch\/en\/compass-questionnaire\/","title":{"rendered":"Compass Questionnaire"},"content":{"rendered":"<p><!-- COMPASS Risk Assessment \u2014 Vanilla JS WordPress-safe SPA -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Lato:ital,wght@0,300;0,400;0,700;0,900&amp;family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700&amp;display=swap\" rel=\"stylesheet\">\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script><\/p>\n<style>\n#compass-app-root *, #compass-app-root *::before, #compass-app-root *::after { box-sizing: border-box; margin: 0; padding: 0; }\n#compass-app-root { background: #070D18; min-height: 100vh; color: #E6EEF5; font-family: Lato, 'Segoe UI', sans-serif; font-size: 15px; line-height: 1.6; }\n#compass-app-root .cq-nav { display: flex; align-items: center; justify-content: space-between; padding: 0 28px; height: 64px; border-bottom: 1px solid rgba(111,183,200,0.10); background: rgba(7,13,24,0.9); position: sticky; top: 0; z-index: 200; flex-wrap: wrap; }\n#compass-app-root .cq-brand { font-family: 'Cormorant Garamond', serif; font-size: 22px; color: #D4E4EE; letter-spacing: .02em; }\n#compass-app-root .cq-brand b { color: #6FA8B8; font-weight: 600; }\n#compass-app-root .cq-brand span { color: #4E7080; font-size: 13px; font-family: Lato, sans-serif; margin-left: 6px; }\n#compass-app-root .cq-nav-items { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }\n#compass-app-root .cq-nav-btn { background: none; border: none; padding: 7px 14px; border-radius: 7px; font: 500 13px Lato, sans-serif; letter-spacing: .02em; cursor: pointer; color: #4E7080; white-space: nowrap; transition: background .18s, color .18s; }\n#compass-app-root .cq-nav-btn:hover { background: rgba(255,255,255,0.04); color: #9BBDCC; }\n#compass-app-root .cq-nav-btn.active { background: rgba(111,183,200,0.10); color: #D4E4EE; }\n#compass-app-root .cq-lang { background: none; border: 1px solid rgba(111,183,200,0.25); padding: 6px 12px; border-radius: 6px; color: #9BBDCC; font: 700 11px Lato, sans-serif; letter-spacing: 1.5px; cursor: pointer; }\n#compass-app-root .cq-lang:hover { background: rgba(111,183,200,0.08); color: #D4E4EE; }\n#compass-app-root .cq-wrap { max-width: 960px; margin: 0 auto; padding: 48px 24px; }\n#compass-app-root .cq-pill { display: inline-flex; align-items: center; gap: 8px; font: 800 11px Lato, sans-serif; letter-spacing: 2px; color: #6FA8B8; padding: 6px 14px; border: 1px solid rgba(111,183,200,0.22); border-radius: 999px; background: rgba(111,183,200,0.06); margin-bottom: 24px; }\n#compass-app-root .cq-pill::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #6FA8B8; box-shadow: 0 0 8px #6FA8B8; }\n#compass-app-root h1.cq-h1 { font-family: 'Cormorant Garamond', serif; font-size: 56px; font-weight: 500; color: #E6EEF5; line-height: 1.1; letter-spacing: -.01em; margin-bottom: 22px; white-space: pre-line; }\n#compass-app-root .cq-hero-sub { font-size: 17px; line-height: 1.8; color: #9BB0BE; max-width: 620px; margin: 0 auto 36px; }\n#compass-app-root .cq-ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 64px; }\n#compass-app-root .cq-btn-primary { font: 600 14px Lato, sans-serif; letter-spacing: .04em; padding: 14px 26px; background: linear-gradient(135deg, #3FA8AE 0%, #2E8F95 100%); color: #fff; border: none; border-radius: 8px; cursor: pointer; box-shadow: 0 4px 18px rgba(63,168,174,0.3); transition: transform .15s, box-shadow .15s; }\n#compass-app-root .cq-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(63,168,174,0.4); }\n#compass-app-root .cq-btn-outline { font: 600 14px Lato, sans-serif; letter-spacing: .04em; padding: 14px 24px; background: transparent; color: #9BBDCC; border: 1px solid rgba(111,183,200,0.3); border-radius: 8px; cursor: pointer; transition: background .15s; }\n#compass-app-root .cq-btn-outline:hover { background: rgba(111,183,200,0.08); color: #D4E4EE; }\n#compass-app-root .cq-btn-warm { font: 700 14px Lato, sans-serif; letter-spacing: .03em; padding: 14px 26px; background: linear-gradient(135deg, #E8A24A 0%, #D08B2E 100%); color: #1A1003; border: none; border-radius: 8px; cursor: pointer; box-shadow: 0 4px 18px rgba(232,162,74,0.35); transition: transform .15s, box-shadow .15s; }\n#compass-app-root .cq-btn-warm:hover { transform: translateY(-1px); box-shadow: 0 8px 26px rgba(232,162,74,0.5); }\n#compass-app-root .cq-stats { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid rgba(114,189,206,0.12); border-radius: 16px; overflow: hidden; background: linear-gradient(135deg, rgba(14,26,40,0.9), rgba(10,20,32,0.9)); }\n#compass-app-root .cq-stat { padding: 28px 18px; border-right: 1px solid rgba(114,189,206,0.1); text-align: center; }\n#compass-app-root .cq-stat:last-child { border-right: none; }\n#compass-app-root .cq-stat-val { font-family: 'Cormorant Garamond', serif; font-size: 28px; font-weight: 700; color: #3FA8AE; margin-bottom: 6px; }\n#compass-app-root .cq-stat-desc { font-size: 12px; color: #6C8090; line-height: 1.5; letter-spacing: .3px; }\n#compass-app-root .cq-section { margin-top: 56px; }\n#compass-app-root .cq-section-rule { height: 1px; background: linear-gradient(90deg, transparent, rgba(111,183,200,0.2), transparent); margin-bottom: 28px; }\n#compass-app-root .cq-section-title { font-size: 11px; font-weight: 700; color: #6C8090; text-transform: uppercase; letter-spacing: 4px; text-align: center; margin-bottom: 24px; }\n#compass-app-root .cq-cards-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }\n#compass-app-root .cq-cards-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n#compass-app-root .cq-card { padding: 24px 22px; border-radius: 12px; border: 1px solid rgba(114,189,206,0.12); background: linear-gradient(160deg, rgba(14,26,40,0.95), rgba(10,20,32,0.9)); text-align: left; transition: transform .2s, border-color .2s; }\n#compass-app-root .cq-card:hover { transform: translateY(-2px); border-color: rgba(114,189,206,0.25); }\n#compass-app-root .cq-card-top { border-top: 2px solid rgba(114,189,206,0.35); }\n#compass-app-root .cq-card-left { border-left: 2px solid rgba(114,189,206,0.2); padding: 22px 24px; }\n#compass-app-root .cq-card-num { font-family: 'Cormorant Garamond', serif; font-size: 36px; font-weight: 300; color: #3FA8AE; opacity: .6; margin-bottom: 10px; line-height: 1; }\n#compass-app-root .cq-card-title { font-size: 15px; font-weight: 700; margin-bottom: 8px; color: #E6EEF5; }\n#compass-app-root .cq-card-desc { font-size: 13px; color: #9BB0BE; line-height: 1.65; }\n#compass-app-root .cq-assess-box { max-width: 680px; margin: 0 auto; padding: 32px; background: rgba(14,26,40,0.6); border: 1px solid rgba(111,183,200,0.15); border-radius: 16px; }\n#compass-app-root .cq-label { display: block; font: 700 11px Lato, sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #6FA8B8; margin-bottom: 10px; }\n#compass-app-root .cq-input { width: 100%; padding: 12px 14px; background: rgba(7,13,24,0.7); border: 1px solid rgba(111,183,200,0.2); border-radius: 8px; color: #E6EEF5; font: 400 15px Lato, sans-serif; outline: none; transition: border-color .15s; }\n#compass-app-root .cq-input:focus { border-color: #3FA8AE; }\n#compass-app-root .cq-field { margin-bottom: 22px; }\n#compass-app-root .cq-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n#compass-app-root .cq-pill-btn { padding: 9px 16px; background: rgba(7,13,24,0.6); border: 1px solid rgba(111,183,200,0.2); border-radius: 999px; color: #9BB0BE; font: 500 13px Lato, sans-serif; cursor: pointer; transition: all .15s; }\n#compass-app-root .cq-pill-btn:hover { border-color: rgba(111,183,200,0.4); color: #D4E4EE; }\n#compass-app-root .cq-pill-btn.selected { background: rgba(63,168,174,0.15); border-color: #3FA8AE; color: #D4E4EE; }\n#compass-app-root .cq-lock { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; color: #6C8090; margin-top: 18px; line-height: 1.5; }\n#compass-app-root .cq-qbox { max-width: 680px; margin: 0 auto; text-align: center; }\n#compass-app-root .cq-cat-badge { display: inline-block; font: 700 11px Lato, sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #6FA8B8; padding: 6px 14px; border: 1px solid rgba(111,183,200,0.22); border-radius: 999px; margin-bottom: 16px; }\n#compass-app-root .cq-dots { display: inline-flex; gap: 4px; margin-bottom: 20px; }\n#compass-app-root .cq-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(111,183,200,0.2); }\n#compass-app-root .cq-dot.on { background: #3FA8AE; box-shadow: 0 0 6px #3FA8AE; }\n#compass-app-root .cq-q { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 500; color: #E6EEF5; line-height: 1.35; margin-bottom: 32px; max-width: 620px; margin-left: auto; margin-right: auto; }\n#compass-app-root .cq-progress { height: 3px; background: rgba(111,183,200,0.12); border-radius: 2px; overflow: hidden; margin-bottom: 28px; }\n#compass-app-root .cq-progress-bar { height: 100%; background: linear-gradient(90deg, #3FA8AE, #6EC6CC); transition: width .35s ease; }\n#compass-app-root .cq-progress-label { font-size: 12px; color: #6C8090; letter-spacing: 1px; margin-bottom: 10px; text-align: left; }\n#compass-app-root .cq-answers { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 20px; }\n#compass-app-root .cq-ans-btn { padding: 16px 36px; min-width: 140px; background: rgba(14,26,40,0.6); border: 1px solid rgba(111,183,200,0.25); border-radius: 10px; color: #D4E4EE; font: 600 16px Lato, sans-serif; cursor: pointer; transition: all .15s; }\n#compass-app-root .cq-ans-btn:hover { background: rgba(63,168,174,0.1); border-color: #3FA8AE; transform: translateY(-1px); }\n#compass-app-root .cq-ans-btn kbd { display: inline-block; margin-left: 8px; padding: 1px 6px; font: 600 11px Lato, sans-serif; background: rgba(111,183,200,0.15); border-radius: 3px; color: #6FA8B8; }\n#compass-app-root .cq-edit-link { display: inline-block; margin-top: 14px; background: none; border: none; color: #6C8090; font: 500 13px Lato, sans-serif; cursor: pointer; }\n#compass-app-root .cq-edit-link:hover { color: #9BBDCC; }\n#compass-app-root .cq-hint { font-size: 11px; color: #4E7080; letter-spacing: 1px; margin-top: 14px; }\n#compass-app-root .cq-results-wrap { max-width: 860px; margin: 0 auto; }\n#compass-app-root .cq-gauge-box { text-align: center; padding: 28px; background: linear-gradient(160deg, rgba(14,26,40,0.95), rgba(10,20,32,0.9)); border: 1px solid rgba(114,189,206,0.15); border-radius: 16px; margin-bottom: 24px; }\n#compass-app-root .cq-score-val { font-family: 'Cormorant Garamond', serif; font-size: 64px; font-weight: 600; color: #3FA8AE; line-height: 1; margin: 14px 0 6px; }\n#compass-app-root .cq-level { font: 700 13px Lato, sans-serif; letter-spacing: 2px; text-transform: uppercase; padding: 6px 14px; border-radius: 999px; display: inline-block; margin-top: 8px; }\n#compass-app-root .cq-catlist { display: grid; gap: 12px; margin-top: 20px; }\n#compass-app-root .cq-cat-row { padding: 18px 22px; border: 1px solid rgba(114,189,206,0.12); border-radius: 12px; background: rgba(14,26,40,0.6); }\n#compass-app-root .cq-cat-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; flex-wrap: wrap; gap: 8px; }\n#compass-app-root .cq-cat-name { font: 700 13px Lato, sans-serif; color: #D4E4EE; letter-spacing: .5px; }\n#compass-app-root .cq-cat-score { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 600; }\n#compass-app-root .cq-cat-bar { height: 4px; background: rgba(111,183,200,0.1); border-radius: 2px; overflow: hidden; margin-bottom: 8px; }\n#compass-app-root .cq-cat-fill { height: 100%; border-radius: 2px; }\n#compass-app-root .cq-cat-rec { font-size: 12px; color: #9BB0BE; line-height: 1.6; }\n#compass-app-root .cq-disclaimer { font-size: 12px; color: #6C8090; line-height: 1.65; padding: 16px; border: 1px dashed rgba(111,183,200,0.18); border-radius: 10px; margin: 22px 0; }\n#compass-app-root .cq-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 22px; }\n#compass-app-root .cq-table { width: 100%; border-collapse: collapse; margin-top: 18px; }\n#compass-app-root .cq-table th { text-align: left; padding: 10px 12px; font: 700 11px Lato, sans-serif; letter-spacing: 1.5px; text-transform: uppercase; color: #6FA8B8; border-bottom: 1px solid rgba(111,183,200,0.15); }\n#compass-app-root .cq-table td { padding: 12px; color: #D4E4EE; font-size: 14px; border-bottom: 1px solid rgba(111,183,200,0.08); }\n#compass-app-root .cq-table tr:hover td { background: rgba(63,168,174,0.05); }\n#compass-app-root .cq-link-btn { background: none; border: none; color: #6FA8B8; font: 500 13px Lato, sans-serif; cursor: pointer; padding: 4px 8px; border-radius: 4px; }\n#compass-app-root .cq-link-btn:hover { background: rgba(111,183,200,0.08); color: #D4E4EE; }\n#compass-app-root .cq-link-btn.danger { color: #E84040; }\n#compass-app-root .cq-empty { text-align: center; padding: 48px 20px; color: #6C8090; }\n#compass-app-root .cq-radar-wrap { display: flex; justify-content: center; padding: 22px 0; }\n#compass-app-root .cq-dash-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }\n#compass-app-root .cq-dash-card { padding: 20px; background: linear-gradient(160deg, rgba(14,26,40,0.95), rgba(10,20,32,0.9)); border: 1px solid rgba(114,189,206,0.12); border-radius: 12px; }\n#compass-app-root .cq-dash-label { font: 700 11px Lato, sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #6C8090; margin-bottom: 8px; }\n#compass-app-root .cq-dash-val { font-family: 'Cormorant Garamond', serif; font-size: 32px; font-weight: 600; color: #3FA8AE; }\n#compass-app-root .cq-fade { animation: cqFade .4s ease both; }\n@keyframes cqFade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\n@media (max-width: 680px) {\n#compass-app-root h1.cq-h1 { font-size: 38px; }\n#compass-app-root .cq-cards-3, #compass-app-root .cq-cards-2, #compass-app-root .cq-stats { grid-template-columns: 1fr; }\n#compass-app-root .cq-stat { border-right: none; border-bottom: 1px solid rgba(114,189,206,0.1); }\n#compass-app-root .cq-q { font-size: 22px; }\n#compass-app-root .cq-score-val { font-size: 52px; }\n}\n<\/style>\n<div id=\"compass-app-root\"><\/div>\n<p><script>\n(function(){\nvar root=document.getElementById('compass-app-root');\nvar LS_KEY='compass:assessments';\nvar state={page:'home',lang:'fr',qStep:-1,company:'',sector:'',size:'',answers:[],viewing:null};\nvar T={\nfr:{brand:'compass',tagline:'Orientation strat\u00e9gique face aux risques p\u00e9naux',nav:{home:'Accueil',assess:'\u00c9valuation',dashboard:'Tableau de bord',history:'Historique'},langSwitch:'EN',heroTitle:\"Identifiez vos risques p\u00e9naux\\navant qu'il ne soit trop tard\",heroSub:\"Fond\u00e9 sur la pratique du contentieux p\u00e9nal et de la criminalit\u00e9 \u00e9conomique, cet outil permet aux dirigeants et entreprises d'anticiper, cartographier et neutraliser leurs expositions p\u00e9nales.\",startBtn:'\u00c9valuer mon exposition',dashboardBtn:'Tableau de bord',pillBadge:'PENALEX \u2014 COMPASS',phasesTitle:'Un service structur\u00e9 en trois phases',situationsTitle:'Situations \u00e0 risque',stats:[{v:'CHF 467M',d:\"Dommages annuels moyens (CH)\"},{v:'CHF 7.6M',d:'Par cas en moyenne'},{v:'Art. 102 CP',d:\"Responsabilit\u00e9 de l'entreprise\"}],phases:[{n:'01',t:'Diagnostic et cartographie',d:\"Analyse compl\u00e8te de votre organisation pour identifier les zones d'exposition p\u00e9nale : secteur d'activit\u00e9, bases l\u00e9gales, entretiens avec la direction.\"},{n:'02',t:\"Rapport et plan d'action\",d:\"Synth\u00e8se des risques identifi\u00e9s, recommandations concr\u00e8tes int\u00e9grables \u00e0 vos processus, valeur probante (art. 102 al. 2 CP).\"},{n:'03',t:'Suivi et v\u00e9rification',d:\"Impl\u00e9mentation des recommandations, suivi de la mise en \u0153uvre, v\u00e9rification p\u00e9riodique de l'\u00e9volution de votre exposition p\u00e9nale.\"}],situations:[{t:'Enqu\u00eate visant les dirigeants',d:\"Certaines d\u00e9cisions de gestion peuvent engager la responsabilit\u00e9 p\u00e9nale personnelle des cadres et dirigeants.\"},{t:'Fraude ou abus interne',d:\"D\u00e9tournements d'actifs, fraude comptable ou gestion d\u00e9loyale \u2014 souvent invisibles jusqu'\u00e0 ce que le dommage soit consid\u00e9rable.\"},{t:\"D\u00e9faillance d'organisation\",d:\"L'absence de contr\u00f4les suffisants peut engager la responsabilit\u00e9 de l'entreprise (art. 102 CP).\"},{t:'Gestion du personnel',d:'Harc\u00e8lement, licenciements abusifs, non-paiement de charges sociales exposent les dirigeants \u00e0 des poursuites.'}],assess:{title:'Auto-\u00e9valuation rapide',subtitle:\"R\u00e9pondez \u00e0 ces 14 questions pour obtenir une premi\u00e8re estimation de votre niveau d'exposition aux risques p\u00e9naux.\",companyName:\"Nom de l'entreprise\",companyPlaceholder:'Ex: Penalex SA',sector:\"Secteur d'activit\u00e9\",sectors:['Finance & Banque','Construction','Sant\u00e9 & Pharma','Technologie','Commerce & Distribution','Industrie','Transport & Logistique','\u00c9nergie & Environnement','Secteur public','Immobilier','Services juridiques','Autre'],size:\"Taille de l'entreprise (EPT)\",sizes:['< 10','10 \u2013 249','250 \u2013 4 999','5 000+'],next:'Suivant',back:'\u2190 Modifier mes informations',lock:'Vos r\u00e9ponses restent confidentielles et ne sont pas transmises \u00e0 Penalex.',keyHint:'Raccourcis : O = Oui \u00b7 N = Non',questions:[\"Disposez-vous de proc\u00e9dures formalis\u00e9es et effectivement appliqu\u00e9es (code de conduite, formations, contr\u00f4les) ?\",\"Avez-vous identifi\u00e9 de mani\u00e8re exhaustive les processus pouvant engendrer des risques p\u00e9naux ?\",\"Disposez-vous de suffisamment de contr\u00f4les en place afin de minimiser les risques p\u00e9naux d\u00e9tect\u00e9s ?\",\"Avez-vous r\u00e9alis\u00e9 un audit de vos risques juridiques au cours des trois derni\u00e8res ann\u00e9es ?\",\"Vos collaborateurs ont-ils re\u00e7u des formations internes sur les risques de fraudes ?\",\"Existe-t-il un canal de signalement interne (whistleblowing) permettant de rapporter des comportements suspects de mani\u00e8re confidentielle ?\",\"Les responsabilit\u00e9s et processus de d\u00e9cision sont-ils clairement d\u00e9finis et document\u00e9s ?\",\"Votre entreprise dispose-t-elle de proc\u00e9dures claires pour pr\u00e9venir les infractions li\u00e9es \u00e0 la gestion et activit\u00e9s des employ\u00e9s (permis de travail, s\u00e9curit\u00e9 au travail, respect des obligations l\u00e9gales) ?\",\"Existe-t-il des r\u00e8gles claires concernant l'utilisation des cartes de cr\u00e9dit, frais et ressources de l'entreprise par les dirigeants et cadres ?\",\"Effectuez-vous une v\u00e9rification pr\u00e9alable (due diligence) de vos partenaires commerciaux, agents et sous-traitants avant de les engager ?\",\"Si votre entreprise devait rencontrer des difficult\u00e9s financi\u00e8res, savez-vous quelles d\u00e9cisions pourraient engager votre responsabilit\u00e9 p\u00e9nale (paiement pr\u00e9f\u00e9rentiel, gestion fautive, etc.) ?\",\"Les d\u00e9cisions importantes (contrats, paiements, investissements) sont-elles document\u00e9es de mani\u00e8re \u00e0 d\u00e9montrer la diligence du dirigeant en cas d'enqu\u00eate p\u00e9nale ?\",\"Avez-vous des d\u00e9l\u00e9gations de pouvoir formellement document\u00e9es pour les d\u00e9cisions importantes ?\",\"Disposez-vous d'un plan de r\u00e9action en cas de perquisition, saisie ou ouverture d'une enqu\u00eate p\u00e9nale visant votre entreprise ?\"],yes:'Oui',no:'Non',step:'Question',on:'sur',categories:[{name:'Conformit\u00e9 &#038; Proc\u00e9dures',qs:[0,1,2]},{name:'Audit &#038; Formation',qs:[3,4,5,6]},{name:'Gestion du personnel &#038; Tiers',qs:[7,8,9]},{name:'Responsabilit\u00e9 des dirigeants',qs:[10,11,12]},{name:'Gestion de crise',qs:[13]}]},results:{title:'Votre diagnostic',overall:'Niveau de protection actuel',breakdown:'D\u00e9tail par domaine de risque',disclaimer:\"Ce test rapide ne se substitue pas \u00e0 l'analyse professionnelle. Quelle que soit votre r\u00e9ponse, nos avocats sont disponibles pour un entretien pr\u00e9liminaire confidentiel sans engagement.\",levels:{excellent:'Protection solide',good:'Protection satisfaisante',moderate:'Protection insuffisante',weak:'Exposition \u00e9lev\u00e9e',critical:'Exposition critique'},pdf:'T\u00e9l\u00e9charger le rapport PDF',contact:'Nous contacter',edit:'Modifier mes r\u00e9ponses',again:'Nouvelle \u00e9valuation',home:'Retour accueil',diagnostic:'Demander un diagnostic Compass',catRecs:[{low:\"Vos proc\u00e9dures de conformit\u00e9 sont inexistantes ou insuffisantes. C'est le premier axe que les autorit\u00e9s examinent lors d'une enqu\u00eate (art. 102 CP).\",high:'Vos proc\u00e9dures de conformit\u00e9 sont bien \u00e9tablies. Veillez \u00e0 les maintenir \u00e0 jour.'},{low:\"L'absence d'audit r\u00e9cent et de formation expose votre entreprise. Les collaborateurs non form\u00e9s et l'absence de canal de signalement constituent des facteurs de risque majeurs.\",high:\"Vos pratiques d'audit, de formation et de signalement interne sont en place.\"},{low:\"Les infractions li\u00e9es aux relations de travail et aux partenaires externes exposent r\u00e9guli\u00e8rement les dirigeants \u00e0 des poursuites. Formalisez vos proc\u00e9dures RH et votre due diligence tiers.\",high:'La gestion du personnel et des tiers est bien encadr\u00e9e.'},{low:'Les d\u00e9cisions de gestion non document\u00e9es et les d\u00e9l\u00e9gations floues sont les premi\u00e8res causes de mise en cause p\u00e9nale des dirigeants.',high:'La documentation des d\u00e9cisions et les d\u00e9l\u00e9gations sont bien g\u00e9r\u00e9es.'},{low:\"L'absence de plan de r\u00e9action en cas d'enqu\u00eate p\u00e9nale peut aggraver consid\u00e9rablement votre situation. Les premi\u00e8res heures sont d\u00e9terminantes.\",high:'Vous disposez d\\u2019un plan de gestion de crise p\u00e9nale.'}]},dashboard:{title:'Tableau de bord',total:'\u00c9valuations',avg:'Score moyen',last:'Derni\u00e8re',viewHistory:\"Voir l'historique\",noData:'Aucune \u00e9valuation enregistr\u00e9e pour le moment.',startFirst:'Commencer ma premi\u00e8re \u00e9valuation'},history:{title:'Historique',company:'Entreprise',date:'Date',score:'Score',level:'Niveau',actions:'Actions',view:'Voir',del:'Supprimer',empty:\"Aucune \u00e9valuation dans l'historique.\",clear:'Tout effacer',confirm:'Supprimer toutes les \u00e9valuations ?'}},\nen:{brand:'compass',tagline:'Strategic guidance against criminal risks',nav:{home:'Home',assess:'Assessment',dashboard:'Dashboard',history:'History'},langSwitch:'FR',heroTitle:\"Identify your criminal risks\\nbefore it's too late\",heroSub:\"Built on criminal litigation and white-collar crime expertise, this tool helps executives and companies anticipate, map, and neutralize their criminal exposure.\",startBtn:'Assess my exposure',dashboardBtn:'Dashboard',pillBadge:'PENALEX \u2014 COMPASS',phasesTitle:'A structured three-phase service',situationsTitle:'Risk Situations',stats:[{v:'CHF 467M',d:'Average annual damages (CH)'},{v:'CHF 7.6M',d:'Per case on average'},{v:'Art. 102 CP',d:'Corporate liability'}],phases:[{n:'01',t:'Diagnostic and mapping',d:'Complete analysis of your organization to identify areas of criminal exposure: industry sector, legal bases, interviews with management.'},{n:'02',t:'Report and action plan',d:'Synthesis of identified risks, concrete recommendations, evidentiary value (art. 102 para. 2 CP).'},{n:'03',t:'Follow-up and verification',d:'Implementation of recommendations, monitoring, periodic verification of the evolution of your criminal exposure.'}],situations:[{t:'Investigation targeting executives',d:'Certain management decisions may engage the personal criminal liability of executives.'},{t:'Internal fraud or abuse',d:'Asset misappropriation, accounting fraud or disloyal management \u2014 often invisible until significant damage.'},{t:'Organizational failure',d:'Insufficient controls can engage the corporate criminal liability (art. 102 CP).'},{t:'Personnel management',d:'Harassment, wrongful dismissals, unpaid social contributions expose executives to prosecution.'}],assess:{title:'Quick Self-Assessment',subtitle:'Answer these 14 questions for a first estimate of your criminal risk exposure.',companyName:'Company Name',companyPlaceholder:'E.g.: Penalex SA',sector:'Industry Sector',sectors:['Finance &#038; Banking','Construction','Health &#038; Pharma','Technology','Retail &#038; Distribution','Industry','Transport &#038; Logistics','Energy &#038; Environment','Public sector','Real Estate','Legal Services','Other'],size:'Company Size (FTE)',sizes:['< 10','10 \u2013 249','250 \u2013 4 999','5 000+'],next:'Next',back:'\u2190 Edit my information',lock:'Your answers remain confidential and are not sent to Penalex.',keyHint:'Shortcuts: Y = Yes \u00b7 N = No',questions:[\"Do you have formalized and effectively applied procedures (code of conduct, training, controls)?\",\"Have you comprehensively identified processes that could generate criminal risks?\",\"Do you have sufficient controls in place to minimize detected criminal risks?\",\"Have you conducted an audit of your legal risks in the last three years?\",\"Have your employees received internal training on fraud risks?\",\"Is there an internal whistleblowing channel allowing confidential reporting of suspicious behavior?\",\"Are responsibilities and decision-making processes clearly defined and documented?\",\"Does your company have clear procedures to prevent offenses related to employee management (work permits, occupational safety, legal obligations)?\",\"Are there clear rules regarding the use of credit cards, expenses, and company resources by executives?\",\"Do you conduct due diligence on your business partners, agents, and subcontractors before engaging them?\",\"If your company faced financial difficulties, do you know which decisions could engage your criminal liability (preferential payments, mismanagement, etc.)?\",\"Are important decisions (contracts, payments, investments) documented to demonstrate due diligence in case of criminal investigation?\",\"Do you have formally documented delegations of authority for important decisions?\",\"Do you have a response plan in case of a search, seizure, or criminal investigation targeting your company?\"],yes:'Yes',no:'No',step:'Question',on:'of',categories:[{name:'Compliance &#038; Procedures',qs:[0,1,2]},{name:'Audit &#038; Training',qs:[3,4,5,6]},{name:'Personnel &#038; Third Parties',qs:[7,8,9]},{name:'Executive Liability',qs:[10,11,12]},{name:'Crisis Management',qs:[13]}]},results:{title:'Your Diagnosis',overall:'Current Protection Level',breakdown:'Breakdown by Risk Area',disclaimer:'This quick test does not replace professional analysis. Whatever your results, our lawyers are available for a confidential preliminary consultation.',levels:{excellent:'Strong Protection',good:'Satisfactory Protection',moderate:'Insufficient Protection',weak:'High Exposure',critical:'Critical Exposure'},pdf:'Download PDF Report',contact:'Contact us',edit:'Edit my answers',again:'New Assessment',home:'Back to Home',diagnostic:'Request a Compass diagnosis',catRecs:[{low:'Compliance procedures are non-existent or insufficient. This is the first area authorities examine.',high:'Compliance procedures are well established.'},{low:'Lack of recent audits, training and whistleblowing channels exposes your company significantly.',high:'Audit, training and internal reporting practices are in place.'},{low:'Labor-related offenses and third-party risks regularly expose executives to prosecution. Formalize HR and due diligence procedures.',high:'Personnel and third-party management is well governed.'},{low:'Undocumented decisions and unclear delegations are leading causes of executive criminal liability.',high:'Decision documentation and delegations are well managed.'},{low:'The absence of a crisis response plan can severely worsen your situation. The first hours are critical.',high:'You have a criminal crisis management plan.'}]},dashboard:{title:'Dashboard',total:'Assessments',avg:'Average Score',last:'Last',viewHistory:'View history',noData:'No assessments recorded yet.',startFirst:'Start my first assessment'},history:{title:'History',company:'Company',date:'Date',score:'Score',level:'Level',actions:'Actions',view:'View',del:'Delete',empty:'No assessments in history.',clear:'Clear all',confirm:'Delete all assessments?'}}\n};\nvar Q_WEIGHTS=[3,2,3,2,2,3,3,2,2,3,3,3,2,3];\nvar SIZE_MULT=[{p:0.85},{p:1.0},{p:1.15},{p:1.3}];\nvar SECTOR_RISK={'Finance &#038; Banque':1.25,'Finance &#038; Banking':1.25,'Construction':1.2,'Sant\u00e9 &#038; Pharma':1.1,'Health &#038; Pharma':1.1,'Technologie':1.05,'Technology':1.05,'Commerce &#038; Distribution':1.0,'Retail &#038; Distribution':1.0,'Industrie':1.1,'Industry':1.1,'Transport &#038; Logistique':1.05,'Transport &#038; Logistics':1.05,'\u00c9nergie &#038; Environnement':1.1,'Energy &#038; Environment':1.1,'Secteur public':1.15,'Public sector':1.15,'Immobilier':1.2,'Real Estate':1.2,'Services juridiques':1.15,'Legal Services':1.15,'Autre':1.0,'Other':1.0};\nvar SIZES=['< 10','10 \u2013 249','250 \u2013 4 999','5 000+'];\nfunction sizeIdx(s){var i=SIZES.indexOf(s);return i>=0?i:1;}\nfunction scoreQ(a,w,p){var q=a===0?1:0;var adj=Math.max(0,1-(1-q)*p);return adj*w;}\nfunction computeScore(ans,sz,sc){var si=sizeIdx(sz);var mult=SIZE_MULT[si];var sm=SECTOR_RISK[sc]?SECTOR_RISK[sc]:1.0;var tot=0,max=0;for(var i=0;i<ans.length;i++){tot+=scoreQ(ans[i],Q_WEIGHTS[i],mult.p);max+=Q_WEIGHTS[i];}var raw=tot\/max*100;var adj=1-(sm-1)*0.5;return Math.max(0,Math.min(100,Math.round(raw*adj)));}\nfunction computeCatScores(ans,cats,sz){var si=sizeIdx(sz);var mult=SIZE_MULT[si];return cats.map(function(c){var tot=0,max=0;c.qs.forEach(function(qi){tot+=scoreQ(ans[qi],Q_WEIGHTS[qi],mult.p);max+=Q_WEIGHTS[qi];});return{name:c.name,score:Math.round(tot\/max*100),qs:c.qs};});}\nfunction getLevel(s){if(s>=85)return'excellent';if(s>=65)return'good';if(s>=45)return'moderate';if(s>=25)return'weak';return'critical';}\nvar LEVEL_COLORS={excellent:'#3FA8AE',good:'#5CB87A',moderate:'#E8A24A',weak:'#E87A3F',critical:'#E84040'};\nfunction levelColor(l){var c=LEVEL_COLORS[l];return c?c:'#3FA8AE';}\nfunction loadAll(){try{var s=localStorage.getItem(LS_KEY);return s?JSON.parse(s):[];}catch(e){return[];}}\nfunction saveAll(arr){try{localStorage.setItem(LS_KEY,JSON.stringify(arr));}catch(e){}}\nfunction saveCurrent(){var lang=state.lang;var t=T[lang];var cats=t.assess.categories;var score=computeScore(state.answers,state.size,state.sector);var entry={id:Date.now(),date:new Date().toISOString(),company:state.company,sector:state.sector,size:state.size,answers:state.answers.slice(),score:score,level:getLevel(score),lang:lang};var arr=loadAll();arr.unshift(entry);if(arr.length>50)arr.length=50;saveAll(arr);return entry;}\nfunction h(tag,attrs,children){var el=document.createElement(tag);if(attrs){for(var k in attrs){if(!Object.prototype.hasOwnProperty.call(attrs,k))continue;var v=attrs[k];if(v==null)continue;if(k==='class')el.className=v;else if(k==='html')el.innerHTML=v;else if(k.indexOf('on')===0?typeof v==='function':false)el.addEventListener(k.slice(2).toLowerCase(),v);else if(k==='style'?typeof v==='object':false){for(var sk in v){if(Object.prototype.hasOwnProperty.call(v,sk))el.style[sk]=v[sk];}}else el.setAttribute(k,v);}}if(children!=null){var arr=Array.isArray(children)?children:[children];for(var i=0;i<arr.length;i++){var c=arr[i];if(c==null)continue;if(c===false)continue;if(typeof c==='string'?true:(typeof c==='number'))el.appendChild(document.createTextNode(c));else el.appendChild(c);}}return el;}\nfunction setPage(p){state.page=p;render();window.scrollTo({top:0,behavior:'smooth'});}\nfunction reset(){state.qStep=-1;state.company='';state.sector='';state.size='';state.answers=[];state.viewing=null;}\nfunction renderNav(){var t=T[state.lang];var nav=h('div',{class:'cq-nav'});var brand=h('div',{class:'cq-brand'});brand.innerHTML='('+'<b>'+t.brand+'<\/b>'+') <span>by penalex<\/span>';nav.appendChild(brand);var items=h('div',{class:'cq-nav-items'});['home','assess','dashboard','history'].forEach(function(k){var isActive=state.page===k;items.appendChild(h('button',{class:'cq-nav-btn'+(isActive?' active':''),onclick:function(){if(k==='assess')reset();setPage(k);}},t.nav[k]));});items.appendChild(h('button',{class:'cq-lang',onclick:function(){state.lang=state.lang==='fr'?'en':'fr';render();}},t.langSwitch));nav.appendChild(items);return nav;}\nfunction renderHome(){var t=T[state.lang];var wrap=h('div',{class:'cq-wrap cq-fade',style:{textAlign:'center'}});wrap.appendChild(h('div',{class:'cq-pill'},t.pillBadge));wrap.appendChild(h('h1',{class:'cq-h1'},t.heroTitle));wrap.appendChild(h('p',{class:'cq-hero-sub'},t.heroSub));var ctas=h('div',{class:'cq-ctas'});ctas.appendChild(h('button',{class:'cq-btn-primary',onclick:function(){reset();setPage('assess');}},t.startBtn+' \u2192'));ctas.appendChild(h('button',{class:'cq-btn-outline',onclick:function(){setPage('dashboard');}},t.dashboardBtn));wrap.appendChild(ctas);var stats=h('div',{class:'cq-stats'});t.stats.forEach(function(s){stats.appendChild(h('div',{class:'cq-stat'},[h('div',{class:'cq-stat-val'},s.v),h('div',{class:'cq-stat-desc'},s.d)]));});wrap.appendChild(stats);var sec1=h('div',{class:'cq-section'});sec1.appendChild(h('div',{class:'cq-section-rule'}));sec1.appendChild(h('h3',{class:'cq-section-title'},t.phasesTitle));var c3=h('div',{class:'cq-cards-3'});t.phases.forEach(function(p){c3.appendChild(h('div',{class:'cq-card cq-card-top'},[h('div',{class:'cq-card-num'},p.n),h('div',{class:'cq-card-title'},p.t),h('div',{class:'cq-card-desc'},p.d)]));});sec1.appendChild(c3);wrap.appendChild(sec1);var sec2=h('div',{class:'cq-section'});sec2.appendChild(h('div',{class:'cq-section-rule'}));sec2.appendChild(h('h3',{class:'cq-section-title'},t.situationsTitle));var c2=h('div',{class:'cq-cards-2'});t.situations.forEach(function(s){c2.appendChild(h('div',{class:'cq-card cq-card-left'},[h('div',{class:'cq-card-title'},s.t),h('div',{class:'cq-card-desc'},s.d)]));});sec2.appendChild(c2);wrap.appendChild(sec2);return wrap;}\nfunction renderAssessIntro(){var t=T[state.lang];var wrap=h('div',{class:'cq-wrap cq-fade'});var box=h('div',{class:'cq-assess-box'});box.appendChild(h('h2',{style:{fontFamily:\"'Cormorant Garamond',serif\",fontSize:'30px',fontWeight:'500',color:'#E6EEF5',marginBottom:'10px'}},t.assess.title));box.appendChild(h('p',{style:{fontSize:'14px',color:'#9BB0BE',marginBottom:'28px',lineHeight:'1.65'}},t.assess.subtitle));var f1=h('div',{class:'cq-field'});f1.appendChild(h('label',{class:'cq-label'},t.assess.companyName));var inp=h('input',{class:'cq-input',type:'text',placeholder:t.assess.companyPlaceholder,value:state.company,oninput:function(e){state.company=e.target.value;updateNextBtn();}});f1.appendChild(inp);box.appendChild(f1);var f2=h('div',{class:'cq-field'});f2.appendChild(h('label',{class:'cq-label'},t.assess.sector));var pills=h('div',{class:'cq-pills'});t.assess.sectors.forEach(function(s){pills.appendChild(h('button',{class:'cq-pill-btn'+(state.sector===s?' selected':''),onclick:function(){state.sector=s;render();}},s));});f2.appendChild(pills);box.appendChild(f2);var f3=h('div',{class:'cq-field'});f3.appendChild(h('label',{class:'cq-label'},t.assess.size));var pills2=h('div',{class:'cq-pills'});t.assess.sizes.forEach(function(s){pills2.appendChild(h('button',{class:'cq-pill-btn'+(state.size===s?' selected':''),onclick:function(){state.size=s;render();}},s));});f3.appendChild(pills2);box.appendChild(f3);box.appendChild(h('div',{class:'cq-lock'},['\ud83d\udd12 ',t.assess.lock]));var canProceed=state.company.trim().length>0?(state.sector?(state.size?true:false):false):false;var nextBtn=h('button',{id:'cq-next-intro',class:'cq-btn-primary',style:{marginTop:'22px',opacity:canProceed?'1':'0.4',pointerEvents:canProceed?'auto':'none'},onclick:function(){if(!canProceed)return;state.qStep=0;setPage('assess');}},t.assess.next+' \u2192');box.appendChild(nextBtn);wrap.appendChild(box);return wrap;}\nfunction updateNextBtn(){var btn=document.getElementById('cq-next-intro');if(!btn)return;var ok=state.company.trim().length>0?(state.sector?(state.size?true:false):false):false;btn.style.opacity=ok?'1':'0.4';btn.style.pointerEvents=ok?'auto':'none';}\nfunction renderQuestion(){var t=T[state.lang];var i=state.qStep;var cats=t.assess.categories;var cat=cats[0];for(var ci=0;ci<cats.length;ci++){if(cats[ci].qs.indexOf(i)>=0){cat=cats[ci];break;}}var w=Q_WEIGHTS[i];var wrap=h('div',{class:'cq-wrap cq-fade'});var qbox=h('div',{class:'cq-qbox'});var pct=Math.round((i\/14)*100);qbox.appendChild(h('div',{class:'cq-progress-label'},t.assess.step+' '+(i+1)+' '+t.assess.on+' 14 \u00b7 '+cat.name));var prog=h('div',{class:'cq-progress'});prog.appendChild(h('div',{class:'cq-progress-bar',style:{width:pct+'%'}}));qbox.appendChild(prog);qbox.appendChild(h('div',{class:'cq-cat-badge'},cat.name));var dots=h('div',{class:'cq-dots'});for(var d=1;d<=3;d++){dots.appendChild(h('div',{class:'cq-dot'+(d<=w?' on':'')}));}qbox.appendChild(dots);qbox.appendChild(h('div',{class:'cq-q'},t.assess.questions[i]));var ans=h('div',{class:'cq-answers'});ans.appendChild(h('button',{class:'cq-ans-btn',onclick:function(){answer(0);}},[t.assess.yes,h('kbd',null,state.lang==='fr'?'O':'Y')]));ans.appendChild(h('button',{class:'cq-ans-btn',onclick:function(){answer(1);}},[t.assess.no,h('kbd',null,'N')]));qbox.appendChild(ans);qbox.appendChild(h('div',{class:'cq-hint'},t.assess.keyHint));qbox.appendChild(h('br'));qbox.appendChild(h('button',{class:'cq-edit-link',onclick:function(){state.qStep=-1;setPage('assess');}},t.assess.back));wrap.appendChild(qbox);return wrap;}\nfunction answer(v){state.answers[state.qStep]=v;if(state.qStep>=13){saveCurrent();setPage('results');}else{state.qStep++;render();}}\nfunction getViewingData(){if(state.viewing)return state.viewing;return{company:state.company,sector:state.sector,size:state.size,answers:state.answers,date:new Date().toISOString(),lang:state.lang};}\nfunction renderResults(){var data=getViewingData();var lang=data.lang?data.lang:state.lang;var t=T[lang];var score=computeScore(data.answers,data.size,data.sector);var level=getLevel(score);var col=levelColor(level);var cats=computeCatScores(data.answers,t.assess.categories,data.size);var wrap=h('div',{class:'cq-wrap cq-fade'});var rw=h('div',{class:'cq-results-wrap'});var gauge=h('div',{class:'cq-gauge-box'});gauge.appendChild(h('div',{class:'cq-section-title',style:{marginBottom:'6px'}},t.results.overall));gauge.appendChild(renderGauge(score,col));gauge.appendChild(h('div',{class:'cq-score-val',style:{color:col}},score+'\/100'));gauge.appendChild(h('div',{class:'cq-level',style:{background:'rgba(63,168,174,0.12)',border:'1px solid '+col,color:col}},t.results.levels[level]));rw.appendChild(gauge);rw.appendChild(h('h3',{class:'cq-section-title',style:{marginTop:'22px'}},t.results.breakdown));var cl=h('div',{class:'cq-catlist'});cats.forEach(function(c,idx){var l=getLevel(c.score);var cc=levelColor(l);var row=h('div',{class:'cq-cat-row'});var head=h('div',{class:'cq-cat-head'});head.appendChild(h('div',{class:'cq-cat-name'},c.name));head.appendChild(h('div',{class:'cq-cat-score',style:{color:cc}},c.score+'\/100'));row.appendChild(head);var bar=h('div',{class:'cq-cat-bar'});bar.appendChild(h('div',{class:'cq-cat-fill',style:{width:c.score+'%',background:cc}}));row.appendChild(bar);var rec=t.results.catRecs[idx];var recText=c.score>=60?rec.high:rec.low;row.appendChild(h('div',{class:'cq-cat-rec'},recText));cl.appendChild(row);});rw.appendChild(cl);rw.appendChild(h('div',{class:'cq-disclaimer'},t.results.disclaimer));var actions=h('div',{class:'cq-actions'});actions.appendChild(h('button',{class:'cq-btn-warm',onclick:function(){if(typeof window.compassShowForminator==='function')window.compassShowForminator();}},t.results.diagnostic));actions.appendChild(h('button',{class:'cq-btn-outline',onclick:function(){exportPDF(data,score,level,cats,t);}},t.results.pdf));actions.appendChild(h('button',{class:'cq-btn-outline',onclick:function(){window.location.hash='#contact';var el=document.getElementById('forminator-module-20148');if(el){el.scrollIntoView({behavior:'smooth',block:'center'});}else{window.scrollTo({top:document.body.scrollHeight,behavior:'smooth'});}}},t.results.contact));actions.appendChild(h('button',{class:'cq-btn-outline',onclick:function(){state.viewing=null;state.qStep=0;setPage('assess');}},t.results.edit));actions.appendChild(h('button',{class:'cq-btn-outline',onclick:function(){reset();setPage('assess');}},t.results.again));actions.appendChild(h('button',{class:'cq-btn-outline',onclick:function(){reset();setPage('home');}},t.results.home));rw.appendChild(actions);wrap.appendChild(rw);return wrap;}\nfunction renderGauge(score,col){var ns='http:\/\/www.w3.org\/2000\/svg';var size=180;var svg=document.createElementNS(ns,'svg');svg.setAttribute('width',size);svg.setAttribute('height',size\/2+20);svg.setAttribute('viewBox','0 0 '+size+' '+(size\/2+20));var cx=size\/2,cy=size\/2+10,r=70;var start=Math.PI,end=0;var pct=score\/100;var cur=start+(end-start)*pct;function arc(a1,a2,color,w){var p=document.createElementNS(ns,'path');var x1=cx+r*Math.cos(a1),y1=cy+r*Math.sin(a1);var x2=cx+r*Math.cos(a2),y2=cy+r*Math.sin(a2);var large=Math.abs(a2-a1)>Math.PI?1:0;var sweep=a2>a1?1:0;p.setAttribute('d','M '+x1+' '+y1+' A '+r+' '+r+' 0 '+large+' '+sweep+' '+x2+' '+y2);p.setAttribute('stroke',color);p.setAttribute('stroke-width',w);p.setAttribute('fill','none');p.setAttribute('stroke-linecap','round');return p;}svg.appendChild(arc(start,end,'rgba(111,183,200,0.15)',10));if(pct>0.01)svg.appendChild(arc(start,cur,col,10));return svg;}\nfunction exportPDF(data,score,level,cats,t){try{if(!window.jspdf){fallbackCopy(data,score,level,cats,t);return;}var jsPDF=window.jspdf.jsPDF;var doc=new jsPDF();var y=18;doc.setFontSize(16);doc.text('COMPASS - '+t.results.title,14,y);y+=10;doc.setFontSize(10);doc.text(t.assess.companyName+': '+data.company,14,y);y+=6;doc.text(t.assess.sector+': '+data.sector,14,y);y+=6;doc.text(t.assess.size+': '+data.size,14,y);y+=6;doc.text((state.lang==='fr'?'Date':'Date')+': '+new Date(data.date).toLocaleDateString(),14,y);y+=10;doc.setFontSize(14);doc.text(t.results.overall+': '+score+'\/100 - '+t.results.levels[level],14,y);y+=10;doc.setFontSize(11);doc.text(t.results.breakdown,14,y);y+=7;doc.setFontSize(10);cats.forEach(function(c){doc.text('- '+c.name+': '+c.score+'\/100',18,y);y+=5;});y+=4;var qs=t.assess.questions;for(var i=0;i<qs.length;i++){var ans=data.answers[i]===0?t.assess.yes:t.assess.no;var txt='Q'+(i+1)+' ['+ans+']: '+qs[i];var lines=doc.splitTextToSize(txt,180);if(y+lines.length*4>280){doc.addPage();y=18;}doc.text(lines,14,y);y+=lines.length*4+2;}doc.save('compass-'+(data.company?data.company.replace(\/\\s+\/g,'_'):'report')+'.pdf');}catch(e){fallbackCopy(data,score,level,cats,t);}}\nfunction fallbackCopy(data,score,level,cats,t){var txt=window.compassBuildSummary();try{navigator.clipboard.writeText(txt);alert(state.lang==='fr'?'R\u00e9sum\u00e9 copi\u00e9 dans le presse-papier.':'Summary copied to clipboard.');}catch(e){alert(txt);}}\nfunction renderDashboard(){var t=T[state.lang];var arr=loadAll();var wrap=h('div',{class:'cq-wrap cq-fade'});wrap.appendChild(h('h2',{style:{fontFamily:\"'Cormorant Garamond',serif\",fontSize:'36px',fontWeight:'500',color:'#E6EEF5',marginBottom:'20px'}},t.dashboard.title));if(arr.length===0){var empty=h('div',{class:'cq-empty'});empty.appendChild(h('p',{style:{marginBottom:'18px'}},t.dashboard.noData));empty.appendChild(h('button',{class:'cq-btn-primary',onclick:function(){reset();setPage('assess');}},t.dashboard.startFirst));wrap.appendChild(empty);return wrap;}var latest=arr[0];var avg=Math.round(arr.reduce(function(s,a){return s+a.score;},0)\/arr.length);var grid=h('div',{class:'cq-dash-grid'});grid.appendChild(h('div',{class:'cq-dash-card'},[h('div',{class:'cq-dash-label'},t.dashboard.total),h('div',{class:'cq-dash-val'},arr.length)]));grid.appendChild(h('div',{class:'cq-dash-card'},[h('div',{class:'cq-dash-label'},t.dashboard.avg),h('div',{class:'cq-dash-val',style:{color:levelColor(getLevel(avg))}},avg+'\/100')]));grid.appendChild(h('div',{class:'cq-dash-card'},[h('div',{class:'cq-dash-label'},t.dashboard.last),h('div',{class:'cq-dash-val',style:{color:levelColor(getLevel(latest.score)),fontSize:'22px'}},latest.score+'\/100'),h('div',{style:{fontSize:'12px',color:'#6C8090',marginTop:'6px'}},latest.company+' \u00b7 '+new Date(latest.date).toLocaleDateString())]));wrap.appendChild(grid);var radar=h('div',{class:'cq-section'});radar.appendChild(h('div',{class:'cq-section-rule'}));radar.appendChild(h('h3',{class:'cq-section-title'},state.lang==='fr'?'\u00c9volution':'Evolution'));radar.appendChild(renderSparkline(arr.slice(0,10).reverse()));wrap.appendChild(radar);var link=h('div',{style:{textAlign:'center',marginTop:'24px'}});link.appendChild(h('button',{class:'cq-btn-outline',onclick:function(){setPage('history');}},t.dashboard.viewHistory+' \u2192'));wrap.appendChild(link);return wrap;}\nfunction renderSparkline(arr){var ns='http:\/\/www.w3.org\/2000\/svg';var w=600,ht=80;var svg=document.createElementNS(ns,'svg');svg.setAttribute('viewBox','0 0 '+w+' '+ht);svg.setAttribute('style','width:100%;max-width:'+w+'px;height:'+ht+'px;');svg.setAttribute('preserveAspectRatio','none');if(arr.length<1)return svg;var step=arr.length>1?w\/(arr.length-1):w;var pts=arr.map(function(a,i){var x=i*step;var y=ht-(a.score\/100)*(ht-10)-5;return x+','+y;});var path=document.createElementNS(ns,'polyline');path.setAttribute('points',pts.join(' '));path.setAttribute('fill','none');path.setAttribute('stroke','#3FA8AE');path.setAttribute('stroke-width','2');svg.appendChild(path);arr.forEach(function(a,i){var cx=i*step;var cy=ht-(a.score\/100)*(ht-10)-5;var c=document.createElementNS(ns,'circle');c.setAttribute('cx',cx);c.setAttribute('cy',cy);c.setAttribute('r','3');c.setAttribute('fill',levelColor(getLevel(a.score)));svg.appendChild(c);});return svg;}\nfunction renderHistory(){var t=T[state.lang];var arr=loadAll();var wrap=h('div',{class:'cq-wrap cq-fade'});var head=h('div',{style:{display:'flex',justifyContent:'space-between',alignItems:'center',marginBottom:'20px',flexWrap:'wrap',gap:'10px'}});head.appendChild(h('h2',{style:{fontFamily:\"'Cormorant Garamond',serif\",fontSize:'36px',fontWeight:'500',color:'#E6EEF5'}},t.history.title));if(arr.length>0){head.appendChild(h('button',{class:'cq-link-btn danger',onclick:function(){if(confirm(t.history.confirm)){saveAll([]);render();}}},t.history.clear));}wrap.appendChild(head);if(arr.length===0){wrap.appendChild(h('div',{class:'cq-empty'},t.history.empty));return wrap;}var tbl=h('table',{class:'cq-table'});var thead=h('thead');var tr=h('tr');[t.history.date,t.history.company,t.history.score,t.history.level,t.history.actions].forEach(function(x){tr.appendChild(h('th',null,x));});thead.appendChild(tr);tbl.appendChild(thead);var tbody=h('tbody');arr.forEach(function(e){var lv=getLevel(e.score);var tr=h('tr');tr.appendChild(h('td',null,new Date(e.date).toLocaleDateString()));tr.appendChild(h('td',null,e.company?e.company:'\u2014'));tr.appendChild(h('td',{style:{color:levelColor(lv),fontWeight:'700'}},e.score+'\/100'));tr.appendChild(h('td',null,t.results.levels[lv]));var acts=h('td');acts.appendChild(h('button',{class:'cq-link-btn',onclick:function(){state.viewing=e;setPage('results');}},t.history.view));acts.appendChild(h('button',{class:'cq-link-btn danger',onclick:function(){var all=loadAll().filter(function(x){return x.id!==e.id;});saveAll(all);render();}},t.history.del));tr.appendChild(acts);tbody.appendChild(tr);});tbl.appendChild(tbody);wrap.appendChild(tbl);return wrap;}\nfunction render(){root.innerHTML='';root.appendChild(renderNav());var content;if(state.page==='home')content=renderHome();else if(state.page==='assess'){content=state.qStep<0?renderAssessIntro():renderQuestion();}else if(state.page==='results')content=renderResults();else if(state.page==='dashboard')content=renderDashboard();else if(state.page==='history')content=renderHistory();else content=renderHome();root.appendChild(content);}\ndocument.addEventListener('keydown',function(e){if(state.page!=='assess')return;if(state.qStep<0)return;var k=e.key.toLowerCase();if(k==='o'?true:(k==='y'))answer(0);else if(k==='n')answer(1);});\nwindow.compassBuildSummary=function(){var data=getViewingData();var lang=data.lang?data.lang:state.lang;var t=T[lang];var score=computeScore(data.answers,data.size,data.sector);var level=getLevel(score);var cats=computeCatScores(data.answers,t.assess.categories,data.size);var lines=[];lines.push('=== R\u00c9SULTATS AUTO-\u00c9VALUATION COMPASS ===');lines.push('');lines.push('Entreprise : '+(data.company?data.company:'\u2014'));lines.push('Secteur : '+(data.sector?data.sector:'\u2014'));lines.push('Taille : '+(data.size?data.size:'\u2014'));lines.push('Date : '+new Date(data.date?data.date:Date.now()).toLocaleDateString());lines.push('');lines.push('Score global : '+score+'\/100 \u2014 '+t.results.levels[level]);lines.push('');lines.push('D\u00e9tail par domaine :');cats.forEach(function(c){lines.push('  - '+c.name+' : '+c.score+'\/100');});lines.push('');lines.push('R\u00e9ponses d\u00e9taill\u00e9es :');var qs=t.assess.questions;for(var i=0;i<qs.length;i++){var a=data.answers[i];var mark=a===0?'[X]':'[ ]';var lbl=a===0?'OUI':'NON';lines.push(mark+' Q'+(i+1)+' ['+lbl+'] '+qs[i]);}lines.push('');lines.push('==========');return lines.join('\\n');};\nrender();\n})();\n<\/script><\/p>\n<style>#forminator-module-20148 { display: none; margin-top: 2rem; } #forminator-module-20148.cq-form-visible { display: block; animation: compassFadeIn 0.4s ease; } @keyframes compassFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }<\/style>\n<p><script>(function(){function bind(){if(typeof jQuery==='undefined'){setTimeout(bind,500);return;}var injected=false;function inject(){if(injected)return;var summary=(typeof window.compassBuildSummary==='function')?window.compassBuildSummary():'';if(!summary)return;var ta=document.querySelector('#forminator-module-20148 textarea[name=\"textarea-1\"]')?document.querySelector('#forminator-module-20148 textarea[name=\"textarea-1\"]'):document.querySelector('#forminator-module-20148 textarea');if(ta){var um=ta.value.trim();ta.value=summary+(um?'\\n\\nMessage : '+um:'');jQuery(ta).val(ta.value).trigger('change').trigger('input');injected=true;}}jQuery(document).on('click','#forminator-module-20148 .forminator-button-submit, #forminator-module-20148 button[type=\"submit\"]',function(){injected=false;inject();});jQuery(document).on('submit','#forminator-module-20148 form, #forminator-module-20148',inject);jQuery(document).on('before.submit.forminator',inject);window.compassShowForminator=function(){var el=document.getElementById('forminator-module-20148');if(el){el.classList.add('cq-form-visible');el.scrollIntoView({behavior:'smooth',block:'center'});}};}bind();})();<\/script><\/p>\n<div class=\"forminator-ui forminator-custom-form forminator-custom-form-20148 forminator-design--default  forminator_ajax\" data-forminator-render=\"0\" data-form=\"forminator-module-20148\" data-uid=\"6a142b392991f\"><\/div>\n<form\n\t\t\t\tid=\"forminator-module-20148\"\n\t\t\t\tclass=\"forminator-ui forminator-custom-form forminator-custom-form-20148 forminator-design--default  forminator_ajax\"\n\t\t\t\tmethod=\"post\"\n\t\t\t\tdata-forminator-render=\"0\"\n\t\t\t\tdata-form-id=\"20148\"\n\t\t\t\t data-color-option=\"theme\" data-design=\"default\" data-grid=\"open\" style=\"display: none;\"\n\t\t\t\tdata-uid=\"6a142b392991f\"\n\t\t\t><\/p>\n<div role=\"alert\" aria-live=\"polite\" class=\"forminator-response-message forminator-error\" aria-hidden=\"true\"><\/div>\n<div class=\"forminator-row\">\n<div id=\"name-1\" class=\"forminator-field-name forminator-col forminator-col-6 \">\n<div class=\"forminator-field\"><label for=\"forminator-field-name-1_6a142b392991f\" id=\"forminator-field-name-1_6a142b392991f-label\" class=\"forminator-label\">Pr\u00e9nom <span class=\"forminator-required\">*<\/span><\/label><input type=\"text\" name=\"name-1\" value=\"\" placeholder=\"\" id=\"forminator-field-name-1_6a142b392991f\" class=\"forminator-input forminator-name--field\" aria-required=\"true\" autocomplete=\"name\" \/><\/div>\n<\/div>\n<div id=\"name-2\" class=\"forminator-field-name forminator-col forminator-col-6 \">\n<div class=\"forminator-field\"><label for=\"forminator-field-name-2_6a142b392991f\" id=\"forminator-field-name-2_6a142b392991f-label\" class=\"forminator-label\">Nom<\/label><input type=\"text\" name=\"name-2\" value=\"\" placeholder=\"\" id=\"forminator-field-name-2_6a142b392991f\" class=\"forminator-input forminator-name--field\" aria-required=\"false\" autocomplete=\"name\" \/><\/div>\n<\/div>\n<\/div>\n<div class=\"forminator-row\">\n<div id=\"email-1\" class=\"forminator-field-email forminator-col forminator-col-12 \">\n<div class=\"forminator-field\"><label for=\"forminator-field-email-1_6a142b392991f\" id=\"forminator-field-email-1_6a142b392991f-label\" class=\"forminator-label\">Adresse de messagerie <span class=\"forminator-required\">*<\/span><\/label><input type=\"email\" name=\"email-1\" value=\"\" placeholder=\"\" id=\"forminator-field-email-1_6a142b392991f\" class=\"forminator-input forminator-email--field\" data-required=\"true\" aria-required=\"true\" autocomplete=\"email\" \/><\/div>\n<\/div>\n<\/div>\n<div class=\"forminator-row\">\n<div id=\"phone-1\" class=\"forminator-field-phone forminator-col forminator-col-12 \">\n<div class=\"forminator-field\"><label for=\"forminator-field-phone-1_6a142b392991f\" id=\"forminator-field-phone-1_6a142b392991f-label\" class=\"forminator-label\">Num\u00e9ro de t\u00e9l\u00e9phone<\/label><input type=\"text\" name=\"phone-1\" value=\"\" placeholder=\"\" id=\"forminator-field-phone-1_6a142b392991f\" class=\"forminator-input forminator-field--phone\" data-required=\"\" aria-required=\"false\" autocomplete=\"off\" \/><\/div>\n<\/div>\n<\/div>\n<div class=\"forminator-row\">\n<div id=\"textarea-1\" class=\"forminator-field-textarea forminator-col forminator-col-12 \">\n<div class=\"forminator-field\"><label for=\"forminator-field-textarea-1_6a142b392991f\" id=\"forminator-field-textarea-1_6a142b392991f-label\" class=\"forminator-label\">Message<\/label><span id=\"forminator-field-textarea-1_6a142b392991f-description\" class=\"forminator-description\"><span data-limit=\"500\" data-type=\"characters\" data-editor=\"\">0 \/ 500<\/span><\/span><textarea name=\"textarea-1\" placeholder=\"\" id=\"forminator-field-textarea-1_6a142b392991f\" class=\"forminator-textarea\" rows=\"6\" style=\"--forminator-textarea-min-height:140px;\" maxlength=\"500\" ><\/textarea><\/div>\n<\/div>\n<\/div>\n<p><input type=\"hidden\" name=\"referer_url\" value=\"\" \/><\/p>\n<div class=\"forminator-row forminator-row-last\">\n<div class=\"forminator-col\">\n<div class=\"forminator-field\"><button class=\"forminator-button forminator-button-submit\">Envoyer ma demande de diagnostic<\/button><\/div>\n<\/div>\n<\/div>\n<p><input type=\"hidden\" id=\"forminator_nonce\" name=\"forminator_nonce\" value=\"0c91c45666\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/20574\" \/><input type=\"hidden\" name=\"form_id\" value=\"20148\"><input type=\"hidden\" name=\"page_id\" value=\"20574\"><input type=\"hidden\" name=\"form_type\" value=\"default\"><input type=\"hidden\" name=\"current_url\" value=\"https:\/\/penalex.ch\/en\/compass-questionnaire\/\"><input type=\"hidden\" name=\"render_id\" value=\"0\"><input type=\"hidden\" name=\"action\" value=\"forminator_submit_form_custom-forms\"><\/form>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":421,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-20574","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/penalex.ch\/en\/wp-json\/wp\/v2\/pages\/20574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/penalex.ch\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/penalex.ch\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/penalex.ch\/en\/wp-json\/wp\/v2\/users\/421"}],"replies":[{"embeddable":true,"href":"https:\/\/penalex.ch\/en\/wp-json\/wp\/v2\/comments?post=20574"}],"version-history":[{"count":5,"href":"https:\/\/penalex.ch\/en\/wp-json\/wp\/v2\/pages\/20574\/revisions"}],"predecessor-version":[{"id":20585,"href":"https:\/\/penalex.ch\/en\/wp-json\/wp\/v2\/pages\/20574\/revisions\/20585"}],"wp:attachment":[{"href":"https:\/\/penalex.ch\/en\/wp-json\/wp\/v2\/media?parent=20574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}