{"id":2230,"date":"2026-02-02T16:31:43","date_gmt":"2026-02-02T09:31:43","guid":{"rendered":"https:\/\/z-dhsuni.site\/wp\/?page_id=2230"},"modified":"2026-02-02T16:46:44","modified_gmt":"2026-02-02T09:46:44","slug":"tao-de-bang-ai","status":"publish","type":"page","link":"https:\/\/z-dhsuni.site\/wp\/tao-de-bang-ai\/","title":{"rendered":"T\u1ea0O \u0110\u1ec0 B\u1eb0NG AI"},"content":{"rendered":"        <style>\n            :root { --primary: #0f172a; --accent: #2563eb; --bg: #f1f5f9; --white: #ffffff; --text: #334155; }\n            body { background: var(--bg); }\n            .zd-wrapper { display: flex; gap: 25px; font-family: 'Segoe UI', sans-serif; max-width: 1400px; margin: 0 auto; align-items: flex-start; }\n            \n            \/* Sidebar Pro *\/\n            .zd-sidebar { \n                width: 340px; flex-shrink: 0; background: var(--white); padding: 25px; \n                border-radius: 16px; box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1); \n                position: sticky; top: 20px; border: 1px solid #e2e8f0;\n            }\n            .zd-header { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 2px solid #f1f5f9; }\n            .zd-header i { font-size: 24px; color: var(--accent); }\n            .zd-header h3 { margin: 0; color: var(--primary); font-weight: 800; }\n\n            \/* Form Elements *\/\n            .zd-form-group { margin-bottom: 15px; }\n            .zd-label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--text); font-size: 0.9rem; }\n            .zd-select, .zd-input { \n                width: 100%; padding: 12px; border: 1px solid #cbd5e1; border-radius: 10px; \n                outline: none; transition: 0.2s; font-size: 0.95rem; background: #f8fafc;\n            }\n            .zd-select:focus, .zd-input:focus { border-color: var(--accent); background: #fff; box-shadow: 0 0 0 3px rgba(37,99,235,0.1); }\n            \n            \/* Buttons *\/\n            .zd-btn { \n                width: 100%; padding: 14px; border: none; border-radius: 10px; font-weight: 700; \n                cursor: pointer; color: #fff; display: flex; align-items: center; justify-content: center; gap: 10px;\n                transition: transform 0.2s, box-shadow 0.2s; font-size: 1rem;\n            }\n            .btn-create { background: linear-gradient(135deg, #2563eb, #1d4ed8); box-shadow: 0 4px 12px rgba(37,99,235,0.3); }\n            .btn-create:hover { transform: translateY(-2px); box-shadow: 0 6px 15px rgba(37,99,235,0.4); }\n            .btn-create:disabled { background: #94a3b8; transform: none; box-shadow: none; cursor: not-allowed; }\n            .btn-submit { background: #10b981; margin-top: 20px; } .btn-submit:hover { background: #059669; }\n\n            \/* Content Area *\/\n            .zd-content { \n                flex-grow: 1; background: var(--white); padding: 40px; border-radius: 16px; \n                box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1); min-height: 700px; border: 1px solid #e2e8f0;\n            }\n            \n            \/* Exam Styling *\/\n            .zd-part-header { \n                background: #eff6ff; padding: 15px 20px; border-left: 6px solid var(--accent); \n                font-weight: 800; margin: 30px 0 20px; color: var(--primary); \n                text-transform: uppercase; letter-spacing: 0.5px; border-radius: 0 8px 8px 0;\n            }\n            .zd-question { margin-bottom: 30px; padding-bottom: 20px; border-bottom: 1px dashed #e2e8f0; }\n            .zd-q-title { font-weight: 600; color: #1e293b; margin-bottom: 15px; line-height: 1.6; font-size: 1.05rem; }\n            \n            .zd-opt { \n                display: flex; align-items: center; width: 100%; margin-bottom: 10px; \n                padding: 10px 15px; border: 1px solid #e2e8f0; border-radius: 8px; \n                cursor: pointer; transition: 0.2s; \n            }\n            .zd-opt:hover { background: #f8fafc; border-color: var(--accent); }\n            .zd-opt input { margin-right: 12px; width: 18px; height: 18px; accent-color: var(--accent); }\n\n            \/* True\/False Table *\/\n            .zd-tf-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid #e2e8f0; border-radius: 8px; overflow: hidden; }\n            .zd-tf-table th, .zd-tf-table td { padding: 12px 15px; border-bottom: 1px solid #e2e8f0; }\n            .zd-tf-table th { background: #f8fafc; font-weight: 700; color: var(--primary); }\n            .zd-tf-table tr:last-child td { border-bottom: none; }\n            .text-center { text-align: center; }\n\n            \/* Result & Explanation *\/\n            .zd-explain { \n                background: #fffbeb; padding: 20px; border-radius: 12px; margin-top: 15px; \n                border: 1px solid #fcd34d; display: none; color: #92400e; box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n            }\n            .zd-correct { background: #dcfce7 !important; border-color: #86efac !important; font-weight: bold; }\n            .zd-wrong { background: #fee2e2 !important; border-color: #fca5a5 !important; }\n\n            #zd-loading { display: none; text-align: center; padding: 60px; color: var(--accent); }\n            \n            @media (max-width: 900px) { .zd-wrapper { flex-direction: column; } .zd-sidebar { width: 100%; position: static; } }\n        <\/style>\n\n        <div class=\"zd-wrapper\">\n            <div class=\"zd-sidebar\">\n                <div class=\"zd-header\">\n                    <i class=\"fas fa-layer-group\"><\/i>\n                    <h3>Z-DHSUni Pro<\/h3>\n                <\/div>\n                \n                <div class=\"zd-form-group\">\n                    <label class=\"zd-label\">M\u00e3 k\u00edch ho\u1ea1t <span style=\"color:red\">*<\/span><\/label>\n                    <input type=\"password\" id=\"zd_code\" class=\"zd-input\" placeholder=\"Nh\u1eadp m\u00e3 code...\">\n                <\/div>\n\n                <div class=\"zd-form-group\">\n                    <label class=\"zd-label\">C\u1ea5u tr\u00fac \u0111\u1ec1 thi<\/label>\n                    <select id=\"zd_struct\" class=\"zd-select\" onchange=\"updateUI()\">\n                        <option value=\"2025\">Ma tr\u1eadn m\u1edbi 2025 (B\u1ed9 GD)<\/option>\n                        <option value=\"2018\">C\u1ea5u tr\u00fac c\u0169 2018 (Tr\u1eafc nghi\u1ec7m)<\/option>\n                    <\/select>\n                <\/div>\n\n                <div class=\"zd-form-group\">\n                    <label class=\"zd-label\">L\u1edbp h\u1ecdc<\/label>\n                    <select id=\"zd_class\" class=\"zd-select\">\n                        <option value=\"12\">L\u1edbp 12<\/option>\n                        <option value=\"11\">L\u1edbp 11<\/option>\n                        <option value=\"10\">L\u1edbp 10<\/option>\n                        <option value=\"9\">L\u1edbp 9 (THCS)<\/option>\n                        <option value=\"\u0110\u1ea1i h\u1ecdc\">\u0110\u1ea1i h\u1ecdc \/ Cao \u0111\u1eb3ng<\/option>\n                    <\/select>\n                <\/div>\n\n                <div class=\"zd-form-group\">\n                    <label class=\"zd-label\">M\u00f4n h\u1ecdc<\/label>\n                    <select id=\"zd_subject\" class=\"zd-select\" onchange=\"updateTopics()\">\n                        <\/select>\n                <\/div>\n\n                <div class=\"zd-form-group\">\n                    <label class=\"zd-label\">Ch\u1ee7 \u0111\u1ec1 (T\u1ef1 \u0111\u1ed9ng)<\/label>\n                    <select id=\"zd_topic\" class=\"zd-select\"><\/select>\n                <\/div>\n\n                <div class=\"zd-form-group\" id=\"div_socau\" style=\"display:none\">\n                    <label class=\"zd-label\">S\u1ed1 c\u00e2u (Ch\u1ebf \u0111\u1ed9 2018)<\/label>\n                    <input type=\"number\" id=\"zd_socau\" class=\"zd-input\" value=\"10\">\n                <\/div>\n\n                <hr style=\"border:0; border-top:1px solid #e2e8f0; margin: 25px 0;\">\n                \n                <button id=\"btnCreate\" class=\"zd-btn btn-create\" onclick=\"zdCreateExam()\">\n                    <i class=\"fas fa-wand-magic-sparkles\"><\/i> T\u1ea0O \u0110\u1ec0 AI\n                <\/button>\n            <\/div>\n\n            <div class=\"zd-content\">\n                <div style=\"display:flex; justify-content:space-between; align-items:center;\">\n                    <h2 style=\"margin:0; color:var(--primary)\" id=\"examTitle\">\ud83d\udcc4 \u0110\u1ec1 thi<\/h2>\n                    <button onclick=\"window.print()\" style=\"background:none; border:none; cursor:pointer; color:#64748b; font-size:1.2rem\" title=\"In \u0111\u1ec1\"><i class=\"fas fa-print\"><\/i><\/button>\n                <\/div>\n                <hr style=\"margin: 20px 0; border:0; border-top:1px solid #e2e8f0;\">\n\n                <div id=\"zd-loading\">\n                    <i class=\"fas fa-circle-notch fa-spin fa-3x\"><\/i><br><br>\n                    <h4 style=\"margin:10px 0\">H\u1ec7 th\u1ed1ng \u0111ang ph\u00e2n t\u00edch v\u00e0 t\u1ea1o \u0111\u1ec1...<\/h4>\n                    <span style=\"color:#64748b\">Vui l\u00f2ng \u0111\u1ee3i 30-60 gi\u00e2y \u0111\u1ec3 AI x\u1eed l\u00fd LaTeX v\u00e0 Ma tr\u1eadn.<\/span>\n                <\/div>\n\n                <div id=\"zd-exam-body\">\n                    <div style=\"text-align:center; padding-top:100px; color:#cbd5e1;\">\n                        <i class=\"fas fa-folder-open fa-5x\"><\/i><br><br>\n                        <p style=\"font-size:1.1rem; color:#94a3b8\">Ch\u1ecdn m\u00f4n h\u1ecdc v\u00e0 nh\u1ea5n n\u00fat \"T\u1ea1o \u0111\u1ec1 AI\" \u0111\u1ec3 b\u1eaft \u0111\u1ea7u.<\/p>\n                    <\/div>\n                <\/div>\n\n                <button id=\"zd-submit\" class=\"zd-btn btn-submit\" style=\"display:none\" onclick=\"zdCheckResult()\">\n                    <i class=\"fas fa-check-circle\"><\/i> N\u1ed9p b\u00e0i & Xem \u0111\u00e1p \u00e1n\n                <\/button>\n            <\/div>\n        <\/div>\n\n        <script>\n        \/\/ KHO D\u1eee LI\u1ec6U CH\u1ee6 \u0110\u1ec0 T\u1ef0 \u0110\u1ed8NG (FULL M\u00d4N)\n        const SUBJECT_DB = {\n            'To\u00e1n h\u1ecdc': ['Kh\u1ea3o s\u00e1t h\u00e0m s\u1ed1', 'M\u0169 v\u00e0 Logarit', 'Nguy\u00ean h\u00e0m - T\u00edch ph\u00e2n', 'S\u1ed1 ph\u1ee9c', 'H\u00ecnh h\u1ecdc kh\u00f4ng gian', 'H\u00ecnh h\u1ecdc Oxyz', 'T\u1ed5 h\u1ee3p - X\u00e1c su\u1ea5t'],\n            'V\u1eadt l\u00ed': ['Dao \u0111\u1ed9ng c\u01a1', 'S\u00f3ng c\u01a1', 'D\u00f2ng \u0111i\u1ec7n xoay chi\u1ec1u', 'Dao \u0111\u1ed9ng \u0111i\u1ec7n t\u1eeb', 'S\u00f3ng \u00e1nh s\u00e1ng', 'L\u01b0\u1ee3ng t\u1eed \u00e1nh s\u00e1ng', 'H\u1ea1t nh\u00e2n nguy\u00ean t\u1eed'],\n            'H\u00f3a h\u1ecdc': ['Este - Lipit', 'Cacbohidrat', 'Amin, Amino Axit, Protein', 'Polime', '\u0110\u1ea1i c\u01b0\u01a1ng kim lo\u1ea1i', 'Kim lo\u1ea1i ki\u1ec1m', 'S\u1eaft v\u00e0 h\u1ee3p ch\u1ea5t', 'H\u00f3a h\u1ecdc v\u00e0 m\u00f4i tr\u01b0\u1eddng'],\n            'Sinh h\u1ecdc': ['Di truy\u1ec1n h\u1ecdc', 'Ti\u1ebfn h\u00f3a', 'Sinh th\u00e1i h\u1ecdc', 'Sinh h\u1ecdc t\u1ebf b\u00e0o', 'Vi sinh v\u1eadt'],\n            'L\u1ecbch s\u1eed': ['L\u1ecbch s\u1eed Th\u1ebf gi\u1edbi hi\u1ec7n \u0111\u1ea1i', 'L\u1ecbch s\u1eed Vi\u1ec7t Nam (1919-1945)', 'L\u1ecbch s\u1eed Vi\u1ec7t Nam (1945-1975)', 'L\u1ecbch s\u1eed Vi\u1ec7t Nam (1975-nay)'],\n            '\u0110\u1ecba l\u00ed': ['\u0110\u1ecba l\u00ed t\u1ef1 nhi\u00ean Vi\u1ec7t Nam', '\u0110\u1ecba l\u00ed d\u00e2n c\u01b0', '\u0110\u1ecba l\u00ed c\u00e1c ng\u00e0nh kinh t\u1ebf', '\u0110\u1ecba l\u00ed c\u00e1c v\u00f9ng kinh t\u1ebf'],\n            'GDCD': ['Ph\u00e1p lu\u1eadt v\u00e0 \u0111\u1eddi s\u1ed1ng', 'Quy\u1ec1n b\u00ecnh \u0111\u1eb3ng', 'Quy\u1ec1n t\u1ef1 do c\u01a1 b\u1ea3n', 'Quy\u1ec1n d\u00e2n ch\u1ee7', 'Ph\u00e1p lu\u1eadt qu\u1ed1c t\u1ebf'],\n            'Ng\u1eef v\u0103n': ['\u0110\u1ecdc hi\u1ec3u v\u0103n b\u1ea3n', 'Ngh\u1ecb lu\u1eadn x\u00e3 h\u1ed9i', 'Ngh\u1ecb lu\u1eadn v\u0103n h\u1ecdc', 'Th\u01a1 hi\u1ec7n \u0111\u1ea1i', 'Truy\u1ec7n ng\u1eafn hi\u1ec7n \u0111\u1ea1i'],\n            'Ti\u1ebfng Anh': ['Ng\u1eef ph\u00e1p t\u1ed5ng h\u1ee3p', 'T\u1eeb v\u1ef1ng theo ch\u1ee7 \u0111\u1ec1', 'K\u1ef9 n\u0103ng \u0110\u1ecdc hi\u1ec3u', 'Ph\u00e1t \u00e2m v\u00e0 Tr\u1ecdng \u00e2m', 'T\u00ecm l\u1ed7i sai'],\n            'Tin h\u1ecdc': ['L\u1eadp tr\u00ecnh Python\/C++', 'C\u01a1 s\u1edf d\u1eef li\u1ec7u', 'M\u1ea1ng m\u00e1y t\u00ednh', 'H\u1ec7 \u0111i\u1ec1u h\u00e0nh', 'Tin h\u1ecdc v\u0103n ph\u00f2ng'],\n            'C\u00f4ng ngh\u1ec7': ['K\u1ef9 thu\u1eadt \u0111i\u1ec7n', 'K\u1ef9 thu\u1eadt \u0111i\u1ec7n t\u1eed', 'Tr\u1ed3ng tr\u1ecdt', 'Ch\u0103n nu\u00f4i', 'Doanh nghi\u1ec7p v\u00e0 c\u00f4ng ngh\u1ec7'],\n            'Gi\u00e1o d\u1ee5c QP': ['\u0110\u1ed9i ng\u0169 h\u00e0ng ng\u0169', 'K\u1ef9 thu\u1eadt b\u1eafn s\u00fang', 'Chi\u1ebfn thu\u1eadt b\u1ed9 binh', 'An ninh qu\u1ed1c ph\u00f2ng']\n        };\n\n        \/\/ Kh\u1edfi t\u1ea1o\n        function init() {\n            const subSel = document.getElementById('zd_subject');\n            subSel.innerHTML = \"\";\n            for (const sub in SUBJECT_DB) {\n                subSel.add(new Option(sub, sub));\n            }\n            updateTopics();\n        }\n\n        function updateTopics() {\n            const sub = document.getElementById('zd_subject').value;\n            const topicSel = document.getElementById('zd_topic');\n            const struct = document.getElementById('zd_struct').value;\n            \n            topicSel.innerHTML = \"\";\n            \n            if(struct === '2025') {\n                \/\/ N\u1ebfu ch\u1ecdn c\u1ea5u tr\u00fac 2025 -> T\u1ef1 \u0111\u1ed9ng Ma tr\u1eadn\n                topicSel.add(new Option(\"T\u1ed5ng h\u1ee3p ki\u1ebfn th\u1ee9c (Ma tr\u1eadn B\u1ed9 GD)\", \"T\u1ed5ng h\u1ee3p ki\u1ebfn th\u1ee9c theo Ma tr\u1eadn 2025\"));\n                topicSel.disabled = true;\n            } else {\n                \/\/ N\u1ebfu 2018 -> Cho ch\u1ecdn ch\u1ee7 \u0111\u1ec1\n                topicSel.disabled = false;\n                if(SUBJECT_DB[sub]) {\n                    SUBJECT_DB[sub].forEach(t => topicSel.add(new Option(t, t)));\n                    topicSel.add(new Option(\"T\u1ed5ng h\u1ee3p \u0111\u1ec1 thi th\u1eed\", \"T\u1ed5ng h\u1ee3p \u0111\u1ec1 thi th\u1eed\"));\n                }\n            }\n        }\n\n        function updateUI() {\n            const struct = document.getElementById('zd_struct').value;\n            const divSocau = document.getElementById('div_socau');\n            if(struct === '2025') {\n                divSocau.style.display = 'none';\n            } else {\n                divSocau.style.display = 'block';\n            }\n            updateTopics();\n        }\n\n        \/\/ --- CORE LOGIC ---\n        function zdCreateExam() {\n            const code = jQuery('#zd_code').val();\n            const mon = jQuery('#zd_subject').val();\n            const chude = jQuery('#zd_topic').val();\n            \n            if(!code) { alert('Vui l\u00f2ng nh\u1eadp M\u00e3 k\u00edch ho\u1ea1t!'); return; }\n            \n            jQuery('#zd-exam-body').hide();\n            jQuery('#zd-loading').show();\n            jQuery('#btnCreate').prop('disabled', true).html('<i class=\"fas fa-spinner fa-spin\"><\/i> \u0110ANG X\u1eec L\u00dd...');\n            jQuery('#zd-submit').hide();\n\n            jQuery.ajax({\n                url: 'https:\/\/z-dhsuni.site\/wp\/wp-admin\/admin-ajax.php',\n                method: 'POST',\n                data: {\n                    action: 'zd_generate_v6',\n                    code: code,\n                    struct: jQuery('#zd_struct').val(),\n                    mon: mon,\n                    lop: jQuery('#zd_class').val(),\n                    chude: chude,\n                    socau: jQuery('#zd_socau').val(),\n                    nonce: '5add044d31'\n                },\n                success: function(res) {\n                    jQuery('#zd-loading').hide();\n                    jQuery('#btnCreate').prop('disabled', false).html('<i class=\"fas fa-wand-magic-sparkles\"><\/i> T\u1ea0O \u0110\u1ec0 AI');\n                    \n                    if(res.success) {\n                        renderExamV6(res.data, jQuery('#zd_struct').val(), mon);\n                        jQuery('#zd-exam-body').show();\n                        if(mon !== 'Ng\u1eef v\u0103n') jQuery('#zd-submit').show();\n                        if(window.MathJax) MathJax.typesetPromise();\n                        \/\/ Cu\u1ed9n xu\u1ed1ng\n                        jQuery('html, body').animate({ scrollTop: jQuery(\".zd-content\").offset().top - 20 }, 1000);\n                    } else {\n                        jQuery('#zd-exam-body').show().html(`<div style=\"color:red; background:#fee2e2; padding:20px; border-radius:10px; border:1px solid #ef4444\">\u274c L\u1ed7i: ${res.data}<\/div>`);\n                    }\n                },\n                error: function() {\n                    alert('L\u1ed7i k\u1ebft n\u1ed1i Server!');\n                    jQuery('#zd-loading').hide();\n                    jQuery('#btnCreate').prop('disabled', false).html('Th\u1eed l\u1ea1i');\n                }\n            });\n        }\n\n        function renderExamV6(data, type, mon) {\n            let html = `<h2 style=\"text-align:center; color:#0f172a; margin-bottom:10px; text-transform:uppercase\">\u0110\u1ec0 THI ${mon}<\/h2>\n                        <p style=\"text-align:center; color:#64748b; margin-bottom:30px\">C\u1ea5u tr\u00fac: ${type} | L\u1edbp: ${jQuery('#zd_class').val()}<\/p>`;\n\n            \/\/ X\u1eed l\u00fd V\u0103n\n            if(mon === 'Ng\u1eef v\u0103n') {\n                html += `<div class=\"zd-question\">\n                    <h3>I. \u0110\u1eccC HI\u1ec2U (4.0 \u0111i\u1ec3m)<\/h3>\n                    <div style=\"background:#f8fafc; padding:20px; border-left:4px solid #cbd5e1; font-style:italic; line-height:1.6; margin-bottom:15px\">${data.doc_hieu_de_bai}<\/div>\n                    ${data.doc_hieu_cau_hoi.map((q,i) => `<p><b>C\u00e2u ${i+1}:<\/b> ${q}<\/p>`).join('')}\n                    <h3 style=\"margin-top:30px\">II. L\u00c0M V\u0102N (6.0 \u0111i\u1ec3m)<\/h3>\n                    <p><b>C\u00e2u 1 (2.0 \u0111i\u1ec3m):<\/b> ${data.nghi_luan_xh}<\/p>\n                    <p><b>C\u00e2u 2 (4.0 \u0111i\u1ec3m):<\/b> ${data.nghi_luan_vh}<\/p>\n                    <div class=\"zd-explain\" style=\"display:block; margin-top:25px\"><h4>\ud83d\udca1 G\u1ee2I \u00dd CHI TI\u1ebeT:<\/h4>${data.goi_y}<\/div>\n                <\/div>`;\n                jQuery('#zd-exam-body').html(html);\n                return;\n            }\n\n            \/\/ X\u1eed l\u00fd 2018\n            if (type === '2018') {\n                data.forEach((q, i) => {\n                    html += buildQuestion(i, q, 'q');\n                });\n            } \n            \/\/ X\u1eed l\u00fd 2025 (Fix l\u1ed7i th\u00f4ng minh)\n            else {\n                \/\/ Ph\u1ea7n 1: Tr\u1eafc nghi\u1ec7m\n                if(data.part1 && data.part1.length > 0) {\n                    html += `<div class=\"zd-part-header\">PH\u1ea6N I: TR\u1eaeC NGHI\u1ec6M NHI\u1ec0U L\u1ef0A CH\u1eccN<\/div>`;\n                    data.part1.forEach((q, i) => html += buildQuestion(i, q, 'p1'));\n                }\n\n                \/\/ Ph\u1ea7n 2: \u0110\u00fang Sai (N\u1ebfu thi\u1ebfu c\u00e2u, v\u1eabn render s\u1ed1 c\u00e2u hi\u1ec7n c\u00f3)\n                if(data.part2 && data.part2.length > 0) {\n                    html += `<div class=\"zd-part-header\">PH\u1ea6N II: TR\u1eaeC NGHI\u1ec6M \u0110\u00daNG SAI<\/div>`;\n                    data.part2.forEach((q, i) => {\n                        \/\/ Ki\u1ec3m tra d\u1eef li\u1ec7u an to\u00e0n\n                        let a = q.a || \"...\"; let b = q.b || \"...\"; let c = q.c || \"...\"; let d = q.d || \"...\";\n                        html += `<div class=\"zd-question\" id=\"p2_${i}\">\n                            <div class=\"zd-q-title\"><b>C\u00e2u ${i+1}:<\/b> ${q.question}<\/div>\n                            <table class=\"zd-tf-table\">\n                                <tr><th width=\"50\">\u00dd<\/th><th>N\u1ed9i dung nh\u1eadn \u0111\u1ecbnh<\/th><th width=\"60\" class=\"text-center\">\u0110<\/th><th width=\"60\" class=\"text-center\">S<\/th><\/tr>\n                                ${renderTFRow(i, 'a', a)} ${renderTFRow(i, 'b', b)} ${renderTFRow(i, 'c', c)} ${renderTFRow(i, 'd', d)}\n                            <\/table>\n                            <div class=\"zd-explain\" id=\"exp_p2_${i}\">\n                                \ud83d\udc49 \u0110\u00e1p \u00e1n: a-${q.a_ans||'?'}, b-${q.b_ans||'?'}, c-${q.c_ans||'?'}, d-${q.d_ans||'?'}.<br>${q.explanation||''}\n                            <\/div>\n                        <\/div>`;\n                    });\n                }\n\n                \/\/ Ph\u1ea7n 3: Tr\u1ea3 l\u1eddi ng\u1eafn\n                if(data.part3 && data.part3.length > 0) {\n                    html += `<div class=\"zd-part-header\">PH\u1ea6N III: TR\u1ea2 L\u1edcI NG\u1eaeN<\/div>`;\n                    data.part3.forEach((q, i) => {\n                        html += `<div class=\"zd-question\" id=\"p3_${i}\">\n                            <div class=\"zd-q-title\"><b>C\u00e2u ${i+1}:<\/b> ${q.question}<\/div>\n                            <input type=\"text\" class=\"zd-input\" style=\"max-width:200px; font-weight:bold; color:#2563eb\" placeholder=\"Nh\u1eadp s\u1ed1 (VD: -2,5)...\" id=\"ans_p3_${i}\">\n                            <div class=\"zd-explain\" id=\"exp_p3_${i}\">\ud83d\udc49 \u0110\u00e1p \u00e1n \u0111\u00fang: <b>${q.answer}<\/b><br>${q.explanation}<\/div>\n                        <\/div>`;\n                    });\n                }\n            }\n            jQuery('#zd-exam-body').html(html);\n        }\n\n        function buildQuestion(i, q, p) {\n            let labelA = q.A || \"L\u1ed7i\"; let labelB = q.B || \"L\u1ed7i\"; let labelC = q.C || \"L\u1ed7i\"; let labelD = q.D || \"L\u1ed7i\";\n            return `<div class=\"zd-question\" id=\"${p}_${i}\">\n                <div class=\"zd-q-title\"><b>C\u00e2u ${i+1}:<\/b> ${q.question}<\/div>\n                <div style=\"display:flex; flex-wrap:wrap; gap:10px\">\n                    <label class=\"zd-opt\" style=\"width:48%\"><input type=\"radio\" name=\"${p}_${i}\" value=\"A\"> <b>A.<\/b> ${labelA}<\/label>\n                    <label class=\"zd-opt\" style=\"width:48%\"><input type=\"radio\" name=\"${p}_${i}\" value=\"B\"> <b>B.<\/b> ${labelB}<\/label>\n                    <label class=\"zd-opt\" style=\"width:48%\"><input type=\"radio\" name=\"${p}_${i}\" value=\"C\"> <b>C.<\/b> ${labelC}<\/label>\n                    <label class=\"zd-opt\" style=\"width:48%\"><input type=\"radio\" name=\"${p}_${i}\" value=\"D\"> <b>D.<\/b> ${labelD}<\/label>\n                <\/div>\n                <div class=\"zd-explain\" id=\"exp_${p}_${i}\">\ud83d\udc49 \u0110\u00e1p \u00e1n: <b>${q.answer}<\/b>.<br>${q.explanation}<\/div>\n            <\/div>`;\n        }\n\n        function renderTFRow(qIdx, sub, text) {\n            return `<tr>\n                <td class=\"text-center\"><b>${sub})<\/b><\/td>\n                <td>${text}<\/td>\n                <td class=\"text-center\"><input type=\"radio\" name=\"p2_${qIdx}_${sub}\" value=\"True\"><\/td>\n                <td class=\"text-center\"><input type=\"radio\" name=\"p2_${qIdx}_${sub}\" value=\"False\"><\/td>\n            <\/tr>`;\n        }\n\n        function zdCheckResult() {\n            jQuery('.zd-explain').fadeIn();\n            if(window.MathJax) MathJax.typesetPromise();\n        }\n\n        \/\/ Ch\u1ea1y kh\u1edfi t\u1ea1o\n        init();\n        <\/script>\n        \n\n\n\n<!-- Z-DHSUni | AI Notice - Isolated -->\n<div id=\"zdh_notice_overlay\" style=\"display:none;\">\n  <div id=\"zdh_notice_box\">\n    <h3>\ud83d\udd14 TH\u00d4NG B\u00c1O<\/h3>\n\n    <p>\n      <strong>T\u00ednh n\u0103ng T\u1ea1o \u0111\u1ec1 thi b\u1eb1ng AI<\/strong> l\u00e0 ch\u1ee9c n\u0103ng chuy\u00ean bi\u1ec7t\n      <span class=\"zdh_highlight\">ch\u1ec9 d\u00e0nh cho gi\u00e1o vi\u00ean<\/span>.\n    <\/p>\n\n    <p>\u0110\u1ec3 s\u1eed d\u1ee5ng, gi\u00e1o vi\u00ean c\u1ea7n:<\/p>\n    <ul>\n      <li>\u2714\ufe0f C\u00f3 <strong>m\u00e3 k\u00edch ho\u1ea1t h\u1ee3p l\u1ec7<\/strong><\/li>\n      <li>\u2714\ufe0f Thanh to\u00e1n <strong>10.000 VN\u0110<\/strong> (s\u1eed d\u1ee5ng v\u0129nh vi\u1ec5n)<\/li>\n    <\/ul>\n\n    <p class=\"zdh_note\">\n      \ud83d\udc49 H\u1ecdc sinh kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp<br>\n      \ud83d\udc49 Gi\u00e1o vi\u00ean vui l\u00f2ng li\u00ean h\u1ec7 ADMIN\n    <\/p>\n\n    <div class=\"zdh_actions\">\n      <a class=\"zdh_zalo\" href=\"https:\/\/zalo.me\/0345688010\" target=\"_blank\" rel=\"noopener\">\n        \ud83d\udcac Li\u00ean h\u1ec7 Admin (Zalo)\n      <\/a>\n      <button id=\"zdh_close_btn\">\u0110\u00e3 hi\u1ec3u<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n#zdh_notice_overlay {\n  position: fixed;\n  inset: 0;\n  background: rgba(0,0,0,0.45);\n  z-index: 999999;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n#zdh_notice_box {\n  width: 360px;\n  background: #fff;\n  border-radius: 14px;\n  padding: 20px;\n  font-family: Arial, sans-serif;\n  box-shadow: 0 12px 30px rgba(0,0,0,0.25);\n}\n\n#zdh_notice_box h3 {\n  text-align: center;\n  color: #1e88e5;\n  margin-top: 0;\n}\n\n#zdh_notice_box p,\n#zdh_notice_box li {\n  font-size: 14px;\n  line-height: 1.5;\n}\n\n.zdh_highlight {\n  color: #d32f2f;\n  font-weight: bold;\n}\n\n.zdh_note {\n  font-size: 13px;\n  color: #555;\n}\n\n.zdh_actions {\n  display: flex;\n  gap: 10px;\n  justify-content: center;\n  margin-top: 15px;\n  flex-wrap: wrap;\n}\n\n.zdh_actions button {\n  background: #fbc02d;\n  border: none;\n  padding: 8px 14px;\n  border-radius: 8px;\n  cursor: pointer;\n  font-weight: bold;\n}\n\n.zdh_zalo {\n  background: #1e88e5;\n  color: #fff;\n  text-decoration: none;\n  padding: 8px 12px;\n  border-radius: 8px;\n  font-size: 13px;\n}\n<\/style>\n\n<script>\n(function () {\n  const overlay = document.getElementById('zdh_notice_overlay');\n  const closeBtn = document.getElementById('zdh_close_btn');\n\n  if (!overlay || !closeBtn) return;\n\n  \/\/ Hi\u1ec7n popup\n  overlay.style.display = 'flex';\n\n  \/\/ \u0110\u00f3ng popup\n  closeBtn.addEventListener('click', function () {\n    overlay.style.display = 'none';\n  });\n})();\n<\/script>\n<!-- End Z-DHSUni Notice -->\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udd14 TH\u00d4NG B\u00c1O T\u00ednh n\u0103ng T\u1ea1o \u0111\u1ec1 thi b\u1eb1ng AI l\u00e0 ch\u1ee9c n\u0103ng chuy\u00ean bi\u1ec7t [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-2230","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/z-dhsuni.site\/wp\/wp-json\/wp\/v2\/pages\/2230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/z-dhsuni.site\/wp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/z-dhsuni.site\/wp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/z-dhsuni.site\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/z-dhsuni.site\/wp\/wp-json\/wp\/v2\/comments?post=2230"}],"version-history":[{"count":7,"href":"https:\/\/z-dhsuni.site\/wp\/wp-json\/wp\/v2\/pages\/2230\/revisions"}],"predecessor-version":[{"id":2256,"href":"https:\/\/z-dhsuni.site\/wp\/wp-json\/wp\/v2\/pages\/2230\/revisions\/2256"}],"wp:attachment":[{"href":"https:\/\/z-dhsuni.site\/wp\/wp-json\/wp\/v2\/media?parent=2230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}