{"id":1948,"date":"2025-12-07T16:16:47","date_gmt":"2025-12-07T08:16:47","guid":{"rendered":"https:\/\/www.funpt.cn\/?page_id=1948"},"modified":"2025-12-07T22:04:51","modified_gmt":"2025-12-07T14:04:51","slug":"fms%e5%8a%9f%e8%83%bd%e6%80%a7%e5%8a%a8%e4%bd%9c%e7%ad%9b%e6%9f%a5%e7%b3%bb%e7%bb%9f","status":"publish","type":"page","link":"https:\/\/www.funpt.cn\/?page_id=1948","title":{"rendered":"FMS\u529f\u80fd\u6027\u52a8\u4f5c\u7b5b\u67e5\u7cfb\u7edf"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1948\" class=\"elementor elementor-1948\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8835d92 e-flex e-con-boxed e-con e-parent\" data-id=\"8835d92\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5ecbcda elementor-widget elementor-widget-html\" data-id=\"5ecbcda\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"zh-CN\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>FMS\u529f\u80fd\u6027\u8fd0\u52a8\u7b5b\u67e5\u6d4b\u8bd5\u7cfb\u7edf<\/title>\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\r\n    <style>\r\n        :root {\r\n            --primary-color: #2c3e50;\r\n            --secondary-color: #3498db;\r\n            --accent-color: #e74c3c;\r\n            --light-color: #ecf0f1;\r\n            --success-color: #27ae60;\r\n            --warning-color: #f39c12;\r\n            --border-radius: 8px;\r\n            --box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n        }\r\n        \r\n        * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\r\n        }\r\n        \r\n        body {\r\n            background-color: #f5f7fa;\r\n            color: #333;\r\n            line-height: 1.6;\r\n        }\r\n        \r\n        .container {\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n            padding: 20px;\r\n        }\r\n        \r\n        header {\r\n            background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));\r\n            color: white;\r\n            padding: 30px 0;\r\n            border-radius: var(--border-radius);\r\n            margin-bottom: 30px;\r\n            box-shadow: var(--box-shadow);\r\n            text-align: center;\r\n        }\r\n        \r\n        .logo {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin-bottom: 15px;\r\n        }\r\n        \r\n        .logo i {\r\n            font-size: 2.5rem;\r\n            margin-right: 15px;\r\n        }\r\n        \r\n        header h1 {\r\n            font-size: 2.2rem;\r\n            margin-bottom: 10px;\r\n        }\r\n        \r\n        header p {\r\n            font-size: 1.1rem;\r\n            max-width: 800px;\r\n            margin: 0 auto;\r\n            opacity: 0.9;\r\n        }\r\n        \r\n        .main-content {\r\n            display: grid;\r\n            grid-template-columns: 1fr 300px;\r\n            gap: 30px;\r\n        }\r\n        \r\n        @media (max-width: 992px) {\r\n            .main-content {\r\n                grid-template-columns: 1fr;\r\n            }\r\n        }\r\n        \r\n        .test-selection {\r\n            background-color: white;\r\n            border-radius: var(--border-radius);\r\n            padding: 25px;\r\n            box-shadow: var(--box-shadow);\r\n            margin-bottom: 30px;\r\n        }\r\n        \r\n        .test-selection h2 {\r\n            color: var(--primary-color);\r\n            margin-bottom: 20px;\r\n            padding-bottom: 10px;\r\n            border-bottom: 2px solid var(--light-color);\r\n        }\r\n        \r\n        .test-list {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\r\n            gap: 15px;\r\n        }\r\n        \r\n        .test-item {\r\n            background-color: var(--light-color);\r\n            border-radius: var(--border-radius);\r\n            padding: 20px;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            border-left: 4px solid var(--secondary-color);\r\n        }\r\n        \r\n        .test-item:hover {\r\n            transform: translateY(-5px);\r\n            box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);\r\n        }\r\n        \r\n        .test-item.active {\r\n            border-left-color: var(--accent-color);\r\n            background-color: #e8f4fc;\r\n        }\r\n        \r\n        .test-item h3 {\r\n            color: var(--primary-color);\r\n            margin-bottom: 8px;\r\n            font-size: 1.2rem;\r\n        }\r\n        \r\n        .test-item p {\r\n            font-size: 0.9rem;\r\n            color: #666;\r\n            margin-bottom: 10px;\r\n        }\r\n        \r\n        .test-status {\r\n            font-size: 0.8rem;\r\n            color: #666;\r\n        }\r\n        \r\n        .test-content {\r\n            background-color: white;\r\n            border-radius: var(--border-radius);\r\n            padding: 30px;\r\n            box-shadow: var(--box-shadow);\r\n            min-height: 500px;\r\n        }\r\n        \r\n        .test-header {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            margin-bottom: 25px;\r\n            padding-bottom: 15px;\r\n            border-bottom: 2px solid var(--light-color);\r\n        }\r\n        \r\n        .test-header h2 {\r\n            color: var(--primary-color);\r\n        }\r\n        \r\n        .test-number {\r\n            background-color: var(--secondary-color);\r\n            color: white;\r\n            width: 40px;\r\n            height: 40px;\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-weight: bold;\r\n        }\r\n        \r\n        .test-description {\r\n            margin-bottom: 25px;\r\n            line-height: 1.7;\r\n        }\r\n        \r\n        .test-description h3 {\r\n            color: var(--primary-color);\r\n            margin-bottom: 10px;\r\n        }\r\n        \r\n        .scoring-section {\r\n            background-color: #f9f9f9;\r\n            border-radius: var(--border-radius);\r\n            padding: 20px;\r\n            margin: 25px 0;\r\n        }\r\n        \r\n        .scoring-section h3 {\r\n            color: var(--primary-color);\r\n            margin-bottom: 15px;\r\n        }\r\n        \r\n        .score-options {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\r\n            gap: 15px;\r\n            margin-bottom: 20px;\r\n        }\r\n        \r\n        .score-option {\r\n            background-color: white;\r\n            border-radius: var(--border-radius);\r\n            padding: 15px;\r\n            border: 2px solid transparent;\r\n            cursor: pointer;\r\n            transition: all 0.2s ease;\r\n        }\r\n        \r\n        .score-option:hover {\r\n            border-color: var(--secondary-color);\r\n        }\r\n        \r\n        .score-option.selected {\r\n            border-color: var(--accent-color);\r\n            background-color: #ffeaea;\r\n        }\r\n        \r\n        .score-value {\r\n            display: inline-block;\r\n            width: 30px;\r\n            height: 30px;\r\n            background-color: var(--secondary-color);\r\n            color: white;\r\n            border-radius: 50%;\r\n            text-align: center;\r\n            line-height: 30px;\r\n            font-weight: bold;\r\n            margin-right: 10px;\r\n        }\r\n        \r\n        .score-0 .score-value {\r\n            background-color: var(--accent-color);\r\n        }\r\n        \r\n        .score-3 .score-value {\r\n            background-color: var(--success-color);\r\n        }\r\n        \r\n        .score-criteria {\r\n            font-size: 0.9rem;\r\n            color: #555;\r\n            margin-top: 5px;\r\n        }\r\n        \r\n        .bilateral-scoring {\r\n            margin-top: 25px;\r\n        }\r\n        \r\n        .bilateral-scoring h4 {\r\n            color: var(--primary-color);\r\n            margin-bottom: 15px;\r\n        }\r\n        \r\n        .side-scoring {\r\n            display: flex;\r\n            gap: 20px;\r\n            margin-top: 10px;\r\n        }\r\n        \r\n        .side-scoring > div {\r\n            flex: 1;\r\n        }\r\n        \r\n        .side-buttons {\r\n            display: flex;\r\n            gap: 10px;\r\n            margin-top: 10px;\r\n        }\r\n        \r\n        .side-btn {\r\n            padding: 8px 12px;\r\n            border: 1px solid #ddd;\r\n            border-radius: 4px;\r\n            background: white;\r\n            color: #333;\r\n            cursor: pointer;\r\n            min-width: 40px;\r\n        }\r\n        \r\n        .side-btn.selected {\r\n            background-color: #3498db;\r\n            color: white;\r\n            border-color: #3498db;\r\n        }\r\n        \r\n        .clearing-test {\r\n            background-color: #fff8e1;\r\n            border-radius: var(--border-radius);\r\n            padding: 20px;\r\n            margin-top: 25px;\r\n        }\r\n        \r\n        .clearing-test h4 {\r\n            color: var(--primary-color);\r\n            margin-bottom: 10px;\r\n        }\r\n        \r\n        .clearing-buttons {\r\n            display: flex;\r\n            gap: 10px;\r\n            margin-top: 10px;\r\n        }\r\n        \r\n        .clearing-btn {\r\n            padding: 8px 16px;\r\n            border: 1px solid #ddd;\r\n            border-radius: 4px;\r\n            background: white;\r\n            color: #333;\r\n            cursor: pointer;\r\n        }\r\n        \r\n        .clearing-btn.positive {\r\n            background-color: #e74c3c;\r\n            color: white;\r\n            border-color: #e74c3c;\r\n        }\r\n        \r\n        .clearing-btn.negative {\r\n            background-color: #27ae60;\r\n            color: white;\r\n            border-color: #27ae60;\r\n        }\r\n        \r\n        \/* \u53cc\u4fa7\u6392\u9664\u6027\u68c0\u67e5\u8868\u683c\u6837\u5f0f *\/\r\n        .bilateral-clearing-table {\r\n            display: grid;\r\n            grid-template-columns: 1fr 1fr;\r\n            gap: 20px;\r\n            margin-top: 15px;\r\n            max-width: 500px;\r\n        }\r\n        \r\n        .clearing-column {\r\n            background-color: #f8f9fa;\r\n            border-radius: var(--border-radius);\r\n            padding: 15px;\r\n            text-align: center;\r\n            border: 1px solid #e9ecef;\r\n        }\r\n        \r\n        .clearing-column h5 {\r\n            color: var(--primary-color);\r\n            margin-bottom: 15px;\r\n            padding-bottom: 8px;\r\n            border-bottom: 1px solid #dee2e6;\r\n        }\r\n        \r\n        .clearing-btn-group {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 10px;\r\n            margin-top: 10px;\r\n        }\r\n        \r\n        .clearing-table-note {\r\n            grid-column: 1 \/ -1;\r\n            font-size: 0.9em;\r\n            color: #666;\r\n            margin-top: 15px;\r\n            padding-top: 10px;\r\n            border-top: 1px solid #eee;\r\n            text-align: center;\r\n        }\r\n        \r\n        .clearing-table-title {\r\n            grid-column: 1 \/ -1;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 10px;\r\n            margin-bottom: 5px;\r\n        }\r\n        \r\n        .sidebar {\r\n            background-color: white;\r\n            border-radius: var(--border-radius);\r\n            padding: 25px;\r\n            box-shadow: var(--box-shadow);\r\n            height: fit-content;\r\n            position: sticky;\r\n            top: 20px;\r\n        }\r\n        \r\n        .score-summary h3 {\r\n            color: var(--primary-color);\r\n            margin-bottom: 20px;\r\n            padding-bottom: 10px;\r\n            border-bottom: 1px solid var(--light-color);\r\n        }\r\n        \r\n        .score-table {\r\n            width: 100%;\r\n            border-collapse: collapse;\r\n            margin-bottom: 25px;\r\n        }\r\n        \r\n        .score-table th, .score-table td {\r\n            padding: 12px 10px;\r\n            text-align: left;\r\n            border-bottom: 1px solid #eee;\r\n        }\r\n        \r\n        .score-table th {\r\n            background-color: #f8f9fa;\r\n            font-weight: 600;\r\n            color: var(--primary-color);\r\n        }\r\n        \r\n        .score-table tr:hover {\r\n            background-color: #f8f9fa;\r\n        }\r\n        \r\n        .score-cell {\r\n            text-align: center;\r\n            font-weight: bold;\r\n            width: 60px;\r\n        }\r\n        \r\n        .score-0-display {\r\n            color: var(--accent-color);\r\n        }\r\n        \r\n        .score-1-display {\r\n            color: #e67e22;\r\n        }\r\n        \r\n        .score-2-display {\r\n            color: #f1c40f;\r\n        }\r\n        \r\n        .score-3-display {\r\n            color: var(--success-color);\r\n        }\r\n        \r\n        .total-score {\r\n            background-color: #f8f9fa;\r\n            padding: 15px;\r\n            border-radius: var(--border-radius);\r\n            text-align: center;\r\n            margin-top: 20px;\r\n        }\r\n        \r\n        .total-score h4 {\r\n            color: var(--primary-color);\r\n            margin-bottom: 10px;\r\n        }\r\n        \r\n        .total-value {\r\n            font-size: 2.5rem;\r\n            font-weight: bold;\r\n            color: var(--secondary-color);\r\n        }\r\n        \r\n        .buttons {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            margin-top: 30px;\r\n        }\r\n        \r\n        .btn {\r\n            padding: 12px 24px;\r\n            border: none;\r\n            border-radius: var(--border-radius);\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n        \r\n        .btn i {\r\n            margin-right: 8px;\r\n        }\r\n        \r\n        .btn-primary {\r\n            background-color: var(--secondary-color);\r\n            color: white;\r\n        }\r\n        \r\n        .btn-primary:hover {\r\n            background-color: #2980b9;\r\n        }\r\n        \r\n        .btn-secondary {\r\n            background-color: #95a5a6;\r\n            color: white;\r\n        }\r\n        \r\n        .btn-secondary:hover {\r\n            background-color: #7f8c8d;\r\n        }\r\n        \r\n        .btn-accent {\r\n            background-color: var(--accent-color);\r\n            color: white;\r\n        }\r\n        \r\n        .btn-accent:hover {\r\n            background-color: #c0392b;\r\n        }\r\n        \r\n        .correction-btn {\r\n            background-color: #9b59b6;\r\n            color: white;\r\n            border: none;\r\n            padding: 12px 20px;\r\n            border-radius: var(--border-radius);\r\n            cursor: pointer;\r\n            font-size: 1rem;\r\n            margin-top: 20px;\r\n            display: inline-flex;\r\n            align-items: center;\r\n            transition: background-color 0.3s;\r\n            width: 100%;\r\n            justify-content: center;\r\n        }\r\n        \r\n        .correction-btn:hover {\r\n            background-color: #8e44ad;\r\n        }\r\n        \r\n        .correction-btn i {\r\n            margin-right: 8px;\r\n        }\r\n        \r\n        .modal {\r\n            display: none;\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background-color: rgba(0, 0, 0, 0.5);\r\n            z-index: 1000;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n        \r\n        .modal-content {\r\n            background-color: white;\r\n            border-radius: var(--border-radius);\r\n            width: 90%;\r\n            max-width: 500px;\r\n            padding: 30px;\r\n            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);\r\n            position: relative;\r\n        }\r\n        \r\n        .modal-header {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            margin-bottom: 20px;\r\n        }\r\n        \r\n        .modal-header h3 {\r\n            color: var(--primary-color);\r\n        }\r\n        \r\n        .close-modal {\r\n            background: none;\r\n            border: none;\r\n            font-size: 1.5rem;\r\n            cursor: pointer;\r\n            color: #999;\r\n        }\r\n        \r\n        .form-group {\r\n            margin-bottom: 20px;\r\n        }\r\n        \r\n        .form-group label {\r\n            display: block;\r\n            margin-bottom: 8px;\r\n            font-weight: 600;\r\n            color: #555;\r\n        }\r\n        \r\n        .form-control {\r\n            width: 100%;\r\n            padding: 12px;\r\n            border: 1px solid #ddd;\r\n            border-radius: var(--border-radius);\r\n            font-size: 1rem;\r\n        }\r\n        \r\n        .correction-content {\r\n            max-height: 60vh;\r\n            overflow-y: auto;\r\n            padding-right: 10px;\r\n        }\r\n        \r\n        .correction-section {\r\n            background-color: #e8f6f3;\r\n            border-left: 4px solid #1abc9c;\r\n            padding: 15px;\r\n            margin: 15px 0;\r\n            border-radius: 4px;\r\n        }\r\n        \r\n        .correction-section h4 {\r\n            color: #16a085;\r\n            margin-top: 0;\r\n            margin-bottom: 10px;\r\n        }\r\n        \r\n        .correction-exercises {\r\n            padding-left: 20px;\r\n            margin: 10px 0;\r\n        }\r\n        \r\n        .correction-exercises li {\r\n            margin-bottom: 8px;\r\n        }\r\n        \r\n        footer {\r\n            text-align: center;\r\n            margin-top: 50px;\r\n            padding: 20px;\r\n            color: #7f8c8d;\r\n            font-size: 0.9rem;\r\n            border-top: 1px solid #eee;\r\n        }\r\n        \r\n        \/* \u6392\u9664\u6027\u68c0\u67e5\u8868\u683c\u6837\u5f0f *\/\r\n        .exclusion-check-table {\r\n            width: 100%;\r\n            border-collapse: collapse;\r\n            margin-top: 15px;\r\n            background-color: white;\r\n            border-radius: var(--border-radius);\r\n            overflow: hidden;\r\n        }\r\n        \r\n        .exclusion-check-table th,\r\n        .exclusion-check-table td {\r\n            padding: 12px;\r\n            text-align: center;\r\n            border: 1px solid #e9ecef;\r\n        }\r\n        \r\n        .exclusion-check-table th {\r\n            background-color: #f8f9fa;\r\n            font-weight: 600;\r\n            color: var(--primary-color);\r\n        }\r\n        \r\n        .exclusion-check-table td {\r\n            background-color: white;\r\n        }\r\n        \r\n        .exclusion-buttons {\r\n            display: flex;\r\n            gap: 10px;\r\n            justify-content: center;\r\n        }\r\n        \r\n        .exclusion-btn {\r\n            padding: 8px 16px;\r\n            border: 1px solid #ddd;\r\n            border-radius: 4px;\r\n            background: white;\r\n            color: #333;\r\n            cursor: pointer;\r\n            min-width: 80px;\r\n        }\r\n        \r\n        .exclusion-btn.positive {\r\n            background-color: #e74c3c;\r\n            color: white;\r\n            border-color: #e74c3c;\r\n        }\r\n        \r\n        .exclusion-btn.negative {\r\n            background-color: #27ae60;\r\n            color: white;\r\n            border-color: #27ae60;\r\n        }\r\n        \r\n        \/* \u8e1d\u5173\u8282\u6392\u9664\u6027\u6d4b\u8bd5\u7279\u5b9a\u6837\u5f0f *\/\r\n        .ankle-clearing-test {\r\n            background-color: #e8f4f8;\r\n            border-left: 4px solid #3498db;\r\n            margin-top: 15px;\r\n        }\r\n        \r\n        .ankle-clearing-instruction {\r\n            font-size: 0.9em;\r\n            color: #555;\r\n            margin: 10px 0;\r\n            padding: 10px;\r\n            background-color: #f1f8fd;\r\n            border-radius: 4px;\r\n        }\r\n        \r\n        \/* \u589e\u5f3a\u7684\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u8bc4\u4f30\u6837\u5f0f *\/\r\n        .ankle-flexibility-section {\r\n            margin: 10px 0;\r\n        }\r\n        \r\n        .flexibility-options {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 8px;\r\n        }\r\n        \r\n        .flexibility-option {\r\n            display: flex;\r\n            align-items: center;\r\n            padding: 12px;\r\n            border: 2px solid #e0e0e0;\r\n            border-radius: 8px;\r\n            background: white;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            position: relative;\r\n        }\r\n        \r\n        .flexibility-option:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 4px 8px rgba(0,0,0,0.1);\r\n            border-color: #3498db;\r\n        }\r\n        \r\n        .flexibility-option.selected {\r\n            border-color: #3498db;\r\n            background-color: #e8f4fc;\r\n        }\r\n        \r\n        .flexibility-option.selected .flexibility-check {\r\n            opacity: 1;\r\n        }\r\n        \r\n        .flexibility-visual {\r\n            width: 80px;\r\n            height: 60px;\r\n            margin-right: 15px;\r\n            position: relative;\r\n        }\r\n        \r\n        .visual-demo {\r\n            width: 100%;\r\n            height: 100%;\r\n            position: relative;\r\n            background: linear-gradient(to bottom, #f8f9fa, #e9ecef);\r\n            border-radius: 4px;\r\n            overflow: hidden;\r\n        }\r\n        \r\n        .foot-visual {\r\n            position: absolute;\r\n            bottom: 10px;\r\n            left: 20px;\r\n            width: 40px;\r\n            height: 15px;\r\n            background: #95a5a6;\r\n            border-radius: 2px;\r\n        }\r\n        \r\n        .ankle-visual {\r\n            position: absolute;\r\n            bottom: 25px;\r\n            left: 35px;\r\n            width: 10px;\r\n            height: 10px;\r\n            background: #34495e;\r\n            border-radius: 50%;\r\n        }\r\n        \r\n        .knee-visual {\r\n            position: absolute;\r\n            width: 12px;\r\n            height: 12px;\r\n            background: #e74c3c;\r\n            border-radius: 50%;\r\n            transition: left 0.3s ease;\r\n        }\r\n        \r\n        .green-position {\r\n            left: 55px;\r\n            bottom: 45px;\r\n        }\r\n        \r\n        .yellow-position {\r\n            left: 35px;\r\n            bottom: 45px;\r\n        }\r\n        \r\n        .red-position {\r\n            left: 25px;\r\n            bottom: 45px;\r\n        }\r\n        \r\n        .marker-line {\r\n            position: absolute;\r\n            left: 35px;\r\n            top: 10px;\r\n            bottom: 25px;\r\n            width: 2px;\r\n            background: rgba(52, 152, 219, 0.5);\r\n        }\r\n        \r\n        .inner-ankle-marker {\r\n            position: absolute;\r\n            left: 35px;\r\n            top: 30px;\r\n            width: 8px;\r\n            height: 8px;\r\n            background: #3498db;\r\n            border-radius: 50%;\r\n        }\r\n        \r\n        .flexibility-info {\r\n            flex: 1;\r\n        }\r\n        \r\n        .flexibility-label {\r\n            display: block;\r\n            font-weight: bold;\r\n            font-size: 1.1em;\r\n            margin-bottom: 4px;\r\n        }\r\n        \r\n        .green-text { color: #27ae60; }\r\n        .yellow-text { color: #f39c12; }\r\n        .red-text { color: #e74c3c; }\r\n        \r\n        .flexibility-desc {\r\n            display: block;\r\n            font-size: 0.9em;\r\n            color: #555;\r\n            margin-bottom: 2px;\r\n        }\r\n        \r\n        .flexibility-detail {\r\n            display: block;\r\n            font-size: 0.85em;\r\n            color: #777;\r\n            font-style: italic;\r\n        }\r\n        \r\n        .flexibility-check {\r\n            width: 24px;\r\n            height: 24px;\r\n            background: #3498db;\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: white;\r\n            opacity: 0;\r\n            transition: opacity 0.3s ease;\r\n        }\r\n        \r\n        .instruction-grid {\r\n            display: grid;\r\n            grid-template-columns: 1fr;\r\n            gap: 10px;\r\n            margin: 10px 0;\r\n        }\r\n        \r\n        .instruction-item {\r\n            display: flex;\r\n            align-items: flex-start;\r\n            gap: 10px;\r\n            padding: 8px;\r\n            background: #f8f9fa;\r\n            border-radius: 6px;\r\n        }\r\n        \r\n        .color-indicator {\r\n            width: 16px;\r\n            height: 16px;\r\n            border-radius: 50%;\r\n            flex-shrink: 0;\r\n            margin-top: 2px;\r\n        }\r\n        \r\n        .color-indicator.green { background: #27ae60; }\r\n        .color-indicator.yellow { background: #f39c12; }\r\n        .color-indicator.red { background: #e74c3c; }\r\n        \r\n        .instruction-content {\r\n            flex: 1;\r\n            font-size: 0.9em;\r\n            color: #555;\r\n        }\r\n        \r\n        @media (max-width: 768px) {\r\n            .test-list {\r\n                grid-template-columns: 1fr;\r\n            }\r\n            \r\n            .score-options {\r\n                grid-template-columns: 1fr;\r\n            }\r\n            \r\n            .side-scoring {\r\n                flex-direction: column;\r\n                gap: 15px;\r\n            }\r\n            \r\n            .bilateral-clearing-table {\r\n                grid-template-columns: 1fr;\r\n                gap: 15px;\r\n            }\r\n            \r\n            .clearing-table-title {\r\n                text-align: center;\r\n            }\r\n            \r\n            .exclusion-check-table {\r\n                font-size: 0.9em;\r\n            }\r\n            \r\n            .exclusion-buttons {\r\n                flex-direction: column;\r\n            }\r\n            \r\n            .flexibility-option {\r\n                padding: 10px;\r\n            }\r\n            \r\n            .flexibility-visual {\r\n                width: 60px;\r\n                margin-right: 10px;\r\n            }\r\n            \r\n            .flexibility-label {\r\n                font-size: 1em;\r\n            }\r\n            \r\n            .flexibility-desc,\r\n            .flexibility-detail {\r\n                font-size: 0.8em;\r\n            }\r\n            \r\n            .buttons {\r\n                flex-direction: column;\r\n                gap: 10px;\r\n            }\r\n            \r\n            .btn {\r\n                width: 100%;\r\n            }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n    <div class=\"container\">\r\n        <header>\r\n            <div class=\"logo\">\r\n                <i class=\"fas fa-running\"><\/i>\r\n                <div>\r\n                    <h1>FMS\u529f\u80fd\u6027\u8fd0\u52a8\u7b5b\u67e5\u6d4b\u8bd5\u7cfb\u7edf<\/h1>\r\n                    <p>\u57fa\u4e8e FMS Level 1 Manual V2.9 \u6807\u51c6 - \u8bc4\u4f30\u57fa\u672c\u8fd0\u52a8\u6a21\u5f0f\uff0c\u63d0\u4f9b\u9488\u5bf9\u6027\u7ea0\u6b63\u5efa\u8bae<\/p>\r\n                <\/div>\r\n            <\/div>\r\n        <\/header>\r\n        \r\n        <div class=\"main-content\">\r\n            <div>\r\n                <div class=\"test-selection\">\r\n                    <h2><i class=\"fas fa-list\"><\/i> \u6d4b\u8bd5\u9879\u76ee<\/h2>\r\n                    <div class=\"test-list\" id=\"testList\"><\/div>\r\n                <\/div>\r\n                \r\n                <div class=\"test-content\" id=\"testContent\"><\/div>\r\n            <\/div>\r\n            \r\n            <div class=\"sidebar\">\r\n                <div class=\"score-summary\">\r\n                    <h3><i class=\"fas fa-chart-bar\"><\/i> \u8bc4\u5206\u6c47\u603b<\/h3>\r\n                    <table class=\"score-table\" id=\"scoreTable\">\r\n                        <thead>\r\n                            <tr>\r\n                                <th>\u6d4b\u8bd5\u9879\u76ee<\/th>\r\n                                <th>\u5de6\u4fa7<\/th>\r\n                                <th>\u53f3\u4fa7<\/th>\r\n                                <th>\u6700\u7ec8\u5f97\u5206<\/th>\r\n                            <\/tr>\r\n                        <\/thead>\r\n                        <tbody id=\"scoreTableBody\"><\/tbody>\r\n                    <\/table>\r\n                    \r\n                    <div class=\"total-score\">\r\n                        <h4>\u603b\u5206<\/h4>\r\n                        <div class=\"total-value\" id=\"totalScore\">0<\/div>\r\n                        <p>\u6700\u9ad821\u5206 | <span id=\"riskIndicator\">-<\/span><\/p>\r\n                        <button class=\"correction-btn\" id=\"viewCorrectionBtn\">\r\n                            <i class=\"fas fa-dumbbell\"><\/i> \u67e5\u770b\u7efc\u5408\u7ea0\u6b63\u5efa\u8bae\r\n                        <\/button>\r\n                    <\/div>\r\n                <\/div>\r\n                \r\n                <div class=\"buttons\" style=\"margin-top: 20px;\">\r\n                    <button class=\"btn btn-accent\" id=\"saveResultsBtn\">\r\n                        <i class=\"fas fa-save\"><\/i> \u4fdd\u5b58\u7ed3\u679c\r\n                    <\/button>\r\n                    <button class=\"btn btn-primary\" id=\"newClientBtn\">\r\n                        <i class=\"fas fa-user-plus\"><\/i> \u65b0\u5ba2\u6237\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n        \r\n        <footer>\r\n            <p>FMS\u529f\u80fd\u6027\u8fd0\u52a8\u7b5b\u67e5\u7cfb\u7edf &copy; 2023 | \u57fa\u4e8eFunctional Movement Systems Level 1 Manual V2.9 (Nov 2021) \u6807\u51c6<\/p>\r\n        <\/footer>\r\n    <\/div>\r\n    \r\n    <div class=\"modal\" id=\"clientModal\">\r\n        <div class=\"modal-content\">\r\n            <div class=\"modal-header\">\r\n                <h3>\u5ba2\u6237\u4fe1\u606f<\/h3>\r\n                <button class=\"close-modal\" id=\"closeModal\">&times;<\/button>\r\n            <\/div>\r\n            <form id=\"clientForm\">\r\n                <div class=\"form-group\">\r\n                    <label for=\"clientName\">\u59d3\u540d<\/label>\r\n                    <input type=\"text\" id=\"clientName\" class=\"form-control\" required>\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label for=\"clientDate\">\u6d4b\u8bd5\u65e5\u671f<\/label>\r\n                    <input type=\"date\" id=\"clientDate\" class=\"form-control\" required>\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label for=\"clientGender\">\u6027\u522b<\/label>\r\n                    <select id=\"clientGender\" class=\"form-control\" required>\r\n                        <option value=\"\">\u9009\u62e9\u6027\u522b<\/option>\r\n                        <option value=\"male\">\u7537<\/option>\r\n                        <option value=\"female\">\u5973<\/option>\r\n                    <\/select>\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label for=\"clientAge\">\u5e74\u9f84<\/label>\r\n                    <input type=\"number\" id=\"clientAge\" class=\"form-control\" min=\"7\" max=\"100\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label for=\"clientSport\">\u4e3b\u8981\u8fd0\u52a8\/\u6d3b\u52a8<\/label>\r\n                    <input type=\"text\" id=\"clientSport\" class=\"form-control\">\r\n                <\/div>\r\n                <div class=\"buttons\" style=\"margin-top: 30px;\">\r\n                    <button type=\"submit\" class=\"btn btn-primary\" style=\"width: 100%;\">\r\n                        <i class=\"fas fa-check\"><\/i> \u5f00\u59cb\u6d4b\u8bd5\r\n                    <\/button>\r\n                <\/div>\r\n            <\/form>\r\n        <\/div>\r\n    <\/div>\r\n    \r\n    <div class=\"modal\" id=\"correctionModal\">\r\n        <div class=\"modal-content\">\r\n            <div class=\"modal-header\">\r\n                <h3>\u7ea0\u6b63\u8bad\u7ec3\u5efa\u8bae<\/h3>\r\n                <button class=\"close-modal\" id=\"closeCorrectionModal\">&times;<\/button>\r\n            <\/div>\r\n            <div class=\"modal-body\" id=\"correctionBody\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        \/\/ ===================== \u5b8c\u65747\u4e2a\u6d4b\u8bd5\u6570\u636e =====================\r\n        const fmsTests = [\r\n            {\r\n                id: 1,\r\n                name: \"\u6df1\u8e72\",\r\n                fullName: \"\u6df1\u8e72\u8fd0\u52a8\u6a21\u5f0f\",\r\n                purpose: \"\u8bc4\u4f30\u5bf9\u79f0\u7ad9\u7acb\u59ff\u52bf\u4e0b\uff0c\u5168\u8eab\u52a8\u4f5c\u94fe\u7684\u7075\u6d3b\u6027\uff08\u8e1d\u3001\u819d\u3001\u9acb\u3001\u80f8\u690e\uff09\u4e0e\u6838\u5fc3\u7a33\u5b9a\u6027\u3002\u8fd9\u662f\u53d1\u5c55\u6027\u59ff\u52bf\u548c\u57fa\u7840\u8fd0\u52a8\u6a21\u5f0f\u3002\",\r\n                description: \"\u53d7\u8bd5\u8005\u53cc\u624b\u63e1\u6746\u4e3e\u8fc7\u5934\u9876\uff0c\u7f13\u6162\u4e0b\u8e72\u81f3\u6700\u4f4e\u70b9\u3002\u89c2\u5bdf\u811a\u8ddf\u3001\u8eaf\u5e72\u89d2\u5ea6\u3001\u819d\u76d6\u8f68\u8ff9\u548c\u6746\u7684\u4f4d\u7f6e\u3002\",\r\n                scoring: {\r\n                    3: \"\u8eaf\u5e72\u5e73\u884c\u4e8e\u80eb\u9aa8\u6216\u66f4\u76f4\u7acb\uff1b\u80a1\u9aa8\u4f4e\u4e8e\u6c34\u5e73\uff1b\u819d\u76d6\u672a\u5185\u6263\uff1b\u6746\u5728\u811a\u6b63\u4e0a\u65b9\u3002\",\r\n                    2: \"\u540c\u4e0a\uff0c\u4f46\u9700\u811a\u8ddf\u62ac\u8d77\u8865\u507f\u624d\u53ef\u8fbe\u6210\u3002\",\r\n                    1: \"\u8eaf\u5e72\u524d\u503e\u8fc7\u591a\uff1b\u80a1\u9aa8\u672a\u4f4e\u4e8e\u6c34\u5e73\uff1b\u819d\u76d6\u5185\u6263\uff1b\u6746\u4e0d\u5728\u811a\u4e0a\u65b9\u3002\",\r\n                    0: \"\u4efb\u4f55\u90e8\u4f4d\u51fa\u73b0\u75bc\u75db\u3002\"\r\n                },\r\n                bilateral: false,\r\n                clearingTest: false, \/\/ \u6df1\u8e72\u6ca1\u6709\u6392\u9664\u6027\u6d4b\u8bd5\r\n                ankleClearingTest: false,\r\n                currentScore: { \r\n                    final: null,\r\n                },\r\n                corrections: {\r\n                    0: { \r\n                        priority: \"\u533b\u7597\u8f6c\u4ecb\", \r\n                        desc: \"\u6df1\u8e72\u65f6\u51fa\u73b0\u75bc\u75db\u662f\u5371\u9669\u4fe1\u53f7\uff0c\u5fc5\u987b\u4f18\u5148\u7531\u533b\u7597\u4e13\u4e1a\u4eba\u58eb\u8fdb\u884c\u8bc4\u4f30\uff0c\u6392\u9664\u5173\u8282\u6216\u8f6f\u7ec4\u7ec7\u635f\u4f24\u3002\" \r\n                    },\r\n                    1: { \r\n                        priority: \"\u9ad8\", \r\n                        focus: [\"\u8e1d\u80cc\u5c48\", \"\u80f8\u690e\u4f38\u5c55\", \"\u9acb\u5173\u8282\u63a7\u5236\"], \r\n                        exercises: [\r\n                            \"\u6ce1\u6cab\u8f74\u653e\u677e\u5c0f\u817f\u4e09\u5934\u808c\u3001\u80a1\u56db\u5934\u808c\",\r\n                            \"\u9760\u5899\u8e1d\u80cc\u5c48\u6ed1\u52a8\uff08\u819d\u89e6\u5899\uff09\",\r\n                            \"\u4ef0\u5367\u8f6c\u4f53\uff08\u6539\u5584\u80f8\u690e\u65cb\u8f6c\uff09\",\r\n                            \"\u9ad8\u811a\u676f\u7bb1\u5f0f\u6df1\u8e72\uff08\u5b66\u4e60\u9acb\u4e3b\u5bfc\u6a21\u5f0f\uff09\"\r\n                        ] \r\n                    },\r\n                    2: { \r\n                        priority: \"\u4e2d\", \r\n                        focus: [\"\u52a8\u4f5c\u6a21\u5f0f\u5de9\u56fa\", \"\u80f8\u690e\u7075\u6d3b\u6027\", \"\u6838\u5fc3\u7a33\u5b9a\"], \r\n                        exercises: [\r\n                            \"\u9ad8\u811a\u676f\u6df1\u8e72\uff08\u5f3a\u8c03\u80f8\u690e\u633a\u76f4\uff09\",\r\n                            \"\u811a\u8e1d\u7075\u6d3b\u6027\u6301\u7eed\u8bad\u7ec3\",\r\n                            \"\u5e73\u677f\u652f\u6491\uff08\u5f3a\u5316\u524d\u4fa7\u6838\u5fc3\u94fe\uff09\"\r\n                        ] \r\n                    },\r\n                    3: { \r\n                        priority: \"\u4f4e\", \r\n                        desc: \"\u6a21\u5f0f\u826f\u597d\uff0c\u53ef\u5728\u8bad\u7ec3\u4e2d\u7ee7\u7eed\u5f3a\u5316\u4f5c\u4e3a\u70ed\u8eab\u6216\u57fa\u7840\u52a8\u4f5c\uff0c\u6ce8\u610f\u4fdd\u6301\u65e0\u75db\u72b6\u6001\u3002\" \r\n                    }\r\n                }\r\n            },\r\n            {\r\n                id: 2,\r\n                name: \"\u8de8\u680f\u6b65\",\r\n                fullName: \"\u8de8\u680f\u6b65\u8fd0\u52a8\u6a21\u5f0f\",\r\n                purpose: \"\u8bc4\u4f30\u5355\u817f\u7ad9\u7acb\u65f6\u7684\u52a8\u6001\u7a33\u5b9a\u6027\uff0c\u4ee5\u53ca\u8e0f\u6b65\u817f\u7684\u9acb\u5173\u8282\u7075\u6d3b\u6027\uff0c\u6a21\u62df\u6b65\u6001\u4e2d\u7684\u652f\u6491\u76f8\u3002\",\r\n                description: \"\u53d7\u8bd5\u8005\u53cc\u811a\u5e76\u62e2\u7ad9\u7acb\uff0c\u5c06\u6746\u7f6e\u4e8e\u9888\u540e\uff0c\u7f13\u6162\u62ac\u8d77\u4e00\u817f\u8de8\u8fc7\u4e0e\u80eb\u9aa8\u7c97\u9686\u540c\u9ad8\u7684\u680f\u67b6\uff0c\u7528\u811a\u8ddf\u70b9\u5730\u540e\u8fd4\u56de\u3002\",\r\n                scoring: {\r\n                    3: \"\u9acb\u3001\u819d\u3001\u8e1d\u5728\u77e2\u72b6\u9762\u6210\u4e00\u76f4\u7ebf\uff1b\u8170\u690e\u65e0\u6643\u52a8\uff1b\u6746\u4e0e\u680f\u67b6\u5e73\u884c\u3002\",\r\n                    2: \"\u5931\u53bb\u5bf9\u9f50\uff1b\u8170\u690e\u51fa\u73b0\u79fb\u52a8\uff1b\u6746\u4e0e\u680f\u67b6\u4e0d\u5e73\u884c\u3002\",\r\n                    1: \"\u65e0\u6cd5\u8de8\u8fc7\u680f\u67b6\u7ef3\u7d22\uff1b\u5931\u53bb\u5e73\u8861\u3002\",\r\n                    0: \"\u4efb\u4f55\u90e8\u4f4d\u51fa\u73b0\u75bc\u75db\u3002\"\r\n                },\r\n                bilateral: true,\r\n                clearingTest: false,\r\n                ankleClearingTest: false,\r\n                currentScore: { left: null, right: null, final: null },\r\n                corrections: {\r\n                    0: { \r\n                        priority: \"\u533b\u7597\u8f6c\u4ecb\", \r\n                        desc: \"\u8de8\u6b65\u65f6\u75bc\u75db\u9700\u533b\u7597\u8bc4\u4f30\u3002\" \r\n                    },\r\n                    1: { \r\n                        priority: \"\u9ad8\", \r\n                        focus: [\"\u652f\u6491\u817f\u81c0\u4e2d\u808c\u7a33\u5b9a\", \"\u8e0f\u6b65\u817f\u9acb\u5c48\u66f2\u7075\u6d3b\u6027\"], \r\n                        exercises: [\r\n                            \"\u5f39\u529b\u5e26\u4fa7\u5411\u884c\u8d70\uff08\u6fc0\u6d3b\u81c0\u4e2d\u808c\uff09\",\r\n                            \"\u5355\u817f\u786c\u5730\u7ad9\u7acb\uff0830\u79d2\uff09\",\r\n                            \"\u4ef0\u5367\u5355\u817f\u62b1\u819d\uff08\u62c9\u4f38\u5c48\u9acb\u808c\u7fa4\uff09\"\r\n                        ] \r\n                    },\r\n                    2: { \r\n                        priority: \"\u4e2d\", \r\n                        focus: [\"\u52a8\u6001\u5e73\u8861\", \"\u9acb\u5173\u8282\u534f\u8c03\"], \r\n                        exercises: [\r\n                            \"\u5355\u817f\u7f57\u9a6c\u5c3c\u4e9a\u786c\u62c9\uff08\u65e0\u8d1f\u91cd\uff09\",\r\n                            \"\u7ad9\u59ff\u9acb\u5916\u5c55\u6297\u963b\",\r\n                            \"\u5728\u4f4e\u969c\u788d\u7269\u4e0a\u91cd\u590d\u8de8\u680f\u6b65\u7ec3\u4e60\"\r\n                        ] \r\n                    },\r\n                    3: { \r\n                        priority: \"\u4f4e\", \r\n                        desc: \"\u52a8\u6001\u7a33\u5b9a\u6027\u826f\u597d\uff0c\u53ef\u5c06\u5355\u817f\u8bad\u7ec3\u7eb3\u5165\u5e38\u89c4\u8bad\u7ec3\u4ee5\u9884\u9632\u635f\u4f24\u3002\" \r\n                    }\r\n                }\r\n            },\r\n            {\r\n                id: 3,\r\n                name: \"\u76f4\u7ebf\u5f13\u6b65\u8e72\",\r\n                fullName: \"\u76f4\u7ebf\u5f13\u6b65\u8e72\u8fd0\u52a8\u6a21\u5f0f\",\r\n                purpose: \"\u8bc4\u4f30\u5728\u5206\u817f\u59ff\u52bf\u4e0b\uff0c\u9acb\u3001\u819d\u3001\u8e1d\u7684\u7075\u6d3b\u4e0e\u7a33\u5b9a\uff0c\u4ee5\u53ca\u8eaf\u5e72\u7684\u6297\u8fd0\u52a8\u80fd\u529b\u3002\",\r\n                description: \"\u53d7\u8bd5\u8005\u53cc\u811a\u524d\u540e\u6210\u4e00\u76f4\u7ebf\uff08\u8ddd\u79bb\u4e3a\u80eb\u9aa8\u957f\u5ea6\uff09\uff0c\u624b\u6301\u6746\u8d34\u4e8e\u80cc\u540e\u3002\u4e0b\u964d\u81f3\u540e\u819d\u89e6\u78b0\u677f\u5b50\uff0c\u7136\u540e\u8fd4\u56de\u3002\",\r\n                scoring: {\r\n                    3: \"\u6746\u5782\u76f4\u4e14\u63a5\u89e6\u5934\u3001\u80cc\u3001\u9ab6\u9aa8\uff1b\u8eaf\u5e72\u7a33\u5b9a\uff1b\u819d\u89e6\u677f\u4e2d\u5fc3\uff1b\u811a\u672a\u79fb\u52a8\u3002\",\r\n                    2: \"\u6746\u503e\u659c\u6216\u5931\u53bb\u63a5\u89e6\uff1b\u8eaf\u5e72\u6643\u52a8\uff1b\u819d\u672a\u89e6\u4e2d\u5fc3\uff1b\u811a\u79fb\u52a8\u3002\",\r\n                    1: \"\u5931\u53bb\u5e73\u8861\u6216\u65e0\u6cd5\u5b8c\u6210\u3002\",\r\n                    0: \"\u4efb\u4f55\u90e8\u4f4d\u51fa\u73b0\u75bc\u75db\u3002\"\r\n                },\r\n                bilateral: true,\r\n                clearingTest: true,\r\n                ankleClearingTest: true, \/\/ \u76f4\u7ebf\u5f13\u6b65\u8e72\u6709\u8e1d\u5173\u8282\u6392\u9664\u6027\u6d4b\u8bd5\r\n                currentScore: { \r\n                    left: null, \r\n                    right: null, \r\n                    final: null, \r\n                    clearing: null, \/\/ \u76f4\u7ebf\u5f13\u6b65\u8e72\u6574\u4f53\u6392\u9664\u6027\u6d4b\u8bd5\r\n                    ankleClearingLeft: null, \/\/ \u8e1d\u5173\u8282\u5de6\u4fa7\u75bc\u75db\u53cd\u5e94\r\n                    ankleClearingRight: null, \/\/ \u8e1d\u5173\u8282\u53f3\u4fa7\u75bc\u75db\u53cd\u5e94\r\n                    ankleFlexibilityLeft: null, \/\/ \u8e1d\u5173\u8282\u5de6\u4fa7\u7075\u6d3b\u6027\u8bc4\u4f30\r\n                    ankleFlexibilityRight: null \/\/ \u8e1d\u5173\u8282\u53f3\u4fa7\u7075\u6d3b\u6027\u8bc4\u4f30\r\n                },\r\n                corrections: {\r\n                    0: { \r\n                        priority: \"\u533b\u7597\u8f6c\u4ecb\", \r\n                        desc: \"\u5f13\u6b65\u65f6\u75bc\u75db\u9700\u8f6c\u4ecb\u3002\" \r\n                    },\r\n                    1: { \r\n                        priority: \"\u9ad8\", \r\n                        focus: [\"\u540e\u817f\u9acb\u4f38\u5c55\", \"\u524d\u817f\u8e1d\u80cc\u5c48\", \"\u8eaf\u5e72\u7a33\u5b9a\u6027\"], \r\n                        exercises: [\r\n                            \"\u534a\u8dea\u59ff\u5c48\u9acb\u808c\u62c9\u4f38\uff08\u540e\u817f\uff09\",\r\n                            \"\u534a\u8dea\u59ff\u8e1d\u80cc\u5c48\u6ed1\u52a8\uff08\u524d\u817f\uff09\",\r\n                            \"\u5e73\u677f\u652f\u6491\",\r\n                            \"\u8f85\u52a9\u4e0b\u5c0f\u5e45\u5206\u817f\u8e72\"\r\n                        ] \r\n                    },\r\n                    2: { \r\n                        priority: \"\u4e2d\", \r\n                        focus: [\"\u52a8\u4f5c\u63a7\u5236\", \"\u51a0\u72b6\u9762\u7a33\u5b9a\"], \r\n                        exercises: [\r\n                            \"\u9759\u6001\u5206\u817f\u8e72\u4fdd\u6301\uff0830\u79d2\uff09\",\r\n                            \"\u6297\u65cb\u8f6c\u8bad\u7ec3\uff08\u5982\u5e15\u6d1b\u592b\u63a8\uff09\",\r\n                            \"\u6ce1\u6cab\u8f74\u653e\u677e\u80a1\u56db\u5934\u808c\"\r\n                        ] \r\n                    },\r\n                    3: { \r\n                        priority: \"\u4f4e\", \r\n                        desc: \"\u5f13\u6b65\u6a21\u5f0f\u826f\u597d\uff0c\u662f\u4f18\u79c0\u7684\u4e0b\u80a2\u8bad\u7ec3\u52a8\u4f5c\u3002\" \r\n                    }\r\n                }\r\n            },\r\n            {\r\n                id: 4,\r\n                name: \"\u80a9\u90e8\u6d3b\u52a8\u5ea6\",\r\n                fullName: \"\u80a9\u90e8\u590d\u5408\u6d3b\u52a8\u5ea6\",\r\n                purpose: \"\u8bc4\u4f30\u53cc\u80a9\u5728\u76f8\u53cd\u65b9\u5411\u4e0a\u7684\u590d\u5408\u6d3b\u52a8\u8303\u56f4\uff0c\u4ee5\u53ca\u80a9\u80db\u4e0e\u80f8\u690e\u7684\u534f\u8c03\u6027\u3002\",\r\n                description: \"\u53d7\u8bd5\u8005\u53cc\u624b\u63e1\u62f3\uff0c\u540c\u65f6\u5c06\u4e00\u624b\u7ecf\u9888\u540e\u5411\u4e0b\uff0c\u53e6\u4e00\u624b\u7ecf\u8170\u80cc\u4e0a\u4f38\uff0c\u6d4b\u91cf\u4e24\u62f3\u95f4\u6700\u77ed\u8ddd\u79bb\u3002\",\r\n                scoring: {\r\n                    3: \"\u4e24\u62f3\u8ddd\u79bb\u5728\u4e00\u4e2a\u624b\u957f\u4ee5\u5185\u3002\",\r\n                    2: \"\u8ddd\u79bb\u5728\u4e00\u5230\u4e00\u70b9\u4e94\u4e2a\u624b\u957f\u95f4\u3002\",\r\n                    1: \"\u8ddd\u79bb\u8d85\u8fc7\u4e00\u70b9\u4e94\u4e2a\u624b\u957f\u3002\",\r\n                    0: \"\u4efb\u4f55\u90e8\u4f4d\u51fa\u73b0\u75bc\u75db\u3002\"\r\n                },\r\n                bilateral: true,\r\n                clearingTest: true,\r\n                ankleClearingTest: false,\r\n                currentScore: { left: null, right: null, final: null, clearingLeft: null, clearingRight: null },\r\n                corrections: {\r\n                    0: { \r\n                        priority: \"\u533b\u7597\u8f6c\u4ecb\", \r\n                        desc: \"\u80a9\u90e8\u6d3b\u52a8\u51fa\u73b0\u75bc\u75db\u6216\u6e05\u7406\u6d4b\u8bd5\u9633\u6027\uff0c\u5fc5\u987b\u4f18\u5148\u533b\u7597\u8bc4\u4f30\uff0c\u53ef\u80fd\u6d89\u53ca\u80a9\u8896\u6216\u80a9\u5cf0\u4e0b\u95ee\u9898\u3002\" \r\n                    },\r\n                    1: { \r\n                        priority: \"\u9ad8\", \r\n                        focus: [\"\u80f8\u690e\u7075\u6d3b\u6027\", \"\u80a9\u540e\u56ca\u7075\u6d3b\u6027\", \"\u80a9\u80db\u9aa8\u63a7\u5236\"], \r\n                        exercises: [\r\n                            \"\u4ef0\u5367\u6ce1\u6cab\u8f74\u80f8\u690e\u4f38\u5c55\",\r\n                            \"\u4fa7\u5367\u80a9\u540e\u56ca\u62c9\u4f38\",\r\n                            \"\u5899\u89d2\u80f8\u808c\u62c9\u4f38\",\r\n                            \"\u4ef0\u5367\u5730\u677f\u5929\u4f7f\uff08\u6ed1\u52a8\uff09\"\r\n                        ] \r\n                    },\r\n                    2: { \r\n                        priority: \"\u4e2d\", \r\n                        focus: [\"\u80a9\u80db\u9aa8\u540e\u7f29\/\u4e0b\u6c89\", \"\u80f8\u690e\u4f38\u5c55\"], \r\n                        exercises: [\r\n                            \"\u9760\u5899\u5929\u4f7f\u6ed1\u52a8\uff08\u5f3a\u8c03\u80a9\u80db\u63a7\u5236\uff09\",\r\n                            \"\u5f39\u529b\u5e26\u9762\u62c9\",\r\n                            \"YTW\u5b57\u6bcd\u8bad\u7ec3\"\r\n                        ] \r\n                    },\r\n                    3: { \r\n                        priority: \"\u4f4e\", \r\n                        desc: \"\u534f\u8c03\u6027\u826f\u597d\uff0c\u8bad\u7ec3\u4e2d\u6ce8\u610f\u4fdd\u6301\u80a9\u80db\u7684\u7a33\u5b9a\u548c\u63a7\u5236\u3002\" \r\n                    }\r\n                }\r\n            },\r\n            {\r\n                id: 5,\r\n                name: \"\u4e3b\u52a8\u76f4\u817f\u4e0a\u62ac\",\r\n                fullName: \"\u4e3b\u52a8\u76f4\u817f\u4e0a\u62ac\",\r\n                purpose: \"\u8bc4\u4f30\u5206\u817f\u6a21\u5f0f\u4e2d\u7684\u4e3b\u52a8\u9aa8\u76c6\u63a7\u5236\uff0c\u5305\u62ec\u8158\u7ef3\u808c\u7075\u6d3b\u6027\u4e0e\u5bf9\u4fa7\u817f\u7684\u4e3b\u52a8\u4f38\u5c55\u3002\",\r\n                description: \"\u4ef0\u5367\uff0c\u53cc\u819d\u4e0b\u57ab\u677f\u3002\u4fdd\u6301\u4e00\u817f\u4f38\u76f4\u8d34\u4e8e\u677f\uff0c\u4e3b\u52a8\u62ac\u8d77\u53e6\u4e00\u817f\uff0c\u6d4b\u91cf\u8e1d\u5173\u8282\u4f4d\u7f6e\u3002\",\r\n                scoring: {\r\n                    3: \"\u8e1d\u5173\u8282\u5782\u7ebf\u4f4d\u4e8e\u5927\u817f\u4e2d\u90e8\u4e0eASIS\u4e4b\u95f4\u3002\",\r\n                    2: \"\u8e1d\u5173\u8282\u5782\u7ebf\u4f4d\u4e8e\u5927\u817f\u4e2d\u90e8\u4e0e\u819d\u5173\u8282\u7ebf\u4e4b\u95f4\u3002\",\r\n                    1: \"\u8e1d\u5173\u8282\u5782\u7ebf\u4f4e\u4e8e\u819d\u5173\u8282\u7ebf\u3002\",\r\n                    0: \"\u4efb\u4f55\u90e8\u4f4d\u51fa\u73b0\u75bc\u75db\u3002\"\r\n                },\r\n                bilateral: true,\r\n                clearingTest: false,\r\n                ankleClearingTest: false,\r\n                currentScore: { left: null, right: null, final: null },\r\n                corrections: {\r\n                    0: { \r\n                        priority: \"\u533b\u7597\u8f6c\u4ecb\", \r\n                        desc: \"\u62ac\u817f\u65f6\u8170\u80cc\u6216\u817f\u90e8\u75bc\u75db\u9700\u8f6c\u4ecb\u3002\" \r\n                    },\r\n                    1: { \r\n                        priority: \"\u9ad8\", \r\n                        focus: [\"\u8158\u7ef3\u808c\u7075\u6d3b\u6027\", \"\u5bf9\u4fa7\u5c48\u9acb\u808c\u7075\u6d3b\u6027\", \"\u9aa8\u76c6\u540e\u503e\u63a7\u5236\"], \r\n                        exercises: [\r\n                            \"\u4ef0\u5367\u52a8\u6001\u8158\u7ef3\u808c\u62c9\u4f38\uff08\u5f39\u529b\u5e26\u8f85\u52a9\uff09\",\r\n                            \"\u534a\u8dea\u59ff\u5c48\u9acb\u808c\u62c9\u4f38\",\r\n                            \"\u6b7b\u866b\u5b50\u52a8\u4f5c\uff08\u5b66\u4e60\u9aa8\u76c6\u7a33\u5b9a\uff09\"\r\n                        ] \r\n                    },\r\n                    2: { \r\n                        priority: \"\u4e2d\", \r\n                        focus: [\"\u4e3b\u52a8\u8158\u7ef3\u808c\u67d4\u97e7\", \"\u6838\u5fc3\u7a33\u5b9a\"], \r\n                        exercises: [\r\n                            \"\u6539\u826f\u7248\u5355\u817f\u786c\u62c9\uff08\u89e6\u6905\uff09\",\r\n                            \"\u81c0\u6865\uff08\u5f3a\u8c03\u8158\u7ef3\u808c\u53d1\u529b\uff09\",\r\n                            \"\u9759\u6001\u8158\u7ef3\u808c\u62c9\u4f38\"\r\n                        ] \r\n                    },\r\n                    3: { \r\n                        priority: \"\u4f4e\", \r\n                        desc: \"\u4e3b\u52a8\u5206\u817f\u80fd\u529b\u826f\u597d\uff0c\u662f\u8bb8\u591a\u8fd0\u52a8\u6a21\u5f0f\u7684\u57fa\u7840\u3002\" \r\n                    }\r\n                }\r\n            },\r\n            {\r\n                id: 6,\r\n                name: \"\u8eaf\u5e72\u7a33\u5b9a\u4fef\u5367\u6491\",\r\n                fullName: \"\u8eaf\u5e72\u7a33\u5b9a\u4fef\u5367\u6491\",\r\n                purpose: \"\u8bc4\u4f30\u5728\u4e0a\u80a2\u95ed\u5408\u94fe\u8fd0\u52a8\u4e2d\uff0c\u8eaf\u5e72\u5728\u77e2\u72b6\u9762\u62b5\u6297\u4f38\u5c55\u3001\u4fdd\u6301\u521a\u6027\u7684\u53cd\u5e94\u6027\u7a33\u5b9a\u6027\u3002\",\r\n                description: \"\u4fef\u5367\uff0c\u6839\u636e\u6027\u522b\u5c06\u624b\u653e\u5728\u7279\u5b9a\u4f4d\u7f6e\uff08\u7537\uff1a\u989d\u5934\/\u4e0b\u5df4\uff1b\u5973\uff1a\u4e0b\u5df4\/\u9501\u9aa8\uff09\uff0c\u4e00\u6b21\u6027\u5c06\u8eab\u4f53\u4f5c\u4e3a\u4e00\u4e2a\u6574\u4f53\u63a8\u8d77\u3002\",\r\n                scoring: {\r\n                    3: \"\u8eab\u4f53\u6574\u4f53\u62ac\u8d77\u65e0\u6ede\u540e\uff08\u7537\u989d\/\u5973\u988f\uff09\u3002\",\r\n                    2: \"\u8eab\u4f53\u6574\u4f53\u62ac\u8d77\uff08\u7537\u988f\/\u5973\u9501\uff09\u3002\",\r\n                    1: \"\u65e0\u6cd5\u57282\u5206\u624b\u4f4d\u5b8c\u6210\u3002\",\r\n                    0: \"\u4efb\u4f55\u90e8\u4f4d\u51fa\u73b0\u75bc\u75db\u3002\"\r\n                },\r\n                bilateral: false,\r\n                clearingTest: true,\r\n                ankleClearingTest: false,\r\n                currentScore: { final: null, clearing: null },\r\n                corrections: {\r\n                    0: { \r\n                        priority: \"\u533b\u7597\u8f6c\u4ecb\", \r\n                        desc: \"\u4fef\u5367\u6491\u6216\u4f38\u5c55\u6e05\u7406\u6d4b\u8bd5\u51fa\u73b0\u75bc\u75db\uff08\u5c24\u5176\u662f\u8170\u90e8\uff09\uff0c\u9700\u8f6c\u4ecb\u68c0\u67e5\u3002\" \r\n                    },\r\n                    1: { \r\n                        priority: \"\u9ad8\", \r\n                        focus: [\"\u6838\u5fc3\u524d\u4fa7\u6fc0\u6d3b\", \"\u80a9\u80db\u9aa8\u7a33\u5b9a\u6027\", \"\u52a8\u4f5c\u6a21\u5f0f\"], \r\n                        exercises: [\r\n                            \"\u8dea\u59ff\u9ad8\u4f4d\u5e73\u677f\u652f\u6491\uff0830-60\u79d2\uff09\",\r\n                            \"\u8dea\u59ff\u79bb\u5fc3\u4fef\u5367\u6491\",\r\n                            \"\u6b7b\u866b\u5b50\",\r\n                            \"\u4ef0\u5367\u8179\u90e8\u6fc0\u6d3b\"\r\n                        ] \r\n                    },\r\n                    2: { \r\n                        priority: \"\u4e2d\", \r\n                        focus: [\"\u5168\u8eab\u521a\u6027\", \"\u80a9\u80db\u529b\u91cf\"], \r\n                        exercises: [\r\n                            \"\u6807\u51c6\u5e73\u677f\u652f\u6491\u8fdb\u9636\uff08\u62ac\u624b\/\u811a\uff09\",\r\n                            \"\u8dea\u59ff\u6807\u51c6\u4fef\u5367\u6491\",\r\n                            \"\u5f39\u529b\u5e26\u5212\u8239\"\r\n                        ] \r\n                    },\r\n                    3: { \r\n                        priority: \"\u4f4e\", \r\n                        desc: \"\u8eaf\u5e72\u7a33\u5b9a\u6027\u826f\u597d\uff0c\u662f\u529b\u91cf\u8bad\u7ec3\u7684\u91cd\u8981\u57fa\u7840\u3002\" \r\n                    }\r\n                }\r\n            },\r\n            {\r\n                id: 7,\r\n                name: \"\u65cb\u8f6c\u7a33\u5b9a\u6027\",\r\n                fullName: \"\u65cb\u8f6c\u7a33\u5b9a\u6027\",\r\n                purpose: \"\u8bc4\u4f30\u8eaf\u5e72\u5728\u5bf9\u6297\u5bf9\u89d2\u7ebf\u6a21\u5f0f\u8fd0\u52a8\u65f6\u7684\u53cd\u5e94\u6027\u591a\u5e73\u9762\u7a33\u5b9a\u4e0e\u63a7\u5236\u80fd\u529b\u3002\",\r\n                description: \"\u56db\u70b9\u8dea\u59ff\u4e8e\u677f\u4e0a\uff0c\u540c\u65f6\u4f38\u5c55\u540c\u4fa7\u624b\u81c2\u548c\u817f\u81f3\u4e0e\u8eab\u4f53\u5e73\u884c\uff0c\u7136\u540e\u5c48\u66f2\u4f7f\u8098\u819d\u76f8\u89e6\u4e8e\u677f\u4e0a\u65b9\uff0c\u518d\u4f38\u5c55\uff0c\u6700\u540e\u6536\u56de\u3002\",\r\n                scoring: {\r\n                    3: \"\u80fd\u6b63\u786e\u5b8c\u6210\u540c\u4fa7\u52a8\u4f5c\uff0c\u80a2\u4f53\u5728\u677f\u4e0a\u65b9\u89e6\u78b0\u3002\",\r\n                    2: \"\u80fd\u6b63\u786e\u5b8c\u6210\u5bf9\u4fa7\uff08\u5f02\u4fa7\uff09\u52a8\u4f5c\uff0c\u8098\u819d\u5728\u677f\u4e0a\u65b9\u89e6\u78b0\u3002\",\r\n                    1: \"\u65e0\u6cd5\u5b8c\u6210\u5bf9\u4fa7\u52a8\u4f5c\u3002\",\r\n                    0: \"\u4efb\u4f55\u90e8\u4f4d\u51fa\u73b0\u75bc\u75db\u3002\"\r\n                },\r\n                bilateral: true,\r\n                clearingTest: true,\r\n                ankleClearingTest: false,\r\n                currentScore: { left: null, right: null, final: null, clearingLeft: null, clearingRight: null },\r\n                corrections: {\r\n                    0: { \r\n                        priority: \"\u533b\u7597\u8f6c\u4ecb\", \r\n                        desc: \"\u65cb\u8f6c\u6216\u5c48\u66f2\u6e05\u7406\u6d4b\u8bd5\u51fa\u73b0\u75bc\u75db\uff08\u5c24\u5176\u662f\u8170\u90e8\uff09\u9700\u8f6c\u4ecb\u3002\" \r\n                    },\r\n                    1: { \r\n                        priority: \"\u9ad8\", \r\n                        focus: [\"\u57fa\u7840\u6838\u5fc3\u7a33\u5b9a\", \"\u56db\u80a2\u534f\u8c03\"], \r\n                        exercises: [\r\n                            \"\u9759\u6001\u9e1f\u72d7\u5f0f\u4fdd\u6301\uff08\u4f38\u5c55\u4f4d\uff09\",\r\n                            \"\u56db\u70b9\u8dea\u59ff\u9759\u6001\u5e73\u8861\",\r\n                            \"\u4ef0\u5367\u4ea4\u66ff\u811a\u8ddf\u6ed1\u52a8\"\r\n                        ] \r\n                    },\r\n                    2: { \r\n                        priority: \"\u4e2d\", \r\n                        focus: [\"\u5bf9\u89d2\u7ebf\u534f\u8c03\", \"\u6297\u65cb\u8f6c\"], \r\n                        exercises: [\r\n                            \"\u52a8\u6001\u9e1f\u72d7\u5f0f\uff08\u6162\u901f\uff09\",\r\n                            \"\u5e73\u677f\u652f\u6491\u62ac\u624b\",\r\n                            \"\u732b\u9a7c\u5f0f\u6d41\u52a8\"\r\n                        ] \r\n                    },\r\n                    3: { \r\n                        priority: \"\u4f4e\", \r\n                        desc: \"\u65cb\u8f6c\u7a33\u5b9a\u4e0e\u63a7\u5236\u80fd\u529b\u4f18\u79c0\u3002\" \r\n                    }\r\n                }\r\n            }\r\n        ];\r\n\r\n        let currentTestIndex = 0;\r\n        let clientInfo = {\r\n            name: \"\",\r\n            date: new Date().toISOString().split('T')[0],\r\n            gender: \"\",\r\n            age: \"\",\r\n            sport: \"\"\r\n        };\r\n        \r\n        document.addEventListener('DOMContentLoaded', function() {\r\n            document.getElementById('clientModal').style.display = 'flex';\r\n            document.getElementById('clientDate').value = clientInfo.date;\r\n            initTestList();\r\n            updateScoreTable();\r\n            loadTest(currentTestIndex);\r\n            bindEventListeners();\r\n        });\r\n        \r\n        function initTestList() {\r\n            const container = document.getElementById('testList');\r\n            container.innerHTML = '';\r\n            fmsTests.forEach((test, idx) => {\r\n                const item = document.createElement('div');\r\n                item.className = `test-item ${idx === currentTestIndex ? 'active' : ''}`;\r\n                \r\n                let statusText = \"\u672a\u6d4b\u8bd5\";\r\n                if (test.bilateral) {\r\n                    if (test.currentScore.left !== null || test.currentScore.right !== null) {\r\n                        statusText = `\u5de6:${test.currentScore.left !== null ? test.currentScore.left : '-'} \u53f3:${test.currentScore.right !== null ? test.currentScore.right : '-'}`;\r\n                    }\r\n                } else {\r\n                    if (test.currentScore.final !== null) statusText = `\u5f97\u5206:${test.currentScore.final}`;\r\n                }\r\n                \r\n                item.innerHTML = `<h3>${test.name}<\/h3><p>${test.purpose.substring(0, 75)}...<\/p><div class=\"test-status\">\u72b6\u6001: ${statusText}<\/div>`;\r\n                item.onclick = () => { currentTestIndex = idx; loadTest(idx); initTestList(); };\r\n                container.appendChild(item);\r\n            });\r\n        }\r\n\r\n        function loadTest(index) {\r\n            const test = fmsTests[index];\r\n            const contentEl = document.getElementById('testContent');\r\n\r\n            let bilateralHtml = '';\r\n            if (test.bilateral) {\r\n                bilateralHtml = `<div class=\"bilateral-scoring\">\r\n                    <h4>\u53cc\u4fa7\u8bc4\u5206<\/h4><div class=\"side-scoring\">\r\n                        <div><h5>\u5de6\u4fa7\u5f97\u5206<\/h5><div class=\"side-buttons\">${\r\n                            [3,2,1,0].map(s=>`<button class=\"side-btn ${test.currentScore.left===s?'selected':''}\" data-side=\"left\" data-score=\"${s}\">${s}<\/button>`).join('')\r\n                        }<\/div><\/div>\r\n                        <div><h5>\u53f3\u4fa7\u5f97\u5206<\/h5><div class=\"side-buttons\">${\r\n                            [3,2,1,0].map(s=>`<button class=\"side-btn ${test.currentScore.right===s?'selected':''}\" data-side=\"right\" data-score=\"${s}\">${s}<\/button>`).join('')\r\n                        }<\/div><\/div>\r\n                    <\/div><\/div>`;\r\n            }\r\n\r\n            let clearingHtml = '';\r\n            if (test.clearingTest) {\r\n                if (test.id === 4 || test.id === 7) {\r\n                    \/\/ \u80a9\u90e8\u6d3b\u52a8\u5ea6\u548c\u65cb\u8f6c\u7a33\u5b9a\u6027\u7684\u6392\u9664\u6027\u68c0\u67e5 - \u4f7f\u7528\u8868\u683c\u5f62\u5f0f\r\n                    clearingHtml = `<div class=\"clearing-test\">\r\n                        <h4><i class=\"fas fa-stethoscope\"><\/i> \u6392\u9664\u6027\u68c0\u67e5<\/h4>\r\n                        <p>\u68c0\u67e5\u662f\u5426\u5b58\u5728\u75bc\u75db\u53cd\u5e94\u3002\u7ed3\u679c\u4e3a\"\u9633\u6027\"(+)\u8868\u793a\u6709\u75bc\u75db\uff0c\u8be5\u6d4b\u8bd5\u6700\u7ec8\u5f97\u5206\u4e3a0\u3002<\/p>\r\n                        <table class=\"exclusion-check-table\">\r\n                            <thead>\r\n                                <tr>\r\n                                    <th>\u68c0\u67e5\u90e8\u4f4d<\/th>\r\n                                    <th>\u5de6\u4fa7<\/th>\r\n                                    <th>\u53f3\u4fa7<\/th>\r\n                                <\/tr>\r\n                            <\/thead>\r\n                            <tbody>\r\n                                <tr>\r\n                                    <td>\u75bc\u75db\u53cd\u5e94\u68c0\u67e5<\/td>\r\n                                    <td>\r\n                                        <div class=\"exclusion-buttons\">\r\n                                            <button class=\"exclusion-btn ${test.currentScore.clearingLeft===true?'positive':''}\" \r\n                                                data-side=\"left\" data-result=\"positive\" data-type=\"general\">\u9633\u6027(+)<\/button>\r\n                                            <button class=\"exclusion-btn ${test.currentScore.clearingLeft===false?'negative':''}\" \r\n                                                data-side=\"left\" data-result=\"negative\" data-type=\"general\">\u9634\u6027(-)<\/button>\r\n                                        <\/div>\r\n                                    <\/td>\r\n                                    <td>\r\n                                        <div class=\"exclusion-buttons\">\r\n                                            <button class=\"exclusion-btn ${test.currentScore.clearingRight===true?'positive':''}\" \r\n                                                data-side=\"right\" data-result=\"positive\" data-type=\"general\">\u9633\u6027(+)<\/button>\r\n                                            <button class=\"exclusion-btn ${test.currentScore.clearingRight===false?'negative':''}\" \r\n                                                data-side=\"right\" data-result=\"negative\" data-type=\"general\">\u9634\u6027(-)<\/button>\r\n                                        <\/div>\r\n                                    <\/td>\r\n                                <\/tr>\r\n                            <\/tbody>\r\n                        <\/table>\r\n                        <p style=\"font-size:0.9em; margin-top:15px; color:#666;\">\r\n                            <strong>\u6ce8\u610f\uff1a<\/strong>\u6700\u7ec8\u5f97\u5206\uff1a\u53d6\u5de6\u53f3\u4e24\u4fa7\u8f83\u4f4e\u5206\u3002\u82e5\u6392\u9664\u68c0\u67e5\u4efb\u610f\u4e00\u4fa7\u4e3a\u9633\u6027\uff0c\u6700\u7ec8\u5f97\u5206\u4e3a0\u3002\r\n                        <\/p>\r\n                    <\/div>`;\r\n                } else if (test.id === 6) {\r\n                    \/\/ \u8eaf\u5e72\u7a33\u5b9a\u4fef\u5367\u6491\u7684\u6392\u9664\u6027\u68c0\u67e5 - \u53ea\u6709\u6574\u4f53\u68c0\u67e5\r\n                    clearingHtml = `<div class=\"clearing-test\">\r\n                        <h4><i class=\"fas fa-stethoscope\"><\/i> \u6392\u9664\u6027\u68c0\u67e5<\/h4>\r\n                        <p>\u68c0\u67e5\u662f\u5426\u5b58\u5728\u75bc\u75db\u53cd\u5e94\u3002<\/p>\r\n                        <div style=\"text-align: center; margin-top: 15px;\">\r\n                            <h5>\u7ed3\u679c<\/h5>\r\n                            <div style=\"display: inline-flex; gap: 15px; margin-top: 10px;\">\r\n                                <button class=\"clearing-btn ${test.currentScore.clearing===true?'positive': test.currentScore.clearing===false?'negative':''}\" data-result=\"positive\" data-type=\"general\">\u9633\u6027(+)<\/button>\r\n                                <button class=\"clearing-btn ${test.currentScore.clearing===false?'negative': test.currentScore.clearing===true?'positive':''}\" data-result=\"negative\" data-type=\"general\">\u9634\u6027(-)<\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                        <p style=\"font-size:0.9em; margin-top:15px; color:#666;\"><strong>\u6ce8\u610f\uff1a<\/strong>\u7ed3\u679c\u4e3a\"\u9633\u6027\"(+)\u8868\u793a\u6709\u75bc\u75db\uff0c\u8be5\u6d4b\u8bd5\u6700\u7ec8\u5f97\u5206\u4e3a0\u3002<\/p>\r\n                    <\/div>`;\r\n                } else if (test.id === 3) {\r\n                    \/\/ \u76f4\u7ebf\u5f13\u6b65\u8e72\u7684\u6392\u9664\u6027\u68c0\u67e5 - \u5305\u62ec\u6574\u4f53\u548c\u8e1d\u5173\u8282\u6392\u9664\u6027\u6d4b\u8bd5\r\n                    clearingHtml = `<div class=\"clearing-test\">\r\n                        <h4><i class=\"fas fa-stethoscope\"><\/i> \u6392\u9664\u6027\u68c0\u67e5<\/h4>\r\n                        <p>\u68c0\u67e5\u662f\u5426\u5b58\u5728\u75bc\u75db\u53cd\u5e94\u3002\u7ed3\u679c\u4e3a\"\u9633\u6027\"(+)\u8868\u793a\u6709\u75bc\u75db\uff0c\u8be5\u6d4b\u8bd5\u6700\u7ec8\u5f97\u5206\u4e3a0\u3002<\/p>`;\r\n                    \r\n                    \/\/ \u6574\u4f53\u6392\u9664\u6027\u68c0\u67e5\r\n                    clearingHtml += `<div style=\"margin-bottom: 20px;\">\r\n                        <h5>\u6574\u4f53\u75bc\u75db\u53cd\u5e94\u68c0\u67e5<\/h5>\r\n                        <div style=\"display: inline-flex; gap: 15px; margin-top: 10px;\">\r\n                            <button class=\"clearing-btn ${test.currentScore.clearing===true?'positive': test.currentScore.clearing===false?'negative':''}\" data-result=\"positive\" data-type=\"general\">\u9633\u6027(+)<\/button>\r\n                            <button class=\"clearing-btn ${test.currentScore.clearing===false?'negative': test.currentScore.clearing===true?'positive':''}\" data-result=\"negative\" data-type=\"general\">\u9634\u6027(-)<\/button>\r\n                        <\/div>\r\n                    <\/div>`;\r\n                    \r\n                    \/\/ \u8e1d\u5173\u8282\u6392\u9664\u6027\u6d4b\u8bd5\r\n                    if (test.ankleClearingTest) {\r\n                        clearingHtml += `<div class=\"ankle-clearing-test\">\r\n                            <h5><i class=\"fas fa-shoe-prints\"><\/i> \u8e1d\u5173\u8282\u6392\u9664\u6027\u6d4b\u8bd5<\/h5>\r\n                            <div class=\"ankle-clearing-instruction\">\r\n                                <p><strong>\u6d4b\u8bd5\u65b9\u6cd5\uff1a<\/strong>\u8bc4\u4f30\u8e1d\u5173\u8282\u5728\u76f4\u7ebf\u5f13\u6b65\u8e72\u52a8\u4f5c\u4e2d\u662f\u5426\u6709\u75bc\u75db\u53cd\u5e94\u548c\u7075\u6d3b\u6027\u9650\u5236\u3002<\/p>\r\n                                <p><strong>\u6d4b\u91cf\u6807\u51c6\uff1a<\/strong>\u89c2\u5bdf\u819d\u76d6\u76f8\u5bf9\u4e8e\u524d\u817f\u5185\u8e1d\u7684\u4f4d\u7f6e\u3002<\/p>\r\n                            <\/div>\r\n                            \r\n                            <table class=\"exclusion-check-table\">\r\n                                <thead>\r\n                                    <tr>\r\n                                        <th>\u8bc4\u4f30\u7c7b\u578b<\/th>\r\n                                        <th>\u5de6\u4fa7<\/th>\r\n                                        <th>\u53f3\u4fa7<\/th>\r\n                                    <\/tr>\r\n                                <\/thead>\r\n                                <tbody>\r\n                                    <tr>\r\n                                        <td>\u75bc\u75db\u53cd\u5e94<\/td>\r\n                                        <td>\r\n                                            <div class=\"exclusion-buttons\">\r\n                                                <button class=\"exclusion-btn ${test.currentScore.ankleClearingLeft===true?'positive':''}\" \r\n                                                    data-side=\"left\" data-result=\"positive\" data-type=\"ankle-pain\">\u9633\u6027(+)<\/button>\r\n                                                <button class=\"exclusion-btn ${test.currentScore.ankleClearingLeft===false?'negative':''}\" \r\n                                                    data-side=\"left\" data-result=\"negative\" data-type=\"ankle-pain\">\u9634\u6027(-)<\/button>\r\n                                            <\/div>\r\n                                        <\/td>\r\n                                        <td>\r\n                                            <div class=\"exclusion-buttons\">\r\n                                                <button class=\"exclusion-btn ${test.currentScore.ankleClearingRight===true?'positive':''}\" \r\n                                                    data-side=\"right\" data-result=\"positive\" data-type=\"ankle-pain\">\u9633\u6027(+)<\/button>\r\n                                                <button class=\"exclusion-btn ${test.currentScore.ankleClearingRight===false?'negative':''}\" \r\n                                                    data-side=\"right\" data-result=\"negative\" data-type=\"ankle-pain\">\u9634\u6027(-)<\/button>\r\n                                            <\/div>\r\n                                        <\/td>\r\n                                    <\/tr>\r\n                                    <tr>\r\n                                        <td>\u7075\u6d3b\u6027\u8bc4\u4f30<\/td>\r\n                                        <td>\r\n                                            <div class=\"ankle-flexibility-section\" id=\"ankleFlexibilityLeft\">\r\n                                                <div class=\"flexibility-options\">\r\n                                                    <div class=\"flexibility-option ${test.currentScore.ankleFlexibilityLeft==='green'?'selected':''}\" \r\n                                                        data-side=\"left\" data-result=\"green\">\r\n                                                        <div class=\"flexibility-visual\">\r\n                                                            <div class=\"visual-demo\">\r\n                                                                <div class=\"foot-visual\"><\/div>\r\n                                                                <div class=\"ankle-visual\"><\/div>\r\n                                                                <div class=\"knee-visual green-position\"><\/div>\r\n                                                                <div class=\"marker-line\"><\/div>\r\n                                                                <div class=\"inner-ankle-marker\"><\/div>\r\n                                                            <\/div>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-info\">\r\n                                                            <span class=\"flexibility-label green-text\">\u7eff\u533a<\/span>\r\n                                                            <span class=\"flexibility-desc\">\u819d\u8d85\u8fc7\u524d\u817f\u5185\u8e1d<\/span>\r\n                                                            <span class=\"flexibility-detail\">\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u6ee1\u8db3\u8981\u6c42<\/span>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-check\"><i class=\"fas fa-check\"><\/i><\/div>\r\n                                                    <\/div>\r\n                                                    \r\n                                                    <div class=\"flexibility-option ${test.currentScore.ankleFlexibilityLeft==='yellow'?'selected':''}\" \r\n                                                        data-side=\"left\" data-result=\"yellow\">\r\n                                                        <div class=\"flexibility-visual\">\r\n                                                            <div class=\"visual-demo\">\r\n                                                                <div class=\"foot-visual\"><\/div>\r\n                                                                <div class=\"ankle-visual\"><\/div>\r\n                                                                <div class=\"knee-visual yellow-position\"><\/div>\r\n                                                                <div class=\"marker-line\"><\/div>\r\n                                                                <div class=\"inner-ankle-marker\"><\/div>\r\n                                                            <\/div>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-info\">\r\n                                                            <span class=\"flexibility-label yellow-text\">\u9ec4\u533a<\/span>\r\n                                                            <span class=\"flexibility-desc\">\u819d\u5728\u524d\u817f\u5185\u8e1d\u5bbd\u5ea6\u5185<\/span>\r\n                                                            <span class=\"flexibility-detail\">\u53ef\u80fd\u5b58\u5728\u7075\u6d3b\u6027\u9650\u5236<\/span>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-check\"><i class=\"fas fa-check\"><\/i><\/div>\r\n                                                    <\/div>\r\n                                                    \r\n                                                    <div class=\"flexibility-option ${test.currentScore.ankleFlexibilityLeft==='red'?'selected':''}\" \r\n                                                        data-side=\"left\" data-result=\"red\">\r\n                                                        <div class=\"flexibility-visual\">\r\n                                                            <div class=\"visual-demo\">\r\n                                                                <div class=\"foot-visual\"><\/div>\r\n                                                                <div class=\"ankle-visual\"><\/div>\r\n                                                                <div class=\"knee-visual red-position\"><\/div>\r\n                                                                <div class=\"marker-line\"><\/div>\r\n                                                                <div class=\"inner-ankle-marker\"><\/div>\r\n                                                            <\/div>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-info\">\r\n                                                            <span class=\"flexibility-label red-text\">\u7ea2\u533a<\/span>\r\n                                                            <span class=\"flexibility-desc\">\u819d\u672a\u5230\u8fbe\u524d\u817f\u5185\u8e1d<\/span>\r\n                                                            <span class=\"flexibility-detail\">\u5b58\u5728\u7075\u6d3b\u6027\u9650\u5236<\/span>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-check\"><i class=\"fas fa-check\"><\/i><\/div>\r\n                                                    <\/div>\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                        <\/td>\r\n                                        <td>\r\n                                            <div class=\"ankle-flexibility-section\" id=\"ankleFlexibilityRight\">\r\n                                                <div class=\"flexibility-options\">\r\n                                                    <div class=\"flexibility-option ${test.currentScore.ankleFlexibilityRight==='green'?'selected':''}\" \r\n                                                        data-side=\"right\" data-result=\"green\">\r\n                                                        <div class=\"flexibility-visual\">\r\n                                                            <div class=\"visual-demo\">\r\n                                                                <div class=\"foot-visual\"><\/div>\r\n                                                                <div class=\"ankle-visual\"><\/div>\r\n                                                                <div class=\"knee-visual green-position\"><\/div>\r\n                                                                <div class=\"marker-line\"><\/div>\r\n                                                                <div class=\"inner-ankle-marker\"><\/div>\r\n                                                            <\/div>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-info\">\r\n                                                            <span class=\"flexibility-label green-text\">\u7eff\u533a<\/span>\r\n                                                            <span class=\"flexibility-desc\">\u819d\u8d85\u8fc7\u524d\u817f\u5185\u8e1d<\/span>\r\n                                                            <span class=\"flexibility-detail\">\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u6ee1\u8db3\u8981\u6c42<\/span>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-check\"><i class=\"fas fa-check\"><\/i><\/div>\r\n                                                    <\/div>\r\n                                                    \r\n                                                    <div class=\"flexibility-option ${test.currentScore.ankleFlexibilityRight==='yellow'?'selected':''}\" \r\n                                                        data-side=\"right\" data-result=\"yellow\">\r\n                                                        <div class=\"flexibility-visual\">\r\n                                                            <div class=\"visual-demo\">\r\n                                                                <div class=\"foot-visual\"><\/div>\r\n                                                                <div class=\"ankle-visual\"><\/div>\r\n                                                                <div class=\"knee-visual yellow-position\"><\/div>\r\n                                                                <div class=\"marker-line\"><\/div>\r\n                                                                <div class=\"inner-ankle-marker\"><\/div>\r\n                                                            <\/div>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-info\">\r\n                                                            <span class=\"flexibility-label yellow-text\">\u9ec4\u533a<\/span>\r\n                                                            <span class=\"flexibility-desc\">\u819d\u5728\u524d\u817f\u5185\u8e1d\u5bbd\u5ea6\u5185<\/span>\r\n                                                            <span class=\"flexibility-detail\">\u53ef\u80fd\u5b58\u5728\u7075\u6d3b\u6027\u9650\u5236<\/span>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-check\"><i class=\"fas fa-check\"><\/i><\/div>\r\n                                                    <\/div>\r\n                                                    \r\n                                                    <div class=\"flexibility-option ${test.currentScore.ankleFlexibilityRight==='red'?'selected':''}\" \r\n                                                        data-side=\"right\" data-result=\"red\">\r\n                                                        <div class=\"flexibility-visual\">\r\n                                                            <div class=\"visual-demo\">\r\n                                                                <div class=\"foot-visual\"><\/div>\r\n                                                                <div class=\"ankle-visual\"><\/div>\r\n                                                                <div class=\"knee-visual red-position\"><\/div>\r\n                                                                <div class=\"marker-line\"><\/div>\r\n                                                                <div class=\"inner-ankle-marker\"><\/div>\r\n                                                            <\/div>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-info\">\r\n                                                            <span class=\"flexibility-label red-text\">\u7ea2\u533a<\/span>\r\n                                                            <span class=\"flexibility-desc\">\u819d\u672a\u5230\u8fbe\u524d\u817f\u5185\u8e1d<\/span>\r\n                                                            <span class=\"flexibility-detail\">\u5b58\u5728\u7075\u6d3b\u6027\u9650\u5236<\/span>\r\n                                                        <\/div>\r\n                                                        <div class=\"flexibility-check\"><i class=\"fas fa-check\"><\/i><\/div>\r\n                                                    <\/div>\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                        <\/td>\r\n                                    <\/tr>\r\n                                <\/tbody>\r\n                            <\/table>\r\n                            \r\n                            <div class=\"ankle-test-instructions\">\r\n                                <h6><i class=\"fas fa-info-circle\"><\/i> \u8bc4\u4f30\u6807\u51c6\u8bf4\u660e\uff1a<\/h6>\r\n                                <div class=\"instruction-grid\">\r\n                                    <div class=\"instruction-item\">\r\n                                        <div class=\"color-indicator green\"><\/div>\r\n                                        <div class=\"instruction-content\">\r\n                                            <strong>\u7eff\u533a\uff1a<\/strong>\u819d\u76d6\u8d85\u8fc7\u524d\u817f\u5185\u8e1d\uff0c\u811a\u8ddf\u4fdd\u6301\u8d34\u5730 - \u8868\u660e\u8e1d\u5173\u8282\u5df2\u6ee1\u8db3\u7075\u6d3b\u6027\u8981\u6c42\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                    <div class=\"instruction-item\">\r\n                                        <div class=\"color-indicator yellow\"><\/div>\r\n                                        <div class=\"instruction-content\">\r\n                                            <strong>\u9ec4\u533a\uff1a<\/strong>\u819d\u76d6\u5728\u524d\u817f\u5185\u8e1d\u5bbd\u5ea6\u5185\uff0c\u811a\u8ddf\u4fdd\u6301\u8d34\u5730 - \u8868\u660e\u53ef\u80fd\u5b58\u5728\u7075\u6d3b\u6027\u9650\u5236\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                    <div class=\"instruction-item\">\r\n                                        <div class=\"color-indicator red\"><\/div>\r\n                                        <div class=\"instruction-content\">\r\n                                            <strong>\u7ea2\u533a\uff1a<\/strong>\u819d\u76d6\u672a\u5230\u8fbe\u524d\u817f\u5185\u8e1d\uff0c\u811a\u8ddf\u4fdd\u6301\u8d34\u5730 - \u8868\u660e\u5b58\u5728\u7075\u6d3b\u6027\u9650\u5236\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <p style=\"font-size: 0.85em; margin-top: 10px;\">\r\n                                    <strong>\u64cd\u4f5c\u63d0\u793a\uff1a<\/strong>\u70b9\u51fb\u4e0a\u65b9\u5bf9\u5e94\u7684\u533a\u57df\u5361\u7247\u6765\u9009\u62e9\u8bc4\u4f30\u7ed3\u679c\u3002\u6bcf\u4e2a\u533a\u57df\u90fd\u6709\u89c6\u89c9\u793a\u610f\u56fe\u5e2e\u52a9\u5224\u65ad\u3002\r\n                                <\/p>\r\n                            <\/div>\r\n                            \r\n                            <div class=\"ankle-test-instructions\">\r\n                                <h6><i class=\"fas fa-exclamation-triangle\"><\/i> \u989d\u5916\u6ce8\u610f\u4e8b\u9879\uff1a<\/h6>\r\n                                <ul>\r\n                                    <li><strong>\u75bc\u75db\uff1a<\/strong>\u5982\u53d7\u8bd5\u8005\u5728\u6b64\u6d4b\u8bd5\u4e2d\u7ecf\u5386\u75bc\u75db\uff0c\u5728\u8bc4\u5206\u4e2d\u6807\u8bb0\u4e3a\u75bc\u75db\u9633\u6027\uff0c\u5e76\u5efa\u8bae\u8f6c\u8bca\u7ed9\u533b\u7597\u4e13\u4e1a\u4eba\u5458\u3002<\/li>\r\n                                    <li><strong>\u62c9\u4f38\u611f\uff1a<\/strong>\u5982\u53d7\u8bd5\u8005\u611f\u53d7\u5230\u8e1d\u5173\u8282\u7684\u62c9\u4f38\u6216\u7d27\u7ef7\u611f\uff0c\u4e14\u901a\u8fc7\u8f6f\u7ec4\u7ec7\u5904\u7406\u6216\u62c9\u4f38\u5e94\u7528\u672a\u7f13\u89e3\uff0c\u9700\u8981\u533b\u7597\u4e13\u4e1a\u4eba\u5458\u7684\u8fdb\u4e00\u6b65\u8bc4\u4f30\u3002<\/li>\r\n                                    <li><strong>\u5bf9\u79f0\u6027\u6bd4\u8f83\uff1a<\/strong>\u6ce8\u610f\u6bd4\u8f83\u5de6\u53f3\u4fa7\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u7684\u5dee\u5f02\uff0c\u5dee\u5f02\u8fc7\u5927\u53ef\u80fd\u63d0\u793a\u6f5c\u5728\u95ee\u9898\u3002<\/li>\r\n                                <\/ul>\r\n                            <\/div>\r\n                        <\/div>`;\r\n                    }\r\n                    \r\n                    clearingHtml += `<p style=\"font-size:0.9em; margin-top:15px; color:#666;\">\r\n                        <strong>\u6ce8\u610f\uff1a<\/strong>\u82e5\u6574\u4f53\u6392\u9664\u68c0\u67e5\u6216\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\u4e3a\u9633\u6027\uff0c\u6700\u7ec8\u5f97\u5206\u4e3a0\u3002\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u8bc4\u4f30\u7528\u4e8e\u8bc6\u522b\u6f5c\u5728\u7684\u7075\u6d3b\u6027\u9650\u5236\u3002\r\n                    <\/p>\r\n                    <\/div>`;\r\n                }\r\n            }\r\n\r\n            contentEl.innerHTML = `\r\n                <div class=\"test-header\">\r\n                    <h2>${test.name}<\/h2><div class=\"test-number\">${test.id}<\/div>\r\n                <\/div>\r\n                <div class=\"test-description\">\r\n                    <h3><i class=\"fas fa-bullseye\"><\/i> \u6d4b\u8bd5\u76ee\u7684<\/h3><p>${test.purpose}<\/p>\r\n                    <h3 style=\"margin-top:20px;\"><i class=\"fas fa-clipboard-list\"><\/i> \u8bc4\u5206\u6807\u51c6<\/h3>\r\n                    <div class=\"scoring-section\">\r\n                        <div class=\"score-options\">\r\n                            ${[3,2,1,0].map(score => `\r\n                                <div class=\"score-option score-${score} ${!test.bilateral && test.currentScore.final===score ? 'selected' : ''}\" data-score=\"${score}\">\r\n                                    <span class=\"score-value\">${score}<\/span><strong>${score}\u5206<\/strong>\r\n                                    <div class=\"score-criteria\">${test.scoring[score]}<\/div>\r\n                                <\/div>`).join('')}\r\n                        <\/div>\r\n                        ${bilateralHtml}\r\n                        ${clearingHtml}\r\n                        <p style=\"margin-top:15px; font-size:0.95em;\"><strong>\u6700\u7ec8\u5f97\u5206\uff1a<\/strong>${test.bilateral ? '\u53d6\u5de6\u53f3\u4e24\u4fa7\u8f83\u4f4e\u5206' : '\u5373\u6d4b\u8bd5\u5f97\u5206'}\u3002\u82e5\u6392\u9664\u68c0\u67e5\u4e3a\u9633\u6027\uff0c\u6700\u7ec8\u5f97\u5206\u4e3a0\u3002<\/p>\r\n                        <button class=\"correction-btn\" id=\"showCorrectionBtn\">\r\n                            <i class=\"fas fa-dumbbell\"><\/i> \u67e5\u770b\u9488\u5bf9\u6027\u7684\u7ea0\u6b63\u5efa\u8bae\r\n                        <\/button>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"buttons\">\r\n                    <button class=\"btn btn-secondary\" id=\"prevTestBtn\" ${index===0?'disabled':''}><i class=\"fas fa-arrow-left\"><\/i> \u4e0a\u4e00\u9879<\/button>\r\n                    <button class=\"btn btn-primary\" id=\"nextTestBtn\">${index === fmsTests.length-1 ? '\u5b8c\u6210\u7b5b\u67e5' : '\u4e0b\u4e00\u9879'} <i class=\"fas fa-arrow-right\"><\/i><\/button>\r\n                <\/div>\r\n            `;\r\n\r\n            bindTestSpecificEvents(test);\r\n        }\r\n\r\n        function bindTestSpecificEvents(test) {\r\n            if (!test.bilateral) {\r\n                document.querySelectorAll('.score-option').forEach(opt => {\r\n                    opt.onclick = () => {\r\n                        \/\/ \u68c0\u67e5\u6392\u9664\u6027\u68c0\u67e5\u662f\u5426\u6709\u9633\u6027\uff08\u4ec5\u9488\u5bf9\u6709\u6392\u9664\u6027\u6d4b\u8bd5\u7684\u9879\u76ee\uff09\r\n                        let hasPain = false;\r\n                        if (test.clearingTest && test.id === 6) {\r\n                            \/\/ \u8eaf\u5e72\u7a33\u5b9a\u4fef\u5367\u6491\uff1a\u68c0\u67e5\u6574\u4f53\u6392\u9664\u6027\u6d4b\u8bd5\r\n                            hasPain = test.currentScore.clearing;\r\n                        }\r\n                        \r\n                        if (hasPain) {\r\n                            alert('\u6392\u9664\u6027\u68c0\u67e5\u4e3a\u9633\u6027\uff0c\u6700\u7ec8\u5f97\u5206\u5fc5\u987b\u4e3a0\u3002\u8bf7\u5148\u4fee\u6539\u6392\u9664\u6027\u68c0\u67e5\u7ed3\u679c\u3002');\r\n                            return;\r\n                        }\r\n                        \r\n                        document.querySelectorAll('.score-option').forEach(o => o.classList.remove('selected'));\r\n                        opt.classList.add('selected');\r\n                        test.currentScore.final = parseInt(opt.dataset.score);\r\n                        updateScoreTable();\r\n                        initTestList();\r\n                    };\r\n                });\r\n            }\r\n            \r\n            if (test.bilateral) {\r\n                document.querySelectorAll('.side-btn').forEach(btn => {\r\n                    btn.onclick = function() {\r\n                        \/\/ \u68c0\u67e5\u6392\u9664\u6027\u68c0\u67e5\u662f\u5426\u6709\u9633\u6027\r\n                        let hasPain = false;\r\n                        if (test.clearingTest) {\r\n                            if (test.id === 4 || test.id === 7) {\r\n                                hasPain = test.currentScore.clearingLeft || test.currentScore.clearingRight;\r\n                            } else if (test.id === 3) {\r\n                                \/\/ \u76f4\u7ebf\u5f13\u6b65\u8e72\uff1a\u68c0\u67e5\u6574\u4f53\u548c\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\r\n                                hasPain = test.currentScore.clearing || \r\n                                         test.currentScore.ankleClearingLeft || \r\n                                         test.currentScore.ankleClearingRight;\r\n                            }\r\n                        }\r\n                        \r\n                        if (hasPain) {\r\n                            alert('\u6392\u9664\u6027\u68c0\u67e5\u4e3a\u9633\u6027\uff0c\u6700\u7ec8\u5f97\u5206\u5fc5\u987b\u4e3a0\u3002\u8bf7\u5148\u4fee\u6539\u6392\u9664\u6027\u68c0\u67e5\u7ed3\u679c\u3002');\r\n                            return;\r\n                        }\r\n                        \r\n                        const side = this.dataset.side;\r\n                        const score = parseInt(this.dataset.score);\r\n                        test.currentScore[side] = score;\r\n                        \r\n                        \/\/ \u8ba1\u7b97\u6700\u7ec8\u5f97\u5206\r\n                        if (test.currentScore.left !== null && test.currentScore.right !== null) {\r\n                            test.currentScore.final = Math.min(test.currentScore.left, test.currentScore.right);\r\n                        } else if (test.currentScore.left !== null) {\r\n                            test.currentScore.final = test.currentScore.left;\r\n                        } else if (test.currentScore.right !== null) {\r\n                            test.currentScore.final = test.currentScore.right;\r\n                        }\r\n                        \r\n                        document.querySelectorAll(`.side-btn[data-side=\"${side}\"]`).forEach(b => b.classList.remove('selected'));\r\n                        this.classList.add('selected');\r\n                        updateScoreTable();\r\n                        initTestList();\r\n                    };\r\n                });\r\n            }\r\n            \r\n            if (test.clearingTest) {\r\n                \/\/ \u5904\u7406\u6392\u9664\u6027\u68c0\u67e5\u6309\u94ae\u70b9\u51fb\r\n                document.querySelectorAll('.clearing-btn, .exclusion-btn').forEach(btn => {\r\n                    btn.onclick = function() {\r\n                        const result = this.dataset.result;\r\n                        const type = this.dataset.type; \/\/ 'general', 'ankle-pain', \u6216 'ankle-flexibility'\r\n                        const side = this.dataset.side; \/\/ 'left', 'right', \u6216 undefined\r\n                        \r\n                        if (test.id === 6) {\r\n                            \/\/ \u8eaf\u5e72\u7a33\u5b9a\u4fef\u5367\u6491 - \u6574\u4f53\u6392\u9664\u6027\u68c0\u67e5\r\n                            if (type === 'general') {\r\n                                const painResult = result === 'positive';\r\n                                test.currentScore.clearing = painResult;\r\n                                \/\/ \u66f4\u65b0\u6309\u94ae\u6837\u5f0f\r\n                                const parent = this.parentElement;\r\n                                parent.querySelectorAll('.clearing-btn').forEach(b => {\r\n                                    b.classList.remove('positive', 'negative');\r\n                                });\r\n                                this.classList.add(painResult ? 'positive' : 'negative');\r\n                                \r\n                                if (painResult) {\r\n                                    \/\/ \u5982\u679c\u6709\u75bc\u75db\uff0c\u6700\u7ec8\u5f97\u5206\u4e3a0\r\n                                    test.currentScore.final = 0;\r\n                                    \/\/ \u6e05\u7a7a\u8bc4\u5206\u9009\u62e9\r\n                                    document.querySelectorAll('.score-option.selected').forEach(el => {\r\n                                        el.classList.remove('selected');\r\n                                    });\r\n                                } else {\r\n                                    \/\/ \u5982\u679c\u6ca1\u6709\u75bc\u75db\uff0c\u6062\u590d\u8bc4\u5206\u9009\u62e9\r\n                                    if (test.currentScore.final === 0) {\r\n                                        test.currentScore.final = null;\r\n                                    }\r\n                                }\r\n                            }\r\n                        } else if (test.id === 3) {\r\n                            \/\/ \u76f4\u7ebf\u5f13\u6b65\u8e72\r\n                            if (type === 'general') {\r\n                                \/\/ \u6574\u4f53\u6392\u9664\u6027\u68c0\u67e5\r\n                                const painResult = result === 'positive';\r\n                                test.currentScore.clearing = painResult;\r\n                                \/\/ \u66f4\u65b0\u6309\u94ae\u6837\u5f0f\r\n                                const parent = this.parentElement;\r\n                                parent.querySelectorAll('.clearing-btn').forEach(b => {\r\n                                    b.classList.remove('positive', 'negative');\r\n                                });\r\n                                this.classList.add(painResult ? 'positive' : 'negative');\r\n                            } else if (type === 'ankle-pain') {\r\n                                \/\/ \u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\r\n                                const painResult = result === 'positive';\r\n                                const sideKey = `ankleClearing${side.charAt(0).toUpperCase() + side.slice(1)}`;\r\n                                test.currentScore[sideKey] = painResult;\r\n                                \r\n                                \/\/ \u66f4\u65b0\u6309\u94ae\u6837\u5f0f\r\n                                const parent = this.parentElement;\r\n                                parent.querySelectorAll('.exclusion-btn').forEach(b => {\r\n                                    if (b.dataset.type === 'ankle-pain' && b.dataset.side === side) {\r\n                                        b.classList.remove('positive', 'negative');\r\n                                    }\r\n                                });\r\n                                this.classList.add(painResult ? 'positive' : 'negative');\r\n                            }\r\n                            \r\n                            \/\/ \u68c0\u67e5\u662f\u5426\u6709\u75bc\u75db\r\n                            const hasPain = test.currentScore.clearing || \r\n                                          test.currentScore.ankleClearingLeft || \r\n                                          test.currentScore.ankleClearingRight;\r\n                            \r\n                            if (hasPain) {\r\n                                \/\/ \u5982\u679c\u6709\u75bc\u75db\uff0c\u6700\u7ec8\u5f97\u5206\u4e3a0\r\n                                test.currentScore.final = 0;\r\n                                \/\/ \u6e05\u7a7a\u8bc4\u5206\r\n                                test.currentScore.left = null;\r\n                                test.currentScore.right = null;\r\n                                \/\/ \u6e05\u7a7a\u8bc4\u5206\u9009\u62e9\r\n                                document.querySelectorAll('.side-btn.selected').forEach(el => {\r\n                                    el.classList.remove('selected');\r\n                                });\r\n                            } else {\r\n                                \/\/ \u5982\u679c\u6ca1\u6709\u75bc\u75db\uff0c\u91cd\u65b0\u8ba1\u7b97\u6700\u7ec8\u5f97\u5206\r\n                                if (test.currentScore.left !== null && test.currentScore.right !== null) {\r\n                                    test.currentScore.final = Math.min(test.currentScore.left, test.currentScore.right);\r\n                                } else if (test.currentScore.left !== null) {\r\n                                    test.currentScore.final = test.currentScore.left;\r\n                                } else if (test.currentScore.right !== null) {\r\n                                    test.currentScore.final = test.currentScore.right;\r\n                                } else {\r\n                                    test.currentScore.final = null;\r\n                                }\r\n                            }\r\n                        } else if (test.id === 4 || test.id === 7) {\r\n                            \/\/ \u80a9\u90e8\u6d3b\u52a8\u5ea6\u548c\u65cb\u8f6c\u7a33\u5b9a\u6027 - \u5de6\u53f3\u4fa7\u5206\u522b\u8bb0\u5f55\r\n                            const painResult = result === 'positive';\r\n                            const sideKey = `clearing${side.charAt(0).toUpperCase() + side.slice(1)}`;\r\n                            test.currentScore[sideKey] = painResult;\r\n                            \r\n                            \/\/ \u66f4\u65b0\u6309\u94ae\u6837\u5f0f\r\n                            const parent = this.parentElement;\r\n                            parent.querySelectorAll('.exclusion-btn').forEach(b => {\r\n                                if (b.dataset.side === side) {\r\n                                    b.classList.remove('positive', 'negative');\r\n                                }\r\n                            });\r\n                            this.classList.add(painResult ? 'positive' : 'negative');\r\n                            \r\n                            \/\/ \u68c0\u67e5\u662f\u5426\u6709\u75bc\u75db\r\n                            const hasPain = test.currentScore.clearingLeft || test.currentScore.clearingRight;\r\n                            \r\n                            if (hasPain) {\r\n                                \/\/ \u5982\u679c\u6709\u75bc\u75db\uff0c\u6700\u7ec8\u5f97\u5206\u4e3a0\r\n                                test.currentScore.final = 0;\r\n                                \/\/ \u6e05\u7a7a\u8bc4\u5206\r\n                                test.currentScore.left = null;\r\n                                test.currentScore.right = null;\r\n                                \/\/ \u6e05\u7a7a\u8bc4\u5206\u9009\u62e9\r\n                                document.querySelectorAll('.side-btn.selected').forEach(el => {\r\n                                    el.classList.remove('selected');\r\n                                });\r\n                            } else {\r\n                                \/\/ \u5982\u679c\u6ca1\u6709\u75bc\u75db\uff0c\u91cd\u65b0\u8ba1\u7b97\u6700\u7ec8\u5f97\u5206\r\n                                if (test.currentScore.left !== null && test.currentScore.right !== null) {\r\n                                    test.currentScore.final = Math.min(test.currentScore.left, test.currentScore.right);\r\n                                } else if (test.currentScore.left !== null) {\r\n                                    test.currentScore.final = test.currentScore.left;\r\n                                } else if (test.currentScore.right !== null) {\r\n                                    test.currentScore.final = test.currentScore.right;\r\n                                } else {\r\n                                    test.currentScore.final = null;\r\n                                }\r\n                            }\r\n                        }\r\n                        \r\n                        updateScoreTable();\r\n                        initTestList();\r\n                    };\r\n                });\r\n            }\r\n            \r\n            \/\/ \u589e\u5f3a\u7684\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u9009\u9879\u70b9\u51fb\u5904\u7406\r\n            if (test.id === 3 && test.ankleClearingTest) {\r\n                document.querySelectorAll('.flexibility-option').forEach(option => {\r\n                    option.onclick = function() {\r\n                        const side = this.dataset.side;\r\n                        const result = this.dataset.result;\r\n                        const sideKey = `ankleFlexibility${side.charAt(0).toUpperCase() + side.slice(1)}`;\r\n                        \r\n                        \/\/ \u6e05\u9664\u540c\u4fa7\u5176\u4ed6\u9009\u9879\u7684\u9009\u62e9\u72b6\u6001\r\n                        const container = this.closest('.ankle-flexibility-section');\r\n                        container.querySelectorAll('.flexibility-option').forEach(opt => {\r\n                            opt.classList.remove('selected');\r\n                        });\r\n                        \r\n                        \/\/ \u9009\u4e2d\u5f53\u524d\u9009\u9879\r\n                        this.classList.add('selected');\r\n                        \r\n                        \/\/ \u66f4\u65b0\u6d4b\u8bd5\u6570\u636e\r\n                        test.currentScore[sideKey] = result;\r\n                        \r\n                        \/\/ \u66f4\u65b0\u8bc4\u5206\u548c\u663e\u793a\r\n                        updateScoreTable();\r\n                        initTestList();\r\n                    };\r\n                });\r\n            }\r\n\r\n            document.getElementById('showCorrectionBtn').onclick = () => showCorrectionForTest(test);\r\n            document.getElementById('prevTestBtn').onclick = () => { if(currentTestIndex>0) { currentTestIndex--; loadTest(currentTestIndex); initTestList(); } };\r\n            document.getElementById('nextTestBtn').onclick = () => {\r\n                if(currentTestIndex < fmsTests.length-1) { currentTestIndex++; loadTest(currentTestIndex); initTestList(); }\r\n                else { alert('\u6240\u6709\u6d4b\u8bd5\u5df2\u5b8c\u6210\uff01\u8bf7\u67e5\u770b\u4fa7\u8fb9\u680f\u7684\u8bc4\u5206\u6c47\u603b\u4e0e\u7ea0\u6b63\u5efa\u8bae\u3002'); }\r\n            };\r\n        }\r\n\r\n        function showCorrectionForTest(test) {\r\n            \/\/ \u68c0\u67e5\u662f\u5426\u6709\u75bc\u75db\uff08\u5305\u62ec\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\uff09\r\n            let hasPain = false;\r\n            let anklePain = false;\r\n            let ankleFlexibilityLeft = '';\r\n            let ankleFlexibilityRight = '';\r\n            \r\n            if (test.clearingTest) {\r\n                if (test.id === 6) {\r\n                    \/\/ \u8eaf\u5e72\u7a33\u5b9a\u4fef\u5367\u6491\uff1a\u68c0\u67e5\u6574\u4f53\u6392\u9664\u6027\u6d4b\u8bd5\r\n                    hasPain = test.currentScore.clearing;\r\n                } else if (test.id === 3) {\r\n                    \/\/ \u76f4\u7ebf\u5f13\u6b65\u8e72\uff1a\u68c0\u67e5\u6574\u4f53\u548c\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\r\n                    hasPain = test.currentScore.clearing || \r\n                             test.currentScore.ankleClearingLeft || \r\n                             test.currentScore.ankleClearingRight;\r\n                    anklePain = test.currentScore.ankleClearingLeft || test.currentScore.ankleClearingRight;\r\n                    ankleFlexibilityLeft = test.currentScore.ankleFlexibilityLeft;\r\n                    ankleFlexibilityRight = test.currentScore.ankleFlexibilityRight;\r\n                } else if (test.id === 4 || test.id === 7) {\r\n                    hasPain = test.currentScore.clearingLeft || test.currentScore.clearingRight;\r\n                }\r\n            }\r\n            \r\n            const score = test.currentScore.final;\r\n            const key = hasPain ? 0 : (score !== null ? score : 'na');\r\n            const advice = test.corrections[key] || {desc:'\u8bf7\u5148\u5b8c\u6210\u6d4b\u8bd5\u8bc4\u5206\u4ee5\u83b7\u5f97\u5efa\u8bae\u3002'};\r\n            \r\n            let asymmetryNote = '';\r\n            if (test.bilateral && test.currentScore.left !== null && test.currentScore.right !== null && test.currentScore.left !== test.currentScore.right) {\r\n                asymmetryNote = `<p><strong>\u6ce8\u610f\uff1a<\/strong>\u5de6\u53f3\u4fa7\u5f97\u5206\u4e0d\u4e00\u81f4\uff08\u5de6:${test.currentScore.left}, \u53f3:${test.currentScore.right}\uff09\uff0c\u5efa\u8bae\u5728\u8bad\u7ec3\u4e2d\u989d\u5916\u5173\u6ce8\u8f83\u5f31\u4e00\u4fa7\u3002<\/p>`;\r\n            }\r\n            \r\n            let ankleNote = '';\r\n            if (test.id === 3) {\r\n                if (anklePain) {\r\n                    ankleNote = `<p><strong>\u8e1d\u5173\u8282\u75bc\u75db\uff1a<\/strong>\u8e1d\u5173\u8282\u6392\u9664\u6027\u6d4b\u8bd5\u4e3a\u9633\u6027\uff0c\u8868\u660e\u8e1d\u5173\u8282\u5b58\u5728\u75bc\u75db\uff0c\u9700\u8981\u4f18\u5148\u533b\u7597\u8bc4\u4f30\u3002<\/p>`;\r\n                } else if (ankleFlexibilityLeft || ankleFlexibilityRight) {\r\n                    let flexibilityResults = [];\r\n                    if (ankleFlexibilityLeft) flexibilityResults.push(`\u5de6\u4fa7\uff1a${getAnkleFlexibilityText(ankleFlexibilityLeft)}`);\r\n                    if (ankleFlexibilityRight) flexibilityResults.push(`\u53f3\u4fa7\uff1a${getAnkleFlexibilityText(ankleFlexibilityRight)}`);\r\n                    \r\n                    if (flexibilityResults.length > 0) {\r\n                        ankleNote = `<p><strong>\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u8bc4\u4f30\uff1a<\/strong> ${flexibilityResults.join('\uff0c ')}<\/p>`;\r\n                        \r\n                        if (ankleFlexibilityLeft === 'red' || ankleFlexibilityLeft === 'yellow' || \r\n                            ankleFlexibilityRight === 'red' || ankleFlexibilityRight === 'yellow') {\r\n                            ankleNote += `<p><strong>\u5efa\u8bae\uff1a<\/strong>\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u8bc4\u4f30\u5931\u8d25\uff08\u9ec4\u533a\u6216\u7ea2\u533a\uff09\u610f\u5473\u7740\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u9700\u8981\u88ab\u89e3\u51b3\u548c\u6e05\u9664\u3002\u5efa\u8bae\u8fdb\u884c\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u8bad\u7ec3\u3002<\/p>`;\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n\r\n            document.getElementById('correctionBody').innerHTML = `\r\n                <div class=\"correction-content\">\r\n                    <div class=\"correction-section\">\r\n                        <h4>${test.name} - \u7ea0\u6b63\u8bad\u7ec3\u5efa\u8bae<\/h4>\r\n                        <p><strong>\u6d4b\u8bd5\u5f97\u5206\uff1a<\/strong> ${hasPain ? '0\u5206\uff08\u5b58\u5728\u75bc\u75db\uff09' : (score !== null ? score + '\u5206' : '\u672a\u8bc4\u5206')}<\/p>\r\n                        ${asymmetryNote}\r\n                        ${ankleNote}\r\n                        <p><strong>\u4f18\u5148\u7ea7\uff1a<\/strong> ${advice.priority || 'N\/A'}<\/p>\r\n                        ${advice.desc ? `<p>${advice.desc}<\/p>` : ''}\r\n                        ${advice.focus ? `<p><strong>\u7ea0\u6b63\u91cd\u70b9\uff1a<\/strong> ${advice.focus.join('\u3001')}<\/p>` : ''}\r\n                        ${advice.exercises ? `\r\n                            <p><strong>\u63a8\u8350\u8bad\u7ec3\uff1a<\/strong><\/p>\r\n                            <ul class=\"correction-exercises\">\r\n                                ${advice.exercises.map(ex => `<li>${ex}<\/li>`).join('')}\r\n                            <\/ul>\r\n                            <p style=\"margin-top:15px;\"><i class=\"fas fa-clock\"><\/i> <strong>\u8bad\u7ec3\u5efa\u8bae\uff1a<\/strong>\u9009\u62e92-3\u4e2a\u63a8\u8350\u52a8\u4f5c\uff0c\u6bcf\u4e2a\u8fdb\u884c2-3\u7ec4\uff0c\u6bcf\u7ec430-60\u79d2\u621610-15\u6b21\u91cd\u590d\uff0c\u6bcf\u5468\u7ec3\u4e603-4\u6b21\u3002<\/p>\r\n                        ` : ''}\r\n                        ${!hasPain ? `<p style=\"font-size:0.9em; color:#666; margin-top:20px;\"><i class=\"fas fa-info-circle\"><\/i> \u4ee5\u4e0a\u5efa\u8bae\u57fa\u4e8eFMS V2.9\u624b\u518c\u6807\u51c6\u3002\u5728\u5f00\u59cb\u4efb\u4f55\u65b0\u8bad\u7ec3\u8ba1\u5212\u524d\uff0c\u8bf7\u786e\u4fdd\u52a8\u4f5c\u65e0\u75db\u3002<\/p>` : ''}\r\n                    <\/div>\r\n                <\/div>\r\n            `;\r\n            document.getElementById('correctionModal').style.display = 'flex';\r\n        }\r\n        \r\n        function getAnkleFlexibilityText(result) {\r\n            switch(result) {\r\n                case 'green': return '\u7eff\u533a\uff08\u819d\u8d85\u8fc7\u524d\u817f\u5185\u8e1d\uff0c\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u6ee1\u8db3\u8981\u6c42\uff09';\r\n                case 'yellow': return '\u9ec4\u533a\uff08\u819d\u5728\u524d\u817f\u5185\u8e1d\u5bbd\u5ea6\u5185\uff0c\u53ef\u80fd\u5b58\u5728\u7075\u6d3b\u6027\u9650\u5236\uff09';\r\n                case 'red': return '\u7ea2\u533a\uff08\u819d\u672a\u5230\u8fbe\u524d\u817f\u5185\u8e1d\uff0c\u53ef\u80fd\u5b58\u5728\u7075\u6d3b\u6027\u9650\u5236\uff09';\r\n                default: return '';\r\n            }\r\n        }\r\n\r\n        document.getElementById('viewCorrectionBtn').onclick = function() {\r\n            let correctionHTML = '<div class=\"correction-content\">';\r\n            const testsNeedingCorrection = fmsTests.filter(test => {\r\n                \/\/ \u68c0\u67e5\u662f\u5426\u6709\u75bc\u75db\uff08\u5305\u62ec\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\uff09\r\n                let hasPain = false;\r\n                if (test.clearingTest) {\r\n                    if (test.id === 6) {\r\n                        \/\/ \u8eaf\u5e72\u7a33\u5b9a\u4fef\u5367\u6491\uff1a\u68c0\u67e5\u6574\u4f53\u6392\u9664\u6027\u6d4b\u8bd5\r\n                        hasPain = test.currentScore.clearing;\r\n                    } else if (test.id === 3) {\r\n                        \/\/ \u76f4\u7ebf\u5f13\u6b65\u8e72\uff1a\u68c0\u67e5\u6574\u4f53\u548c\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\r\n                        hasPain = test.currentScore.clearing || \r\n                                 test.currentScore.ankleClearingLeft || \r\n                                 test.currentScore.ankleClearingRight;\r\n                    } else if (test.id === 4 || test.id === 7) {\r\n                        hasPain = test.currentScore.clearingLeft || test.currentScore.clearingRight;\r\n                    }\r\n                }\r\n                return hasPain || (test.currentScore.final !== null && test.currentScore.final <= 2);\r\n            });\r\n            \r\n            if (testsNeedingCorrection.length === 0) {\r\n                correctionHTML += `<div class=\"correction-section\"><h4>\u7efc\u5408\u7ea0\u6b63\u5efa\u8bae<\/h4><p>\u6240\u6709\u6d4b\u8bd5\u5f97\u5206\u5747\u57283\u5206\uff08\u826f\u597d\uff09\u53ca\u4ee5\u4e0a\uff0c\u8fd0\u52a8\u6a21\u5f0f\u57fa\u672c\u6b63\u5e38\u3002<\/p><p>\u5efa\u8bae\u7ee7\u7eed\u4fdd\u6301\u5f53\u524d\u8bad\u7ec3\uff0c\u5b9a\u671f\u8fdb\u884cFMS\u7b5b\u67e5\u4ee5\u76d1\u63a7\u8fd0\u52a8\u6a21\u5f0f\u7684\u53d8\u5316\u3002<\/p><\/div>`;\r\n            } else {\r\n                correctionHTML += `<div class=\"correction-section\"><h4>\u7efc\u5408\u7ea0\u6b63\u5efa\u8bae<\/h4><p>\u4ee5\u4e0b${testsNeedingCorrection.length}\u4e2a\u6d4b\u8bd5\u9879\u76ee\u9700\u8981\u5173\u6ce8\u548c\u7ea0\u6b63\uff1a<\/p><\/div>`;\r\n                \r\n                testsNeedingCorrection.forEach(test => {\r\n                    \/\/ \u68c0\u67e5\u662f\u5426\u6709\u75bc\u75db\uff08\u5305\u62ec\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\uff09\r\n                    let hasPain = false;\r\n                    let anklePain = false;\r\n                    let ankleFlexibilityInfo = '';\r\n                    if (test.clearingTest) {\r\n                        if (test.id === 6) {\r\n                            \/\/ \u8eaf\u5e72\u7a33\u5b9a\u4fef\u5367\u6491\uff1a\u68c0\u67e5\u6574\u4f53\u6392\u9664\u6027\u6d4b\u8bd5\r\n                            hasPain = test.currentScore.clearing;\r\n                        } else if (test.id === 3) {\r\n                            \/\/ \u76f4\u7ebf\u5f13\u6b65\u8e72\uff1a\u68c0\u67e5\u6574\u4f53\u548c\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\r\n                            hasPain = test.currentScore.clearing || \r\n                                     test.currentScore.ankleClearingLeft || \r\n                                     test.currentScore.ankleClearingRight;\r\n                            anklePain = test.currentScore.ankleClearingLeft || test.currentScore.ankleClearingRight;\r\n                            \r\n                            \/\/ \u6536\u96c6\u8e1d\u5173\u8282\u7075\u6d3b\u6027\u8bc4\u4f30\u7ed3\u679c\r\n                            let flexibilityResults = [];\r\n                            if (test.currentScore.ankleFlexibilityLeft) {\r\n                                flexibilityResults.push(`\u5de6:${getAnkleFlexibilityText(test.currentScore.ankleFlexibilityLeft)}`);\r\n                            }\r\n                            if (test.currentScore.ankleFlexibilityRight) {\r\n                                flexibilityResults.push(`\u53f3:${getAnkleFlexibilityText(test.currentScore.ankleFlexibilityRight)}`);\r\n                            }\r\n                            if (flexibilityResults.length > 0) {\r\n                                ankleFlexibilityInfo = ` (${flexibilityResults.join('\uff0c')})`;\r\n                            }\r\n                        } else if (test.id === 4 || test.id === 7) {\r\n                            hasPain = test.currentScore.clearingLeft || test.currentScore.clearingRight;\r\n                        }\r\n                    }\r\n                    \r\n                    const key = hasPain ? 0 : test.currentScore.final;\r\n                    const advice = test.corrections[key] || {};\r\n                    \r\n                    let scoreText = '';\r\n                    if (hasPain) {\r\n                        if (anklePain) {\r\n                            scoreText = '0\u5206\uff08\u8e1d\u5173\u8282\u75bc\u75db\uff09';\r\n                        } else {\r\n                            scoreText = '0\u5206\uff08\u75bc\u75db\/\u9633\u6027\uff09';\r\n                        }\r\n                        scoreText += ankleFlexibilityInfo;\r\n                    } else {\r\n                        scoreText = test.currentScore.final + '\u5206' + ankleFlexibilityInfo;\r\n                    }\r\n                    \r\n                    correctionHTML += `<div class=\"correction-section\">\r\n                        <h4>${test.name}\uff08${scoreText}\uff09<\/h4>\r\n                        <p><strong>\u4f18\u5148\u7ea7\uff1a<\/strong> ${advice.priority || 'N\/A'}<\/p>\r\n                        ${advice.desc ? `<p>${advice.desc}<\/p>` : ''}\r\n                        ${advice.focus ? `<p><strong>\u7ea0\u6b63\u91cd\u70b9\uff1a<\/strong> ${advice.focus.join('\u3001')}<\/p>` : ''}\r\n                        ${advice.exercises ? `<p><strong>\u63a8\u8350\u8bad\u7ec3\uff1a<\/strong><\/p><ul class=\"correction-exercises\">${advice.exercises.map(ex=>`<li>${ex}<\/li>`).join('')}<\/ul>` : ''}\r\n                    <\/div>`;\r\n                });\r\n                \r\n                correctionHTML += `<div class=\"correction-section\">\r\n                    <h4>\u8bad\u7ec3\u8ba1\u5212\u5efa\u8bae<\/h4>\r\n                    <p><strong>\u9891\u7387\uff1a<\/strong> \u6bcf\u54683-4\u6b21\u7ea0\u6b63\u8bad\u7ec3<\/p>\r\n                    <p><strong>\u65f6\u957f\uff1a<\/strong> \u6bcf\u6b2115-20\u5206\u949f<\/p>\r\n                    <p><strong>\u65b9\u6cd5\uff1a<\/strong> \u4ece\u6bcf\u4e2a\u9700\u8981\u7ea0\u6b63\u7684\u6d4b\u8bd5\u4e2d\u9009\u62e91-2\u4e2a\u63a8\u8350\u52a8\u4f5c\uff0c\u6bcf\u4e2a\u52a8\u4f5c\u8fdb\u884c2-3\u7ec4\u3002<\/p>\r\n                    <p><strong>\u6ce8\u610f\u4e8b\u9879\uff1a<\/strong> \u786e\u4fdd\u6240\u6709\u52a8\u4f5c\u5728\u65e0\u75db\u8303\u56f4\u5185\u8fdb\u884c\uff0c\u5982\u51fa\u73b0\u75bc\u75db\u5e94\u7acb\u5373\u505c\u6b62\u5e76\u54a8\u8be2\u4e13\u4e1a\u4eba\u58eb\u3002<\/p>\r\n                <\/div>`;\r\n            }\r\n            \r\n            correctionHTML += '<\/div>';\r\n            document.getElementById('correctionBody').innerHTML = correctionHTML;\r\n            document.getElementById('correctionModal').style.display = 'flex';\r\n        };\r\n\r\n        function updateScoreTable() {\r\n            const tbody = document.getElementById('scoreTableBody');\r\n            tbody.innerHTML = '';\r\n            let total = 0;\r\n            fmsTests.forEach(test => {\r\n                let finalScore = test.currentScore.final;\r\n                \r\n                \/\/ \u68c0\u67e5\u662f\u5426\u6709\u75bc\u75db\uff08\u5305\u62ec\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\uff09\r\n                if (test.clearingTest) {\r\n                    let isPain = false;\r\n                    if (test.id === 6) {\r\n                        \/\/ \u8eaf\u5e72\u7a33\u5b9a\u4fef\u5367\u6491\uff1a\u68c0\u67e5\u6574\u4f53\u6392\u9664\u6027\u6d4b\u8bd5\r\n                        isPain = test.currentScore.clearing;\r\n                    } else if (test.id === 3) {\r\n                        \/\/ \u76f4\u7ebf\u5f13\u6b65\u8e72\uff1a\u68c0\u67e5\u6574\u4f53\u548c\u8e1d\u5173\u8282\u75bc\u75db\u53cd\u5e94\r\n                        isPain = test.currentScore.clearing || \r\n                                test.currentScore.ankleClearingLeft || \r\n                                test.currentScore.ankleClearingRight;\r\n                    } else if (test.id === 4 || test.id === 7) {\r\n                        isPain = test.currentScore.clearingLeft || test.currentScore.clearingRight;\r\n                    }\r\n                    if (isPain) finalScore = 0;\r\n                }\r\n                \r\n                if (finalScore !== null) total += finalScore;\r\n\r\n                const row = document.createElement('tr');\r\n                if (test.bilateral) {\r\n                    row.innerHTML = `\r\n                        <td>${test.name}<\/td>\r\n                        <td class=\"score-cell ${test.currentScore.left===0?'score-0-display': test.currentScore.left===1?'score-1-display': test.currentScore.left===2?'score-2-display': test.currentScore.left===3?'score-3-display':''}\">${test.currentScore.left??'-'}<\/td>\r\n                        <td class=\"score-cell ${test.currentScore.right===0?'score-0-display': test.currentScore.right===1?'score-1-display': test.currentScore.right===2?'score-2-display': test.currentScore.right===3?'score-3-display':''}\">${test.currentScore.right??'-'}<\/td>\r\n                        <td class=\"score-cell ${finalScore===0?'score-0-display': finalScore===1?'score-1-display': finalScore===2?'score-2-display': finalScore===3?'score-3-display':''}\">${finalScore??'-'}<\/td>\r\n                    `;\r\n                } else {\r\n                    row.innerHTML = `\r\n                        <td>${test.name}<\/td><td class=\"score-cell\">-<\/td><td class=\"score-cell\">-<\/td>\r\n                        <td class=\"score-cell ${finalScore===0?'score-0-display': finalScore===1?'score-1-display': finalScore===2?'score-2-display': finalScore===3?'score-3-display':''}\">${finalScore??'-'}<\/td>\r\n                    `;\r\n                }\r\n                tbody.appendChild(row);\r\n            });\r\n            document.getElementById('totalScore').textContent = total;\r\n            const riskEl = document.getElementById('riskIndicator');\r\n            if (total <= 14) { riskEl.textContent = '\u6574\u4f53\u98ce\u9669\u8f83\u9ad8'; riskEl.style.color = '#e74c3c'; }\r\n            else if (total <= 17) { riskEl.textContent = '\u5b58\u5728\u90e8\u5206\u9650\u5236'; riskEl.style.color = '#f39c12'; }\r\n            else { riskEl.textContent = '\u57fa\u672c\u6a21\u5f0f\u826f\u597d'; riskEl.style.color = '#27ae60'; }\r\n        }\r\n\r\n        function bindEventListeners() {\r\n            document.getElementById('clientForm').onsubmit = function(e) {\r\n                e.preventDefault();\r\n                clientInfo.name = document.getElementById('clientName').value;\r\n                clientInfo.date = document.getElementById('clientDate').value;\r\n                clientInfo.gender = document.getElementById('clientGender').value;\r\n                clientInfo.age = document.getElementById('clientAge').value;\r\n                clientInfo.sport = document.getElementById('clientSport').value;\r\n                document.getElementById('clientModal').style.display = 'none';\r\n                document.querySelector('header h1').innerHTML = `FMS\u7b5b\u67e5 - <span style=\"font-weight:300;\">${clientInfo.name}<\/span>`;\r\n            };\r\n            \r\n            document.getElementById('closeModal').onclick = () => document.getElementById('clientModal').style.display = 'none';\r\n            document.getElementById('closeCorrectionModal').onclick = () => document.getElementById('correctionModal').style.display = 'none';\r\n            \r\n            window.onclick = (e) => { if(e.target.classList.contains('modal')) e.target.style.display = 'none'; };\r\n            \r\n            document.getElementById('saveResultsBtn').onclick = () => alert('\u529f\u80fd\u793a\u4f8b\uff1a\u5728\u6b64\u5904\u8fde\u63a5\u540e\u7aef\u4ee5\u4fdd\u5b58\u6570\u636e\u3002');\r\n            \r\n            document.getElementById('newClientBtn').onclick = () => {\r\n                if(confirm('\u5c06\u91cd\u7f6e\u6240\u6709\u6570\u636e\u5e76\u5f00\u59cb\u65b0\u7b5b\u67e5\uff0c\u786e\u5b9a\u5417\uff1f')) {\r\n                    fmsTests.forEach(t => {\r\n                        t.currentScore = { \r\n                            left: null, \r\n                            right: null, \r\n                            final: null, \r\n                            clearing: null, \r\n                            clearingLeft: null, \r\n                            clearingRight: null,\r\n                            ankleClearingLeft: null,\r\n                            ankleClearingRight: null,\r\n                            ankleFlexibilityLeft: null,\r\n                            ankleFlexibilityRight: null\r\n                        };\r\n                    });\r\n                    clientInfo = { name: \"\", date: new Date().toISOString().split('T')[0], gender: \"\", age: \"\", sport: \"\" };\r\n                    currentTestIndex = 0;\r\n                    document.getElementById('clientDate').value = clientInfo.date;\r\n                    document.getElementById('clientForm').reset();\r\n                    document.getElementById('clientModal').style.display = 'flex';\r\n                    document.querySelector('header h1').innerHTML = 'FMS\u529f\u80fd\u6027\u8fd0\u52a8\u7b5b\u67e5\u6d4b\u8bd5\u7cfb\u7edf';\r\n                    updateScoreTable();\r\n                    initTestList();\r\n                    loadTest(currentTestIndex);\r\n                }\r\n            };\r\n        }\r\n    <\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\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>FMS\u529f\u80fd\u6027\u8fd0\u52a8\u7b5b\u67e5\u6d4b\u8bd5\u7cfb\u7edf FMS\u529f\u80fd\u6027\u8fd0\u52a8\u7b5b\u67e5\u6d4b\u8bd5\u7cfb\u7edf \u57fa\u4e8e FMS Level 1 Manual V2. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1308,"parent":1307,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1948","page","type-page","status-publish","has-post-thumbnail","hentry"],"blocksy_meta":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.funpt.cn\/index.php?rest_route=\/wp\/v2\/pages\/1948","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.funpt.cn\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.funpt.cn\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.funpt.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.funpt.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1948"}],"version-history":[{"count":9,"href":"https:\/\/www.funpt.cn\/index.php?rest_route=\/wp\/v2\/pages\/1948\/revisions"}],"predecessor-version":[{"id":1967,"href":"https:\/\/www.funpt.cn\/index.php?rest_route=\/wp\/v2\/pages\/1948\/revisions\/1967"}],"up":[{"embeddable":true,"href":"https:\/\/www.funpt.cn\/index.php?rest_route=\/wp\/v2\/pages\/1307"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.funpt.cn\/index.php?rest_route=\/wp\/v2\/media\/1308"}],"wp:attachment":[{"href":"https:\/\/www.funpt.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}