{"id":2372,"date":"2024-08-14T17:25:09","date_gmt":"2024-08-14T09:25:09","guid":{"rendered":"https:\/\/ayla.com.hk\/?page_id=2372"},"modified":"2026-04-07T18:31:54","modified_gmt":"2026-04-07T10:31:54","slug":"tcm-body-type-quiz","status":"publish","type":"page","link":"https:\/\/ayla.com.hk\/en\/tcm-body-type-quiz\/","title":{"rendered":"\u514d\u8cbb\u7db2\u4e0a\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66\u3001\u98f2\u98df\u5efa\u8b70"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2372\" class=\"elementor elementor-2372\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5e160dc0 e-con-full e-flex e-con e-parent\" data-id=\"5e160dc0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-ab0512f e-con-full e-flex e-con e-child\" data-id=\"ab0512f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4f43b03e elementor-widget elementor-widget-heading\" data-id=\"4f43b03e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u4e86\u89e3\u4f60\u7684\u500b\u4eba\u9ad4\u8cea\u53ca\u75be\u75c5\u98a8\u96aa<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42cd81f elementor-widget elementor-widget-heading\" data-id=\"42cd81f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">\u627e\u51fa\u6162\u6027\u75be\u75c5\u548c\u8377\u723e\u8499\u5931\u8abf\u7684\u6839\u6e90<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fad3479 elementor-widget elementor-widget-text-editor\" data-id=\"fad3479\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u5728\u4e2d\u91ab\u7406\u8ad6\u4e2d\uff0c\u4f60\u7368\u7279\u7684\u9ad4\u8cea\u6c7a\u5b9a\u4e86\u4f60\u7684\u8eab\u9ad4\u5c0d\u98f2\u98df\u3001\u58d3\u529b\u548c\u74b0\u5883\u7684\u53cd\u61c9\u65b9\u5f0f\uff0c\u540c\u6642\u4e5f\u63ed\u793a\u4e86\u4f60\u5c0d\u67d0\u4e9b\u5065\u5eb7\u5931\u8861\u548c\u53cd\u8986\u51fa\u73fe\u7684\u75c7\u72c0\u7684\u81ea\u7136\u50be\u5411\u3002<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-09a9e52 e-con-full e-flex e-con e-parent\" data-id=\"09a9e52\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-60ae2f5 elementor-widget elementor-widget-html\" data-id=\"60ae2f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!doctype html>\n<html lang=\"zh-HK\" class=\"h-full\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66 \u2014 Ayla Executive Medical<\/title>\n  <script src=\"\/_sdk\/element_sdk.js\"><\/script>\n  <script src=\"\/_sdk\/data_sdk.js\" type=\"text\/javascript\"><\/script>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:wght@300;400;500;600&family=Noto+Sans+TC:wght@300;400;500&display=swap\" rel=\"stylesheet\">\n\n  <style>\n    \/* \u2500\u2500\u2500 DESIGN TOKENS \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    :root {\n      --color-bg:        #fdfbf8;\n      --color-surface:   #ffffff;\n      --color-text:      #232F47;\n      --color-text-muted:#445566;\n      --color-primary:   #232F47;\n      --color-accent:    #7c9c9a;\n      --color-gold:      #ecddc0;\n      --color-gold-dark: #c9a96e;\n      --color-border:    #e8e2d9;\n\n      --font-heading: 'Cormorant Garamond', Georgia, serif;\n      --font-body:    'Noto Sans TC', system-ui, sans-serif;\n\n      --radius-sm:  6px;\n      --radius-md:  12px;\n      --radius-lg:  20px;\n      --radius-xl:  32px;\n\n      --shadow-sm: 0 1px 3px rgba(35,47,71,0.06), 0 1px 2px rgba(35,47,71,0.04);\n      --shadow-md: 0 4px 16px rgba(35,47,71,0.08), 0 2px 6px rgba(35,47,71,0.05);\n      --shadow-lg: 0 12px 40px rgba(35,47,71,0.10), 0 4px 12px rgba(35,47,71,0.06);\n\n      --transition: 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n    }\n\n    \/* \u2500\u2500\u2500 SCOPED RESET (inside #app only) \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    #app *, #app *::before, #app *::after {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0;\n    }\n\n    \/* \u2500\u2500\u2500 LAYOUT \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 *\/\n    #app {\n      width: 100%;\n      overflow-x: hidden;\n      background: var(--color-bg);\n      color: var(--color-text);\n      font-family: var(--font-body);\n      font-size: 15px;\n      line-height: 1.7;\n      -webkit-font-smoothing: antialiased;\n    }\n\n    #app .page {\n      min-height: 100vh;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      padding: 48px 20px 80px;\n    }\n\n    #app .container {\n      width: 100%;\n      max-width: 580px;\n    }\n\n    \/* \u2500\u2500\u2500 TYPOGRAPHY \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 *\/\n    #app .heading-display {\n      font-family: var(--font-heading);\n      font-size: clamp(32px, 6vw, 52px);\n      font-weight: 400;\n      letter-spacing: 0.18em;\n      text-transform: uppercase;\n      line-height: 1.15;\n      color: var(--color-text);\n    }\n\n    #app .heading-section {\n      font-family: var(--font-heading);\n      font-size: clamp(20px, 3.5vw, 28px);\n      font-weight: 400;\n      letter-spacing: 0.12em;\n      text-transform: uppercase;\n      line-height: 1.3;\n      color: var(--color-text);\n    }\n\n    #app .heading-card {\n      font-family: var(--font-heading);\n      font-size: clamp(18px, 3vw, 24px);\n      font-weight: 500;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: var(--color-text);\n    }\n\n    #app .label {\n      font-family: var(--font-body);\n      font-size: 11px;\n      font-weight: 500;\n      letter-spacing: 0.18em;\n      text-transform: uppercase;\n      color: var(--color-accent);\n    }\n\n    #app .body-text {\n      font-family: var(--font-body);\n      font-size: 14px;\n      line-height: 1.85;\n      color: var(--color-text-muted);\n      font-weight: 300;\n    }\n\n    \/* \u2500\u2500\u2500 DECORATIVE LINE \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    #app .divider {\n      display: flex;\n      align-items: center;\n      gap: 12px;\n      margin: 20px 0;\n    }\n    #app .divider::before, #app .divider::after {\n      content: '';\n      flex: 1;\n      height: 1px;\n      background: var(--color-gold);\n    }\n    #app .divider-dot {\n      width: 4px;\n      height: 4px;\n      border-radius: 50%;\n      background: var(--color-gold-dark);\n    }\n\n    \/* \u2500\u2500\u2500 CARD \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\u2500 *\/\n    #app .card {\n      background: var(--color-surface);\n      border: 1px solid var(--color-border);\n      border-radius: var(--radius-lg);\n      padding: 36px;\n      box-shadow: var(--shadow-md);\n    }\n\n    \/* \u2500\u2500\u2500 LOGO MARK \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 *\/\n    #app .logo-mark {\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      gap: 6px;\n      margin-bottom: 40px;\n    }\n\n    #app .logo-emblem {\n      width: 48px;\n      height: 48px;\n      opacity: 0.85;\n    }\n\n    #app .logo-name {\n      font-family: var(--font-heading);\n      font-size: 11px;\n      letter-spacing: 0.3em;\n      text-transform: uppercase;\n      color: var(--color-text-muted);\n    }\n\n    \/* \u2500\u2500\u2500 WELCOME PAGE \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    #app .welcome-hero {\n      text-align: center;\n      margin-bottom: 36px;\n    }\n\n    #app .welcome-tagline {\n      font-family: var(--font-body);\n      font-size: 12px;\n      letter-spacing: 0.2em;\n      text-transform: uppercase;\n      color: var(--color-accent);\n      margin-bottom: 16px;\n    }\n\n    #app .welcome-description {\n      font-size: 14px;\n      line-height: 1.9;\n      color: var(--color-text-muted);\n      font-weight: 300;\n      margin: 20px 0 28px;\n    }\n\n    #app .time-badge {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      padding: 8px 18px;\n      background: var(--color-gold);\n      border-radius: 999px;\n      font-size: 12px;\n      letter-spacing: 0.12em;\n      color: var(--color-text);\n      font-weight: 400;\n    }\n\n    \/* \u2500\u2500\u2500 BUTTONS \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 *\/\n    #app .btn-primary {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: 10px;\n      padding: 14px 40px;\n      background: var(--color-primary);\n      color: #fff;\n      border: none;\n      border-radius: var(--radius-sm);\n      font-family: var(--font-body);\n      font-size: 11px;\n      font-weight: 500;\n      letter-spacing: 0.2em;\n      text-transform: uppercase;\n      cursor: pointer;\n      transition: var(--transition);\n      width: 100%;\n    }\n    #app .btn-primary:hover {\n      background: #1a2338;\n      transform: translateY(-1px);\n      box-shadow: var(--shadow-md);\n    }\n\n    #app .btn-secondary {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      padding: 10px 20px;\n      background: transparent;\n      color: var(--color-text-muted);\n      border: 1px solid var(--color-border);\n      border-radius: var(--radius-sm);\n      font-family: var(--font-body);\n      font-size: 11px;\n      font-weight: 500;\n      letter-spacing: 0.15em;\n      text-transform: uppercase;\n      cursor: pointer;\n      transition: var(--transition);\n    }\n    #app .btn-secondary:hover {\n      border-color: var(--color-text-muted);\n      color: var(--color-text);\n    }\n\n    #app .btn-whatsapp {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: 10px;\n      padding: 14px 32px;\n      background: #25D366;\n      color: #fff;\n      border: none;\n      border-radius: var(--radius-sm);\n      font-family: var(--font-body);\n      font-size: 11px;\n      font-weight: 500;\n      letter-spacing: 0.18em;\n      text-transform: uppercase;\n      cursor: pointer;\n      transition: var(--transition);\n      text-decoration: none;\n    }\n    #app .btn-whatsapp:hover {\n      background: #1fb855;\n      transform: translateY(-1px);\n      box-shadow: var(--shadow-md);\n    }\n\n    \/* \u2500\u2500\u2500 PROGRESS \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 *\/\n    #app .progress-wrap {\n      margin-bottom: 36px;\n    }\n\n    #app .progress-meta {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      margin-bottom: 10px;\n    }\n\n    #app .progress-track {\n      height: 2px;\n      background: var(--color-gold);\n      border-radius: 999px;\n      overflow: hidden;\n    }\n\n    #app .progress-fill {\n      height: 100%;\n      background: var(--color-accent);\n      border-radius: 999px;\n      transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n    }\n\n    \/* \u2500\u2500\u2500 QUESTION \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 *\/\n    #app .question-text {\n      font-family: var(--font-heading);\n      font-size: clamp(20px, 3.5vw, 26px);\n      font-weight: 400;\n      letter-spacing: 0.06em;\n      line-height: 1.4;\n      color: var(--color-text);\n      margin: 20px 0 28px;\n    }\n\n    \/* \u2500\u2500\u2500 OPTIONS \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 *\/\n    #app .options-list {\n      display: flex;\n      flex-direction: column;\n      gap: 10px;\n    }\n\n    #app .option-btn {\n      width: 100%;\n      text-align: left;\n      padding: 16px 20px;\n      background: var(--color-bg);\n      border: 1px solid var(--color-border);\n      border-radius: var(--radius-md);\n      cursor: pointer;\n      transition: var(--transition);\n      font-family: var(--font-body);\n      font-size: 14px;\n      font-weight: 300;\n      color: var(--color-text);\n      line-height: 1.5;\n      display: flex;\n      align-items: center;\n      gap: 14px;\n    }\n\n    #app .option-btn #app .radio-dot {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      width: 18px;\n      height: 18px;\n      min-width: 18px;\n      border-radius: 50%;\n      border: 1.5px solid var(--color-border);\n      transition: var(--transition);\n      flex-shrink: 0;\n    }\n\n    #app .option-btn #app .option-label {\n      color: var(--color-text);\n      flex: 1;\n    }\n\n    #app .option-btn:hover {\n      border-color: var(--color-accent);\n      background: #f0f7f6;\n      transform: translateX(4px);\n    }\n\n    #app .option-btn:hover #app .radio-dot {\n      border-color: var(--color-accent);\n      background: var(--color-accent);\n    }\n\n    \/* \u2500\u2500\u2500 RESULTS \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 *\/\n    #app .grade-ring {\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      justify-content: center;\n      width: 96px;\n      height: 96px;\n      border-radius: 50%;\n      font-family: var(--font-heading);\n      font-size: 44px;\n      font-weight: 300;\n      letter-spacing: 0.05em;\n      color: #fff;\n      margin: 0 auto 12px;\n    }\n\n    #app .grade-row {\n      display: flex;\n      justify-content: center;\n      gap: 10px;\n      margin: 20px 0;\n    }\n\n    #app .grade-pip {\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      gap: 4px;\n      transition: var(--transition);\n    }\n\n    #app .grade-pip-circle {\n      width: 36px;\n      height: 36px;\n      border-radius: 50%;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      font-family: var(--font-heading);\n      font-size: 18px;\n      font-weight: 400;\n      color: #fff;\n    }\n\n    #app .grade-pip-label {\n      font-size: 10px;\n      letter-spacing: 0.1em;\n      color: var(--color-text-muted);\n    }\n\n    #app .grade-pip.inactive {\n      opacity: 0.25;\n    }\n\n    #app .grade-message {\n      background: var(--color-bg);\n      border-radius: var(--radius-md);\n      padding: 18px 20px;\n      font-size: 13px;\n      line-height: 1.85;\n      color: var(--color-text-muted);\n      font-weight: 300;\n      margin-top: 16px;\n      border-left: 3px solid var(--color-accent);\n    }\n\n    \/* \u2500\u2500\u2500 BODY TYPE BARS \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    #app .type-bar-row {\n      margin-bottom: 20px;\n    }\n    #app .type-bar-row:last-child { margin-bottom: 0; }\n\n    #app .type-bar-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: baseline;\n      margin-bottom: 6px;\n    }\n\n    #app .type-bar-name {\n      font-size: 13px;\n      font-weight: 400;\n      letter-spacing: 0.04em;\n    }\n\n    #app .type-bar-pct {\n      font-family: var(--font-heading);\n      font-size: 20px;\n      font-weight: 400;\n      letter-spacing: 0.05em;\n    }\n\n    #app .type-bar-track {\n      height: 4px;\n      background: var(--color-gold);\n      border-radius: 999px;\n      overflow: hidden;\n    }\n\n    #app .type-bar-fill {\n      height: 100%;\n      border-radius: 999px;\n      animation: growBar 1.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n    }\n\n    @keyframes growBar {\n      from { width: 0 !important; }\n    }\n\n    \/* \u2500\u2500\u2500 PROGRAM CARDS \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    #app .program-card {\n      display: block;\n      text-decoration: none;\n      border: 1px solid var(--color-border);\n      border-radius: var(--radius-md);\n      overflow: hidden;\n      transition: var(--transition);\n      margin-bottom: 16px;\n    }\n    #app .program-card:last-child { margin-bottom: 0; }\n    #app .program-card:hover {\n      border-color: var(--color-accent);\n      box-shadow: var(--shadow-md);\n      transform: translateY(-2px);\n    }\n\n    #app .program-card img {\n      width: 100%;\n      height: 180px;\n      object-fit: cover;\n      display: block;\n    }\n\n    #app .program-card-body {\n      padding: 14px 18px;\n    }\n\n    #app .program-card-title {\n      font-family: var(--font-heading);\n      font-size: 16px;\n      font-weight: 500;\n      letter-spacing: 0.06em;\n      color: var(--color-text);\n    }\n\n    \/* \u2500\u2500\u2500 FADE IN \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 *\/\n    #app .fade-in {\n      animation: fadeUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) both;\n    }\n\n    @keyframes fadeUp {\n      from { opacity: 0; transform: translateY(14px); }\n      to   { opacity: 1; transform: translateY(0); }\n    }\n\n    \/* \u2500\u2500\u2500 SECTION SPACING \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    #app .stack > * + * { margin-top: 20px; }\n    #app .stack-lg > * + * { margin-top: 28px; }\n  <\/style>\n<\/head>\n<body>\n<div id=\"app\"><\/div>\n\n<script>\n  \/* \u2500\u2500\u2500 CONFIG DEFAULTS \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  const defaultConfig = {\n    background_color:      \"#fdfbf8\",\n    surface_color:         \"#ffffff\",\n    text_color:            \"#232F47\",\n    primary_action_color:  \"#232F47\",\n    secondary_action_color:\"#7c9c9a\",\n    font_family:           \"Cormorant Garamond\",\n    font_size:             15,\n    main_title:            \"\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66<br\/>TCM Body Type Quiz\",\n    subtitle:              \"\u4e86\u89e3\u60a8\u7684\u8eab\u9ad4\u985e\u578b\",\n    start_button_text:     \"\u958b\u59cb\u6e2c\u8a66 START\",\n    next_button_text:      \"\u4e0b\u4e00\u984c\",\n    restart_button_text:   \"\u91cd\u65b0\u6e2c\u8a66\"\n  };\n\n  \/* \u2500\u2500\u2500 APPLY CONFIG TO CSS VARS \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  function applyConfigToVars(config) {\n    const r = document.documentElement.style;\n    r.setProperty('--color-bg',      config.background_color  || defaultConfig.background_color);\n    r.setProperty('--color-surface', config.surface_color     || defaultConfig.surface_color);\n    r.setProperty('--color-text',    config.text_color        || defaultConfig.text_color);\n    r.setProperty('--color-primary', config.primary_action_color || defaultConfig.primary_action_color);\n    r.setProperty('--color-accent',  config.secondary_action_color || defaultConfig.secondary_action_color);\n    r.setProperty('--font-body',     `'${config.font_family || defaultConfig.font_family}', 'Noto Sans TC', system-ui, sans-serif`);\n  }\n\n  \/* \u2500\u2500\u2500 DATA \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\u2500\u2500\u2500 *\/\n  const allQuestions = [\n    { text: \"\u60a8\u7684\u5e74\u9f61\u662f?\", type: \"demographic\", special: \"age\",\n      options: [{ text:\"18-34\",score:0},{ text:\"35-44\",score:0},{ text:\"45-55\",score:0},{ text:\">55\",score:0}] },\n    { text: \"\u60a8\u7684\u6027\u5225\u662f?\", type: \"demographic\", special: \"gender\",\n      options: [{ text:\"\u5973\u6027\",score:0},{ text:\"\u7537\u6027\",score:0}] },\n    { text: \"\u4e0b\u5217\u54ea\u9805\u6700\u80fd\u63cf\u8ff0\u60a8\u76ee\u524d\u7684\u6708\u7d93\u72c0\u6cc1?\", type: \"demographic\", special: \"menstrual_status\",\n      options: [{ text:\"\u6211\u7684\u6708\u7d93\u5468\u671f\u898f\u5f8b\",score:0},{ text:\"\u6211\u7684\u6708\u7d93\u5468\u671f\u4e0d\u898f\u5f8b\",score:0},{ text:\"\u6211\u7684\u6708\u7d93\u5df2\u505c\u6b62\u8d85\u904e1\u5e74\u4ee5\u4e0a\",score:0}] },\n    { text: \"\u60a8\u611f\u5230\u75b2\u5026\u6216\u7f3a\u4e4f\u7cbe\u529b\u55ce?\", type: \"qi_blood\" },\n    { text: \"\u60a8\u611f\u5230\u982d\u75db\u6216\u80a9\u9838\u7dca\u55ce?\", type: \"qi_stagnation\" },\n    { text: \"\u60a8\u611f\u5230\u982d\u6688\u55ce?\", type: \"qi_blood\" },\n    { text: \"\u60a8\u611f\u5230\u8170\u9178\u75db\u6216\u819d\u8edf\u55ce?\", type: \"yang\" },\n    { text: \"\u60a8\u611f\u5230\u56db\u80a2\u56f0\u91cd\u55ce?\", type: \"phlegm\" },\n    { text: \"\u60a8\u611f\u5230\u58d3\u529b\/\u7dca\u5f35\u6216\u6613\u6012\u55ce?\", type: \"qi_stagnation\" },\n    { text: \"\u60a8\u611f\u5230\u6d88\u5316\u4e0d\u826f\u6216\u98df\u617e\u4e0d\u4f73\u55ce?\", type: \"qi_blood\" },\n    { text: \"\u60a8\u611f\u5230\u6709\u80c3\u6c23\/\u8179\u8139\u55ce?\", type: \"phlegm\" },\n    { text: \"\u60a8\u611f\u5230\u5927\u4fbf\u4e0d\u66a2\u6216\u5927\u4fbf\u6cc4\u7009\u55ce?\", type: \"qi_blood\" },\n    { text: \"\u60a8\u7684\u5927\u4fbf\u8cea\u9ecf\u6216\u8edf\u721b\u4e0d\u6210\u5f62\u55ce?\", type: \"phlegm\" },\n    { text: \"\u60a8\u611f\u5230\u5bb9\u6613\u767c\u80d6\u6216\u96e3\u4ee5\u6e1b\u91cd\u55ce?\", type: \"phlegm\" },\n    { text: \"\u60a8\u7684\u7761\u89ba\u6642\u9593\u662f?\", type: \"yin\", special: \"bedtime\" },\n    { text: \"\u60a8\u611f\u5230\u5931\u7720\u6216\u7761\u7720\u8cea\u91cf\u4e0d\u4f73\u55ce?\", type: \"qi_blood\" },\n    { text: \"\u60a8\u6709\u591c\u9593\u51fa\u6c57\/\u7761\u7720\u51fa\u6c57\u55ce?\", type: \"yin\" },\n    { text: \"\u60a8\u611f\u5230\u5c0f\u4fbf\u983b\u5bc6\u6216\u591c\u5c3f\u591a\u55ce?\", type: \"yang\" },\n    { text: \"\u60a8\u611f\u5230\u6015\u51b7\uff0c\u5c24\u5176\u56db\u80a2\u90e8\u4f4d\u55ce?\", type: \"yang\" },\n    { text: \"\u60a8\u611f\u5230\u6015\u71b1\u6216\u6709\u6f6e\u71b1\u55ce?\", type: \"yin\" },\n    { text: \"\u60a8\u611f\u5230\u53e3\u4e7e\u6216\u54bd\u5589\u4e7e\u55ce?\", type: \"yin\" },\n    { text: \"\u60a8\u6709\u81c9\u90e8\u6cdb\u7d05\u6216\u6697\u7621\u55ce?\", type: \"yin\" },\n    { text: \"\u60a8\u611f\u5230\u75f0\u591a\u6216(\u5973\u6027)\u9670\u9053\u5206\u6ccc\u7269\u591a\u55ce?\", type: \"phlegm\" },\n    { text: \"\u60a8\u611f\u5230\u7d93\u75db\u6216\u7d93\u524d\u8179\u75db\u55ce?\", type: \"qi_stagnation\", menstrual: true },\n    { text: \"\u60a8\u7684\u7d93\u8840\u4f34\u96a8\u8840\u584a\u55ce?\", type: \"qi_stagnation\", menstrual: true },\n    { text: \"\u4f86\u6708\u7d93\u4e4b\u524d\uff0c\u60a8\u611f\u5230\u4e73\u623f\u8139\u6216\u75db\u55ce?\", type: \"qi_stagnation\", menstrual: true },\n    { text: \"\u60a8\u7684\u6708\u7d93\u8840\u91cf\u5c11\u6216\u984f\u8272\u6dfa\u55ce?\", type: \"yang\", menstrual: true },\n    { text: \"\u60a8\u611f\u5230\u6027\u617e\u4f4e\u6216\u6027\u4ea4\u6642\u9670\u9053\u6f64\u6ed1\u5206\u6ccc\u4e0d\u8db3\u55ce?\", type: \"yang\", menstrual: true }\n  ];\n\n  const standardOptions = [\n    { text:\"\u7d93\u5e38 (\u6bcf\u661f\u671f\u22653\u6b21)\", score:4 },\n    { text:\"\u6709\u6642 (\u6bcf\u6708\u6578\u6b21)\",   score:3 },\n    { text:\"\u5076\u7136 (\u6bcf\u5e74\u6578\u6b21)\",   score:1 },\n    { text:\"\u5f9e\u4e0d\",             score:0 }\n  ];\n  const menstrualOptions = [\n    { text:\"\u7d93\u5e38 (\u5e7e\u4e4e\u6bcf\u6b21)\",   score:3 },\n    { text:\"\u6709\u6642 (\u6bcf\u5e74\u6578\u6b21)\",   score:2 },\n    { text:\"\u5076\u7136 (\u6bcf\u5e741-2\u6b21)\",  score:1 },\n    { text:\"\u5f9e\u4e0d\",             score:0 }\n  ];\n  const bedtimeOptions = [\n    { text:\"11pm\u524d\",    score:0 },\n    { text:\"11pm \u2013 1am\",score:2 },\n    { text:\"1am\u5f8c\",     score:4 }\n  ];\n\n  const bodyTypes = {\n    qi_blood:      \"\u6c23\u8840\u865b\u5f31\",\n    qi_stagnation: \"\u6c23\u6eef\u8840\u7600\",\n    phlegm:        \"\u75f0\u6fd5\u963b\u6eef\",\n    yin:           \"\u9670\u865b\u706b\u65fa\",\n    yang:          \"\u967d\u865b\u5167\u5bd2\"\n  };\n\n  const bodyTypeColors = {\n    qi_blood:      \"#c4857a\",\n    qi_stagnation: \"#8a7ab8\",\n    phlegm:        \"#5e9e9e\",\n    yin:           \"#c97d5a\",\n    yang:          \"#5f8aaa\"\n  };\n\n  const bodyTypeDescriptions = {\n    qi_blood:      \"\u9019\u7a2e\u9ad4\u8cea\u985e\u578b\u7684\u4eba\u7531\u65bc\u5143\u6c23\u548c\u9670\u8840\u4e0d\u8db3\uff0c\u6703\u51fa\u73fe\u7cbe\u529b\u4e0d\u4f73\u3001\u75b2\u5026\u3001\u9762\u90e8\u7121\u5149\u91c7\u3001\u6574\u9ad4\u865b\u5f31\u7b49\u75c7\u72c0\u3002\",\n    qi_stagnation: \"\u9019\u7a2e\u9ad4\u8cea\u985e\u578b\u7684\u4eba\u6703\u56e0\u70ba\u9ad4\u5167\u6c23\u8840\u904b\u884c\u53d7\u963b\u6216\u505c\u6eef\u800c\u611f\u5230\u58d3\u529b\u3001\u7dca\u5f35\u3001\u75bc\u75db\u548c\u60c5\u7dd2\u5931\u8861\u3002\",\n    phlegm:        \"\u9019\u7a2e\u9ad4\u8cea\u985e\u578b\u7684\u4eba\u5f80\u5f80\u9ad4\u578b\u8f03\u91cd\uff0c\u6d88\u5316\u7de9\u6162\uff0c\u5bb9\u6613\u767c\u80d6\uff0c\u9ad4\u5167\u5bb9\u6613\u7a4d\u805a\u904e\u591a\u6c34\u5206\u3002\",\n    yin:           \"\u9019\u7a2e\u9ad4\u8cea\u985e\u578b\u7684\u4eba\u7531\u65bc\u7f3a\u4e4f\u6ecb\u6f64\u7684\u80fd\u91cf\uff0c\u5bb9\u6613\u51fa\u73fe\u6f6e\u71b1\u3001\u76dc\u6c57\u3001\u53e3\u4e7e\u7b49\u5167\u71b1\u75c7\u72c0\u3002\",\n    yang:          \"\u9019\u7a2e\u9ad4\u8cea\u985e\u578b\u7684\u4eba\u5e38\u611f\u89ba\u6015\u51b7\uff0c\u5c24\u5176\u662f\u624b\u8173\u51b0\u51b7\u3002\u7531\u65bc\u7f3a\u4e4f\u8db3\u5920\u7684\u967d\u6c23\uff0c\u65b0\u9673\u4ee3\u8b1d\u7de9\u6162\uff0c\u6d3b\u529b\u4e0d\u8db3\u3002\"\n  };\n\n  const bodyTypeCharacteristics = {\n    qi_blood:      \"\u6c23\u8840\u865b\u5f31\u8005\u5bb9\u6613\u51fa\u73fe\u812b\u9aee\u3001\u819a\u8272\u6697\u6c89\u3001\u63d0\u65e9\u8870\u8001\u548c\u4e0d\u5b55\u7b49\u75c7\u72c0\u3002\u7cbe\u795e\u65b9\u9762\uff0c\u4ed6\u5011\u5e38\u611f\u5230\u75b2\u5026\u4e4f\u529b\uff0c\u61c9\u4ed8\u65e5\u5e38\u4e8b\u52d9\u611f\u5230\u529b\u4e0d\u5f9e\u5fc3\u3002\u4ed6\u5011\u4e5f\u53ef\u80fd\u51fa\u73fe\u8a18\u61b6\u529b\u6e1b\u9000\u6216\u5065\u5fd8\u3002\u6c23\u8840\u4e0d\u8db3\u6703\u5c0e\u81f4\u6d88\u5316\u529f\u80fd\u548c\u5404\u81df\u8151\u529f\u80fd\u865b\u5f31\u3002\u9019\u4e9b\u75c7\u72c0\u901a\u5e38\u572835\u6b72\u4ee5\u5f8c\u66f4\u70ba\u660e\u986f\u3002\",\n    qi_stagnation: \"\u6c23\u6eef\u9ad4\u8cea\u5bb9\u6613\u6709\u982d\u75db\u3001\u808c\u8089\u7dca\u5f35\u7b49\u75c7\u72c0\uff0c\u5c24\u5176\u80a9\u9838\u90e8\u4f4d\u3002\u5973\u6027\u53ef\u80fd\u51fa\u73fe\u6708\u7d93\u4e0d\u898f\u5247\u3001\u7d93\u75db\u3001\u7d93\u524d\u75c7\u5019\u7fa4\u548c\u8377\u723e\u8499\u6027\u6697\u7621\u3002\u60c5\u7dd2\u65b9\u9762\uff0c\u4ed6\u5011\u5c0d\u65bc\u5916\u754c\u523a\u6fc0\u5bb9\u6613\u6709\u8f03\u5927\u53cd\u61c9\uff0c\u4e26\u50be\u5411\u65bc\u904e\u5ea6\u601d\u8003\uff0c\u6709\u6642\u6703\u611f\u5230\u6cae\u55aa\u3002\u9577\u671f\u6c23\u8840\u904b\u884c\u4e0d\u66a2\u6703\u589e\u52a0\u60a3\u4e0a\u5b50\u5bae\u808c\u7624\u3001\u4e73\u623f\u7e96\u7dad\u7624\u3001\u7532\u4ea2\u548c\u4e0d\u5b55\u75c7\u7b49\u75be\u75c5\u7684\u98a8\u96aa\u3002\u6162\u6027\u58d3\u529b\u4e5f\u53ef\u80fd\u8a98\u767c\u7cd6\u5c3f\u75c5\u3001\u764c\u75c7\u548c\u81ea\u9ad4\u514d\u75ab\u75be\u75c5\u3002\",\n    phlegm:        \"\u75f0\u6fd5\u9ad4\u8cea\u7684\u4eba\u5e38\u6709\u6d88\u5316\u4e0d\u826f\u3001\u6c34\u816b\u548c\u6e1b\u91cd\u56f0\u96e3\u7b49\u75c7\u72c0\u3002\u7cbe\u795e\u65b9\u9762\uff0c\u4ed6\u5011\u6613\u611f\u5230\u982d\u8166\u660f\u6c89\u3001\u601d\u7dad\u9072\u7de9\u6b20\u6e05\u6670\u3002\u9019\u7a2e\u9ad4\u8cea\u4e5f\u5bb9\u6613\u53cd\u8986\u767c\u4f5c\u6697\u7621\u3001\u9670\u9053\u708e\u6216\u591a\u56ca\u6027\u5375\u5de2\u75c7\u5019\u7fa4\uff08PCOS\uff09\u3002\u9ad4\u5167\u6fd5\u6c23\u904e\u76db\u6703\u963b\u7919\u6c23\u8840\u6d41\u52d5\uff0c\u9577\u671f\u4e0d\u7652\uff0c\u53ef\u80fd\u5c0e\u81f4\u4ee3\u8b1d\u75c7\u5019\u7fa4\u3001\u9ad8\u8840\u58d3\u3001\u7cd6\u5c3f\u75c5\u548c\u9ad8\u81bd\u56fa\u9187\u7b49\u75be\u75c5\u98a8\u96aa\u589e\u52a0\u3002\",\n    yin:           \"\u9670\u865b\u9ad4\u8cea\u5e38\u6709\u53e3\u4e7e\u3001\u76ae\u819a\u4e7e\u71e5\u3001\u773c\u775b\u4e7e\u6f80\u7684\u75c7\u72c0\u3002\u4ed6\u5011\u624b\u8173\u6613\u767c\u71b1\uff0c\u5c24\u5176\u5728\u5348\u5f8c\u6216\u508d\u665a\u6703\u611f\u5230\u71e5\u71b1\u96e3\u8010\u3002\u60c5\u7dd2\u65b9\u9762\uff0c\u4ed6\u5011\u6709\u6642\u6703\u611f\u5230\u7169\u8e81\u7126\u616e\uff0c\u96e3\u4ee5\u653e\u9b06\uff0c\u5bb9\u6613\u5931\u7720\u3002\u9019\u7a2e\u9ad4\u8cea\u5e38\u898b\u65bc\u66f4\u5e74\u671f\u5a66\u5973\u3002\u9577\u671f\u7761\u7720\u4e0d\u8db3\u3001\u9670\u8840\u7f3a\u4e4f\uff0c\u53ef\u80fd\u5c0e\u81f4\u4ee3\u8b1d\u75c7\u5019\u7fa4\u3001\u7cd6\u5c3f\u75c5\u548c\u9ad8\u81bd\u56fa\u9187\u7b49\u75be\u75c5\u98a8\u96aa\u589e\u52a0\u3002\",\n    yang:          \"\u967d\u865b\u9ad4\u8cea\u6613\u6015\u51b7\uff0c\u4e26\u5bb9\u6613\u51fa\u73fe\u6c34\u816b\u3001\u6d88\u5316\u4e0d\u826f\u3001\u591c\u9593\u5c3f\u983b\uff0c\u65e5\u9593\u7cbe\u529b\u4e0d\u8db3\u3002\u9019\u7a2e\u9ad4\u8cea\u901a\u5e38\u4f34\u96a8\u6c23\u8840\u865b\u5f31\u3002\u7cbe\u795e\u65b9\u9762\uff0c\u4ed6\u5011\u5e38\u5e38\u7f3a\u4e4f\u52d5\u529b\uff0c\u61c9\u4ed8\u65e5\u5e38\u4e8b\u52d9\u529b\u4e0d\u5f9e\u5fc3\uff0c\u4e5f\u66f4\u5bb9\u6613\u60a3\u4e0a\u6291\u9b31\u75c7\u3002\u5973\u6027\u53ef\u80fd\u51fa\u73fe\u6708\u7d93\u4e0d\u898f\u5247\u548c\u7d93\u8840\u91cf\u5c11\u3002\u9019\u7a2e\u9ad4\u8cea\u5e38\u898b\u65bc\u4e0d\u5b55\u75c7\u548c\u53cd\u8986\u6d41\u7522\u7684\u60a3\u8005\u3002\u9577\u671f\u7f3a\u4e4f\u5143\u6c23\u548c\u6eab\u6696\u80fd\u91cf\u6703\u5c0e\u81f4\u6c23\u8840\u5faa\u74b0\u4e0d\u826f\u3001\u514d\u75ab\u529b\u4f4e\u4e0b\u3001\u6162\u6027\u75b2\u52de\u3001\u63d0\u65e9\u8870\u8001\u548c\u9aa8\u8cea\u758f\u9b06\u7b49\u554f\u984c\u3002\"\n  };\n\n  const treatmentApproaches = {\n    qi_blood:      \"\u6c23\u8840\u865b\u5f31\u8005\u53ef\u900f\u904e\u4e2d\u85e5\u65b9\u5291\u3001\u91dd\u7078\u3001\u827e\u7078\u88dc\u76ca\u6c23\u8840\uff0c\u5b9a\u671f\u8abf\u7406\u53ef\u4ee5\u63d0\u9ad8\u7cbe\u529b\u6c34\u5e73\u548c\u6574\u9ad4\u6d3b\u529b\u3002\",\n    qi_stagnation: \"\u6c23\u6eef\u8840\u7600\u8005\u53ef\u900f\u904e\u91dd\u7078\u8abf\u7bc0\u6c23\u8840\u904b\u884c\uff0c\u653e\u9b06\u808c\u8089\uff0c\u6539\u5584\u7761\u7720\uff1b\u62d4\u7f50\u7642\u6cd5\u3001\u6309\u6469\u548c\u4e2d\u85e5\u65b9\u5291\u53ef\u4ee5\u758f\u901a\u6c23\u8840\uff0c\u4fc3\u9032\u7d93\u7d61\u901a\u66a2\u3002\",\n    phlegm:        \"\u75f0\u6fd5\u9ad4\u8cea\u8005\u53ef\u900f\u904e\u91dd\u7078\u548c\u827e\u7078\u5316\u75f0\u5229\u6c34\u3002\u4e2d\u85e5\u65b9\u5291\u53ef\u4ee5\u5065\u813e\u795b\u6fd5\uff0c\u4fc3\u9032\u65b0\u9673\u4ee3\u8b1d\u548c\u6d88\u5316\u529f\u80fd\u3002\",\n    yin:           \"\u9670\u865b\u706b\u65fa\u8005\u53ef\u900f\u904e\u4e2d\u85e5\u65b9\u5291\u6ecb\u9670\u990a\u8840\uff0c\u5e73\u606f\u9ad4\u5167\u71e5\u71b1\u4e4b\u706b\uff0c\u914d\u5408\u91dd\u7078\u758f\u901a\u7d93\u7d61\uff0c\u5b89\u795e\u52a9\u7720\u3002\",\n    yang:          \"\u967d\u865b\u5167\u5bd2\u8005\u53ef\u900f\u904e\u827e\u7078\u7642\u6cd5\u3001\u6eab\u91dd\u7078\u6280\u8853\u4ee5\u53ca\u4e2d\u85e5\u8655\u65b9\uff0c\u6eab\u967d\u88dc\u6c23\uff0c\u5065\u813e\u58ef\u814e\u3002\"\n  };\n\n  const lifestyleAdvice = {\n    qi_blood: {\n      dos:   [\n        { emoji:\"\ud83c\udf4e\", text:\"\u9069\u91cf\u98df\u7528\u88dc\u76ca\u53ca\u5bcc\u542b\u71df\u990a\u7684\u98df\u7269\uff0c\u4f8b\u5982\u7d05\u68d7\u3001\u67b8\u675e\u5b50\u3001\u96de\u86cb\u3001\u7626\u8089\" },\n        { emoji:\"\ud83d\ude34\", text:\"\u4fdd\u6301\u5145\u8db3\u4f11\u606f(7-9\u5c0f\u6642\u7761\u7720)\uff0c\u5efa\u8b7011pm\u524d\u5c31\u5be2\uff0c\u8b93\u8eab\u9ad4\u5728\u6700\u4f73\u6642\u9593\u5167\u81ea\u6211\u4fee\u5fa9\" },\n        { emoji:\"\ud83e\uddd8\", text:\"\u9032\u884c\u8f03\u4f4e\u5f37\u5ea6\u7684\u904b\u52d5\uff0c\u4f8b\u5982\u6563\u6b65\u3001\u745c\u73c8\u3001\u666e\u62c9\u63d0\u65af\u6216\u7c21\u55ae\u7684\u6838\u5fc3\u808c\u7fa4\u904b\u52d5\" },\n        { emoji:\"\ud83e\udde5\", text:\"\u4fdd\u6301\u9838\u90e8\u3001\u809a\u81cd\u3001\u8170\u90e8\u548c\u819d\u84cb\u90e8\u4f4d\u6eab\u6696\uff0c\u4e26\u907f\u514d\u5bd2\u51b7\u74b0\u5883\" }\n      ],\n      donts: [\n        { emoji:\"\ud83d\udcbc\", text:\"\u907f\u514d\u904e\u5ea6\u52de\u7d2f\u6216\u904e\u5ea6\u9ad4\u529b\u6d88\u8017\" },\n        { emoji:\"\ud83e\udd75\", text:\"\u907f\u514d\u904e\u5ea6\u51fa\u6c57\u6216\u5f37\u884c\u767c\u6c57\uff0c\u4f8b\u5982\u6851\u62ff\u6216\u9ad8\u6eab\u745c\u4f3d\" },\n        { emoji:\"\ud83c\udf66\", text:\"\u5c11\u5403\u751f\u51b7\u98df\u7269\u548c\u98f2\u6599\uff0c\u4f8b\u5982\u96ea\u7cd5\u3001\u6c99\u5f8b\u3001\u9b5a\u751f\u3001\u904e\u91cf\u751f\u679c\" },\n        { emoji:\"\ud83c\udf7d\ufe0f\", text:\"\u907f\u514d\u7528\u9910\u6642\u9593\u4e0d\u898f\u5f8b\u6216\u65b7\u98df\uff0c\u4f4e\u78b3\/\u751f\u916e\u98f2\u98df\u6cd5\u901a\u5e38\u4e26\u4e0d\u9069\u5408\u60a8\" }\n      ]\n    },\n    qi_stagnation: {\n      dos:   [\n        { emoji:\"\ud83c\udfc3\", text:\"\u4fdd\u6301\u904b\u52d5\u7fd2\u6163\u4ee5\u4fc3\u9032\u6c23\u8840\u5faa\u74b0\" },\n        { emoji:\"\ud83e\uddd8\", text:\"\u7df4\u7fd2\u745c\u73c8\u6216\u975c\u5750\u7b49\u6e1b\u58d3\u6d3b\u52d5\uff0c\u6216\u7c21\u55ae\u6563\u6b65\u4e5f\u6709\u52a9\u758f\u901a\u60c5\u7dd2\" },\n        { emoji:\"\ud83c\udf39\", text:\"\u9069\u91cf\u904b\u7528\u82b3\u9999\u8349\u672c\u4f8b\u5982\u805e\u8584\u8377\u6cb9\u3001\u98f2\u7528\u73ab\u7470\u82b1\u8336\uff0c\u5c24\u5176\u9069\u5408\u5973\u6027\u6708\u7d93\u524d\u6578\u5929\u4f7f\u7528\" },\n        { emoji:\"\ud83d\udcd4\", text:\"\u900f\u904e\u5beb\u65e5\u8a18\u6216\u8207\u670b\u53cb\u4ea4\u8ac7\u7b49\u65b9\u5f0f\u5065\u5eb7\u5730\u8868\u9054\u60c5\u7dd2\uff0c\u907f\u514d\u58d3\u6291\u611f\u53d7\" },\n        { emoji:\"\ud83e\uddb6\", text:\"\u7761\u524d\u4ee5\u6eab\u6c34\u6ce1\u8173\u53ef\u6709\u52a9\u6539\u5584\u7761\u7720\u54c1\u8cea\u548c\u4fc3\u9032\u8840\u6db2\u5faa\u74b0\" }\n      ],\n      donts: [\n        { emoji:\"\ud83c\udf54\", text:\"\u5c11\u5403\u8f9b\u8fa3\u3001\u91cd\u53e3\u5473\u3001\u6cb9\u81a9\u548c\u52a0\u5de5\u98df\u54c1\" },\n        { emoji:\"\u2615\", text:\"\u5118\u91cf\u6e1b\u5c11\u5496\u5561\u56e0\u548c\u9152\u7cbe\u651d\u53d6\" },\n        { emoji:\"\ud83c\udf66\", text:\"\u5c11\u5403\u751f\u51b7\u98df\u7269\u548c\u98f2\u6599\uff0c\u6dbc\u8336\u901a\u5e38\u4e26\u4e0d\u9069\u5408\u60a8\" },\n        { emoji:\"\u23f0\", text:\"\u907f\u514d\u7528\u9910\u6642\u9593\u4e0d\u898f\u5f8b\u6216\u65b7\u98df\" }\n      ]\n    },\n    phlegm: {\n      dos:   [\n        { emoji:\"\ud83c\udf74\", text:\"\u7d30\u56bc\u6162\u56a5\uff08>20\u5206\u9418\uff09\uff0c\u4e26\u4fdd\u6301\u898f\u5f8b\u7684\u7528\u9910\u6642\u9593\" },\n        { emoji:\"\ud83c\udfc3\", text:\"\u4fdd\u6301\u5e36\u6c27\u904b\u52d5\u7fd2\u6163\u4ee5\u4fc3\u9032\u6c23\u8840\u5faa\u74b0\uff0c\u907f\u514d\u4e45\u5750\" },\n        { emoji:\"\ud83c\udf36\ufe0f\", text:\"\u70f9\u98ea\u6642\u9069\u91cf\u904b\u7528\u6eab\u6027\u9999\u6599\uff0c\u4f8b\u5982\u751f\u8591\u548c\u80e1\u6912\" },\n        { emoji:\"\ud83e\uddb6\", text:\"\u7761\u524d\u4ee5\u6eab\u6c34\u6ce1\u8173\u53ef\u6709\u52a9\u65bc\u4fc3\u9032\u8840\u6db2\u5faa\u74b0\uff0c\u4e26\u6e1b\u5c11\u6c34\u816b\" }\n      ],\n      donts: [\n        { emoji:\"\ud83c\udf5f\", text:\"\u5c11\u5403\u904e\u9e79\u3001\u6cb9\u81a9\u548c\u52a0\u5de5\u98df\u54c1\" },\n        { emoji:\"\ud83e\udd5b\", text:\"\u5c11\u5403\u5976\u985e\u88fd\u54c1\u548c\u751c\u54c1\" },\n        { emoji:\"\ud83c\udf19\", text:\"\u907f\u514d\u592a\u591c\u7528\u9910\u6216\u5403\u5bb5\u591c\" },\n        { emoji:\"\ud83e\uddca\", text:\"\u5c11\u5403\u751f\u51b7\u98df\u7269\u3001\u751f\u679c\u548c\u907f\u514d\u904e\u91cf\u98f2\u6c34\uff0c\u6dbc\u8336\u3001\u7da0\u8336\u901a\u5e38\u4e26\u4e0d\u9069\u5408\u60a8\" }\n      ]\n    },\n    yin: {\n      dos:   [\n        { emoji:\"\ud83c\udf50\", text:\"\u9069\u91cf\u98df\u7528\u6e05\u6f64\u6216\u6ecb\u9670\u7684\u98df\u7269\uff0c\u4f8b\u5982\u767e\u5408\u3001\u96ea\u8033\u3001\u68a8\u3001\u9b5a\u8089\u3001\u96de\u86cb\u3001\u9ed1\u829d\u9ebb\" },\n        { emoji:\"\ud83d\ude34\", text:\"\u5efa\u8b7011pm\u524d\u5c31\u5be2\uff0c\u8b93\u8eab\u9ad4\u5728\u6700\u4f73\u6642\u9593\u5167\u81ea\u6211\u4fee\u5fa9\" },\n        { emoji:\"\ud83e\uddd8\", text:\"\u7df4\u7fd2\u4e00\u4e9b\u8212\u7de9\u8eab\u5fc3\u7684\u6d3b\u52d5\uff0c\u4f8b\u5982\u975c\u5750\u548c\u8f15\u67d4\u7684\u745c\u4f3d\" }\n      ],\n      donts: [\n        { emoji:\"\ud83c\udf36\ufe0f\", text:\"\u5c11\u5403\u8f9b\u8fa3\u3001\u6cb9\u70b8\u98df\u54c1\uff0c\u4ee5\u53ca\u7f8a\u8089\u3001\u80e1\u6912\u7b49\u6027\u6eab\u7684\u98df\u54c1\" },\n        { emoji:\"\ud83e\uddd6\", text:\"\u907f\u514d\u904e\u5ea6\u51fa\u6c57\u6216\u5f37\u884c\u767c\u6c57\uff0c\u4f8b\u5982\u6851\u62ff\u6216\u9ad8\u6eab\u745c\u4f3d\" },\n        { emoji:\"\ud83c\udf7a\", text:\"\u907f\u514d\u5438\u7159\u548c\u5c11\u98f2\u9152\" },\n        { emoji:\"\ud83c\udf19\", text:\"\u907f\u514d\u71ac\u591c\u548c\u904e\u5ea6\u52de\u7d2f\" },\n        { emoji:\"\ud83d\udecf\ufe0f\", text:\"\u7761\u524d\u907f\u514d\u523a\u6fc0\u6027\u548c\u5f15\u8d77\u58d3\u529b\u7684\u6d3b\u52d5\" }\n      ]\n    },\n    yang: {\n      dos:   [\n        { emoji:\"\ud83c\udf56\", text:\"\u9069\u91cf\u98df\u7269\u6eab\u71b1\u7684\u98df\u7269\uff0c\u4f8b\u5982\u7f8a\u8089\u3001\u8591\u3001\u8089\u6842\u3001\u6838\u6843\" },\n        { emoji:\"\ud83e\udde5\", text:\"\u4fdd\u6301\u9838\u90e8\u3001\u809a\u81cd\u3001\u8170\u90e8\u548c\u819d\u84cb\u90e8\u4f4d\u6eab\u6696\uff0c\u4e26\u907f\u514d\u5bd2\u51b7\u74b0\u5883\" },\n        { emoji:\"\ud83d\udeb6\", text:\"\u9032\u884c\u8f15\u67d4\u7684\u904b\u52d5\uff08\u5982\u745c\u73c8\u3001\u6838\u5fc3\u808c\u7fa4\u8a13\u7df4\uff09\u4ee5\u6fc0\u767c\u967d\u6c23\uff0c\u4f46\u907f\u514d\u904e\u5ea6\u6d88\u8017\" },\n        { emoji:\"\u2600\ufe0f\", text:\"\u591a\u5230\u6236\u5916\u66ec\u592a\u967d\" },\n        { emoji:\"\u2615\", text:\"\u7fd2\u6163\u98f2\u7528\u6eab\u6c34\u548c\u71b1\u98f2\" }\n      ],\n      donts: [\n        { emoji:\"\ud83e\uddca\", text:\"\u5c11\u5403\u751f\u51b7\u98df\u7269(\u4f8b\u5982\u96ea\u7cd5\u3001\u6c99\u5f8b\u3001\u9b5a\u751f)\u548c\u904e\u91cf\u751f\u679c\uff0c\u6dbc\u8336\u3001\u7da0\u8336\u4e26\u4e0d\u9069\u5408\u60a8\" },\n        { emoji:\"\ud83c\udf19\", text:\"\u907f\u514d\u71ac\u591c\u548c\u904e\u5ea6\u52de\u7d2f\" },\n        { emoji:\"\ud83e\udd75\", text:\"\u907f\u514d\u904e\u5ea6\u51fa\u6c57\u6216\u5f37\u884c\u767c\u6c57\uff0c\u4f8b\u5982\u6851\u62ff\u6216\u9ad8\u6eab\u745c\u4f3d\" },\n        { emoji:\"\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc68\", text:\"\u907f\u514d\u904e\u65bc\u983b\u7e41\u7684\u6027\u751f\u6d3b\" }\n      ]\n    }\n  };\n\n  const maxScorePerType = 20;\n\n  \/* \u2500\u2500\u2500 STATE \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\u2500\u2500 *\/\n  let questions = [];\n  let skipMenstrualQuestions = false;\n  let currentQuestion = -1;\n  let answers = {};\n  let scores = { qi_blood:0, qi_stagnation:0, phlegm:0, yin:0, yang:0 };\n\n  \/* \u2500\u2500\u2500 HELPERS \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 *\/\n  function getOptions(q) {\n    if (q.special === \"bedtime\") return bedtimeOptions;\n    if (q.special === \"age\" || q.special === \"gender\" || q.special === \"menstrual_status\") return q.options;\n    if (q.menstrual) return menstrualOptions;\n    return standardOptions;\n  }\n\n  function logoSVG() {\n    return `<svg class=\"logo-emblem\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n      <circle cx=\"24\" cy=\"24\" r=\"22\" stroke=\"#232F47\" stroke-width=\"1\" fill=\"none\" opacity=\"0.3\"\/>\n      <circle cx=\"24\" cy=\"24\" r=\"14\" stroke=\"#7c9c9a\" stroke-width=\"1\" fill=\"none\" opacity=\"0.5\"\/>\n      <path d=\"M24 8 L24 40 M8 24 L40 24\" stroke=\"#232F47\" stroke-width=\"0.75\" opacity=\"0.2\"\/>\n      <path d=\"M24 14 C28 18 28 22 24 24 C20 22 20 18 24 14Z\" fill=\"#7c9c9a\" opacity=\"0.6\"\/>\n      <path d=\"M24 34 C20 30 20 26 24 24 C28 26 28 30 24 34Z\" fill=\"#232F47\" opacity=\"0.25\"\/>\n    <\/svg>`;\n  }\n\n  function logoBlock() {\n    return `<div class=\"logo-mark\">\n      ${logoSVG()}\n      <span class=\"logo-name\">Ayla Executive Medical<\/span>\n    <\/div>`;\n  }\n\n  \/* \u2500\u2500\u2500 RENDER: WELCOME \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  function renderWelcome() {\n    const config = window.elementSdk?.config || defaultConfig;\n    return `\n    <div class=\"page fade-in\">\n      <div class=\"container\">\n        ${logoBlock()}\n        <div class=\"welcome-hero\">\n          <p class=\"welcome-tagline\">\u4e2d\u91ab\u9ad4\u8cea\u8a55\u4f30<\/p>\n          <h1 class=\"heading-display\">${config.main_title || defaultConfig.main_title}<\/h1>\n          <div class=\"divider\"><div class=\"divider-dot\"><\/div><\/div>\n          <p class=\"body-text welcome-description\">\n            \u9019\u9805\u8a55\u4f30\u5c07\u70ba\u60a8\u521d\u6b65\u5206\u6790\u500b\u4eba\u9ad4\u8cea\u53ca\u5065\u5eb7\u72c0\u6cc1\u8a55\u7d1a\uff0c\u53ca\u65e9\u89ba\u5bdf\u8eab\u9ad4\u767c\u51fa\u7684\u9810\u8b66\u8a0a\u865f\uff0c\u4e86\u89e3\u6f5b\u5728\u5065\u5eb7\u98a8\u96aa\u3002\u6211\u5011\u4ea6\u6703\u5f15\u5c0e\u60a8\u6839\u64da\u9ad4\u8cea\uff0c\u5728\u751f\u6d3b\u548c\u98f2\u98df\u4e0a\u4f5c\u51fa\u66f4\u5408\u9069\u7684\u9078\u64c7\uff0c\u63d0\u9ad8\u7cbe\u529b\u548c\u751f\u6d3b\u54c1\u8cea\u3002<br\/>This quick quiz will identify your main body type and give a basic health score. It helps you spot early warning signs, understand potential health risks, and empowers you to make smarter daily choices for greater energy, balance, and quality of life. Let's begin your journey! \ud83c\udf3f\n          <\/p>\n          <p class=\"body-text\" style=\"font-style:italic;color:var(--color-accent);margin-bottom:24px;\">\u5fc3\u4e4b\u6240\u5411\uff0c\u975c\u4e4b\u6240\u5c45<\/p>\n          <div style=\"display:flex;justify-content:center;margin-bottom:32px;\">\n            <span class=\"time-badge\">\u23f1 5\u5206\u9418\u8a55\u4f30<\/span>\n          <\/div>\n        <\/div>\n        <button id=\"start-btn\" class=\"btn-primary\">\n          ${config.start_button_text || defaultConfig.start_button_text}\n          <span style=\"opacity:0.6\">\u2192<\/span>\n        <\/button>\n      <\/div>\n    <\/div>`;\n  }\n\n  \/* \u2500\u2500\u2500 RENDER: QUESTION \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  function renderQuestion() {\n    const config = window.elementSdk?.config || defaultConfig;\n    const q = questions[currentQuestion];\n    const options = getOptions(q);\n    const pct = ((currentQuestion + 1) \/ questions.length) * 100;\n\n    return `\n    <div class=\"page fade-in\">\n      <div class=\"container\">\n        ${logoBlock()}\n\n        <div class=\"progress-wrap\">\n          <div class=\"progress-meta\">\n            <span class=\"label\">\u7b2c ${currentQuestion + 1} \u984c \/ \u5171 ${questions.length} \u984c<\/span>\n            <span class=\"label\" style=\"color:var(--color-text-muted)\">${Math.round(pct)}%<\/span>\n          <\/div>\n          <div class=\"progress-track\">\n            <div class=\"progress-fill\" style=\"width:${pct}%\"><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"card\">\n          <p class=\"label\">\u8acb\u9078\u64c7\u6700\u7b26\u5408\u60a8\u60c5\u6cc1\u7684\u7b54\u6848<\/p>\n          <h2 class=\"question-text\">${q.text}<\/h2>\n          <div class=\"options-list\" id=\"options-container\">\n            ${options.map((o, i) => `\n              <button class=\"option-btn\" data-index=\"${i}\">\n                <span class=\"radio-dot\"><\/span>\n                <span class=\"option-label\">${o.text}<\/span>\n              <\/button>\n            `).join('')}\n          <\/div>\n        <\/div>\n\n        ${currentQuestion > 0 ? `\n          <div style=\"margin-top:20px;\">\n            <button id=\"back-btn\" class=\"btn-secondary\">\u2190 \u8fd4\u56de\u4e0a\u4e00\u984c<\/button>\n          <\/div>\n        ` : ''}\n      <\/div>\n    <\/div>`;\n  }\n\n  \/* \u2500\u2500\u2500 RENDER: RESULTS \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  function renderResults() {\n    const config = window.elementSdk?.config || defaultConfig;\n\n    const percentages = Object.entries(scores).map(([type, score]) => ({\n      type, score,\n      percentage: Math.round((score \/ maxScorePerType) * 100)\n    })).sort((a, b) => b.percentage - a.percentage);\n\n    const top3 = percentages.slice(0, 3);\n    const primaryType   = top3[0].type;\n    const secondaryType = top3[1].type;\n\n    const topPct = top3[0].percentage;\n    let grade, gradeLabel, gradeColor, gradeMessage;\n    if (topPct <= 13) {\n      grade=\"A\"; gradeLabel=\"\u6975\u4f73\"; gradeColor=\"#10b981\";\n      gradeMessage=\"\u606d\u559c\uff01\u76ee\u524d\u60a8\u7684\u5065\u5eb7\u72c0\u6cc1\u6975\u4f73\uff0c\u9ad4\u5167\u8f03\u5e73\u8861\u3002\u70ba\u4e86\u4fdd\u6301\u9019\u7a2e\u6700\u4f73\u5065\u5eb7\u72c0\u614b\uff0c\u60a8\u53ef\u9075\u5faa\u4ee5\u4e0b\u751f\u6d3b\u65b9\u5f0f\u5efa\u8b70\uff0c\u7e7c\u7e8c\u4fdd\u6301\u5065\u5eb7\u4e26\u505a\u597d\u9810\u9632\u4fdd\u5065\u5de5\u4f5c\u3002\ud83c\udf3f\";\n    } else if (topPct <= 27) {\n      grade=\"B\"; gradeLabel=\"\u826f\u597d\"; gradeColor=\"#22c55e\";\n      gradeMessage=\"\u4e0d\u932f\uff01\u76ee\u524d\u60a8\u7684\u5065\u5eb7\u72c0\u6cc1\u826f\u597d\uff0c\u53ea\u6709\u4e00\u4e9b\u8f15\u5fae\u7684\u5931\u8861\u3002\u60a8\u53ef\u9075\u5faa\u4ee5\u4e0b\u751f\u6d3b\u65b9\u5f0f\u5efa\u8b70\u4e26\u7dad\u6301\u5065\u5eb7\u7684\u751f\u6d3b\u7fd2\u6163\uff0c\u9032\u4e00\u6b65\u6539\u5584\u5065\u5eb7\u72c0\u6cc1\u3002\ud83c\udf3f\";\n    } else if (topPct <= 49) {\n      grade=\"C\"; gradeLabel=\"\u4e00\u822c\"; gradeColor=\"#eab308\";\n      gradeMessage=\"\u60a8\u7684\u5065\u5eb7\u72c0\u6cc1\u986f\u793a\u5b58\u5728\u4e00\u4e9b\u5931\u8861\uff0c\u9700\u8981\u91cd\u8996\u3002\u9019\u662f\u4e00\u500b\u7a4d\u6975\u4f5c\u51fa\u6539\u8b8a\u7684\u597d\u6a5f\u6703\u3002\u8acb\u67e5\u770b\u4ee5\u4e0b\u9ad4\u8cea\u5206\u6790\u7d50\u679c\u548c\u751f\u6d3b\u65b9\u5f0f\u5efa\u8b70\u3002\ud83c\udf3f\";\n    } else if (topPct <= 79) {\n      grade=\"D\"; gradeLabel=\"\u6b20\u4f73\"; gradeColor=\"#ef4444\";\n      gradeMessage=\"\u60a8\u7684\u8a55\u4f30\u7d50\u679c\u986f\u793a\uff0c\u60a8\u7684\u8eab\u9ad4\u6b63\u5728\u9762\u5c0d\u56b4\u91cd\u7684\u5931\u8861\u554f\u984c\u3002\u73fe\u5728\u63a1\u53d6\u884c\u52d5\u81f3\u95dc\u91cd\u8981\u3002\u5efa\u8b70\u8aee\u8a62\u5177\u5c08\u696d\u8cc7\u683c\u7684\u4e2d\u91ab\u5e2b\u4ee5\u7372\u5f97\u500b\u4eba\u5316\u6cbb\u7642\u3002\ud83c\udf3f\";\n    } else {\n      grade=\"E\"; gradeLabel=\"\u5371\u96aa\"; gradeColor=\"#dc2626\";\n      gradeMessage=\"\u60a8\u7684\u5065\u5eb7\u72c0\u6cc1\u5df2\u986f\u793a\u51fa\u56b4\u91cd\u7684\u5931\u8861\uff0c\u5f71\u97ff\u65e5\u5e38\u751f\u6d3b\u3002\u6211\u5011\u5f37\u70c8\u5efa\u8b70\u60a8\u76e1\u5feb\u8aee\u8a62\u4e2d\u91ab\u5e2b\u3002\ud83c\udf3f\";\n    }\n\n    const allGrades = [\n      {letter:\"A\",label:\"\u6975\u4f73\",color:\"#10b981\"},\n      {letter:\"B\",label:\"\u826f\u597d\",color:\"#22c55e\"},\n      {letter:\"C\",label:\"\u4e00\u822c\",color:\"#eab308\"},\n      {letter:\"D\",label:\"\u6b20\u4f73\",color:\"#ef4444\"},\n      {letter:\"E\",label:\"\u5371\u96aa\",color:\"#dc2626\"}\n    ];\n\n    const genderAnswer = answers[1];\n    const isMale = genderAnswer === 1;\n\n    const programsHTML = isMale ? `\n      <a href=\"https:\/\/ayla.com.hk\/programs\/detox-medical-service\/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"program-card\">\n        <img decoding=\"async\" src=\"https:\/\/ayla.com.hk\/wp-content\/uploads\/2025\/05\/Ayla-Clinic-1-1536x864.jpg\" alt=\"\u500b\u4eba\u5316\u8eab\u5fc3\u8abf\u990a\u8a08\u5283\" loading=\"lazy\" onerror=\"this.style.height='80px';this.style.background='var(--color-gold)'\">\n        <div class=\"program-card-body\">\n          <p class=\"label\" style=\"margin-bottom:4px\">\u63a8\u85a6\u7642\u7a0b<\/p>\n          <p class=\"program-card-title\">\u500b\u4eba\u5316\u8eab\u5fc3\u8abf\u990a\u8a08\u5283<\/p>\n        <\/div>\n      <\/a>` : `\n      <a href=\"https:\/\/ayla.com.hk\/programs\/face-acupuncture\/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"program-card\">\n        <img decoding=\"async\" src=\"https:\/\/ayla.com.hk\/wp-content\/uploads\/2025\/06\/F.A.C.E.-face-acupuncture%E4%B8%AD%E9%86%AB%E7%BE%8E%E9%A1%8F%E9%87%9D-1024x726.webp\" alt=\"F.A.C.E.\u4e2d\u91ab\u7f8e\u984f\u91dd\" loading=\"lazy\" onerror=\"this.style.height='80px';this.style.background='var(--color-gold)'\">\n        <div class=\"program-card-body\">\n          <p class=\"label\" style=\"margin-bottom:4px\">\u63a8\u85a6\u7642\u7a0b<\/p>\n          <p class=\"program-card-title\">F.A.C.E. \u4e2d\u91ab\u7f8e\u984f\u91dd<\/p>\n        <\/div>\n      <\/a>\n      <a href=\"https:\/\/ayla.com.hk\/programs\/gynecology\/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"program-card\">\n        <img decoding=\"async\" src=\"https:\/\/ayla.com.hk\/wp-content\/uploads\/2025\/05\/55fe8e09-1024x674.jpg\" alt=\"\u5a66\u79d1\u7d9c\u5408\u5065\u5eb7\u7ba1\u7406\" loading=\"lazy\" onerror=\"this.style.height='80px';this.style.background='var(--color-gold)'\">\n        <div class=\"program-card-body\">\n          <p class=\"label\" style=\"margin-bottom:4px\">\u63a8\u85a6\u7642\u7a0b<\/p>\n          <p class=\"program-card-title\">\u5a66\u79d1\u7d9c\u5408\u5065\u5eb7\u7ba1\u7406<\/p>\n        <\/div>\n      <\/a>`;\n\n    return `\n    <div class=\"page fade-in\">\n      <div class=\"container stack-lg\">\n        ${logoBlock()}\n\n        <!-- Grade Card -->\n        <div class=\"card\" style=\"text-align:center;\">\n          <p class=\"label\" style=\"margin-bottom:20px;\">\u60a8\u7684\u5065\u5eb7\u8a55\u7d1a<\/p>\n          <div class=\"grade-ring\" style=\"background:${gradeColor};\">${grade}<\/div>\n          <p style=\"font-family:var(--font-heading);font-size:22px;letter-spacing:0.1em;color:${gradeColor};margin-bottom:4px;\">${gradeLabel}<\/p>\n          <p class=\"body-text\" style=\"font-size:12px;margin-bottom:16px;\">\u4ee5\u4e0a\u8a55\u7d1a\u662f\u6839\u64da\u60a8\u7684\u6e2c\u8a66\u7d50\u679c\u8a55\u4f30<\/p>\n\n          <div class=\"grade-row\">\n            ${allGrades.map(g => `\n              <div class=\"grade-pip ${g.letter === grade ? '' : 'inactive'}\">\n                <div class=\"grade-pip-circle\" style=\"background:${g.color};\">${g.letter}<\/div>\n                <span class=\"grade-pip-label\">${g.label}<\/span>\n              <\/div>`).join('')}\n          <\/div>\n\n          <div class=\"grade-message\">${gradeMessage}<\/div>\n        <\/div>\n\n        <!-- Top 3 Types -->\n        <div class=\"card\">\n          <p class=\"label\" style=\"margin-bottom:20px;\">\u262f \u60a8\u7684\u524d3\u7a2e\u9ad4\u8cea\u7279\u5fb5<\/p>\n          ${top3.map((t, i) => `\n            <div class=\"type-bar-row\">\n              <div class=\"type-bar-header\">\n                <span class=\"type-bar-name\">${i+1}. ${bodyTypes[t.type]}<\/span>\n                <span class=\"type-bar-pct\" style=\"color:${bodyTypeColors[t.type]};\">${t.percentage}%<\/span>\n              <\/div>\n              <div class=\"type-bar-track\">\n                <div class=\"type-bar-fill\" style=\"width:${t.percentage}%;background:${bodyTypeColors[t.type]};\"><\/div>\n              <\/div>\n            <\/div>`).join('')}\n        <\/div>\n\n        <!-- Primary Type -->\n        <div class=\"card stack\">\n          <div>\n            <p class=\"label\" style=\"margin-bottom:8px;color:${bodyTypeColors[primaryType]};\">\u4e3b\u8981\u9ad4\u8cea<\/p>\n            <h2 class=\"heading-section\" style=\"color:${bodyTypeColors[primaryType]};\">${bodyTypes[primaryType]}<\/h2>\n          <\/div>\n\n          <div class=\"divider\"><div class=\"divider-dot\"><\/div><\/div>\n\n          <p class=\"body-text\">${bodyTypeDescriptions[primaryType]}<\/p>\n\n          <div>\n            <p class=\"label\" style=\"margin-bottom:10px;\">\u5e38\u898b\u75c7\u72c0\u548c\u5065\u5eb7\u98a8\u96aa<\/p>\n            <p class=\"body-text\">${bodyTypeCharacteristics[primaryType]}<\/p>\n          <\/div>\n\n          <div>\n            <p class=\"label\" style=\"margin-bottom:14px;\">\u751f\u6d3b\u548c\u98f2\u98df\u5efa\u8b70<\/p>\n\n            <p style=\"font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:#10b981;font-weight:500;margin-bottom:10px;\">\u2713 \u5efa\u8b70<\/p>\n            <ul style=\"list-style:none;margin-bottom:20px;\">\n              ${lifestyleAdvice[primaryType].dos.map(item => `\n                <li class=\"body-text\" style=\"padding-left:28px;position:relative;margin-bottom:8px;\">\n                  <span style=\"position:absolute;left:0;\">${item.emoji}<\/span>${item.text}\n                <\/li>`).join('')}\n            <\/ul>\n\n            <p style=\"font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:#ef4444;font-weight:500;margin-bottom:10px;\">\u2717 \u907f\u514d<\/p>\n            <ul style=\"list-style:none;\">\n              ${lifestyleAdvice[primaryType].donts.map(item => `\n                <li class=\"body-text\" style=\"padding-left:28px;position:relative;margin-bottom:8px;\">\n                  <span style=\"position:absolute;left:0;\">${item.emoji}<\/span>${item.text}\n                <\/li>`).join('')}\n            <\/ul>\n          <\/div>\n\n          <div>\n            <p class=\"label\" style=\"margin-bottom:10px;\">\u5e38\u7528\u7684\u4e2d\u91ab\u6cbb\u7642\u65b9\u6cd5<\/p>\n            <p class=\"body-text\">${treatmentApproaches[primaryType]}<\/p>\n          <\/div>\n\n          <div>\n            <p class=\"label\" style=\"margin-bottom:16px;\">\u60a8\u53ef\u80fd\u9069\u5408\u7684\u7642\u7a0b<\/p>\n            ${programsHTML}\n          <\/div>\n        <\/div>\n\n        <!-- Secondary Type -->\n        <div class=\"card stack\">\n          <div>\n            <p class=\"label\" style=\"margin-bottom:8px;\">\u7b2c\u4e8c\u9ad4\u8cea\u7279\u5fb5<\/p>\n            <h3 class=\"heading-card\" style=\"color:${bodyTypeColors[secondaryType]};\">${bodyTypes[secondaryType]}<\/h3>\n          <\/div>\n          <p class=\"body-text\">\u6211\u5011\u7684\u4eba\u9ad4\u7d50\u69cb\u8907\u96dc\uff0c\u5927\u591a\u6578\u4eba\u8868\u73fe\u51fa\u7684\u90fd\u662f\u4e0d\u540c\u4e2d\u91ab\u9ad4\u8cea\u7684\u7d44\u5408\u3002\u60a8\u7684\u8eab\u9ad4\u75c7\u72c0\u4e5f\u5448\u73fe <strong style=\"color:${bodyTypeColors[secondaryType]};\">${bodyTypes[secondaryType]}<\/strong> \u7684\u7279\u5fb5\u3002${bodyTypeDescriptions[secondaryType]}<\/p>\n\n          <div style=\"background:var(--color-bg);border-radius:var(--radius-md);padding:16px 18px;border-left:3px solid var(--color-gold);\">\n            <p class=\"body-text\" style=\"font-size:12px;\">\u6b64\u9ad4\u8cea\u6e2c\u8a66\u50c5\u4f9b\u521d\u6b65\u8a55\u4f30\u548c\u6559\u80b2\u7528\u9014\uff0c\u4e26\u975e\u91ab\u7642\u8a3a\u65b7\uff0c\u4e5f\u4e0d\u80fd\u53d6\u4ee3\u91ab\u751f\u6216\u4e2d\u91ab\u5e2b\u7684\u5c08\u696d\u8a55\u4f30\u3002\u5982\u60a8\u60f3\u7372\u5f97\u6e96\u78ba\u3001\u6df1\u5165\u7684\u5206\u6790\uff0c\u4ee5\u53ca\u5b89\u5168\u548c\u500b\u4eba\u5316\u7684\u6cbb\u7642\u65b9\u6848\uff0c\u6211\u5011\u5f37\u70c8\u5efa\u8b70\u60a8\u8aee\u8a62\u8a3b\u518a\u4e2d\u91ab\u5e2b\u3002\ud83c\udf3f<\/p>\n          <\/div>\n\n          <a href=\"https:\/\/api.whatsapp.com\/send?phone=85266138163\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn-whatsapp\">\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z\" fill=\"currentColor\"\/><\/svg>\n            \u9810\u7d04\u4e2d\u91ab\u8aee\u8a62\n          <\/a>\n        <\/div>\n\n        <!-- Restart -->\n        <div style=\"text-align:center;padding-top:8px;\">\n          <button id=\"restart-btn\" class=\"btn-secondary\">${config.restart_button_text || defaultConfig.restart_button_text}<\/button>\n        <\/div>\n      <\/div>\n    <\/div>`;\n  }\n\n  \/* \u2500\u2500\u2500 UPDATE UI \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 *\/\n  function updateUI() {\n    const app = document.getElementById('app');\n\n    if (currentQuestion === -1) {\n      app.innerHTML = renderWelcome();\n      document.getElementById('start-btn').addEventListener('click', () => {\n        questions = [...allQuestions];\n        skipMenstrualQuestions = false;\n        currentQuestion = 0;\n        updateUI();\n      });\n\n    } else if (currentQuestion < questions.length) {\n      app.innerHTML = renderQuestion();\n      const q = questions[currentQuestion];\n      const options = getOptions(q);\n\n      document.querySelectorAll('.option-btn').forEach(btn => {\n        btn.addEventListener('click', e => {\n          const idx = parseInt(e.currentTarget.dataset.index);\n          const selected = options[idx];\n\n          \/\/ Undo previous score if re-answering\n          if (answers[currentQuestion] !== undefined && q.type !== \"demographic\") {\n            scores[q.type] -= getOptions(q)[answers[currentQuestion]].score;\n          }\n\n          answers[currentQuestion] = idx;\n\n          \/\/ Handle branching\n          if (q.special === \"gender\") {\n            if (idx === 1 && !skipMenstrualQuestions) {\n              skipMenstrualQuestions = true;\n              questions = allQuestions.filter(x => !x.menstrual && x.special !== \"menstrual_status\");\n            } else if (idx === 0 && skipMenstrualQuestions) {\n              skipMenstrualQuestions = false;\n              questions = [...allQuestions];\n            }\n          }\n          if (q.special === \"menstrual_status\") {\n            if (idx === 2 && !skipMenstrualQuestions) {\n              skipMenstrualQuestions = true;\n              questions = allQuestions.filter(x => !x.menstrual);\n            } else if (idx !== 2 && skipMenstrualQuestions) {\n              skipMenstrualQuestions = false;\n              questions = [...allQuestions];\n            }\n          }\n\n          if (q.type !== \"demographic\") scores[q.type] += selected.score;\n\n          currentQuestion++;\n          updateUI();\n        });\n      });\n\n      if (currentQuestion > 0) {\n        document.getElementById('back-btn')?.addEventListener('click', () => {\n          if (answers[currentQuestion] !== undefined) {\n            const cq = questions[currentQuestion];\n            if (cq.type !== \"demographic\") {\n              scores[cq.type] -= getOptions(cq)[answers[currentQuestion]].score;\n            }\n          }\n          currentQuestion--;\n          updateUI();\n        });\n      }\n\n    } else {\n      app.innerHTML = renderResults();\n      document.getElementById('restart-btn').addEventListener('click', () => {\n        currentQuestion = -1;\n        answers = {};\n        scores = { qi_blood:0, qi_stagnation:0, phlegm:0, yin:0, yang:0 };\n        questions = [];\n        skipMenstrualQuestions = false;\n        updateUI();\n      });\n    }\n  }\n\n  \/* \u2500\u2500\u2500 SDK INIT \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 *\/\n  async function onConfigChange(config) {\n    applyConfigToVars(config);\n    updateUI();\n  }\n\n  if (window.elementSdk) {\n    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange,\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          { get: () => config.background_color  || defaultConfig.background_color,  set: v => { config.background_color  = v; window.elementSdk.setConfig({background_color:v});  applyConfigToVars(config); } },\n          { get: () => config.surface_color     || defaultConfig.surface_color,     set: v => { config.surface_color     = v; window.elementSdk.setConfig({surface_color:v});     applyConfigToVars(config); } },\n          { get: () => config.text_color        || defaultConfig.text_color,        set: v => { config.text_color        = v; window.elementSdk.setConfig({text_color:v});        applyConfigToVars(config); } },\n          { get: () => config.primary_action_color   || defaultConfig.primary_action_color,   set: v => { config.primary_action_color   = v; window.elementSdk.setConfig({primary_action_color:v});   applyConfigToVars(config); } },\n          { get: () => config.secondary_action_color || defaultConfig.secondary_action_color, set: v => { config.secondary_action_color = v; window.elementSdk.setConfig({secondary_action_color:v}); applyConfigToVars(config); } }\n        ],\n        borderables: [],\n        fontEditable: {\n          get: () => config.font_family || defaultConfig.font_family,\n          set: v => { config.font_family = v; window.elementSdk.setConfig({font_family:v}); applyConfigToVars(config); }\n        },\n        fontSizeable: {\n          get: () => config.font_size || defaultConfig.font_size,\n          set: v => { config.font_size = v; window.elementSdk.setConfig({font_size:v}); }\n        }\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        [\"main_title\",          config.main_title          || defaultConfig.main_title],\n        [\"subtitle\",            config.subtitle            || defaultConfig.subtitle],\n        [\"start_button_text\",   config.start_button_text   || defaultConfig.start_button_text],\n        [\"next_button_text\",    config.next_button_text    || defaultConfig.next_button_text],\n        [\"restart_button_text\", config.restart_button_text || defaultConfig.restart_button_text]\n      ])\n    });\n  }\n\n  \/\/ Apply initial tokens and render\n  applyConfigToVars(window.elementSdk?.config || defaultConfig);\n  updateUI();\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1bbdb2e e-con-full e-flex e-con e-parent\" data-id=\"1bbdb2e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2d1be9c e-con-full e-flex e-con e-child\" data-id=\"2d1be9c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-072c2a5 elementor-widget elementor-widget-heading\" data-id=\"072c2a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u70ba\u4ec0\u9ebc\u4e86\u89e3\u500b\u4eba\u9ad4\u8cea\u5f88\u91cd\u8981?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8184b68 e-con-full e-flex e-con e-child\" data-id=\"8184b68\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3acd207 elementor-widget-tablet__width-initial elementor-widget-mobile__width-inherit elementor-widget__width-initial elementor-widget elementor-widget-icon-box\" data-id=\"3acd207\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\t\u4e82\u5403\u4fdd\u5065\u7522\u54c1\u53ef\u80fd\u8d8a\u88dc\u8d8a\u5dee?\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t\u5e02\u9762\u4e0a\u6709\u5404\u7a2e\u4e2d\u91ab\u85e5\u4fdd\u5065\u98df\u54c1\u548c\u7522\u54c1\uff0c\u4f60\u6e05\u695a\u81ea\u5df1\u7684\u9ad4\u8cea\u9069\u5408\u4f7f\u7528\u55ce? \u4f8b\u5982\u5e38\u898b\u7684\u9ed1\u7cd6\u8591\u8336\u3001\u7d05\u68d7\u6c34\uff0c\u4e0d\u9069\u5408\u98f2\u7528\u7684\u8a71\uff0c\u8eab\u9ad4\u53cd\u800c\u6703\u8d8a\u88dc\u8d8a\u5dee? \u9032\u884c\u521d\u6b65\u9ad4\u8cea\u6e2c\u8a66\u53ef\u4ee5\u907f\u514d\u9019\u4e9b\u526f\u4f5c\u7528\u3002\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b1a8623 elementor-widget-tablet__width-initial elementor-widget-mobile__width-inherit elementor-widget__width-initial elementor-widget elementor-widget-icon-box\" data-id=\"b1a8623\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\t\u9ad4\u8cea\u5982\u4f55\u5c0e\u81f4\u9ad4\u91cd\u589e\u9577\u548c\u80a5\u80d6?\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t\u9ad4\u8cea\u548c\u5167\u5206\u6ccc\u5c0d\u65bc\u9ad4\u91cd\u7684\u5f71\u97ff\u53ef\u80fd\u6bd4\u4f60\u60f3\u50cf\u4e2d\u5927\u3002\u70ba\u4f55\u6709\u4e9b\u670b\u53cb\u5403\u5f97\u5f88\u591a\uff0c\u4f46\u4ecd\u80fd\u4fdd\u6301\u7a88\u7a95\u8eab\u578b\uff1f\u6709\u4e9b\u4eba\u537b\u9023\u559d\u6c34\u90fd\u6703\u9577\u80d6\uff0c\u5373\u4f7f\u7bc0\u98df\u4ecd\u7e3d\u662f\u7626\u4e0d\u4e0b\u4f86\uff1f\u9ad4\u8cea\u6e2c\u8a66\u8b93\u4f60\u66f4\u4e86\u89e3\u81ea\u5df1\u7684\u8eab\u9ad4\u3002\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b6585a elementor-widget-tablet__width-initial elementor-widget-mobile__width-inherit elementor-widget__width-initial elementor-widget elementor-widget-icon-box\" data-id=\"4b6585a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\t\u9ad4\u8cea\u6e2c\u8a66\u4e86\u89e3\u75be\u75c5\u7684\u98a8\u96aa\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t\u9ad4\u8cea\u4e26\u975e\u8207\u8eab\u4ff1\u4f86\u4e0d\u53ef\u9006\u8f49\uff0c\u800c\u662f\u96a8\u8457\u98f2\u98df\u548c\u751f\u6d3b\u7fd2\u6163\u5728\u5f8c\u5929\u5f71\u97ff\u4e0b\u5f62\u6210\u7684\u3002\u67d0\u4e9b\u9ad4\u8cea\u7279\u5225\u5bb9\u6613\u60a3\u4e0a\u5a66\u79d1\u75be\u75c5\u3001\u9577\u6697\u7621\u3001\u6c34\u816b\u3002\u9ad4\u8cea\u6e2c\u8a66\u53ef\u4ee5\u52a9\u6211\u5011\u66f4\u6709\u91dd\u5c0d\u6027\u5730\u7ba1\u7406\u5065\u5eb7\u3002\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6f87354 e-con-full e-flex e-con e-parent\" data-id=\"6f87354\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-ba9baae e-con-full e-flex e-con e-child\" data-id=\"ba9baae\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-4fb8b61 e-con-full e-flex e-con e-child\" data-id=\"4fb8b61\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-4e6f945 e-con-full e-flex e-con e-child\" data-id=\"4e6f945\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-36988fb elementor-widget elementor-widget-icon-box\" data-id=\"36988fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h2 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\t\u5c08\u79d1\u670d\u52d9\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h2>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5cb2ec6 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"5cb2ec6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u771f\u6b63\u7684\u5065\u5eb7\u4f86\u81ea\u8eab\u9ad4\u8207\u81ea\u7136\u7684\u548c\u8ae7\u5171\u5b58\u3002\u900f\u904e\u6574\u5168\u7684\u5929\u7136\u6cbb\u7642\u65b9\u6848\uff0c\u6211\u5011\u81f4\u529b\u5354\u52a9\u90fd\u5e02\u4eba\u627e\u56de\u8eab\u5fc3\u7684\u548c\u8ae7\u5e73\u8861\u3002\u6211\u5011\u7684\u6cbb\u7642\u5718\u968a\u64c5\u9577\u7d50\u5408\u591a\u5143\u81ea\u7136\u7642\u6cd5\uff0c\u5305\u62ec\u5c08\u696d\u91dd\u7078\u3001\u4e2d\u8349\u85e5\u53ca\u82b3\u9999\u7642\u6cd5\u3001\u8eab\u5fc3\u8abf\u7406\u3001\u8072\u97f3\u7642\u7652\u7b49\uff0c\u70ba\u6bcf\u4f4d\u5ba2\u4eba\u91cf\u8eab\u6253\u9020\u6700\u9069\u5408\u7684\u7167\u8b77\u65b9\u6848\u3002<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-21d39bc elementor-align-justify elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"21d39bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/ayla.com.hk\/programs\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-angle-right\" viewBox=\"0 0 256 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u4e86\u89e3\u66f4\u591a<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d73d5a5 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"d73d5a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-885459d e-con-full e-flex e-con e-child\" data-id=\"885459d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-368e50f e-con-full e-flex e-con e-child\" data-id=\"368e50f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ff6e914 elementor-widget elementor-widget-heading\" data-id=\"ff6e914\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/ayla.com.hk\/programs\/gynecology\/\">\u5a66\u79d1\u7d9c\u5408\u5065\u5eb7\u4fdd\u990a<\/a><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-48b8d4f e-con-full e-flex e-con e-child\" data-id=\"48b8d4f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8a09dde elementor-widget elementor-widget-heading\" data-id=\"8a09dde\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/ayla.com.hk\/programs\/detox-medical-service\/\">\u500b\u4eba\u5316\u8eab\u5fc3\u8abf\u990a<\/a><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-38b7bd6 e-con-full e-flex e-con e-child\" data-id=\"38b7bd6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ec6e548 elementor-widget elementor-widget-heading\" data-id=\"ec6e548\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/ayla.com.hk\/programs\/face-acupuncture\/\">\u97d3\u5f0f\u4e2d\u91ab\u7f8e\u984f\u91dd<\/a><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u4e86\u89e3\u4f60\u7684\u500b\u4eba\u9ad4\u8cea\u53ca\u75be\u75c5\u98a8\u96aa \u627e\u51fa\u6162\u6027\u75be\u75c5\u548c\u8377\u723e\u8499\u5931\u8abf\u7684\u6839\u6e90 \u5728\u4e2d\u91ab\u7406\u8ad6\u4e2d\uff0c\u4f60\u7368\u7279\u7684\u9ad4\u8cea\u6c7a\u5b9a\u4e86\u4f60\u7684\u8eab\u9ad4\u5c0d\u98f2\u98df\u3001\u58d3 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2372","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u514d\u8cbb\u7db2\u4e0a\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66\u3001\u98f2\u98df\u5efa\u8b70 - Ayla\u6f84\u5fc3\u5eb7\u5ead | \u6162\u6027\u75c5\u5a66\u79d1\u75c5\u8abf\u7406<\/title>\n<meta name=\"description\" content=\"\u4f60\u771f\u7684\u5065\u5eb7\u55ce\uff1f\u5fc3\u7406\u5065\u5eb7\u8207\u8eab\u9ad4\u5065\u5eb7\u662f\u6709\u6975\u5927\u95dc\u806f\uff0c\u7acb\u5373\u900f\u904eAyla Executive Medical\u7684\u300c\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66\u300d\u4e86\u89e3\u5065\u5eb7\u72c0\u6cc1\uff0c\u9f4a\u9f4a\u8a8d\u8b58\u751f\u7406\u5065\u5eb7\u3001\u7cbe\u795e\u5065\u5eb7\u3001\u5973\u6027\u5065\u5eb7\u3001\u5169\u6027\u5065\u5eb7\u7b49\u76f8\u95dc\u8cc7\u8a0a\u3002\u9810\u9632\u52dd\u65bc\u6cbb\u7642\uff0c\u8b93\u6211\u5011\u6b63\u8996\u548c\u7559\u610f\uff0c\u4fbf\u53ef\u4ee5\u6709\u6548\u6e1b\u4f4e\u5e38\u898b\u90fd\u5e02\u75c5\u5e36\u4f86\u7684\u8ca0\u9762\u5f71\u97ff\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ayla.com.hk\/en\/tcm-body-type-quiz\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u514d\u8cbb\u7db2\u4e0a\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66\u3001\u98f2\u98df\u5efa\u8b70 - Ayla\u6f84\u5fc3\u5eb7\u5ead | \u6162\u6027\u75c5\u5a66\u79d1\u75c5\u8abf\u7406\" \/>\n<meta property=\"og:description\" content=\"\u4f60\u771f\u7684\u5065\u5eb7\u55ce\uff1f\u5fc3\u7406\u5065\u5eb7\u8207\u8eab\u9ad4\u5065\u5eb7\u662f\u6709\u6975\u5927\u95dc\u806f\uff0c\u7acb\u5373\u900f\u904eAyla Executive Medical\u7684\u300c\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66\u300d\u4e86\u89e3\u5065\u5eb7\u72c0\u6cc1\uff0c\u9f4a\u9f4a\u8a8d\u8b58\u751f\u7406\u5065\u5eb7\u3001\u7cbe\u795e\u5065\u5eb7\u3001\u5973\u6027\u5065\u5eb7\u3001\u5169\u6027\u5065\u5eb7\u7b49\u76f8\u95dc\u8cc7\u8a0a\u3002\u9810\u9632\u52dd\u65bc\u6cbb\u7642\uff0c\u8b93\u6211\u5011\u6b63\u8996\u548c\u7559\u610f\uff0c\u4fbf\u53ef\u4ee5\u6709\u6548\u6e1b\u4f4e\u5e38\u898b\u90fd\u5e02\u75c5\u5e36\u4f86\u7684\u8ca0\u9762\u5f71\u97ff\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ayla.com.hk\/en\/tcm-body-type-quiz\/\" \/>\n<meta property=\"og:site_name\" content=\"Ayla\u6f84\u5fc3\u5eb7\u5ead\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-07T10:31:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Free Online TCM Body Type Quiz &amp; Diet Advice","description":"Start Healing the Root of Hormonal Imbalance. In Traditional Chinese Medicine, your unique body constitution shapes how your body responds to diet, stress, and the environment \u2014 while revealing your natural tendencies toward certain health imbalances and recurring symptoms.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ayla.com.hk\/en\/tcm-body-type-quiz\/","og_locale":"en_GB","og_type":"article","og_title":"\u514d\u8cbb\u7db2\u4e0a\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66\u3001\u98f2\u98df\u5efa\u8b70 - Ayla\u6f84\u5fc3\u5eb7\u5ead | \u6162\u6027\u75c5\u5a66\u79d1\u75c5\u8abf\u7406","og_description":"\u4f60\u771f\u7684\u5065\u5eb7\u55ce\uff1f\u5fc3\u7406\u5065\u5eb7\u8207\u8eab\u9ad4\u5065\u5eb7\u662f\u6709\u6975\u5927\u95dc\u806f\uff0c\u7acb\u5373\u900f\u904eAyla Executive Medical\u7684\u300c\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66\u300d\u4e86\u89e3\u5065\u5eb7\u72c0\u6cc1\uff0c\u9f4a\u9f4a\u8a8d\u8b58\u751f\u7406\u5065\u5eb7\u3001\u7cbe\u795e\u5065\u5eb7\u3001\u5973\u6027\u5065\u5eb7\u3001\u5169\u6027\u5065\u5eb7\u7b49\u76f8\u95dc\u8cc7\u8a0a\u3002\u9810\u9632\u52dd\u65bc\u6cbb\u7642\uff0c\u8b93\u6211\u5011\u6b63\u8996\u548c\u7559\u610f\uff0c\u4fbf\u53ef\u4ee5\u6709\u6548\u6e1b\u4f4e\u5e38\u898b\u90fd\u5e02\u75c5\u5e36\u4f86\u7684\u8ca0\u9762\u5f71\u97ff\u3002","og_url":"https:\/\/ayla.com.hk\/en\/tcm-body-type-quiz\/","og_site_name":"Ayla\u6f84\u5fc3\u5eb7\u5ead","article_modified_time":"2026-04-07T10:31:54+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ayla.com.hk\/tcm-body-type-quiz\/","url":"https:\/\/ayla.com.hk\/tcm-body-type-quiz\/","name":"Free Online TCM Body Type Quiz &amp; Diet Advice","isPartOf":{"@id":"https:\/\/ayla.com.hk\/#website"},"datePublished":"2024-08-14T09:25:09+00:00","dateModified":"2026-04-07T10:31:54+00:00","description":"Start Healing the Root of Hormonal Imbalance. In Traditional Chinese Medicine, your unique body constitution shapes how your body responds to diet, stress, and the environment \u2014 while revealing your natural tendencies toward certain health imbalances and recurring symptoms.","breadcrumb":{"@id":"https:\/\/ayla.com.hk\/tcm-body-type-quiz\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ayla.com.hk\/tcm-body-type-quiz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ayla.com.hk\/tcm-body-type-quiz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ayla.com.hk\/"},{"@type":"ListItem","position":2,"name":"\u514d\u8cbb\u7db2\u4e0a\u4e2d\u91ab\u9ad4\u8cea\u6e2c\u8a66\u3001\u98f2\u98df\u5efa\u8b70"}]},{"@type":"WebSite","@id":"https:\/\/ayla.com.hk\/#website","url":"https:\/\/ayla.com.hk\/","name":"Ayla Executive Medical functional medicine & integrative medical clinic","description":"\u9285\u947c\u7063\u6574\u5408\u5f0f\u8eab\u5fc3\u9748\u5065\u5eb7\u4e2d\u5fc3","publisher":{"@id":"https:\/\/ayla.com.hk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ayla.com.hk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/ayla.com.hk\/#organization","name":"Ayla Executive Medical functional medicine & integrative medical clinic","url":"https:\/\/ayla.com.hk\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/ayla.com.hk\/#\/schema\/logo\/image\/","url":"https:\/\/staging.ayla.com.hk\/wp-content\/uploads\/2023\/03\/logo-012.webp","contentUrl":"https:\/\/staging.ayla.com.hk\/wp-content\/uploads\/2023\/03\/logo-012.webp","width":1500,"height":613,"caption":"Ayla Executive Medical functional medicine & integrative medical clinic"},"image":{"@id":"https:\/\/ayla.com.hk\/#\/schema\/logo\/image\/"}}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ayla.com.hk\/en\/wp-json\/wp\/v2\/pages\/2372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ayla.com.hk\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ayla.com.hk\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ayla.com.hk\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/ayla.com.hk\/en\/wp-json\/wp\/v2\/comments?post=2372"}],"version-history":[{"count":67,"href":"https:\/\/ayla.com.hk\/en\/wp-json\/wp\/v2\/pages\/2372\/revisions"}],"predecessor-version":[{"id":9688,"href":"https:\/\/ayla.com.hk\/en\/wp-json\/wp\/v2\/pages\/2372\/revisions\/9688"}],"wp:attachment":[{"href":"https:\/\/ayla.com.hk\/en\/wp-json\/wp\/v2\/media?parent=2372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}