{"id":5234,"date":"2026-04-07T01:17:07","date_gmt":"2026-04-06T23:17:07","guid":{"rendered":"https:\/\/acans.com\/autodiagnostico\/"},"modified":"2026-04-12T17:56:45","modified_gmt":"2026-04-12T15:56:45","slug":"autodiagnostico","status":"publish","type":"page","link":"https:\/\/acans.com\/es\/autodiagnostico\/","title":{"rendered":"AUTODIAGN\u00d3STICO"},"content":{"rendered":"\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-8k44rc-b093218445ced7d2d0df037e92bc1a71\">\n.avia-section.av-8k44rc-b093218445ced7d2d0df037e92bc1a71{\nbackground-repeat:no-repeat;\nbackground-image:url(https:\/\/acans.com\/wp-content\/uploads\/2026\/04\/BG-AUTODIAG.png);\nbackground-position:0% 0%;\nbackground-attachment:fixed;\n}\n<\/style>\n<div id='av_section_1'  class='avia-section av-8k44rc-b093218445ced7d2d0df037e92bc1a71 main_color avia-section-default avia-no-border-styling  avia-builder-el-0  avia-builder-el-no-sibling  avia-full-stretch avia-bg-style-fixed av-minimum-height av-minimum-height-100 av-height-100  container_wrap sidebar_right'  data-section-bg-repeat='stretch' data-av_minimum_height_pc='100' data-av_min_height_opt='100'><div class='container av-section-cont-open' ><main  role=\"main\" itemprop=\"mainContentOfPage\"  class='template-page content  av-content-small alpha units'><div class='post-entry post-entry-type-page post-entry-5234'><div class='entry-content-wrapper clearfix'>\n<section  class='av_textblock_section av-mnntmjvs-a0015a3fee8facb928bada6dc81065cd '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/CreativeWork\" ><div class='avia_textblock'  itemprop=\"text\" ><div id=\"acans-autodiag\">\n\t<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n\t<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\t<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Maven+Pro:wght@400;500&family=Manrope:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\n\t<script src=\"https:\/\/challenges.cloudflare.com\/turnstile\/v0\/api.js\" async defer><\/script>\n\n\t<style>\n\t\t#acans-autodiag{\n\t\t\t--ad-red:#c80d12;\n\t\t\t--ad-red-dark:#a30a0f;\n\t\t\t--ad-ink:#2d2d2f;\n\t\t\t--ad-soft:#61646b;\n\t\t\t--ad-bg:#f7f7f5;\n\t\t\t--ad-white:#ffffff;\n\t\t\t--ad-line:rgba(45,45,47,.10);\n\t\t\t--ad-line-strong:rgba(45,45,47,.18);\n\t\t\t--ad-shadow:0 18px 40px rgba(20,20,24,.06);\n\t\t\t--ad-shadow-soft:0 10px 24px rgba(20,20,24,.05);\n\t\t\t--ad-accent:#1b6b73;\n\t\t\t--ad-accent-soft:rgba(27,107,115,.08);\n\t\t\t--ad-ok:#217a52;\n\t\t\t--ad-warn:#b26b00;\n\t\t\t--ad-danger:#b42318;\n\n\t\t\t--muted:var(--ad-soft);\n\t\t\t--sky:var(--ad-accent);\n\t\t\t--gold-lt:var(--ad-red);\n\t\t\t--text:var(--ad-ink);\n\t\t\t--fh:\"Maven Pro\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;\n\t\t\t--fb:\"Manrope\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;\n\t\t\t--ok:var(--ad-ok);\n\t\t\t--warn:var(--ad-warn);\n\t\t\t--danger:var(--ad-danger);\n\n\t\t\tfont-family:var(--fb)!important;\n\t\t\tcolor:var(--ad-ink);\n\t\t\tbackground:transparent;\n\t\t}\n\t\t#acans-autodiag *{box-sizing:border-box;}\n\t\t#acans-autodiag .page{max-width:1120px;margin:0 auto;}\n\t\t#acans-autodiag .hidden{display:none!important;}\n\t\t#acans-autodiag .slide-up{animation:acansSu .28s ease both;}\n\t\t@keyframes acansSu{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}\n\n\t\t#acans-autodiag .intro-h,\n\t\t#acans-autodiag .section-title,\n\t\t#acans-autodiag .res-top h2,\n\t\t#acans-autodiag .block-score,\n\t\t#acans-autodiag .ring-val .big,\n\t\t#acans-autodiag .form-label,\n\t\t#acans-autodiag .actions-title,\n\t\t#acans-autodiag .block-label,\n\t\t#acans-autodiag .sum-box h4,\n\t\t#acans-autodiag .ident-box h3,\n\t\t#acans-autodiag .q-title{\n\t\t\tfont-family:var(--fh)!important;\n\t\t\tcolor:var(--ad-ink)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-ink)!important;\n\t\t\tfont-weight:500!important;\n\t\t}\n\n\t\t#acans-autodiag .intro-h{\n\t\t\tfont-size:clamp(30px,4vw,54px);\n\t\t\tline-height:1.02;\n\t\t\tmargin:0 0 14px 0;\n\t\t\tletter-spacing:-.02em;\n\t\t}\n\t\t#acans-autodiag .intro-h em{\n\t\t\tfont-style:normal;\n\t\t\tcolor:var(--ad-red)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-red)!important;\n\t\t}\n\t\t#acans-autodiag .intro-sub,\n\t\t#acans-autodiag p,\n\t\t#acans-autodiag li,\n\t\t#acans-autodiag label,\n\t\t#acans-autodiag input,\n\t\t#acans-autodiag textarea,\n\t\t#acans-autodiag select{\n\t\t\tcolor:var(--ad-soft)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-soft)!important;\n\t\t\tfont-size:16px;\n\t\t\tline-height:1.75;\n\t\t}\n\t\t#acans-autodiag a{\n\t\t\tcolor:var(--ad-ink)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-ink)!important;\n\t\t\ttext-decoration:none!important;\n\t\t\tborder-bottom:1px solid rgba(45,45,47,.18);\n\t\t}\n\t\t#acans-autodiag a:hover{\n\t\t\tcolor:var(--ad-red)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-red)!important;\n\t\t\tborder-bottom-color:rgba(200,13,18,.35);\n\t\t}\n\n\t\t#acans-autodiag .card,\n\t\t#acans-autodiag .block-item,\n\t\t#acans-autodiag .ident-box,\n\t\t#acans-autodiag .solutions,\n\t\t#acans-autodiag .sum-box,\n\t\t#acans-autodiag .warning-amf,\n\t\t#acans-autodiag .cta-block{\n\t\t\tbackground:var(--ad-white)!important;\n\t\t\tborder:1px solid var(--ad-line)!important;\n\t\t\tborder-radius:16px!important;\n\t\t\tbox-shadow:var(--ad-shadow)!important;\n\t\t\tpadding:28px!important;\n\t\t\tmargin-bottom:20px;\n\t\t}\n\t\t#acans-autodiag .section-title{\n\t\t\tmargin:0 0 18px 0;\n\t\t\tpadding:0 0 12px 0;\n\t\t\tborder:0!important;\n\t\t\tborder-bottom:1px solid var(--ad-line)!important;\n\t\t\tfont-size:13px;\n\t\t\tline-height:1.2;\n\t\t\ttext-transform:uppercase;\n\t\t\tletter-spacing:.10em!important;\n\t\t}\n\t\t#acans-autodiag .section-title.gold{\n\t\t\tcolor:var(--ad-red)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-red)!important;\n\t\t}\n\t\t#acans-autodiag .form-row{\n\t\t\tdisplay:grid;\n\t\t\tgrid-template-columns:repeat(2,minmax(0,1fr));\n\t\t\tgap:16px;\n\t\t}\n\t\t#acans-autodiag .form-group{margin-bottom:16px;}\n\t\t#acans-autodiag .form-row .form-group{margin-bottom:0;}\n\t\t#acans-autodiag .form-label{\n\t\t\tdisplay:block;\n\t\t\tmargin:0 0 7px 0;\n\t\t\tcolor:rgba(45,45,47,.72)!important;\n\t\t\t-webkit-text-fill-color:rgba(45,45,47,.72)!important;\n\t\t\tfont-size:13px!important;\n\t\t\tletter-spacing:.04em!important;\n\t\t\ttext-transform:uppercase;\n\t\t}\n\t\t#acans-autodiag .form-label.required::after{content:\" *\";color:var(--ad-red);}\n\t\t#acans-autodiag .form-input,\n\t\t#acans-autodiag .rank-input{\n\t\t\twidth:100%;\n\t\t\tbackground:#fff!important;\n\t\t\tborder:1px solid var(--ad-line)!important;\n\t\t\tcolor:var(--ad-ink)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-ink)!important;\n\t\t\tborder-radius:12px!important;\n\t\t\tpadding:12px 14px!important;\n\t\t\tbox-shadow:var(--ad-shadow-soft)!important;\n\t\t\toutline:none!important;\n\t\t}\n\t\t#acans-autodiag .form-input:focus,\n\t\t#acans-autodiag .rank-input:focus{\n\t\t\tborder-color:rgba(200,13,18,.28)!important;\n\t\t\tbox-shadow:0 0 0 4px rgba(200,13,18,.08)!important;\n\t\t}\n\t\t#acans-autodiag .cb-grid{\n\t\t\tdisplay:grid;\n\t\t\tgrid-template-columns:repeat(auto-fill,minmax(120px,1fr));\n\t\t\tgap:10px;\n\t\t}\n\t\t#acans-autodiag .cb-item{\n\t\t\tdisplay:flex;\n\t\t\talign-items:center;\n\t\t\tgap:8px;\n\t\t\tpadding:10px 12px;\n\t\t\tborder:1px solid var(--ad-line);\n\t\t\tborder-radius:12px;\n\t\t\tbackground:rgba(255,255,255,.72);\n\t\t}\n\t\t#acans-autodiag .cb-item input{accent-color:var(--ad-red);}\n\t\t#acans-autodiag .prog-wrap{margin:0 auto 24px;max-width:1120px;}\n\t\t#acans-autodiag .prog-meta{\n\t\t\tdisplay:flex;\n\t\t\tjustify-content:space-between;\n\t\t\tmargin:0 0 10px 0;\n\t\t\tfont-family:var(--fh)!important;\n\t\t\tfont-size:13px;\n\t\t\tletter-spacing:.08em;\n\t\t\ttext-transform:uppercase;\n\t\t\tcolor:rgba(45,45,47,.56)!important;\n\t\t}\n\t\t#acans-autodiag .prog-meta strong{\n\t\t\tcolor:var(--ad-red)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-red)!important;\n\t\t}\n\t\t#acans-autodiag .prog-track{\n\t\t\theight:3px;\n\t\t\tbackground:rgba(45,45,47,.10);\n\t\t\tborder-radius:999px;\n\t\t\toverflow:hidden;\n\t\t}\n\t\t#acans-autodiag .prog-fill{\n\t\t\theight:100%;\n\t\t\tbackground:linear-gradient(90deg,var(--ad-red),var(--ad-accent));\n\t\t\tborder-radius:999px;\n\t\t\ttransition:width .2s ease;\n\t\t}\n\t\t#acans-autodiag .phase-badge{\n\t\t\tdisplay:inline-flex;\n\t\t\talign-items:center;\n\t\t\tjustify-content:center;\n\t\t\tmin-height:28px;\n\t\t\tpadding:0 12px;\n\t\t\tborder:1px solid rgba(27,107,115,.18);\n\t\t\tborder-radius:999px;\n\t\t\tbackground:var(--ad-accent-soft);\n\t\t\tcolor:var(--ad-accent)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-accent)!important;\n\t\t\tfont-family:var(--fh)!important;\n\t\t\tfont-size:12px;\n\t\t\tfont-weight:500!important;\n\t\t\tletter-spacing:.05em;\n\t\t\ttext-transform:uppercase;\n\t\t\tmargin:0 0 16px 0;\n\t\t}\n\t\t#acans-autodiag .q-icon{font-size:28px;display:block;margin:0 0 10px 0;}\n\t\t#acans-autodiag .q-title{\n\t\t\tfont-size:clamp(24px,2.5vw,34px);\n\t\t\tline-height:1.15;\n\t\t\tmargin:0 0 10px 0;\n\t\t}\n\t\t#acans-autodiag .q-sub{margin:0 0 22px 0;max-width:860px;}\n\t\t#acans-autodiag .opt,\n\t\t#acans-autodiag .rank-row,\n\t\t#acans-autodiag .mc-opt{\n\t\t\twidth:100%;\n\t\t\tdisplay:flex;\n\t\t\talign-items:center;\n\t\t\tgap:14px;\n\t\t\tpadding:14px 16px;\n\t\t\tborder:1px solid var(--ad-line)!important;\n\t\t\tborder-radius:14px;\n\t\t\tbackground:#fff!important;\n\t\t\tcolor:var(--ad-ink)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-ink)!important;\n\t\t\tbox-shadow:var(--ad-shadow-soft)!important;\n\t\t\tcursor:pointer;\n\t\t\ttext-align:left;\n\t\t\tmargin-bottom:12px;\n\t\t\ttransition:.16s ease;\n\t\t}\n\t\t#acans-autodiag .opt:hover,\n\t\t#acans-autodiag .mc-opt:hover{\n\t\t\ttransform:translateY(-1px);\n\t\t\tborder-color:rgba(27,107,115,.24)!important;\n\t\t\tbackground:rgba(27,107,115,.03)!important;\n\t\t}\n\t\t#acans-autodiag .opt-l,\n\t\t#acans-autodiag .mc-box{\n\t\t\tmin-width:30px;\n\t\t\theight:30px;\n\t\t\tborder-radius:10px;\n\t\t\tborder:1px solid rgba(45,45,47,.18);\n\t\t\tdisplay:inline-flex;\n\t\t\talign-items:center;\n\t\t\tjustify-content:center;\n\t\t\tcolor:rgba(45,45,47,.56)!important;\n\t\t\t-webkit-text-fill-color:rgba(45,45,47,.56)!important;\n\t\t\tfont-size:12px;\n\t\t\tfont-weight:600;\n\t\t\tbackground:#fff;\n\t\t}\n\t\t#acans-autodiag .mc-opt input{display:none;}\n\t\t#acans-autodiag .mc-opt.sel{\n\t\t\tborder-color:rgba(200,13,18,.22)!important;\n\t\t\tbackground:rgba(200,13,18,.04)!important;\n\t\t}\n\t\t#acans-autodiag .mc-opt.sel .mc-box{\n\t\t\tbackground:rgba(200,13,18,.10)!important;\n\t\t\tborder-color:rgba(200,13,18,.24)!important;\n\t\t\tcolor:var(--ad-red)!important;\n\t\t}\n\t\t#acans-autodiag .mc-opt.sel .mc-box::after{content:\"\u2713\";}\n\t\t#acans-autodiag .rank-helper,\n\t\t#acans-autodiag .mc-ctr{\n\t\t\tmargin:0 0 14px 0;\n\t\t\tcolor:var(--ad-soft)!important;\n\t\t}\n\t\t#acans-autodiag .rank-helper strong,\n\t\t#acans-autodiag .mc-ctr strong{\n\t\t\tcolor:var(--ad-accent)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-accent)!important;\n\t\t}\n\t\t#acans-autodiag .btn-main,\n\t\t#acans-autodiag .btn-ghost{\n\t\t\tdisplay:inline-flex;\n\t\t\talign-items:center;\n\t\t\tjustify-content:center;\n\t\t\tmin-height:46px;\n\t\t\tpadding:0 22px;\n\t\t\tborder-radius:999px!important;\n\t\t\tfont-family:var(--fh)!important;\n\t\t\tfont-size:14px!important;\n\t\t\tfont-weight:500!important;\n\t\t\tletter-spacing:.02em!important;\n\t\t\tcursor:pointer;\n\t\t\ttransition:.16s ease;\n\t\t\ttext-decoration:none!important;\n\t\t}\n\t\t#acans-autodiag .btn-main{\n\t\t\tbackground:var(--ad-red)!important;\n\t\t\tborder:1px solid var(--ad-red)!important;\n\t\t\tcolor:#fff!important;\n\t\t\t-webkit-text-fill-color:#fff!important;\n\t\t\tbox-shadow:0 12px 24px rgba(200,13,18,.14)!important;\n\t\t}\n\t\t#acans-autodiag .btn-main:hover{\n\t\t\tbackground:var(--ad-red-dark)!important;\n\t\t\tborder-color:var(--ad-red-dark)!important;\n\t\t\ttransform:translateY(-1px);\n\t\t}\n\t\t#acans-autodiag .btn-main[disabled],\n\t\t#acans-autodiag .btn-ghost[disabled]{\n\t\t\topacity:.65;\n\t\t\tcursor:not-allowed;\n\t\t\ttransform:none!important;\n\t\t}\n\t\t#acans-autodiag .btn-ghost{\n\t\t\tbackground:#fff!important;\n\t\t\tborder:1px solid var(--ad-line)!important;\n\t\t\tcolor:var(--ad-ink)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-ink)!important;\n\t\t\tbox-shadow:none!important;\n\t\t}\n\t\t#acans-autodiag .btn-ghost:hover{\n\t\t\tbackground:rgba(45,45,47,.03)!important;\n\t\t\tborder-color:var(--ad-line-strong)!important;\n\t\t}\n\t\t#acans-autodiag .action-buttons{\n\t\t\tdisplay:flex;\n\t\t\tflex-wrap:wrap;\n\t\t\tgap:12px;\n\t\t\tjustify-content:center;\n\t\t\tmargin-top:20px;\n\t\t}\n\t\t#acans-autodiag .res-top{text-align:center;margin-bottom:18px;}\n\t\t#acans-autodiag .res-date{font-size:14px;color:rgba(45,45,47,.56)!important;}\n\t\t#acans-autodiag .ring-wrap{position:relative;width:160px;height:160px;margin:0 auto 20px;}\n\t\t#acans-autodiag .ring-track{fill:none;stroke:rgba(45,45,47,.08);stroke-width:10;}\n\t\t#acans-autodiag .ring-fill{\n\t\t\tfill:none;\n\t\t\tstroke-width:10;\n\t\t\tstroke-linecap:round;\n\t\t\ttransition:stroke-dashoffset 1.2s ease, stroke .3s ease;\n\t\t}\n\t\t#acans-autodiag .ring-val{\n\t\t\tposition:absolute;\n\t\t\tinset:0;\n\t\t\tdisplay:flex;\n\t\t\tflex-direction:column;\n\t\t\talign-items:center;\n\t\t\tjustify-content:center;\n\t\t}\n\t\t#acans-autodiag .ring-val .small{font-size:13px;color:rgba(45,45,47,.56)!important;}\n\t\t#acans-autodiag .status-badge{\n\t\t\tdisplay:inline-flex;\n\t\t\tpadding:10px 18px;\n\t\t\tborder-radius:999px;\n\t\t\tfont-family:var(--fh)!important;\n\t\t\tfont-size:13px;\n\t\t\tfont-weight:500!important;\n\t\t\tletter-spacing:.04em;\n\t\t\ttext-transform:uppercase;\n\t\t}\n\t\t#acans-autodiag .b-ok{\n\t\t\tbackground:rgba(33,122,82,.08)!important;\n\t\t\tborder:1px solid rgba(33,122,82,.18)!important;\n\t\t\tcolor:var(--ad-ok)!important;\n\t\t}\n\t\t#acans-autodiag .b-warn{\n\t\t\tbackground:rgba(178,107,0,.08)!important;\n\t\t\tborder:1px solid rgba(178,107,0,.18)!important;\n\t\t\tcolor:var(--ad-warn)!important;\n\t\t}\n\t\t#acans-autodiag .b-err{\n\t\t\tbackground:rgba(180,35,24,.08)!important;\n\t\t\tborder:1px solid rgba(180,35,24,.18)!important;\n\t\t\tcolor:var(--ad-danger)!important;\n\t\t}\n\t\t#acans-autodiag .tabs-nav{\n\t\t\tdisplay:flex;\n\t\t\tgap:10px;\n\t\t\tflex-wrap:wrap;\n\t\t\tjustify-content:center;\n\t\t\tmargin:0 0 24px 0;\n\t\t}\n\t\t#acans-autodiag .tab-btn{\n\t\t\tpadding:12px 20px;\n\t\t\tbackground:#fff;\n\t\t\tborder:1px solid var(--ad-line);\n\t\t\tborder-radius:999px;\n\t\t\tcolor:rgba(45,45,47,.56)!important;\n\t\t\tfont-family:var(--fh)!important;\n\t\t\tfont-size:14px;\n\t\t\tfont-weight:500!important;\n\t\t\tcursor:pointer;\n\t\t}\n\t\t#acans-autodiag .tab-btn.active{\n\t\t\tbackground:rgba(200,13,18,.05)!important;\n\t\t\tborder-color:rgba(200,13,18,.18)!important;\n\t\t\tcolor:var(--ad-red)!important;\n\t\t}\n\t\t#acans-autodiag .tab-content{display:none;}\n\t\t#acans-autodiag .tab-content.active{display:block;}\n\t\t#acans-autodiag .summary-grid{\n\t\t\tdisplay:grid;\n\t\t\tgrid-template-columns:repeat(3,minmax(0,1fr));\n\t\t\tgap:16px;\n\t\t\tmargin:0 0 24px 0;\n\t\t}\n\t\t#acans-autodiag .sum-ok{background:rgba(33,122,82,.03)!important;}\n\t\t#acans-autodiag .sum-warn{background:rgba(178,107,0,.03)!important;}\n\t\t#acans-autodiag .sum-err{background:rgba(180,35,24,.03)!important;}\n\t\t#acans-autodiag .block-head{\n\t\t\tdisplay:flex;\n\t\t\tjustify-content:space-between;\n\t\t\talign-items:center;\n\t\t\tgap:12px;\n\t\t\tmargin:0 0 12px 0;\n\t\t}\n\t\t#acans-autodiag .block-label{\n\t\t\tfont-size:13px;\n\t\t\tline-height:1.2;\n\t\t\tletter-spacing:.08em;\n\t\t\ttext-transform:uppercase;\n\t\t\tcolor:rgba(45,45,47,.56)!important;\n\t\t\t-webkit-text-fill-color:rgba(45,45,47,.56)!important;\n\t\t}\n\t\t#acans-autodiag .block-score{font-size:30px;line-height:1;}\n\t\t#acans-autodiag .gauge-track{\n\t\t\theight:8px;\n\t\t\tbackground:rgba(45,45,47,.08);\n\t\t\tborder-radius:999px;\n\t\t\toverflow:hidden;\n\t\t\tmargin-bottom:14px;\n\t\t}\n\t\t#acans-autodiag .gauge-fill{\n\t\t\theight:100%;\n\t\t\tborder-radius:999px;\n\t\t\ttransition:width .8s ease;\n\t\t}\n\t\t#acans-autodiag .gauge-ok{background:var(--ad-ok)!important;}\n\t\t#acans-autodiag .gauge-warn{background:var(--ad-warn)!important;}\n\t\t#acans-autodiag .gauge-danger{background:var(--ad-danger)!important;}\n\t\t#acans-autodiag .fact-text{\n\t\t\tpadding:14px 16px;\n\t\t\tborder-radius:12px;\n\t\t\tline-height:1.6;\n\t\t\tmargin-top:14px;\n\t\t}\n\t\t#acans-autodiag .fact-text.fort{\n\t\t\tbackground:rgba(33,122,82,.06)!important;\n\t\t\tborder-left:4px solid var(--ad-ok);\n\t\t}\n\t\t#acans-autodiag .fact-text.faible{\n\t\t\tbackground:rgba(178,107,0,.06)!important;\n\t\t\tborder-left:4px solid var(--ad-warn);\n\t\t}\n\t\t#acans-autodiag .fact-text.critique{\n\t\t\tbackground:rgba(180,35,24,.06)!important;\n\t\t\tborder-left:4px solid var(--ad-danger);\n\t\t}\n\t\t#acans-autodiag .actions-box{\n\t\t\tmargin-top:16px;\n\t\t\tpadding-top:16px;\n\t\t\tborder-top:1px dashed var(--ad-line);\n\t\t}\n\t\t#acans-autodiag .actions-box ul,\n\t\t#acans-autodiag .solutions ul{list-style:none;padding:0;margin:0;}\n\t\t#acans-autodiag .actions-box li,\n\t\t#acans-autodiag .solutions li{\n\t\t\tposition:relative;\n\t\t\tpadding-left:18px;\n\t\t\tmargin:0 0 8px 0;\n\t\t}\n\t\t#acans-autodiag .actions-box li::before,\n\t\t#acans-autodiag .solutions li::before{\n\t\t\tcontent:\"\u2192\";\n\t\t\tposition:absolute;\n\t\t\tleft:0;\n\t\t\tcolor:var(--ad-accent)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-accent)!important;\n\t\t}\n\t\t#acans-autodiag .warning-amf{background:rgba(178,107,0,.04)!important;}\n\t\t#acans-autodiag .warning-amf p{\n\t\t\tcolor:var(--ad-warn)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-warn)!important;\n\t\t\tfont-weight:600!important;\n\t\t}\n\t\t#acans-autodiag .warning-amf ol{margin-left:18px;}\n\t\t#acans-autodiag .hint-err{\n\t\t\tfont-size:14px;\n\t\t\tcolor:var(--ad-danger)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-danger)!important;\n\t\t\tmargin:0 0 12px 0;\n\t\t\tdisplay:none;\n\t\t}\n\t\t#acans-autodiag .hint-err.on{display:block;}\n\t\t#acans-autodiag .ident-grid{\n\t\t\tdisplay:grid;\n\t\t\tgrid-template-columns:repeat(2,minmax(0,1fr));\n\t\t\tgap:10px 18px;\n\t\t\tmargin-top:14px;\n\t\t}\n\t\t#acans-autodiag .ident-grid > div{\n\t\t\tpadding:10px 12px;\n\t\t\tborder:1px solid var(--ad-line);\n\t\t\tborder-radius:12px;\n\t\t\tbackground:#fff;\n\t\t\tcolor:var(--ad-ink)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-ink)!important;\n\t\t}\n\t\t#acans-autodiag .ident-footer{\n\t\t\tmargin-top:16px;\n\t\t\tpadding-top:14px;\n\t\t\tborder-top:1px dashed var(--ad-line);\n\t\t}\n\t\t#acans-autodiag .blocks-grid{\n\t\t\tdisplay:grid;\n\t\t\tgrid-template-columns:repeat(2,minmax(0,1fr));\n\t\t\tgap:16px;\n\t\t}\n\t\t#acans-autodiag .resp-item{\n\t\t\tpadding:16px 0;\n\t\t\tborder-bottom:1px solid var(--ad-line);\n\t\t}\n\t\t#acans-autodiag .resp-q{\n\t\t\tfont-family:var(--fh)!important;\n\t\t\tfont-size:16px;\n\t\t\tcolor:var(--ad-ink)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-ink)!important;\n\t\t\tmargin-bottom:8px;\n\t\t}\n\t\t#acans-autodiag .resp-a{\n\t\t\tpadding:8px 12px;\n\t\t\tmargin:6px 0;\n\t\t\tborder-left:3px solid rgba(27,107,115,.25);\n\t\t\tbackground:rgba(27,107,115,.04);\n\t\t\tborder-radius:8px;\n\t\t\tcolor:var(--ad-ink)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-ink)!important;\n\t\t}\n\t\t#acans-autodiag .cta-block{text-align:center;}\n\t\t#acans-autodiag .cta-line{\n\t\t\tfont-family:var(--fh)!important;\n\t\t\tfont-size:22px!important;\n\t\t\tline-height:1.2!important;\n\t\t\tcolor:var(--ad-ink)!important;\n\t\t\t-webkit-text-fill-color:var(--ad-ink)!important;\n\t\t\tmargin:0 0 18px 0;\n\t\t}\n\t\t#acans-autodiag .content-summary{display:none;}\n\t\t#acans-autodiag .print-page-break{break-after:page;page-break-after:always;}\n\t\t#acans-autodiag .fatal-box{\n\t\t\tbackground:#fff7f7;\n\t\t\tborder:1px solid rgba(180,35,24,.18);\n\t\t\tborder-radius:16px;\n\t\t\tpadding:24px;\n\t\t\tcolor:#7a1a14!important;\n\t\t}\n\t\t#acans-autodiag .acans-autodiag-turnstile-wrap{margin:18px 0 4px 0;}\n\n\t\tbody.print-summary #acans-autodiag .content-full{display:none!important;}\n\t\tbody.print-summary #acans-autodiag .content-summary{display:block!important;}\n\t\tbody.print-summary #acans-autodiag .action-buttons,\n\t\tbody.print-summary #acans-autodiag #mailto-btn,\n\t\tbody.print-summary #acans-autodiag #unlock-btn,\n\t\tbody.print-summary #acans-autodiag #print-summary-btn,\n\t\tbody.print-summary #acans-autodiag #pdf-btn,\n\t\tbody.print-summary #acans-autodiag #callback-btn{display:none!important;}\n\n\t\t@media (max-width:989px){\n\t\t\t#acans-autodiag .summary-grid,\n\t\t\t#acans-autodiag .blocks-grid,\n\t\t\t#acans-autodiag .ident-grid{grid-template-columns:1fr;}\n\t\t}\n\t\t@media (max-width:767px){\n\t\t\t#acans-autodiag .card,\n\t\t\t#acans-autodiag .block-item,\n\t\t\t#acans-autodiag .ident-box,\n\t\t\t#acans-autodiag .solutions,\n\t\t\t#acans-autodiag .sum-box,\n\t\t\t#acans-autodiag .warning-amf,\n\t\t\t#acans-autodiag .cta-block{\n\t\t\t\tpadding:20px!important;\n\t\t\t\tborder-radius:14px!important;\n\t\t\t}\n\t\t\t#acans-autodiag .form-row{grid-template-columns:1fr;}\n\t\t\t#acans-autodiag .tabs-nav{justify-content:flex-start;}\n\t\t\t#acans-autodiag .action-buttons{flex-direction:column;align-items:stretch;}\n\t\t\t#acans-autodiag .btn-main,\n\t\t\t#acans-autodiag .btn-ghost{width:100%;}\n\t\t}\n\t\t@media print{\n\t\t\t#acans-autodiag{background:#fff!important;color:#000!important;}\n\t\t\t#acans-autodiag .btn-main,\n\t\t\t#acans-autodiag .btn-ghost{display:none!important;}\n\t\t\t#acans-autodiag .tab-content{display:block!important;}\n\t\t\t#acans-autodiag .tabs-nav{display:none!important;}\n\t\t\t#acans-autodiag .hidden{display:block!important;}\n\t\t}\n\t<\/style>\n\n\t<div class=\"page\">\n\t\t<div class=\"slide-up\" id=\"intake-form\">\n\t\t\t<div id=\"intro-header\">\n\t\t\t\t<h1 class=\"intro-h\">Questionnaire d'auto-\u00e9valuation<em><\/em><br\/>Efficience et conformit\u00e9 *<\/h1>\n\t\t\t\t<p class=\"intro-sub\">\u00c0 partir de vos r\u00e9ponses, \u00e9valuez la solidit\u00e9 de votre mod\u00e8le \u00e9conomique et r\u00e9glementaire de votre structure.<\/p>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"card\">\n\t\t\t\t<h2 class=\"section-title\" style=\"margin-top:0;\">Informations sur votre structure<\/h2>\n\n\t\t\t\t<div class=\"form-row\">\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label required\">Nom du Cabinet \/ Enseigne<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-nom\" placeholder=\"Ex. : ACANS Patrimoine\" type=\"text\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label\">Forme Juridique<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-statut\" placeholder=\"Ex. : SAS, SARL...\" type=\"text\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"form-row\">\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label\">N\u00b0 Registre du commerce<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-rcs\" placeholder=\"N\u00b0 SIREN \/ SIRET\" type=\"text\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label required\">Nom du G\u00e9rant<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-gerant\" placeholder=\"Pr\u00e9nom et nom\" type=\"text\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label class=\"form-label required\">Adresse<\/label>\n\t\t\t\t\t<input class=\"form-input\" id=\"f-adresse\" placeholder=\"N\u00b0 et libell\u00e9 de la voie\" type=\"text\"\/>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"form-row\">\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label required\">Code postal et ville<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-ville\" placeholder=\"Ex. : 75008 Paris\" type=\"text\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label\">Interlocuteur<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-interlocuteur\" placeholder=\"Pr\u00e9nom et nom\" type=\"text\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"form-row\">\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label\">Chiffre d'affaires (facultatif)<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-ca\" placeholder=\"Ex. : 250 000 \u20ac\" type=\"text\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label required\">Nombre de collaborateurs<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-collab\" min=\"0\" placeholder=\"0\" type=\"number\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"form-row\">\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label\">Association professionnelle<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-asso\" placeholder=\"Ex. : CNCGP, ANACOFI...\" type=\"text\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label\">Questionnaire effectu\u00e9 par :<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-auditeur\" placeholder=\"Nom du partenaire ACANS (ou en ligne)\" type=\"text\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"form-row\">\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label required\">Courriel<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-email\" placeholder=\"contact@cabinet.fr\" type=\"email\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label required\">T\u00e9l\u00e9phone<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-tel\" placeholder=\"01 23 45 67 89\" type=\"tel\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-label required\">T\u00e9l\u00e9phone mobile<\/label>\n\t\t\t\t\t\t<input class=\"form-input\" id=\"f-mobile\" placeholder=\"06 12 34 56 78\" type=\"tel\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label class=\"form-label required\">Statuts d\u00e9tenus<\/label>\n\t\t\t\t\t<div class=\"cb-grid\">\n\t\t\t\t\t\t<label class=\"cb-item\"><input class=\"statut-cb\" type=\"checkbox\" value=\"CIF\"\/> CIF<\/label>\n\t\t\t\t\t\t<label class=\"cb-item\"><input class=\"statut-cb\" type=\"checkbox\" value=\"COA\"\/> COA<\/label>\n\t\t\t\t\t\t<label class=\"cb-item\"><input class=\"statut-cb\" type=\"checkbox\" value=\"MIA\"\/> MIA<\/label>\n\t\t\t\t\t\t<label class=\"cb-item\"><input class=\"statut-cb\" type=\"checkbox\" value=\"MIOBSP\"\/> MIOBSP<\/label>\n\t\t\t\t\t\t<label class=\"cb-item\"><input class=\"statut-cb\" type=\"checkbox\" value=\"COBSP\"\/> COBSP<\/label>\n\t\t\t\t\t\t<label class=\"cb-item\"><input class=\"statut-cb\" type=\"checkbox\" value=\"Carte T\"\/> Carte T<\/label>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div style=\"margin-top:24px; margin-bottom:24px; padding:16px; background:rgba(27,107,115,.03); border:1px solid rgba(27,107,115,.08); border-radius:8px;\">\n\t\t\t\t\t<p style=\"font-size:.8rem; color:var(--muted); line-height:1.5; margin:0; text-align:justify;\">\n\t\t\t\t\t\t<strong style=\"color:var(--sky);\">Confidentialit\u00e9 et donn\u00e9es personnelles (RGPD)&nbsp;:<\/strong>\n\t\t\t\t\t\tEn cliquant sur \"D\u00e9marrer le questionnaire\", vous acceptez que les informations saisies et les r\u00e9sultats de votre \u00e9valuation soient transmis \u00e0 ACANS et fassent l'objet d'un traitement informatique. Ces donn\u00e9es ont pour finalit\u00e9 exclusive l'analyse strat\u00e9gique de votre cabinet. Vous nous autorisez express\u00e9ment \u00e0 utiliser ces informations pour vous recontacter afin d'\u00e9changer sur votre diagnostic.\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\n\t\t\t\t<p class=\"hint-err\" id=\"form-err\" style=\"text-align:center; margin-bottom:12px;\"><\/p>\n\n\t\t\t\t<div class=\"acans-autodiag-turnstile-wrap\">\n\t\t\t\t\t<div class=\"cf-turnstile\" data-sitekey=\"REMPLACEZ_ICI_VOTRE_SITE_KEY\"><\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<button class=\"btn-main\" onclick=\"startAuditQuiz()\">D\u00e9marrer le questionnaire<\/button>\n\t\t\t\t<p style=\"text-align:center; font-size:1rem; color:var(--muted); margin-top:16px; font-style:italic;\">* Ce questionnaire ne constitue \u00e0 ce stade ni une analyse officielle, ni une pr\u00e9conisation.<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<div class=\"prog-wrap hidden\" id=\"prog-wrap\">\n\t\t\t<div class=\"prog-meta\">\n\t\t\t\t<span id=\"prog-lbl\">Question <strong>1<\/strong> \/ 32<\/span>\n\t\t\t\t<span id=\"prog-pct\">0 %<\/span>\n\t\t\t<\/div>\n\t\t\t<div class=\"prog-track\">\n\t\t\t\t<div class=\"prog-fill\" id=\"prog-fill\" style=\"width:0%\"><\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<div class=\"hidden\" id=\"quiz\"><\/div>\n\n\t\t<div class=\"hidden\" id=\"result\">\n\t\t\t<div class=\"res-top\">\n\t\t\t\t<h2 id=\"main-result-title\">Analyse strat\u00e9gique indicative globale<\/h2>\n\t\t\t\t<p class=\"res-date\" id=\"res-date\" style=\"margin-bottom:4px;\"><\/p>\n\t\t\t\t<p style=\"font-size:.85rem; color:var(--muted); font-style:italic; margin-bottom:24px;\">(\u00e9tabli sur la base de vos d\u00e9clarations)<\/p>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"ident-box\" id=\"result-identity\"><\/div>\n\n\t\t\t<div id=\"detailed-results\">\n\t\t\t\t<div class=\"tabs-nav\">\n\t\t\t\t\t<button class=\"tab-btn active\" id=\"btn-tab-perf\" onclick=\"switchTab('perf')\">1. Performance &amp; Valorisation<\/button>\n\t\t\t\t\t<button class=\"tab-btn\" id=\"btn-tab-comp\" onclick=\"switchTab('comp')\">2. Robustesse &amp; Conformit\u00e9<\/button>\n\t\t\t\t\t<button class=\"tab-btn\" id=\"btn-tab-resp\" onclick=\"switchTab('resp')\">3. Compilation des r\u00e9ponses<\/button>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"tab-content active\" id=\"tab-perf\">\n\t\t\t\t\t<div style=\"text-align:center; margin-bottom:20px;\">\n\t\t\t\t\t\t<h3 class=\"section-title\" style=\"border:none; margin-top:0;\">Score indicatif de performance<\/h3>\n\t\t\t\t\t\t<div class=\"ring-wrap\">\n\t\t\t\t\t\t\t<svg width=\"160\" height=\"160\" viewBox=\"0 0 120 120\">\n\t\t\t\t\t\t\t\t<circle class=\"ring-track\" cx=\"60\" cy=\"60\" r=\"50\"><\/circle>\n\t\t\t\t\t\t\t\t<circle class=\"ring-fill\" cx=\"60\" cy=\"60\" id=\"ring-arc-perf\" r=\"50\" stroke-dasharray=\"314.16\" stroke-dashoffset=\"314.16\"><\/circle>\n\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t\t<div class=\"ring-val\">\n\t\t\t\t\t\t\t\t<span class=\"big\" id=\"score-num-perf\">0<\/span>\n\t\t\t\t\t\t\t\t<span class=\"small\">\/100<\/span>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"status-badge\" id=\"status-badge-perf\">\u2014<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<h3 class=\"section-title\">1. R\u00e9sultats de l'analyse strat\u00e9gique<\/h3>\n\t\t\t\t\t<div id=\"perf-part1-content\"><\/div>\n\n\t\t\t\t\t<h3 class=\"section-title\">2. Ce qu'il faudrait mettre en \u0153uvre<\/h3>\n\t\t\t\t\t<div class=\"blocks-grid\" id=\"perf-part2-content\"><\/div>\n\n\t\t\t\t\t<div class=\"content-full\">\n\t\t\t\t\t\t<h3 class=\"section-title gold\">3. Comment ACANS peut vous aider<\/h3>\n\t\t\t\t\t\t<div id=\"perf-part3-content\">\n\t\t\t\t\t\t\t<div class=\"solutions\">\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:0;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : business model<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Acc\u00e8s facilit\u00e9 \u00e0 des architectures ouvertes et \u00e0 des partenariats structurants.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Accompagnement expert dans la valorisation du portefeuille client.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : organisation<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Approche organisationnelle compl\u00e8te et cartographie pr\u00e9cise.<\/li>\n\t\t\t\t\t\t\t\t\t<li>D\u00e9ploiement de solutions technologiques centralis\u00e9es.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : compliance<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Aide \u00e0 l'am\u00e9lioration de votre conformit\u00e9 r\u00e9glementaire.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Parcours clients juridiquement et documentairement renforc\u00e9s.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : d\u00e9veloppement<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Appui pour la structuration d'offres premium et HNWI.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Soutien marketing et strat\u00e9gique.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : pilotage<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Impl\u00e9mentation de tableaux de bord financiers sur mesure.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Coaching dirigeant cibl\u00e9.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : capacit\u00e9s d'extension<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Expertise SI pour absorber une croissance forte.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Mise \u00e0 disposition d'outils digitaux en marque blanche.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"content-summary\">\n\t\t\t\t\t\t<h3 class=\"section-title gold\">3. ACANS peut vous aider \u00e0 :<\/h3>\n\t\t\t\t\t\t<div class=\"solutions\">\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>Structurer un business model robuste et diff\u00e9renciant.<\/li>\n\t\t\t\t\t\t\t\t<li>Transformer votre organisation en moteur de performance.<\/li>\n\t\t\t\t\t\t\t\t<li>Faire de la compliance un avantage comp\u00e9titif.<\/li>\n\t\t\t\t\t\t\t\t<li>Acc\u00e9l\u00e9rer votre d\u00e9veloppement avec m\u00e9thode.<\/li>\n\t\t\t\t\t\t\t\t<li>D\u00e9ployer une strat\u00e9gie de croissance ma\u00eetris\u00e9e.<\/li>\n\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"print-page-break\"><\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"tab-content\" id=\"tab-comp\">\n\t\t\t\t\t<div style=\"text-align:center; margin-bottom:20px;\">\n\t\t\t\t\t\t<h3 class=\"section-title\" style=\"border:none; margin-top:0;\">Score indicatif de conformit\u00e9 r\u00e9glementaire<\/h3>\n\t\t\t\t\t\t<div class=\"ring-wrap\">\n\t\t\t\t\t\t\t<svg width=\"160\" height=\"160\" viewBox=\"0 0 120 120\">\n\t\t\t\t\t\t\t\t<circle class=\"ring-track\" cx=\"60\" cy=\"60\" r=\"50\"><\/circle>\n\t\t\t\t\t\t\t\t<circle class=\"ring-fill\" cx=\"60\" cy=\"60\" id=\"ring-arc-comp\" r=\"50\" stroke-dasharray=\"314.16\" stroke-dashoffset=\"314.16\"><\/circle>\n\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t\t<div class=\"ring-val\">\n\t\t\t\t\t\t\t\t<span class=\"big\" id=\"score-num-comp\">0<\/span>\n\t\t\t\t\t\t\t\t<span class=\"small\">\/100<\/span>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"status-badge\" id=\"status-badge-comp\">\u2014<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"warning-amf\">\n\t\t\t\t\t\t<p>\u00c0 retenir : ce rapport met en \u00e9vidence, \u00e0 titre purement indicatif, plusieurs zones classiquement sensibles lors des contr\u00f4les et revues de conformit\u00e9.<\/p>\n\t\t\t\t\t\t<ol>\n\t\t\t\t\t\t\t<li><strong>Apport de la preuve :<\/strong> capacit\u00e9 \u00e0 produire un dossier client complet, horodat\u00e9 et opposable.<\/li>\n\t\t\t\t\t\t\t<li><strong>R\u00e9trocessions :<\/strong> capacit\u00e9 \u00e0 d\u00e9montrer l\u2019am\u00e9lioration effective du service rendu.<\/li>\n\t\t\t\t\t\t\t<li><strong>LCB-FT :<\/strong> mise \u00e0 jour des donn\u00e9es KYC, origine des fonds et documentation interne.<\/li>\n\t\t\t\t\t\t\t<li><strong>ESG :<\/strong> recueil et tra\u00e7abilit\u00e9 des pr\u00e9f\u00e9rences de durabilit\u00e9.<\/li>\n\t\t\t\t\t\t<\/ol>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<h3 class=\"section-title\">1. Bilan de vos zones de risque r\u00e9glementaire<\/h3>\n\t\t\t\t\t<div id=\"comp-part1-content\"><\/div>\n\n\t\t\t\t\t<h3 class=\"section-title\">2. Actions de mise en conformit\u00e9 ou de renforcement<\/h3>\n\t\t\t\t\t<div class=\"blocks-grid\" id=\"comp-part2-content\"><\/div>\n\n\t\t\t\t\t<div class=\"content-full\">\n\t\t\t\t\t\t<h3 class=\"section-title gold\">3. L'accompagnement ACANS COMPLIANCE<\/h3>\n\t\t\t\t\t\t<div id=\"comp-part3-content\">\n\t\t\t\t\t\t\t<div class=\"solutions\">\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:0;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : Gouvernance &amp; Organisation<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Transition vers une compliance int\u00e9gr\u00e9e, document\u00e9e et pilot\u00e9e.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Aide \u00e0 la structuration d\u2019un dispositif documentaire opposable.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : LCB-FT<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Int\u00e9gration d'outils de filtrage centralis\u00e9s et aide \u00e0 la mise en conformit\u00e9 KYC.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Assistance \u00e0 la structuration d\u2019une proc\u00e9dure d\u2019escalade interne.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : Devoir de Conseil et ESG<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Accompagnement dans l\u2019\u00e9laboration des tableaux d\u2019agr\u00e9gation de frais.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Int\u00e9gration d\u2019un module de profilage ESG structur\u00e9.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : Risques Op\u00e9rationnels<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Assistance technique et documentaire en cas de contr\u00f4le.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Aide \u00e0 l\u2019am\u00e9lioration de l\u2019archivage et des protocoles internes.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t\t<p style=\"font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--gold-lt)\">L'apport ACANS sur : Produits et March\u00e9s Cibles<\/p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>Sourcing et audit documentaire des offres en coh\u00e9rence avec vos agr\u00e9ments.<\/li>\n\t\t\t\t\t\t\t\t\t<li>Industrialisation de votre diversification m\u00e9tier.<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<h3 class=\"section-title gold\">ACANS COMPLIANCE vous accompagne pour aller plus loin<\/h3>\n\t\t\t\t\t<div class=\"solutions\">\n\t\t\t\t\t\t<p style=\"margin-bottom:16px; color:var(--text); line-height:1.6;\">Nous vous donnons la possibilit\u00e9 de vous inscrire dans une d\u00e9marche de formation continue et de structuration documentaire renforc\u00e9e.<\/p>\n\t\t\t\t\t\t<p style=\"font-weight:600; color:var(--gold-lt); margin-bottom:12px;\">Vos avantages :<\/p>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>Renforcement de la cr\u00e9dibilit\u00e9 aupr\u00e8s des clients, partenaires et institutionnels<\/li>\n\t\t\t\t\t\t\t<li>Diff\u00e9renciation strat\u00e9gique dans un march\u00e9 concurrentiel sensible aux enjeux ESG<\/li>\n\t\t\t\t\t\t\t<li>Am\u00e9lioration r\u00e9glementaire et r\u00e9putationnelle gr\u00e2ce \u00e0 une meilleure structuration des processus<\/li>\n\t\t\t\t\t\t\t<li>Am\u00e9lioration de la gouvernance interne et clarification des responsabilit\u00e9s<\/li>\n\t\t\t\t\t\t\t<li>Valorisation durable de l\u2019image de marque<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"print-page-break\"><\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"tab-content\" id=\"tab-resp\">\n\t\t\t\t\t<div class=\"res-top\">\n\t\t\t\t\t\t<h3 class=\"section-title\" style=\"border:none; margin-top:0;\">Compilation des r\u00e9ponses aux questionnaires<\/h3>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"ident-box\" id=\"reponses-content\" style=\"margin-bottom:30px;\"><\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"cta-block\">\n\t\t\t\t\t<p class=\"cta-line\">Passez \u00e0 l'\u00e9tape sup\u00e9rieure de votre d\u00e9veloppement<\/p>\n\t\t\t\t\t<button class=\"btn-main\" id=\"mailto-btn\">DEMANDEZ UN RENDEZ-VOUS AVEC UN CONSEILLER ACANS<\/button>\n\n\t\t\t\t\t<div class=\"action-buttons\">\n\t\t\t\t\t\t<button class=\"btn-ghost\" id=\"callback-btn\" onclick=\"requestCallback()\">\ud83d\udcde Je souhaite \u00eatre rappel\u00e9<\/button>\n\t\t\t\t\t\t<button class=\"btn-ghost\" id=\"unlock-btn\" onclick=\"unlockPartnerMode()\">\ud83d\udd12 D\u00e9bloquer le rapport complet ACANS<\/button>\n\t\t\t\t\t\t<button class=\"btn-ghost\" id=\"print-summary-btn\" onclick=\"printReport('summary')\">\ud83d\udda8\ufe0f Imprimer le rapport (R\u00e9sum\u00e9)<\/button>\n\t\t\t\t\t\t<button class=\"btn-ghost\" id=\"pdf-btn\" onclick=\"saveAsPDF()\">\ud83d\udcc4 Enregistrer en PDF<\/button>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t<script>\n\t(function(){\n\t\t\"use strict\";\n\n\t\tconst LT = ['A','B','C','D','E','F','G'];\n\t\tconst MAIL_ENDPOINT = '\/wp-json\/acans\/v1\/mail';\n\n\t\tconst MAX_PERF = {\n\t\t\t\"Business Model\":55,\n\t\t\t\"Organisation\":60,\n\t\t\t\"Compliance\":35,\n\t\t\t\"D\u00e9veloppement\":30,\n\t\t\t\"Pilotage\":25,\n\t\t\t\"\u00c9volutivit\u00e9\":20\n\t\t};\n\n\t\tconst MAX_COMP = {\n\t\t\t\"Gouvernance & Organisation\":40,\n\t\t\t\"LCB-FT\":30,\n\t\t\t\"Devoir de Conseil & ESG\":30,\n\t\t\t\"Risques Op\u00e9rationnels\":30,\n\t\t\t\"Produits & March\u00e9s Cibles\":20\n\t\t};\n\n\t\tconst Q = [\n\t\t\t{id:1, audit:\"perf\", bloc:\"Business Model\", icon:\"\ud83c\udfaf\", title:\"R\u00e9partition de votre chiffre d'affaires\", sub:\"Classez vos activit\u00e9s de 0 \u00e0 7 (0 = pas d'activit\u00e9, 1 = principale, 2 = secondaire, 3 = troisi\u00e8me en CA, ...)\", type:\"rank\", opts:[\"\ud83d\udcbc Conseil financier (CIF)\",\"\ud83d\udee1\ufe0f Courtage IARD\",\"\ud83d\udcc8 Courtage Assurance Vie France\",\"\ud83c\udfe6 Courtage Assurance Vie Luxembourg\",\"\ud83c\udfe0 Immobilier\",\"\u2696\ufe0f Honoraires conseil\",\"\ud83c\udfaf Mix \u00e9quilibr\u00e9\"]},\n\t\t\t{id:\"1bis\", audit:\"perf\", bloc:\"Business Model\", icon:\"\ud83d\udcca\", title:\"Concentration de votre activit\u00e9 principale\", sub:\"Quelle part repr\u00e9sente votre activit\u00e9 principale dans votre CA ?\", type:\"single\", opts:[{l:\"Moins de 40 % (Diversifi\u00e9)\",s:10},{l:\"40 \u2013 60 % (Dominante saine)\",s:7},{l:\"60 \u2013 80 % (Concentration \u00e9lev\u00e9e)\",s:3},{l:\"Plus de 80 % (D\u00e9pendance critique)\",s:0}]},\n\t\t\t{id:2, audit:\"perf\", bloc:\"Business Model\", icon:\"\ud83d\udcb0\", title:\"R\u00e9partition du revenu de votre structure\", sub:\"Quelle est la part des revenus r\u00e9currents (encours) sur l'ensemble du CA ?\", type:\"single\", opts:[{l:\"\u2265 70 %\",s:15},{l:\"50 \u2013 70 %\",s:12},{l:\"30 \u2013 50 %\",s:8},{l:\"15 \u2013 30 %\",s:4},{l:\"< 15 %\",s:0}]},\n\t\t\t{id:3, audit:\"perf\", bloc:\"Business Model\", icon:\"\ud83d\udcca\", title:\"Concentration clients\", sub:\"Part du CA g\u00e9n\u00e9r\u00e9e par vos 10 plus gros clients, ou d'autres tr\u00e8s gros clients\", type:\"single\", opts:[{l:\"Moins de 25 %\",s:10},{l:\"25 \u2013 40 %\",s:7},{l:\"40 \u2013 60 %\",s:4},{l:\"Plus de 60 %\",s:0},{l:\"Je ne sais pas\",s:2}]},\n\t\t\t{id:4, audit:\"perf\", bloc:\"Organisation\", icon:\"\u2699\ufe0f\", title:\"Automatisation du processus de production\", sub:\"Souscriptions, dossiers, documentation, etc.\", type:\"single\", opts:[{l:\"Automatis\u00e9 + pilotage data\",s:20},{l:\"Automatis\u00e9 workflow\",s:16},{l:\"Semi automatis\u00e9\",s:12},{l:\"Structur\u00e9 manuel\",s:6},{l:\"Manuel pur\",s:0}]},\n\t\t\t{id:5, audit:\"perf\", bloc:\"Organisation\", icon:\"\ud83d\udea7\", title:\"Dans votre activit\u00e9 quotidienne, qu'est-ce qui vous mobilise le plus de temps ?\", sub:\"S\u00e9lectionnez tout ce qui vous correspond\", type:\"multi\", opts:[\"Multi saisie sur diff\u00e9rents supports\",\"Collecte documents clients\",\"Le temps pass\u00e9 au sourcing\",\"Multi partenaires non centralis\u00e9s\",\"Outils non connect\u00e9s\",\"Tout est d\u00e9j\u00e0 optimis\u00e9 \ud83d\ude80\"]},\n\t\t\t{id:6, audit:\"perf\", bloc:\"Organisation\", icon:\"\u23f1\", title:\"Temps hebdomadaire consacr\u00e9 \u00e0 la gestion interne de votre structure toutes activit\u00e9s administratives confondues\", type:\"single\", opts:[{l:\"< 10 h\",s:20},{l:\"10 \u2013 20 h\",s:15},{l:\"20 \u2013 40 h\",s:10},{l:\"40 \u2013 60 h\",s:5},{l:\"> 60 h\",s:0}]},\n\t\t\t{id:7, audit:\"perf\", bloc:\"Compliance\", icon:\"\ud83d\udee1\", title:\"Comment est g\u00e9r\u00e9e la gestion de vos obligations de compliance et conformit\u00e9 ?\", type:\"single\", opts:[{l:\"Pilot\u00e9e KPI + audit interne\",s:15},{l:\"Process + contr\u00f4le\",s:12},{l:\"Process \u00e9crits\",s:8},{l:\"R\u00e9actif\",s:4},{l:\"Subi\",s:0}]},\n\t\t\t{id:8, audit:\"perf\", bloc:\"Compliance\", icon:\"\u26a0\ufe0f\", title:\"R\u00e9silience cabinet\", sub:\"Si vous \u00eates absent de votre entreprise pendant un mois (vacances, maladie,...) : que se passe-t-il ?\", type:\"single\", opts:[{l:\"Activit\u00e9 continue normalement\",s:20},{l:\"Activit\u00e9 ralentit\",s:12},{l:\"Activit\u00e9 bloqu\u00e9e\",s:0}]},\n\t\t\t{id:9, audit:\"perf\", bloc:\"D\u00e9veloppement\", icon:\"\ud83d\udcc8\", title:\"Comment faites-vous pour l'acquisition de nouveaux clients ?\", type:\"single\", opts:[{l:\"Multicanal pilot\u00e9\",s:15},{l:\"Marketing structur\u00e9\",s:12},{l:\"R\u00e9seau de partenaires structur\u00e9\",s:8},{l:\"Recommandation seule\",s:4},{l:\"R\u00e9seau perso seul\",s:0}]},\n\t\t\t{id:10, audit:\"perf\", bloc:\"D\u00e9veloppement\", icon:\"\ud83c\udfaf\", title:\"Taux de transformation\", sub:\"Prospects convertis en clients\", type:\"single\", opts:[{l:\"\u2265 60 %\",s:15},{l:\"40 \u2013 60 %\",s:12},{l:\"25 \u2013 40 %\",s:8},{l:\"< 25 %\",s:4},{l:\"Non mesur\u00e9\",s:0}]},\n\t\t\t{id:11, audit:\"perf\", bloc:\"Pilotage\", icon:\"\ud83d\udca1\", title:\"Avez-vous un pilotage de rentabilit\u00e9 de vos clients ?\", type:\"single\", opts:[{l:\"Client r\u00e9el + pr\u00e9visionnel\",s:15},{l:\"Client r\u00e9el\",s:12},{l:\"Segment\",s:8},{l:\"Approximatif\",s:4},{l:\"Aucun\",s:0}]},\n\t\t\t{id:12, audit:\"perf\", bloc:\"Pilotage\", icon:\"\ud83d\ude80\", title:\"Si 20 \u00e0 30 % de votre temps \u00e9tait lib\u00e9r\u00e9, quelle serait votre priorit\u00e9 ?\", type:\"single\", opts:[{l:\"HNWI \u00b7 Premium \u00b7 Structuration patrimoniale\",s:10},{l:\"Diversification des revenus\",s:7},{l:\"Augmentation du chiffre d'affaires\",s:5},{l:\"Stabilisation de l'organisation\",s:3}]},\n\t\t\t{id:13, audit:\"perf\", bloc:\"\u00c9volutivit\u00e9\", icon:\"\ud83d\udcbb\", title:\"Digitalisation relation client\", type:\"single\", opts:[{l:\"100 % digital + portail client\",s:5},{l:\"Mix digital \/ humain\",s:4},{l:\"CRM + email\",s:3},{l:\"Email seul\",s:2},{l:\"Papier \/ artisanal\",s:0}]},\n\t\t\t{id:14, audit:\"perf\", bloc:\"\u00c9volutivit\u00e9\", icon:\"\ud83d\udcca\", title:\"Capacit\u00e9 d'absorber un doublement de clients\", type:\"single\", opts:[{l:\"Sans recruter\",s:5},{l:\"Avec 1 recrutement\",s:4},{l:\"Avec restructuration lourde\",s:2},{l:\"Impossible\",s:0}]},\n\t\t\t{id:15, audit:\"perf\", bloc:\"\u00c9volutivit\u00e9\", icon:\"\ud83d\ude80\", title:\"En combien de temps \u00eates-vous capable d'int\u00e9grer de nouveaux produits ?\", type:\"single\", opts:[{l:\"< 2 semaines\",s:5},{l:\"1 mois\",s:4},{l:\"2-3 mois\",s:2},{l:\"> 3 mois\",s:0}]},\n\t\t\t{id:16, audit:\"perf\", bloc:\"\u00c9volutivit\u00e9\", icon:\"\ud83e\udd1d\", title:\"Combien avez-vous de partenaires fournisseurs ?\", type:\"single\", opts:[{l:\"Diversifi\u00e9 (5+ partenaires)\",s:5},{l:\"3-4 partenaires cl\u00e9s\",s:4},{l:\"1-2 partenaires dominants\",s:2},{l:\"Mono partenaire\",s:0}]},\n\n\t\t\t{id:18, audit:\"comp\", bloc:\"Gouvernance & Organisation\", icon:\"\u2696\ufe0f\", title:\"Corpus proc\u00e9dural interne\", sub:\"Disposez-vous d\u2019un manuel \u00e0 jour (archivage s\u00e9curis\u00e9, s\u00e9lection produits hors standard) ?\", type:\"single\", opts:[{l:\"Oui, totalement document\u00e9 et \u00e0 jour\",s:10},{l:\"Partiellement (\u00e0 actualiser)\",s:5},{l:\"Non, processus informels\",s:0}]},\n\t\t\t{id:19, audit:\"comp\", bloc:\"Gouvernance & Organisation\", icon:\"\ud83e\udd1d\", title:\"Proc\u00e9dures d'entr\u00e9e en relation\", sub:\"Respectez-vous les proc\u00e9dures (DER, lettre de mission, RGPD, DORA, DPO) avec preuve horodat\u00e9e ?\", type:\"single\", opts:[{l:\"Oui, tra\u00e7abilit\u00e9 num\u00e9rique et horodatage\",s:10},{l:\"Oui, mais suivi manuel ou papier\",s:5},{l:\"Non, preuve difficile \u00e0 fournir\",s:0}]},\n\t\t\t{id:20, audit:\"comp\", bloc:\"Gouvernance & Organisation\", icon:\"\u26a0\ufe0f\", title:\"Gestion des conflits d'int\u00e9r\u00eats\", sub:\"Votre cartographie identifie-t-elle les situations de cumul et les mesures de rem\u00e9diation associ\u00e9es ?\", type:\"single\", opts:[{l:\"Oui, cartographie pr\u00e9cise et \u00e0 jour\",s:10},{l:\"Cartographie existante mais standard\",s:5},{l:\"Non\",s:0}]},\n\t\t\t{id:21, audit:\"comp\", bloc:\"Gouvernance & Organisation\", icon:\"\ud83d\udcc1\", title:\"Traitement des r\u00e9clamations\", sub:\"Existe-t-il un registre centralis\u00e9 des r\u00e9clamations et d\u00e9lais de r\u00e9ponse ?\", type:\"single\", opts:[{l:\"Oui, registre digitalis\u00e9 et process strict\",s:10},{l:\"Oui, format Excel ou papier basique\",s:5},{l:\"Non, suivi au cas par cas\",s:0}]},\n\t\t\t{id:22, audit:\"comp\", bloc:\"LCB-FT\", icon:\"\ud83d\udd0d\", title:\"Connaissance client (KYC)\", sub:\"Disposez-vous d\u2019une analyse document\u00e9e de l'origine des fonds et de contr\u00f4les stricts des PPE ?\", type:\"single\", opts:[{l:\"Oui, protocole rigoureux\",s:10},{l:\"Partiellement, actualisation irr\u00e9guli\u00e8re\",s:5},{l:\"Non, recueil d\u00e9claratif simple\",s:0}]},\n\t\t\t{id:23, audit:\"comp\", bloc:\"LCB-FT\", icon:\"\ud83d\udcc8\", title:\"Surveillance des transactions\", sub:\"Avez-vous param\u00e9tr\u00e9 des seuils d\u2019alerte pour les op\u00e9rations atypiques ou sous sanctions ?\", type:\"single\", opts:[{l:\"Oui, outils de filtrage automatis\u00e9s\",s:10},{l:\"Oui, mais contr\u00f4le manuel\",s:5},{l:\"Non, aucun param\u00e9trage\",s:0}]},\n\t\t\t{id:24, audit:\"comp\", bloc:\"LCB-FT\", icon:\"\ud83d\udea8\", title:\"D\u00e9clarations de soup\u00e7ons (TRACFIN)\", sub:\"Avez-vous une proc\u00e9dure d\u2019escalade interne en cas d'inertie sur un flux incoh\u00e9rent ?\", type:\"single\", opts:[{l:\"Oui, proc\u00e9dure claire et document\u00e9e\",s:10},{l:\"Principe connu mais non formalis\u00e9\",s:5},{l:\"Non\",s:0}]},\n\t\t\t{id:25, audit:\"comp\", bloc:\"Devoir de Conseil & ESG\", icon:\"\ud83d\udcb6\", title:\"Justification des r\u00e9trocessions\", sub:\"Pouvez-vous prouver sur support durable l\u2019am\u00e9lioration du service rendu justifiant la commission ?\", type:\"single\", opts:[{l:\"Oui, d\u00e9montrable et formalis\u00e9e par \u00e9crit\",s:10},{l:\"Partiellement, peu document\u00e9\",s:5},{l:\"Non, difficult\u00e9 \u00e0 justifier\",s:0}]},\n\t\t\t{id:26, audit:\"comp\", bloc:\"Devoir de Conseil & ESG\", icon:\"\ud83d\udcca\", title:\"Transparence des frais\", sub:\"Fournissez-vous un tableau agr\u00e9g\u00e9 (frais entr\u00e9e, gestion, arbitrage, r\u00e9trocessions) avec impact rendement ?\", type:\"single\", opts:[{l:\"Oui, agr\u00e9gation compl\u00e8te\",s:10},{l:\"Oui, informations donn\u00e9es mais non agr\u00e9g\u00e9es\",s:5},{l:\"Non ou donn\u00e9es manquantes\",s:0}]},\n\t\t\t{id:27, audit:\"comp\", bloc:\"Devoir de Conseil & ESG\", icon:\"\ud83c\udf31\", title:\"Pr\u00e9f\u00e9rences de durabilit\u00e9 (ESG)\", sub:\"Votre profilage int\u00e8gre-t-il les crit\u00e8res SFDR\/Taxonomie et documentez-vous les arbitrages ?\", type:\"single\", opts:[{l:\"Oui, recueil complet et ad\u00e9quation\",s:10},{l:\"Recueil superficiel, ad\u00e9quation difficile \u00e0 prouver\",s:5},{l:\"Non, omission fr\u00e9quente\",s:0}]},\n\t\t\t{id:28, audit:\"comp\", bloc:\"Risques Op\u00e9rationnels\", icon:\"\ud83d\udd12\", title:\"S\u00e9curit\u00e9 des flux financiers\", sub:\"Quels sont vos protocoles de s\u00e9paration stricte des flux financiers clients (hors honoraires) ?\", type:\"single\", opts:[{l:\"Protocoles stricts, croisement impossible\",s:10},{l:\"S\u00e9paration d\u00e9clarative \/ manuelle\",s:5},{l:\"Aucun protocole formel\",s:0}]},\n\t\t\t{id:29, audit:\"comp\", bloc:\"Risques Op\u00e9rationnels\", icon:\"\ud83d\udcf1\", title:\"Enregistrement et tra\u00e7abilit\u00e9\", sub:\"Avez-vous un syst\u00e8me de tra\u00e7abilit\u00e9 des \u00e9changes (VoIP\/GED\/SMS\/WhatsApp) pour la passation d'ordres ?\", type:\"single\", opts:[{l:\"Oui, solutions professionnelles de capture\",s:10},{l:\"Conservation manuelle (captures \u00e9cran)\",s:5},{l:\"Non, \u00e9changes non centralis\u00e9s\",s:0}]},\n\t\t\t{id:30, audit:\"comp\", bloc:\"Risques Op\u00e9rationnels\", icon:\"\ud83d\udee1\ufe0f\", title:\"Cybers\u00e9curit\u00e9 et RGPD\", sub:\"Avez-vous une proc\u00e9dure CNIL 72h et vos serveurs font-ils l'objet de PRA\/PCA audit\u00e9s ?\", type:\"single\", opts:[{l:\"Oui, PCA\/PRA audit\u00e9s et proc\u00e9dure CNIL\",s:10},{l:\"Sauvegardes simples, pas de PCA strict\",s:5},{l:\"Non\",s:0}]},\n\t\t\t{id:31, audit:\"comp\", bloc:\"Produits & March\u00e9s Cibles\", icon:\"\ud83c\udfaf\", title:\"Gouvernance des produits\", sub:\"Documentez-vous l\u2019ad\u00e9quation du client avec le march\u00e9 cible, surtout pour les actifs non r\u00e9gul\u00e9s ?\", type:\"single\", opts:[{l:\"Oui, preuve \u00e9crite de correspondance exacte\",s:10},{l:\"Partiellement, v\u00e9rification informelle\",s:5},{l:\"Non\",s:0}]},\n\t\t\t{id:32, audit:\"comp\", bloc:\"Produits & March\u00e9s Cibles\", icon:\"\ud83d\udea7\", title:\"D\u00e9passement d\u2019agr\u00e9ment\", sub:\"Sur le crowdfunding ou l'immobilier complexe, vous limitez-vous \u00e0 la recommandation de la plateforme ?\", type:\"single\", opts:[{l:\"Oui, limites d'agr\u00e9ment parfaitement ma\u00eetris\u00e9es\",s:10},{l:\"Parfois \u00e0 la limite (risque requalification)\",s:5},{l:\"Non, ou ne sait pas\",s:0}]}\n\t\t];\n\n\t\tconst STATE = {\n\t\t\tidx: 0,\n\t\t\tscoresPerf: {},\n\t\t\tscoresComp: {},\n\t\t\tanswers: {},\n\t\t\tfirmData: {},\n\t\t\tglobalPerfScore: 0,\n\t\t\tglobalCompScore: 0,\n\t\t\tglobalSortedPerf: [],\n\t\t\tglobalSortedComp: []\n\t\t};\n\n\t\tfunction $(id){ return document.getElementById(id); }\n\t\tfunction $all(sel, root){ return Array.from((root || document).querySelectorAll(sel)); }\n\n\t\tfunction escapeHtml(value){\n\t\t\treturn String(value == null ? '' : value)\n\t\t\t\t.replace(\/&\/g, '&amp;')\n\t\t\t\t.replace(\/<\/g, '&lt;')\n\t\t\t\t.replace(\/>\/g, '&gt;')\n\t\t\t\t.replace(\/\"\/g, '&quot;')\n\t\t\t\t.replace(\/'\/g, '&#039;');\n\t\t}\n\n\t\tfunction resetState(){\n\t\t\tSTATE.idx = 0;\n\t\t\tSTATE.scoresPerf = {};\n\t\t\tSTATE.scoresComp = {};\n\t\t\tSTATE.answers = {};\n\t\t\tSTATE.firmData = {};\n\t\t\tSTATE.globalPerfScore = 0;\n\t\t\tSTATE.globalCompScore = 0;\n\t\t\tSTATE.globalSortedPerf = [];\n\t\t\tSTATE.globalSortedComp = [];\n\n\t\t\t$('quiz').innerHTML = '';\n\t\t\t$('result').classList.add('hidden');\n\t\t\t$('result').classList.remove('slide-up');\n\t\t\t$('perf-part1-content').innerHTML = '';\n\t\t\t$('perf-part2-content').innerHTML = '';\n\t\t\t$('comp-part1-content').innerHTML = '';\n\t\t\t$('comp-part2-content').innerHTML = '';\n\t\t\t$('reponses-content').innerHTML = '';\n\t\t\t$('score-num-perf').textContent = '0';\n\t\t\t$('score-num-comp').textContent = '0';\n\t\t\t$('status-badge-perf').textContent = '\u2014';\n\t\t\t$('status-badge-comp').textContent = '\u2014';\n\t\t\t$('ring-arc-perf').style.strokeDashoffset = '314.16';\n\t\t\t$('ring-arc-comp').style.strokeDashoffset = '314.16';\n\t\t}\n\n\t\tfunction parseFrenchCurrency(raw){\n\t\t\tif (!raw) return NaN;\n\t\t\tconst cleaned = String(raw)\n\t\t\t\t.replace(\/\\s+\/g, '')\n\t\t\t\t.replace(\/[\u20ac]\/g, '')\n\t\t\t\t.replace(\/\\.(?=\\d{3}\\b)\/g, '')\n\t\t\t\t.replace(\/,\/g, '.');\n\t\t\treturn parseFloat(cleaned);\n\t\t}\n\n\t\tfunction computePercent(score, max){\n\t\t\tif (!max) return 0;\n\t\t\treturn Math.round((score \/ max) * 100);\n\t\t}\n\n\t\tfunction getStatusMeta(type, score){\n\t\t\tif (score >= (type === 'perf' ? 75 : 80)) {\n\t\t\t\treturn {\n\t\t\t\t\tbadgeClass:'b-ok',\n\t\t\t\t\tcolor:getComputedStyle($('acans-autodiag')).getPropertyValue('--ad-ok').trim(),\n\t\t\t\t\tlabel:type === 'perf' ? 'Cabinet premium structur\u00e9' : 'Cabinet s\u00e9curis\u00e9 & conforme'\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (score >= 50) {\n\t\t\t\treturn {\n\t\t\t\t\tbadgeClass:'b-warn',\n\t\t\t\t\tcolor:getComputedStyle($('acans-autodiag')).getPropertyValue('--ad-warn').trim(),\n\t\t\t\t\tlabel:type === 'perf' ? 'Plafond op\u00e9rationnel latent' : 'Zones de friction identifi\u00e9es'\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tbadgeClass:'b-err',\n\t\t\t\tcolor:getComputedStyle($('acans-autodiag')).getPropertyValue('--ad-danger').trim(),\n\t\t\t\tlabel:type === 'perf' ? 'D\u00e9pendance structurelle critique' : 'Risque r\u00e9glementaire \u00e9lev\u00e9'\n\t\t\t};\n\t\t}\n\n\t\tfunction removePreviousScoreIfAny(questionIndex){\n\t\t\tconst qObj = Q[questionIndex];\n\t\t\tconst prev = STATE.answers[questionIndex];\n\t\t\tif (!qObj || !prev || typeof prev.score === 'undefined') return;\n\n\t\t\tif (qObj.audit === 'perf') {\n\t\t\t\tSTATE.scoresPerf[qObj.bloc] = (STATE.scoresPerf[qObj.bloc] || 0) - prev.score;\n\t\t\t\tif (STATE.scoresPerf[qObj.bloc] < 0) STATE.scoresPerf[qObj.bloc] = 0;\n\t\t\t} else {\n\t\t\t\tSTATE.scoresComp[qObj.bloc] = (STATE.scoresComp[qObj.bloc] || 0) - prev.score;\n\t\t\t\tif (STATE.scoresComp[qObj.bloc] < 0) STATE.scoresComp[qObj.bloc] = 0;\n\t\t\t}\n\t\t\tdelete STATE.answers[questionIndex];\n\t\t}\n\n\t\tfunction saveScore(qObj, score){\n\t\t\tif (qObj.audit === 'perf') {\n\t\t\t\tif (!STATE.scoresPerf[qObj.bloc]) STATE.scoresPerf[qObj.bloc] = 0;\n\t\t\t\tSTATE.scoresPerf[qObj.bloc] += score;\n\t\t\t} else {\n\t\t\t\tif (!STATE.scoresComp[qObj.bloc]) STATE.scoresComp[qObj.bloc] = 0;\n\t\t\t\tSTATE.scoresComp[qObj.bloc] += score;\n\t\t\t}\n\t\t}\n\n\t\tfunction setProgress(i){\n\t\t\tconst pct = Math.round((i \/ Q.length) * 100);\n\t\t\t$('prog-lbl').innerHTML = `Question <strong>${Math.min(i + 1, Q.length)}<\/strong> \/ ${Q.length}`;\n\t\t\t$('prog-pct').textContent = pct + ' %';\n\t\t\t$('prog-fill').style.width = pct + '%';\n\t\t}\n\n\t\tfunction render(){\n\t\t\tsetProgress(STATE.idx);\n\n\t\t\tconst z = $('quiz');\n\t\t\tconst q = Q[STATE.idx];\n\t\t\tif (!q) return;\n\n\t\t\tz.className = '';\n\t\t\tvoid z.offsetWidth;\n\t\t\tz.className = 'slide-up';\n\n\t\t\tconst phaseLabel = q.audit === 'perf' ? 'Phase 1 : Performance et Strat\u00e9gie' : 'Phase 2 : Conformit\u00e9 et Robustesse';\n\n\t\t\tlet optsHtml = '';\n\n\t\t\tif (q.type === 'single') {\n\t\t\t\toptsHtml = q.opts.map((o, i) => {\n\t\t\t\t\treturn `<button class=\"opt\" onclick='pickS(${o.s}, ${STATE.idx}, ${JSON.stringify(o.l)})'><span class=\"opt-l\">${LT[i] || ''}<\/span><span>${escapeHtml(o.l)}<\/span><\/button>`;\n\t\t\t\t}).join('');\n\t\t\t}\n\n\t\t\tif (q.type === 'rank') {\n\t\t\t\toptsHtml += `<p class=\"rank-helper\">Entrez un <strong>rang de 0 \u00e0 7<\/strong> pour chaque activit\u00e9 (0 = pas d'activit\u00e9, 1 = principale)<\/p>`;\n\t\t\t\toptsHtml += q.opts.map((o, i) => {\n\t\t\t\t\treturn `<div class=\"rank-row\"><input type=\"number\" class=\"rank-input\" min=\"0\" max=\"7\" value=\"0\" id=\"rank-${i}\"><span class=\"rank-label\">${escapeHtml(o)}<\/span><\/div>`;\n\t\t\t\t}).join('');\n\t\t\t\toptsHtml += `<p id=\"rank-err\" class=\"hint-err\"><\/p><button class=\"btn-main\" onclick=\"submitRank()\">Continuer<\/button>`;\n\t\t\t}\n\n\t\t\tif (q.type === 'multi') {\n\t\t\t\toptsHtml += `<p class=\"mc-ctr\">S\u00e9lectionn\u00e9 : <strong id=\"mc-c\">0<\/strong><\/p>`;\n\t\t\t\toptsHtml += q.opts.map((o) => {\n\t\t\t\t\treturn `<label class=\"mc-opt\"><input type=\"checkbox\" class=\"mc-chk\"><span class=\"mc-box\"><\/span><span>${escapeHtml(o)}<\/span><\/label>`;\n\t\t\t\t}).join('');\n\t\t\t\toptsHtml += `<p id=\"mc-err\" class=\"hint-err\"><\/p><button class=\"btn-main\" onclick=\"pickM()\">Continuer<\/button>`;\n\t\t\t}\n\n\t\t\tconst backBtn = STATE.idx > 0\n\t\t\t\t? `<button class=\"btn-ghost\" onclick=\"goBack()\" style=\"margin-top:15px; width:100%;\">\u2190 Question pr\u00e9c\u00e9dente<\/button>`\n\t\t\t\t: `<button class=\"btn-ghost\" onclick=\"backToForm()\" style=\"margin-top:15px; width:100%;\">\u2190 Modifier mes coordonn\u00e9es<\/button>`;\n\n\t\t\tz.innerHTML = `\n\t\t\t\t<div class=\"card\">\n\t\t\t\t\t<div style=\"text-align:center\"><span class=\"phase-badge\">${phaseLabel}<\/span><\/div>\n\t\t\t\t\t<span class=\"q-icon\">${q.icon}<\/span>\n\t\t\t\t\t<p class=\"q-title\">${escapeHtml(q.title)}<\/p>\n\t\t\t\t\t${q.sub ? `<p class=\"q-sub\">${escapeHtml(q.sub)}<\/p>` : ''}\n\t\t\t\t\t${optsHtml}\n\t\t\t\t\t${backBtn}\n\t\t\t\t<\/div>\n\t\t\t`;\n\n\t\t\tif (q.type === 'multi') wireMulti();\n\t\t}\n\n\t\tfunction wireMulti(){\n\t\t\t$all('.mc-opt input[type=\"checkbox\"]', $('quiz')).forEach(cb => {\n\t\t\t\tcb.addEventListener('change', function(){\n\t\t\t\t\tconst wrap = cb.closest('.mc-opt');\n\t\t\t\t\tif (wrap) wrap.classList.toggle('sel', cb.checked);\n\t\t\t\t\tconst count = $all('.mc-chk:checked', $('quiz')).length;\n\t\t\t\t\tconst counter = $('mc-c');\n\t\t\t\t\tif (counter) counter.textContent = String(count);\n\t\t\t\t\tconst err = $('mc-err');\n\t\t\t\t\tif (err) err.classList.remove('on');\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tfunction showFatalError(message, errorObj){\n\t\t\tconsole.error('AUTODIAG fatal error:', errorObj || message);\n\n\t\t\t$('prog-wrap').classList.add('hidden');\n\t\t\t$('quiz').classList.add('hidden');\n\t\t\t$('result').classList.remove('hidden');\n\t\t\t$('result').innerHTML = `\n\t\t\t\t<div class=\"fatal-box\">\n\t\t\t\t\t<h3 class=\"section-title\" style=\"margin-top:0;\">Erreur d\u2019affichage<\/h3>\n\t\t\t\t\t<p>Le rapport n\u2019a pas pu \u00eatre rendu correctement.<\/p>\n\t\t\t\t\t<p>${escapeHtml(message || 'Erreur JavaScript non identifi\u00e9e.')}<\/p>\n\t\t\t\t<\/div>\n\t\t\t`;\n\t\t}\n\n\t\tasync function postJson(url, payload){\n\t\t\tconst response = await fetch(url, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tcredentials: 'same-origin',\n\t\t\t\theaders: { 'Content-Type': 'application\/json' },\n\t\t\t\tbody: JSON.stringify(payload)\n\t\t\t});\n\n\t\t\tconst raw = await response.text();\n\t\t\tlet data = {};\n\n\t\t\ttry {\n\t\t\t\tdata = raw ? JSON.parse(raw) : {};\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error('R\u00e9ponse non JSON du serveur : ' + raw.substring(0, 300));\n\t\t\t}\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(data.message || data.code || ('HTTP ' + response.status));\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\tfunction askAntiSpam(){\n\t\t\tconst n1 = Math.floor(Math.random() * 10) + 1;\n\t\t\tconst n2 = Math.floor(Math.random() * 10) + 1;\n\t\t\tconst answer = prompt(`V\u00e9rification de s\u00e9curit\u00e9 anti-spam :\\nCombien font ${n1} + ${n2} ?`);\n\t\t\tif (answer === null) return false;\n\t\t\treturn parseInt(answer.trim(), 10) === (n1 + n2);\n\t\t}\n\n\t\twindow.startAuditQuiz = function(){\n\t\t\ttry {\n\t\t\t\tresetState();\n\n\t\t\t\tconst nom = $('f-nom').value.trim();\n\t\t\t\tconst email = $('f-email').value.trim();\n\t\t\t\tconst gerant = $('f-gerant').value.trim();\n\t\t\t\tconst adresse = $('f-adresse').value.trim();\n\t\t\t\tconst ville = $('f-ville').value.trim();\n\t\t\t\tconst collab = $('f-collab').value.trim();\n\t\t\t\tconst tel = $('f-tel').value.trim();\n\t\t\t\tconst mobile = $('f-mobile').value.trim();\n\t\t\t\tconst errEl = $('form-err');\n\n\t\t\t\tconst statutsInputs = $all('.statut-cb:checked');\n\t\t\t\tconst statutsArray = statutsInputs.map(cb => cb.value);\n\n\t\t\t\tif (!nom || !email || !gerant || !adresse || !ville || !collab || !tel || !mobile || statutsArray.length === 0) {\n\t\t\t\t\terrEl.textContent = \"Veuillez renseigner tous les champs obligatoires (marqu\u00e9s d'un *), y compris au moins un statut d\u00e9tenu.\";\n\t\t\t\t\terrEl.classList.add('on');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tSTATE.firmData = {\n\t\t\t\t\tnom: nom,\n\t\t\t\t\tstatut: $('f-statut').value.trim(),\n\t\t\t\t\trcs: $('f-rcs').value.trim(),\n\t\t\t\t\tgerant: gerant,\n\t\t\t\t\tadresse: adresse,\n\t\t\t\t\tville: ville,\n\t\t\t\t\tinterlocuteur: $('f-interlocuteur').value.trim(),\n\t\t\t\t\tca: $('f-ca').value.trim(),\n\t\t\t\t\tcollab: collab,\n\t\t\t\t\tasso: $('f-asso').value.trim(),\n\t\t\t\t\tauditeur: $('f-auditeur').value.trim(),\n\t\t\t\t\temail: email,\n\t\t\t\t\ttel: tel,\n\t\t\t\t\tmobile: mobile,\n\t\t\t\t\tstatuts: statutsArray.join(', ')\n\t\t\t\t};\n\n\t\t\t\terrEl.classList.remove('on');\n\t\t\t\t$('intake-form').classList.add('hidden');\n\t\t\t\t$('prog-wrap').classList.remove('hidden');\n\t\t\t\t$('quiz').classList.remove('hidden');\n\n\t\t\t\twindow.scrollTo({ top: 0, behavior: 'smooth' });\n\t\t\t\trender();\n\t\t\t} catch (e) {\n\t\t\t\tshowFatalError('Erreur au d\u00e9marrage du questionnaire.', e);\n\t\t\t}\n\t\t};\n\n\t\twindow.submitRank = function(){\n\t\t\ttry {\n\t\t\t\tconst ranks = [];\n\t\t\t\tconst used = new Set();\n\t\t\t\tlet hasDuplicate = false;\n\t\t\t\tconst errEl = $('rank-err');\n\t\t\t\terrEl.classList.remove('on');\n\n\t\t\t\tfor (let i = 0; i < 7; i++) {\n\t\t\t\t\tconst input = $('rank-' + i);\n\t\t\t\t\tconst val = input ? (parseInt(input.value, 10) || 0) : 0;\n\t\t\t\t\tranks.push(val);\n\n\t\t\t\t\tif (val > 0) {\n\t\t\t\t\t\tif (used.has(val)) hasDuplicate = true;\n\t\t\t\t\t\tused.add(val);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!ranks.some(r => r > 0)) {\n\t\t\t\t\terrEl.textContent = \"Veuillez attribuer au moins un rang sup\u00e9rieur \u00e0 0.\";\n\t\t\t\t\terrEl.classList.add('on');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (hasDuplicate) {\n\t\t\t\t\terrEl.textContent = \"Veuillez attribuer des rangs uniques.\";\n\t\t\t\t\terrEl.classList.add('on');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet score = 0;\n\t\t\t\tconst sorted = ranks\n\t\t\t\t\t.map((v, i) => ({v, i}))\n\t\t\t\t\t.filter(x => x.v > 0)\n\t\t\t\t\t.sort((a, b) => a.v - b.v);\n\n\t\t\t\tif (sorted.length > 0 && sorted[0].v === 1) score += 10;\n\t\t\t\tif (sorted.length > 1 && sorted[1].v === 2) score += 7;\n\t\t\t\tif (sorted.length > 2 && sorted[2].v === 3) score += 3;\n\n\t\t\t\tremovePreviousScoreIfAny(STATE.idx);\n\t\t\t\tsaveScore(Q[STATE.idx], score);\n\t\t\t\tSTATE.answers[STATE.idx] = { ranks, score };\n\n\t\t\t\tadvance();\n\t\t\t} catch (e) {\n\t\t\t\tshowFatalError('Erreur lors de l\u2019enregistrement du classement.', e);\n\t\t\t}\n\t\t};\n\n\t\twindow.pickS = function(score, questionIndex, label){\n\t\t\ttry {\n\t\t\t\tremovePreviousScoreIfAny(questionIndex);\n\t\t\t\tsaveScore(Q[questionIndex], score);\n\t\t\t\tSTATE.answers[questionIndex] = { label, score };\n\t\t\t\tadvance();\n\t\t\t} catch (e) {\n\t\t\t\tshowFatalError('Erreur lors de l\u2019enregistrement de la r\u00e9ponse.', e);\n\t\t\t}\n\t\t};\n\n\t\twindow.pickM = function(){\n\t\t\ttry {\n\t\t\t\tconst checked = $all('.mc-chk:checked', $('quiz'));\n\t\t\t\tconst errEl = $('mc-err');\n\t\t\t\terrEl.classList.remove('on');\n\n\t\t\t\tif (checked.length === 0) {\n\t\t\t\t\terrEl.textContent = \"Veuillez s\u00e9lectionner au moins une option.\";\n\t\t\t\t\terrEl.classList.add('on');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst selected = checked.map(cb => {\n\t\t\t\t\tconst label = cb.closest('.mc-opt').querySelector('span:last-child');\n\t\t\t\t\treturn label ? label.textContent.trim() : '';\n\t\t\t\t}).filter(Boolean);\n\n\t\t\t\tlet score = 0;\n\t\t\t\tif (selected.includes(\"Tout est d\u00e9j\u00e0 optimis\u00e9 \ud83d\ude80\")) {\n\t\t\t\t\tscore = 20;\n\t\t\t\t} else {\n\t\t\t\t\tconst n = checked.length;\n\t\t\t\t\tconst scoring = [15, 12, 8, 3, 0];\n\t\t\t\t\tscore = scoring[Math.min(n, 5) - 1] || 0;\n\t\t\t\t}\n\n\t\t\t\tremovePreviousScoreIfAny(STATE.idx);\n\t\t\t\tsaveScore(Q[STATE.idx], score);\n\t\t\t\tSTATE.answers[STATE.idx] = { selected, count: checked.length, score };\n\n\t\t\t\tadvance();\n\t\t\t} catch (e) {\n\t\t\t\tshowFatalError('Erreur lors de la s\u00e9lection multiple.', e);\n\t\t\t}\n\t\t};\n\n\t\twindow.goBack = function(){\n\t\t\ttry {\n\t\t\t\tif (STATE.idx > 0) {\n\t\t\t\t\tSTATE.idx--;\n\t\t\t\t\tremovePreviousScoreIfAny(STATE.idx);\n\t\t\t\t\twindow.scrollTo({ top: 0, behavior: 'smooth' });\n\t\t\t\t\trender();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tshowFatalError('Erreur lors du retour arri\u00e8re.', e);\n\t\t\t}\n\t\t};\n\n\t\twindow.backToForm = function(){\n\t\t\t$('quiz').classList.add('hidden');\n\t\t\t$('prog-wrap').classList.add('hidden');\n\t\t\t$('intake-form').classList.remove('hidden');\n\t\t\twindow.scrollTo({ top: 0, behavior: 'smooth' });\n\t\t};\n\n\t\tfunction advance(){\n\t\t\tSTATE.idx++;\n\t\t\tif (STATE.idx < Q.length) {\n\t\t\t\twindow.scrollTo({ top: 0, behavior: 'smooth' });\n\t\t\t\trender();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetProgress(Q.length);\n\t\t\tprocessFinalData();\n\t\t}\n\n\t\tfunction buildIdentityHtml(){\n\t\t\treturn `\n\t\t\t\t<h3>Fiche d'identit\u00e9 du cabinet<\/h3>\n\t\t\t\t<div class=\"ident-grid\">\n\t\t\t\t\t<div><strong>Cabinet :<\/strong> ${escapeHtml(STATE.firmData.nom)}<\/div>\n\t\t\t\t\t<div><strong>Forme juridique :<\/strong> ${escapeHtml(STATE.firmData.statut || '-')}<\/div>\n\t\t\t\t\t<div><strong>G\u00e9rant :<\/strong> ${escapeHtml(STATE.firmData.gerant || '-')}<\/div>\n\t\t\t\t\t<div><strong>Interlocuteur :<\/strong> ${escapeHtml(STATE.firmData.interlocuteur || '-')}<\/div>\n\t\t\t\t\t<div><strong>RCS :<\/strong> ${escapeHtml(STATE.firmData.rcs || '-')}<\/div>\n\t\t\t\t\t<div><strong>Chiffre d'affaires :<\/strong> ${escapeHtml(STATE.firmData.ca || '-')}<\/div>\n\t\t\t\t\t<div><strong>Adresse :<\/strong> ${escapeHtml((STATE.firmData.adresse || '-') + ', ' + (STATE.firmData.ville || '-'))}<\/div>\n\t\t\t\t\t<div><strong>Effectif :<\/strong> ${escapeHtml(STATE.firmData.collab || '0')}<\/div>\n\t\t\t\t\t<div><strong>Email :<\/strong> ${escapeHtml(STATE.firmData.email)}<\/div>\n\t\t\t\t\t<div><strong>T\u00e9l\u00e9phone :<\/strong> ${escapeHtml((STATE.firmData.tel || '-') + ' \/ ' + (STATE.firmData.mobile || '-'))}<\/div>\n\t\t\t\t\t<div><strong>Association :<\/strong> ${escapeHtml(STATE.firmData.asso || '-')}<\/div>\n\t\t\t\t\t<div><strong>Statuts :<\/strong> ${escapeHtml(STATE.firmData.statuts || '-')}<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"ident-footer\">\n\t\t\t\t\t<strong>Questionnaire effectu\u00e9 par :<\/strong> ${escapeHtml(STATE.firmData.auditeur || 'Non renseign\u00e9')}\n\t\t\t\t<\/div>\n\t\t\t`;\n\t\t}\n\n\t\tfunction animateGauge(type, score){\n\t\t\tconst arc = $('ring-arc-' + type);\n\t\t\tconst num = $('score-num-' + type);\n\t\t\tconst badge = $('status-badge-' + type);\n\t\t\tif (!arc || !num || !badge) return;\n\n\t\t\tconst meta = getStatusMeta(type, score);\n\t\t\tarc.style.stroke = meta.color;\n\t\t\tarc.style.strokeDashoffset = '314.16';\n\t\t\tvoid arc.offsetWidth;\n\t\t\tarc.style.strokeDashoffset = String(314.16 * (1 - score \/ 100));\n\n\t\t\tbadge.textContent = meta.label;\n\t\t\tbadge.className = 'status-badge ' + meta.badgeClass;\n\n\t\t\tconst duration = 1200;\n\t\t\tlet start = null;\n\n\t\t\tfunction step(timestamp){\n\t\t\t\tif (!start) start = timestamp;\n\t\t\t\tconst progress = Math.min((timestamp - start) \/ duration, 1);\n\t\t\t\tconst eased = 1 - Math.pow(1 - progress, 4);\n\t\t\t\tnum.textContent = String(Math.floor(eased * score));\n\t\t\t\tif (progress < 1) {\n\t\t\t\t\twindow.requestAnimationFrame(step);\n\t\t\t\t} else {\n\t\t\t\t\tnum.textContent = String(score);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twindow.requestAnimationFrame(step);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\t$all(`#tab-${type} .gauge-fill`).forEach((g, i) => {\n\t\t\t\t\tconst w = g.style.width;\n\t\t\t\t\tg.style.width = '0%';\n\t\t\t\t\tvoid g.offsetWidth;\n\t\t\t\t\tsetTimeout(() => { g.style.width = w; }, i * 90);\n\t\t\t\t});\n\t\t\t}, 80);\n\t\t}\n\n\t\twindow.switchTab = function(tabId){\n\t\t\t$all('.tab-btn').forEach(el => el.classList.remove('active'));\n\t\t\t$all('.tab-content').forEach(el => el.classList.remove('active'));\n\n\t\t\tconst btn = $('btn-tab-' + tabId);\n\t\t\tconst tab = $('tab-' + tabId);\n\t\t\tif (btn) btn.classList.add('active');\n\t\t\tif (tab) tab.classList.add('active');\n\n\t\t\tif (tabId === 'perf') animateGauge('perf', STATE.globalPerfScore);\n\t\t\tif (tabId === 'comp') animateGauge('comp', STATE.globalCompScore);\n\t\t};\n\n\t\tfunction prepareDataPerf(){\n\t\t\tconst analyses = {\n\t\t\t\t\"Business Model\": { critique: \"Mod\u00e8le \u00e9conomique fragile, marqu\u00e9 par une concentration forte ou une faible r\u00e9currence des revenus.\", faible: \"Base saine mais une marge d'optimisation existe sur la qualit\u00e9 du revenu.\", fort: \"Mod\u00e8le robuste, diversifi\u00e9 et valorisable.\" },\n\t\t\t\t\"Organisation\": { critique: \"Votre cabinet consomme une part excessive de temps interne. Le risque d'\u00e9puisement op\u00e9rationnel est r\u00e9el.\", faible: \"Structure fonctionnelle, mais plusieurs processus restent manuels et limitants.\", fort: \"Organisation industrialis\u00e9e, automatis\u00e9e et \u00e9volutive.\" },\n\t\t\t\t\"Compliance\": { critique: \"Risque r\u00e9glementaire latent et forte consommation de temps : la conformit\u00e9 est subie.\", faible: \"Compliance structur\u00e9e mais encore chronophage et am\u00e9liorable.\", fort: \"Compliance ma\u00eetris\u00e9e, pilot\u00e9e et s\u00e9curis\u00e9e.\" },\n\t\t\t\t\"D\u00e9veloppement\": { critique: \"Croissance frein\u00e9e et d\u00e9pendante d\u2019efforts humains directs ou d\u2019un r\u00e9seau restreint.\", faible: \"Acquisition fonctionnelle mais le taux de transformation ou les canaux sont perfectibles.\", fort: \"Acquisition multicanale structur\u00e9e avec un excellent taux de conversion.\" },\n\t\t\t\t\"Pilotage\": { critique: \"D\u00e9cisions prises sans lecture suffisamment consolid\u00e9e de la rentabilit\u00e9 r\u00e9elle.\", faible: \"Pilotage partiel ; une lecture plus fine de la rentabilit\u00e9 par client serait utile.\", fort: \"Pilotage de rentabilit\u00e9 ma\u00eetris\u00e9 avec indicateurs structur\u00e9s.\" },\n\t\t\t\t\"\u00c9volutivit\u00e9\": { critique: \"Toute croissance forte n\u00e9cessiterait une restructuration lourde.\", faible: \"\u00c9volutivit\u00e9 possible mais au prix d\u2019un effort d\u2019organisation notable.\", fort: \"Cabinet extensible, capable d\u2019absorber une croissance significative.\" }\n\t\t\t};\n\n\t\t\tconst actions = {\n\t\t\t\t\"Business Model\": {\n\t\t\t\t\tcritique: [\"Diluer la concentration du chiffre d'affaires pour r\u00e9duire la d\u00e9pendance \u00e0 un produit ou \u00e0 un client majeur.\", \"D\u00e9velopper une offre g\u00e9n\u00e9rant des revenus plus r\u00e9currents.\"],\n\t\t\t\t\tfaible: [\"R\u00e9\u00e9quilibrer progressivement le mix-produit.\", \"Structurer une tarification en honoraires de conseil lorsque cela est pertinent.\"],\n\t\t\t\t\tfort: [\"Consolider la valeur du portefeuille en vue d'une transmission ou d'une croissance externe.\", \"D\u00e9velopper des offres \u00e0 forte valeur ajout\u00e9e pour la client\u00e8le la plus qualifi\u00e9e.\"]\n\t\t\t\t},\n\t\t\t\t\"Organisation\": {\n\t\t\t\t\tcritique: [\"R\u00e9duire imm\u00e9diatement la double saisie en centralisant les donn\u00e9es.\", \"D\u00e9l\u00e9guer, externaliser ou simplifier les t\u00e2ches administratives qui freinent le commercial.\"],\n\t\t\t\t\tfaible: [\"Cartographier les processus pour identifier les goulets d\u2019\u00e9tranglement.\", \"D\u00e9ployer des workflows semi-automatis\u00e9s, notamment \u00e0 l\u2019onboarding.\"],\n\t\t\t\t\tfort: [\"Connecter les outils via API ou processus unifi\u00e9s pour un pilotage plus fin.\", \"Mettre en place une d\u00e9marche continue d\u2019am\u00e9lioration op\u00e9rationnelle.\"]\n\t\t\t\t},\n\t\t\t\t\"Compliance\": {\n\t\t\t\t\tcritique: [\"R\u00e9aliser un audit de conformit\u00e9 cibl\u00e9 sur les failles critiques.\", \"Mettre en place les registres et preuves documentaires prioritaires.\"],\n\t\t\t\t\tfaible: [\"Transformer les contr\u00f4les manuels en alertes ou routines formalis\u00e9es.\", \"Rationaliser le temps consacr\u00e9 \u00e0 la conformit\u00e9 via des indicateurs.\"],\n\t\t\t\t\tfort: [\"Utiliser ce niveau de structuration comme argument commercial premium.\", \"Anticiper les \u00e9volutions r\u00e9glementaires futures.\"]\n\t\t\t\t},\n\t\t\t\t\"D\u00e9veloppement\": {\n\t\t\t\t\tcritique: [\"D\u00e9finir une strat\u00e9gie d\u2019acquisition moins d\u00e9pendante du r\u00e9seau personnel.\", \"Formaliser un discours commercial diff\u00e9renciant.\"],\n\t\t\t\t\tfaible: [\"Structurer le tunnel de conversion pour am\u00e9liorer le taux de transformation.\", \"Diversifier les sources de prospection via des partenariats cibl\u00e9s.\"],\n\t\t\t\t\tfort: [\"Mod\u00e9liser une approche premium \/ HNWI.\", \"Acc\u00e9l\u00e9rer sur les canaux d\u2019acquisition les plus rentables.\"]\n\t\t\t\t},\n\t\t\t\t\"Pilotage\": {\n\t\t\t\t\tcritique: [\"Mettre en place des indicateurs de performance fondamentaux.\", \"\u00c9valuer le co\u00fbt de revient par segment ou typologie de clients.\"],\n\t\t\t\t\tfaible: [\"D\u00e9ployer des tableaux de bord mensuels croisant chiffre d'affaires, marge et temps pass\u00e9.\", \"Analyser la rentabilit\u00e9 par segment de client\u00e8le.\"],\n\t\t\t\t\tfort: [\"Mettre en place un pilotage financier plus pr\u00e9dictif.\", \"Affiner la segmentation client pour allouer les ressources avec pr\u00e9cision.\"]\n\t\t\t\t},\n\t\t\t\t\"\u00c9volutivit\u00e9\": {\n\t\t\t\t\tcritique: [\"Refondre le mod\u00e8le op\u00e9ratoire avant toute croissance acc\u00e9l\u00e9r\u00e9e.\", \"R\u00e9duire la d\u00e9pendance \u00e0 un partenaire dominant.\"],\n\t\t\t\t\tfaible: [\"Pr\u00e9parer l\u2019infrastructure pour absorber une hausse d\u2019activit\u00e9 sans surco\u00fbt imm\u00e9diat.\", \"Standardiser les m\u00e9thodes de travail.\"],\n\t\t\t\t\tfort: [\"Envisager des op\u00e9rations de croissance externe.\", \"Diversifier les partenariats strat\u00e9giques de haut niveau.\"]\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst forts = [];\n\t\t\tconst faibles = [];\n\t\t\tconst critiques = [];\n\t\t\tconst allBlocs = [];\n\n\t\t\tObject.keys(MAX_PERF).forEach(bloc => {\n\t\t\t\tconst score = STATE.scoresPerf[bloc] || 0;\n\t\t\t\tconst pct = computePercent(score, MAX_PERF[bloc]);\n\n\t\t\t\tlet gaugeClass, status, statusLabel, txt;\n\t\t\t\tif (pct >= 75) {\n\t\t\t\t\tgaugeClass = 'gauge-ok';\n\t\t\t\t\tstatus = 'fort';\n\t\t\t\t\tstatusLabel = 'Point fort';\n\t\t\t\t\ttxt = analyses[bloc].fort;\n\t\t\t\t\tforts.push(bloc);\n\t\t\t\t} else if (pct >= 50) {\n\t\t\t\t\tgaugeClass = 'gauge-warn';\n\t\t\t\t\tstatus = 'faible';\n\t\t\t\t\tstatusLabel = '\u00c0 am\u00e9liorer';\n\t\t\t\t\ttxt = analyses[bloc].faible;\n\t\t\t\t\tfaibles.push(bloc);\n\t\t\t\t} else {\n\t\t\t\t\tgaugeClass = 'gauge-danger';\n\t\t\t\t\tstatus = 'critique';\n\t\t\t\t\tstatusLabel = 'Point critique';\n\t\t\t\t\ttxt = analyses[bloc].critique;\n\t\t\t\t\tcritiques.push(bloc);\n\t\t\t\t}\n\n\t\t\t\tallBlocs.push({\n\t\t\t\t\tbloc,\n\t\t\t\t\tpct,\n\t\t\t\t\tvisualPct: Math.max(pct, 2),\n\t\t\t\t\tgaugeClass,\n\t\t\t\t\tstatus,\n\t\t\t\t\tstatusLabel,\n\t\t\t\t\ttxt\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tSTATE.globalSortedPerf = allBlocs.slice().sort((a, b) => a.pct - b.pct);\n\n\t\t\tlet h1 = '<div class=\"summary-grid\">';\n\t\t\th1 += `<div class=\"sum-box sum-ok\"><h4>Points forts<\/h4><ul>${forts.length ? forts.map(b => `<li>${escapeHtml(b)}<\/li>`).join('') : '<li>Optimisation en cours<\/li>'}<\/ul><\/div>`;\n\t\t\th1 += `<div class=\"sum-box sum-warn\"><h4>Axes d'am\u00e9lioration<\/h4><ul>${faibles.length ? faibles.map(b => `<li>${escapeHtml(b)}<\/li>`).join('') : '<li>Voir les recommandations d\u00e9taill\u00e9es<\/li>'}<\/ul><\/div>`;\n\t\t\th1 += `<div class=\"sum-box sum-err\"><h4>Points critiques<\/h4><ul>${critiques.length ? critiques.map(b => `<li>${escapeHtml(b)}<\/li>`).join('') : '<li>Mod\u00e8le globalement sain<\/li>'}<\/ul><\/div>`;\n\t\t\th1 += '<\/div>';\n\n\t\t\tlet h2 = '';\n\t\t\tSTATE.globalSortedPerf.forEach(b => {\n\t\t\t\th2 += `<div class=\"block-item\">\n\t\t\t\t\t<div class=\"block-head\">\n\t\t\t\t\t\t<span class=\"block-label\">${escapeHtml(b.bloc)}<\/span>\n\t\t\t\t\t\t<span class=\"block-score\">${b.pct} %<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"gauge-track\"><div class=\"gauge-fill ${b.gaugeClass}\" style=\"width:${b.visualPct}%\"><\/div><\/div>\n\t\t\t\t\t<p class=\"fact-text ${b.status}\"><strong style=\"text-transform:uppercase; font-size:.85em;\">${escapeHtml(b.statusLabel)}&nbsp;:<\/strong> ${escapeHtml(b.txt)}<\/p>\n\t\t\t\t\t<div class=\"actions-box\">\n\t\t\t\t\t\t<p class=\"actions-title\">Ce qu'il faudrait mettre en \u0153uvre :<\/p>\n\t\t\t\t\t\t<ul>${actions[b.bloc][b.status].map(a => `<li>${escapeHtml(a)}<\/li>`).join('')}<\/ul>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>`;\n\t\t\t});\n\n\t\t\tconst caValue = parseFrenchCurrency(STATE.firmData.ca);\n\t\t\tlet caMsg = '';\n\t\t\tif (!isNaN(caValue) && caValue > 0) {\n\t\t\t\tif (caValue >= 712000) {\n\t\t\t\t\tcaMsg = \"Le chiffre d\u2019affaires d\u00e9clar\u00e9 vous situe dans une zone haute du march\u00e9, ce qui implique un niveau de structuration coh\u00e9rent avec cette taille.\";\n\t\t\t\t} else if (caValue >= 130000) {\n\t\t\t\t\tcaMsg = \"Le chiffre d\u2019affaires d\u00e9clar\u00e9 traduit une base install\u00e9e, avec un enjeu principal d\u2019industrialisation pour franchir un nouveau cap.\";\n\t\t\t\t} else {\n\t\t\t\t\tcaMsg = \"Le chiffre d\u2019affaires d\u00e9clar\u00e9 correspond \u00e0 une phase de d\u00e9veloppement dans laquelle la structuration du mod\u00e8le \u00e9conomique peut produire un effet significatif.\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcaMsg = \"Le chiffre d\u2019affaires n\u2019ayant pas \u00e9t\u00e9 renseign\u00e9, le positionnement sectoriel repose principalement sur la structure d\u2019effectif et l\u2019organisation d\u00e9clar\u00e9es.\";\n\t\t\t}\n\n\t\t\tconst effectifValue = parseInt(STATE.firmData.collab, 10) || 0;\n\t\t\tconst oriasMsg = effectifValue <= 3\n\t\t\t\t? `Avec ${effectifValue} collaborateur(s), votre structure s\u2019inscrit dans le profil classique des cabinets de proximit\u00e9, avec un enjeu fort de productivit\u00e9 et de diff\u00e9renciation.`\n\t\t\t\t: `Avec ${effectifValue} collaborateur(s), vous d\u00e9passez la taille critique des plus petites structures, ce qui suppose une gouvernance op\u00e9rationnelle et documentaire plus rigoureuse.`;\n\n\t\t\tlet benchmarkPerfHtml = `\n\t\t\t\t<div class=\"ident-box\" style=\"border-color:var(--gold-lt); background:rgba(200,13,18,.03); margin-top:32px; margin-bottom:0;\">\n\t\t\t\t\t<h4 style=\"font-family:var(--fh); color:var(--gold-lt); margin-bottom:8px; font-size:1.15rem;\">Votre positionnement sectoriel<\/h4>\n\t\t\t\t\t<p style=\"font-size:.85rem; color:var(--muted); margin-bottom:16px; font-style:italic;\">Lecture indicative du dimensionnement et du risque d\u2019isolement strat\u00e9gique.<\/p>\n\t\t\t\t\t<p style=\"margin-bottom:12px; color:var(--text); line-height:1.5;\"><strong>1. Dimensionnement et chiffre d'affaires :<\/strong><br>${escapeHtml(caMsg)}<br>${escapeHtml(oriasMsg)}<\/p>\n\t\t\t\t\t<p style=\"color:var(--text); line-height:1.5;\"><strong>2. Concentration du march\u00e9 :<\/strong><br>La profession tend \u00e0 se polariser entre structures tr\u00e8s int\u00e9gr\u00e9es et cabinets artisanaux. La qualit\u00e9 du mod\u00e8le, de la preuve documentaire et de l\u2019organisation devient donc un facteur cl\u00e9 de valorisation.<\/p>\n\t\t\t\t<\/div>\n\t\t\t`;\n\n\t\t\tconst q2Index = Q.findIndex(q => q.id === 2);\n\t\t\tconst q1Index = Q.findIndex(q => q.id === 1);\n\n\t\t\tlet alertsHtml = '';\n\t\t\tconst scoreBM = STATE.scoresPerf[\"Business Model\"] || 0;\n\t\t\tconst pctBM = computePercent(scoreBM, MAX_PERF[\"Business Model\"]);\n\t\t\tconst noHonoraires = STATE.answers[q1Index] && STATE.answers[q1Index].ranks ? STATE.answers[q1Index].ranks[5] === 0 : false;\n\n\t\t\tif (pctBM < 50 || noHonoraires) {\n\t\t\t\talertsHtml += `\n\t\t\t\t\t<div style=\"margin-top:16px; padding:16px; border-left:4px solid var(--danger); background:rgba(180,35,24,.05); border-radius:4px;\">\n\t\t\t\t\t\t<strong style=\"color:var(--danger); font-size:1rem;\">\u26a0\ufe0f Alerte strat\u00e9gique :<\/strong><br>\n\t\t\t\t\t\t<span style=\"font-size:.95rem; line-height:1.5;\">Votre mod\u00e8le appara\u00eet encore tr\u00e8s d\u00e9pendant d\u2019un nombre restreint de leviers de revenus. Une diversification progressive et document\u00e9e du business model renforcerait sa r\u00e9silience et sa valorisation potentielle.<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\tif (STATE.answers[q2Index] && STATE.answers[q2Index].score <= 8) {\n\t\t\t\talertsHtml += `\n\t\t\t\t\t<div style=\"margin-top:16px; padding:16px; border-left:4px solid var(--warn); background:rgba(178,107,0,.05); border-radius:4px;\">\n\t\t\t\t\t\t<strong style=\"color:var(--warn); font-size:1rem;\">\ud83d\udca1 Impact sur la valorisation potentielle :<\/strong><br>\n\t\t\t\t\t\t<span style=\"font-size:.95rem; line-height:1.5;\">Une part plus faible de revenus r\u00e9currents tend g\u00e9n\u00e9ralement \u00e0 peser sur la visibilit\u00e9 \u00e9conomique du cabinet. \u00c0 l\u2019inverse, la progression de revenus r\u00e9currents et la formalisation des process renforcent l\u2019attractivit\u00e9 du dossier.<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\tif (alertsHtml) {\n\t\t\t\tbenchmarkPerfHtml += `<div style=\"margin-top:24px;\">${alertsHtml}<\/div>`;\n\t\t\t}\n\n\t\t\t$('perf-part1-content').innerHTML = h1 + benchmarkPerfHtml;\n\t\t\t$('perf-part2-content').innerHTML = h2;\n\t\t}\n\n\t\tfunction prepareDataComp(){\n\t\t\tconst analyses = {\n\t\t\t\t\"Gouvernance & Organisation\": { critique: \"Absence ou faiblesse de proc\u00e9dures opposables. La capacit\u00e9 de preuve para\u00eet insuffisante.\", faible: \"Processus existants mais tra\u00e7abilit\u00e9 manuelle ou incompl\u00e8te.\", fort: \"Corpus proc\u00e9dural \u00e0 jour, tra\u00e7abilit\u00e9 num\u00e9ris\u00e9e et structuration satisfaisante.\" },\n\t\t\t\t\"LCB-FT\": { critique: \"Carences structurelles LCB-FT et documentation insuffisante.\", faible: \"Dispositif pr\u00e9sent mais trop d\u00e9claratif ou peu automatis\u00e9.\", fort: \"Protocoles structur\u00e9s et vigilance documentaire coh\u00e9rente.\" },\n\t\t\t\t\"Devoir de Conseil & ESG\": { critique: \"Risque \u00e9lev\u00e9 de preuve insuffisante sur les frais, l\u2019am\u00e9lioration du service rendu ou les pr\u00e9f\u00e9rences ESG.\", faible: \"Informations transmises mais documentation perfectible.\", fort: \"Tra\u00e7abilit\u00e9 et transparence structur\u00e9es sur l\u2019ensemble de la cha\u00eene de conseil.\" },\n\t\t\t\t\"Risques Op\u00e9rationnels\": { critique: \"S\u00e9curisation insuffisante des flux, des \u00e9changes ou de la r\u00e9silience informatique.\", faible: \"M\u00e9canismes pr\u00e9sents mais encore partiels.\", fort: \"Dispositif solide sur les flux, la tra\u00e7abilit\u00e9 et la continuit\u00e9.\" },\n\t\t\t\t\"Produits & March\u00e9s Cibles\": { critique: \"Risque de recommandation hors p\u00e9rim\u00e8tre ou d\u2019ad\u00e9quation insuffisamment document\u00e9e.\", faible: \"Contr\u00f4le d\u2019ad\u00e9quation existant mais perfectible.\", fort: \"Gouvernance produit stricte et respect des limites d\u2019agr\u00e9ment.\" }\n\t\t\t};\n\n\t\t\tconst actions = {\n\t\t\t\t\"Gouvernance & Organisation\": {\n\t\t\t\t\tcritique: [\"Formaliser les documents et proc\u00e9dures prioritaires d\u2019entr\u00e9e en relation.\", \"Structurer un syst\u00e8me d\u2019archivage opposable et centralis\u00e9.\"],\n\t\t\t\t\tfaible: [\"Num\u00e9riser davantage les preuves et horodatages.\", \"Actualiser la cartographie des conflits d\u2019int\u00e9r\u00eats et des contr\u00f4les internes.\"],\n\t\t\t\t\tfort: [\"Renforcer encore la gouvernance documentaire et la diffusion des proc\u00e9dures.\", \"Faire de la structuration une composante de l\u2019image de marque du cabinet.\"]\n\t\t\t\t},\n\t\t\t\t\"LCB-FT\": {\n\t\t\t\t\tcritique: [\"Reprendre les dossiers sensibles pour documenter l\u2019origine des fonds et les KYC.\", \"Formaliser la proc\u00e9dure d\u2019escalade et les crit\u00e8res de vigilance renforc\u00e9e.\"],\n\t\t\t\t\tfaible: [\"Mettre \u00e0 jour les pi\u00e8ces et rem\u00e9diations KYC \u00e0 \u00e9ch\u00e9ance.\", \"Formaliser des seuils et routines de contr\u00f4le plus homog\u00e8nes.\"],\n\t\t\t\t\tfort: [\"Renforcer l\u2019automatisation des contr\u00f4les et veilles.\", \"Documenter les preuves de revue p\u00e9riodique.\"]\n\t\t\t\t},\n\t\t\t\t\"Devoir de Conseil & ESG\": {\n\t\t\t\t\tcritique: [\"Remettre \u00e0 plat les tableaux de frais et les justifications du service rendu.\", \"Int\u00e9grer un recueil ESG plus probant et mieux document\u00e9.\"],\n\t\t\t\t\tfaible: [\"Mieux documenter l\u2019am\u00e9lioration du service rendu et la tra\u00e7abilit\u00e9 des arbitrages.\", \"Structurer le recueil des pr\u00e9f\u00e9rences de durabilit\u00e9.\"],\n\t\t\t\t\tfort: [\"Faire du devoir de conseil document\u00e9 un levier de diff\u00e9renciation.\", \"Approfondir le suivi qualit\u00e9 et la coh\u00e9rence des preuves fournies.\"]\n\t\t\t\t},\n\t\t\t\t\"Risques Op\u00e9rationnels\": {\n\t\t\t\t\tcritique: [\"Formaliser la s\u00e9paration des flux et les protocoles d\u2019incident.\", \"Structurer la continuit\u00e9 d\u2019activit\u00e9 et la gestion des incidents de donn\u00e9es.\"],\n\t\t\t\t\tfaible: [\"Am\u00e9liorer la tra\u00e7abilit\u00e9 des \u00e9changes et sauvegardes.\", \"Documenter plus finement la r\u00e9silience op\u00e9rationnelle.\"],\n\t\t\t\t\tfort: [\"Poursuivre les audits r\u00e9guliers des processus techniques.\", \"Tester p\u00e9riodiquement les sc\u00e9narios d\u2019incident.\"]\n\t\t\t\t},\n\t\t\t\t\"Produits & March\u00e9s Cibles\": {\n\t\t\t\t\tcritique: [\"Cartographier d\u2019urgence les zones de risque hors p\u00e9rim\u00e8tre.\", \"Encadrer les cas atypiques et les limites d\u2019intervention.\"],\n\t\t\t\t\tfaible: [\"Renforcer la documentation d\u2019ad\u00e9quation produit \/ client.\", \"Mieux tracer les contr\u00f4les li\u00e9s aux march\u00e9s cibles.\"],\n\t\t\t\t\tfort: [\"Poursuivre l\u2019audit des offres et des pratiques de recommandation.\", \"Consolider un comit\u00e9 ou une routine de validation produit.\"]\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst forts = [];\n\t\t\tconst faibles = [];\n\t\t\tconst critiques = [];\n\t\t\tconst allBlocs = [];\n\n\t\t\tObject.keys(MAX_COMP).forEach(bloc => {\n\t\t\t\tconst score = STATE.scoresComp[bloc] || 0;\n\t\t\t\tconst pct = computePercent(score, MAX_COMP[bloc]);\n\n\t\t\t\tlet gaugeClass, status, statusLabel, txt;\n\t\t\t\tif (pct >= 80) {\n\t\t\t\t\tgaugeClass = 'gauge-ok';\n\t\t\t\t\tstatus = 'fort';\n\t\t\t\t\tstatusLabel = 'Conforme';\n\t\t\t\t\ttxt = analyses[bloc].fort;\n\t\t\t\t\tforts.push(bloc);\n\t\t\t\t} else if (pct >= 50) {\n\t\t\t\t\tgaugeClass = 'gauge-warn';\n\t\t\t\t\tstatus = 'faible';\n\t\t\t\t\tstatusLabel = '\u00c0 consolider';\n\t\t\t\t\ttxt = analyses[bloc].faible;\n\t\t\t\t\tfaibles.push(bloc);\n\t\t\t\t} else {\n\t\t\t\t\tgaugeClass = 'gauge-danger';\n\t\t\t\t\tstatus = 'critique';\n\t\t\t\t\tstatusLabel = '\u00c0 traiter en priorit\u00e9';\n\t\t\t\t\ttxt = analyses[bloc].critique;\n\t\t\t\t\tcritiques.push(bloc);\n\t\t\t\t}\n\n\t\t\t\tallBlocs.push({\n\t\t\t\t\tbloc,\n\t\t\t\t\tpct,\n\t\t\t\t\tvisualPct: Math.max(pct, 2),\n\t\t\t\t\tgaugeClass,\n\t\t\t\t\tstatus,\n\t\t\t\t\tstatusLabel,\n\t\t\t\t\ttxt\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tSTATE.globalSortedComp = allBlocs.slice().sort((a, b) => a.pct - b.pct);\n\n\t\t\tlet h1 = '<div class=\"summary-grid\">';\n\t\t\th1 += `<div class=\"sum-box sum-ok\"><h4>P\u00f4les s\u00e9curis\u00e9s<\/h4><ul>${forts.length ? forts.map(b => `<li>${escapeHtml(b)}<\/li>`).join('') : '<li>\u00c9valuation en cours<\/li>'}<\/ul><\/div>`;\n\t\t\th1 += `<div class=\"sum-box sum-warn\"><h4>Consolidation<\/h4><ul>${faibles.length ? faibles.map(b => `<li>${escapeHtml(b)}<\/li>`).join('') : '<li>Voir les recommandations<\/li>'}<\/ul><\/div>`;\n\t\t\th1 += `<div class=\"sum-box sum-err\"><h4>Alerte r\u00e9glementaire<\/h4><ul>${critiques.length ? critiques.map(b => `<li>${escapeHtml(b)}<\/li>`).join('') : '<li>Aucune urgence majeure d\u00e9clar\u00e9e<\/li>'}<\/ul><\/div>`;\n\t\t\th1 += '<\/div>';\n\n\t\t\tlet h2 = '';\n\t\t\tSTATE.globalSortedComp.forEach(b => {\n\t\t\t\th2 += `<div class=\"block-item\">\n\t\t\t\t\t<div class=\"block-head\">\n\t\t\t\t\t\t<span class=\"block-label\">${escapeHtml(b.bloc)}<\/span>\n\t\t\t\t\t\t<span class=\"block-score\">${b.pct} %<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"gauge-track\"><div class=\"gauge-fill ${b.gaugeClass}\" style=\"width:${b.visualPct}%\"><\/div><\/div>\n\t\t\t\t\t<p class=\"fact-text ${b.status}\"><strong style=\"text-transform:uppercase; font-size:.85em;\">${escapeHtml(b.statusLabel)}&nbsp;:<\/strong> ${escapeHtml(b.txt)}<\/p>\n\t\t\t\t\t<div class=\"actions-box\">\n\t\t\t\t\t\t<p class=\"actions-title\">Mesures correctives prioritaires :<\/p>\n\t\t\t\t\t\t<ul>${actions[b.bloc][b.status].map(a => `<li>${escapeHtml(a)}<\/li>`).join('')}<\/ul>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>`;\n\t\t\t});\n\n\t\t\tconst lcbPct = computePercent(STATE.scoresComp[\"LCB-FT\"] || 0, MAX_COMP[\"LCB-FT\"]);\n\t\t\tconst conseilPct = computePercent(STATE.scoresComp[\"Devoir de Conseil & ESG\"] || 0, MAX_COMP[\"Devoir de Conseil & ESG\"]);\n\n\t\t\tlet benchmarkCompHtml = '';\n\t\t\tif (lcbPct < 80 || conseilPct < 80) {\n\t\t\t\tbenchmarkCompHtml = `\n\t\t\t\t\t<div class=\"ident-box\" style=\"border-color:var(--danger); background:rgba(180,35,24,.05); margin-top:32px; margin-bottom:0;\">\n\t\t\t\t\t\t<h4 style=\"font-family:var(--fh); margin-bottom:12px; font-size:1.15rem;\">\u26a0\ufe0f Barom\u00e8tre du risque de non-conformit\u00e9<\/h4>\n\t\t\t\t\t\t<p style=\"color:var(--text); line-height:1.6; font-size:.95rem;\">Vos r\u00e9ponses indiquent des zones de friction sur la LCB-FT et\/ou le devoir de conseil. Ces domaines exigent une priorit\u00e9 documentaire et proc\u00e9durale \u00e9lev\u00e9e, en particulier sur la capacit\u00e9 de preuve, l\u2019origine des fonds, la justification du service rendu et la tra\u00e7abilit\u00e9 des choix client.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tbenchmarkCompHtml = `\n\t\t\t\t\t<div class=\"ident-box\" style=\"border-color:var(--ok); background:rgba(33,122,82,.05); margin-top:32px; margin-bottom:0;\">\n\t\t\t\t\t\t<h4 style=\"font-family:var(--fh); margin-bottom:12px; font-size:1.15rem;\">\ud83d\udee1\ufe0f Barom\u00e8tre du risque de non-conformit\u00e9<\/h4>\n\t\t\t\t\t\t<p style=\"color:var(--text); line-height:1.6; font-size:.95rem;\">Les r\u00e9ponses d\u00e9clar\u00e9es t\u00e9moignent d\u2019un niveau de structuration satisfaisant sur les zones traditionnellement les plus sensibles. L\u2019enjeu devient alors la consolidation des preuves et la r\u00e9gularit\u00e9 des revues internes.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\tconst q30Index = Q.findIndex(q => q.id === 30);\n\t\t\tif (STATE.answers[q30Index] && STATE.answers[q30Index].score < 10) {\n\t\t\t\tbenchmarkCompHtml += `\n\t\t\t\t\t<div style=\"margin-top:24px; padding:16px; border-left:4px solid var(--danger); background:rgba(180,35,24,.05); border-radius:4px;\">\n\t\t\t\t\t\t<strong style=\"color:var(--danger); font-size:1rem;\">\ud83d\udd34 R\u00e9silience op\u00e9rationnelle :<\/strong><br>\n\t\t\t\t\t\t<span style=\"font-size:.95rem; line-height:1.5;\">Les r\u00e9ponses d\u00e9clar\u00e9es sugg\u00e8rent un niveau de formalisation encore insuffisant sur la continuit\u00e9 d\u2019activit\u00e9, les sauvegardes ou la gestion d\u2019incident. Une documentation plus robuste est recommand\u00e9e.<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\t$('comp-part1-content').innerHTML = h1 + benchmarkCompHtml;\n\t\t\t$('comp-part2-content').innerHTML = h2;\n\t\t}\n\n\t\tfunction renderCompilation(){\n\t\t\tlet html = '<h4 style=\"color:var(--sky); margin-top:0; margin-bottom:16px; font-family:var(--fh); font-size:1.2rem;\">Phase 1 : Performance et Strat\u00e9gie<\/h4>';\n\t\t\tlet phase2Started = false;\n\n\t\t\tQ.forEach((q, index) => {\n\t\t\t\tif (q.audit === 'comp' && !phase2Started) {\n\t\t\t\t\thtml += '<h4 style=\"color:var(--sky); margin-top:32px; margin-bottom:16px; font-family:var(--fh); font-size:1.2rem;\">Phase 2 : Robustesse et Conformit\u00e9<\/h4>';\n\t\t\t\t\tphase2Started = true;\n\t\t\t\t}\n\n\t\t\t\tconst ans = STATE.answers[index];\n\t\t\t\tlet respHtml = '';\n\n\t\t\t\tif (!ans) {\n\t\t\t\t\trespHtml = '<div class=\"resp-a\">Non r\u00e9pondu<\/div>';\n\t\t\t\t} else if (q.type === 'single') {\n\t\t\t\t\trespHtml = `<div class=\"resp-a\">${escapeHtml(ans.label)}<\/div>`;\n\t\t\t\t} else if (q.type === 'multi') {\n\t\t\t\t\trespHtml = ans.selected.map(s => `<div class=\"resp-a\">${escapeHtml(s)}<\/div>`).join('');\n\t\t\t\t} else if (q.type === 'rank') {\n\t\t\t\t\tconst ranked = [];\n\t\t\t\t\tans.ranks.forEach((val, i) => {\n\t\t\t\t\t\tif (val > 0) ranked.push({ val, label: q.opts[i] });\n\t\t\t\t\t});\n\t\t\t\t\tranked.sort((a, b) => a.val - b.val);\n\t\t\t\t\trespHtml = ranked.length\n\t\t\t\t\t\t? ranked.map(r => `<div class=\"resp-a\"><strong>Rang ${r.val}<\/strong> : ${escapeHtml(r.label)}<\/div>`).join('')\n\t\t\t\t\t\t: '<div class=\"resp-a\">Aucune activit\u00e9 class\u00e9e<\/div>';\n\t\t\t\t}\n\n\t\t\t\tlet displayId = q.id;\n\t\t\t\tif (displayId === '1bis') displayId = '1.bis';\n\t\t\t\telse if (q.audit === 'comp') displayId = Number(displayId) - 17;\n\n\t\t\t\thtml += `\n\t\t\t\t\t<div class=\"resp-item\">\n\t\t\t\t\t\t<div class=\"resp-q\">Q${escapeHtml(displayId)}. ${escapeHtml(q.title)}<\/div>\n\t\t\t\t\t\t${respHtml}\n\t\t\t\t\t<\/div>\n\t\t\t\t`;\n\t\t\t});\n\n\t\t\t$('reponses-content').innerHTML = html;\n\t\t}\n\n\t\tfunction bindMailButton(){\n\t\t\tconst btn = $('mailto-btn');\n\t\t\tif (!btn) return;\n\n\t\t\tbtn.onclick = async function(){\n\t\t\t\tif (!askAntiSpam()) {\n\t\t\t\t\talert(\"R\u00e9ponse incorrecte. Par mesure de s\u00e9curit\u00e9, l'envoi a \u00e9t\u00e9 bloqu\u00e9.\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst interlocuteurDisplay = STATE.firmData.interlocuteur || STATE.firmData.gerant || 'Non renseign\u00e9';\n\t\t\t\tbtn.disabled = true;\n\t\t\t\tbtn.textContent = '\u23f3 Envoi en cours\u2026';\n\n\t\t\t\ttry {\n\t\t\t\t\tconst perfDetails = {};\n\t\t\t\t\tObject.keys(MAX_PERF).forEach(bloc => {\n\t\t\t\t\t\tperfDetails[bloc] = computePercent(STATE.scoresPerf[bloc] || 0, MAX_PERF[bloc]);\n\t\t\t\t\t});\n\n\t\t\t\t\tconst compDetails = {};\n\t\t\t\t\tObject.keys(MAX_COMP).forEach(bloc => {\n\t\t\t\t\t\tcompDetails[bloc] = computePercent(STATE.scoresComp[bloc] || 0, MAX_COMP[bloc]);\n\t\t\t\t\t});\n\n\t\t\t\t\tconst data = await postJson(MAIL_ENDPOINT, {\n\t\t\t\t\t\ttype: 'rdv',\n\t\t\t\t\t\tfirmData: Object.assign({}, STATE.firmData, { interlocuteurDisplay }),\n\t\t\t\t\t\tglobalPerfScore: STATE.globalPerfScore,\n\t\t\t\t\t\tglobalCompScore: STATE.globalCompScore,\n\t\t\t\t\t\tperfDetails,\n\t\t\t\t\t\tcompDetails\n\t\t\t\t\t});\n\n\t\t\t\t\tif (data && data.success) {\n\t\t\t\t\t\tshowToast('\u2705 Votre demande de rendez-vous a bien \u00e9t\u00e9 envoy\u00e9e.', 'success');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tshowToast('\u274c Erreur lors de l\u2019envoi. Veuillez r\u00e9essayer.', 'error');\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error('RDV error:', e);\n\t\t\t\t\tshowToast('\u274c Erreur serveur ou r\u00e9seau lors de l\u2019envoi.', 'error');\n\t\t\t\t} finally {\n\t\t\t\t\tbtn.disabled = false;\n\t\t\t\t\tbtn.textContent = 'DEMANDEZ UN RENDEZ-VOUS AVEC UN CONSEILLER ACANS';\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tfunction processFinalData(){\n\t\t\ttry {\n\t\t\t\t$('quiz').classList.add('hidden');\n\t\t\t\t$('prog-wrap').classList.add('hidden');\n\n\t\t\t\tconst today = new Date().toLocaleDateString('fr-FR', { year:'numeric', month:'long', day:'numeric' });\n\t\t\t\t$('res-date').textContent = `\u00c9dit\u00e9 le ${today}`;\n\n\t\t\t\tconst totalPerf = Object.values(STATE.scoresPerf).reduce((a, b) => a + b, 0);\n\t\t\t\tconst maxPerf = Object.values(MAX_PERF).reduce((a, b) => a + b, 0);\n\t\t\t\tSTATE.globalPerfScore = computePercent(totalPerf, maxPerf);\n\n\t\t\t\tconst totalComp = Object.values(STATE.scoresComp).reduce((a, b) => a + b, 0);\n\t\t\t\tconst maxComp = Object.values(MAX_COMP).reduce((a, b) => a + b, 0);\n\t\t\t\tSTATE.globalCompScore = computePercent(totalComp, maxComp);\n\n\t\t\t\t$('result-identity').innerHTML = buildIdentityHtml();\n\n\t\t\t\tprepareDataPerf();\n\t\t\t\tprepareDataComp();\n\t\t\t\trenderCompilation();\n\t\t\t\tbindMailButton();\n\n\t\t\t\t$('result').classList.remove('hidden');\n\t\t\t\t$('result').classList.add('slide-up');\n\n\t\t\t\tswitchTab('perf');\n\t\t\t\twindow.scrollTo({ top: $('result').getBoundingClientRect().top + window.pageYOffset - 30, behavior: 'smooth' });\n\t\t\t} catch (e) {\n\t\t\t\tshowFatalError('Erreur lors de la g\u00e9n\u00e9ration du rapport.', e);\n\t\t\t}\n\t\t}\n\n\t\twindow.requestCallback = async function(){\n\t\t\tif (!askAntiSpam()) {\n\t\t\t\talert(\"R\u00e9ponse incorrecte. La demande de rappel a \u00e9t\u00e9 bloqu\u00e9e.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst btn = $('callback-btn');\n\t\t\tif (btn) {\n\t\t\t\tbtn.disabled = true;\n\t\t\t\tbtn.textContent = '\u23f3 Envoi en cours\u2026';\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst interlocuteurDisplay = STATE.firmData.interlocuteur || STATE.firmData.gerant || 'Non renseign\u00e9';\n\n\t\t\t\tconst data = await postJson(MAIL_ENDPOINT, {\n\t\t\t\t\ttype: 'rappel',\n\t\t\t\t\tfirmData: {\n\t\t\t\t\t\tnom: STATE.firmData.nom,\n\t\t\t\t\t\tinterlocuteur: interlocuteurDisplay,\n\t\t\t\t\t\temail: STATE.firmData.email,\n\t\t\t\t\t\ttel: STATE.firmData.tel || 'NR',\n\t\t\t\t\t\tmobile: STATE.firmData.mobile || 'NR'\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (data && data.success) {\n\t\t\t\t\tshowToast('\u2705 Votre demande de rappel a bien \u00e9t\u00e9 envoy\u00e9e.', 'success');\n\t\t\t\t} else {\n\t\t\t\t\tshowToast('\u274c Erreur lors de l\u2019envoi. Veuillez r\u00e9essayer.', 'error');\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('CALLBACK error:', e);\n\t\t\t\tshowToast('\u274c Erreur serveur ou r\u00e9seau lors de la demande de rappel.', 'error');\n\t\t\t} finally {\n\t\t\t\tif (btn) {\n\t\t\t\t\tbtn.disabled = false;\n\t\t\t\t\tbtn.textContent = '\ud83d\udcde Je souhaite \u00eatre rappel\u00e9';\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\twindow.unlockPartnerMode = function(){\n\t\t\tif (document.body.classList.contains('partner-mode')) {\n\t\t\t\tdocument.body.classList.remove('print-summary');\n\t\t\t\twindow.print();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst pwd = prompt(\"Acc\u00e8s s\u00e9curis\u00e9 Partenaire ACANS.\\nVeuillez saisir le code secret :\");\n\t\t\tif (!pwd) return;\n\n\t\t\tif (pwd.toUpperCase() === 'AEG-ACANS') {\n\t\t\t\tdocument.body.classList.add('partner-mode');\n\t\t\t\tconst btn = $('unlock-btn');\n\t\t\t\tif (btn) btn.innerHTML = '\ud83d\udda8\ufe0f Imprimer le rapport complet ACANS';\n\t\t\t\talert(\"Mode partenaire activ\u00e9.\");\n\t\t\t} else {\n\t\t\t\talert(\"Code incorrect.\");\n\t\t\t}\n\t\t};\n\n\t\twindow.printReport = function(type){\n\t\t\tif (type === 'summary') document.body.classList.add('print-summary');\n\t\t\telse document.body.classList.remove('print-summary');\n\t\t\twindow.print();\n\t\t};\n\n\t\twindow.addEventListener('afterprint', function(){\n\t\t\tdocument.body.classList.remove('print-summary');\n\t\t});\n\n\t\twindow.saveAsPDF = function(){\n\t\t\tdocument.body.classList.add('print-summary');\n\t\t\twindow.print();\n\t\t\tsetTimeout(() => {\n\t\t\t\tdocument.body.classList.remove('print-summary');\n\t\t\t}, 500);\n\t\t};\n\n\t\tfunction showToast(msg, type){\n\t\t\tlet toast = document.getElementById('acans-toast');\n\t\t\tif (!toast) {\n\t\t\t\ttoast = document.createElement('div');\n\t\t\t\ttoast.id = 'acans-toast';\n\t\t\t\ttoast.style.cssText = [\n\t\t\t\t\t'position:fixed',\n\t\t\t\t\t'bottom:80px',\n\t\t\t\t\t'left:50%',\n\t\t\t\t\t'transform:translateX(-50%)',\n\t\t\t\t\t'padding:14px 28px',\n\t\t\t\t\t'border-radius:12px',\n\t\t\t\t\t'font-family:\"Manrope\",\"Helvetica Neue\",Helvetica,Arial,sans-serif',\n\t\t\t\t\t'font-size:.95rem',\n\t\t\t\t\t'font-weight:600',\n\t\t\t\t\t'z-index:9999',\n\t\t\t\t\t'box-shadow:0 8px 32px rgba(0,0,0,.25)',\n\t\t\t\t\t'transition:opacity .4s',\n\t\t\t\t\t'max-width:90vw',\n\t\t\t\t\t'text-align:center'\n\t\t\t\t].join(';');\n\t\t\t\tdocument.body.appendChild(toast);\n\t\t\t}\n\n\t\t\ttoast.style.background = type === 'success' ? 'rgba(33,122,82,.96)' : 'rgba(180,35,24,.96)';\n\t\t\ttoast.style.color = '#fff';\n\t\t\ttoast.style.opacity = '1';\n\t\t\ttoast.textContent = msg;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\ttoast.style.opacity = '0';\n\t\t\t}, 4000);\n\t\t}\n\t})();\n\t<\/script>\n<\/div>\n\n<\/div><\/section>\n\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-mnnuskci-e258079f3c0066c9e6a8299a08fd3e74\">\n#top .hr.hr-invisible.av-mnnuskci-e258079f3c0066c9e6a8299a08fd3e74{\nheight:100px;\n}\n<\/style>\n<div  class='hr av-mnnuskci-e258079f3c0066c9e6a8299a08fd3e74 hr-invisible  avia-builder-el-2  el_after_av_textblock  avia-builder-el-last '><span class='hr-inner '><span class=\"hr-inner-style\"><\/span><\/span><\/div>\n<\/div><\/div><\/main><!-- close content main element --><\/div><\/div><div id='after_section_1'  class='main_color av_default_container_wrap container_wrap sidebar_right'  ><div class='container av-section-cont-open' ><div class='template-page content  av-content-small alpha units'><div class='post-entry post-entry-type-page post-entry-5234'><div class='entry-content-wrapper clearfix'>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5234","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/acans.com\/es\/wp-json\/wp\/v2\/pages\/5234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/acans.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/acans.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/acans.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/acans.com\/es\/wp-json\/wp\/v2\/comments?post=5234"}],"version-history":[{"count":0,"href":"https:\/\/acans.com\/es\/wp-json\/wp\/v2\/pages\/5234\/revisions"}],"wp:attachment":[{"href":"https:\/\/acans.com\/es\/wp-json\/wp\/v2\/media?parent=5234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}