{"id":5643,"date":"2026-07-02T14:37:53","date_gmt":"2026-07-02T14:37:53","guid":{"rendered":"https:\/\/tomorrowsleaders.nl\/?page_id=5643"},"modified":"2026-09-09T09:16:03","modified_gmt":"2026-09-09T09:16:03","slug":"ai-workforce-scan","status":"publish","type":"page","link":"https:\/\/tomorrowsleaders.nl\/en\/ai-workforce-scan\/","title":{"rendered":"AI Workforce scan"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"nl\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n<title>AI Workforce Scan \u2014 Tomorrow&#8217;s Leaders<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n\/* \u2550\u2550 WORDPRESS OVERRIDE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   Forces dark background regardless of theme or template\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nhtml,\nbody,\n.site-content,\n.entry-content,\n.inside-article,\n.content-area,\n.site-main,\narticle.page,\narticle.post,\n.generate-columns-container,\n.wp-block-group,\n.has-global-padding {\n  background: #0F0F0F !important;\n  color: #E8E8E8 !important;\n}\n\/* Hide WordPress page title *\/\n.entry-title,\nh1.entry-title,\n.page-title,\n.wp-block-post-title {\n  display: none !important;\n}\n\/* Remove GeneratePress content padding that causes white strip *\/\n.inside-article,\n.entry-content {\n  padding: 0 !important;\n  margin: 0 !important;\n}\n\/* Remove any white borders\/margins from theme *\/\n.site-content .inside-article {\n  border: none !important;\n  box-shadow: none !important;\n}\n\n\/* \u2550\u2550 DESIGN SYSTEM \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n:root {\n  --red:    #C8102E;\n  --red-h:  #A00D24;\n  --bg0:    #0F0F0F;  \/* page background *\/\n  --bg1:    #161616;  \/* section \/ card *\/\n  --bg2:    #1E1E1E;  \/* nested card *\/\n  --bg3:    #252525;  \/* deep nested *\/\n  --bd:     #2C2C2C;  \/* border subtle *\/\n  --bd2:    #383838;  \/* border medium *\/\n  --t1:     #F2F2F2;  \/* primary text *\/\n  --t2:     #B8B8B8;  \/* secondary text *\/\n  --t3:     #717171;  \/* muted text *\/\n  --t4:     #484848;  \/* very muted *\/\n}\n\n*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }\n*, body { font-family: 'Inter', -apple-system, sans-serif; }\na { color: inherit; text-decoration: none; }\nbutton { cursor: pointer; }\n\n\/* \u2550\u2550 SCAN SHELL \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#tl-scan-root {\n  background: var(--bg0);\n  color: var(--t1);\n  min-height: 100vh;\n  -webkit-font-smoothing: antialiased;\n  font-size: 15px;\n  line-height: 1.6;\n}\n\n\/* \u2550\u2550 HEADER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.sh {\n  background: var(--bg0);\n  border-bottom: 1px solid var(--bd);\n  height: 52px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: 0 28px;\n  position: sticky;\n  top: 0;\n  z-index: 200;\n}\n.sh-logo {\n  font-size: 13px;\n  font-weight: 700;\n  letter-spacing: .07em;\n  text-transform: uppercase;\n  color: var(--t1);\n}\n.sh-logo b { color: var(--red); font-weight: 700; }\n.sh-right { display: flex; align-items: center; gap: 14px; }\n.sh-back {\n  display: none;\n  align-items: center;\n  gap: 5px;\n  font-size: 11px;\n  font-weight: 500;\n  letter-spacing: .05em;\n  color: var(--t3);\n  background: none;\n  border: none;\n  padding: 0;\n  transition: color .15s;\n  cursor: pointer;\n}\n.sh-back:hover { color: var(--t1); }\n.sh-back.vis { display: flex; }\n.sh-tag {\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .1em;\n  text-transform: uppercase;\n  color: var(--t4);\n}\n\n\/* \u2550\u2550 SCREENS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.screen { display: none; }\n.screen.on { display: block; }\n\n\/* \u2550\u2550 CHOICE SCREEN \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.choice {\n  max-width: 880px;\n  margin: 0 auto;\n  padding: 64px 24px 72px;\n}\n.e { \/* eyebrow *\/\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .12em;\n  text-transform: uppercase;\n  color: var(--red);\n  margin-bottom: 14px;\n  display: block;\n}\n.choice h1 {\n  font-size: clamp(24px, 3.2vw, 34px);\n  font-weight: 700;\n  color: var(--t1);\n  line-height: 1.2;\n  letter-spacing: -.02em;\n  margin-bottom: 10px;\n}\n.choice-sub {\n  font-size: 14px;\n  color: var(--t2);\n  font-weight: 400;\n  max-width: 460px;\n  line-height: 1.65;\n  margin-bottom: 44px;\n}\n.scan-cards {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 14px;\n  margin-bottom: 28px;\n}\n@media (max-width: 600px) { .scan-cards { grid-template-columns: 1fr; } }\n\n.sc {\n  background: var(--bg1);\n  border: 1px solid var(--bd);\n  border-radius: 8px;\n  padding: 26px 24px;\n  display: flex;\n  flex-direction: column;\n  position: relative;\n  transition: border-color .15s;\n}\n.sc:hover { border-color: var(--bd2); }\n.sc.featured { border-color: var(--bd2); }\n\n.sc-badge {\n  position: absolute;\n  top: -1px; right: 20px;\n  background: var(--red);\n  color: #fff;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: .08em;\n  text-transform: uppercase;\n  padding: 3px 9px;\n  border-radius: 0 0 5px 5px;\n}\n.sc-time {\n  font-size: 11px;\n  font-weight: 500;\n  letter-spacing: .06em;\n  text-transform: uppercase;\n  color: var(--t3);\n  margin-bottom: 10px;\n}\n.sc h2 {\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--t1);\n  letter-spacing: -.01em;\n  margin-bottom: 8px;\n}\n.sc p {\n  font-size: 13px;\n  color: var(--t2);\n  line-height: 1.65;\n  margin-bottom: 18px;\n  flex-grow: 1;\n}\n.sc-tags {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 6px;\n  margin-bottom: 22px;\n}\n.sc-tag {\n  font-size: 11px;\n  font-weight: 500;\n  color: var(--t3);\n  border: 1px solid var(--bd);\n  border-radius: 4px;\n  padding: 3px 8px;\n  letter-spacing: .02em;\n}\n.sc-btn {\n  font-size: 12px;\n  font-weight: 700;\n  letter-spacing: .07em;\n  text-transform: uppercase;\n  padding: 11px 18px;\n  border-radius: 6px;\n  border: none;\n  transition: all .15s;\n  text-align: center;\n  cursor: pointer;\n}\n.sc-btn-red { background: var(--red); color: #fff; }\n.sc-btn-red:hover { background: var(--red-h); }\n.sc-btn-ghost {\n  background: transparent;\n  border: 1px solid var(--bd2);\n  color: var(--t1);\n}\n.sc-btn-ghost:hover { border-color: var(--t3); }\n\n.choice-note {\n  text-align: center;\n  font-size: 12px;\n  color: var(--t4);\n  letter-spacing: .01em;\n}\n\n\/* \u2550\u2550 SCAN WRAPPER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.sw { max-width: 700px; margin: 0 auto; padding: 44px 24px 80px; }\n\n\/* Progress *\/\n.prog {\n  display: flex;\n  position: relative;\n  margin-bottom: 44px;\n}\n.prog::before {\n  content: '';\n  position: absolute;\n  left: 0; right: 0; top: 12px;\n  height: 1px;\n  background: var(--bd);\n}\n.ps {\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 6px;\n  position: relative;\n  z-index: 1;\n}\n.pd {\n  width: 24px; height: 24px;\n  border-radius: 50%;\n  background: var(--bg0);\n  border: 1px solid var(--bd);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 10px;\n  font-weight: 700;\n  color: var(--t3);\n  transition: all .2s;\n}\n.ps.active .pd { border-color: var(--t1); color: var(--t1); }\n.ps.done .pd { background: var(--red); border-color: var(--red); color: #fff; }\n.pl {\n  font-size: 10px;\n  color: var(--t3);\n  letter-spacing: .04em;\n  white-space: nowrap;\n}\n.ps.active .pl { color: var(--t2); }\n\n\/* Step *\/\n.step { display: none; }\n.step.on { display: block; animation: fu .3s ease; }\n@keyframes fu { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }\n\n.step-ey {\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .1em;\n  text-transform: uppercase;\n  color: var(--red);\n  margin-bottom: 8px;\n}\n.step-h {\n  font-size: 20px;\n  font-weight: 700;\n  color: var(--t1);\n  letter-spacing: -.01em;\n  margin-bottom: 6px;\n}\n.step-sub {\n  font-size: 13px;\n  color: var(--t2);\n  margin-bottom: 32px;\n  line-height: 1.6;\n}\n\n\/* Questions *\/\n.qb { margin-bottom: 26px; }\n.ql {\n  font-size: 13px;\n  font-weight: 500;\n  color: var(--t1);\n  margin-bottom: 10px;\n}\n.req { color: var(--red); }\n.opt { font-size: 11px; color: var(--t3); font-weight: 400; }\n\n\/* Pills *\/\n.pills { display: flex; flex-wrap: wrap; gap: 6px; }\n.pill {\n  position: relative;\n  cursor: pointer;\n  padding: 7px 14px;\n  border: 1px solid var(--bd);\n  border-radius: 5px;\n  font-size: 13px;\n  font-weight: 400;\n  color: var(--t2);\n  background: var(--bg1);\n  transition: all .12s;\n  user-select: none;\n}\n.pill:hover { border-color: var(--bd2); color: var(--t1); }\n.pill.sel, .pill.selected { border-color: var(--t1); color: var(--t1); background: var(--bg2); }\n.pill input, .sd input { position: absolute; opacity: 0; width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }\n.pill:focus-within, .sd:focus-within { outline: 2px solid var(--t1); outline-offset: 2px; }\n\n\/* Text input *\/\n.si {\n  width: 100%;\n  padding: 10px 13px;\n  border: 1px solid var(--bd);\n  border-radius: 6px;\n  font-size: 13px;\n  color: var(--t1);\n  background: var(--bg1);\n  outline: none;\n  transition: border-color .15s;\n  max-width: 360px;\n}\n.si:focus { border-color: var(--bd2); }\n.si::placeholder { color: var(--t4); }\n\n\/* Range *\/\n.rw { display: flex; align-items: center; gap: 14px; }\n.rw input[type=range] {\n  flex: 1; height: 3px;\n  -webkit-appearance: none; appearance: none;\n  background: var(--bd); border-radius: 2px; outline: none;\n}\n.rw input[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  width: 17px; height: 17px; border-radius: 50%;\n  background: var(--red); cursor: pointer;\n  border: 2px solid var(--t1);\n}\n.rv {\n  font-size: 15px;\n  font-weight: 700;\n  color: var(--t1);\n  min-width: 76px;\n  text-align: right;\n}\n\n\/* Checkboxes *\/\n.cg { display: grid; grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: 6px; }\n.ci {\n  position: relative;\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  padding: 9px 11px;\n  border: 1px solid var(--bd);\n  border-radius: 6px;\n  cursor: pointer;\n  background: var(--bg1);\n  transition: all .12s;\n}\n.ci:hover { border-color: var(--bd2); }\n.ci.selected { border-color: var(--bd2); background: var(--bg2); }\n.ci input { position: absolute; opacity: 0; width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }\n.ci:focus-within { outline: 2px solid var(--t1); outline-offset: 2px; }\n.cb {\n  width: 15px; height: 15px;\n  border: 1px solid var(--bd2);\n  border-radius: 3px;\n  flex-shrink: 0;\n  display: flex; align-items: center; justify-content: center;\n  font-size: 10px;\n  color: var(--red);\n}\n.ct { font-size: 13px; color: var(--t2); line-height: 1.4; }\n.ci.selected .ct { color: var(--t1); }\n\n\/* Scale \/ impact matrix *\/\n.sg { display: flex; flex-direction: column; gap: 8px; }\n.sr {\n  display: grid;\n  grid-template-columns: 172px 1fr;\n  align-items: center;\n  gap: 12px;\n}\n.sl { font-size: 13px; color: var(--t2); }\n.so { display: flex; gap: 5px; }\n.sd {\n  position: relative;\n  flex: 1; height: 30px;\n  border: 1px solid var(--bd);\n  border-radius: 5px;\n  display: flex; align-items: center; justify-content: center;\n  font-size: 11px; font-weight: 600;\n  color: var(--t3);\n  cursor: pointer;\n  transition: all .12s;\n}\n.sd:hover { border-color: var(--bd2); color: var(--t2); }\n.sd.sel { border-color: var(--bd2); color: var(--t1); background: var(--bg2); }\n@media (max-width: 480px) { .sr { grid-template-columns: 1fr; gap: 4px; } .sd { height: 44px; } }\n\n\/* Error *\/\n.err { font-size: 12px; color: var(--red); margin-top: 10px; display: none; }\n.err.on { display: block; }\n.error-msg { font-size: 12px; color: var(--red); margin-top: 10px; display: none; }\n.error-msg.visible { display: block; }\n\n\/* Nav *\/\n.nav {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin-top: 36px;\n  padding-top: 24px;\n  border-top: 1px solid var(--bd);\n}\n.nb {\n  font-size: 12px;\n  font-weight: 700;\n  letter-spacing: .07em;\n  text-transform: uppercase;\n  padding: 10px 22px;\n  border-radius: 6px;\n  border: none;\n  transition: all .15s;\n}\n.nb-prev {\n  background: transparent;\n  border: 1px solid var(--bd);\n  color: var(--t2);\n}\n.nb-prev:hover { border-color: var(--bd2); color: var(--t1); }\n.nb-next { background: var(--red); color: #fff; }\n.nb-next:hover { background: var(--red-h); }\n\n\/* Loading *\/\n.loading { display: none; text-align: center; padding: 80px 24px; }\n.loading.on { display: block; }\n.lr {\n  width: 40px; height: 40px;\n  border: 2px solid var(--bd2);\n  border-top-color: var(--t1);\n  border-radius: 50%;\n  animation: spin .8s linear infinite;\n  margin: 0 auto 20px;\n}\n@keyframes spin { to { transform: rotate(360deg); } }\n.lt { font-size: 17px; font-weight: 700; color: var(--t1); margin-bottom: 5px; letter-spacing: -.01em; }\n.lp { font-size: 13px; color: var(--t2); }\n.ls { margin-top: 26px; display: flex; flex-direction: column; gap: 9px; max-width: 280px; margin-inline: auto; }\n.li { display: flex; align-items: center; gap: 9px; font-size: 12px; color: var(--t3); opacity: .2; transition: opacity .5s; }\n.li.done { opacity: 1; color: var(--t1); }\n.ld { width: 6px; height: 6px; border-radius: 50%; background: var(--bd2); flex-shrink: 0; }\n.li.done .ld { background: var(--red); }\n\n\/* Results *\/\n.results { display: none; }\n.results.on { display: block; }\n.rh {\n  background: var(--bg1);\n  border: 1px solid var(--bd);\n  border-radius: 8px;\n  padding: 26px;\n  margin-bottom: 14px;\n}\n.rh-ey {\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .1em;\n  text-transform: uppercase;\n  color: var(--red);\n  margin-bottom: 8px;\n}\n.rh-t {\n  font-size: 19px;\n  font-weight: 700;\n  color: var(--t1);\n  letter-spacing: -.01em;\n  margin-bottom: 5px;\n}\n.rh-m { font-size: 12px; color: var(--t3); }\n.scores {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 10px;\n  margin-top: 18px;\n}\n@media (max-width: 480px) { .scores { grid-template-columns: 1fr; } }\n.sc-card {\n  background: var(--bg0);\n  border: 1px solid var(--bd);\n  border-radius: 6px;\n  padding: 14px;\n}\n.sc-n {\n  font-size: 26px;\n  font-weight: 700;\n  color: var(--t1);\n  line-height: 1;\n  margin-bottom: 4px;\n  letter-spacing: -.02em;\n}\n.sc-l {\n  font-size: 11px;\n  color: var(--t3);\n  letter-spacing: .03em;\n}\n.rb {\n  background: var(--bg1);\n  border: 1px solid var(--bd);\n  border-radius: 8px;\n  padding: 20px;\n  margin-bottom: 10px;\n}\n.rb h3 {\n  font-size: 13px;\n  font-weight: 600;\n  color: var(--t1);\n  margin-bottom: 12px;\n  letter-spacing: .01em;\n}\n.rb p { font-size: 13px; color: var(--t2); line-height: 1.7; }\n.rb ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 7px; }\n.rb li {\n  font-size: 13px;\n  color: var(--t2);\n  display: flex;\n  gap: 8px;\n  line-height: 1.55;\n  align-items: flex-start;\n}\n.rb li::before { content: '\u2192'; color: var(--red); flex-shrink: 0; font-size: 11px; margin-top: 2px; }\n.irow { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }\n.il { font-size: 12px; color: var(--t2); min-width: 148px; }\n.iw { flex: 1; height: 4px; background: var(--bg3); border-radius: 2px; overflow: hidden; }\n.ib { height: 100%; width: 0; border-radius: 2px; transition: width 1s ease; background: var(--red); }\n.ip { font-size: 12px; color: var(--t1); min-width: 30px; text-align: right; font-weight: 500; }\n.rn {\n  background: var(--bg0);\n  border-left: 2px solid var(--red);\n  padding: 11px 14px;\n  border-radius: 0 5px 5px 0;\n  font-size: 13px;\n  color: var(--t2);\n  line-height: 1.65;\n  margin-top: 14px;\n}\n.rn strong { color: var(--t1); }\n.r-cta {\n  background: var(--bg1);\n  border: 1px solid var(--bd);\n  border-radius: 8px;\n  padding: 26px;\n  text-align: center;\n  margin-top: 14px;\n}\n.r-cta h3 { font-size: 17px; font-weight: 700; color: var(--t1); letter-spacing: -.01em; margin-bottom: 7px; }\n.r-cta p { font-size: 13px; color: var(--t2); max-width: 380px; margin: 0 auto 20px; line-height: 1.6; }\n.cta-row { display: flex; gap: 9px; justify-content: center; flex-wrap: wrap; }\n.cta-p {\n  background: var(--red); color: #fff;\n  font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;\n  padding: 11px 22px; border-radius: 6px; border: none; cursor: pointer;\n  text-decoration: none; display: inline-block;\n}\n.cta-p:hover { background: var(--red-h); }\n.cta-s {\n  background: transparent; color: var(--t1);\n  font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;\n  padding: 11px 22px; border-radius: 6px; border: 1px solid var(--bd); cursor: pointer;\n}\n.cta-s:hover { border-color: var(--bd2); }\n\n\/* \u2550\u2550 DETAILED SCAN EXTRAS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.d-prog-wrap {\n  background: var(--bg0);\n  border-bottom: 1px solid var(--bd);\n  padding: 14px 24px;\n  display: none;\n}\n.d-prog-wrap.visible { display: block; }\n.d-prog-steps {\n  display: flex;\n  max-width: 560px;\n  margin: 0 auto;\n  position: relative;\n}\n.d-prog-steps::before {\n  content: '';\n  position: absolute;\n  left: 0; right: 0; top: 12px;\n  height: 1px;\n  background: var(--bd);\n  z-index: 0;\n}\n.dp { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; position: relative; z-index: 1; }\n.dpdot {\n  width: 24px; height: 24px; border-radius: 50%;\n  background: var(--bg0); border: 1px solid var(--bd);\n  display: flex; align-items: center; justify-content: center;\n  font-size: 10px; font-weight: 700; color: var(--t3); transition: all .2s;\n}\n.dp.active .dpdot { border-color: var(--t1); color: var(--t1); }\n.dp.done .dpdot { background: var(--red); border-color: var(--red); color: #fff; }\n.dplbl { font-size: 10px; color: var(--t3); white-space: nowrap; }\n.dp.active .dplbl { color: var(--t2); }\n\n\/* Detailed results grid *\/\n.d-scores {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 10px;\n  margin-bottom: 14px;\n}\n.d-sc-card {\n  background: var(--bg1);\n  border: 1px solid var(--bd);\n  border-radius: 6px;\n  padding: 16px;\n}\n.d-sc-card.hl { border-color: var(--bd2); }\n.d-sc-lbl { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--t3); font-weight: 600; margin-bottom: 8px; }\n.d-sc-num { font-size: 32px; font-weight: 700; color: var(--t1); line-height: 1; margin-bottom: 3px; letter-spacing: -.02em; }\n.d-sc-sub { font-size: 11px; color: var(--t3); }\n.d-an {\n  background: var(--bg1);\n  border: 1px solid var(--bd);\n  border-radius: 8px;\n  padding: 22px;\n  margin-bottom: 10px;\n}\n.d-an h3 {\n  font-size: 13px;\n  font-weight: 600;\n  color: var(--t1);\n  margin-bottom: 12px;\n  display: flex;\n  align-items: center;\n  gap: 7px;\n}\n.d-si { width: 26px; height: 26px; border-radius: 5px; background: var(--bg2); display: flex; align-items: center; justify-content: center; font-size: 13px; }\n.d-an p { font-size: 13px; color: var(--t2); line-height: 1.7; }\n.d-an ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 7px; }\n.d-an li { font-size: 13px; color: var(--t2); display: flex; gap: 7px; line-height: 1.55; align-items: flex-start; }\n.d-an li::before { content: '\u2192'; color: var(--red); flex-shrink: 0; font-size: 11px; margin-top: 2px; }\n.d-ir { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }\n.d-irl { width: 170px; font-size: 12px; color: var(--t2); flex-shrink: 0; }\n.d-ibw { flex: 1; height: 5px; background: var(--bg3); border-radius: 3px; overflow: hidden; }\n.d-ib { height: 100%; border-radius: 3px; transition: width 1.2s cubic-bezier(.16,1,.3,1); }\n.d-irp { width: 34px; text-align: right; font-size: 12px; font-weight: 500; color: var(--t1); }\n.d-cta {\n  background: var(--bg1);\n  border: 1px solid var(--bd);\n  border-radius: 8px;\n  padding: 28px;\n  text-align: center;\n  margin-top: 14px;\n}\n.d-cta h3 { font-size: 17px; font-weight: 700; color: var(--t1); letter-spacing: -.01em; margin-bottom: 7px; }\n.d-cta > p { font-size: 13px; color: var(--t2); max-width: 420px; margin: 0 auto 20px; line-height: 1.6; }\n.d-cg {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 8px;\n  margin-bottom: 16px;\n  text-align: left;\n}\n.d-cg textarea { grid-column: 1\/-1; min-height: 70px; resize: vertical; }\n.d-cg input, .d-cg textarea {\n  width: 100%;\n  padding: 9px 12px;\n  border: 1px solid var(--bd);\n  border-radius: 5px;\n  font-family: 'Inter', sans-serif;\n  font-size: 13px;\n  color: var(--t1);\n  background: var(--bg2);\n  outline: none;\n  transition: border-color .15s;\n}\n.d-cg input:focus, .d-cg textarea:focus { border-color: var(--bd2); }\n.d-cg input::placeholder, .d-cg textarea::placeholder { color: var(--t4); }\n.d-cta-btns { display: flex; gap: 9px; justify-content: center; flex-wrap: wrap; }\n@media (max-width: 500px) { .d-cg { grid-template-columns: 1fr; } .d-scores { grid-template-columns: 1fr; } }\n@media (max-width: 480px) { .sw { padding: 32px 16px 60px; } }\n<\/style>\n<\/head>\n<body>\n\n<div id=\"tl-scan-root\">\n\n<!-- HEADER -->\n<header class=\"sh\">\n  <span class=\"sh-logo\">Tomorrow&#8217;s <b>Leaders<\/b><\/span>\n  <div class=\"sh-right\">\n    <button class=\"sh-back\" id=\"shBack\" onclick=\"goBack()\">\u2190 Andere scan<\/button>\n    <span class=\"sh-tag\">AI Workforce Scan<\/span>\n  <\/div>\n<\/header>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     CHOICE SCREEN\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div id=\"scChoice\" class=\"screen on\">\n  <div class=\"choice\">\n    <span class=\"e\">Gratis bedrijfsscan<\/span>\n    <h1>Welke AI-rollen heeft uw organisatie nodig?<\/h1>\n    <p class=\"choice-sub\">Kies de scan die past bij uw beschikbare tijd. Beide leveren een gepersonaliseerde AI workforce-analyse op maat.<\/p>\n\n    <div class=\"scan-cards\">\n      <div class=\"sc featured\">\n        <div class=\"sc-badge\">Aanbevolen<\/div>\n        <div class=\"sc-time\">\u26a1 3 minuten<\/div>\n        <h2>Quick Scan<\/h2>\n        <p>Zeven gerichte keuzes, direct een AI workforce-analyse. Voor wie snel inzicht wil in risico&#8217;s, kansen en kritieke AI-rollen.<\/p>\n        <div class=\"sc-tags\">\n          <span class=\"sc-tag\">7 vragen<\/span>\n          <span class=\"sc-tag\">Alleen klikken<\/span>\n          <span class=\"sc-tag\">Direct resultaat<\/span>\n          <span class=\"sc-tag\">AI-analyse op maat<\/span>\n        <\/div>\n        <button class=\"sc-btn sc-btn-red\" onclick=\"startQuick()\">Start Quick Scan \u2192<\/button>\n      <\/div>\n\n      <div class=\"sc\">\n        <div class=\"sc-time\">\ud83d\udd0d 10 minuten<\/div>\n        <h2>Uitgebreide Scan<\/h2>\n        <p>Diepgaande analyse inclusief impactmatrix per functiegebied. Ideaal voor directie en HR die een volledig personeelsplan willen opstellen.<\/p>\n        <div class=\"sc-tags\">\n          <span class=\"sc-tag\">20+ vragen<\/span>\n          <span class=\"sc-tag\">Impactmatrix<\/span>\n          <span class=\"sc-tag\">Verdiept rapport<\/span>\n          <span class=\"sc-tag\">AI-analyse op maat<\/span>\n        <\/div>\n        <button class=\"sc-btn sc-btn-ghost\" onclick=\"startDetailed()\">Start Uitgebreide Scan \u2192<\/button>\n      <\/div>\n    <\/div>\n\n    <p class=\"choice-note\">Gratis \u00b7 Geen registratie \u00b7 Resultaten direct zichtbaar<\/p>\n  <\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     QUICK SCAN\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div id=\"scQuick\" class=\"screen\">\n<div class=\"sw\">\n\n  <div class=\"prog\" id=\"qProg\">\n    <div class=\"ps active\" id=\"qps1\"><div class=\"pd\">1<\/div><div class=\"pl\">Uw organisatie<\/div><\/div>\n    <div class=\"ps\" id=\"qps2\"><div class=\"pd\">2<\/div><div class=\"pl\">AI-richting<\/div><\/div>\n    <div class=\"ps\" id=\"qps3\"><div class=\"pd\">\u2713<\/div><div class=\"pl\">Uw analyse<\/div><\/div>\n  <\/div>\n\n  <!-- Stap 1 -->\n  <div class=\"step on\" id=\"qs1\">\n    <div class=\"step-ey\">Stap 1 van 2<\/div>\n    <div class=\"step-h\">Uw organisatie<\/div>\n    <div class=\"step-sub\">Vier keuzes \u2014 klik en ga verder<\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Sector <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"q_sec\" value=\"Financi\u00eble dienstverlening\">Financi\u00eble dienstverlening<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_sec\" value=\"Technologie &#038; Software\">Technologie &#038; Software<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_sec\" value=\"Zorg &#038; Life Sciences\">Zorg &#038; Life Sciences<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_sec\" value=\"Industrie &#038; Productie\">Industrie &#038; Productie<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_sec\" value=\"Retail &#038; E-commerce\">Retail &#038; E-commerce<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_sec\" value=\"Professionele dienstverlening\">Professionele dienstverlening<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_sec\" value=\"Overheid &#038; Non-profit\">Overheid &#038; Non-profit<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_sec\" value=\"Andere sector\">Andere sector<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Organisatieomvang <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"q_fte\" value=\"25\u201350 FTE\">25\u201350<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_fte\" value=\"51\u2013150 FTE\">51\u2013150<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_fte\" value=\"151\u2013400 FTE\">151\u2013400<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_fte\" value=\"401\u2013750 FTE\">401\u2013750<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_fte\" value=\"751\u20131000 FTE\">751\u20131000 FTE<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Uw functie <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"q_rol\" value=\"CEO \/ DGA\">CEO \/ DGA<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_rol\" value=\"CTO \/ CDO\">CTO \/ CDO<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_rol\" value=\"HR \/ People Director\">HR Director<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_rol\" value=\"Operations \/ COO\">COO \/ Operations<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_rol\" value=\"IT \/ Data Manager\">IT \/ Data Manager<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Huidig AI-gebruik <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"q_mat\" value=\"Nauwelijks \u2014 ori\u00ebntatiefase\">Nauwelijks<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_mat\" value=\"Experimenten met losse tools\">Experimenteel<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_mat\" value=\"Pilots in specifieke teams\">Pilots lopend<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_mat\" value=\"AI in productie in meerdere processen\">AI in productie<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"err\" id=\"qe1\">Selecteer een antwoord per vraag om door te gaan.<\/div>\n    <div class=\"nav\"><div><\/div><button class=\"nb nb-next\" onclick=\"qN1()\">Volgende \u2192<\/button><\/div>\n  <\/div>\n\n  <!-- Stap 2 -->\n  <div class=\"step\" id=\"qs2\">\n    <div class=\"step-ey\">Stap 2 van 2<\/div>\n    <div class=\"step-h\">Uw AI-richting<\/div>\n    <div class=\"step-sub\">Nog drie keuzes, dan direct uw analyse<\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Grootste uitdaging nu <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cha\" value=\"Juiste AI-rollen en talent vinden\">AI-talent vinden<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cha\" value=\"AI-pilots opschalen naar productie\">AI-pilots opschalen<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cha\" value=\"Medewerkers upskilling voor AI\">Medewerkers upskilling<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cha\" value=\"AI-strategie en operating model bepalen\">AI-strategie bepalen<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cha\" value=\"AI governance en compliance inrichten\">AI governance<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">AI-ambitie komende 12 maanden <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"q_amb\" value=\"Verkennen \u2014 eerste AI use cases uitproberen\">Eerste use cases verkennen<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_amb\" value=\"Implementeren \u2014 AI in productie draaien\">AI in productie draaien<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_amb\" value=\"Opschalen \u2014 AI in meerdere afdelingen\">AI opschalen<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_amb\" value=\"Verankeren \u2014 AI-first organisatie worden\">AI-first worden<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Hoe wilt u AI-capaciteit invullen? <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cap\" value=\"Nog niet duidelijk of een combinatie\">Nog niet duidelijk<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cap\" value=\"Bestaande medewerkers ontwikkelen\">Team ontwikkelen<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cap\" value=\"Nieuw talent selecteren, opleiden en inzetten\">Nieuw talent<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cap\" value=\"Een ervaren AI-specialist tijdelijk inzetten\">Tijdelijke specialist<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"q_cap\" value=\"Een ervaren AI-specialist vast aannemen\">Vaste specialist<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"err\" id=\"qe2\">Beantwoord de verplichte vragen om uw analyse te starten.<\/div>\n    <div class=\"nav\">\n      <button class=\"nb nb-prev\" onclick=\"qB()\">\u2190 Terug<\/button>\n      <button class=\"nb nb-next\" onclick=\"qRun()\">Analyseer mijn organisatie \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- Loading -->\n  <div class=\"loading\" id=\"qLoad\">\n    <div class=\"lr\"><\/div>\n    <div class=\"lt\">Uw analyse wordt opgesteld<\/div>\n    <div class=\"lp\">Even geduld \u2014 dit duurt enkele seconden<\/div>\n    <div class=\"ls\">\n      <div class=\"li\" id=\"ql1\"><div class=\"ld\"><\/div>Organisatieprofiel verwerken<\/div>\n      <div class=\"li\" id=\"ql2\"><div class=\"ld\"><\/div>AI-impact per functiegebied<\/div>\n      <div class=\"li\" id=\"ql3\"><div class=\"ld\"><\/div>Kritieke AI-rollen identificeren<\/div>\n      <div class=\"li\" id=\"ql4\"><div class=\"ld\"><\/div>Aanbevelingen opstellen<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Resultaten -->\n  <div class=\"results\" id=\"qRes\">\n    <div class=\"rh\">\n      <div class=\"rh-ey\">Quick Scan \u00b7 AI Workforce Analyse \u00b7 Tomorrow&#8217;s Leaders<\/div>\n      <div class=\"rh-t\" id=\"qr-h\">Uw analyse<\/div>\n      <div class=\"rh-m\" id=\"qr-m\"><\/div>\n      <div class=\"scores\">\n        <div class=\"sc-card\"><div class=\"sc-n\" id=\"qr-sc\">\u2014<\/div><div class=\"sc-l\">Veranderdruk<\/div><\/div>\n        <div class=\"sc-card\"><div class=\"sc-n\" id=\"qr-ur\">\u2014<\/div><div class=\"sc-l\">Veranderdrukscore<\/div><\/div>\n        <div class=\"sc-card\"><div class=\"sc-n\" id=\"qr-op\">\u2014<\/div><div class=\"sc-l\">Aandachtspunten<\/div><\/div>\n      <\/div>\n    <\/div>\n    <div id=\"qr-main\"><\/div>\n    <div class=\"r-cta\" id=\"qCtaRow\"><\/div>\n    <div class=\"r-cta\">\n      <h3>Klaar om uw AI-team te bouwen?<\/h3>\n      <p>Bespreek vrijblijvend uw AI workforce behoefte. Gemiddeld binnen 2 weken een shortlist.<\/p>\n      <div class=\"cta-row\">\n        <a class=\"cta-p\" href=\"tel:+31235121010\">Bel +31(0)23 5121010<\/a>\n        <button class=\"cta-s\" onclick=\"goBack()\">Uitgebreide scan \u2192<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n<\/div>\n\n\n<!-- DETAILED SCAN -->\n<div id=\"scDetailed\" class=\"screen\">\n\n<style>\n\/* Detailed scan wrapper *\/\n.d-sw { max-width: 700px; margin: 0 auto; padding: 44px 24px 80px; }\n.d-pw { background: var(--bg0); border-bottom: 1px solid var(--bd); padding: 14px 24px; display: none; }\n.d-pw.visible { display: block; }\n.d-ps { display: flex; max-width: 560px; margin: 0 auto; position: relative; }\n.d-ps::before { content: ''; position: absolute; left: 0; right: 0; top: 12px; height: 1px; background: var(--bd); z-index: 0; }\n.dp { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; position: relative; z-index: 1; }\n.dpdot { width: 24px; height: 24px; border-radius: 50%; background: var(--bg0); border: 1px solid var(--bd); display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; color: var(--t3); transition: all .2s; }\n.dp.active .dpdot { border-color: var(--t1); color: var(--t1); }\n.dp.done .dpdot { background: var(--red); border-color: var(--red); color: #fff; }\n.dplbl { font-size: 10px; color: var(--t3); white-space: nowrap; }\n.dp.active .dplbl { color: var(--t2); }\n.dstep { display: none; }\n.dstep.on { display: block; animation: fu .3s ease; }\n.d-results { display: none; }\n.d-results.on { display: block; }\n.loading.on { display: block; }\n\/* Detailed score cards *\/\n.d-scores { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }\n.d-sc-card { background: var(--bg1); border: 1px solid var(--bd); border-radius: 6px; padding: 16px; }\n.d-sc-card.hl { border-color: var(--bd2); }\n.d-sc-lbl { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--t3); font-weight: 600; margin-bottom: 8px; }\n.d-sc-num { font-size: 30px; font-weight: 700; color: var(--t1); line-height: 1; margin-bottom: 3px; letter-spacing: -.02em; }\n.d-sc-sub { font-size: 11px; color: var(--t3); }\n\/* Analysis blocks *\/\n.d-an { background: var(--bg1); border: 1px solid var(--bd); border-radius: 8px; padding: 22px; margin-bottom: 10px; }\n.d-an h3 { font-size: 13px; font-weight: 600; color: var(--t1); margin-bottom: 12px; display: flex; align-items: center; gap: 7px; }\n.d-si { width: 26px; height: 26px; border-radius: 5px; background: var(--bg2); display: flex; align-items: center; justify-content: center; font-size: 13px; }\n.d-an p { font-size: 13px; color: var(--t2); line-height: 1.7; margin-bottom: 10px; }\n.d-an ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 7px; }\n.d-an li { font-size: 13px; color: var(--t2); display: flex; gap: 7px; line-height: 1.55; align-items: flex-start; }\n.d-an li::before { content: '\u2192'; color: var(--red); flex-shrink: 0; font-size: 11px; margin-top: 2px; }\n\/* Impact bars *\/\n.d-ic { margin: 12px 0; }\n.d-ir { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }\n.d-irl { width: 170px; font-size: 12px; color: var(--t2); flex-shrink: 0; }\n.d-ibw { flex: 1; height: 5px; background: var(--bg3); border-radius: 3px; overflow: hidden; }\n.d-ib { height: 100%; border-radius: 3px; transition: width 1.2s cubic-bezier(.16,1,.3,1); }\n.d-irp { width: 34px; text-align: right; font-size: 12px; font-weight: 500; color: var(--t1); }\n\/* CTA *\/\n.d-cta { background: var(--bg1); border: 1px solid var(--bd); border-radius: 8px; padding: 28px; text-align: center; margin-top: 14px; }\n.d-cta h3 { font-size: 17px; font-weight: 700; color: var(--t1); letter-spacing: -.01em; margin-bottom: 7px; }\n.d-cta > p { font-size: 13px; color: var(--t2); max-width: 420px; margin: 0 auto 20px; line-height: 1.6; }\n.d-cg { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; text-align: left; }\n.d-cg .d-fld-wide { grid-column: 1\/-1; }\n.d-fld label { display: block; font-size: 12px; font-weight: 600; color: var(--t2); margin-bottom: 4px; }\n.d-req-hint { font-size: 12px; color: var(--t2); margin-bottom: 10px; }\n.d-cg textarea { min-height: 70px; resize: vertical; }\n.d-cg input, .d-cg textarea { width: 100%; padding: 9px 12px; border: 1px solid #6B6B6B; border-radius: 5px; font-family: 'Inter', sans-serif; font-size: 16px; color: var(--t1); background: var(--bg2); outline: none; transition: border-color .15s; }\n.d-cg input:focus, .d-cg textarea:focus { border-color: var(--t2); }\n.d-cg input:focus-visible, .d-cg textarea:focus-visible { outline: 2px solid var(--t1); outline-offset: 2px; }\n.d-cg input::placeholder, .d-cg textarea::placeholder { color: #8A8A8A; }\n.d-cta-hint { font-size: 12px; color: var(--t2); margin: 14px 0 0; line-height: 1.5; }\n.d-cta-btns { display: flex; gap: 9px; justify-content: center; flex-wrap: wrap; }\n.d-cta-btns .cta-p, .d-cta-btns .cta-s { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }\n@media (max-width: 500px) { .d-cg { grid-template-columns: 1fr; } .d-scores { grid-template-columns: 1fr; } }\n<\/style>\n<div class=\"d-pw\" id=\"dPW\">\n  <div class=\"d-ps\" id=\"dPS\"><\/div>\n<\/div>\n\n<div class=\"d-sw\" id=\"dMain\" style=\"display:none;\">\n\n  <!-- STEP 1: Organisatie -->\n  <div class=\"dstep on\" id=\"ds1\">\n    <div class=\"step-ey\">Stap 1 van 4 \u2014 Organisatie<\/div>\n    <div class=\"step-h\">Uw organisatie<\/div>\n    <div class=\"step-sub\">Help ons uw context begrijpen zodat de analyse zo precies mogelijk is.<\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Naam van uw organisatie <span class=\"req\">*<\/span><\/div>\n      <input type=\"text\" class=\"si\" id=\"dq_orgname\" placeholder=\"bijv. Innovatech BV\">\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Aantal medewerkers (FTE) <span class=\"req\">*<\/span><\/div>\n      <div class=\"rw\">\n        <input type=\"range\" min=\"25\" max=\"1000\" step=\"25\" value=\"150\" id=\"dq_fte\" oninput=\"updateFTE(this.value)\">\n        <div class=\"rv\" id=\"dFteDisplay\">150 FTE<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">In welke sector is uw organisatie actief? <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\" id=\"sectorPills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Financi\u00eble dienstverlening\">Financieel<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Technologie &#038; IT\">Tech &#038; IT<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Industrie &#038; Productie\">Industrie<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Gezondheidszorg\">Zorg<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Retail &#038; E-commerce\">Retail<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Logistiek &#038; Transport\">Logistiek<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Professionele dienstverlening\">Dienstverlening<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Overheid &#038; Non-profit\">Overheid<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Energie &#038; Utilities\">Energie<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Media &#038; Marketing\">Media<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Onderwijs\">Onderwijs<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"sector\" value=\"Overige\">Overige<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Functie van de invuller <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\" id=\"rolePills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"role\" value=\"CEO \/ Directie\">CEO \/ Directie<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"role\" value=\"HR Directeur \/ CHRO\">HR Directeur<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"role\" value=\"HR Manager\">HR Manager<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"role\" value=\"CTO \/ IT Directeur\">CTO \/ IT<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"role\" value=\"COO \/ Operationeel Manager\">COO \/ Operaties<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"role\" value=\"Manager \/ Teamlead\">Manager<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"role\" value=\"Consultant\">Consultant<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"role\" value=\"Overige functie\">Overige<\/label>\n      <\/div>\n    <\/div>\n\n    <div id=\"de1\" class=\"error-msg\">Vul alle verplichte velden in voordat u verder gaat.<\/div>\n    <div class=\"nav\">\n      <div><\/div>\n      <button class=\"nb nb-next\" onclick=\"goStep(2)\">Volgende \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 2: AI-rijpheid -->\n  <div class=\"dstep\" id=\"ds2\">\n    <div class=\"step-ey\">Stap 2 van 4 \u2014 AI-volwassenheid<\/div>\n    <div class=\"step-h\">Waar staat uw organisatie?<\/div>\n    <div class=\"step-sub\">Eerlijke antwoorden leveren de meest bruikbare analyse op.<\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Hoe omschrijft u het huidige AI-gebruik in uw organisatie? <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\" id=\"maturityPills\">\n        <label class=\"pill\" style=\"flex:1;text-align:center;\"><input type=\"radio\" name=\"maturity\" value=\"Wij gebruiken nog geen AI\">Geen AI gebruik<\/label>\n        <label class=\"pill\" style=\"flex:1;text-align:center;\"><input type=\"radio\" name=\"maturity\" value=\"Experimenteel gebruik (bijv. ChatGPT ad hoc)\">Experimenteel<\/label>\n        <label class=\"pill\" style=\"flex:1;text-align:center;\"><input type=\"radio\" name=\"maturity\" value=\"Gestructureerde pilots op afdelingsniveau\">Gestructureerde pilots<\/label>\n        <label class=\"pill\" style=\"flex:1;text-align:center;\"><input type=\"radio\" name=\"maturity\" value=\"AI is ge\u00efntegreerd in meerdere kernprocessen\">AI in kernprocessen<\/label>\n        <label class=\"pill\" style=\"flex:1;text-align:center;\"><input type=\"radio\" name=\"maturity\" value=\"AI-first organisatie met uitgebreide AI-capability\">AI-first organisatie<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">In welke bedrijfsfuncties is AI al actief of gepland? <span class=\"req\">*<\/span><\/div>\n      <div class=\"cg\" id=\"aiAreasCheck\">\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"Klantenservice &#038; support\"><div class=\"cb\"><\/div><div class=\"ct\">Klantenservice &#038; support<\/div><\/label>\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"Sales &#038; marketing\"><div class=\"cb\"><\/div><div class=\"ct\">Sales &#038; marketing<\/div><\/label>\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"Finance &#038; administratie\"><div class=\"cb\"><\/div><div class=\"ct\">Finance &#038; administratie<\/div><\/label>\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"HR &#038; recruitment\"><div class=\"cb\"><\/div><div class=\"ct\">HR &#038; recruitment<\/div><\/label>\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"IT &#038; softwareontwikkeling\"><div class=\"cb\"><\/div><div class=\"ct\">IT &#038; softwareontwikkeling<\/div><\/label>\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"Logistiek &#038; operations\"><div class=\"cb\"><\/div><div class=\"ct\">Logistiek &#038; operations<\/div><\/label>\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"Productie &#038; kwaliteit\"><div class=\"cb\"><\/div><div class=\"ct\">Productie &#038; kwaliteit<\/div><\/label>\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"Data-analyse &#038; rapportage\"><div class=\"cb\"><\/div><div class=\"ct\">Data-analyse &#038; rapportage<\/div><\/label>\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"Juridisch &#038; compliance\"><div class=\"cb\"><\/div><div class=\"ct\">Juridisch &#038; compliance<\/div><\/label>\n        <label class=\"ci\"><input type=\"checkbox\" name=\"aiArea\" value=\"Nog geen specifieke focus\"><div class=\"cb\"><\/div><div class=\"ct\">Nog geen specifieke focus<\/div><\/label>\n      <\/div>\n    <\/div>\n\n    <div id=\"de2\" class=\"error-msg\">Selecteer minimaal \u00e9\u00e9n antwoord per vraag.<\/div>\n    <div class=\"nav\">\n      <button class=\"nb nb-prev\" onclick=\"goStep(1)\">\u2190 Terug<\/button>\n      <button class=\"nb nb-next\" onclick=\"goStep(3)\">Volgende \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 3: Impact inschatting -->\n  <div class=\"dstep\" id=\"ds3\">\n    <div class=\"step-ey\">Stap 3 van 4 \u2014 Personeelsimpact<\/div>\n    <div class=\"step-h\">Impact op uw mensen<\/div>\n    <div class=\"step-sub\">Geef per gebied aan hoe groot u de verwachte AI-impact inschat op die rollen.<\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Verwachte AI-impact per functiecategorie (1 = minimaal, 5 = transformatief) <span class=\"req\">*<\/span><\/div>\n      <div class=\"sg\" id=\"impactScale\">\n        <div style=\"display:grid;grid-template-columns:220px repeat(5,1fr);gap:8px;margin-bottom:6px;font-size:12px;color:var(--tl-gray);text-align:center;\">\n          <div><\/div>\n          <div>1<\/div><div>2<\/div><div>3<\/div><div>4<\/div><div>5<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Hoe groot schat u de netto verandering in personeelsbehoefte de komende 3 jaar? <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\" id=\"headcountPills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"headcount\" value=\"Significante reductie (&gt;15% minder FTE)\">Significante daling (&gt;15%)<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"headcount\" value=\"Lichte reductie (5-15% minder FTE)\">Lichte daling (5-15%)<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"headcount\" value=\"Stabiel maar andere rollen nodig\">Stabiel, andere rollen<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"headcount\" value=\"Lichte groei maar met andere competenties\">Groei, nieuwe competenties<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"headcount\" value=\"Sterke groei van AI-profielen nodig\">Sterke groei AI-profielen<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"headcount\" value=\"Onzeker \/ weet het niet\">Onzeker<\/label>\n      <\/div>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Welke uitdaging is voor u het meest urgent? <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\" id=\"urgencyPills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"urgency\" value=\"Juiste AI-talent aantrekken\">AI-talent aantrekken<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"urgency\" value=\"Bestaand personeel upskilling voor AI\">Personeel upskilling<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"urgency\" value=\"AI-leiderschap en governance inrichten\">AI-leiderschap inrichten<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"urgency\" value=\"Bepalen welke rollen overbodig worden\">Rollen bepalen die vervallen<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"urgency\" value=\"AI-strategie vertalen naar personeelsplan\">Strategie \u2192 personeelsplan<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"urgency\" value=\"Cultuurverandering rondom AI\">Cultuurverandering<\/label>\n      <\/div>\n    <\/div>\n\n    <div id=\"de3\" class=\"error-msg\">Selecteer minimaal \u00e9\u00e9n antwoord per vraag.<\/div>\n    <div class=\"nav\">\n      <button class=\"nb nb-prev\" onclick=\"goStep(2)\">\u2190 Terug<\/button>\n      <button class=\"nb nb-next\" onclick=\"goStep(4)\">Volgende \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 4: Context + start scan -->\n  <div class=\"dstep\" id=\"ds4\">\n    <div class=\"step-ey\">Stap 4 van 4 \u2014 Uw ambitie<\/div>\n    <div class=\"step-h\">Laatste stap<\/div>\n    <div class=\"step-sub\">Vertel ons kort over uw AI-ambitie zodat de analyse nog relevanter wordt.<\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Wat is de grootste zorg of vraag rondom AI en uw personeel?<\/div>\n      <textarea class=\"si\" id=\"dq_concern\" rows=\"3\" placeholder=\"bijv. 'Ik weet niet welke AI-rollen wij moeten aannemen en in welke volgorde...'\"><\/textarea>\n    <\/div>\n\n    <div class=\"qb\">\n      <div class=\"ql\">Wat is uw AI-ambitie voor de komende 2 jaar? <span class=\"req\">*<\/span><\/div>\n      <div class=\"pills\" id=\"ambitionPills\">\n        <label class=\"pill\"><input type=\"radio\" name=\"ambition\" value=\"Kosten reduceren via automatisering\">Kosten reduceren<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"ambition\" value=\"Innovatie versnellen met AI\">Innovatie versnellen<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"ambition\" value=\"Klantervaring sterk verbeteren met AI\">Klantervaring verbeteren<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"ambition\" value=\"AI-gedreven producten\/diensten lanceren\">AI-producten lanceren<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"ambition\" value=\"AI-volwassenheid bereiken als organisatie\">AI-volwassenheid bereiken<\/label>\n        <label class=\"pill\"><input type=\"radio\" name=\"ambition\" value=\"Medewerkers augmenteren met AI-tools\">Medewerkers augmenteren<\/label>\n      <\/div>\n    <\/div>\n\n    <div id=\"de4\" class=\"error-msg\">Selecteer uw AI-ambitie om de scan te starten.<\/div>\n    <div class=\"nav\">\n      <button class=\"nb nb-prev\" onclick=\"goStep(3)\">\u2190 Terug<\/button>\n      <button class=\"nb nb-next\" onclick=\"runScan()\">Analyseer mijn organisatie \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- LOADING -->\n  <div class=\"loading\" id=\"dLoad\">\n    <div class=\"lr\"><\/div>\n    <div class=\"lt\">AI analyseert uw organisatie<\/div>\n    <p>Even geduld \u2014 de scan verwerkt uw antwoorden.<\/p>\n    <div class=\"ls\">\n      <div class=\"li\" id=\"dl1\"><div class=\"ld\"><\/div>Sectorspecifieke AI-impact berekenen<\/div>\n      <div class=\"li\" id=\"dl2\"><div class=\"ld\"><\/div>Personeelsrollen modelleren<\/div>\n      <div class=\"li\" id=\"dl3\"><div class=\"ld\"><\/div>Talent gap identificeren<\/div>\n      <div class=\"li\" id=\"dl4\"><div class=\"ld\"><\/div>Aanbevelingen op maat genereren<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- RESULTS -->\n  <div class=\"d-results\" id=\"dRes\">\n    <div class=\"rh\">\n      <div style=\"display:flex;justify-content:space-between;align-items:flex-start;\"><div class=\"rh-ey\">AI Workforce Impact Scan \u2014 Resultaten<\/div><button onclick=\"window.print()\" style=\"font-family:'Syne',sans-serif;font-size:12px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;background:transparent;color:#888888;border:1.5px solid #333333;border-radius:2px;padding:8px 16px;transition:all 0.2s;\" onmouseover=\"this.style.borderColor='#ffffff';this.style.color='#ffffff';\" onmouseout=\"this.style.borderColor='#333333';this.style.color='#888888';\">&#128438; Print of bewaar als PDF<\/button><\/div>\n      <h2 id=\"dr-h\">AI-impact analyse gereed<\/h2>\n      <div class=\"res-org\" id=\"dr-m\"><\/div>\n    <\/div>\n\n    <div class=\"d-scores\">\n      <div class=\"d-sc-card hl\">\n        <div class=\"d-sc-lbl\">Veranderdruk<\/div>\n        <div class=\"d-sc-num\" id=\"dr-sc\">\u2014<\/div>\n        <div class=\"d-sc-sub\">Beweging in uw antwoorden<\/div>\n      <\/div>\n      <div class=\"d-sc-card\">\n        <div class=\"d-sc-lbl\">Veranderdrukscore<\/div>\n        <div class=\"d-sc-num\" id=\"dr-ur\">\u2014<\/div>\n        <div class=\"d-sc-sub\">Punten (max. 13)<\/div>\n      <\/div>\n      <div class=\"d-sc-card\">\n        <div class=\"d-sc-lbl\">Aandachtspunten<\/div>\n        <div class=\"d-sc-num\" id=\"dr-op\">\u2014<\/div>\n        <div class=\"d-sc-sub\">Aantal gesignaleerde punten<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"d-an\" id=\"dAnMain\">\n      <p style=\"color:var(--tl-gray);font-size:14px;\">Analyse wordt geladen&#8230;<\/p>\n    <\/div>\n\n    <div class=\"r-cta\" id=\"dCtaRow\"><\/div>\n    <div class=\"d-cta\">\n      <h3>Ontvang persoonlijk advies van een specialist<\/h3>\n      <p>Vul uw contactgegevens in \u2014 wij nemen binnen 1 werkdag contact op om de resultaten samen te bespreken en een concrete aanpak te formuleren.<\/p>\n      <p class=\"d-req-hint\">Velden met een * zijn verplicht.<\/p>\n      <div class=\"d-cg\">\n        <div class=\"d-fld\">\n          <label for=\"dcta-name\">Naam *<\/label>\n          <input type=\"text\" id=\"dcta-name\" name=\"name\" autocomplete=\"name\" placeholder=\"Uw naam\" required aria-required=\"true\" aria-describedby=\"d-cerr\">\n        <\/div>\n        <div class=\"d-fld\">\n          <label for=\"dcta-company\">Organisatie<\/label>\n          <input type=\"text\" id=\"dcta-company\" name=\"organization\" autocomplete=\"organization\" placeholder=\"Organisatie\">\n        <\/div>\n        <div class=\"d-fld\">\n          <label for=\"dcta-email\">E-mailadres *<\/label>\n          <input type=\"email\" id=\"dcta-email\" name=\"email\" autocomplete=\"email\" placeholder=\"E-mailadres\" required aria-required=\"true\" aria-describedby=\"d-cerr\">\n        <\/div>\n        <div class=\"d-fld\">\n          <label for=\"dcta-phone\">Telefoonnummer<\/label>\n          <input type=\"tel\" id=\"dcta-phone\" name=\"tel\" autocomplete=\"tel\" placeholder=\"Telefoonnummer\">\n        <\/div>\n        <div class=\"d-fld d-fld-wide\">\n          <label for=\"dcta-msg\">Toelichting<\/label>\n          <textarea id=\"dcta-msg\" name=\"message\" placeholder=\"Eventuele toelichting of specifieke vraag...\"><\/textarea>\n        <\/div>\n      <\/div>\n      <div id=\"d-cerr\" role=\"alert\" aria-live=\"polite\" style=\"display:none;margin-top:16px;padding:12px 16px;background:rgba(196,92,42,0.15);border:1px solid rgba(196,92,42,0.4);border-radius:3px;color:#faece4;font-size:14px;\">\n        \u26a0\ufe0f Vul uw naam en e-mailadres in om door te gaan.\n      <\/div>\n      <div id=\"d-csucc\" style=\"display:none;margin-top:16px;padding:16px 20px;background:rgba(46,107,79,0.2);border:1px solid rgba(46,107,79,0.4);border-radius:3px;color:#e8f3ee;font-size:14px;text-align:left;\">\n        \u2713 <strong>Uw e-mailprogramma is geopend<\/strong> met de gegevens ingevuld. Verstuur de e-mail om een gesprek in te plannen. Wij nemen binnen 1 werkdag contact met u op.\n      <\/div>\n      <p class=\"d-cta-hint\">Na uw klik opent uw e-mailprogramma met een ingevuld bericht. U controleert en verstuurt de e-mail zelf.<\/p>\n      <div class=\"d-cta-btns\" style=\"margin-top:20px;\">\n        <button class=\"cta-p\" id=\"dcta-submit\" onclick=\"submitContact()\">Plan een gesprek \u2192<\/button>\n        <button class=\"cta-s\" onclick=\"restartScan()\">Scan opnieuw uitvoeren<\/button>\n      <\/div>\n      <p style=\"margin-top:16px;font-size:12px;color:rgba(248,247,244,0.5);text-align:center;\">Of bel direct: <a href=\"tel:+31235121010\" style=\"color:rgba(248,247,244,0.5);text-decoration:none;\">+31 23 512 10 10<\/a><\/p>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\n\nconst STEPS = ['Organisatie','AI-rijpheid','Impact','Ambitie'];\nlet dStep = 1;\nlet scanData = {};\n\/\/ FIX D1: bewaart het laatst berekende Detailed Scan-resultaatobject (inclusief routecodes),\n\/\/ zodat submitContact() de daadwerkelijke aanbevolen route kan opnemen i.p.v. een DOM-element\n\/\/ dat bedoeld is voor de Change Pressure-score.\nlet lastDetailedResult = null;\n\n\/\/ GA4-FUNNELMETING: privacyvriendelijke analytics-helper voor de AI Workforce Scan.\n\/\/ Verstuurt uitsluitend categorische, niet-herleidbare waarden (routecodes, stapnummers,\n\/\/ scanstatus) via de bestaande Site Kit\/gtag-integratie. Nooit namen, e-mailadressen,\n\/\/ organisatienamen, vrije tekst of URL's met parameters. Controleert live, bij elke\n\/\/ verzending, via de WP Consent API (optin-status + wp_has_consent) de toestemming voor\n\/\/ de categorie 'statistics' en verstuurt niets zonder expliciete toestemming. Faalt altijd stil (nooit een consolefout, nooit de scan\n\/\/ onderbrekend) wanneer analytics niet beschikbaar of geblokkeerd is.\nfunction tlAnalyticsSend(eventName, params) {\ntry {\nif (typeof window.wp_consent_type === 'undefined' || window.wp_consent_type !== 'optin') return;\nif (typeof wp_has_consent !== 'function') return;\nvar consentOk;\ntry { consentOk = wp_has_consent('statistics'); } catch (e) { return; }\nif (consentOk !== true) return;\nif (typeof gtag !== 'function') return;\ngtag('event', eventName, params || {});\n} catch (e) { \/* analytics mag de scan nooit onderbreken *\/ }\n}\n\nfunction tlPressureBand(band) {\nvar map = { 'Laag': 'low', 'Gemiddeld': 'medium', 'Hoog': 'high', 'Zeer hoog': 'very_high' };\nreturn map[band] || null;\n}\n\nfunction tlSafePath(url) {\ntry {\nvar u = String(url || '');\nvar qIdx = u.indexOf('?');\nif (qIdx !== -1) u = u.substring(0, qIdx);\nvar hIdx = u.indexOf('#');\nif (hIdx !== -1) u = u.substring(0, hIdx);\nif (\/^https?:\\\/\\\/\/i.test(u)) {\nvar a = document.createElement('a');\na.href = u;\nu = a.pathname;\n}\nreturn u;\n} catch (e) { return ''; }\n}\n\nvar tlSeenSteps = {};\nfunction tlTrackStepView(scanType, stepNumber, stepName) {\nvar key = scanType + '_' + stepNumber;\nif (tlSeenSteps[key]) return;\ntlSeenSteps[key] = true;\ntlAnalyticsSend('ai_scan_step_view', { scan_type: scanType, step_number: stepNumber, step_name: stepName });\n}\nfunction tlResetSteps(scanType) {\nObject.keys(tlSeenSteps).forEach(function(k) { if (k.indexOf(scanType + '_') === 0) delete tlSeenSteps[k]; });\n}\n\nfunction tlCompleteParams(scanType, r, contradictory) {\nvar p = {\nscan_type: scanType,\nprimary_route: r.primary,\npressure_band: tlPressureBand(r.changePressure.band),\ncontradictory: !!contradictory,\ntie_fallback: !!r.tieFallback\n};\nif (r.secondary) p.secondary_route = r.secondary;\nreturn p;\n}\n\nvar tlContactOpenFired = false;\nfunction tlResetContactOpen() { tlContactOpenFired = false; }\nvar tlContactObserverInit = false;\nfunction tlInitContactObserver() {\nif (tlContactObserverInit) return;\nvar el = document.querySelector('.d-cta');\nif (!el) { tlContactObserverInit = true; return; }\nif (typeof IntersectionObserver !== 'function') { tlContactObserverInit = true; return; }\ntlContactObserverInit = true;\nvar obs = new IntersectionObserver(function(entries) {\nentries.forEach(function(entry) {\nif (entry.isIntersecting) {\nif (!tlContactOpenFired) {\ntlContactOpenFired = true;\nvar params = { scan_type: 'detailed' };\nif (lastDetailedResult) { if (lastDetailedResult.primary) { params.primary_route = lastDetailedResult.primary; } }\ntlAnalyticsSend('ai_scan_contact_open', params);\n}\n}\n});\n}, { threshold: 0.3 });\nobs.observe(el);\n}\n\nconst impactCategories = [\n'Administratieve functies',\n'Klantenservice medewerkers',\n'Data-analisten',\n'Sales \\u0026 marketing teams',\n'IT \\u0026 ontwikkelaars',\n'Management \\u0026 leiderschap',\n'Financi\u00ebn \\u0026 controlling',\n];\n\nfunction startScan() {\n\/* hero hidden *\/\ndocument.getElementById('dMain').style.display = 'block';\ndocument.getElementById('dPW').classList.add('on');\nbuildProgress();\nbuildImpactScale();\ninitPillListeners();\nupdateProgress(1);\n}\n\nfunction buildProgress() {\nconst wrap = document.getElementById('dPS');\nwrap.innerHTML = STEPS.map(function(s,i) {\nreturn '<div class=\"dp\" id=\"ps'+(i+1)+'\"><div class=\"dpdot\">'+(i+1)+'<\/div><div class=\"dplbl\">'+s+'<\/div><\/div>';\n}).join('');\n}\n\nfunction updateProgress(step) {\nfor(let i=1;i<=4;i++){\nconst el = document.getElementById('ps'+i);\nel.classList.remove('active','done');\nif(i < step) el.classList.add('done');\nif(i === step) el.classList.add('on');\n}\nconst dots = document.querySelectorAll('.p-step.done .p-dot');\ndots.forEach(d => d.textContent = '\u2713');\nconst activeDot = document.querySelector('.p-step.active .p-dot');\nif(activeDot) activeDot.textContent = STEPS.indexOf(STEPS[step-1])+1;\n}\n\nfunction buildImpactScale() {\nconst grid = document.getElementById('impactScale');\ngrid.innerHTML = '';\nimpactCategories.forEach((cat, catIdx) => {\nconst lblId = 'iscale-lbl-'+catIdx;\nconst row = document.createElement('div');\nrow.className = 'scale-row';\nrow.innerHTML = '<div class=\"sl\" id=\"'+lblId+'\">'+cat+'<\/div><div class=\"so\" role=\"radiogroup\" aria-labelledby=\"'+lblId+'\">'\n+ [1,2,3,4,5].map(function(n){ return '<label class=\"sd\" data-cat=\"'+cat+'\" data-val=\"'+n+'\"><input type=\"radio\" name=\"iscale-'+catIdx+'\" value=\"'+n+'\" onchange=\"selectScale(this.closest(\\'.sd\\'),\\''+cat+'\\','+n+')\">'+n+'<\/label>'; }).join('')\n+ '<\/div>';\ngrid.appendChild(row);\n});\n}\n\nfunction selectScale(el, cat, val) {\ndocument.querySelectorAll('.scale-dot[data-cat=\"'+cat+'\"]').forEach(function(d){d.classList.remove('sel');});\nel.classList.add('sel');\nif(!scanData.impact) scanData.impact = {};\nscanData.impact[cat] = val;\n}\n\nfunction initPillListeners() {\n\/\/ FIX D2: idempotentie-guard (zelfde patroon als initQPills()._qInit) zodat herhaald\n\/\/ starten van de Detailed Scan niet telkens nieuwe, dubbele listeners registreert.\ndocument.querySelectorAll('.pill input[type=radio]').forEach(input => {\nif (input._dInit) return; input._dInit = true;\ninput.addEventListener('change', function(){\nconst name = this.name;\ndocument.querySelectorAll('.pill input[name=\"'+name+'\"]').forEach(function(i){ i.parentElement.classList.remove('selected'); });\nthis.parentElement.classList.add('selected');\n});\n});\ndocument.querySelectorAll('.ci input[type=checkbox]').forEach(input => {\nif (input._dInit) return; input._dInit = true;\ninput.addEventListener('change', function(){\nthis.parentElement.classList.toggle('selected', this.checked);\nconst box = this.parentElement.querySelector('.cb');\nbox.textContent = this.checked ? '\u2713' : '';\n});\n});\n}\n\nfunction updateFTE(val) {\ndocument.getElementById('dFteDisplay').textContent = val + ' FTE';\n}\n\n\/* \u2550\u2550 SCORING-, ROUTERINGS- EN TEKSTENGINE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   Gebaseerd op reviews\/ai-workforce-scan-definitieve-uitvoeringsspecificatie-2026-09-08.md.\n   Alle antwoordwaarden hieronder zijn de exacte, live value-attributen van dit formulier. *\/\n\/\/ AI Workforce Scan \u2014 nieuwe scoring\/routering\/tekst\/CTA-engine\n\/\/ Gebaseerd op reviews\/ai-workforce-scan-definitieve-uitvoeringsspecificatie-2026-09-08.md\n\/\/ Alle antwoordwaarden hieronder zijn de EXACTE, live value-attributen van post 5643,\n\/\/ zoals vastgesteld in reviews\/ai-workforce-scan-broncode-analyse-2026-09-08.md.\n\/\/ Correcties t.o.v. de illustratieve waarden in de specificatie staan gemarkeerd met \"\/\/ FIX:\".\n\nconst SERVICE_WEIGHTS_QUICK = {\n  q_cha: {\n    \"Juiste AI-rollen en talent vinden\":            { PRO: 3, TAL: 1 },\n    \"AI-pilots opschalen naar productie\":           { PRO: 2, ADV: 1 },\n    \"Medewerkers upskilling voor AI\":                { CAP: 3 },\n    \"AI-strategie en operating model bepalen\":       { ADV: 3 },\n    \"AI governance en compliance inrichten\":         { ADV: 2, EXE: 1 }\n  },\n  q_amb: {\n    \"Verkennen \u2014 eerste AI use cases uitproberen\":   { ADV: 2 },\n    \"Implementeren \u2014 AI in productie draaien\":       { PRO: 2 },\n    \"Opschalen \u2014 AI in meerdere afdelingen\":         { PRO: 1, CAP: 1 },\n    \"Verankeren \u2014 AI-first organisatie worden\":      { EXE: 2, ADV: 1 }\n  },\n  q_mat: {\n    \"Nauwelijks \u2014 ori\u00ebntatiefase\":                   { ADV: 2 },\n    \"Experimenten met losse tools\":                  { CAP: 1, ADV: 1 },\n    \"Pilots in specifieke teams\":                    { PRO: 1, CAP: 1 },\n    \"AI in productie in meerdere processen\":         { EXE: 1, PRO: 1 }\n  },\n  q_cap: {\n    \"Bestaande medewerkers ontwikkelen\":                        { CAP: 4 },\n    \"Nieuw talent selecteren, opleiden en inzetten\":            { TAL: 4 },\n    \"Een ervaren AI-specialist tijdelijk inzetten\":             { PRO: 4 },\n    \"Een ervaren AI-specialist vast aannemen\":                  { PRO: 4 },\n    \"Nog niet duidelijk of een combinatie\":                     { ADV: 2 }\n  }\n};\n\nconst SERVICE_WEIGHTS_DETAILED = {\n  headcount: {\n    \"Significante reductie (>15% minder FTE)\":        { CAP: 2, ADV: 2 }, \/\/ FIX: echte waarde incl. \"minder FTE)\"\n    \"Lichte reductie (5-15% minder FTE)\":             { CAP: 2, ADV: 1 }, \/\/ FIX: gewone koppelstreep + \"minder FTE)\"\n    \"Stabiel maar andere rollen nodig\":               { CAP: 3 },\n    \"Lichte groei maar met andere competenties\":      { CAP: 2, TAL: 1 }, \/\/ FIX: \"maar\" toegevoegd\n    \"Sterke groei van AI-profielen nodig\":            { PRO: 3, TAL: 1 },\n    \"Onzeker \/ weet het niet\":                        { ADV: 2 }\n  },\n  urgency: {\n    \"Juiste AI-talent aantrekken\":                    { PRO: 3, TAL: 1 },\n    \"Bestaand personeel upskilling voor AI\":          { CAP: 3 },\n    \"AI-leiderschap en governance inrichten\":         { ADV: 3, EXE: 1 },\n    \"Bepalen welke rollen overbodig worden\":          { ADV: 3 },\n    \"AI-strategie vertalen naar personeelsplan\":      { ADV: 3 },\n    \"Cultuurverandering rondom AI\":                   { ADV: 2, CAP: 1 }\n  },\n  ambition: {\n    \"Kosten reduceren via automatisering\":            { ADV: 2 },\n    \"Innovatie versnellen met AI\":                    { PRO: 2 },\n    \"Klantervaring sterk verbeteren met AI\":          { PRO: 1, ADV: 1 },\n    \"AI-gedreven producten\/diensten lanceren\":        { PRO: 2, EXE: 1 },\n    \"AI-volwassenheid bereiken als organisatie\":      { ADV: 2, CAP: 1 },\n    \"Medewerkers augmenteren met AI-tools\":           { CAP: 3 }\n  },\n  maturity: {\n    \"Wij gebruiken nog geen AI\":                                  { ADV: 2 },\n    \"Experimenteel gebruik (bijv. ChatGPT ad hoc)\":               { CAP: 1, ADV: 1 }, \/\/ FIX: volledige echte waarde\n    \"Gestructureerde pilots op afdelingsniveau\":                  { PRO: 1, CAP: 1 },\n    \"AI is ge\u00efntegreerd in meerdere kernprocessen\":               { EXE: 1, PRO: 1 },\n    \"AI-first organisatie met uitgebreide AI-capability\":         { EXE: 2 }\n  }\n};\n\nconst DIRECT_FIELDS_QUICK = ['q_cha', 'q_amb', 'q_cap'];\nconst DIRECT_FIELDS_DETAILED = ['headcount', 'urgency', 'ambition'];\n\nfunction applyImpactMatrixToServiceScores(totals, impact) {\n  if (!impact) return totals;\n  const HIGH = 4;\n  if ((impact['IT \\u0026 ontwikkelaars'] || 0) >= HIGH) totals.PRO += 2;\n  if ((impact['Data-analisten'] || 0) >= HIGH) totals.PRO += 2;\n  if ((impact['Administratieve functies'] || 0) >= HIGH) totals.CAP += 2;\n  if ((impact['Klantenservice medewerkers'] || 0) >= HIGH) totals.CAP += 2;\n  if ((impact['Financi\u00ebn \\u0026 controlling'] || 0) >= HIGH) totals.CAP += 2;\n  if ((impact['Management \\u0026 leiderschap'] || 0) >= HIGH) totals.EXE += 2;\n  if ((impact['Sales \\u0026 marketing teams'] || 0) >= HIGH) { totals.PRO += 1; totals.CAP += 1; }\n  return totals;\n}\n\nfunction applyAiAreasBreadthToServiceScores(totals, aiAreas) {\n  const extra = Math.max(0, (aiAreas || []).length - 3);\n  totals.PRO += Math.min(extra, 3);\n  return totals;\n}\n\nfunction calculateServiceScores(answers, directFields, supportFields, weights) {\n  const totals = { ADV: 0, CAP: 0, TAL: 0, PRO: 0, EXE: 0 };\n  const direct  = { ADV: 0, CAP: 0, TAL: 0, PRO: 0, EXE: 0 };\n\n  directFields.forEach(field => {\n    const w = weights[field] ? weights[field][answers[field]] : weights[field];\n    if (!w) return;\n    Object.keys(w).forEach(svc => { totals[svc] += w[svc]; direct[svc] += w[svc]; });\n  });\n\n  supportFields.forEach(field => {\n    const w = weights[field] ? weights[field][answers[field]] : weights[field];\n    if (!w) return;\n    Object.keys(w).forEach(svc => { totals[svc] += w[svc]; });\n  });\n\n  return { totals, direct };\n}\n\nconst CHANGE_PRESSURE_WEIGHTS_QUICK = {\n  q_cha: {\n    \"AI-strategie en operating model bepalen\":       0,\n    \"AI governance en compliance inrichten\":         1,\n    \"Medewerkers upskilling voor AI\":                1,\n    \"Juiste AI-rollen en talent vinden\":             2,\n    \"AI-pilots opschalen naar productie\":            3\n  },\n  q_amb: {\n    \"Verkennen \u2014 eerste AI use cases uitproberen\":   0,\n    \"Implementeren \u2014 AI in productie draaien\":       1,\n    \"Opschalen \u2014 AI in meerdere afdelingen\":         2,\n    \"Verankeren \u2014 AI-first organisatie worden\":      3\n  },\n  q_mat: {\n    \"Nauwelijks \u2014 ori\u00ebntatiefase\":                   0,\n    \"Experimenten met losse tools\":                  0,\n    \"Pilots in specifieke teams\":                    1,\n    \"AI in productie in meerdere processen\":         2\n  },\n  q_cap: {\n    \"Nog niet duidelijk of een combinatie\":                      0,\n    \"Bestaande medewerkers ontwikkelen\":                         1,\n    \"Nieuw talent selecteren, opleiden en inzetten\":             1,\n    \"Een ervaren AI-specialist tijdelijk inzetten\":              2,\n    \"Een ervaren AI-specialist vast aannemen\":                   2\n  }\n};\n\nconst CHANGE_PRESSURE_WEIGHTS_DETAILED = {\n  maturity: {\n    \"Wij gebruiken nog geen AI\":                                  0,\n    \"Experimenteel gebruik (bijv. ChatGPT ad hoc)\":               0, \/\/ FIX\n    \"Gestructureerde pilots op afdelingsniveau\":                  1,\n    \"AI is ge\u00efntegreerd in meerdere kernprocessen\":               2,\n    \"AI-first organisatie met uitgebreide AI-capability\":         2\n  },\n  headcount: {\n    \"Onzeker \/ weet het niet\":                        1,\n    \"Lichte reductie (5-15% minder FTE)\":             1, \/\/ FIX\n    \"Stabiel maar andere rollen nodig\":               1,\n    \"Lichte groei maar met andere competenties\":      1, \/\/ FIX\n    \"Significante reductie (>15% minder FTE)\":        2, \/\/ FIX\n    \"Sterke groei van AI-profielen nodig\":            3\n  },\n  urgency: {\n    \"AI-leiderschap en governance inrichten\":         1,\n    \"AI-strategie vertalen naar personeelsplan\":      1,\n    \"Bestaand personeel upskilling voor AI\":          1,\n    \"Cultuurverandering rondom AI\":                   1,\n    \"Juiste AI-talent aantrekken\":                    2,\n    \"Bepalen welke rollen overbodig worden\":          2\n  },\n  ambition: {\n    \"AI-volwassenheid bereiken als organisatie\":      1,\n    \"Kosten reduceren via automatisering\":            1,\n    \"Klantervaring sterk verbeteren met AI\":          1,\n    \"Medewerkers augmenteren met AI-tools\":           1,\n    \"Innovatie versnellen met AI\":                    2,\n    \"AI-gedreven producten\/diensten lanceren\":        2\n  }\n};\n\nfunction calculateChangePressurePoints(answers, fields, weights, aiAreas, impact) {\n  let points = 0;\n  fields.forEach(f => {\n    const w = weights[f] ? weights[f][answers[f]] : weights[f];\n    if (typeof w === 'number') points += w;\n  });\n  if (aiAreas) {\n    const n = aiAreas.length;\n    points += n >= 7 ? 2 : (n >= 4 ? 1 : 0);\n  }\n  if (impact) {\n    const highCount = Object.values(impact).filter(v => v >= 4).length;\n    points += highCount >= 5 ? 2 : (highCount >= 3 ? 1 : 0);\n  }\n  return points;\n}\n\nfunction detectContradiction(answers) {\n  const reductie = ['Significante reductie (>15% minder FTE)', 'Lichte reductie (5-15% minder FTE)']; \/\/ FIX\n  const groeiSignalen = ['AI-gedreven producten\/diensten lanceren', 'Innovatie versnellen met AI'];\n  if (answers.headcount) {\n    if (reductie.includes(answers.headcount)) {\n      if (groeiSignalen.includes(answers.ambition) || answers.urgency === 'Juiste AI-talent aantrekken') {\n        return true;\n      }\n    }\n  }\n  return false;\n}\n\nfunction determineChangePressureBand(points, isQuickScan, contradictory) {\n  const bands = isQuickScan\n    ? [[0, 2, 'Laag'], [3, 5, 'Gemiddeld'], [6, 8, 'Hoog'], [9, 10, 'Zeer hoog']]\n    : [[0, 3, 'Laag'], [4, 7, 'Gemiddeld'], [8, 10, 'Hoog'], [11, 13, 'Zeer hoog']];\n  let band = bands.find(([min, max]) => (points >= min) ? (points <= max) : false)[2];\n  if (contradictory) { if (band === 'Hoog' || band === 'Zeer hoog') band = 'Gemiddeld'; }\n  return band;\n}\n\nfunction applyRuleA_Talent(answers, isQuickScan) {\n  if (isQuickScan) return null;\n  const groei = ['Lichte groei maar met andere competenties', 'Sterke groei van AI-profielen nodig']; \/\/ FIX\n  const laag = ['Wij gebruiken nog geen AI', 'Experimenteel gebruik (bijv. ChatGPT ad hoc)']; \/\/ FIX\n  if (groei.includes(answers.headcount)) {\n    if (laag.includes(answers.maturity)) {\n      if (answers.urgency === 'Juiste AI-talent aantrekken') {\n        return { primary: 'TAL', secondary: 'PRO' };\n      }\n    }\n  }\n  return null;\n}\n\nfunction checkExecutiveSearchSecondaryEligible(answers, isQuickScan) {\n  const urgencyField  = isQuickScan ? answers.q_cha : answers.urgency;\n  const maturityField = isQuickScan ? answers.q_mat : answers.maturity;\n  const ambitionField = isQuickScan ? answers.q_amb : answers.ambition;\n\n  const urgencyTrigger = isQuickScan\n    ? ['AI governance en compliance inrichten']\n    : ['AI-leiderschap en governance inrichten'];\n  const hoogMaturity = isQuickScan\n    ? ['AI in productie in meerdere processen']\n    : ['AI is ge\u00efntegreerd in meerdere kernprocessen', 'AI-first organisatie met uitgebreide AI-capability'];\n  const ambitieTrigger = isQuickScan\n    ? ['Verankeren \u2014 AI-first organisatie worden']\n    : ['AI-volwassenheid bereiken als organisatie', 'AI-gedreven producten\/diensten lanceren'];\n\n  if (!urgencyTrigger.includes(urgencyField)) return false;\n  if (!hoogMaturity.includes(maturityField)) return false;\n  return ambitieTrigger.includes(ambitionField);\n}\n\nfunction choosePrimaryRoute(totals, direct, ruleResult) {\n  if (ruleResult) return { primary: ruleResult.primary, tieFallback: false };\n\n  const candidates = { ADV: totals.ADV, CAP: totals.CAP, TAL: totals.TAL, PRO: totals.PRO };\n  const maxScore = Math.max(...Object.values(candidates));\n\n  const winners = Object.keys(candidates).filter(k => candidates[k] === maxScore);\n  if (winners.length === 1) return { primary: winners[0], tieFallback: false };\n\n  const directAmongTied = {};\n  winners.forEach(k => { directAmongTied[k] = direct[k]; });\n  const maxDirect = Math.max(...Object.values(directAmongTied));\n  const directWinners = winners.filter(k => directAmongTied[k] === maxDirect);\n  if (directWinners.length === 1) return { primary: directWinners[0], tieFallback: false };\n\n  const tieFallback = !winners.includes('ADV');\n  return { primary: 'ADV', tieFallback };\n}\n\nfunction chooseSecondaryRoute(totals, direct, primary, ruleResult, exeEligible, floor, tieFallback) {\n  if (ruleResult) return ruleResult.secondary || null;\n  if (tieFallback) return null;\n  if (exeEligible) { if (primary !== 'EXE') return 'EXE'; }\n\n  const candidates = Object.keys(totals).filter(route => (route !== primary) ? (route !== 'EXE') : false);\n  if (candidates.length === 0) return null;\n\n  const bestTotal = Math.max(...candidates.map(route => totals[route]));\n  if (bestTotal <= 0) return null;\n\n  const tiedOnTotal = candidates.filter(route => totals[route] === bestTotal);\n\n  let winner = null;\n  if (tiedOnTotal.length === 1) {\n    winner = tiedOnTotal[0];\n  } else {\n    const bestDirect = Math.max(...tiedOnTotal.map(route => direct[route]));\n    const tiedOnDirect = tiedOnTotal.filter(route => direct[route] === bestDirect);\n    if (tiedOnDirect.length !== 1) return null;\n    winner = tiedOnDirect[0];\n  }\n\n  const primaryScore = totals[primary];\n  return ((bestTotal >= primaryScore * 0.4) ? (bestTotal >= floor) : false) ? winner : null;\n}\n\nfunction resolveProQuickSummary(qCapAnswer) {\n  if (qCapAnswer === 'Een ervaren AI-specialist tijdelijk inzetten') {\n    return {\n      kernconclusie: 'U geeft aan behoefte te hebben aan een ervaren AI-specialist die tijdelijk kan aansluiten.',\n      toelichting: 'Tijdelijke inzet kan aansluiten wanneer aanvullende expertise nodig is zonder direct een vaste functie in te vullen.'\n    };\n  }\n  if (qCapAnswer === 'Een ervaren AI-specialist vast aannemen') {\n    return {\n      kernconclusie: 'U geeft aan behoefte te hebben aan een ervaren AI-specialist voor een vaste functie.',\n      toelichting: 'Werving voor een vaste specialistische positie kan aansluiten bij deze behoefte.'\n    };\n  }\n  return {\n    kernconclusie: 'Uw antwoorden wijzen op behoefte aan specialistische AI-capaciteit.',\n    toelichting: 'Een vervolggesprek kan verduidelijken of tijdelijke inzet of een vaste invulling het meest passend is.'\n  };\n}\n\nfunction resolveOrgLabel(rawOrgName) {\n  const trimmed = String(rawOrgName || '').trim();\n  return trimmed.length > 0 ? trimmed : null;\n}\n\n\/\/ FIX D3: centrale HTML-escaping voor alle gebruikersinvoer die via innerHTML wordt gerenderd.\n\/\/ Gebruikt Unicode-escapes i.p.v. losse ampersandtekens in de brontekst (zie bekend WordPress-risico).\nfunction escapeHtml(value) {\n  const str = String(value == null ? '' : value);\n  return str.replace(\/[\\u0026<>\"']\/g, function(ch) {\n    if (ch === '\\u0026') return '\\u0026amp;';\n    if (ch === '<') return '\\u0026lt;';\n    if (ch === '>') return '\\u0026gt;';\n    if (ch === '\"') return '\\u0026quot;';\n    return '\\u0026#39;';\n  });\n}\n\nfunction renderDetailedKernconclusie(routeTexts, orgLabel) {\n  if (!orgLabel) return routeTexts.fallback;\n  return routeTexts.withName.split('{{orgName}}').join(escapeHtml(orgLabel));\n}\n\nfunction normalizeConcern(value) {\n  return Array.from(String(value || '').trim().replace(\/\\s+\/g, ' ')).slice(0, 120).join('');\n}\n\n\/\/ \u2500\u2500 Evidence bullets \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst LAAGSTE_MATURITY_QUICK = ['Nauwelijks \u2014 ori\u00ebntatiefase', 'Experimenten met losse tools'];\nconst LAAGSTE_MATURITY_DETAILED = ['Wij gebruiken nog geen AI', 'Experimenteel gebruik (bijv. ChatGPT ad hoc)'];\nconst HOOGSTE_MATURITY_QUICK = 'AI in productie in meerdere processen';\nconst HOOGSTE_MATURITY_DETAILED = 'AI-first organisatie met uitgebreide AI-capability';\n\nfunction buildEvidenceBullets(answers, route, scanType) {\n  const isQuick = scanType === 'quick';\n  const chaOrUrg = isQuick ? answers.q_cha : answers.urgency;\n  const matField = isQuick ? answers.q_mat : answers.maturity;\n  const ambField = isQuick ? answers.q_amb : answers.ambition;\n  const laagsteSet = isQuick ? LAAGSTE_MATURITY_QUICK : LAAGSTE_MATURITY_DETAILED;\n  const hoogste = isQuick ? HOOGSTE_MATURITY_QUICK : HOOGSTE_MATURITY_DETAILED;\n\n  const strategyValue = isQuick ? 'AI-strategie en operating model bepalen' : 'AI-strategie vertalen naar personeelsplan';\n  const governanceValue = isQuick ? 'AI governance en compliance inrichten' : 'AI-leiderschap en governance inrichten';\n  const upskillValue = isQuick ? 'Medewerkers upskilling voor AI' : 'Bestaand personeel upskilling voor AI';\n  const scaleAmbValuesQuick = ['Opschalen \u2014 AI in meerdere afdelingen'];\n  const scaleAmbValuesDetailed = ['Medewerkers augmenteren met AI-tools'];\n  const scaleAmbValues = isQuick ? scaleAmbValuesQuick : scaleAmbValuesDetailed;\n\n  const bullets = [];\n\n  \/\/ 1. Nog geen eenduidige AI-koers vastgesteld \u2014 prio 3\n  if (chaOrUrg === strategyValue || laagsteSet.includes(matField)) {\n    if (matField !== hoogste) {\n      bullets.push({ text: 'Nog geen eenduidige AI-koers vastgesteld', prio: 3 });\n    }\n  }\n  \/\/ 2. Governance is nog niet belegd \u2014 prio 3\n  if (chaOrUrg === governanceValue) {\n    bullets.push({ text: 'Governance is nog niet belegd', prio: 3 });\n  }\n  \/\/ 3. Beperkte huidige AI-ervaring in huis \u2014 prio 2\n  if (laagsteSet.includes(matField)) {\n    bullets.push({ text: 'Beperkte huidige AI-ervaring in huis', prio: 2 });\n  }\n  \/\/ 4. Interne AI-vaardigheden lopen achter op de ambitie \u2014 prio 2\n  if (chaOrUrg === upskillValue) {\n    if (scaleAmbValues.includes(ambField)) {\n      bullets.push({ text: 'Interne AI-vaardigheden lopen achter op de ambitie', prio: 2 });\n    }\n  }\n\n  if (isQuick) {\n    \/\/ q_cap-afgeleide bullets \u2014 prio 4, onderling wederzijds uitgesloten\n    if (answers.q_cap === 'Nieuw talent selecteren, opleiden en inzetten') {\n      bullets.push({ text: 'Groeiende behoefte aan nieuwe, AI-gerichte rollen', prio: 4 });\n    } else if (answers.q_cap === 'Een ervaren AI-specialist tijdelijk inzetten') {\n      bullets.push({ text: 'Concrete behoefte aan tijdelijke AI-capaciteit', prio: 4 });\n    } else if (answers.q_cap === 'Een ervaren AI-specialist vast aannemen') {\n      bullets.push({ text: 'Concrete behoefte aan een vaste specialistische aanstelling', prio: 4 });\n    }\n  } else {\n    \/\/ headcount-afgeleide bullets \u2014 prio 4\/3, onderling wederzijds uitgesloten\n    if (answers.headcount === 'Stabiel maar andere rollen nodig') {\n      bullets.push({ text: 'Bestaande rollen veranderen inhoudelijk', prio: 4 });\n    } else if (['Significante reductie (>15% minder FTE)', 'Lichte reductie (5-15% minder FTE)'].includes(answers.headcount)) {\n      bullets.push({ text: 'Risico op kennisverlies bij ongerichte automatisering', prio: 3 });\n    }\n    \/\/ impactmatrix-bullet \u2014 prio 2\n    if (answers.__impact) {\n      const HIGH = 4;\n      const highCats = Object.keys(answers.__impact).filter(k => answers.__impact[k] >= HIGH);\n      const hasItOrData = highCats.includes('IT \\u0026 ontwikkelaars') || highCats.includes('Data-analisten');\n      if (highCats.length >= 2) {\n        if (hasItOrData) {\n          bullets.push({ text: 'Meerdere functiegebieden vragen om specialistische ondersteuning', prio: 2 });\n        }\n      }\n    }\n    \/\/ contradictie-bullet \u2014 prio 5, altijd apart (niet in de max-3, wordt als contradictionNote behandeld)\n  }\n\n  \/\/ Veldprecedentie bij gelijke prioriteit: q_cha\/urgency > q_cap > q_amb\/ambition > q_mat\/maturity > headcount > impactmatrix\n  const fieldOrder = { 'Nog geen eenduidige AI-koers vastgesteld': 4, 'Governance is nog niet belegd': 0,\n    'Beperkte huidige AI-ervaring in huis': 3, 'Interne AI-vaardigheden lopen achter op de ambitie': 2,\n    'Groeiende behoefte aan nieuwe, AI-gerichte rollen': 1, 'Concrete behoefte aan tijdelijke AI-capaciteit': 1,\n    'Concrete behoefte aan een vaste specialistische aanstelling': 1,\n    'Bestaande rollen veranderen inhoudelijk': 4, 'Risico op kennisverlies bij ongerichte automatisering': 4,\n    'Meerdere functiegebieden vragen om specialistische ondersteuning': 5 };\n\n  bullets.sort((a, b) => (b.prio - a.prio) || (fieldOrder[a.text] - fieldOrder[b.text]));\n  return bullets.slice(0, 3).map(b => b.text);\n}\n\n\/\/ \u2500\u2500 Result texts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst QUICK_RESULT_TEXTS = {\n  ADV: {\n    headline: 'Een heldere AI-strategie is nu de belangrijkste stap',\n    kernconclusie: 'Uw antwoorden wijzen op behoefte aan een duidelijkere AI-richting voordat concrete stappen volgen.',\n    toelichting: 'Een verkennend gesprek kan helpen om ambities te vertalen naar een concreet plan.'\n  },\n  CAP: {\n    headline: 'De ontwikkeling van uw bestaande team lijkt de meest logische eerste route',\n    kernconclusie: 'Uw antwoorden wijzen erop dat het ontwikkelen van AI-vaardigheden binnen het bestaande team een passende eerste stap kan zijn.',\n    toelichting: 'Gerichte training helpt medewerkers om AI praktisch en verantwoord toe te passen.'\n  },\n  TAL: {\n    headline: 'Bouw nu aan uw eigen AI-talent',\n    kernconclusie: 'Uw antwoorden wijzen op behoefte aan nieuwe AI-capaciteit. Het selecteren en opleiden van nieuw talent kan een passende route zijn.',\n    toelichting: 'Deze route sluit aan bij de huidige AI-volwassenheid en de aangegeven groeirichting.'\n  },\n  PRO: {\n    headline: 'Uw antwoorden wijzen op behoefte aan ervaren AI-capaciteit'\n    \/\/ kernconclusie\/toelichting worden dynamisch bepaald via resolveProQuickSummary()\n  }\n};\n\nconst DETAILED_RESULT_TEXTS = {\n  ADV: {\n    headline: 'Een heldere AI-strategie is nu de belangrijkste stap',\n    withName: 'Uit de antwoorden van {{orgName}} blijkt behoefte aan richting: een duidelijke AI-strategie, governance en een personeelsplan die op elkaar aansluiten, voordat verder wordt ge\u00efnvesteerd in specifieke rollen of tools.',\n    fallback: 'Uit uw antwoorden blijkt behoefte aan richting: een duidelijke AI-strategie, governance en een personeelsplan die op elkaar aansluiten, voordat verder wordt ge\u00efnvesteerd in specifieke rollen of tools.',\n    toelichting: 'De aandachtspunten hieronder laten zien welke antwoorden deze route ondersteunen.'\n  },\n  CAP: {\n    headline: 'De ontwikkeling van uw bestaande team lijkt de meest logische eerste route',\n    withName: 'Uit de antwoorden van {{orgName}} blijkt dat het ontwikkelen van AI-vaardigheden binnen het bestaande team een logische eerste route kan zijn.',\n    fallback: 'Uit uw antwoorden blijkt dat het ontwikkelen van AI-vaardigheden binnen het bestaande team een logische eerste route kan zijn.',\n    toelichting: 'Gerichte ontwikkeling helpt medewerkers AI verantwoord en praktisch toe te passen binnen hun werkzaamheden. De aandachtspunten hieronder laten zien welke antwoorden deze route ondersteunen.'\n  },\n  TAL: {\n    headline: 'Bouw nu aan uw eigen AI-talent',\n    withName: 'De antwoorden van {{orgName}} wijzen op groei en behoefte aan nieuwe AI-capaciteit. Het selecteren en opleiden van nieuw talent kan daarom een passende route zijn.',\n    fallback: 'Uw antwoorden wijzen op groei en behoefte aan nieuwe AI-capaciteit. Het selecteren en opleiden van nieuw talent kan daarom een passende route zijn.',\n    toelichting: 'Deze route sluit aan op de aangegeven behoefte aan nieuwe, AI-gerichte capaciteit en de huidige AI-volwassenheid.'\n  },\n  PRO: {\n    headline: 'Uit uw antwoorden blijkt dat de AI-ambities meer specialistische capaciteit kunnen vragen dan het huidige team beschikbaar heeft',\n    withName: 'Uit de antwoorden van {{orgName}} blijkt dat de AI-ambities meer specialistische capaciteit kunnen vragen dan het huidige team beschikbaar heeft.',\n    fallback: 'Uit uw antwoorden blijkt dat de AI-ambities meer specialistische capaciteit kunnen vragen dan het huidige team beschikbaar heeft.',\n    toelichting: 'Een vervolggesprek kan verduidelijken of tijdelijke inzet of een vaste invulling het meest passend is.'\n  }\n};\n\nconst TIE_NOTE = 'Uw antwoorden wijzen op meerdere mogelijke routes. Een nadere verkenning helpt bepalen welke aanpak passend is.';\nconst CONTRADICTION_NOTE = 'Uw antwoorden wijzen niet allemaal dezelfde kant op \u2014 we nemen daarom een voorzichtige inschatting en bespreken dit graag nader in een kort gesprek.';\nconst DISCLAIMER = 'Deze uitkomst is een eerste indicatie op basis van uw antwoorden en vervangt geen volledig adviestraject.';\nconst CP_EXPLAIN = 'De veranderdruk geeft aan hoeveel beweging uw antwoorden laten zien in ambities, rollen en benodigde capaciteit. Het is geen voorspelling en geen meting van tijdsdruk.';\nconst EXE_BLOCK_TEXT = 'Wanneer uit uw antwoorden blijkt dat structureel senior AI-leiderschap mogelijk ontbreekt, kan AI Leadership Executive Search een passende vervolgstap zijn.';\n\n\/\/ FIX D1: centrale, leesbare routenaam per routecode \u2014 enige bron van waarheid voor de\n\/\/ \"Aanbevolen route\"-tekst in de mailto-body van submitContact(). Niet uit de DOM lezen.\nconst ROUTE_NAMES = {\n  ADV: 'AI Workforce Advisory',\n  CAP: 'AI Capability Academy',\n  TAL: 'AI Talent Development',\n  PRO: 'AI Professionals',\n  EXE: 'AI Leadership Executive Search'\n};\n\nconst PRIMARY_CTA = {\n  ADV: { text: 'Plan een strategiegesprek', url: '\/ai-leadership-workforce-advisory\/' },\n  CAP: { text: 'Ontdek de AI Capability Academy', url: '\/ai-capability-academy\/' },\n  TAL: { text: 'Bekijk AI Talent Academy', url: '\/ai-talent-development\/' },\n  PRO: { text: 'Bekijk AI Professionals', url: '\/ai-professionals\/' }\n};\n\nfunction SECONDARY_CTA(routeKey, ruleResult) {\n  if (ruleResult) { if (ruleResult.secondary === 'PRO') {\n    return { text: 'Of versterk direct met ervaren capaciteit', url: '\/ai-professionals\/' };\n  } }\n  if (routeKey === 'EXE') {\n    return { text: 'Verken Executive Search', url: '\/ai-leadership-executive-search\/' };\n  }\n  const genericMap = {\n    ADV: { text: 'Bekijk AI Workforce Advisory', url: '\/ai-leadership-workforce-advisory\/' },\n    CAP: { text: 'Bekijk AI Capability Academy', url: '\/ai-capability-academy\/' },\n    TAL: { text: 'Bekijk AI Talent Academy', url: '\/ai-talent-development\/' },\n    PRO: { text: 'Bekijk AI Professionals', url: '\/ai-professionals\/' }\n  };\n  return genericMap[routeKey];\n}\n\nfunction buildQuickResult(answers) {\n  const { totals, direct } = calculateServiceScores(answers, DIRECT_FIELDS_QUICK, ['q_mat'], SERVICE_WEIGHTS_QUICK);\n  const ruleResult = null;\n  const exeEligible = checkExecutiveSearchSecondaryEligible(answers, true);\n  const { primary, tieFallback } = choosePrimaryRoute(totals, direct, ruleResult);\n  const secondary = chooseSecondaryRoute(totals, direct, primary, ruleResult, exeEligible, 3, tieFallback);\n\n  const cpPoints = calculateChangePressurePoints(answers, ['q_cha', 'q_amb', 'q_mat', 'q_cap'], CHANGE_PRESSURE_WEIGHTS_QUICK);\n  const cpBand = determineChangePressureBand(cpPoints, true, false);\n\n  const proSummary = primary === 'PRO' ? resolveProQuickSummary(answers.q_cap) : null;\n\n  return {\n    totals, direct, primary, secondary, tieFallback,\n    headline: QUICK_RESULT_TEXTS[primary].headline,\n    kernconclusie: primary === 'PRO' ? proSummary.kernconclusie : QUICK_RESULT_TEXTS[primary].kernconclusie,\n    toelichting: primary === 'PRO' ? proSummary.toelichting : QUICK_RESULT_TEXTS[primary].toelichting,\n    bullets: tieFallback ? [] : buildEvidenceBullets(answers, primary, 'quick'),\n    tieNote: tieFallback ? TIE_NOTE : null,\n    primaryCta: PRIMARY_CTA[primary],\n    secondaryCta: secondary ? SECONDARY_CTA(secondary, ruleResult) : null,\n    changePressure: { points: cpPoints, band: cpBand },\n    disclaimer: DISCLAIMER\n  };\n}\n\nfunction buildDetailedResult(answers, options) {\n  options = options || {};\n  const { totals, direct } = calculateServiceScores(answers, DIRECT_FIELDS_DETAILED, ['maturity'], SERVICE_WEIGHTS_DETAILED);\n  if (options.impact) applyImpactMatrixToServiceScores(totals, options.impact);\n  if (options.aiAreas) applyAiAreasBreadthToServiceScores(totals, options.aiAreas);\n\n  const ruleResult = applyRuleA_Talent(answers, false);\n  const exeEligible = checkExecutiveSearchSecondaryEligible(answers, false);\n  const { primary, tieFallback } = choosePrimaryRoute(totals, direct, ruleResult);\n  const secondary = chooseSecondaryRoute(totals, direct, primary, ruleResult, exeEligible, 4, tieFallback);\n\n  const cpFields = ['maturity', 'headcount', 'urgency', 'ambition'];\n  const rawPoints = calculateChangePressurePoints(answers, cpFields, CHANGE_PRESSURE_WEIGHTS_DETAILED, options.aiAreas, options.impact);\n  const contradictory = detectContradiction(answers);\n  const cpBand = determineChangePressureBand(rawPoints, false, contradictory);\n\n  const orgLabel = resolveOrgLabel(options.orgName);\n  const normalizedConcern = options.concern ? normalizeConcern(options.concern) : '';\n\n  const answersWithImpact = Object.assign({}, answers, { __impact: options.impact });\n\n  return {\n    totals, direct, primary, secondary, tieFallback, contradictory,\n    headline: DETAILED_RESULT_TEXTS[primary].headline,\n    kernconclusie: renderDetailedKernconclusie(DETAILED_RESULT_TEXTS[primary], orgLabel),\n    toelichting: DETAILED_RESULT_TEXTS[primary].toelichting,\n    bullets: tieFallback ? [] : buildEvidenceBullets(answersWithImpact, primary, 'detailed'),\n    tieNote: tieFallback ? TIE_NOTE : null,\n    contradictionNote: contradictory ? CONTRADICTION_NOTE : null,\n    primaryCta: PRIMARY_CTA[primary],\n    secondaryCta: secondary ? SECONDARY_CTA(secondary, ruleResult) : null,\n    changePressure: { points: rawPoints, band: cpBand },\n    concernNote: normalizedConcern ? normalizedConcern : null,\n    disclaimer: DISCLAIMER\n  };\n}\n\n\nfunction renderResultBody(r, isQuick) {\nvar html = '';\nhtml += '<div class=\"rb\"><p>'+r.kernconclusie+'<\/p><p>'+r.toelichting+'<\/p><\/div>';\nif (r.tieNote) { html += '<div class=\"rb\"><p>'+r.tieNote+'<\/p><\/div>'; }\nif (!isQuick) { if (r.contradictionNote) { html += '<div class=\"rb\"><p>'+r.contradictionNote+'<\/p><\/div>'; } }\nif (r.bullets) { if (r.bullets.length) {\nhtml += '<div class=\"rb\"><h3>Aandachtspunten<\/h3><ul>'+r.bullets.map(function(b){return '<li>'+b+'<\/li>';}).join('')+'<\/ul><\/div>';\n} }\nif (r.secondary === 'EXE') {\nhtml += '<div class=\"rb\"><p>'+EXE_BLOCK_TEXT+'<\/p><\/div>';\n}\nhtml += '<div class=\"rb\"><p class=\"rh-m\">'+CP_EXPLAIN+'<\/p><\/div>';\nhtml += '<div class=\"rb\"><p class=\"rh-m\">'+r.disclaimer+'<\/p><\/div>';\nreturn html;\n}\n\nfunction renderCtaRow(containerId, r) {\nvar el = document.getElementById(containerId);\nif (!el) return;\nvar scanType = containerId === 'qCtaRow' ? 'quick' : 'detailed';\nvar pRoute = r.primary || '';\nvar pPath = tlSafePath(r.primaryCta.url) || '';\nvar html = '<div class=\"cta-row\"><a class=\"cta-p\" href=\"'+r.primaryCta.url+'\" onclick=\"tlAnalyticsSend(\\'ai_scan_cta_click\\',{scan_type:\\''+scanType+'\\',cta_type:\\'primary\\',route:\\''+pRoute+'\\',destination_path:\\''+pPath+'\\'})\">'+r.primaryCta.text+'<\/a>';\nif (r.secondaryCta) {\nvar sRoute = r.secondary || '';\nvar sPath = tlSafePath(r.secondaryCta.url) || '';\nhtml += '<a class=\"cta-s\" href=\"'+r.secondaryCta.url+'\" onclick=\"tlAnalyticsSend(\\'ai_scan_cta_click\\',{scan_type:\\''+scanType+'\\',cta_type:\\'secondary\\',route:\\''+sRoute+'\\',destination_path:\\''+sPath+'\\'})\">'+r.secondaryCta.text+'<\/a>';\n}\nhtml += '<\/div>';\nel.innerHTML = html;\n}\n\nfunction goStep(n) {\nif(n > dStep+1 || n < dStep-1) return;\n\nconst errMap = {1:'de1',2:'de2',3:'de3',4:'de4'};\nif(n > dStep) {\nif(!validateStep(dStep)) {\ndocument.getElementById(errMap[dStep]).classList.add('on');\nreturn;\n}\ndocument.getElementById(errMap[dStep]).classList.remove('on');\ncollectStep(dStep);\n}\n\ndocument.getElementById('ds'+dStep).classList.remove('on');\ndStep = n;\ndocument.getElementById('ds'+n).classList.add('on');\nvar tlDetailedStepNames = {1:'Uw organisatie',2:'Waar staat uw organisatie?',3:'Impact op uw mensen',4:'Laatste stap'};\ntlTrackStepView('detailed', n, tlDetailedStepNames[n]);\nupdateProgress(n);\nwindow.scrollTo({top:120,behavior:'smooth'});\n}\n\nfunction validateStep(step) {\nif(step===1){\nconst org = document.getElementById('dq_orgname').value.trim();\nconst sector = document.querySelector('input[name=\"sector\"]:checked');\nconst role = document.querySelector('input[name=\"role\"]:checked');\nreturn !(!org || !sector || !role);\n}\nif(step===2){\nconst mat = document.querySelector('input[name=\"maturity\"]:checked');\nconst areas = document.querySelectorAll('input[name=\"aiArea\"]:checked');\nreturn !(!mat || areas.length <= 0);\n}\nif(step===3){\nconst hc = document.querySelector('input[name=\"headcount\"]:checked');\nconst urg = document.querySelector('input[name=\"urgency\"]:checked');\nreturn !(!hc || !urg);\n}\nif(step===4){\nreturn !!document.querySelector('input[name=\"ambition\"]:checked');\n}\nreturn true;\n}\n\nfunction collectStep(step) {\nif(step===1){\nscanData.orgName = document.getElementById('dq_orgname').value.trim();\nscanData.fte = document.getElementById('dq_fte').value;\nscanData.sector = document.querySelector('input[name=\"sector\"]:checked')?.value;\nscanData.role = document.querySelector('input[name=\"role\"]:checked')?.value;\n}\nif(step===2){\nscanData.maturity = document.querySelector('input[name=\"maturity\"]:checked')?.value;\nscanData.aiAreas = [...document.querySelectorAll('input[name=\"aiArea\"]:checked')].map(i=>i.value);\n}\nif(step===3){\nscanData.headcount = document.querySelector('input[name=\"headcount\"]:checked')?.value;\nscanData.urgency = document.querySelector('input[name=\"urgency\"]:checked')?.value;\n}\nif(step===4){\nscanData.ambition = document.querySelector('input[name=\"ambition\"]:checked')?.value;\nscanData.concern = document.getElementById('dq_concern').value.trim();\n}\n}\n\nasync function runScan() {\nif(!validateStep(4)){\ndocument.getElementById('de4').classList.add('on');\nreturn;\n}\ndocument.getElementById('de4').classList.remove('on');\ncollectStep(4);\n\ndocument.getElementById('ds4').classList.remove('on');\ndocument.getElementById('dLoad').classList.add('on');\ndocument.getElementById('dPW').style.display = 'none';\nwindow.scrollTo({top:80,behavior:'smooth'});\n\nconst steps = ['dl1','dl2','dl3','dl4'];\nfor(let i=0;i<steps.length;i++){\nawait new Promise(r=>setTimeout(r,1100));\ndocument.getElementById(steps[i]).classList.add('done');\n}\n\nvar answers = { maturity: scanData.maturity, headcount: scanData.headcount, urgency: scanData.urgency, ambition: scanData.ambition };\nvar result = buildDetailedResult(answers, { orgName: scanData.orgName, concern: scanData.concern, aiAreas: scanData.aiAreas, impact: scanData.impact });\nshowResults(result);\n}\n\nfunction showResults(r) {\nlastDetailedResult = r;\ntlAnalyticsSend('ai_scan_complete', tlCompleteParams('detailed', r, r.contradictory));\ntlInitContactObserver();\ndocument.getElementById('dLoad').classList.remove('on');\ndocument.getElementById('dRes').classList.add('on');\n\ndocument.getElementById('dr-h').textContent = r.headline;\ndocument.getElementById('dr-m').textContent = scanData.orgName + ' \u00b7 ' + scanData.sector + ' \u00b7 ' + scanData.fte + ' FTE \u00b7 ' + new Date().toLocaleDateString('nl-NL');\ndocument.getElementById('dr-sc').textContent = r.changePressure.band;\ndocument.getElementById('dr-ur').textContent = r.changePressure.points + '\/13';\ndocument.getElementById('dr-op').textContent = String(r.bullets.length);\n\nvar container = document.getElementById('dAnMain');\ncontainer.innerHTML = renderResultBody(r, false);\nif (r.concernNote) {\nvar note = document.createElement('p');\nnote.className = 'concern-note';\nnote.textContent = 'U gaf aan: \"' + r.concernNote + '\" \u2014 dit nemen we serieus mee, mocht u een vervolggesprek plannen.';\ncontainer.appendChild(note);\n}\n\nrenderCtaRow('dCtaRow', r);\n\ndocument.getElementById('dcta-company').value = scanData.orgName;\n\nwindow.scrollTo({top:80,behavior:'smooth'});\n}\n\n(function(){\nvar __n = document.getElementById('dcta-name');\nvar __e = document.getElementById('dcta-email');\nif (__n) { __n.addEventListener('input', function(){ if (__n.value.trim()) { __n.removeAttribute('aria-invalid'); } }); }\nif (__e) { __e.addEventListener('input', function(){ if (__e.value.trim()) { if (__e.checkValidity()) { __e.removeAttribute('aria-invalid'); } } }); }\n})();\n\nfunction submitContact() {\nvar submitBtn = document.getElementById('dcta-submit');\nif (submitBtn) { if (submitBtn.disabled) { return; } }\nvar nameEl = document.getElementById('dcta-name');\nvar emailEl = document.getElementById('dcta-email');\nvar name = nameEl.value.trim();\nvar company = document.getElementById('dcta-company').value.trim();\nvar email = emailEl.value.trim();\nvar phone = document.getElementById('dcta-phone').value.trim();\nvar msg = document.getElementById('dcta-msg').value.trim();\nvar errEl = document.getElementById('d-cerr');\n\nnameEl.removeAttribute('aria-invalid');\nemailEl.removeAttribute('aria-invalid');\n\nif(!name || !email) {\nif (!name) { nameEl.setAttribute('aria-invalid','true'); }\nif (!email) { emailEl.setAttribute('aria-invalid','true'); }\nerrEl.textContent = '\u26a0\ufe0f Vul uw naam en e-mailadres in om door te gaan.';\nerrEl.style.display = 'block';\n(!name ? nameEl : emailEl).focus();\nsetTimeout(function(){ errEl.style.display='none'; }, 4000);\nreturn;\n}\n\nif (!emailEl.checkValidity()) {\nemailEl.setAttribute('aria-invalid','true');\nerrEl.textContent = '\u26a0\ufe0f Vul een geldig e-mailadres in.';\nerrEl.style.display = 'block';\nemailEl.focus();\nsetTimeout(function(){ errEl.style.display='none'; }, 4000);\nreturn;\n}\n\nerrEl.style.display = 'none';\n\n\/\/ Build rich email body including scan results\nvar cpBand = document.getElementById('dr-sc').textContent;\n\/\/ FIX D1: route komt uit het berekende resultaatobject (bron van waarheid), niet uit een\n\/\/ DOM-element dat bedoeld is voor de Change Pressure-score.\nvar primaryRouteName = ROUTE_NAMES[lastDetailedResult?.primary] || 'onbekend';\nvar secondaryRouteCode = lastDetailedResult?.secondary || null;\nvar secondaryRouteName = secondaryRouteCode ? (ROUTE_NAMES[secondaryRouteCode] || null) : null;\n\nvar subject = encodeURIComponent('AI Workforce Scan \u2014 ' + (company || name) + ' \u2014 Gespreksverzoek');\nvar bodyText = 'CONTACTVERZOEK NA AI WORKFORCE SCAN'\n+ '\\n\\n--- CONTACTGEGEVENS ---'\n+ '\\nNaam: ' + name\n+ '\\nOrganisatie: ' + company\n+ '\\nE-mail: ' + email\n+ '\\nTelefoon: ' + (phone || 'niet opgegeven')\n+ '\\nBericht: ' + (msg || 'geen')\n+ '\\n\\n--- SCANRESULTATEN ---'\n+ '\\nOrganisatie: ' + scanData.orgName\n+ '\\nSector: ' + scanData.sector\n+ '\\nFTE: ' + scanData.fte\n+ '\\nAanbevolen route: ' + primaryRouteName\n+ (secondaryRouteName ? '\\nSecundaire aanbeveling: ' + secondaryRouteName : '')\n+ '\\nVeranderdruk: ' + cpBand\n+ '\\n\\n--- INVULGEGEVENS ---'\n+ '\\nHuidig AI-gebruik: ' + (scanData.maturity || 'n.v.t.')\n+ '\\nAI-gebieden: ' + (scanData.aiAreas ? scanData.aiAreas.join(', ') : 'n.v.t.')\n+ '\\nVerwachte personeelsverandering: ' + (scanData.headcount || 'n.v.t.')\n+ '\\nMeest urgente uitdaging: ' + (scanData.urgency || 'n.v.t.')\n+ '\\nAI-ambitie: ' + (scanData.ambition || 'n.v.t.')\n+ '\\nSpecifieke zorg: ' + (scanData.concern || 'niet ingevuld')\n+ '\\n\\n---'\n+ '\\nVerstuur via Tomorrow\\'s Leaders AI Workforce Scan';\n\ntlAnalyticsSend('ai_scan_mailto_click', {\nscan_type: 'detailed',\nprimary_route: lastDetailedResult ? lastDetailedResult.primary : undefined,\npressure_band: tlPressureBand(lastDetailedResult ? lastDetailedResult.changePressure.band : null)\n});\n\nwindow.location.href = 'mailto:info@tomorrowsleaders.nl?subject=' + subject + '\\u0026body=' + encodeURIComponent(bodyText);\n\n\/\/ Visual feedback\nvar btn = submitBtn;\nif (btn) {\nbtn.textContent = '\u2713 E-mail geopend';\nbtn.style.background = '#2e6b4f';\nbtn.style.color = '#fff';\nbtn.disabled = true;\n}\n\ndocument.getElementById('d-csucc').style.display = 'block';\n}\n\nfunction restartScan() {\nlocation.reload();\n}\n<\/script>\n<\/div>\n\n<!-- \u2550\u2550 CONTROLLER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<script>\n\n\/* \u2500\u2500 SCREEN NAVIGATION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nvar screens = ['scChoice','scQuick','scDetailed'];\nfunction show(id) {\nscreens.forEach(function(s) {\nvar el = document.getElementById(s);\nel.className = el.className.replace(' on','') + (s===id?' on':'');\n});\ndocument.getElementById('shBack').classList[id==='scChoice'?'remove':'add']('vis');\nwindow.scrollTo({top:0,behavior:'smooth'});\n}\nfunction goBack() { show('scChoice'); }\nfunction startQuick() {\ntlResetSteps('quick');\ntlAnalyticsSend('ai_scan_start', { scan_type: 'quick' });\ntlTrackStepView('quick', 1, 'Uw organisatie');\nshow('scQuick'); initQPills();\n}\nfunction startDetailed() {\ntlResetSteps('detailed');\ntlResetContactOpen();\ntlAnalyticsSend('ai_scan_start', { scan_type: 'detailed' });\ntlTrackStepView('detailed', 1, 'Uw organisatie');\nshow('scDetailed');\nvar pw = document.getElementById('dPW');\nvar sm = document.getElementById('dMain');\nif(pw) { pw.classList.add('visible'); }\nif(sm) sm.style.display = 'block';\nif(typeof buildProgress==='function') buildProgress();\nif(typeof buildImpactScale==='function') buildImpactScale();\nif(typeof initPillListeners==='function') initPillListeners();\nif(typeof updateProgress==='function') updateProgress(1);\n}\n\n\/* \u2500\u2500 QUICK SCAN \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n\/* renderResultBody(), renderCtaRow() en ROUTE_LABELS zijn gedefinieerd in het eerste\n   <script>-blok (Uitgebreide Scan), dat eerder in de pagina staat en dus al geladen is\n   op het moment dat qShow() ze aanroept. *\/\nvar qd = {};\nfunction initQPills() {\ndocument.querySelectorAll('#scQuick .pill').forEach(function(p) {\nif(p._qInit) return; p._qInit = true;\np.addEventListener('click', function() {\nthis.closest('.pills').querySelectorAll('.pill').forEach(function(x) { x.classList.remove('sel'); });\nthis.classList.add('sel');\n});\n});\n}\nfunction qV(n) { return document.querySelector('input[name=\"'+n+'\"]:checked'); }\nfunction qN1() {\nvar ok = !(!qV('q_sec') || !qV('q_fte') || !qV('q_rol') || !qV('q_mat'));\nvar e = document.getElementById('qe1');\ne.className = 'err' + (ok?'':' on');\nif(!ok) return;\ntlTrackStepView('quick', 2, 'Uw AI-richting');\nqd.sector=qV('q_sec').value; qd.fte=qV('q_fte').value;\nqd.role=qV('q_rol').value; qd.mat=qV('q_mat').value;\ndocument.getElementById('qs1').classList.remove('on');\ndocument.getElementById('qs2').classList.add('on');\ndocument.getElementById('qps1').className='ps done';\ndocument.getElementById('qps2').className='ps active';\nwindow.scrollTo({top:56,behavior:'smooth'});\n}\nfunction qB() {\ndocument.getElementById('qs2').classList.remove('on');\ndocument.getElementById('qs1').classList.add('on');\ndocument.getElementById('qps2').className='ps';\ndocument.getElementById('qps1').className='ps active';\nwindow.scrollTo({top:56,behavior:'smooth'});\n}\nasync function qRun() {\nvar ok = !(!qV('q_sec') || !qV('q_fte') || !qV('q_rol') || !qV('q_mat') || !qV('q_cha') || !qV('q_amb') || !qV('q_cap'));\nvar e = document.getElementById('qe2');\ne.className = 'err'+(ok?'':' on');\nif(!ok) return;\nqd.chal=qV('q_cha').value; qd.amb=qV('q_amb').value; qd.cap=qV('q_cap').value;\ndocument.getElementById('qs2').classList.remove('on');\ndocument.getElementById('qLoad').classList.add('on');\ndocument.getElementById('qProg').style.display='none';\nwindow.scrollTo({top:56,behavior:'smooth'});\nvar ls=['ql1','ql2','ql3','ql4'];\nfor(var i=0;i<ls.length;i++){\nawait new Promise(function(r){setTimeout(r,850);});\ndocument.getElementById(ls[i]).classList.add('done');\n}\nvar answers = { q_sec: qd.sector, q_fte: qd.fte, q_rol: qd.role, q_mat: qd.mat, q_cha: qd.chal, q_amb: qd.amb, q_cap: qd.cap };\nqShow(buildQuickResult(answers));\n}\nfunction qShow(r) {\ntlAnalyticsSend('ai_scan_complete', tlCompleteParams('quick', r, false));\ndocument.getElementById('qLoad').classList.remove('on');\ndocument.getElementById('qRes').classList.add('on');\ndocument.getElementById('qps2').className='ps done';\ndocument.getElementById('qps3').className='ps active';\ndocument.getElementById('qr-h').textContent = r.headline;\ndocument.getElementById('qr-m').textContent = qd.sector+' \u00b7 '+qd.fte+' \u00b7 '+new Date().toLocaleDateString('nl-NL');\ndocument.getElementById('qr-sc').textContent = r.changePressure.band;\ndocument.getElementById('qr-ur').textContent = r.changePressure.points + '\/10';\ndocument.getElementById('qr-op').textContent = String(r.bullets.length);\ndocument.getElementById('qr-main').innerHTML = renderResultBody(r, true);\nrenderCtaRow('qCtaRow', r);\ndocument.getElementById('qProg').style.display='flex';\nwindow.scrollTo({top:56,behavior:'smooth'});\n}\n<\/script>\n\n<\/div><!-- end tl-scan-root -->\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>AI Workforce Scan \u2014 Tomorrow&#8217;s Leaders Tomorrow&#8217;s Leaders \u2190 Andere scan AI Workforce Scan Gratis bedrijfsscan Welke AI-rollen heeft uw organisatie nodig? Kies de scan die past bij uw beschikbare tijd. Beide leveren een gepersonaliseerde AI workforce-analyse op maat. Aanbevolen \u26a1 3 minuten Quick Scan Zeven gerichte keuzes, direct een AI workforce-analyse. Voor wie snel &#8230; <a title=\"AI Workforce scan\" class=\"read-more\" href=\"https:\/\/tomorrowsleaders.nl\/en\/ai-workforce-scan\/\" aria-label=\"Read more about AI Workforce scan\">Read more<\/a><\/p>","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-5643","page","type-page","status-publish"],"acf":[],"_links":{"self":[{"href":"https:\/\/tomorrowsleaders.nl\/en\/wp-json\/wp\/v2\/pages\/5643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tomorrowsleaders.nl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tomorrowsleaders.nl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tomorrowsleaders.nl\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/tomorrowsleaders.nl\/en\/wp-json\/wp\/v2\/comments?post=5643"}],"version-history":[{"count":18,"href":"https:\/\/tomorrowsleaders.nl\/en\/wp-json\/wp\/v2\/pages\/5643\/revisions"}],"predecessor-version":[{"id":5951,"href":"https:\/\/tomorrowsleaders.nl\/en\/wp-json\/wp\/v2\/pages\/5643\/revisions\/5951"}],"wp:attachment":[{"href":"https:\/\/tomorrowsleaders.nl\/en\/wp-json\/wp\/v2\/media?parent=5643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}