{"id":247,"date":"2026-09-21T07:40:50","date_gmt":"2026-09-21T00:40:50","guid":{"rendered":"https:\/\/tokhtn-pvt.com\/?page_id=247"},"modified":"2026-10-05T19:24:42","modified_gmt":"2026-10-05T12:24:42","slug":"kho-hoc-lieu","status":"publish","type":"page","link":"https:\/\/tokhtn-pvt.com\/?page_id=247","title":{"rendered":"Kho h\u1ecdc li\u1ec7u"},"content":{"rendered":"\n<div class=\"khtn-wrap\" style=\"max-width:980px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:#1f2937;\">\n\n<!-- ===== BANNER TI\u00caU \u0110\u1ec0 ===== -->\n<div style=\"background:linear-gradient(135deg,#0d9488 0%,#0891b2 100%);border-radius:18px;padding:36px 28px 30px;margin-bottom:26px;text-align:center;box-shadow:0 8px 26px rgba(13,148,136,.22);\">\n  <h1 style=\"color:#fff;margin:0 0 10px;font-size:1.85em;font-weight:800;letter-spacing:.02em;\">\ud83d\udcda Kho h\u1ecdc li\u1ec7u T\u1ed5 KHTN<\/h1>\n  <p style=\"color:#ccfbf1;margin:0;font-size:1.02em;line-height:1.65;\">L\u01b0u tr\u1eef v\u00e0 chia s\u1ebb h\u1ecdc li\u1ec7u ch\u1ea5t l\u01b0\u1ee3ng cao d\u00e0nh cho gi\u00e1o vi\u00ean T\u1ed5 Khoa h\u1ecdc T\u1ef1 nhi\u00ean<br>Tr\u01b0\u1eddng THCS-THPT Phan V\u0103n Tr\u1ecb<\/p>\n<\/div>\n\n<!-- ===== \u00dd NGH\u0128A KHO H\u1eccC LI\u1ec6U ===== -->\n<div style=\"background:#f0fdfa;border-left:5px solid #0d9488;border-radius:0 12px 12px 0;padding:18px 22px;margin-bottom:28px;box-shadow:0 2px 8px rgba(15,118,110,.05);\">\n  <p style=\"margin:0 0 8px;font-weight:700;color:#0f766e;font-size:1.08em;display:flex;align-items:center;gap:8px;\">\n    <span>\ud83c\udf3f<\/span> \u00dd ngh\u0129a c\u1ee7a Kho h\u1ecdc li\u1ec7u T\u1ed5 KHTN\n  <\/p>\n  <p style=\"margin:0;color:#134e4a;line-height:1.8;font-size:0.97em;\">\n    Kho h\u1ecdc li\u1ec7u l\u00e0 <strong>kh\u00f4ng gian s\u1ed1 d\u00f9ng chung<\/strong> c\u1ee7a T\u1ed5 KHTN, n\u01a1i m\u1ed7i th\u1ea7y c\u00f4 c\u00f3 th\u1ec3 <strong>\u0111\u00f3ng g\u00f3p, t\u00ecm ki\u1ebfm v\u00e0 t\u00e1i s\u1eed d\u1ee5ng<\/strong> c\u00e1c t\u00e0i li\u1ec7u gi\u1ea3ng d\u1ea1y ch\u1ea5t l\u01b0\u1ee3ng: k\u1ebf ho\u1ea1ch b\u00e0i d\u1ea1y, \u0111\u1ec1 ki\u1ec3m tra, phi\u1ebfu h\u1ecdc t\u1eadp, b\u00e0i gi\u1ea3ng \u0111i\u1ec7n t\u1eed, th\u00ed nghi\u1ec7m \u1ea3o, video minh h\u1ecda v\u00e0 t\u00e0i li\u1ec7u b\u1ed3i d\u01b0\u1ee1ng h\u1ecdc sinh gi\u1ecfi&#8230; Vi\u1ec7c chia s\u1ebb h\u1ecdc li\u1ec7u gi\u00fap <strong>ti\u1ebft ki\u1ec7m th\u1eddi gian so\u1ea1n gi\u1ea3ng<\/strong>, n\u00e2ng cao ch\u1ea5t l\u01b0\u1ee3ng b\u00e0i d\u1ea1y v\u00e0 lan t\u1ecfa tinh th\u1ea7n h\u1ee3p t\u00e1c chuy\u00ean m\u00f4n trong to\u00e0n T\u1ed5.\n  <\/p>\n<\/div>\n\n<!-- ===== H\u01af\u1edaNG D\u1eaaN \u0110\u01afA H\u1eccC LI\u1ec6U L\u00caN DRIVE V\u00c0 T\u1ea2I H\u1eccC LI\u1ec6U V\u1ec0 ===== -->\n<div style=\"background:#fffbeb;border:1.8px solid #fde68a;border-radius:14px;padding:22px 24px;margin-bottom:28px;box-shadow:0 3px 12px rgba(217,119,6,.06);\">\n  <p style=\"margin:0 0 14px;font-weight:800;color:#92400e;font-size:1.15em;display:flex;align-items:center;gap:8px;\">\n    <span>\ud83d\udcd6<\/span> H\u01b0\u1edbng d\u1eabn \u0111\u01b0a h\u1ecdc li\u1ec7u l\u00ean Drive v\u00e0 t\u1ea3i h\u1ecdc li\u1ec7u v\u1ec1\n  <\/p>\n\n  <div style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-top:10px;\">\n    \n    <!-- C\u1ed8T 1: \u0110\u01afA H\u1eccC LI\u1ec6U L\u00caN DRIVE -->\n    <div style=\"background:#ffffff;border:1px solid #fef3c7;border-radius:10px;padding:16px 18px;box-shadow:0 1px 4px rgba(0,0,0,.03);\">\n      <h4 style=\"margin:0 0 10px;color:#0f766e;font-size:1.02em;font-weight:700;display:flex;align-items:center;gap:6px;\">\n        <span>\ud83d\udce4<\/span> 1. \u0110\u01b0a h\u1ecdc li\u1ec7u l\u00ean Drive (\u0110\u00f3ng g\u00f3p)\n      <\/h4>\n      <ul style=\"margin:0;padding-left:18px;color:#374151;font-size:0.92em;line-height:1.75;\">\n        <li style=\"margin-bottom:6px;\">\n          <strong>B\u01b0\u1edbc 1:<\/strong> B\u1ea5m <code>+ T\u1ea1o h\u1ecdc li\u1ec7u m\u1edbi<\/code> \u2192 \u0110i\u1ec1n <em>T\u00ean h\u1ecdc li\u1ec7u<\/em> &amp; <em>Gi\u1edbi thi\u1ec7u<\/em> \u2192 B\u1ea5m <code>\ud83d\udcbe L\u01b0u<\/code> \u0111\u1ec3 nh\u1eadn <strong>M\u00e3 s\u1ed1 h\u1ecdc li\u1ec7u<\/strong> (V\u00ed d\u1ee5: <code>#THCS-01<\/code>, <code>#THPT-01<\/code>&#8230;).\n        <\/li>\n        <li style=\"margin-bottom:4px;\">\n          <strong>B\u01b0\u1edbc 2:<\/strong> B\u1ea5m n\u00fat <code>M\u1edf th\u01b0 m\u1ee5c Drive \u0111\u1ec3 t\u1ea3i file l\u00ean<\/code> \u2192 \u0110\u1eb7t t\u00ean file ho\u1eb7c th\u01b0 m\u1ee5c tr\u00ean Drive b\u1eaft \u0111\u1ea7u b\u1eb1ng <strong>M\u00e3 s\u1ed1<\/strong> (V\u00ed d\u1ee5: <em>THPT-01 &#8211; Bai giang BENZENE<\/em>):\n          <ul style=\"margin:4px 0 0;padding-left:16px;color:#4b5563;\">\n            <li style=\"margin-bottom:3px;\"><strong>N\u1ebfu l\u00e0 T\u1ec7p \u0111\u01a1n:<\/strong> T\u1ea3i tr\u1ef1c ti\u1ebfp file Word, PPT, PDF, ho\u1eb7c file n\u00e9n .ZIP l\u00ean Drive.<\/li>\n            <li><strong>N\u1ebfu l\u00e0 Th\u01b0 m\u1ee5c g\u1ed3m nhi\u1ec1u file l\u1ebb:<\/strong> T\u1ea1o 1 Th\u01b0 m\u1ee5c con tr\u00ean Drive theo t\u00ean <em>[M\u00e3 s\u1ed1] &#8211; [T\u00ean h\u1ecdc li\u1ec7u]<\/em> r\u1ed3i t\u1ea3i t\u1ea5t c\u1ea3 c\u00e1c file v\u00e0o b\u00ean trong.<\/li>\n          <\/ul>\n        <\/li>\n      <\/ul>\n    <\/div>\n\n    <!-- C\u1ed8T 2: T\u1ea2I H\u1eccC LI\u1ec6U V\u1ec0 M\u00c1Y -->\n    <div style=\"background:#ffffff;border:1px solid #fef3c7;border-radius:10px;padding:16px 18px;box-shadow:0 1px 4px rgba(0,0,0,.03);\">\n      <h4 style=\"margin:0 0 10px;color:#7c3aed;font-size:1.02em;font-weight:700;display:flex;align-items:center;gap:6px;\">\n        <span>\ud83d\udce5<\/span> 2. T\u1ea3i h\u1ecdc li\u1ec7u v\u1ec1 m\u00e1y (S\u1eed d\u1ee5ng)\n      <\/h4>\n      <ul style=\"margin:0;padding-left:18px;color:#374151;font-size:0.92em;line-height:1.75;\">\n        <li style=\"margin-bottom:6px;\">\n          T\u00ecm h\u1ecdc li\u1ec7u c\u1ea7n d\u00f9ng trong danh m\u1ee5c b\u00ean d\u01b0\u1edbi \u2192 B\u1ea5m n\u00fat <strong><code>\ud83d\udce5 T\u1ea3i h\u1ecdc li\u1ec7u<\/code><\/strong> \u1edf g\u00f3c ph\u1ea3i c\u1ee7a b\u00e0i.\n        <\/li>\n        <li style=\"margin-bottom:6px;\">\n          <strong>N\u1ebfu l\u00e0 T\u1ec7p \u0111\u01a1n (File):<\/strong> T\u1ec7p s\u1ebd t\u1ef1 \u0111\u1ed9ng \u0111\u01b0\u1ee3c t\u1ea3i tr\u1ef1c ti\u1ebfp v\u1ec1 m\u00e1y t\u00ednh c\u1ee7a Th\u1ea7y\/C\u00f4.\n        <\/li>\n        <li style=\"margin-bottom:0;\">\n          <div style=\"background:#fef2f2;border-left:3.5px solid #ef4444;padding:9px 12px;border-radius:0 7px 7px 0;margin-top:6px;\">\n            <strong style=\"color:#b91c1c;\">\u2b50 Tr\u01b0\u1eddng h\u1ee3p l\u00e0 Th\u01b0 m\u1ee5c con (Folder nhi\u1ec1u file):<\/strong><br>\n            <span style=\"color:#1f2937;\">H\u1ec7 th\u1ed1ng d\u1eabn th\u1eb3ng v\u00e0o \u0111\u00fang th\u01b0 m\u1ee5c con \u0111\u00f3 tr\u00ean Google Drive \u2192 Qu\u00fd Th\u1ea7y\/C\u00f4 ch\u1ec9 vi\u1ec7c b\u1ea5m v\u00e0o <strong>T\u00ean th\u01b0 m\u1ee5c \u1edf thanh ti\u00eau \u0111\u1ec1 ph\u00eda tr\u00ean<\/strong> (ho\u1eb7c m\u0169i t\u00ean b\u00ean c\u1ea1nh t\u00ean th\u01b0 m\u1ee5c) \u2192 Ch\u1ecdn <strong>&#8220;T\u1ea3i xu\u1ed1ng&#8221; (Download)<\/strong>.<\/span><br>\n            <span style=\"color:#047857;font-weight:700;\">Google Drive s\u1ebd t\u1ef1 \u0111\u1ed9ng n\u00e9n to\u00e0n b\u1ed9 th\u01b0 m\u1ee5c th\u00e0nh 1 file .ZIP v\u00e0 t\u1ea3i v\u1ec1 m\u00e1y t\u00ednh<\/span> m\u00e0 kh\u00f4ng c\u1ea7n t\u1ea3i t\u1eebng file l\u1ebb!\n          <\/div>\n        <\/li>\n      <\/ul>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<!-- ========================================== -->\n<!-- ===== M\u1ee4C 1: H\u1eccC LI\u1ec6U KHTN KH\u1ed0I THCS ===== -->\n<!-- ========================================== -->\n<details id=\"khl-details-thcs\" style=\"margin-bottom:22px;border:1px solid #e5e7eb;border-radius:14px;padding:20px 24px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.04);\" open>\n<summary style=\"cursor:pointer;font-weight:700;font-size:1.2em;color:#0f766e;outline:none;user-select:none;\">\n  \ud83d\udcd7 H\u1ecdc li\u1ec7u KHTN kh\u1ed1i THCS\n<\/summary>\n\n<div style=\"margin-top:20px;\">\n\n  <!-- Thanh c\u00f4ng c\u1ee5: N\u00fat t\u1ea1o h\u1ecdc li\u1ec7u & Xem folder -->\n  <div style=\"display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px;\">\n    <button id=\"khl-create-btn-thcs\" onclick=\"khlShowForm('thcs')\"\n      style=\"display:inline-flex;align-items:center;gap:8px;background:#0d9488;color:#fff;border:none;border-radius:9px;padding:10px 22px;cursor:pointer;font-weight:700;font-size:0.95em;box-shadow:0 3px 10px rgba(13,148,136,.28);transition:all .2s;\">\n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\n      T\u1ea1o h\u1ecdc li\u1ec7u m\u1edbi\n    <\/button>\n    <a href=\"https:\/\/drive.google.com\/drive\/folders\/18S039u0guInZRJMOWVU5mXeOvHa13a__?usp=sharing\" target=\"_blank\" rel=\"noopener\"\n      style=\"display:inline-flex;align-items:center;gap:8px;background:#f0fdfa;color:#0f766e;text-decoration:none;padding:9px 18px;border:1.5px solid #99f6e4;border-radius:9px;font-weight:700;font-size:0.92em;box-shadow:0 2px 6px rgba(13,148,136,.1);\">\n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"17 8 12 3 7 8\"\/><line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"\/><\/svg>\n      M\u1edf th\u01b0 m\u1ee5c Drive \u0111\u1ec3 t\u1ea3i file l\u00ean\n    <\/a>\n  <\/div>\n\n  <!-- Khung so\u1ea1n th\u1ea3o t\u1ea1o h\u1ecdc li\u1ec7u m\u1edbi (\u1ea9n m\u1eb7c \u0111\u1ecbnh) -->\n  <div id=\"khl-form-thcs\" style=\"display:none;background:#f8fffe;border:1.8px solid #5eead4;border-radius:14px;padding:22px;margin-bottom:22px;box-shadow:0 4px 14px rgba(13,148,136,.08);\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;\">\n      <h3 style=\"margin:0;font-weight:700;color:#0f766e;font-size:1.08em;display:flex;align-items:center;gap:7px;\">\n        \ud83d\udcdd T\u1ea1o h\u1ecdc li\u1ec7u m\u1edbi \u2014 KHTN kh\u1ed1i THCS\n      <\/h3>\n      <button onclick=\"khlCancel('thcs')\" style=\"background:none;border:none;font-size:1.3em;color:#9ca3af;cursor:pointer;line-height:1;\" title=\"\u0110\u00f3ng\">\u2715<\/button>\n    <\/div>\n\n    <!-- G\u1ee3i \u00fd m\u00e3 \u0111\u1ecbnh danh h\u1ecdc li\u1ec7u -->\n    <div id=\"khl-code-hint-thcs\" style=\"background:#f0fdf4;border:1px dashed #86efac;padding:9px 14px;border-radius:8px;margin-bottom:14px;color:#166534;font-size:0.88em;line-height:1.5;\"><\/div>\n\n    <!-- Tr\u01b0\u1eddng 1: T\u00ean h\u1ecdc li\u1ec7u -->\n    <div style=\"margin-bottom:14px;\">\n      <label style=\"display:block;font-size:0.92em;font-weight:700;color:#374151;margin-bottom:6px;\">\n        T\u00ean h\u1ecdc li\u1ec7u <span style=\"color:#dc2626;\">*<\/span>\n      <\/label>\n      <input id=\"khl-title-thcs\" type=\"text\" maxlength=\"150\"\n        style=\"width:100%;box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:8px;padding:11px 14px;font-size:0.96em;font-family:inherit;outline:none;transition:border-color .2s;\"\n        placeholder=\"V\u00ed d\u1ee5: K\u1ebf ho\u1ea1ch b\u00e0i d\u1ea1y KHTN 6 \u2013 Ch\u1ee7 \u0111\u1ec1 N\u0103ng l\u01b0\u1ee3ng v\u00e0 s\u1ef1 s\u1ed1ng\"\n        onfocus=\"this.style.borderColor='#0d9488'\" onblur=\"this.style.borderColor='#d1d5db'\">\n    <\/div>\n\n    <!-- Tr\u01b0\u1eddng 2: Email gi\u00e1o vi\u00ean \u0111\u00f3ng g\u00f3p -->\n    <div style=\"margin-bottom:14px;\">\n      <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;\">\n        <label style=\"font-size:0.92em;font-weight:700;color:#374151;\">\n          Email Gmail Th\u1ea7y\/C\u00f4 (\u0111ang d\u00f9ng tr\u00ean tr\u00ecnh duy\u1ec7t) <span style=\"color:#dc2626;\">*<\/span>\n        <\/label>\n        <span id=\"khl-author-badge-thcs\" style=\"display:none;font-size:0.84em;font-weight:700;color:#0f766e;background:#ccfbf1;padding:2px 8px;border-radius:4px;\"><\/span>\n      <\/div>\n      <input id=\"khl-email-thcs\" type=\"email\" autocomplete=\"email\" list=\"khl-email-suggestions\"\n        style=\"width:100%;box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:8px;padding:11px 14px;font-size:0.96em;font-family:inherit;outline:none;transition:border-color .2s;\"\n        placeholder=\"Nh\u1eadp ho\u1eb7c ch\u1ecdn t\u00e0i kho\u1ea3n Gmail Th\u1ea7y\/C\u00f4 \u0111ang d\u00f9ng tr\u00ean tr\u00ecnh duy\u1ec7t...\"\n        onfocus=\"this.style.borderColor='#0d9488'\" onblur=\"this.style.borderColor='#d1d5db'\"\n        oninput=\"khlOnEmailChange('thcs')\">\n      <div style=\"display:flex;justify-content:space-between;align-items:center;margin-top:5px;\">\n        <span style=\"font-size:0.82em;color:#6b7280;\">\ud83d\udca1 Tr\u00ecnh duy\u1ec7t s\u1ebd t\u1ef1 \u0111\u1ed9ng g\u1ee3i \u00fd Gmail Th\u1ea7y\/C\u00f4 \u0111ang \u0111\u0103ng nh\u1eadp.<\/span>\n        <button type=\"button\" onclick=\"khlClearEmail('thcs')\" id=\"khl-change-email-btn-thcs\" style=\"display:none;background:none;border:none;color:#0d9488;font-size:0.82em;font-weight:600;cursor:pointer;text-decoration:underline;padding:0;\">\u0110\u1ed5i email kh\u00e1c<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- Tr\u01b0\u1eddng 3: Gi\u1edbi thi\u1ec7u h\u1ecdc li\u1ec7u -->\n    <div style=\"margin-bottom:14px;\">\n      <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;\">\n        <label style=\"font-size:0.92em;font-weight:700;color:#374151;\">\n          Gi\u1edbi thi\u1ec7u h\u1ecdc li\u1ec7u <span style=\"color:#dc2626;\">*<\/span>\n        <\/label>\n        <span id=\"khl-wc-thcs\" style=\"font-size:0.85em;font-weight:600;color:#6b7280;\">0\/50 ch\u1eef<\/span>\n      <\/div>\n      <textarea id=\"khl-desc-thcs\" rows=\"3\"\n        style=\"width:100%;box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:8px;padding:11px 14px;font-size:0.95em;font-family:inherit;resize:vertical;outline:none;transition:border-color .2s;\"\n        placeholder=\"M\u00f4 t\u1ea3 ng\u1eafn g\u1ecdn v\u1ec1 h\u1ecdc li\u1ec7u: kh\u1ed1i l\u1edbp, d\u1ea1ng t\u00e0i li\u1ec7u, ch\u1ee7 \u0111\u1ec1, m\u1ee5c ti\u00eau (t\u1ed1i \u0111a 50 ch\u1eef)...\"\n        onfocus=\"this.style.borderColor='#0d9488'\" onblur=\"this.style.borderColor='#d1d5db'\"\n        oninput=\"khlCountWords('thcs')\"><\/textarea>\n      <div id=\"khl-wc-err-thcs\" style=\"display:none;color:#dc2626;font-size:0.84em;margin-top:4px;font-weight:600;\">\n        \u26a0\ufe0f N\u1ed9i dung gi\u1edbi thi\u1ec7u \u0111\u00e3 v\u01b0\u1ee3t qu\u00e1 50 ch\u1eef! Vui l\u00f2ng r\u00fat g\u1ecdn l\u1ea1i.\n      <\/div>\n    <\/div>\n\n\n\n    <!-- B\u00e1o l\u1ed7i form -->\n    <div id=\"khl-form-err-thcs\" style=\"display:none;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:9px 14px;color:#dc2626;font-size:0.9em;margin-bottom:14px;\"><\/div>\n\n    <!-- N\u00fat h\u00e0nh \u0111\u1ed9ng -->\n    <div style=\"display:flex;gap:10px;align-items:center;\">\n      <button onclick=\"khlSubmit('thcs')\" id=\"khl-submit-thcs\"\n        style=\"background:#0d9488;color:#fff;border:none;border-radius:8px;padding:10px 24px;cursor:pointer;font-weight:700;font-size:0.95em;box-shadow:0 2px 8px rgba(13,148,136,.25);\">\n        \ud83d\udcbe L\u01b0u\n      <\/button>\n      <button onclick=\"khlCancel('thcs')\"\n        style=\"background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:8px;padding:10px 18px;cursor:pointer;font-size:0.93em;font-weight:500;\">\n        \u2715 Hu\u1ef7\n      <\/button>\n      <span id=\"khl-saving-thcs\" style=\"display:none;color:#0d9488;font-size:0.9em;font-weight:600;\">\u23f3 \u0110ang l\u01b0u h\u1ecdc li\u1ec7u&#8230;<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- H\u1ed9p th\u00f4ng b\u00e1o sau khi l\u01b0u th\u00e0nh c\u00f4ng (hi\u1ec3n th\u1ecb n\u00fat upload Drive nh\u01b0 h\u00ecnh 2) -->\n  <div id=\"khl-success-thcs\" style=\"display:none;background:#f0fdf4;border:1.8px solid #86efac;border-radius:14px;padding:20px 22px;margin-bottom:22px;box-shadow:0 4px 14px rgba(22,163,74,.08);\">\n    <div style=\"display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;\">\n      <p style=\"margin:0;font-weight:800;color:#166534;font-size:1.05em;display:flex;align-items:center;gap:7px;\">\n        <span>\ud83c\udf89<\/span> <span id=\"khl-success-title-thcs\">\u0110\u00e3 l\u01b0u th\u00f4ng tin h\u1ecdc li\u1ec7u!<\/span>\n      <\/p>\n      <button onclick=\"document.getElementById('khl-success-thcs').style.display='none'\" style=\"background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.1em;\" title=\"\u0110\u00f3ng\">\u2715<\/button>\n    <\/div>\n    <p id=\"khl-success-desc-thcs\" style=\"margin:0 0 12px;color:#374151;font-size:0.94em;line-height:1.6;\"><\/p>\n    <p style=\"margin:0 0 14px;color:#15803d;font-size:0.9em;font-weight:600;\">\n      \ud83d\udc49 B\u01b0\u1edbc ti\u1ebfp theo: Qu\u00fd Th\u1ea7y\/C\u00f4 b\u1ea5m n\u00fat b\u00ean d\u01b0\u1edbi \u0111\u1ec3 m\u1edf Google Drive v\u00e0 t\u1ea3i file h\u1ecdc li\u1ec7u l\u00ean:\n    <\/p>\n    <a href=\"https:\/\/drive.google.com\/drive\/folders\/18S039u0guInZRJMOWVU5mXeOvHa13a__?usp=sharing\" target=\"_blank\" rel=\"noopener\"\n      style=\"display:inline-flex;align-items:center;gap:9px;background:#0d9488;color:#fff;text-decoration:none;padding:11px 24px;border-radius:9px;font-weight:700;font-size:0.95em;box-shadow:0 3px 12px rgba(13,148,136,.32);\">\n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"17 8 12 3 7 8\"\/><line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"\/><\/svg>\n      M\u1edf th\u01b0 m\u1ee5c Drive \u0111\u1ec3 t\u1ea3i file l\u00ean\n    <\/a>\n  <\/div>\n\n  <!-- Danh s\u00e1ch h\u1ecdc li\u1ec7u THCS (style gi\u1ed1ng trang 20 V\u0103n b\u1ea3n ph\u00e1p qui) -->\n  <div style=\"border-top:1px solid #f3f4f6;padding-top:14px;\">\n    <h4 style=\"margin:0 0 14px;font-size:0.96em;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;\">\n      \ud83d\udccb Danh m\u1ee5c h\u1ecdc li\u1ec7u KHTN THCS \u0111\u00e3 \u0111\u0103ng\n    <\/h4>\n    <div id=\"khl-list-thcs\">\n      <p style=\"color:#9ca3af;font-style:italic;font-size:0.93em;padding:8px 0;\">\u23f3 \u0110ang t\u1ea3i danh s\u00e1ch h\u1ecdc li\u1ec7u&#8230;<\/p>\n    <\/div>\n  <\/div>\n\n<\/div>\n<\/details>\n\n\n<!-- ================================================== -->\n<!-- ===== M\u1ee4C 2: H\u1eccC LI\u1ec6U L\u00cd - H\u00d3A - SINH THPT ===== -->\n<!-- ================================================== -->\n<details id=\"khl-details-thpt\" style=\"margin-bottom:22px;border:1px solid #e5e7eb;border-radius:14px;padding:20px 24px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.04);\">\n<summary style=\"cursor:pointer;font-weight:700;font-size:1.2em;color:#7c3aed;outline:none;user-select:none;\">\n  \ud83d\udcd8 H\u1ecdc li\u1ec7u L\u00ed-H\u00f3a-Sinh THPT\n<\/summary>\n\n<div style=\"margin-top:20px;\">\n\n  <!-- Thanh c\u00f4ng c\u1ee5: N\u00fat t\u1ea1o h\u1ecdc li\u1ec7u & Xem folder -->\n  <div style=\"display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px;\">\n    <button id=\"khl-create-btn-thpt\" onclick=\"khlShowForm('thpt')\"\n      style=\"display:inline-flex;align-items:center;gap:8px;background:#7c3aed;color:#fff;border:none;border-radius:9px;padding:10px 22px;cursor:pointer;font-weight:700;font-size:0.95em;box-shadow:0 3px 10px rgba(124,58,237,.28);transition:all .2s;\">\n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\n      T\u1ea1o h\u1ecdc li\u1ec7u m\u1edbi\n    <\/button>\n    <a href=\"https:\/\/drive.google.com\/drive\/folders\/1AR1RwMmBK2eTdZj9misNtSJGMcIoRYwO?usp=sharing\" target=\"_blank\" rel=\"noopener\"\n      style=\"display:inline-flex;align-items:center;gap:8px;background:#faf5ff;color:#7c3aed;text-decoration:none;padding:9px 18px;border:1.5px solid #d8b4fe;border-radius:9px;font-weight:700;font-size:0.92em;box-shadow:0 2px 6px rgba(124,58,237,.1);\">\n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"17 8 12 3 7 8\"\/><line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"\/><\/svg>\n      M\u1edf th\u01b0 m\u1ee5c Drive \u0111\u1ec3 t\u1ea3i file l\u00ean\n    <\/a>\n  <\/div>\n\n  <!-- Khung so\u1ea1n th\u1ea3o t\u1ea1o h\u1ecdc li\u1ec7u m\u1edbi (\u1ea9n m\u1eb7c \u0111\u1ecbnh) -->\n  <div id=\"khl-form-thpt\" style=\"display:none;background:#fdf8ff;border:1.8px solid #c4b5fd;border-radius:14px;padding:22px;margin-bottom:22px;box-shadow:0 4px 14px rgba(124,58,237,.08);\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;\">\n      <h3 style=\"margin:0;font-weight:700;color:#7c3aed;font-size:1.08em;display:flex;align-items:center;gap:7px;\">\n        \ud83d\udcdd T\u1ea1o h\u1ecdc li\u1ec7u m\u1edbi \u2014 L\u00ed-H\u00f3a-Sinh THPT\n      <\/h3>\n      <button onclick=\"khlCancel('thpt')\" style=\"background:none;border:none;font-size:1.3em;color:#9ca3af;cursor:pointer;line-height:1;\" title=\"\u0110\u00f3ng\">\u2715<\/button>\n    <\/div>\n\n    <!-- G\u1ee3i \u00fd m\u00e3 \u0111\u1ecbnh danh h\u1ecdc li\u1ec7u -->\n    <div id=\"khl-code-hint-thpt\" style=\"background:#faf5ff;border:1px dashed #d8b4fe;padding:9px 14px;border-radius:8px;margin-bottom:14px;color:#6b21a8;font-size:0.88em;line-height:1.5;\"><\/div>\n\n    <!-- Tr\u01b0\u1eddng 1: T\u00ean h\u1ecdc li\u1ec7u -->\n    <div style=\"margin-bottom:14px;\">\n      <label style=\"display:block;font-size:0.92em;font-weight:700;color:#374151;margin-bottom:6px;\">\n        T\u00ean h\u1ecdc li\u1ec7u <span style=\"color:#dc2626;\">*<\/span>\n      <\/label>\n      <input id=\"khl-title-thpt\" type=\"text\" maxlength=\"150\"\n        style=\"width:100%;box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:8px;padding:11px 14px;font-size:0.96em;font-family:inherit;outline:none;transition:border-color .2s;\"\n        placeholder=\"V\u00ed d\u1ee5: \u0110\u1ec1 thi th\u1eed t\u1ed1t nghi\u1ec7p THPT 2026 m\u00f4n V\u1eadt l\u00ed \u2013 \u0110\u1ec1 s\u1ed1 01\"\n        onfocus=\"this.style.borderColor='#7c3aed'\" onblur=\"this.style.borderColor='#d1d5db'\">\n    <\/div>\n\n    <!-- Tr\u01b0\u1eddng 2: Email gi\u00e1o vi\u00ean \u0111\u00f3ng g\u00f3p -->\n    <div style=\"margin-bottom:14px;\">\n      <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;\">\n        <label style=\"font-size:0.92em;font-weight:700;color:#374151;\">\n          Email Gmail Th\u1ea7y\/C\u00f4 (\u0111ang d\u00f9ng tr\u00ean tr\u00ecnh duy\u1ec7t) <span style=\"color:#dc2626;\">*<\/span>\n        <\/label>\n        <span id=\"khl-author-badge-thpt\" style=\"display:none;font-size:0.84em;font-weight:700;color:#7c3aed;background:#ede9fe;padding:2px 8px;border-radius:4px;\"><\/span>\n      <\/div>\n      <input id=\"khl-email-thpt\" type=\"email\" autocomplete=\"email\" list=\"khl-email-suggestions\"\n        style=\"width:100%;box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:8px;padding:11px 14px;font-size:0.96em;font-family:inherit;outline:none;transition:border-color .2s;\"\n        placeholder=\"Nh\u1eadp ho\u1eb7c ch\u1ecdn t\u00e0i kho\u1ea3n Gmail Th\u1ea7y\/C\u00f4 \u0111ang d\u00f9ng tr\u00ean tr\u00ecnh duy\u1ec7t...\"\n        onfocus=\"this.style.borderColor='#7c3aed'\" onblur=\"this.style.borderColor='#d1d5db'\"\n        oninput=\"khlOnEmailChange('thpt')\">\n      <div style=\"display:flex;justify-content:space-between;align-items:center;margin-top:5px;\">\n        <span style=\"font-size:0.82em;color:#6b7280;\">\ud83d\udca1 Tr\u00ecnh duy\u1ec7t s\u1ebd t\u1ef1 \u0111\u1ed9ng g\u1ee3i \u00fd Gmail Th\u1ea7y\/C\u00f4 \u0111ang \u0111\u0103ng nh\u1eadp.<\/span>\n        <button type=\"button\" onclick=\"khlClearEmail('thpt')\" id=\"khl-change-email-btn-thpt\" style=\"display:none;background:none;border:none;color:#7c3aed;font-size:0.82em;font-weight:600;cursor:pointer;text-decoration:underline;padding:0;\">\u0110\u1ed5i email kh\u00e1c<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- Tr\u01b0\u1eddng 3: Gi\u1edbi thi\u1ec7u h\u1ecdc li\u1ec7u -->\n    <div style=\"margin-bottom:14px;\">\n      <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;\">\n        <label style=\"font-size:0.92em;font-weight:700;color:#374151;\">\n          Gi\u1edbi thi\u1ec7u h\u1ecdc li\u1ec7u <span style=\"color:#dc2626;\">*<\/span>\n        <\/label>\n        <span id=\"khl-wc-thpt\" style=\"font-size:0.85em;font-weight:600;color:#6b7280;\">0\/50 ch\u1eef<\/span>\n      <\/div>\n      <textarea id=\"khl-desc-thpt\" rows=\"3\"\n        style=\"width:100%;box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:8px;padding:11px 14px;font-size:0.95em;font-family:inherit;resize:vertical;outline:none;transition:border-color .2s;\"\n        placeholder=\"M\u00f4 t\u1ea3 ng\u1eafn g\u1ecdn v\u1ec1 h\u1ecdc li\u1ec7u: m\u00f4n h\u1ecdc, l\u1edbp, d\u1ea1ng t\u00e0i li\u1ec7u, ch\u1ee7 \u0111\u1ec1 (t\u1ed1i \u0111a 50 ch\u1eef)...\"\n        onfocus=\"this.style.borderColor='#7c3aed'\" onblur=\"this.style.borderColor='#d1d5db'\"\n        oninput=\"khlCountWords('thpt')\"><\/textarea>\n      <div id=\"khl-wc-err-thpt\" style=\"display:none;color:#dc2626;font-size:0.84em;margin-top:4px;font-weight:600;\">\n        \u26a0\ufe0f N\u1ed9i dung gi\u1edbi thi\u1ec7u \u0111\u00e3 v\u01b0\u1ee3t qu\u00e1 50 ch\u1eef! Vui l\u00f2ng r\u00fat g\u1ecdn l\u1ea1i.\n      <\/div>\n    <\/div>\n\n\n\n    <!-- B\u00e1o l\u1ed7i form -->\n    <div id=\"khl-form-err-thpt\" style=\"display:none;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:9px 14px;color:#dc2626;font-size:0.9em;margin-bottom:14px;\"><\/div>\n\n    <!-- N\u00fat h\u00e0nh \u0111\u1ed9ng -->\n    <div style=\"display:flex;gap:10px;align-items:center;\">\n      <button onclick=\"khlSubmit('thpt')\" id=\"khl-submit-thpt\"\n        style=\"background:#7c3aed;color:#fff;border:none;border-radius:8px;padding:10px 24px;cursor:pointer;font-weight:700;font-size:0.95em;box-shadow:0 2px 8px rgba(124,58,237,.25);\">\n        \ud83d\udcbe L\u01b0u\n      <\/button>\n      <button onclick=\"khlCancel('thpt')\"\n        style=\"background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:8px;padding:10px 18px;cursor:pointer;font-size:0.93em;font-weight:500;\">\n        \u2715 Hu\u1ef7\n      <\/button>\n      <span id=\"khl-saving-thpt\" style=\"display:none;color:#7c3aed;font-size:0.9em;font-weight:600;\">\u23f3 \u0110ang l\u01b0u h\u1ecdc li\u1ec7u&#8230;<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- H\u1ed9p th\u00f4ng b\u00e1o sau khi l\u01b0u th\u00e0nh c\u00f4ng (hi\u1ec3n th\u1ecb n\u00fat upload Drive nh\u01b0 h\u00ecnh 2) -->\n  <div id=\"khl-success-thpt\" style=\"display:none;background:#faf5ff;border:1.8px solid #d8b4fe;border-radius:14px;padding:20px 22px;margin-bottom:22px;box-shadow:0 4px 14px rgba(124,58,237,.08);\">\n    <div style=\"display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;\">\n      <p style=\"margin:0;font-weight:800;color:#6b21a8;font-size:1.05em;display:flex;align-items:center;gap:7px;\">\n        <span>\ud83c\udf89<\/span> <span id=\"khl-success-title-thpt\">\u0110\u00e3 l\u01b0u th\u00f4ng tin h\u1ecdc li\u1ec7u!<\/span>\n      <\/p>\n      <button onclick=\"document.getElementById('khl-success-thpt').style.display='none'\" style=\"background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.1em;\" title=\"\u0110\u00f3ng\">\u2715<\/button>\n    <\/div>\n    <p id=\"khl-success-desc-thpt\" style=\"margin:0 0 12px;color:#374151;font-size:0.94em;line-height:1.6;\"><\/p>\n    <p style=\"margin:0 0 14px;color:#7c3aed;font-size:0.9em;font-weight:600;\">\n      \ud83d\udc49 B\u01b0\u1edbc ti\u1ebfp theo: Qu\u00fd Th\u1ea7y\/C\u00f4 b\u1ea5m n\u00fat b\u00ean d\u01b0\u1edbi \u0111\u1ec3 m\u1edf Google Drive v\u00e0 t\u1ea3i file h\u1ecdc li\u1ec7u l\u00ean:\n    <\/p>\n    <a href=\"https:\/\/drive.google.com\/drive\/folders\/1AR1RwMmBK2eTdZj9misNtSJGMcIoRYwO?usp=sharing\" target=\"_blank\" rel=\"noopener\"\n      style=\"display:inline-flex;align-items:center;gap:9px;background:#7c3aed;color:#fff;text-decoration:none;padding:11px 24px;border-radius:9px;font-weight:700;font-size:0.95em;box-shadow:0 3px 12px rgba(124,58,237,.32);\">\n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"17 8 12 3 7 8\"\/><line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"\/><\/svg>\n      M\u1edf th\u01b0 m\u1ee5c Drive \u0111\u1ec3 t\u1ea3i file l\u00ean\n    <\/a>\n  <\/div>\n\n  <!-- Danh s\u00e1ch h\u1ecdc li\u1ec7u THPT (style gi\u1ed1ng trang 20 V\u0103n b\u1ea3n ph\u00e1p qui) -->\n  <div style=\"border-top:1px solid #f3f4f6;padding-top:14px;\">\n    <h4 style=\"margin:0 0 14px;font-size:0.96em;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;\">\n      \ud83d\udccb Danh m\u1ee5c h\u1ecdc li\u1ec7u L\u00ed-H\u00f3a-Sinh THPT \u0111\u00e3 \u0111\u0103ng\n    <\/h4>\n    <div id=\"khl-list-thpt\">\n      <p style=\"color:#9ca3af;font-style:italic;font-size:0.93em;padding:8px 0;\">\u23f3 \u0110ang t\u1ea3i danh s\u00e1ch h\u1ecdc li\u1ec7u&#8230;<\/p>\n    <\/div>\n  <\/div>\n\n<\/div>\n<\/details>\n\n<datalist id=\"khl-email-suggestions\">\n  <option value=\"tranminhthanhpvt@gmail.com\">Tr\u1ea7n Minh Th\u00e0nh (tranminhthanhpvt@gmail.com)<\/option>\n  <option value=\"thulieupvt@gmail.com\">Nguy\u1ec5n Th\u1ecb Thu Li\u1ec5u (thulieupvt@gmail.com)<\/option>\n  <option value=\"doanchau0092@gmail.com\">\u0110o\u00e0n Nguy\u1ec5n Minh Ch\u00e2u (doanchau0092@gmail.com)<\/option>\n  <option value=\"kimphung3011@gmail.com\">L\u00ea Th\u1ecb Kim Ph\u1ee5ng (kimphung3011@gmail.com)<\/option>\n  <option value=\"nguyenthanhtin2606@gmail.com\">Nguy\u1ec5n Th\u00e0nh T\u00edn (nguyenthanhtin2606@gmail.com)<\/option>\n  <option value=\"thachyen31@gmail.com\">Th\u1ea1ch Th\u1ecb Ng\u1ecdc Y\u1ebfn (thachyen31@gmail.com)<\/option>\n  <option value=\"hothiphiyen89@gmail.com\">H\u1ed3 Th\u1ecb Phi Y\u1ebfn (hothiphiyen89@gmail.com)<\/option>\n  <option value=\"m82001i@gmail.com\">Tr\u1ea7n Minh Nh\u1eadt (m82001i@gmail.com)<\/option>\n  <option value=\"trucly.pvt@gmail.com\">\u0110inh Th\u1ecb Tr\u00fac Ly (trucly.pvt@gmail.com)<\/option>\n  <option value=\"tuongphong69@gmail.com\">Nguy\u1ec5n Vi\u1ec7t T\u01b0\u1eddng Phong (tuongphong69@gmail.com)<\/option>\n  <option value=\"tuanem78@gmail.com\">Nguy\u1ec5n Tu\u1ea5n Em (tuanem78@gmail.com)<\/option>\n  <option value=\"hongphanpvt1982@gmail.com\">Tr\u1ea7n Th\u1ecb H\u1ed3ng Ph\u1ea5n (hongphanpvt1982@gmail.com)<\/option>\n  <option value=\"minhanhngocmai@gmail.com\">Phan Th\u1ecb Ng\u1ecdc Mai (minhanhngocmai@gmail.com)<\/option>\n  <option value=\"vovanhoanh1957@gmail.com\">V\u00f5 V\u0103n Ho\u00e0nh (vovanhoanh1957@gmail.com)<\/option>\n  <option value=\"huylinh1972@gmail.com\">Ph\u1ea1m Huy Linh (huylinh1972@gmail.com)<\/option>\n  <option value=\"huynhhuan80@gmail.com\">Hu\u1ef3nh H\u1eefu Hu\u00e2n (huynhhuan80@gmail.com)<\/option>\n  <option value=\"thuhong180270@gmail.com\">Nguy\u1ec5n Th\u1ecb Thu H\u1ed3ng (thuhong180270@gmail.com)<\/option>\n  <option value=\"nguyenthiduyen79@gmail.com\">Nguy\u1ec5n Th\u1ecb Duy\u00ean (nguyenthiduyen79@gmail.com)<\/option>\n  <option value=\"tppkieu@gmail.com\">T\u0103ng Ph\u1ea1m Ph\u1ee5ng Ki\u1ec1u (tppkieu@gmail.com)<\/option>\n  <option value=\"haunguyenvan696@gmail.com\">Nguy\u1ec5n V\u0103n H\u1eadu (haunguyenvan696@gmail.com)<\/option>\n  <option value=\"mytranggt@gmail.com\">Phan M\u1ef9 Trang (mytranggt@gmail.com)<\/option>\n  <option value=\"ngocthinhdinhthi@gmail.com\">\u0110inh Th\u1ecb Ng\u1ecdc Th\u1ecbnh (ngocthinhdinhthi@gmail.com)<\/option>\n  <option value=\"minhsi35@gmail.com\">L\u00ea Minh H\u1ea3i (minhsi35@gmail.com)<\/option>\n  <option value=\"vothuy.thcsbinhthanh@gmail.com\">V\u00f5 Th\u1ecb Th\u1ee7y (vothuy.thcsbinhthanh@gmail.com)<\/option>\n  <option value=\"vytruongtuong2002@gmail.com\">Tr\u01b0\u01a1ng T\u01b0\u1eddng Vy (vytruongtuong2002@gmail.com)<\/option>\n<\/datalist>\n\n\n\n<!-- Modal c\u1eadp nh\u1eadt link Google Drive cho h\u1ecdc li\u1ec7u -->\n<div id=\"khl-link-modal\" style=\"display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.55);align-items:center;justify-content:center;z-index:999999;padding:16px;box-sizing:border-box;\">\n  <div style=\"background:#ffffff;border-radius:14px;max-width:500px;width:100%;padding:24px 26px;box-shadow:0 16px 40px rgba(0,0,0,0.25);font-family:inherit;position:relative;\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;\">\n      <h3 id=\"khl-link-modal-title\" style=\"margin:0;font-size:1.12em;font-weight:700;color:#1f2937;display:flex;align-items:center;gap:8px;\">\n        \ud83d\udd17 C\u1eadp nh\u1eadt link t\u1ea3i h\u1ecdc li\u1ec7u\n      <\/h3>\n      <button onclick=\"khlCloseLinkModal()\" style=\"background:none;border:none;font-size:1.4em;color:#9ca3af;cursor:pointer;line-height:1;\" title=\"\u0110\u00f3ng\">\u2715<\/button>\n    <\/div>\n\n    <div style=\"margin-bottom:14px;\">\n      <label style=\"display:block;font-size:0.92em;font-weight:700;color:#374151;margin-bottom:6px;\">\n        \u0110\u01b0\u1eddng d\u1eabn (Link) Google Drive (T\u1ec7p ho\u1eb7c Th\u01b0 m\u1ee5c con):\n      <\/label>\n      <input id=\"khl-link-input-val\" type=\"url\"\n        style=\"width:100%;box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:8px;padding:11px 14px;font-size:0.94em;font-family:inherit;outline:none;\"\n        placeholder=\"https:\/\/drive.google.com\/file\/d\/... ho\u1eb7c https:\/\/drive.google.com\/drive\/folders\/...\">\n      <p style=\"margin:6px 0 0;font-size:0.82em;color:#6b7280;line-height:1.45;\">\n        \ud83d\udca1 <em>N\u1ebfu d\u00e1n link t\u1ec7p \u0111\u01a1n (Word, PPT, PDF, ZIP): ng\u01b0\u1eddi d\u00f9ng b\u1ea5m n\u00fat s\u1ebd t\u1ef1 \u0111\u1ed9ng t\u1ea3i th\u1eb3ng v\u1ec1 m\u00e1y. N\u1ebfu d\u00e1n link th\u01b0 m\u1ee5c con: s\u1ebd d\u1eabn th\u1eb3ng v\u00e0o th\u01b0 m\u1ee5c \u0111\u00f3 tr\u00ean Drive.<\/em>\n      <\/p>\n    <\/div>\n\n    <div id=\"khl-link-modal-err\" style=\"display:none;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:8px 12px;color:#dc2626;font-size:0.88em;margin-bottom:12px;\"><\/div>\n\n    <div style=\"display:flex;justify-content:flex-end;gap:10px;align-items:center;\">\n      <button onclick=\"khlCloseLinkModal()\"\n        style=\"background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:8px;padding:9px 18px;font-weight:500;font-size:0.9em;cursor:pointer;\">\n        Hu\u1ef7\n      <\/button>\n      <button id=\"khl-link-modal-save-btn\" onclick=\"khlSaveLinkModal()\"\n        style=\"background:#0d9488;color:#fff;border:none;border-radius:8px;padding:9px 22px;font-weight:700;font-size:0.92em;cursor:pointer;box-shadow:0 2px 8px rgba(13,148,136,0.25);\">\n        \ud83d\udcbe L\u01b0u link\n      <\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- Toast th\u00f4ng b\u00e1o t\u1ea3i t\u1ec7p tr\u1ef1c ti\u1ebfp -->\n<div id=\"khl-toast\" style=\"display:none;position:fixed;bottom:24px;right:24px;background:#1e293b;color:#fff;padding:12px 20px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,0.25);font-size:0.92em;font-weight:600;z-index:9999999;align-items:center;gap:10px;\">\n  <span id=\"khl-toast-msg\"><\/span>\n<\/div>\n\n<\/div><!-- \/khtn-wrap -->\n\n<script>\n(function(){\n'use strict';\n\nvar KHL_PAGE_ID = 247;\nvar KHL_AUTH    = 'YWRtaW46cXJkWCByV0lwIE9KSG4gOTNnbCBzaUpzIDhTVEQ=';\nvar KHL_PREFIX  = 'KHTN_KHL_B64::';\nvar KHL_DRIVE   = {\n  thcs: 'https:\/\/drive.google.com\/drive\/folders\/18S039u0guInZRJMOWVU5mXeOvHa13a__?usp=sharing',\n  thpt: 'https:\/\/drive.google.com\/drive\/folders\/1AR1RwMmBK2eTdZj9misNtSJGMcIoRYwO?usp=sharing'\n};\nvar KHL_FOLDER_IDS = {\n  thcs: '18S039u0guInZRJMOWVU5mXeOvHa13a__',\n  thpt: '1AR1RwMmBK2eTdZj9misNtSJGMcIoRYwO'\n};\nvar KHL_RESOLVER_URL = '';\nvar KHL_COLOR   = { thcs: '#0d9488', thpt: '#7c3aed' };\nvar khlIsAdmin  = false;\n\nvar KHL_MEMBERS = [\n  { name: 'Tr\u1ea7n Minh Th\u00e0nh', email: 'tranminhthanhpvt@gmail.com' },\n  { name: 'Nguy\u1ec5n Th\u1ecb Thu Li\u1ec5u', email: 'thulieupvt@gmail.com' },\n  { name: '\u0110o\u00e0n Nguy\u1ec5n Minh Ch\u00e2u', email: 'doanchau0092@gmail.com' },\n  { name: 'L\u00ea Th\u1ecb Kim Ph\u1ee5ng', email: 'kimphung3011@gmail.com' },\n  { name: 'Nguy\u1ec5n Th\u00e0nh T\u00edn', email: 'nguyenthanhtin2606@gmail.com' },\n  { name: 'Th\u1ea1ch Th\u1ecb Ng\u1ecdc Y\u1ebfn', email: 'thachyen31@gmail.com' },\n  { name: 'H\u1ed3 Th\u1ecb Phi Y\u1ebfn', email: 'hothiphiyen89@gmail.com' },\n  { name: 'Tr\u1ea7n Minh Nh\u1eadt', email: 'm82001i@gmail.com' },\n  { name: '\u0110inh Th\u1ecb Tr\u00fac Ly', email: 'trucly.pvt@gmail.com' },\n  { name: 'Nguy\u1ec5n Vi\u1ec7t T\u01b0\u1eddng Phong', email: 'tuongphong69@gmail.com' },\n  { name: 'Nguy\u1ec5n Tu\u1ea5n Em', email: 'tuanem78@gmail.com' },\n  { name: 'Tr\u1ea7n Th\u1ecb H\u1ed3ng Ph\u1ea5n', email: 'hongphanpvt1982@gmail.com' },\n  { name: 'Phan Th\u1ecb Ng\u1ecdc Mai', email: 'minhanhngocmai@gmail.com' },\n  { name: 'V\u00f5 V\u0103n Ho\u00e0nh', email: 'vovanhoanh1957@gmail.com' },\n  { name: 'Ph\u1ea1m Huy Linh', email: 'huylinh1972@gmail.com' },\n  { name: 'Hu\u1ef3nh H\u1eefu Hu\u00e2n', email: 'huynhhuan80@gmail.com' },\n  { name: 'Nguy\u1ec5n Th\u1ecb Thu H\u1ed3ng', email: 'thuhong180270@gmail.com' },\n  { name: 'Nguy\u1ec5n Th\u1ecb Duy\u00ean', email: 'nguyenthiduyen79@gmail.com' },\n  { name: 'T\u0103ng Ph\u1ea1m Ph\u1ee5ng Ki\u1ec1u', email: 'tppkieu@gmail.com' },\n  { name: 'Nguy\u1ec5n V\u0103n H\u1eadu', email: 'haunguyenvan696@gmail.com' },\n  { name: 'Phan M\u1ef9 Trang', email: 'mytranggt@gmail.com' },\n  { name: '\u0110inh Th\u1ecb Ng\u1ecdc Th\u1ecbnh', email: 'ngocthinhdinhthi@gmail.com' },\n  { name: 'L\u00ea Minh H\u1ea3i', email: 'minhsi35@gmail.com' },\n  { name: 'V\u00f5 Th\u1ecb Th\u1ee7y', email: 'vothuy.thcsbinhthanh@gmail.com' },\n  { name: 'Tr\u01b0\u01a1ng T\u01b0\u1eddng Vy', email: 'vytruongtuong2002@gmail.com' }\n];\n\nfunction findMember(email) {\n  if (!email) return null;\n  var em = email.toLowerCase().trim();\n  for (var i = 0; i < KHL_MEMBERS.length; i++) {\n    var m = KHL_MEMBERS[i];\n    if (m.email) {\n      if (m.email.toLowerCase().trim() === em) {\n        return m;\n      }\n    }\n  }\n  return null;\n}\n\nwindow.khlOnEmailChange = function(s) {\n  var email = getVal('khl-email-' + s);\n  var badge = document.getElementById('khl-author-badge-' + s);\n  var clearBtn = document.getElementById('khl-change-email-btn-' + s);\n  var mem = findMember(email);\n  if (badge) {\n    if (mem) {\n      badge.textContent = '\ud83d\udc64 ' + mem.name;\n      badge.style.display = 'inline-block';\n    } else if (email) {\n      badge.textContent = '\ud83d\udc64 Gi\u00e1o vi\u00ean';\n      badge.style.display = 'inline-block';\n    } else {\n      badge.style.display = 'none';\n    }\n  }\n  if (clearBtn) {\n    clearBtn.style.display = email ? 'inline' : 'none';\n  }\n};\n\nwindow.khlClearEmail = function(s) {\n  var eInput = document.getElementById('khl-email-' + s);\n  if (eInput) {\n    eInput.value = '';\n    eInput.focus();\n  }\n  try {\n    localStorage.removeItem('khl_author_email');\n  } catch(e) {}\n  khlOnEmailChange(s);\n};\n\nfunction utf8ToBase64(str) {\n  return btoa(encodeURIComponent(str).replace(\/%([0-9A-F]{2})\/g, function(match, p1) {\n    return String.fromCharCode('0x' + p1);\n  }));\n}\n\nfunction base64ToUtf8(str) {\n  try {\n    return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {\n      return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n    }).join(''));\n  } catch(e) {\n    return '';\n  }\n}\n\nfunction escHtml(s) {\n  var A = String.fromCharCode(38);\n  return (s || '').split(A).join(A + 'amp;').split('<').join(A + 'lt;').split('>').join(A + 'gt;').split('\"').join(A + 'quot;');\n}\n\nfunction countWords(str) {\n  return (str || '').trim().split(\/\\s+\/).filter(function(w) { return w.length > 0; }).length;\n}\n\nfunction getVal(id) {\n  var el = document.getElementById(id);\n  return el ? el.value.trim() : '';\n}\n\nwindow.khlCountWords = function(s) {\n  var txt = getVal('khl-desc-' + s);\n  var cnt = countWords(txt);\n  var wcEl = document.getElementById('khl-wc-' + s);\n  var errEl = document.getElementById('khl-wc-err-' + s);\n  if (wcEl) {\n    wcEl.textContent = cnt + '\/50 ch\u1eef';\n    wcEl.style.color = cnt > 50 ? '#dc2626' : '#6b7280';\n  }\n  if (errEl) {\n    errEl.style.display = cnt > 50 ? 'block' : 'none';\n  }\n};\n\nwindow.khlShowForm = function(s) {\n  var form = document.getElementById('khl-form-' + s);\n  var btn = document.getElementById('khl-create-btn-' + s);\n  var errEl = document.getElementById('khl-form-err-' + s);\n  if (form) form.style.display = 'block';\n  if (btn) btn.style.display = 'none';\n  if (errEl) errEl.style.display = 'none';\n  var tInput = document.getElementById('khl-title-' + s);\n  var dInput = document.getElementById('khl-desc-' + s);\n  if (tInput) { tInput.value = ''; tInput.focus(); }\n  if (dInput) { dInput.value = ''; }\n  khlCountWords(s);\n\n  var savedEmail = '';\n  try {\n    savedEmail = localStorage.getItem('khl_author_email') || '';\n  } catch(e) {}\n\n  if (!savedEmail) {\n    if (khlIsAdmin) {\n      savedEmail = 'tranminhthanhpvt@gmail.com';\n    }\n  }\n\n  var emailInput = document.getElementById('khl-email-' + s);\n  if (emailInput) {\n    if (savedEmail) {\n      emailInput.value = savedEmail;\n    }\n  }\n  khlOnEmailChange(s);\n\n  var count = (window['khl_count_' + s] || 0) + 1;\n  var codeStr = (s === 'thcs' ? 'THCS-' : 'THPT-') + (count < 10 ? '0' : '') + count;\n  var color = KHL_COLOR[s] || '#0d9488';\n  var hintEl = document.getElementById('khl-code-hint-' + s);\n  if (hintEl) {\n    hintEl.innerHTML = '\ud83d\udca1 <strong>M\u00e3 s\u1ed1 h\u1ecdc li\u1ec7u d\u1ef1 ki\u1ebfn: <span style=\\\"background:' + color + ';color:#fff;padding:2px 8px;border-radius:5px;font-weight:800;\\\">#' + codeStr + '<\/span><\/strong> \u2014 Sau khi l\u01b0u, Th\u1ea7y\/C\u00f4 t\u1ea3i file\/th\u01b0 m\u1ee5c l\u00ean Drive nh\u1edb \u0111\u1eb7t t\u00ean b\u1eaft \u0111\u1ea7u b\u1eb1ng <strong>' + codeStr + '<\/strong> nh\u00e9!';\n  }\n};\n\nwindow.khlCancel = function(s) {\n  var form = document.getElementById('khl-form-' + s);\n  var btn = document.getElementById('khl-create-btn-' + s);\n  var errEl = document.getElementById('khl-form-err-' + s);\n  if (form) form.style.display = 'none';\n  if (btn) btn.style.display = 'inline-flex';\n  if (errEl) errEl.style.display = 'none';\n};\n\nwindow.khlSubmit = function(s) {\n  var title = getVal('khl-title-' + s);\n  var email = getVal('khl-email-' + s);\n  var desc  = getVal('khl-desc-' + s);\n  var url   = '';\n  var errEl = document.getElementById('khl-form-err-' + s);\n\n  if (!title) {\n    if (errEl) { errEl.textContent = '\u26a0\ufe0f Vui l\u00f2ng nh\u1eadp T\u00ean h\u1ecdc li\u1ec7u!'; errEl.style.display = 'block'; }\n    var tInput = document.getElementById('khl-title-' + s);\n    if (tInput) tInput.focus();\n    return;\n  }\n  if (!email) {\n    if (errEl) { errEl.textContent = '\u26a0\ufe0f Vui l\u00f2ng nh\u1eadp ho\u1eb7c ch\u1ecdn Email Gmail c\u1ee7a Th\u1ea7y\/C\u00f4!'; errEl.style.display = 'block'; }\n    var eInput = document.getElementById('khl-email-' + s);\n    if (eInput) eInput.focus();\n    return;\n  }\n  if (email.indexOf('@') === -1) {\n    if (errEl) { errEl.textContent = '\u26a0\ufe0f \u0110\u1ecba ch\u1ec9 email kh\u00f4ng h\u1ee3p l\u1ec7 (c\u1ea7n \u0111\u00fang \u0111\u1ecbnh d\u1ea1ng email)!'; errEl.style.display = 'block'; }\n    var eInput2 = document.getElementById('khl-email-' + s);\n    if (eInput2) eInput2.focus();\n    return;\n  }\n  if (!desc) {\n    if (errEl) { errEl.textContent = '\u26a0\ufe0f Vui l\u00f2ng nh\u1eadp Gi\u1edbi thi\u1ec7u h\u1ecdc li\u1ec7u!'; errEl.style.display = 'block'; }\n    var dInput = document.getElementById('khl-desc-' + s);\n    if (dInput) dInput.focus();\n    return;\n  }\n  if (countWords(desc) > 50) {\n    if (errEl) { errEl.textContent = '\u26a0\ufe0f Gi\u1edbi thi\u1ec7u h\u1ecdc li\u1ec7u \u0111\u00e3 v\u01b0\u1ee3t qu\u00e1 50 ch\u1eef! Vui l\u00f2ng r\u00fat g\u1ecdn l\u1ea1i.'; errEl.style.display = 'block'; }\n    return;\n  }\n\n  try {\n    localStorage.setItem('khl_author_email', email);\n  } catch(e) {}\n\n  var mem = findMember(email);\n  var authorName = mem ? mem.name : '';\n\n  var savingEl = document.getElementById('khl-saving-' + s);\n  var submitBtn = document.getElementById('khl-submit-' + s);\n  if (savingEl) savingEl.style.display = 'inline';\n  if (submitBtn) submitBtn.disabled = true;\n  if (errEl) errEl.style.display = 'none';\n\n  var count = (window['khl_count_' + s] || 0) + 1;\n  var codeStr = (s === 'thcs' ? 'THCS-' : 'THPT-') + (count < 10 ? '0' : '') + count;\n\n  var dataObj = {\n    section: s,\n    code: codeStr,\n    title: title,\n    desc: desc,\n    email: email,\n    author: authorName,\n    fileUrl: url,\n    ts: new Date().toISOString()\n  };\n\n  var b64Payload = utf8ToBase64(JSON.stringify(dataObj));\n  var label = s === 'thcs' ? 'H\u1ecdc li\u1ec7u KHTN THCS' : 'H\u1ecdc li\u1ec7u L\u00ed-H\u00f3a-Sinh THPT';\n  var authorNote = authorName ? authorName + ' - ' + email : email;\n  var commentText = KHL_PREFIX + b64Payload + '\\n\\n[' + label + ' #' + codeStr + '] ' + title + ': ' + desc + ' (\u0110\u00f3ng g\u00f3p: ' + authorNote + ')';\n\n  var AMP = String.fromCharCode(38);\n  var postBody = 'post=' + KHL_PAGE_ID\n    + AMP + 'content=' + encodeURIComponent(commentText)\n    + AMP + 'author_name=' + encodeURIComponent(authorName ? authorName : email)\n    + AMP + 'author_email=' + encodeURIComponent(email);\n\n  fetch('\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments', {\n    method: 'POST',\n    credentials: 'omit',\n    headers: {\n      'Content-Type': 'application\/x-www-form-urlencoded',\n      'Authorization': 'Basic ' + KHL_AUTH\n    },\n    body: postBody\n  })\n  .then(function(res) { return res.json(); })\n  .then(function(data) {\n    if (savingEl) savingEl.style.display = 'none';\n    if (submitBtn) submitBtn.disabled = false;\n\n    if (!(!data || !data.id)) {\n      khlCancel(s);\n      var color = KHL_COLOR[s] || '#0d9488';\n      var successBox = document.getElementById('khl-success-' + s);\n      var sTitle = document.getElementById('khl-success-title-' + s);\n      var sDesc = document.getElementById('khl-success-desc-' + s);\n      if (sTitle) {\n        sTitle.innerHTML = '\u0110\u00e3 l\u01b0u th\u00e0nh c\u00f4ng: <strong>' + escHtml(title) + '<\/strong> <span style=\\\"background:' + color + ';color:#fff;padding:2px 8px;border-radius:5px;font-size:0.85em;margin-left:6px;\\\">#' + codeStr + '<\/span>';\n      }\n      if (sDesc) {\n        var contribInfo = '<div style=\\\"margin-top:8px;font-size:0.9em;color:#0f766e;font-weight:600;\\\">\ud83d\udc64 Gi\u00e1o vi\u00ean \u0111\u00f3ng g\u00f3p: ' + escHtml(email) + (authorName ? ' (' + escHtml(authorName) + ')' : '') + '<\/div>';\n        sDesc.innerHTML = escHtml(desc) + contribInfo + '<div style=\\\"margin-top:10px;padding:9px 12px;background:#fef2f2;border-left:3.5px solid #ef4444;border-radius:5px;color:#991b1b;font-weight:600;font-size:0.9em;\\\">\ud83d\udccc B\u01b0\u1edbc ti\u1ebfp theo: B\u1ea5m n\u00fat d\u01b0\u1edbi \u0111\u1ec3 m\u1edf Drive t\u1ea3i l\u00ean, \u0111\u1eb7t t\u00ean file\/th\u01b0 m\u1ee5c b\u1eaft \u0111\u1ea7u b\u1eb1ng: <span style=\\\"color:#b91c1c;font-weight:800;\\\">' + codeStr + ' - ' + escHtml(title) + '<\/span><\/div>';\n      }\n      if (successBox) {\n        successBox.style.display = 'block';\n        successBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n      }\n      khlLoadAll();\n    } else {\n      if (errEl) {\n        errEl.textContent = '\u26a0\ufe0f Kh\u00f4ng th\u1ec3 l\u01b0u h\u1ecdc li\u1ec7u. Vui l\u00f2ng th\u1eed l\u1ea1i ho\u1eb7c li\u00ean h\u1ec7 Qu\u1ea3n tr\u1ecb vi\u00ean.';\n        errEl.style.display = 'block';\n      }\n    }\n  })\n  .catch(function(err) {\n    if (savingEl) savingEl.style.display = 'none';\n    if (submitBtn) submitBtn.disabled = false;\n    if (errEl) {\n      errEl.textContent = '\u26a0\ufe0f L\u1ed7i k\u1ebft n\u1ed1i m\u00e1y ch\u1ee7. Vui l\u00f2ng ki\u1ec3m tra \u0111\u01b0\u1eddng truy\u1ec1n v\u00e0 th\u1eed l\u1ea1i.';\n      errEl.style.display = 'block';\n    }\n  });\n};\n\nfunction khlRender(s, entries) {\n  var listEl = document.getElementById('khl-list-' + s);\n  if (!listEl) return;\n\n  window['khl_count_' + s] = (entries || []).length;\n\n  if (!entries || entries.length === 0) {\n    listEl.innerHTML = '<div style=\\\"padding:14px 18px;background:#f9fafb;border:1px dashed #e5e7eb;border-radius:10px;color:#6b7280;font-size:0.93em;text-align:center;\\\">'\n      + '\ud83d\udcc2 Ch\u01b0a c\u00f3 h\u1ecdc li\u1ec7u n\u00e0o trong m\u1ee5c n\u00e0y.<br><span style=\\\"color:#0f766e;font-weight:600;\\\">H\u00e3y nh\u1ea5n \\\"T\u1ea1o h\u1ecdc li\u1ec7u m\u1edbi\\\" \u1edf tr\u00ean \u0111\u1ec3 \u0111\u00f3ng g\u00f3p h\u1ecdc li\u1ec7u \u0111\u1ea7u ti\u00ean!<\/span>'\n      + '<\/div>';\n    return;\n  }\n\n  var color = KHL_COLOR[s] || '#0d9488';\n  var driveUrl = KHL_DRIVE[s];\n\n  var sortedAsc = entries.slice().sort(function(a, b) {\n    return (new Date(a.ts).getTime() || 0) - (new Date(b.ts).getTime() || 0);\n  });\n  var codeMap = {};\n  sortedAsc.forEach(function(item, idx) {\n    var num = idx + 1;\n    var numStr = (num < 10 ? '0' : '') + num;\n    codeMap[item.commentId] = (s === 'thcs' ? 'THCS-' : 'THPT-') + numStr;\n  });\n\n  var html = '<ul style=\\\"list-style:none;margin:0;padding:0;\\\">';\n\n  entries.forEach(function(item) {\n    var dateStr = '';\n    if (item.ts) {\n      var d = new Date(item.ts);\n      if (!isNaN(d.getTime())) {\n        var day = ('0' + d.getDate()).slice(-2);\n        var mon = ('0' + (d.getMonth() + 1)).slice(-2);\n        var yr  = d.getFullYear();\n        dateStr = day + '\/' + mon + '\/' + yr;\n      }\n    }\n\n    var code = codeMap[item.commentId] || item.code || '';\n    item.code = code;\n    item.section = s;\n\n    html += '<li style=\\\"margin-bottom:14px;padding:14px 16px;background:#fafafa;border:1px solid #f3f4f6;border-radius:10px;transition:box-shadow .2s;\\\">';\n\n    html += '<div style=\\\"margin-bottom:6px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;\\\">';\n    if (code) {\n      html += '  <span style=\\\"color:#fff;background:' + color + ';font-size:0.82em;font-weight:800;padding:2px 8px;border-radius:5px;letter-spacing:.02em;\\\">#' + code + '<\/span>';\n    }\n    html += '  <span style=\\\"color:#1f2937;font-weight:700;font-size:1.02em;line-height:1.45;\\\">' + escHtml(item.title) + '<\/span>';\n    if (dateStr) {\n      html += '  <span style=\\\"color:#6b7280;font-size:0.86em;font-weight:600;background:#e5e7eb;padding:2px 8px;border-radius:5px;\\\">' + dateStr + '<\/span>';\n    }\n    if (item.email) {\n      var authorSuffix = item.author ? ' (' + escHtml(item.author) + ')' : '';\n      html += '  <span style=\\\"color:#0f766e;font-size:0.85em;font-weight:600;background:#f0fdf4;border:1px solid #bbf7d0;padding:2px 8px;border-radius:5px;display:inline-flex;align-items:center;gap:4px;\\\" title=\\\"Gi\u00e1o vi\u00ean \u0111\u00f3ng g\u00f3p h\u1ecdc li\u1ec7u: ' + escHtml(item.author || item.email) + '\\\">';\n      html += '    <svg xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" width=\\\"13\\\" height=\\\"13\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><rect width=\\\"20\\\" height=\\\"16\\\" x=\\\"2\\\" y=\\\"4\\\" rx=\\\"2\\\"\/><path d=\\\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\\\"\/><\/svg>';\n      html += '    ' + escHtml(item.email) + authorSuffix;\n      html += '  <\/span>';\n    }\n    html += '<\/div>';\n\n    html += '<div style=\\\"color:#4b5563;font-size:0.92em;line-height:1.65;margin-bottom:10px;\\\">';\n    html += escHtml(item.desc);\n    html += '<\/div>';\n\n    html += '<div style=\\\"display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;border-top:1px dashed #e5e7eb;\\\">';\n    \n    html += '  <div>';\n    if (!(!khlIsAdmin || !item.commentId)) {\n      html += '    <button onclick=\\\"khlDeleteEntry(' + item.commentId + ', this)\\\" ';\n      html += '      style=\\\"background:none;border:1px solid #fca5a5;color:#dc2626;border-radius:6px;padding:6px 12px;cursor:pointer;font-size:0.82em;font-weight:600;\\\">';\n      html += '      \ud83d\uddd1 Xo\u00e1';\n      html += '    <\/button>';\n    }\n    html += '  <\/div>';\n\n    html += '  <div style=\\\"margin-left:auto;display:flex;align-items:center;gap:8px;\\\">';\n    if (!(!khlIsAdmin || !item.commentId)) {\n      var btnLabel = item.fileUrl ? '\ud83d\udd17 S\u1eeda link' : '\ud83d\udd17 G\u1eafn link';\n      html += '    <button onclick=\\\"khlEditLink(' + item.commentId + ', \\'' + s + '\\')\\\" ';\n      html += '      title=\\\"G\u1eafn ho\u1eb7c ch\u1ec9nh s\u1eeda \u0111\u01b0\u1eddng d\u1eabn Google Drive c\u1ee7a h\u1ecdc li\u1ec7u n\u00e0y\\\" ';\n      html += '      style=\\\"background:#f3f4f6;border:1px solid #d1d5db;color:#374151;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:0.82em;font-weight:600;display:inline-flex;align-items:center;gap:5px;\\\">';\n      html += '      ' + btnLabel;\n      html += '    <\/button>';\n    }\n    html += '    <button onclick=\\\"khlDownload(' + item.commentId + ', \\'' + s + '\\')\\\" ';\n    html += '      title=\\\"B\u1ea5m \u0111\u1ec3 t\u1ea3i t\u1ec7p ho\u1eb7c m\u1edf th\u01b0 m\u1ee5c h\u1ecdc li\u1ec7u\\\" ';\n    html += '      style=\\\"display:inline-flex;align-items:center;gap:7px;background:' + color + ';color:#fff;border:none;padding:8px 20px;border-radius:8px;font-weight:700;font-size:0.88em;box-shadow:0 2px 7px rgba(0,0,0,.12);cursor:pointer;transition:all .2s;\\\">';\n    html += '      <svg xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2.3\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\\\"\/><polyline points=\\\"7 10 12 15 17 10\\\"\/><line x1=\\\"12\\\" y1=\\\"15\\\" x2=\\\"12\\\" y2=\\\"3\\\"\/><\/svg>';\n    html += '      T\u1ea3i h\u1ecdc li\u1ec7u';\n    html += '    <\/button>';\n    html += '  <\/div>';\n\n    html += '<\/div>';\n\n    html += '<\/li>';\n  });\n\n  html += '<\/ul>';\n  listEl.innerHTML = html;\n}\n\nvar khlEditingCommentId = null;\nvar khlEditingSection = null;\n\nwindow.khlShowToast = function(msg) {\n  var toast = document.getElementById('khl-toast');\n  var msgEl = document.getElementById('khl-toast-msg');\n  if (toast) {\n    if (msgEl) msgEl.textContent = msg;\n    toast.style.display = 'flex';\n    setTimeout(function() {\n      toast.style.display = 'none';\n    }, 4500);\n  }\n};\n\nwindow.khlShowGuideModal = function(item, targetUrl, type) {};\nwindow.khlCloseGuideModal = function() {};\n\nwindow.khlEditLink = function(commentId, s) {\n  khlEditingCommentId = commentId;\n  khlEditingSection = s;\n  var item = null;\n  var list = window['khl_entries_' + s] || [];\n  for (var i = 0; i < list.length; i++) {\n    if (list[i].commentId === commentId) {\n      item = list[i];\n      break;\n    }\n  }\n  var input = document.getElementById('khl-link-input-val');\n  var errEl = document.getElementById('khl-link-modal-err');\n  var titleEl = document.getElementById('khl-link-modal-title');\n  if (errEl) errEl.style.display = 'none';\n  if (input) {\n    input.value = item ? (item.fileUrl || '') : '';\n  }\n  if (titleEl) {\n    titleEl.textContent = '\ud83d\udd17 G\u1eafn link t\u1ea3i: ' + (item ? (item.code ? '#' + item.code + ' ' : '') + item.title : '');\n  }\n  var modal = document.getElementById('khl-link-modal');\n  if (modal) modal.style.display = 'flex';\n  if (input) input.focus();\n};\n\nwindow.khlCloseLinkModal = function() {\n  var modal = document.getElementById('khl-link-modal');\n  if (modal) modal.style.display = 'none';\n  khlEditingCommentId = null;\n  khlEditingSection = null;\n};\n\nwindow.khlSaveLinkModal = function() {\n  if (!khlEditingCommentId) return;\n  var input = document.getElementById('khl-link-input-val');\n  var errEl = document.getElementById('khl-link-modal-err');\n  var saveBtn = document.getElementById('khl-link-modal-save-btn');\n  var newUrl = input ? input.value.trim() : '';\n\n  if (saveBtn) {\n    saveBtn.disabled = true;\n    saveBtn.textContent = '\u23f3 \u0110ang l\u01b0u...';\n  }\n\n  var s = khlEditingSection;\n  var item = null;\n  var list = window['khl_entries_' + s] || [];\n  for (var i = 0; i < list.length; i++) {\n    if (list[i].commentId === khlEditingCommentId) {\n      item = list[i];\n      break;\n    }\n  }\n\n  if (!item) {\n    if (saveBtn) { saveBtn.disabled = false; saveBtn.textContent = '\ud83d\udcbe L\u01b0u link'; }\n    khlCloseLinkModal();\n    return;\n  }\n\n  var dataObj = {\n    section: s,\n    code: item.code || '',\n    title: item.title || '',\n    desc: item.desc || '',\n    email: item.email || '',\n    author: item.author || '',\n    fileUrl: newUrl,\n    ts: item.ts || new Date().toISOString()\n  };\n\n  var b64Payload = utf8ToBase64(JSON.stringify(dataObj));\n  var label = s === 'thcs' ? 'H\u1ecdc li\u1ec7u KHTN THCS' : 'H\u1ecdc li\u1ec7u L\u00ed-H\u00f3a-Sinh THPT';\n  var authorNote = item.author ? item.author + ' - ' + item.email : item.email;\n  var commentText = KHL_PREFIX + b64Payload + '\\n\\n[' + label + ' #' + (item.code || '') + '] ' + item.title + ': ' + item.desc + ' (\u0110\u00f3ng g\u00f3p: ' + authorNote + ')';\n\n  var AMP = String.fromCharCode(38);\n  var body = 'content=' + encodeURIComponent(commentText);\n  if (item.author) body += AMP + 'author_name=' + encodeURIComponent(item.author);\n  if (item.email) body += AMP + 'author_email=' + encodeURIComponent(item.email);\n\n  fetch('\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments%2F' + khlEditingCommentId, {\n    method: 'POST',\n    credentials: 'omit',\n    headers: {\n      'Content-Type': 'application\/x-www-form-urlencoded',\n      'Authorization': 'Basic ' + KHL_AUTH\n    },\n    body: body\n  })\n  .then(function(res) {\n    if (saveBtn) { saveBtn.disabled = false; saveBtn.textContent = '\ud83d\udcbe L\u01b0u link'; }\n    if (res.ok) {\n      khlCloseLinkModal();\n      khlShowToast('\u2705 \u0110\u00e3 c\u1eadp nh\u1eadt link t\u1ea3i th\u00e0nh c\u00f4ng!');\n      khlLoadAll();\n    } else {\n      if (errEl) {\n        errEl.textContent = '\u26a0\ufe0f L\u1ed7i l\u01b0u link (HTTP ' + res.status + '). Vui l\u00f2ng th\u1eed l\u1ea1i.';\n        errEl.style.display = 'block';\n      }\n    }\n  })\n  .catch(function(err) {\n    if (saveBtn) { saveBtn.disabled = false; saveBtn.textContent = '\ud83d\udcbe L\u01b0u link'; }\n    if (errEl) {\n      errEl.textContent = '\u26a0\ufe0f L\u1ed7i k\u1ebft n\u1ed1i: ' + err.message;\n      errEl.style.display = 'block';\n    }\n  });\n};\n\nwindow.khlDownload = function(commentId, s) {\n  var item = null;\n  var list = window['khl_entries_' + s] || [];\n  for (var i = 0; i < list.length; i++) {\n    if (list[i].commentId === commentId) {\n      item = list[i];\n      break;\n    }\n  }\n  if (!item) return;\n\n  var code = item.code || '';\n  var rawUrl = (item.fileUrl || '').trim();\n\n  \/\/ 1. N\u1ebfu b\u00e0i \u0111\u0103ng \u0111\u00e3 \u0111\u01b0\u1ee3c g\u00e1n link c\u1ee5 th\u1ec3 (T\u1ec7p ho\u1eb7c Th\u01b0 m\u1ee5c con)\n  if (rawUrl) {\n    var fileId = '';\n    var m1 = rawUrl.match(\/\\\/file\\\/d\\\/([a-zA-Z0-9_-]+)\/);\n    if (m1) {\n      fileId = m1[1];\n    } else {\n      var isFld = rawUrl.indexOf('\/drive\/folders\/') !== -1;\n      if (!isFld) {\n        if (rawUrl.indexOf('id=') !== -1) {\n          var part = rawUrl.split('id=')[1];\n          if (part) {\n            fileId = part.split(String.fromCharCode(38))[0].split('\/')[0];\n          }\n        }\n      }\n    }\n\n    var isFolder = rawUrl.indexOf('\/drive\/folders\/') !== -1;\n\n    if (!(!fileId || isFolder)) {\n      \/\/ QUY \u0110\u1ecaNH 1: T\u1ec7p \u0111\u01a1n (Word, PPT, PDF, Zip) -> T\u1ef1 \u0111\u1ed9ng t\u1ea3i th\u1eb3ng v\u1ec1 m\u00e1y t\u00ednh\n      var directUrl = 'https:\/\/drive.usercontent.google.com\/download?id=' + fileId + String.fromCharCode(38) + 'export=download';\n      var tempA = document.createElement('a');\n      tempA.href = directUrl;\n      tempA.setAttribute('download', '');\n      tempA.target = '_blank';\n      document.body.appendChild(tempA);\n      tempA.click();\n      document.body.removeChild(tempA);\n\n      khlShowToast('\u2b07\ufe0f \u0110ang t\u1ef1 \u0111\u1ed9ng t\u1ea3i t\u1ec7p h\u1ecdc li\u1ec7u #' + (code || '') + ' v\u1ec1 m\u00e1y t\u00ednh c\u1ee7a Th\u1ea7y\/C\u00f4...');\n      return;\n    } else {\n      \/\/ QUY \u0110\u1ecaNH 2: Th\u01b0 m\u1ee5c con -> D\u1eabn th\u1eb3ng v\u00e0o th\u01b0 m\u1ee5c tr\u00ean Google Drive\n      window.open(rawUrl, '_blank');\n      khlShowToast('\ud83d\udcc2 \u0110ang m\u1edf th\u01b0 m\u1ee5c h\u1ecdc li\u1ec7u #' + (code || '') + ' tr\u00ean Google Drive...');\n      return;\n    }\n  }\n\n  \/\/ 2. N\u1ebfu \u0111\u00e3 c\u1ea5u h\u00ecnh Web App Google Apps Script t\u1ef1 \u0111\u1ed9ng t\u1ea3i theo m\u00e3 s\u1ed1\n  if (KHL_RESOLVER_URL) {\n    var AMP = String.fromCharCode(38);\n    var resolverUrl = KHL_RESOLVER_URL + '?code=' + encodeURIComponent(code) + AMP + 'section=' + encodeURIComponent(s);\n    window.open(resolverUrl, '_blank');\n    khlShowToast('\ud83d\udd0d \u0110ang t\u1ef1 \u0111\u1ed9ng t\u00ecm ki\u1ebfm v\u00e0 t\u1ea3i h\u1ecdc li\u1ec7u #' + (code || '') + ' t\u1eeb Google Drive...');\n    return;\n  }\n\n  \/\/ 3. C\u01a1 ch\u1ebf t\u1ef1 \u0111\u1ed9ng t\u00ecm v\u00e0 l\u1ecdc theo m\u00e3 s\u1ed1 h\u1ecdc li\u1ec7u trong Th\u01b0 m\u1ee5c Drive c\u1ee7a kh\u1ed1i\n  var folderId = KHL_FOLDER_IDS[s] || (s === 'thcs' ? '18S039u0guInZRJMOWVU5mXeOvHa13a__' : '1AR1RwMmBK2eTdZj9misNtSJGMcIoRYwO');\n  var targetUrl = '';\n  if (code) {\n    var cleanCode = String(code).replace(\/^#+\/, '').trim();\n    targetUrl = 'https:\/\/drive.google.com\/drive\/search?q=parent:' + folderId + '%20%22' + encodeURIComponent(cleanCode) + '%22';\n  } else {\n    targetUrl = KHL_DRIVE[s] || 'https:\/\/drive.google.com';\n  }\n\n  window.open(targetUrl, '_blank');\n  khlShowToast('\ud83d\udd0d \u0110ang m\u1edf h\u1ecdc li\u1ec7u #' + (code || '') + ' tr\u00ean Google Drive...');\n};\n\nwindow.khlLoadAll = function() {\n  var listThcs = document.getElementById('khl-list-thcs');\n  var listThpt = document.getElementById('khl-list-thpt');\n  if (listThcs) listThcs.innerHTML = '<p style=\\\"color:#0d9488;font-size:0.9em;padding:6px 0;\\\">\u23f3 \u0110ang \u0111\u1ed3ng b\u1ed9 danh s\u00e1ch h\u1ecdc li\u1ec7u THCS...<\/p>';\n  if (listThpt) listThpt.innerHTML = '<p style=\\\"color:#7c3aed;font-size:0.9em;padding:6px 0;\\\">\u23f3 \u0110ang \u0111\u1ed3ng b\u1ed9 danh s\u00e1ch h\u1ecdc li\u1ec7u THPT...<\/p>';\n\n  var AMP = String.fromCharCode(38);\n  var apiUrl = '\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments'\n    + AMP + 'post=' + KHL_PAGE_ID\n    + AMP + 'per_page=100'\n    + AMP + 'order=desc'\n    + AMP + 'orderby=date'\n    + AMP + '_t=' + Date.now();\n\n  fetch(apiUrl)\n  .then(function(res) {\n    if (!res.ok) throw new Error('HTTP ' + res.status);\n    return res.json();\n  })\n  .then(function(comments) {\n    var entriesThcs = [];\n    var entriesThpt = [];\n\n    (comments || []).forEach(function(c) {\n      var raw = '';\n      if (c) {\n        if (c.content) {\n          if (c.content.rendered) {\n            raw = c.content.rendered;\n          }\n        }\n      }\n      var match = raw.match(\/KHTN_KHL_B64::([A-Za-z0-9+\/=]+)\/);\n      if (!(!match || !match[1])) {\n        try {\n          var jsonStr = base64ToUtf8(match[1]);\n          var obj = JSON.parse(jsonStr);\n          if (obj) {\n            var emailVal = obj.email || '';\n            if (!emailVal) {\n              if (c.author_email) {\n                if (c.author_email !== 'gv@tokhtn-pvt.com') {\n                  emailVal = c.author_email;\n                }\n              }\n            }\n            var authorVal = obj.author || '';\n            if (!authorVal) {\n              if (c.author_name) {\n                if (c.author_name !== 'Gi\u00e1o vi\u00ean T\u1ed5 KHTN') {\n                  authorVal = c.author_name;\n                }\n              }\n            }\n            if (!authorVal) {\n              var mem = findMember(emailVal);\n              if (mem) {\n                authorVal = mem.name;\n              }\n            }\n            var itemData = {\n              commentId: c.id,\n              code: obj.code || '',\n              title: obj.title || '',\n              desc: obj.desc || '',\n              email: emailVal,\n              author: authorVal,\n              fileUrl: obj.fileUrl || '',\n              ts: obj.ts || c.date\n            };\n            if (obj.section === 'thcs') {\n              entriesThcs.push(itemData);\n            } else if (obj.section === 'thpt') {\n              entriesThpt.push(itemData);\n            }\n          }\n        } catch(e) {}\n      }\n    });\n\n    entriesThcs.sort(function(a, b) {\n      return (new Date(b.ts).getTime() || 0) - (new Date(a.ts).getTime() || 0);\n    });\n    entriesThpt.sort(function(a, b) {\n      return (new Date(b.ts).getTime() || 0) - (new Date(a.ts).getTime() || 0);\n    });\n\n    window['khl_entries_thcs'] = entriesThcs;\n    window['khl_entries_thpt'] = entriesThpt;\n\n    khlRender('thcs', entriesThcs);\n    khlRender('thpt', entriesThpt);\n  })\n  .catch(function(err) {\n    var makeErr = function(s) {\n      return '<div style=\\\"padding:10px 14px;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;color:#dc2626;font-size:0.9em;display:flex;align-items:center;justify-content:space-between;gap:10px;\\\">'\n        + '<span>\u26a0\ufe0f Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c danh s\u00e1ch (' + escHtml(err.message) + ')<\/span>'\n        + '<button onclick=\\\"khlLoadAll()\\\" style=\\\"background:#dc2626;color:#fff;border:none;border-radius:6px;padding:5px 12px;cursor:pointer;font-size:0.85em;font-weight:600;\\\">\ud83d\udd04 Th\u1eed l\u1ea1i<\/button>'\n        + '<\/div>';\n    };\n    if (listThcs) listThcs.innerHTML = makeErr('thcs');\n    if (listThpt) listThpt.innerHTML = makeErr('thpt');\n  });\n};\n\nwindow.khlLoadList = function(s) {\n  khlLoadAll();\n};\n\nwindow.khlDeleteEntry = function(commentId, btnEl) {\n  if (!confirm('T\u1ed5 tr\u01b0\u1edfng\/Admin c\u00f3 ch\u1eafc ch\u1eafn mu\u1ed1n xo\u00e1 m\u1ee5c h\u1ecdc li\u1ec7u n\u00e0y?')) return;\n  if (btnEl) {\n    btnEl.disabled = true;\n    btnEl.textContent = '\u23f3 \u0110ang xo\u00e1...';\n  }\n  var adminAuth = btoa('admin:qrdX rWIp OJHn 93gl siJs 8STD');\n  var AMP = String.fromCharCode(38);\n  var url = '\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments%2F' + commentId + AMP + 'force=true' + AMP + '_method=DELETE';\n  var headers = {\n    'Authorization': 'Basic ' + adminAuth,\n    'X-HTTP-Method-Override': 'DELETE'\n  };\n  var hasNonce = !(!window.wpApiSettings || !window.wpApiSettings.nonce);\n  if (hasNonce) {\n    headers['X-WP-Nonce'] = window.wpApiSettings.nonce;\n  }\n  fetch(url, {\n    method: 'POST',\n    credentials: 'omit',\n    headers: headers\n  })\n  .then(function(res) {\n    if (res.ok) {\n      khlLoadAll();\n    } else {\n      res.json().then(function(err) {\n        alert('L\u1ed7i xo\u00e1 (' + res.status + '): ' + (err.message || 'Kh\u00f4ng th\u1ec3 xo\u00e1.'));\n        if (btnEl) {\n          btnEl.disabled = false;\n          btnEl.textContent = '\ud83d\uddd1 Xo\u00e1';\n        }\n      }).catch(function() {\n        alert('L\u1ed7i khi xo\u00e1 (' + res.status + ')');\n        if (btnEl) {\n          btnEl.disabled = false;\n          btnEl.textContent = '\ud83d\uddd1 Xo\u00e1';\n        }\n      });\n    }\n  })\n  .catch(function(err) {\n    alert('Kh\u00f4ng th\u1ec3 k\u1ebft n\u1ed1i \u0111\u1ebfn m\u00e1y ch\u1ee7 \u0111\u1ec3 xo\u00e1: ' + err.message);\n    if (btnEl) {\n      btnEl.disabled = false;\n      btnEl.textContent = '\ud83d\uddd1 Xo\u00e1';\n    }\n  });\n};\n\nvar khlInitialized = false;\nfunction khlInit() {\n  if (khlInitialized) return;\n  khlInitialized = true;\n  khlIsAdmin = !(!document.querySelector('#wpadminbar'));\n  khlLoadAll();\n}\n\nif (document.readyState === 'interactive' || document.readyState === 'complete') {\n  khlInit();\n} else {\n  document.addEventListener('DOMContentLoaded', khlInit);\n  window.addEventListener('load', khlInit);\n}\n\nsetTimeout(khlInit, 150);\n\nvar dtThpt = document.getElementById('khl-details-thpt');\nif (dtThpt) {\n  dtThpt.addEventListener('toggle', function() {\n    if (dtThpt.open) {\n      if (!khlInitialized) khlInit();\n    }\n  });\n}\n\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcda Kho h\u1ecdc li\u1ec7u T\u1ed5 KHTN L\u01b0u tr\u1eef v\u00e0 chia s\u1ebb h\u1ecdc li\u1ec7u ch\u1ea5t l\u01b0\u1ee3ng cao d\u00e0nh cho gi\u00e1o vi\u00ean T\u1ed5 Khoa h\u1ecdc T\u1ef1 nhi\u00eanTr\u01b0\u1eddng THCS-THPT Phan V\u0103n Tr\u1ecb \ud83c\udf3f \u00dd ngh\u0129a c\u1ee7a Kho h\u1ecdc li\u1ec7u T\u1ed5 KHTN Kho h\u1ecdc li\u1ec7u l\u00e0 kh\u00f4ng gian s\u1ed1 d\u00f9ng chung c\u1ee7a T\u1ed5 KHTN, n\u01a1i m\u1ed7i th\u1ea7y c\u00f4 c\u00f3 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-247","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tokhtn-pvt.com\/index.php?rest_route=\/wp\/v2\/pages\/247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tokhtn-pvt.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tokhtn-pvt.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tokhtn-pvt.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tokhtn-pvt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=247"}],"version-history":[{"count":28,"href":"https:\/\/tokhtn-pvt.com\/index.php?rest_route=\/wp\/v2\/pages\/247\/revisions"}],"predecessor-version":[{"id":388,"href":"https:\/\/tokhtn-pvt.com\/index.php?rest_route=\/wp\/v2\/pages\/247\/revisions\/388"}],"wp:attachment":[{"href":"https:\/\/tokhtn-pvt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}