{"id":12502,"date":"2026-07-08T00:45:29","date_gmt":"2026-07-08T00:45:29","guid":{"rendered":"https:\/\/courses.diamondcutterwisdom.com\/?page_id=12502"},"modified":"2026-07-08T00:58:21","modified_gmt":"2026-07-08T00:58:21","slug":"l8-evaluation-form","status":"publish","type":"page","link":"https:\/\/courses.diamondcutterwisdom.com\/index.php\/l8-evaluation-form\/","title":{"rendered":"L8 Evaluation Form"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12502\" class=\"elementor elementor-12502\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0f899bb e-con e-atomic-element e-flexbox-base e-default-div e-2e441c1 \" data-id=\"0f899bb\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"0f899bb\">\n    \t\t<div class=\"elementor-element elementor-element-04ea8a8 elementor-widget elementor-widget-shortcode\" data-id=\"04ea8a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\n:root{\n    --bg:#FFFFFF;\n    --panel:#F6F7FB;\n    --panel-2:#EEF1F7;\n    --gold:#B8912B;\n    --gold-soft:#DDBB55;\n    --ink:#12203E;\n    --muted:#5B6B85;\n    --line:#E1E5EE;\n    --danger:#B3261E;\n    --selected-bg:#FBF3DC;\n  }\n  *{box-sizing:border-box;}\n  html,body{margin:0;padding:0;}\n  body{\n    background:var(--bg);\n    color:var(--ink);\n    font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Arial,sans-serif;\n    min-height:100vh;\n    line-height:1.5;\n  }\n  @media (prefers-reduced-motion: reduce){\n    *{animation:none !important; transition:none !important;}\n  }\n  .shell{\n    max-width:640px;\n    margin:0 auto;\n    padding:0 20px 60px;\n  }\n  .top{\n    position:sticky; top:0; z-index:10;\n    background:linear-gradient(180deg, var(--bg) 75%, rgba(255,255,255,0));\n    padding:18px 0 10px;\n  }\n  .brand{\n    text-align:center;\n    letter-spacing:0.35em;\n    font-size:11px;\n    color:var(--gold);\n    text-transform:uppercase;\n    margin-bottom:6px;\n  }\n  .progress-track{\n    height:3px; width:100%; background:var(--line); border-radius:2px; overflow:hidden;\n  }\n  .progress-fill{\n    height:100%; background:var(--gold); width:0%; transition:width .35s ease;\n  }\n  .progress-label{\n    text-align:center; font-size:11px; color:var(--muted); margin-top:8px; letter-spacing:0.05em;\n  }\n\n  .step{ display:none; padding-top:18px; }\n  .step.active{ display:block; animation:fadein .3s ease; }\n  @keyframes fadein{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);} }\n\n  .eyebrow{\n    font-size:12px; letter-spacing:0.28em; color:var(--gold); text-transform:uppercase; margin-bottom:6px;\n  }\n  h1{\n    font-family:Georgia,\"Times New Roman\",serif;\n    font-size:26px; font-weight:normal; letter-spacing:0.02em; margin:0 0 4px;\n  }\n  h1.zh{ font-size:16px; color:var(--muted); font-family:inherit; margin-bottom:20px; font-weight:normal;}\n  h2{\n    font-family:Georgia,\"Times New Roman\",serif;\n    font-size:20px; font-weight:normal; margin:0 0 2px; letter-spacing:0.01em;\n  }\n  h2.zh{ font-size:14px; color:var(--muted); font-family:inherit; font-weight:normal; margin:0 0 20px;}\n\n  .card{\n    background:var(--panel);\n    border:1px solid var(--line);\n    border-radius:10px;\n    padding:20px 18px;\n    margin-bottom:16px;\n  }\n  .q-label{ font-size:15px; color:var(--ink); margin-bottom:2px; }\n  .q-label-zh{ font-size:12.5px; color:var(--muted); margin-bottom:14px; }\n  .hint{ font-size:11.5px; color:var(--muted); margin:-8px 0 14px; font-style:italic; }\n  .note{\n    font-size:12.5px; color:var(--muted); background:var(--panel-2); border:1px dashed var(--line);\n    border-radius:8px; padding:12px 14px; margin-bottom:4px;\n  }\n\n  .scale-row{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:4px; }\n  .scale-btn{\n    flex:1 1 auto; min-width:42px;\n    background:var(--panel-2); border:1px solid var(--line); color:var(--ink);\n    border-radius:8px; padding:10px 6px; text-align:center; font-size:14px; cursor:pointer;\n    transition:background .15s, border-color .15s;\n  }\n  .scale-btn:hover{ border-color:var(--gold-soft); }\n  .scale-btn.selected{ background:var(--gold); color:#FFFFFF; border-color:var(--gold); font-weight:600; }\n  .scale-caption{ display:flex; justify-content:space-between; font-size:10.5px; color:var(--muted); margin-bottom:16px; }\n\n  .choice-list{ display:flex; flex-direction:column; gap:8px; margin-bottom:4px; }\n  .choice{\n    background:var(--panel-2); border:1px solid var(--line); border-radius:8px;\n    padding:12px 14px; cursor:pointer; display:flex; flex-direction:column; gap:1px;\n  }\n  .choice:hover{ border-color:var(--gold-soft); }\n  .choice.selected{ border-color:var(--gold); background:var(--selected-bg); }\n  .choice .en{ font-size:14px; }\n  .choice .zh{ font-size:12px; color:var(--muted); }\n\n  .chip-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:8px; }\n  @media (max-width:420px){ .chip-grid{ grid-template-columns:1fr; } }\n  .chip{\n    background:var(--panel-2); border:1px solid var(--line); border-radius:8px;\n    padding:10px 12px; cursor:pointer; font-size:12.5px; display:flex; gap:8px; align-items:flex-start;\n  }\n  .chip:hover{ border-color:var(--gold-soft); }\n  .chip.selected{ border-color:var(--gold); background:var(--selected-bg); }\n  .chip .num{ color:var(--gold); font-weight:600; flex-shrink:0; }\n  .chip .txt .en{ font-size:12.5px; color:var(--ink); }\n  .chip .txt .zh{ font-size:11px; color:var(--muted); }\n\n  textarea, input[type=text], input[type=email]{\n    width:100%; background:#FFFFFF; border:1px solid var(--line); color:var(--ink);\n    border-radius:8px; padding:12px; font-size:14px; font-family:inherit; resize:vertical;\n  }\n  textarea:focus, input:focus, .scale-btn:focus-visible, .choice:focus-visible, .chip:focus-visible{\n    outline:2px solid var(--gold); outline-offset:1px;\n  }\n  textarea{ min-height:80px; }\n  label.field-label{ display:block; font-size:13px; color:var(--muted); margin:14px 0 6px; }\n  label.field-label:first-child{ margin-top:0; }\n\n  .nav-row{ display:flex; justify-content:space-between; gap:12px; margin-top:22px; }\n  button.nav{\n    border:none; border-radius:8px; padding:13px 22px; font-size:14px; cursor:pointer;\n    font-family:inherit; letter-spacing:0.03em;\n  }\n  button.next{ background:var(--gold); color:#FFFFFF; font-weight:600; flex:1; }\n  button.next:hover{ background:#A57F22; }\n  button.back{ background:transparent; color:var(--muted); border:1px solid var(--line); }\n  button.back:hover{ color:var(--ink); border-color:var(--gold-soft); }\n  .required-flag{ font-size:11px; color:var(--danger); margin-top:6px; display:none; }\n  .required-flag.show{ display:block; }\n\n  .intro-card{ text-align:center; padding:36px 22px; }\n  .intro-card .divider{ width:36px; height:1px; background:var(--gold-soft); margin:18px auto; }\n  .meta-row{ display:flex; justify-content:center; gap:18px; font-size:11px; color:var(--muted); margin-top:18px; flex-wrap:wrap; }\n\n  .thankyou{ text-align:center; padding:40px 20px; }\n  .thankyou .mark{ width:14px; height:14px; border-radius:50%; background:var(--gold); margin:0 auto 18px; }\n  .action-row{ display:flex; flex-direction:column; gap:10px; margin-top:24px; }\n  a.action-btn{\n    display:block; text-decoration:none; padding:13px; border-radius:8px; font-size:14px;\n    border:1px solid var(--line); color:var(--ink); background:var(--panel-2);\n  }\n  a.action-btn.primary{ background:var(--gold); color:#FFFFFF; font-weight:600; border-color:var(--gold); }\n\n  .conditional{ display:none; }\n  .conditional.show{ display:block; margin-top:14px; padding-top:14px; border-top:1px dashed var(--line); }\n\n  .teacher-row{ margin-bottom:16px; padding-bottom:14px; border-bottom:1px dashed var(--line); }\n  .teacher-row:last-child{ border-bottom:none; padding-bottom:0; margin-bottom:0; }\n  .teacher-row .t-index{ font-size:11px; color:var(--gold); letter-spacing:0.1em; margin-bottom:6px; }\n  .teacher-row input{ margin-bottom:10px; }\n\n  .footer-note{ text-align:center; font-size:10.5px; color:var(--muted); margin-top:24px; line-height:1.6; }\n<\/style>\n\n<div class=\"shell\">\n\n  <div class=\"top\">\n    <div class=\"brand\">DCI Global Level 8 \u00b7 Automatic Leadership<\/div>\n    <div class=\"progress-track\"><div class=\"progress-fill\" id=\"progressFill\"><\/div><\/div>\n    <div class=\"progress-label\" id=\"progressLabel\">Step 1 of 11 \u00b7 \u7b2c1\u6b65\uff0c\u517111\u6b65<\/div>\n  <\/div>\n\n  <!-- STEP 0: INTRO -->\n  <div class=\"step active\" data-step=\"0\">\n    <div class=\"card intro-card\">\n      <div class=\"eyebrow\">Post-Event Evaluation<\/div>\n      <h1>Your Voice, Our Next Chapter<\/h1>\n      <h1 class=\"zh\">\u60a8\u7684\u5fc3\u58f0\uff0c\u6210\u5c31\u6211\u4eec\u7684\u4e0b\u4e00\u7bc7\u7ae0<\/h1>\n      <div class=\"divider\"><\/div>\n      <p style=\"font-size:14px;color:var(--ink);margin:0;\">\n        Thank you for joining us at Conrad Singapore Orchard for three enriching days.\n        This short evaluation helps us understand your experience, the value you received,\n        and how future DCI Global programmes can serve you even better.\n      <\/p>\n      <p style=\"font-size:12.5px;color:var(--muted);margin-top:10px;\">\n        \u611f\u8c22\u60a8\u53c2\u52a0\u4e8e\u65b0\u52a0\u5761\u4e4c\u8282\u5eb7\u83b1\u5fb7\u9152\u5e97\u4e3e\u529e\u7684\u4e09\u5929\u5145\u5b9e\u4e4b\u65c5\u3002\u8fd9\u4efd\u7b80\u77ed\u8bc4\u4f30\u5c06\u5e2e\u52a9\u6211\u4eec\u4e86\u89e3\u60a8\u7684\u4f53\u9a8c\u4e0e\u6536\u83b7\uff0c\n        \u5e76\u8ba9\u672a\u6765\u7684DCI\u5168\u7403\u8bfe\u7a0b\u66f4\u597d\u5730\u670d\u52a1\u4e8e\u60a8\u3002\n      <\/p>\n      <div class=\"meta-row\">\n        <span>\u23f1 5\u20138 minutes \u00b7 \u5206\u949f<\/span>\n        <span>\ud83d\udd12 Anonymous unless you opt in \u00b7 \u533f\u540d\uff0c\u9664\u975e\u60a8\u9009\u62e9\u7559\u4e0b\u8054\u7cfb\u65b9\u5f0f<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"nav-row\">\n      <span><\/span>\n      <button class=\"nav next\" onclick=\"goTo(1)\">Begin \u00b7 \u5f00\u59cb<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 1: ABOUT YOUR ATTENDANCE -->\n  <div class=\"step\" data-step=\"1\">\n    <div class=\"eyebrow\">01 \u00b7 About Your Attendance<\/div>\n    <h2>About Your Attendance<\/h2>\n    <h2 class=\"zh\">\u5173\u4e8e\u60a8\u7684\u53c2\u4f1a\u65b9\u5f0f<\/h2>\n\n    <div class=\"card\">\n      <div class=\"q-label\">How did you attend this event?<\/div>\n      <div class=\"q-label-zh\">\u60a8\u4ee5\u4f55\u79cd\u65b9\u5f0f\u53c2\u52a0\u672c\u6b21\u6d3b\u52a8\uff1f<\/div>\n      <div class=\"hint\">This is an OMO (Online-Merge-Offline) programme, so we ask everyone this. \u00b7 \u672c\u6d3b\u52a8\u4e3aOMO\uff08\u7ebf\u4e0a\u7ebf\u4e0b\u878d\u5408\uff09\u8bfe\u7a0b\uff0c\u56e0\u6b64\u6211\u4eec\u5411\u6240\u6709\u5b66\u5458\u8be2\u95ee\u6b64\u9898\u3002<\/div>\n      <div class=\"choice-list\" id=\"q_attendmode\"><\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Were you attending as a Sponsor or VIP guest?<\/div>\n      <div class=\"q-label-zh\">\u60a8\u662f\u5426\u4ee5\u8d5e\u52a9\u5546\u6216\u8d35\u5bbe\u8eab\u4efd\u51fa\u5e2d\uff1f<\/div>\n      <div class=\"choice-list\" id=\"q_sponsorvip\"><\/div>\n    <\/div>\n\n    <div class=\"required-flag\" id=\"flag0\">Please tell us how you attended before continuing. \u00b7 \u8bf7\u5148\u9009\u62e9\u60a8\u7684\u53c2\u4f1a\u65b9\u5f0f\u518d\u7ee7\u7eed\u3002<\/div>\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(0)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"validateAndGo(1,2)\">Next \u00b7 \u4e0b\u4e00\u6b65<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 2: OVERALL EXPERIENCE -->\n  <div class=\"step\" data-step=\"2\">\n    <div class=\"eyebrow\">02 \u00b7 Overall Experience<\/div>\n    <h2>Overall Experience<\/h2>\n    <h2 class=\"zh\">\u6574\u4f53\u4f53\u9a8c<\/h2>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Overall, how would you rate your experience at DCI Global Level 8?<\/div>\n      <div class=\"q-label-zh\">\u603b\u4f53\u800c\u8a00\uff0c\u60a8\u5982\u4f55\u8bc4\u4ef7\u6b64\u6b21DCI\u5168\u7403\u7b2c\u516b\u7ea7\u7684\u4f53\u9a8c\uff1f<\/div>\n      <div class=\"scale-row\" id=\"q1_overall\"><\/div>\n      <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">How likely are you to recommend this programme to a friend or colleague?<\/div>\n      <div class=\"q-label-zh\">\u60a8\u5411\u670b\u53cb\u6216\u540c\u4e8b\u63a8\u8350\u6b64\u8bfe\u7a0b\u7684\u53ef\u80fd\u6027\u6709\u591a\u5927\uff1f<\/div>\n      <div class=\"scale-row\" id=\"q2_nps\"><\/div>\n      <div class=\"scale-caption\"><span>0 \u00b7 Not at all likely \u5b8c\u5168\u4e0d\u53ef\u80fd<\/span><span>10 \u00b7 Extremely likely \u975e\u5e38\u53ef\u80fd<\/span><\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">How well did the programme meet your expectations?<\/div>\n      <div class=\"q-label-zh\">\u8bfe\u7a0b\u5728\u591a\u5927\u7a0b\u5ea6\u4e0a\u7b26\u5408\u60a8\u7684\u671f\u671b\uff1f<\/div>\n      <div class=\"choice-list\" id=\"q3_expect\"><\/div>\n    <\/div>\n\n    <div class=\"required-flag\" id=\"flag1\">Please rate your overall experience before continuing. \u00b7 \u8bf7\u5148\u5b8c\u6210\u6574\u4f53\u4f53\u9a8c\u8bc4\u5206\u518d\u7ee7\u7eed\u3002<\/div>\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(1)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"validateAndGo(2,3)\">Next \u00b7 \u4e0b\u4e00\u6b65<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 3: VALUE RECEIVED -->\n  <div class=\"step\" data-step=\"3\">\n    <div class=\"eyebrow\">03 \u00b7 Value Received<\/div>\n    <h2>Value Received<\/h2>\n    <h2 class=\"zh\">\u6536\u83b7\u4e0e\u4ef7\u503c<\/h2>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Overall, how valuable were the 12 LifeTools to you personally?<\/div>\n      <div class=\"q-label-zh\">\u603b\u4f53\u800c\u8a00\uff0c\u8fd912\u4e2a\u751f\u547d\u5de5\u5177\u5bf9\u60a8\u4e2a\u4eba\u6709\u591a\u5927\u4ef7\u503c\uff1f<\/div>\n      <div class=\"scale-row\" id=\"q4_value\"><\/div>\n      <div class=\"scale-caption\"><span>Not valuable \u00b7 \u65e0\u4ef7\u503c<\/span><span>Extremely valuable \u00b7 \u6781\u5177\u4ef7\u503c<\/span><\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Which LifeTools did you find most valuable?<\/div>\n      <div class=\"q-label-zh\">\u60a8\u8ba4\u4e3a\u54ea\u4e9b\u751f\u547d\u5de5\u5177\u6700\u6709\u4ef7\u503c\uff1f<\/div>\n      <div class=\"hint\">Select up to 3 \u00b7 \u6700\u591a\u9009\u62e93\u9879<\/div>\n      <div class=\"chip-grid\" id=\"q5_most\"><\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Which LifeTools would benefit from more time or depth? <span style=\"color:var(--muted)\">(optional)<\/span><\/div>\n      <div class=\"q-label-zh\">\u60a8\u8ba4\u4e3a\u54ea\u4e9b\u751f\u547d\u5de5\u5177\u9700\u8981\u66f4\u591a\u65f6\u95f4\u6216\u6df1\u5165\u63a2\u8ba8\uff1f\uff08\u53ef\u9009\uff09<\/div>\n      <div class=\"chip-grid\" id=\"q6_deeper\"><\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">How confident do you feel applying what you learned in daily life or your leadership role?<\/div>\n      <div class=\"q-label-zh\">\u60a8\u5bf9\u5c06\u6240\u5b66\u5e94\u7528\u4e8e\u65e5\u5e38\u751f\u6d3b\u6216\u9886\u5bfc\u89d2\u8272\u7684\u4fe1\u5fc3\u5982\u4f55\uff1f<\/div>\n      <div class=\"scale-row\" id=\"q7_confidence\"><\/div>\n      <div class=\"scale-caption\"><span>Not confident \u00b7 \u6ca1\u6709\u4fe1\u5fc3<\/span><span>Extremely confident \u00b7 \u975e\u5e38\u6709\u4fe1\u5fc3<\/span><\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">What is one insight or tool you are most likely to put into practice?<\/div>\n      <div class=\"q-label-zh\">\u60a8\u6700\u6709\u53ef\u80fd\u4ed8\u8bf8\u5b9e\u8df5\u7684\u4e00\u4e2a\u6d1e\u89c1\u6216\u5de5\u5177\u662f\u4ec0\u4e48\uff1f<\/div>\n      <textarea id=\"q8_insight\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n    <\/div>\n\n    <div class=\"required-flag\" id=\"flag2\">Please rate the overall value of the LifeTools before continuing. \u00b7 \u8bf7\u5148\u5b8c\u6210\u751f\u547d\u5de5\u5177\u4ef7\u503c\u8bc4\u5206\u518d\u7ee7\u7eed\u3002<\/div>\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(2)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"validateAndGo(3,4)\">Next \u00b7 \u4e0b\u4e00\u6b65<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 4: PROGRAMME COMPONENTS -->\n  <div class=\"step\" data-step=\"4\">\n    <div class=\"eyebrow\">04 \u00b7 Programme & Teaching Faculty<\/div>\n    <h2>Programme Components<\/h2>\n    <h2 class=\"zh\">\u8bfe\u7a0b\u73af\u8282\u4e0e\u6559\u5b66\u56e2\u961f<\/h2>\n\n    <div class=\"card\" id=\"q9_components\"><\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Rate the teachers who taught your sessions<\/div>\n      <div class=\"q-label-zh\">\u8bf7\u4e3a\u4e3a\u60a8\u6388\u8bfe\u7684\u5bfc\u5e08\u8bc4\u5206<\/div>\n      <div class=\"hint\">Write in up to 5 teacher names and rate each \u00b7 \u6700\u591a\u586b\u51995\u4f4d\u5bfc\u5e08\u59d3\u540d\u5e76\u9010\u4e00\u8bc4\u5206<\/div>\n      <datalist id=\"teacherNames\">\n        <option value=\"Geshe Michael Roach\">\n        <option value=\"Seiji Arao\">\n        <option value=\"John Brady\">\n        <option value=\"Wang Xia\">\n        <option value=\"Emily Chan\">\n        <option value=\"Penny Wong\">\n        <option value=\"Grace Tan\">\n        <option value=\"Igor Surzhyk\">\n        <option value=\"Connie O'Brien\">\n        <option value=\"Wang Tian\">\n        <option value=\"Sugeng Shi\">\n        <option value=\"Ella Lu\">\n        <option value=\"Bobo\">\n        <option value=\"Anna Surzhyk\">\n        <option value=\"Kelly Tan\">\n        <option value=\"Jenny Wang\">\n        <option value=\"Sophie Cao\">\n        <option value=\"Eric Chia\">\n        <option value=\"Salvina\">\n        <option value=\"Nick Lashaw\">\n        <option value=\"Jeannie Zhuang\">\n        <option value=\"Sunny Lim\">\n        <option value=\"Max Wu\">\n        <option value=\"Carine Png\">\n      <\/datalist>\n      <div id=\"teacherRows\"><\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Any comments about the teachers or facilitators? <span style=\"color:var(--muted)\">(optional)<\/span><\/div>\n      <div class=\"q-label-zh\">\u5173\u4e8e\u5bfc\u5e08\u6216\u5f15\u5bfc\u5458\u7684\u610f\u89c1\uff08\u53ef\u9009\uff09<\/div>\n      <textarea id=\"q11_teachercomment\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n    <\/div>\n\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(3)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"goTo(5)\">Next \u00b7 \u4e0b\u4e00\u6b65<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 5: LOGISTICS & VENUE -->\n  <div class=\"step\" data-step=\"5\">\n    <div class=\"eyebrow\">05 \u00b7 Venue & Logistics<\/div>\n    <h2>Logistics & Venue<\/h2>\n    <h2 class=\"zh\">\u573a\u5730\u4e0e\u5b9e\u7528\u5b89\u6392<\/h2>\n\n    <div class=\"card\" id=\"q12_logistics\"><\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Any logistics issues we should know about? <span style=\"color:var(--muted)\">(optional)<\/span><\/div>\n      <div class=\"q-label-zh\">\u6709\u4efb\u4f55\u573a\u5730\u6216\u7269\u6d41\u95ee\u9898\u9700\u8981\u6211\u4eec\u4e86\u89e3\u5417\uff1f\uff08\u53ef\u9009\uff09<\/div>\n      <textarea id=\"q13_logisticsnote\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n    <\/div>\n\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(4)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"goTo(6)\">Next \u00b7 \u4e0b\u4e00\u6b65<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 6: OMO \/ ONLINE EXPERIENCE -->\n  <div class=\"step\" data-step=\"6\">\n    <div class=\"eyebrow\">06 \u00b7 Online (OMO) Experience<\/div>\n    <h2>Online (OMO) Experience<\/h2>\n    <h2 class=\"zh\">\u7ebf\u4e0a\uff08OMO\uff09\u4f53\u9a8c<\/h2>\n\n    <div class=\"note\" id=\"omoSkipNote\">\n      This section is for attendees who joined online. Based on your earlier answer, you attended in person only,\n      so feel free to skip ahead. \u00b7 \u672c\u90e8\u5206\u9002\u7528\u4e8e\u7ebf\u4e0a\u53c2\u4f1a\u5b66\u5458\u3002\u6839\u636e\u60a8\u5148\u524d\u7684\u56de\u7b54\uff0c\u60a8\u4e3a\u7eaf\u7ebf\u4e0b\u51fa\u5e2d\uff0c\u53ef\u76f4\u63a5\u8df3\u8fc7\u6b64\u90e8\u5206\u3002\n    <\/div>\n\n    <div class=\"conditional\" id=\"omoQuestions\">\n      <div class=\"card\">\n        <div class=\"q-label\">How would you rate the video & audio stream quality?<\/div>\n        <div class=\"q-label-zh\">\u60a8\u5982\u4f55\u8bc4\u4ef7\u89c6\u9891\u4e0e\u97f3\u9891\u76f4\u64ad\u7684\u8d28\u91cf\uff1f<\/div>\n        <div class=\"scale-row\" id=\"q_omo_stream\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n      <\/div>\n\n      <div class=\"card\">\n        <div class=\"q-label\">How well were you able to follow sessions and engage (chat, Q&A, polls)?<\/div>\n        <div class=\"q-label-zh\">\u60a8\u5728\u8ddf\u968f\u8bfe\u7a0b\u53ca\u4e92\u52a8\uff08\u804a\u5929\u3001\u95ee\u7b54\u3001\u6295\u7968\uff09\u65b9\u9762\u7684\u4f53\u9a8c\u5982\u4f55\uff1f<\/div>\n        <div class=\"scale-row\" id=\"q_omo_engagement\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n      <\/div>\n\n      <div class=\"card\">\n        <div class=\"q-label\">How easy was the online\/streaming platform to use?<\/div>\n        <div class=\"q-label-zh\">\u7ebf\u4e0a\u76f4\u64ad\u5e73\u53f0\u7684\u4f7f\u7528\u662f\u5426\u4fbf\u6377\uff1f<\/div>\n        <div class=\"scale-row\" id=\"q_omo_platform\"><\/div>\n        <div class=\"scale-caption\"><span>Difficult \u00b7 \u56f0\u96be<\/span><span>Very easy \u00b7 \u975e\u5e38\u4fbf\u6377<\/span><\/div>\n      <\/div>\n\n      <div class=\"card\">\n        <div class=\"q-label\">How would you rate technical support responsiveness for online attendees?<\/div>\n        <div class=\"q-label-zh\">\u60a8\u5982\u4f55\u8bc4\u4ef7\u9488\u5bf9\u7ebf\u4e0a\u5b66\u5458\u7684\u6280\u672f\u652f\u6301\u54cd\u5e94\u901f\u5ea6\uff1f<\/div>\n        <div class=\"scale-row\" id=\"q_omo_support\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n      <\/div>\n\n      <div class=\"card\">\n        <div class=\"q-label\">Suggestions for improving the online\/OMO experience? <span style=\"color:var(--muted)\">(optional)<\/span><\/div>\n        <div class=\"q-label-zh\">\u5bf9\u6539\u5584\u7ebf\u4e0a\/OMO\u4f53\u9a8c\u7684\u5efa\u8bae\uff1f\uff08\u53ef\u9009\uff09<\/div>\n        <textarea id=\"q_omo_comments\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n      <\/div>\n    <\/div>\n\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(5)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"goTo(7)\">Next \u00b7 \u4e0b\u4e00\u6b65<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 7: EXCURSION -->\n  <div class=\"step\" data-step=\"7\">\n    <div class=\"eyebrow\">07 \u00b7 Excursion Series<\/div>\n    <h2>Excursion Series<\/h2>\n    <h2 class=\"zh\">\u6e38\u5b66\u4f53\u9a8c\u7cfb\u5217<\/h2>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Did you attend the Discovery excursion (2 July)?<\/div>\n      <div class=\"q-label-zh\">\u60a8\u662f\u5426\u53c2\u52a0\u4e862\u65e5\u7684\u5168\u5929\u63a2\u7d22\u6e38\u89c8\uff1f<\/div>\n      <div class=\"choice-list\" id=\"q14a_discovery\"><\/div>\n\n      <div class=\"conditional\" id=\"discoveryFollowup\">\n        <div class=\"q-label\">How would you rate the Discovery excursion overall?<\/div>\n        <div class=\"q-label-zh\">\u60a8\u5982\u4f55\u8bc4\u4ef7\u5168\u5929\u63a2\u7d22\u6e38\u89c8\u7684\u6574\u4f53\u4f53\u9a8c\uff1f<\/div>\n        <div class=\"scale-row\" id=\"q15a_discoveryrating\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n\n        <label class=\"field-label\">Which stops did you enjoy most? (select any) \u00b7 \u60a8\u6700\u559c\u6b22\u54ea\u4e9b\u73af\u8282\uff1f\uff08\u53ef\u591a\u9009\uff09<\/label>\n        <div class=\"chip-grid\" id=\"q_discovery_stops\"><\/div>\n\n        <label class=\"field-label\">Rate value for money (SGD 350 per person) \u00b7 \u6027\u4ef7\u6bd4\u8bc4\u5206\uff08\u6bcf\u4eba\u65b0\u5e01350\u5143\uff09<\/label>\n        <div class=\"scale-row\" id=\"q_discovery_value\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n\n        <label class=\"field-label\">Rate the pickup, drop-off & transport experience \u00b7 \u63a5\u9001\u4e0e\u4ea4\u901a\u5b89\u6392\u8bc4\u5206<\/label>\n        <div class=\"scale-row\" id=\"q_discovery_transport\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n\n        <label class=\"field-label\">Any comments? \u00b7 \u5176\u4ed6\u610f\u89c1\uff08\u53ef\u9009\uff09<\/label>\n        <textarea id=\"q16a_discoverycomment\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n      <\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Did you attend the Immersion excursion (4 July)?<\/div>\n      <div class=\"q-label-zh\">\u60a8\u662f\u5426\u53c2\u52a0\u4e864\u65e5\u7684\u6c89\u6d78\u4f53\u9a8c\u6e38\u89c8\uff1f<\/div>\n      <div class=\"choice-list\" id=\"q14b_immersion\"><\/div>\n\n      <div class=\"conditional\" id=\"immersionFollowup\">\n        <div class=\"q-label\">How would you rate the Immersion excursion overall?<\/div>\n        <div class=\"q-label-zh\">\u60a8\u5982\u4f55\u8bc4\u4ef7\u6c89\u6d78\u4f53\u9a8c\u6e38\u89c8\u7684\u6574\u4f53\u4f53\u9a8c\uff1f<\/div>\n        <div class=\"scale-row\" id=\"q15b_immersionrating\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n\n        <label class=\"field-label\">Which experience was more meaningful to you? \u00b7 \u54ea\u4e2a\u73af\u8282\u5bf9\u60a8\u66f4\u6709\u610f\u4e49\uff1f<\/label>\n        <div class=\"choice-list\" id=\"q_immersion_highlight\"><\/div>\n\n        <label class=\"field-label\">Rate value for money (SGD 200 per person) \u00b7 \u6027\u4ef7\u6bd4\u8bc4\u5206\uff08\u6bcf\u4eba\u65b0\u5e01200\u5143\uff09<\/label>\n        <div class=\"scale-row\" id=\"q_immersion_value\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n\n        <label class=\"field-label\">Rate the pickup, drop-off & transport experience \u00b7 \u63a5\u9001\u4e0e\u4ea4\u901a\u5b89\u6392\u8bc4\u5206<\/label>\n        <div class=\"scale-row\" id=\"q_immersion_transport\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n\n        <label class=\"field-label\">Any comments? \u00b7 \u5176\u4ed6\u610f\u89c1\uff08\u53ef\u9009\uff09<\/label>\n        <textarea id=\"q16b_immersioncomment\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n      <\/div>\n    <\/div>\n\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(6)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"goTo(8)\">Next \u00b7 \u4e0b\u4e00\u6b65<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 8: SPONSORS & VIP -->\n  <div class=\"step\" data-step=\"8\">\n    <div class=\"eyebrow\">08 \u00b7 Sponsors & VIP Experience<\/div>\n    <h2>Sponsors & VIP Experience<\/h2>\n    <h2 class=\"zh\">\u8d5e\u52a9\u5546\u4e0e\u8d35\u5bbe\u4f53\u9a8c<\/h2>\n\n    <div class=\"note\" id=\"sponsorSkipNote\">\n      This section is for our Sponsors and VIP guests. Based on your earlier answer, this may not apply to you \u2014\n      feel free to skip ahead. \u00b7 \u672c\u90e8\u5206\u9002\u7528\u4e8e\u8d5e\u52a9\u5546\u4e0e\u8d35\u5bbe\u3002\u6839\u636e\u60a8\u5148\u524d\u7684\u56de\u7b54\uff0c\u6b64\u90e8\u5206\u53ef\u80fd\u4e0e\u60a8\u65e0\u5173\uff0c\u53ef\u76f4\u63a5\u8df3\u8fc7\u3002\n    <\/div>\n\n    <div class=\"conditional\" id=\"sponsorQuestions\">\n      <div class=\"card\">\n        <div class=\"q-label\">How would you rate the quality of VIP\/sponsor hospitality & recognition?<\/div>\n        <div class=\"q-label-zh\">\u60a8\u5982\u4f55\u8bc4\u4ef7\u8d35\u5bbe\/\u8d5e\u52a9\u5546\u63a5\u5f85\u4e0e\u793c\u9047\u7684\u8d28\u91cf\uff1f<\/div>\n        <div class=\"scale-row\" id=\"q_sponsor_hospitality\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n      <\/div>\n\n      <div class=\"card\">\n        <div class=\"q-label\">How would you rate your visibility & acknowledgement (signage, stage mentions, etc.)?<\/div>\n        <div class=\"q-label-zh\">\u60a8\u5982\u4f55\u8bc4\u4ef7\u6d3b\u52a8\u5bf9\u60a8\u7684\u66dd\u5149\u4e0e\u81f4\u8c22\uff08\u6807\u8bc6\u3001\u53f0\u4e0a\u81f4\u8c22\u7b49\uff09\uff1f<\/div>\n        <div class=\"scale-row\" id=\"q_sponsor_visibility\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n      <\/div>\n\n      <div class=\"card\">\n        <div class=\"q-label\">How would you rate the networking opportunities provided?<\/div>\n        <div class=\"q-label-zh\">\u60a8\u5982\u4f55\u8bc4\u4ef7\u6d3b\u52a8\u63d0\u4f9b\u7684\u793e\u4ea4\u4e0e\u4eba\u8109\u62d3\u5c55\u673a\u4f1a\uff1f<\/div>\n        <div class=\"scale-row\" id=\"q_sponsor_networking\"><\/div>\n        <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n      <\/div>\n\n      <div class=\"card\">\n        <div class=\"q-label\">Suggestions for improving the Sponsor\/VIP experience? <span style=\"color:var(--muted)\">(optional)<\/span><\/div>\n        <div class=\"q-label-zh\">\u5bf9\u6539\u5584\u8d5e\u52a9\u5546\/\u8d35\u5bbe\u4f53\u9a8c\u7684\u5efa\u8bae\uff1f\uff08\u53ef\u9009\uff09<\/div>\n        <textarea id=\"q_sponsor_comments\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n      <\/div>\n    <\/div>\n\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(7)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"goTo(9)\">Next \u00b7 \u4e0b\u4e00\u6b65<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 9: OPEN FEEDBACK -->\n  <div class=\"step\" data-step=\"9\">\n    <div class=\"eyebrow\">09 \u00b7 Open Feedback<\/div>\n    <h2>Open Feedback<\/h2>\n    <h2 class=\"zh\">\u5f00\u653e\u53cd\u9988<\/h2>\n\n    <div class=\"card\">\n      <div class=\"q-label\">What worked best about this event?<\/div>\n      <div class=\"q-label-zh\">\u672c\u6b21\u6d3b\u52a8\u4e2d\u6700\u6210\u529f\u7684\u90e8\u5206\u662f\u4ec0\u4e48\uff1f<\/div>\n      <textarea id=\"q17_best\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">What could we improve for future programmes?<\/div>\n      <div class=\"q-label-zh\">\u672a\u6765\u8bfe\u7a0b\u6709\u54ea\u4e9b\u53ef\u4ee5\u6539\u8fdb\u4e4b\u5904\uff1f<\/div>\n      <textarea id=\"q18_improve\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"q-label\">Any other comments or suggestions? <span style=\"color:var(--muted)\">(optional)<\/span><\/div>\n      <div class=\"q-label-zh\">\u5176\u4ed6\u610f\u89c1\u6216\u5efa\u8bae\uff1f\uff08\u53ef\u9009\uff09<\/div>\n      <textarea id=\"q19_other\" placeholder=\"Your answer \u00b7 \u60a8\u7684\u56de\u7b54\"><\/textarea>\n    <\/div>\n\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(8)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"goTo(10)\">Next \u00b7 \u4e0b\u4e00\u6b65<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 10: CONTACT (OPTIONAL) -->\n  <div class=\"step\" data-step=\"10\">\n    <div class=\"eyebrow\">10 \u00b7 Almost Done<\/div>\n    <h2>Optional: Stay Connected<\/h2>\n    <h2 class=\"zh\">\u53ef\u9009\uff1a\u4fdd\u6301\u8054\u7cfb<\/h2>\n\n    <div class=\"card\">\n      <div class=\"q-label\">May we feature your feedback as a testimonial?<\/div>\n      <div class=\"q-label-zh\">\u6211\u4eec\u662f\u5426\u53ef\u4ee5\u5c06\u60a8\u7684\u53cd\u9988\u4f5c\u4e3a\u63a8\u8350\u8bed\u5c55\u793a\uff1f<\/div>\n      <div class=\"choice-list\" id=\"q20_testimonial\"><\/div>\n\n      <label class=\"field-label\">Name \u00b7 \u59d3\u540d\uff08\u53ef\u9009\uff09<\/label>\n      <input type=\"text\" id=\"q21_name\" placeholder=\"Your name \u00b7 \u60a8\u7684\u59d3\u540d\">\n\n      <label class=\"field-label\">Email \u00b7 \u90ae\u7bb1\uff08\u53ef\u9009\uff0c\u5982\u9700\u540e\u7eed\u8054\u7cfb\uff09<\/label>\n      <input type=\"email\" id=\"q22_email\" placeholder=\"you@example.com\">\n    <\/div>\n\n    <div class=\"nav-row\">\n      <button class=\"nav back\" onclick=\"goTo(9)\">Back \u00b7 \u4e0a\u4e00\u6b65<\/button>\n      <button class=\"nav next\" onclick=\"submitForm()\">Submit \u00b7 \u63d0\u4ea4<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 11: THANK YOU -->\n  <div class=\"step\" data-step=\"11\">\n    <div class=\"card thankyou\">\n      <div class=\"mark\"><\/div>\n      <h1 style=\"font-size:22px;\">Thank You<\/h1>\n      <h1 class=\"zh\" style=\"margin-bottom:6px;\">\u8c22\u8c22\u60a8<\/h1>\n      <p style=\"font-size:13.5px;color:var(--ink);\">\n        Your reflections help shape what comes next. We're grateful you shared them.\n      <\/p>\n      <p style=\"font-size:12px;color:var(--muted);\">\n        \u60a8\u7684\u53cd\u601d\u5c06\u5e2e\u52a9\u6211\u4eec\u5851\u9020\u672a\u6765\u7684\u8bfe\u7a0b\u3002\u611f\u8c22\u60a8\u7684\u5206\u4eab\u3002\n      <\/p>\n      <div class=\"action-row\">\n        <a href=\"#\" class=\"action-btn primary\" id=\"downloadBtn\">Download my response (PDF) \u00b7 \u4e0b\u8f7d\u6211\u7684\u56de\u590d PDF<\/a>\n      <\/div>\n    <\/div>\n    <div class=\"footer-note\">\n      If your organiser has asked you to submit this form another way (e.g. a shared drive or in-person collection box),\n      please follow their instructions in addition to or instead of the options above.<br>\n      \u5982\u4e3b\u529e\u65b9\u8981\u6c42\u4ee5\u5176\u4ed6\u65b9\u5f0f\u63d0\u4ea4\uff08\u4f8b\u5982\u5171\u4eab\u4e91\u7aef\u786c\u76d8\u6216\u73b0\u573a\u6536\u96c6\u7bb1\uff09\uff0c\u8bf7\u6309\u5176\u6307\u793a\u63d0\u4ea4\uff0c\u4f5c\u4e3a\u4ee5\u4e0a\u65b9\u5f0f\u7684\u8865\u5145\u6216\u66ff\u4ee3\u3002\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\nconst DCIG_L8_EVAL_CONFIG = {\n  restUrl: \"https:\/\/courses.diamondcutterwisdom.com\/index.php\/wp-json\/dcig\/v1\/l8-evaluation\"\n};\n<\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2pdf.js\/0.10.1\/html2pdf.bundle.min.js\" referrerpolicy=\"no-referrer\"><\/script>\n<script>\nconst LIFETOOLS = [\n  {en:\"Leadership: How vs Why\", zh:\"\u9886\u5bfc\u529b\uff1a\u65b9\u5f0f\u4e0e\u539f\u56e0\"},\n  {en:\"Enjoyment & Authority\", zh:\"\u4eab\u53d7\u4e0e\u6743\u5a01\"},\n  {en:\"Setback Prevention & Management\", zh:\"\u632b\u6298\u9884\u9632\u4e0e\u7ba1\u7406\"},\n  {en:\"Seed Intelligence\", zh:\"\u79cd\u5b50\u667a\u6167\"},\n  {en:\"Leadership Styles\", zh:\"\u9886\u5bfc\u98ce\u683c\"},\n  {en:\"Public Speaking & Fearlessness\", zh:\"\u516c\u4f17\u6f14\u8bb2\u4e0e\u65e0\u60e7\"},\n  {en:\"Finding People to Lead \u00b7 4 Magnets\", zh:\"\u627e\u5230\u8ffd\u968f\u8005\u00b7\u56db\u5757\u78c1\u77f3\"},\n  {en:\"Four Modes of Management\", zh:\"\u56db\u79cd\u7ba1\u7406\u6a21\u5f0f\"},\n  {en:\"Skilful Means\", zh:\"\u5584\u5de7\u65b9\u4fbf\"},\n  {en:\"Equal Right to Success\", zh:\"\u5e73\u7b49\u7684\u6210\u529f\u6743\u5229\"},\n  {en:\"Replacing Others with Myself\", zh:\"\u4ee5\u81ea\u6211\u53d6\u4ee3\u4ed6\u4eba\"},\n  {en:\"Something Worth Following\", zh:\"\u503c\u5f97\u8ffd\u968f\u4e4b\u4e8b\"}\n];\n\nconst COMPONENTS = [\n  {key:\"comp_lifetool\", en:\"LifeTool Classes\", zh:\"\u751f\u6d3b\u5de5\u5177\u8bfe\"},\n  {key:\"comp_wisdom\", en:\"Wisdom Group Sessions\", zh:\"\u667a\u6167\u5c0f\u7ec4\u73af\u8282\"},\n  {key:\"comp_yoga\", en:\"Yoga Sessions\", zh:\"\u745c\u4f3d\u8bfe\"},\n  {key:\"comp_meditation\", en:\"Meditation Sessions\", zh:\"\u51a5\u60f3\u73af\u8282\"},\n  {key:\"comp_graduation\", en:\"Graduation Ceremony\", zh:\"\u6bd5\u4e1a\u5178\u793c\"}\n];\n\nconst LOGISTICS = [\n  {key:\"log_venue_facilities\", en:\"Venue & facilities (Conrad Singapore Orchard)\", zh:\"\u573a\u5730\u4e0e\u8bbe\u65bd\uff08\u65b0\u52a0\u5761\u4e4c\u8282\u5eb7\u83b1\u5fb7\u9152\u5e97\uff09\"},\n  {key:\"log_conrad_staff\", en:\"Conrad Singapore Orchard staff & service\", zh:\"\u5eb7\u83b1\u5fb7\u9152\u5e97\u5458\u5de5\u4e0e\u670d\u52a1\"},\n  {key:\"log_dcig_staff\", en:\"DCIG event staffing & service\", zh:\"DCIG\u6d3b\u52a8\u5de5\u4f5c\u4eba\u5458\u4e0e\u670d\u52a1\"},\n  {key:\"log_reg\", en:\"Registration & check-in process\", zh:\"\u6ce8\u518c\u4e0e\u7b7e\u5230\u6d41\u7a0b\"},\n  {key:\"log_pacing\", en:\"Schedule pacing & breaks\", zh:\"\u65e5\u7a0b\u8282\u594f\u4e0e\u4f11\u606f\u5b89\u6392\"},\n  {key:\"log_wifi\", en:\"Wi-Fi & LiveVoice interpretation app\", zh:\"\u65e0\u7ebf\u7f51\u7edc\u4e0eLiveVoice\u540c\u58f0\u4f20\u8bd1\u5e94\u7528\"},\n  {key:\"log_meals\", en:\"Meal & dining arrangements (self-arranged)\", zh:\"\u9910\u996e\u5b89\u6392\uff08\u81ea\u884c\u5b89\u6392\uff09\"},\n  {key:\"log_pack\", en:\"Welcome Pack materials (manual, notebook, etc.)\", zh:\"\u6b22\u8fce\u793c\u5305\u6750\u6599\uff08\u8bfe\u4ef6\u3001\u7b14\u8bb0\u672c\u7b49\uff09\"}\n];\n\nconst DISCOVERY_STOPS = [\n  {en:\"NUS Campus Tour\", zh:\"\u65b0\u52a0\u5761\u56fd\u7acb\u5927\u5b66\u6821\u56ed\u53c2\u89c2\"},\n  {en:\"BLOCK71 Visit\", zh:\"\u53c2\u89c2BLOCK71\"},\n  {en:\"Ya Kun Tea Break\", zh:\"\u4e9a\u5764\u8336\u6b47\"},\n  {en:\"Singapore River Cruise\", zh:\"\u65b0\u52a0\u5761\u6cb3\u6e38\u8239\"},\n  {en:\"Spectra Light Show\", zh:\"\u5149\u5f71\u6c34\u821e\u79c0\"}\n];\n\nconst state = {};\n\nfunction buildScale(containerId, count, startAt, key){\n  const el = document.getElementById(containerId);\n  el.innerHTML = \"\";\n  for(let i=startAt; i<startAt+count; i++){\n    const btn = document.createElement(\"div\");\n    btn.className = \"scale-btn\";\n    btn.textContent = i;\n    btn.tabIndex = 0;\n    btn.onclick = () => {\n      [...el.children].forEach(c=>c.classList.remove(\"selected\"));\n      btn.classList.add(\"selected\");\n      state[key] = i;\n      clearFlag(key);\n    };\n    btn.onkeydown = (e)=>{ if(e.key===\"Enter\"||e.key===\" \"){ e.preventDefault(); btn.click(); } };\n    el.appendChild(btn);\n  }\n}\n\nfunction buildChoiceList(containerId, options, key, multi){\n  const el = document.getElementById(containerId);\n  el.innerHTML = \"\";\n  options.forEach(opt=>{\n    const div = document.createElement(\"div\");\n    div.className = \"choice\";\n    div.tabIndex = 0;\n    div.innerHTML = `<span class=\"en\">${opt.en}<\/span><span class=\"zh\">${opt.zh}<\/span>`;\n    div.onclick = () => {\n      if(!multi){\n        [...el.children].forEach(c=>c.classList.remove(\"selected\"));\n        div.classList.add(\"selected\");\n        state[key] = opt.en;\n      } else {\n        div.classList.toggle(\"selected\");\n        state[key] = state[key] || [];\n        if(div.classList.contains(\"selected\")) state[key].push(opt.en);\n        else state[key] = state[key].filter(v=>v!==opt.en);\n      }\n      if(key === \"attendMode\") toggleOmoSection(opt.en);\n      if(key === \"sponsorVip\") toggleSponsorSection(opt.en);\n      if(key === \"discoveryAttended\") toggleFollowup(\"discoveryFollowup\", opt.en);\n      if(key === \"immersionAttended\") toggleFollowup(\"immersionFollowup\", opt.en);\n      clearFlag(key);\n    };\n    div.onkeydown = (e)=>{ if(e.key===\"Enter\"||e.key===\" \"){ e.preventDefault(); div.click(); } };\n    el.appendChild(div);\n  });\n}\n\nfunction buildChipGrid(containerId, options, key, max){\n  const el = document.getElementById(containerId);\n  el.innerHTML = \"\";\n  options.forEach((item, idx)=>{\n    const div = document.createElement(\"div\");\n    div.className = \"chip\";\n    div.tabIndex = 0;\n    div.innerHTML = `<span class=\"num\">${String(idx+1).padStart(2,'0')}<\/span><span class=\"txt\"><span class=\"en\">${item.en}<\/span><br><span class=\"zh\">${item.zh}<\/span><\/span>`;\n    div.onclick = () => {\n      state[key] = state[key] || [];\n      const selectedCount = el.querySelectorAll(\".selected\").length;\n      if(div.classList.contains(\"selected\")){\n        div.classList.remove(\"selected\");\n        state[key] = state[key].filter(v=>v!==item.en);\n      } else {\n        if(max && selectedCount >= max) return;\n        div.classList.add(\"selected\");\n        state[key].push(item.en);\n      }\n    };\n    div.onkeydown = (e)=>{ if(e.key===\"Enter\"||e.key===\" \"){ e.preventDefault(); div.click(); } };\n    el.appendChild(div);\n  });\n}\n\nfunction buildRatingGroup(containerId, items){\n  const wrap = document.getElementById(containerId);\n  wrap.innerHTML = \"\";\n  items.forEach(item=>{\n    const block = document.createElement(\"div\");\n    block.style.marginBottom = \"18px\";\n    block.innerHTML = `\n      <div class=\"q-label\">${item.en}<\/div>\n      <div class=\"q-label-zh\">${item.zh}<\/div>\n      <div class=\"scale-row\" id=\"row_${item.key}\"><\/div>\n    `;\n    wrap.appendChild(block);\n    buildScale(`row_${item.key}`, 5, 1, item.key);\n  });\n}\n\nfunction buildTeacherRows(containerId, max){\n  const wrap = document.getElementById(containerId);\n  wrap.innerHTML = \"\";\n  for(let i=1; i<=max; i++){\n    const row = document.createElement(\"div\");\n    row.className = \"teacher-row\";\n    row.innerHTML = `\n      <div class=\"t-index\">TEACHER ${i} \u00b7 \u5bfc\u5e08${i}<\/div>\n      <input type=\"text\" id=\"teacher_${i}_name\" list=\"teacherNames\" placeholder=\"Teacher name (optional) \u00b7 \u5bfc\u5e08\u59d3\u540d\uff08\u53ef\u9009\uff09\">\n      <div class=\"scale-row\" id=\"teacher_${i}_rating\"><\/div>\n      <div class=\"scale-caption\"><span>Poor \u00b7 \u5dee<\/span><span>Excellent \u00b7 \u5353\u8d8a<\/span><\/div>\n    `;\n    wrap.appendChild(row);\n    buildScale(`teacher_${i}_rating`, 5, 1, `teacher_${i}_rating`);\n  }\n}\n\nfunction toggleFollowup(elId, value){\n  const el = document.getElementById(elId);\n  if(value === \"Yes, I attended\"){\n    el.classList.add(\"show\");\n  } else {\n    el.classList.remove(\"show\");\n  }\n}\n\nfunction toggleOmoSection(value){\n  const questions = document.getElementById(\"omoQuestions\");\n  const note = document.getElementById(\"omoSkipNote\");\n  if(value === \"In-person only\"){\n    questions.classList.remove(\"show\");\n    note.style.display = \"block\";\n  } else {\n    questions.classList.add(\"show\");\n    note.style.display = \"none\";\n  }\n}\n\nfunction toggleSponsorSection(value){\n  const questions = document.getElementById(\"sponsorQuestions\");\n  const note = document.getElementById(\"sponsorSkipNote\");\n  if(value === \"Yes\"){\n    questions.classList.add(\"show\");\n    note.style.display = \"none\";\n  } else {\n    questions.classList.remove(\"show\");\n    note.style.display = \"block\";\n  }\n}\n\nfunction clearFlag(key){\n  document.getElementById(\"flag0\")?.classList.remove(\"show\");\n  document.getElementById(\"flag1\")?.classList.remove(\"show\");\n  document.getElementById(\"flag2\")?.classList.remove(\"show\");\n}\n\n\/\/ Build all interactive elements\nbuildChoiceList(\"q_attendmode\", [\n  {en:\"In-person only\", zh:\"\u4ec5\u7ebf\u4e0b\u51fa\u5e2d\"},\n  {en:\"Online (OMO) only\", zh:\"\u4ec5\u7ebf\u4e0a\uff08OMO\uff09\u51fa\u5e2d\"},\n  {en:\"Both in-person and online\", zh:\"\u7ebf\u4e0b\u4e0e\u7ebf\u4e0a\u5747\u6709\u53c2\u4e0e\"}\n], \"attendMode\", false);\n\nbuildChoiceList(\"q_sponsorvip\", [\n  {en:\"Yes\", zh:\"\u662f\"},\n  {en:\"No\", zh:\"\u5426\"}\n], \"sponsorVip\", false);\n\nbuildScale(\"q1_overall\", 5, 1, \"overall\");\nbuildScale(\"q2_nps\", 11, 0, \"nps\");\nbuildChoiceList(\"q3_expect\", [\n  {en:\"Exceeded expectations\", zh:\"\u8d85\u51fa\u9884\u671f\"},\n  {en:\"Met expectations\", zh:\"\u7b26\u5408\u9884\u671f\"},\n  {en:\"Somewhat below expectations\", zh:\"\u7565\u4f4e\u4e8e\u9884\u671f\"},\n  {en:\"Did not meet expectations\", zh:\"\u672a\u8fbe\u9884\u671f\"}\n], \"expectations\", false);\n\nbuildScale(\"q4_value\", 5, 1, \"toolsValue\");\nbuildChipGrid(\"q5_most\", LIFETOOLS, \"mostValuable\", 3);\nbuildChipGrid(\"q6_deeper\", LIFETOOLS, \"needsDepth\", null);\nbuildScale(\"q7_confidence\", 5, 1, \"confidence\");\n\nbuildRatingGroup(\"q9_components\", COMPONENTS);\nbuildTeacherRows(\"teacherRows\", 5);\n\nbuildRatingGroup(\"q12_logistics\", LOGISTICS);\n\nbuildScale(\"q_omo_stream\", 5, 1, \"omoStream\");\nbuildScale(\"q_omo_engagement\", 5, 1, \"omoEngagement\");\nbuildScale(\"q_omo_platform\", 5, 1, \"omoPlatform\");\nbuildScale(\"q_omo_support\", 5, 1, \"omoSupport\");\n\nbuildChoiceList(\"q14a_discovery\", [\n  {en:\"Yes, I attended\", zh:\"\u662f\uff0c\u6211\u53c2\u52a0\u4e86\"},\n  {en:\"No, I did not attend\", zh:\"\u5426\uff0c\u6211\u6ca1\u6709\u53c2\u52a0\"}\n], \"discoveryAttended\", false);\nbuildScale(\"q15a_discoveryrating\", 5, 1, \"discoveryRating\");\nbuildChipGrid(\"q_discovery_stops\", DISCOVERY_STOPS, \"discoveryStops\", null);\nbuildScale(\"q_discovery_value\", 5, 1, \"discoveryValue\");\nbuildScale(\"q_discovery_transport\", 5, 1, \"discoveryTransport\");\n\nbuildChoiceList(\"q14b_immersion\", [\n  {en:\"Yes, I attended\", zh:\"\u662f\uff0c\u6211\u53c2\u52a0\u4e86\"},\n  {en:\"No, I did not attend\", zh:\"\u5426\uff0c\u6211\u6ca1\u6709\u53c2\u52a0\"}\n], \"immersionAttended\", false);\nbuildScale(\"q15b_immersionrating\", 5, 1, \"immersionRating\");\nbuildChoiceList(\"q_immersion_highlight\", [\n  {en:\"ArtScience Museum\", zh:\"\u827a\u672f\u79d1\u5b66\u535a\u7269\u9986\"},\n  {en:\"NOX Dine in the Dark\", zh:\"NOX \u9ed1\u6697\u4e2d\u7528\u9910\"},\n  {en:\"Both equally\", zh:\"\u4e24\u8005\u540c\u6837\u6709\u610f\u4e49\"}\n], \"immersionHighlight\", false);\nbuildScale(\"q_immersion_value\", 5, 1, \"immersionValue\");\nbuildScale(\"q_immersion_transport\", 5, 1, \"immersionTransport\");\n\nbuildScale(\"q_sponsor_hospitality\", 5, 1, \"sponsorHospitality\");\nbuildScale(\"q_sponsor_visibility\", 5, 1, \"sponsorVisibility\");\nbuildScale(\"q_sponsor_networking\", 5, 1, \"sponsorNetworking\");\n\nbuildChoiceList(\"q20_testimonial\", [\n  {en:\"Yes, with my name\", zh:\"\u53ef\u4ee5\uff0c\u9644\u4e0a\u6211\u7684\u59d3\u540d\"},\n  {en:\"Yes, anonymously\", zh:\"\u53ef\u4ee5\uff0c\u4f46\u8bf7\u533f\u540d\u5904\u7406\"},\n  {en:\"No\", zh:\"\u4e0d\u53ef\u4ee5\"}\n], \"testimonial\", false);\n\n\/\/ Initial visibility for conditional sections (nothing selected yet)\ndocument.getElementById(\"omoQuestions\").classList.remove(\"show\");\ndocument.getElementById(\"sponsorQuestions\").classList.remove(\"show\");\n\n\/\/ Navigation\nlet currentStep = 0;\nconst LAST_FLOW_STEP = 10; \/\/ step 11 is thank-you\n\nfunction goTo(step){\n  document.querySelectorAll(\".step\").forEach(s=>s.classList.remove(\"active\"));\n  document.querySelector(`.step[data-step=\"${step}\"]`).classList.add(\"active\");\n  currentStep = step;\n  window.scrollTo({top:0, behavior:\"smooth\"});\n  updateProgress(step);\n}\n\nfunction updateProgress(step){\n  const displayStep = Math.min(step, LAST_FLOW_STEP);\n  const pct = (displayStep\/LAST_FLOW_STEP)*100;\n  document.getElementById(\"progressFill\").style.width = pct + \"%\";\n  document.getElementById(\"progressLabel\").textContent =\n    step > LAST_FLOW_STEP ? \"Complete \u00b7 \u5df2\u5b8c\u6210\" : `Step ${displayStep+1} of ${LAST_FLOW_STEP+1} \u00b7 \u7b2c${displayStep+1}\u6b65\uff0c\u5171${LAST_FLOW_STEP+1}\u6b65`;\n}\n\nfunction validateAndGo(fromStep, toStep){\n  if(fromStep === 1 && state.attendMode === undefined){\n    document.getElementById(\"flag0\").classList.add(\"show\");\n    return;\n  }\n  if(fromStep === 2 && state.overall === undefined){\n    document.getElementById(\"flag1\").classList.add(\"show\");\n    return;\n  }\n  if(fromStep === 3 && state.toolsValue === undefined){\n    document.getElementById(\"flag2\").classList.add(\"show\");\n    return;\n  }\n  goTo(toStep);\n}\n\nfunction gatherResponses(){\n  return {\n    submittedAt: new Date().toISOString(),\n    event: \"DCI Global Level 8: Automatic Leadership, 3-5 July 2026, Conrad Singapore Orchard\",\n    attendanceMode: state.attendMode ?? null,\n    sponsorOrVip: state.sponsorVip ?? null,\n    overallRating: state.overall ?? null,\n    npsScore: state.nps ?? null,\n    metExpectations: state.expectations ?? null,\n    lifeToolsOverallValue: state.toolsValue ?? null,\n    mostValuableLifeTools: state.mostValuable ?? [],\n    lifeToolsNeedingMoreDepth: state.needsDepth ?? [],\n    confidenceApplying: state.confidence ?? null,\n    keyInsightToApply: document.getElementById(\"q8_insight\").value || \"\",\n    componentRatings: {\n      lifeToolClasses: state.comp_lifetool ?? null,\n      wisdomGroupSessions: state.comp_wisdom ?? null,\n      yogaSessions: state.comp_yoga ?? null,\n      meditationSessions: state.comp_meditation ?? null,\n      graduationCeremony: state.comp_graduation ?? null\n    },\n    teacherRatings: [1,2,3,4,5].map(i => ({\n      name: document.getElementById(`teacher_${i}_name`).value || \"\",\n      rating: state[`teacher_${i}_rating`] ?? null\n    })).filter(t => t.name || t.rating !== null),\n    teacherComments: document.getElementById(\"q11_teachercomment\").value || \"\",\n    logisticsRatings: {\n      venueFacilities: state.log_venue_facilities ?? null,\n      conradStaffService: state.log_conrad_staff ?? null,\n      dcigStaffingService: state.log_dcig_staff ?? null,\n      registrationCheckIn: state.log_reg ?? null,\n      schedulePacing: state.log_pacing ?? null,\n      wifiLiveVoice: state.log_wifi ?? null,\n      mealsDining: state.log_meals ?? null,\n      welcomePackMaterials: state.log_pack ?? null\n    },\n    logisticsNotes: document.getElementById(\"q13_logisticsnote\").value || \"\",\n    omoExperience: {\n      streamQuality: state.omoStream ?? null,\n      engagement: state.omoEngagement ?? null,\n      platformEase: state.omoPlatform ?? null,\n      technicalSupport: state.omoSupport ?? null,\n      comments: document.getElementById(\"q_omo_comments\").value || \"\"\n    },\n    discoveryExcursion: {\n      attended: state.discoveryAttended ?? null,\n      rating: state.discoveryRating ?? null,\n      favouriteStops: state.discoveryStops ?? [],\n      valueForMoney: state.discoveryValue ?? null,\n      transportRating: state.discoveryTransport ?? null,\n      comments: document.getElementById(\"q16a_discoverycomment\").value || \"\"\n    },\n    immersionExcursion: {\n      attended: state.immersionAttended ?? null,\n      rating: state.immersionRating ?? null,\n      mostMeaningful: state.immersionHighlight ?? null,\n      valueForMoney: state.immersionValue ?? null,\n      transportRating: state.immersionTransport ?? null,\n      comments: document.getElementById(\"q16b_immersioncomment\").value || \"\"\n    },\n    sponsorVipExperience: {\n      hospitality: state.sponsorHospitality ?? null,\n      visibility: state.sponsorVisibility ?? null,\n      networking: state.sponsorNetworking ?? null,\n      comments: document.getElementById(\"q_sponsor_comments\").value || \"\"\n    },\n    whatWorkedBest: document.getElementById(\"q17_best\").value || \"\",\n    whatToImprove: document.getElementById(\"q18_improve\").value || \"\",\n    otherComments: document.getElementById(\"q19_other\").value || \"\",\n    testimonialConsent: state.testimonial ?? null,\n    name: document.getElementById(\"q21_name\").value || \"\",\n    email: document.getElementById(\"q22_email\").value || \"\"\n  };\n}\n\nfunction escapePdfHtml(value){\n  return String(value ?? \"\")\n    .replace(\/&\/g, \"&amp;\")\n    .replace(\/<\/g, \"&lt;\")\n    .replace(\/>\/g, \"&gt;\")\n    .replace(\/\"\/g, \"&quot;\")\n    .replace(\/'\/g, \"&#039;\");\n}\n\nfunction formatPdfValue(value){\n  if(value === null || value === undefined || value === \"\") return \"-\";\n  if(Array.isArray(value)) return value.length ? value.join(\"; \") : \"-\";\n  if(typeof value === \"object\") return JSON.stringify(value);\n  return String(value);\n}\n\nfunction addPdfRow(rows, section, question, answer){\n  rows.push({section, question, answer: formatPdfValue(answer)});\n}\n\nfunction buildResponsePdfRows(data){\n  const rows = [];\n\n  addPdfRow(rows, \"Submission\", \"Submission ID\", data.submissionId || \"Saved in WordPress\");\n  addPdfRow(rows, \"Submission\", \"Submitted At\", data.submittedAt);\n  addPdfRow(rows, \"Submission\", \"Event\", data.event);\n  addPdfRow(rows, \"Attendance\", \"How did you attend this event?\", data.attendanceMode);\n  addPdfRow(rows, \"Attendance\", \"Were you attending as a Sponsor or VIP guest?\", data.sponsorOrVip);\n\n  addPdfRow(rows, \"Overall Experience\", \"Overall rating\", data.overallRating);\n  addPdfRow(rows, \"Overall Experience\", \"Likelihood to recommend (0-10)\", data.npsScore);\n  addPdfRow(rows, \"Overall Experience\", \"How well did the programme meet expectations?\", data.metExpectations);\n\n  addPdfRow(rows, \"Value Received\", \"Overall value of the 12 LifeTools\", data.lifeToolsOverallValue);\n  addPdfRow(rows, \"Value Received\", \"Most valuable LifeTools\", data.mostValuableLifeTools);\n  addPdfRow(rows, \"Value Received\", \"LifeTools needing more time or depth\", data.lifeToolsNeedingMoreDepth);\n  addPdfRow(rows, \"Value Received\", \"Confidence applying what was learned\", data.confidenceApplying);\n  addPdfRow(rows, \"Value Received\", \"One insight or tool most likely to put into practice\", data.keyInsightToApply);\n\n  addPdfRow(rows, \"Programme Components\", \"LifeTool Classes\", data.componentRatings?.lifeToolClasses);\n  addPdfRow(rows, \"Programme Components\", \"Wisdom Group Sessions\", data.componentRatings?.wisdomGroupSessions);\n  addPdfRow(rows, \"Programme Components\", \"Yoga Sessions\", data.componentRatings?.yogaSessions);\n  addPdfRow(rows, \"Programme Components\", \"Meditation Sessions\", data.componentRatings?.meditationSessions);\n  addPdfRow(rows, \"Programme Components\", \"Graduation Ceremony\", data.componentRatings?.graduationCeremony);\n\n  (data.teacherRatings || []).forEach((teacher, index) => {\n    addPdfRow(rows, \"Teachers\", `Teacher ${index + 1} Name`, teacher.name || \"-\");\n    addPdfRow(rows, \"Teachers\", `Teacher ${index + 1} Rating`, teacher.rating ?? \"-\");\n  });\n  addPdfRow(rows, \"Teachers\", \"Teacher \/ facilitator comments\", data.teacherComments);\n\n  addPdfRow(rows, \"Logistics & Venue\", \"Venue & facilities\", data.logisticsRatings?.venueFacilities);\n  addPdfRow(rows, \"Logistics & Venue\", \"Conrad staff & service\", data.logisticsRatings?.conradStaffService);\n  addPdfRow(rows, \"Logistics & Venue\", \"DCIG event staffing & service\", data.logisticsRatings?.dcigStaffingService);\n  addPdfRow(rows, \"Logistics & Venue\", \"Registration & check-in process\", data.logisticsRatings?.registrationCheckIn);\n  addPdfRow(rows, \"Logistics & Venue\", \"Schedule pacing & breaks\", data.logisticsRatings?.schedulePacing);\n  addPdfRow(rows, \"Logistics & Venue\", \"Wi-Fi & LiveVoice interpretation app\", data.logisticsRatings?.wifiLiveVoice);\n  addPdfRow(rows, \"Logistics & Venue\", \"Meal & dining arrangements\", data.logisticsRatings?.mealsDining);\n  addPdfRow(rows, \"Logistics & Venue\", \"Welcome Pack materials\", data.logisticsRatings?.welcomePackMaterials);\n  addPdfRow(rows, \"Logistics & Venue\", \"Logistics issues \/ notes\", data.logisticsNotes);\n\n  addPdfRow(rows, \"Online OMO Experience\", \"Video & audio stream quality\", data.omoExperience?.streamQuality);\n  addPdfRow(rows, \"Online OMO Experience\", \"Able to follow and engage\", data.omoExperience?.engagement);\n  addPdfRow(rows, \"Online OMO Experience\", \"Platform ease of use\", data.omoExperience?.platformEase);\n  addPdfRow(rows, \"Online OMO Experience\", \"Technical support responsiveness\", data.omoExperience?.technicalSupport);\n  addPdfRow(rows, \"Online OMO Experience\", \"OMO suggestions\", data.omoExperience?.comments);\n\n  addPdfRow(rows, \"Discovery Excursion\", \"Attended Discovery excursion\", data.discoveryExcursion?.attended);\n  addPdfRow(rows, \"Discovery Excursion\", \"Discovery overall rating\", data.discoveryExcursion?.rating);\n  addPdfRow(rows, \"Discovery Excursion\", \"Favourite stops\", data.discoveryExcursion?.favouriteStops);\n  addPdfRow(rows, \"Discovery Excursion\", \"Value for money\", data.discoveryExcursion?.valueForMoney);\n  addPdfRow(rows, \"Discovery Excursion\", \"Transport rating\", data.discoveryExcursion?.transportRating);\n  addPdfRow(rows, \"Discovery Excursion\", \"Discovery comments\", data.discoveryExcursion?.comments);\n\n  addPdfRow(rows, \"Immersion Excursion\", \"Attended Immersion excursion\", data.immersionExcursion?.attended);\n  addPdfRow(rows, \"Immersion Excursion\", \"Immersion overall rating\", data.immersionExcursion?.rating);\n  addPdfRow(rows, \"Immersion Excursion\", \"Most meaningful experience\", data.immersionExcursion?.mostMeaningful);\n  addPdfRow(rows, \"Immersion Excursion\", \"Value for money\", data.immersionExcursion?.valueForMoney);\n  addPdfRow(rows, \"Immersion Excursion\", \"Transport rating\", data.immersionExcursion?.transportRating);\n  addPdfRow(rows, \"Immersion Excursion\", \"Immersion comments\", data.immersionExcursion?.comments);\n\n  addPdfRow(rows, \"Sponsor & VIP Experience\", \"Hospitality & recognition\", data.sponsorVipExperience?.hospitality);\n  addPdfRow(rows, \"Sponsor & VIP Experience\", \"Visibility & acknowledgement\", data.sponsorVipExperience?.visibility);\n  addPdfRow(rows, \"Sponsor & VIP Experience\", \"Networking opportunities\", data.sponsorVipExperience?.networking);\n  addPdfRow(rows, \"Sponsor & VIP Experience\", \"Sponsor\/VIP suggestions\", data.sponsorVipExperience?.comments);\n\n  addPdfRow(rows, \"Open Feedback\", \"What worked best?\", data.whatWorkedBest);\n  addPdfRow(rows, \"Open Feedback\", \"What could be improved?\", data.whatToImprove);\n  addPdfRow(rows, \"Open Feedback\", \"Other comments\", data.otherComments);\n\n  addPdfRow(rows, \"Contact\", \"Testimonial consent\", data.testimonialConsent);\n  addPdfRow(rows, \"Contact\", \"Name\", data.name);\n  addPdfRow(rows, \"Contact\", \"Email\", data.email);\n\n  return rows;\n}\n\nfunction buildResponsePdfHtml(data, standalone){\n  const rows = buildResponsePdfRows(data);\n  let currentSection = \"\";\n  const bodyRows = rows.map(row => {\n    const sectionHeader = row.section !== currentSection\n      ? `<div class=\"pdf-section-title\">${escapePdfHtml(row.section)}<\/div>`\n      : \"\";\n    currentSection = row.section;\n    return sectionHeader + `\n      <div class=\"pdf-item\">\n        <div class=\"pdf-question\">${escapePdfHtml(row.question)}<\/div>\n        <div class=\"pdf-answer\">${escapePdfHtml(row.answer)}<\/div>\n      <\/div>`;\n  }).join(\"\");\n\n  const content = `\n    <div class=\"dcig-response-pdf\">\n      <h1>DCIG Level 8 - Post-Event Evaluation Response<\/h1>\n      <p class=\"subtitle\">Generated for respondent record keeping.<\/p>\n      <div class=\"pdf-list\">${bodyRows}<\/div>\n    <\/div>`;\n\n  const styles = `\n    <style>\n      html,body{\n        margin:0!important;\n        padding:0!important;\n        background:#fff!important;\n        color:#12203E!important;\n        font-family:Arial,\"Microsoft YaHei\",\"Noto Sans CJK SC\",sans-serif!important;\n        -webkit-print-color-adjust:exact!important;\n        print-color-adjust:exact!important;\n      }\n      *,*::before,*::after{\n        box-sizing:border-box!important;\n        max-width:none!important;\n        min-width:0!important;\n        text-indent:0!important;\n        letter-spacing:normal!important;\n        word-spacing:normal!important;\n        transform:none!important;\n      }\n      .dcig-response-pdf{\n        display:block!important;\n        position:relative!important;\n        left:auto!important;\n        right:auto!important;\n        top:auto!important;\n        width:267mm!important;\n        max-width:267mm!important;\n        min-height:auto!important;\n        margin:0!important;\n        padding:0!important;\n        background:#fff!important;\n        color:#12203E!important;\n        font-family:Arial,\"Microsoft YaHei\",\"Noto Sans CJK SC\",sans-serif!important;\n        overflow:visible!important;\n        letter-spacing:normal!important;\n        transform:none!important;\n      }\n      .dcig-response-pdf h1{\n        display:block!important;\n        width:100%!important;\n        margin:0 0 3mm!important;\n        padding:0!important;\n        color:#12203E!important;\n        font-family:Arial,\"Microsoft YaHei\",\"Noto Sans CJK SC\",sans-serif!important;\n        font-size:16px!important;\n        font-weight:700!important;\n        line-height:1.3!important;\n        letter-spacing:normal!important;\n        text-align:left!important;\n        white-space:normal!important;\n        overflow:visible!important;\n      }\n      .dcig-response-pdf .subtitle{\n        display:block!important;\n        margin:0 0 4mm!important;\n        padding:0!important;\n        color:#5B6B85!important;\n        font-size:10px!important;\n        line-height:1.4!important;\n        text-align:left!important;\n        white-space:normal!important;\n      }\n      .dcig-response-pdf .pdf-list{\n        display:block!important;\n        width:100%!important;\n        margin:0!important;\n        padding:0!important;\n        overflow:visible!important;\n      }\n      .dcig-response-pdf .pdf-section-title{\n        display:block!important;\n        width:100%!important;\n        margin:3.2mm 0 1.2mm!important;\n        padding:2.2mm 3mm!important;\n        background:#B8912B!important;\n        color:#fff!important;\n        font-size:11px!important;\n        font-weight:700!important;\n        line-height:1.25!important;\n        text-align:left!important;\n        border-radius:1mm!important;\n        page-break-after:avoid!important;\n        break-after:avoid!important;\n        overflow:visible!important;\n      }\n      .dcig-response-pdf .pdf-section-title:first-child{margin-top:0!important;}\n      .dcig-response-pdf .pdf-item{\n        display:block!important;\n        width:100%!important;\n        margin:0 0 1.2mm!important;\n        padding:0!important;\n        border:1px solid #E1E5EE!important;\n        border-radius:1mm!important;\n        background:#fff!important;\n        overflow:visible!important;\n        page-break-inside:avoid!important;\n        break-inside:avoid!important;\n      }\n      .dcig-response-pdf .pdf-question{\n        display:block!important;\n        width:100%!important;\n        margin:0!important;\n        padding:1.7mm 2.5mm!important;\n        background:#F6F7FB!important;\n        color:#12203E!important;\n        font-size:9.6px!important;\n        font-weight:700!important;\n        line-height:1.35!important;\n        text-align:left!important;\n        white-space:normal!important;\n        overflow-wrap:anywhere!important;\n        word-break:break-word!important;\n        overflow:visible!important;\n      }\n      .dcig-response-pdf .pdf-answer{\n        display:block!important;\n        width:100%!important;\n        margin:0!important;\n        padding:1.9mm 2.5mm!important;\n        background:#fff!important;\n        color:#12203E!important;\n        font-size:9.8px!important;\n        font-weight:400!important;\n        line-height:1.4!important;\n        text-align:left!important;\n        white-space:pre-wrap!important;\n        overflow-wrap:anywhere!important;\n        word-break:break-word!important;\n        overflow:visible!important;\n      }\n      @media print{\n        @page{size:A4 landscape;margin:10mm;}\n        html,body{width:297mm!important;min-height:210mm!important;}\n        .dcig-response-pdf{width:277mm!important;max-width:277mm!important;}\n      }\n    <\/style>`;\n\n  return standalone ? `<!doctype html><html><head><meta charset=\"UTF-8\"><title>DCIG L8 Evaluation Response<\/title>${styles}<\/head><body>${content}<\/body><\/html>` : styles + content;\n}\nfunction buildPdfFileName(data){\n  const stamp = new Date().toISOString().replace(\/[:.]\/g, \"-\").slice(0, 19);\n  const id = data.submissionId ? `-${data.submissionId}` : \"\";\n  return `DCIG_L8_Evaluation_Response${id}_${stamp}.pdf`;\n}\n\nfunction openPrintableResponse(data){\n  const printWindow = window.open(\"\", \"_blank\");\n  if(!printWindow){\n    alert(\"Popup was blocked. Please allow popups, then click the PDF button again. \u00b7 \u6d4f\u89c8\u5668\u963b\u6b62\u4e86\u65b0\u7a97\u53e3\uff0c\u8bf7\u5141\u8bb8\u5f39\u7a97\u540e\u518d\u8bd5\u3002\");\n    return;\n  }\n  printWindow.document.open();\n  printWindow.document.write(buildResponsePdfHtml(data, true));\n  printWindow.document.close();\n  printWindow.focus();\n  setTimeout(() => printWindow.print(), 500);\n}\n\nfunction delay(ms){\n  return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nfunction isCanvasMostlyBlank(canvas){\n  try{\n    const ctx = canvas.getContext(\"2d\", { willReadFrequently: true });\n    if(!ctx) return false;\n    const width = canvas.width;\n    const height = canvas.height;\n    if(!width || !height) return true;\n\n    const sampleSize = 24;\n    const stepX = Math.max(1, Math.floor(width \/ sampleSize));\n    const stepY = Math.max(1, Math.floor(height \/ sampleSize));\n    let nonWhitePixels = 0;\n    let checkedPixels = 0;\n\n    for(let y = 0; y < height; y += stepY){\n      for(let x = 0; x < width; x += stepX){\n        const pixel = ctx.getImageData(x, y, 1, 1).data;\n        checkedPixels++;\n        if(pixel[3] > 0 && (pixel[0] < 248 || pixel[1] < 248 || pixel[2] < 248)){\n          nonWhitePixels++;\n        }\n      }\n    }\n\n    return checkedPixels > 0 && (nonWhitePixels \/ checkedPixels) < 0.003;\n  }catch(error){\n    return false;\n  }\n}\n\nasync function downloadResponsePdf(data){\n  const downloadBtn = document.getElementById(\"downloadBtn\");\n  const originalText = downloadBtn ? downloadBtn.textContent : \"\";\n  let pdfHost = null;\n\n  if(downloadBtn){\n    downloadBtn.textContent = \"Generating PDF... \u00b7 \u6b63\u5728\u751f\u6210PDF...\";\n    downloadBtn.style.pointerEvents = \"none\";\n  }\n\n  try{\n    if(typeof window.html2pdf !== \"function\"){\n      openPrintableResponse(data);\n      return;\n    }\n\n    pdfHost = document.createElement(\"div\");\n    pdfHost.id = \"dcig-pdf-render-host\";\n    pdfHost.setAttribute(\"aria-hidden\", \"true\");\n    pdfHost.style.position = \"fixed\";\n    pdfHost.style.left = \"20px\";\n    pdfHost.style.top = \"20px\";\n    pdfHost.style.width = \"297mm\";\n    pdfHost.style.minHeight = \"210mm\";\n    pdfHost.style.background = \"#ffffff\";\n    pdfHost.style.zIndex = \"2147483647\";\n    pdfHost.style.opacity = \"1\";\n    pdfHost.style.visibility = \"visible\";\n    pdfHost.style.pointerEvents = \"none\";\n    pdfHost.style.overflow = \"visible\";\n    pdfHost.style.margin = \"0\";\n    pdfHost.style.padding = \"10mm\";\n    pdfHost.style.boxSizing = \"border-box\";\n    pdfHost.style.transform = \"none\";\n    pdfHost.innerHTML = buildResponsePdfHtml(data, false);\n    document.body.appendChild(pdfHost);\n\n    const source = pdfHost.querySelector(\".dcig-response-pdf\");\n    if(!source){\n      throw new Error(\"PDF content was not created.\");\n    }\n\n    await delay(150);\n    if(document.fonts && document.fonts.ready){\n      try{ await document.fonts.ready; }catch(fontError){}\n    }\n\n    const options = {\n      margin: [10, 10, 10, 10],\n      filename: buildPdfFileName(data),\n      image: { type: \"jpeg\", quality: 0.98 },\n      html2canvas: {\n        scale: 2,\n        useCORS: true,\n        allowTaint: true,\n        backgroundColor: \"#ffffff\",\n        scrollX: 0,\n        scrollY: 0,\n        windowWidth: 1123,\n        windowHeight: Math.max(source.scrollHeight + 120, 794),\n        onclone: function(clonedDocument){\n          const clonedHost = clonedDocument.getElementById(\"dcig-pdf-render-host\");\n          if(clonedHost){\n            clonedHost.style.position = \"static\";\n            clonedHost.style.left = \"0\";\n            clonedHost.style.top = \"0\";\n            clonedHost.style.margin = \"0\";\n            clonedHost.style.padding = \"0\";\n            clonedHost.style.zIndex = \"auto\";\n            clonedHost.style.opacity = \"1\";\n            clonedHost.style.visibility = \"visible\";\n            clonedHost.style.transform = \"none\";\n            clonedHost.style.display = \"block\";\n            clonedHost.style.overflow = \"visible\";\n          }\n        }\n      },\n      jsPDF: { unit: \"mm\", format: \"a4\", orientation: \"landscape\" },\n      pagebreak: { mode: [\"css\", \"legacy\"], avoid: [\".pdf-section-title\", \".pdf-item\"] }\n    };\n\n    const worker = window.html2pdf().set(options).from(source).toCanvas();\n    const canvas = await worker.get(\"canvas\");\n\n    if(isCanvasMostlyBlank(canvas)){\n      throw new Error(\"Generated canvas was blank. Opening printable PDF fallback.\");\n    }\n\n    await worker.toPdf().save();\n  }catch(error){\n    console.error(\"PDF generation failed\", error);\n    openPrintableResponse(data);\n  }finally{\n    if(pdfHost && pdfHost.parentNode){\n      pdfHost.parentNode.removeChild(pdfHost);\n    }\n    if(downloadBtn){\n      downloadBtn.textContent = originalText;\n      downloadBtn.style.pointerEvents = \"auto\";\n    }\n  }\n}\n\nfunction prepareThankYouActions(data){\n  const downloadBtn = document.getElementById(\"downloadBtn\");\n  if(!downloadBtn) return;\n  downloadBtn.href = \"#\";\n  downloadBtn.removeAttribute(\"download\");\n  downloadBtn.textContent = \"Download my response (PDF) \u00b7 \u4e0b\u8f7d\u6211\u7684\u56de\u590d PDF\";\n  downloadBtn.onclick = (event) => {\n    event.preventDefault();\n    downloadResponsePdf(data);\n  };\n}\n\nasync function submitForm(){\n  const submitButton = document.querySelector('button[onclick=\"submitForm()\"]');\n  const originalText = submitButton ? submitButton.textContent : \"\";\n  const data = gatherResponses();\n\n  if(submitButton){\n    submitButton.disabled = true;\n    submitButton.textContent = \"Saving... \u00b7 \u6b63\u5728\u4fdd\u5b58...\";\n  }\n\n  try{\n    const response = await fetch(DCIG_L8_EVAL_CONFIG.restUrl, {\n      method: \"POST\",\n      credentials: \"omit\",\n      cache: \"no-store\",\n      headers: {\n        \"Content-Type\": \"application\/json\"\n      },\n      body: JSON.stringify(data)\n    });\n\n    const result = await response.json().catch(() => ({}));\n\n    if(!response.ok || !result.success){\n      throw new Error(result.message || \"Submission could not be saved.\");\n    }\n\n    data.submissionId = result.id || null;\n    prepareThankYouActions(data);\n    goTo(11);\n  }catch(error){\n    alert(\"Sorry, your submission could not be saved. Please try again. \u00b7 \u62b1\u6b49\uff0c\u63d0\u4ea4\u672a\u80fd\u4fdd\u5b58\uff0c\u8bf7\u518d\u8bd5\u4e00\u6b21\u3002\\n\\n\" + error.message);\n    if(submitButton){\n      submitButton.disabled = false;\n      submitButton.textContent = originalText;\n    }\n  }\n}\n\nwindow.goTo = goTo;\nwindow.validateAndGo = validateAndGo;\nwindow.submitForm = submitForm;\n\nupdateProgress(0);\n<\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-12502","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/courses.diamondcutterwisdom.com\/index.php\/wp-json\/wp\/v2\/pages\/12502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/courses.diamondcutterwisdom.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/courses.diamondcutterwisdom.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/courses.diamondcutterwisdom.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.diamondcutterwisdom.com\/index.php\/wp-json\/wp\/v2\/comments?post=12502"}],"version-history":[{"count":8,"href":"https:\/\/courses.diamondcutterwisdom.com\/index.php\/wp-json\/wp\/v2\/pages\/12502\/revisions"}],"predecessor-version":[{"id":12512,"href":"https:\/\/courses.diamondcutterwisdom.com\/index.php\/wp-json\/wp\/v2\/pages\/12502\/revisions\/12512"}],"wp:attachment":[{"href":"https:\/\/courses.diamondcutterwisdom.com\/index.php\/wp-json\/wp\/v2\/media?parent=12502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}